สัญญาณการเทรด

การเทรดทางการเงินด้วย Python

Chelsea Yang

Data Science Instructor

สัญญาณการเทรดคืออะไร?

  • สัญญาณที่กระตุ้นให้ซื้อ (long) หรือขาย (short) สินทรัพย์ทางการเงินตามเกณฑ์ที่กำหนดไว้
  • สร้างได้จาก:

    • ตัวชี้วัดทางเทคนิคตัวเดียว
    • ตัวชี้วัดทางเทคนิคหลายตัว
    • การผสมระหว่างข้อมูลตลาดและตัวชี้วัด
  • นิยมใช้ใน algorithmic trading

การเทรดทางการเงินด้วย Python

ตัวอย่างสัญญาณ

  • สัญญาณ: ราคา > SMA (ซื้อเมื่อราคาขึ้นเหนือ SMA)

กราฟแสดงสัญญาณที่บ่งชี้จุดเข้าเทรด

การเทรดทางการเงินด้วย Python

วิธีนำสัญญาณไปใช้ใน bt

  1. ดึงข้อมูลและคำนวณตัวชี้วัด
  2. กำหนดกลยุทธ์ตามสัญญาณ
    • bt.algos.SelectWhere()
    • bt.algos.WeighTarget()
  3. สร้างและรัน backtest
  4. ตรวจสอบผลลัพธ์ของ backtest
การเทรดทางการเงินด้วย Python

สร้างสัญญาณ

# Get price data by the stock ticker
price_data = bt.get('aapl', start='2019-11-1', end='2020-12-1')
# Calculate SMA
sma = price_data.rolling(20).mean()

หรือใช้ talib เพื่อคำนวณตัวชี้วัด:

# Calculate SMA
import talib
sma =  talib.SMA(price_data['Close'], timeperiod=20)
การเทรดทางการเงินด้วย Python

กำหนดกลยุทธ์ตามสัญญาณ

# Define the signal-based strategy
bt_strategy = bt.Strategy('AboveEMA',
                          [bt.algos.SelectWhere(price_data > sma),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
  • เพื่อความเรียบง่าย สมมติว่า:
    • เทรดสินทรัพย์ทีละรายการ
    • ไม่มี slippage หรือค่าคอมมิชชัน
      • Slippage: ส่วนต่างระหว่างราคาที่คาดหวังกับราคาที่ได้รับจริงในการเทรด
      • Commission: ค่าธรรมเนียมที่โบรกเกอร์เรียกเก็บเมื่อดำเนินการเทรด
การเทรดทางการเงินด้วย Python

ทดสอบย้อนหลังกลยุทธ์ตามสัญญาณ

# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
การเทรดทางการเงินด้วย Python

พล็อตผลลัพธ์ของ backtest

# Plot the backtest result
bt_result.plot(title='Backtest result')

กราฟแสดงผลลัพธ์ของ backtest

การเทรดทางการเงินด้วย Python

มาฝึกกันเถอะ!

การเทรดทางการเงินด้วย Python

Preparing Video For Download...