วิเคราะห์ข้อมูลหุ้น BMW ด้วย Python

กลยุทธ์การซื้อขายด้วย SMA Crossover

การสร้างกลยุทธ์ SMA Crossover

สร้างกลยุทธ์การซื้อขายด้วย SMA Crossover
import pandas as pd
import matplotlib.pyplot as plt

data['SMA5'] = data['Close'].rolling(window=180).mean()
data['SMA20'] = data['Close'].rolling(window=365).mean()

buy_signals = (data['SMA5'] > data['SMA20']) & (data['SMA5'].shift(1) <= data['SMA20'].shift(1))
sell_signals = (data['SMA5'] < data['SMA20']) & (data['SMA5'].shift(1) >= data['SMA20'].shift(1))

plt.figure(figsize=(14, 7))
plt.plot(data['Close'], label='Close Price',color = 'bisque', alpha=0.5)
plt.plot(data['SMA5'], label='SMA 180 days', color='salmon', linewidth=1)
plt.plot(data['SMA20'], label='SMA 365 days', color='orange', linewidth=1)
plt.scatter(data.index[buy_signals], data['Close'][buy_signals], marker='^', color='green', label='Buy Signal')
plt.scatter(data.index[sell_signals], data['Close'][sell_signals], marker='v', color='red', label='Sell Signal')
plt.title('Buy/Sell Points with SMA Crossover')
plt.xlabel('Date')
plt.ylabel('Close Price')
plt.legend()
plt.grid()
plt.show()

กราฟแสดงจุดซื้อขายด้วยกลยุทธ์ SMA Crossover

0 20 40 60 80 2016 2018 2020 2022 2024 ราคาปิด SMA 180 วัน SMA 365 วัน สัญญาณซื้อ สัญญาณขาย

การสร้างกลยุทธ์ SMA Crossover:

หลักการของ SMA Crossover

กลยุทธ์ SMA Crossover เป็นหนึ่งในกลยุทธ์การซื้อขายทางเทคนิคที่นิยมใช้ในการลงทุน ซึ่งช่วยระบุแนวโน้มของตลาดและให้สัญญาณซื้อขายที่ชัดเจน

การคำนวณค่าเฉลี่ยเคลื่อนที่ (SMA)

ในโค้ดนี้ เราคำนวณค่าเฉลี่ยเคลื่อนที่ 2 แบบ:

  • SMA5: ค่าเฉลี่ยเคลื่อนที่ในช่วง 180 วัน (ระยะสั้น)
  • SMA20: ค่าเฉลี่ยเคลื่อนที่ในช่วง 365 วัน (ระยะยาว)

การระบุสัญญาณซื้อ (Buy Signals)

เมื่อ SMA 180 วัน ตัดขึ้นเหนือ SMA 365 วัน แสดงว่าเป็นแนวโน้มขาขึ้น จึงเป็นสัญญาณซื้อ

buy_signals = (data['SMA5'] > data['SMA20']) & (data['SMA5'].shift(1) <= data['SMA20'].shift(1))

การระบุสัญญาณขาย (Sell Signals)

เมื่อ SMA 180 วัน ตัดลงต่ำกว่า SMA 365 วัน แสดงว่าเป็นแนวโน้มขาลง จึงเป็นสัญญาณขาย

sell_signals = (data['SMA5'] < data['SMA20']) & (data['SMA5'].shift(1) >= data['SMA20'].shift(1))

การแสดงผลบนกราฟ

เราแสดงราคาปิด, เส้น SMA ทั้งสอง, และจุดสัญญาณซื้อขายบนกราฟเดียวกัน เพื่อให้เห็นภาพชัดเจน

ประโยชน์และข้อควรระวังของกลยุทธ์ SMA Crossover

ประโยชน์

ข้อควรระวัง