กลยุทธ์ตามแนวโน้ม

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

Chelsea Yang

Data Science Instructor

กลยุทธ์การเทรด 2 ประเภท

การตามแนวโน้ม

  • เดิมพันว่าแนวโน้มราคาจะดำเนินต่อในทิศทางเดิม
  • ใช้ตัวชี้วัดแนวโน้ม เช่น Moving Average, ADX เป็นต้น เพื่อสร้างสัญญาณซื้อขาย

Mean reversion

  • เดิมพันว่าราคามักจะย้อนกลับสู่ค่าเฉลี่ย
  • ใช้ตัวชี้วัด เช่น RSI, Bollinger Bands เป็นต้น เพื่อสร้างสัญญาณซื้อขาย
การเทรดทางการเงินด้วย Python

กลยุทธ์ MA Crossover

แนวโน้มคือมิตรของคุณ

 

  • EMA Crossover แบบ 2 เส้น:
    • สัญญาณซื้อ: EMA ระยะสั้นตัดขึ้นเหนือ EMA ระยะยาว
    • สัญญาณขาย: EMA ระยะสั้นตัดลงต่ำกว่า EMA ระยะยาว
การเทรดทางการเงินด้วย Python

คำนวณตัวชี้วัด

import talib
# Calculate the indicators
EMA_short = talib.EMA(price_data['Close'],
                      timeperiod=10).to_frame()
EMA_long = talib.EMA(price_data['Close'], 
                     timeperiod=40).to_frame()
การเทรดทางการเงินด้วย Python

สร้างสัญญาณ

# Create the signal DataFrame
signal = EMA_long.copy()
signal[EMA_long.isnull()] = 0

# Construct the signal signal[EMA_short > EMA_long] = 1
signal[EMA_short < EMA_long] = -1
การเทรดทางการเงินด้วย Python

พล็อตสัญญาณ

# Plot the signal, price and MAs
combined_df = bt.merge(signal, price_data, EMA_short, EMA_long)
combined_df.columns = ['Signal', 'Price', 'EMA_short', 'EMA_long']

combined_df.plot(secondary_y=['Signal'])

กราฟสัญญาณ EMA Crossover

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

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

# Define the strategy
bt_strategy = bt.Strategy('EMA_crossover',

[bt.algos.WeighTarget(signal), bt.algos.Rebalance()])
การเทรดทางการเงินด้วย Python

ทดสอบย้อนหลังกลยุทธ์ที่ใช้สัญญาณ

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

พล็อตผลการทดสอบย้อนหลัง

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

ผลการทดสอบย้อนหลัง MA Crossover

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

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

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

Preparing Video For Download...