Arah aliran dinamik crossover purata bergerak berbilang menangkap strategi dagangan kuantitatif

EMA SMA MACD MA RSI
Tarikh penciptaan: 2024-12-27 14:59:35 Akhirnya diubah suai: 2024-12-27 14:59:35
Salin: 10 Bilangan klik: 424
1
fokus pada
1617
Pengikut

Arah aliran dinamik crossover purata bergerak berbilang menangkap strategi dagangan kuantitatif

Gambaran keseluruhan

Strategi ini ialah sistem perdagangan kuantitatif berdasarkan persilangan berbilang purata bergerak eksponen (EMA). Ia membina rangka kerja dagangan penjejakan arah aliran yang lengkap melalui penyelarasan tiga purata bergerak: EMA 9 hari, EMA 21 hari dan EMA 200 hari. Strategi ini mengenal pasti arah aliran dan dagangan pasaran dengan menentukan persilangan purata bergerak pantas dan purata bergerak perlahan serta hubungan kedudukannya dengan purata bergerak jangka panjang.

Prinsip Strategi

Logik teras strategi ini adalah untuk menangkap arah aliran pasaran melalui crossover purata bergerak tiga kali ganda. Secara khusus:

  1. Gunakan EMA 9 hari sebagai purata bergerak pantas untuk menggambarkan arah aliran harga jangka pendek
  2. Gunakan EMA 21 hari sebagai purata bergerak jangka sederhana untuk menapis hingar jangka pendek
  3. Gunakan EMA 200 hari sebagai purata bergerak jangka panjang untuk menentukan arah aliran utama Apabila purata bergerak pantas melintasi purata bergerak perlahan ke atas, dan kedua-dua purata bergerak berada di atas purata bergerak 200 hari, sistem menjana isyarat panjang apabila purata bergerak pantas melintasi purata bergerak perlahan ke bawah, dan kedua-dua purata bergerak berada di bawah purata bergerak 200 hari, sistem menjana isyarat panjang, sistem menjana isyarat jualan pendek. Reka bentuk ini boleh menangkap titik perubahan arah aliran sambil mengelakkan perdagangan yang kerap dalam pasaran penyatuan.

Kelebihan Strategik

  1. Pengesahan arah aliran tinggi: Aliran pasaran boleh disahkan dengan lebih tepat dengan menggunakan purata bergerak tiga kali ganda
  2. Kawalan risiko yang dipertingkatkan: Menggunakan purata bergerak jangka panjang sebagai penapis arah aliran untuk mengurangkan risiko pecah palsu secara berkesan
  3. Peraturan operasi yang jelas: keadaan masuk dan keluar yang jelas, mudah untuk dilaksanakan dan ujian belakang
  4. Kebolehsuaian yang kuat: parameter boleh diselaraskan mengikut ciri pasaran yang berbeza, dengan kesejagatan yang baik
  5. Pengiraan mudah: menggunakan penunjuk teknikal biasa, kecekapan pengiraan yang tinggi, sesuai untuk dagangan masa nyata

Risiko Strategik

  1. Risiko ketinggalan: Penunjuk purata bergerak itu sendiri mempunyai ketinggalan, yang boleh menyebabkan kelewatan masuk atau keluar.
  2. Risiko pasaran tidak menentu: Isyarat palsu yang kerap mungkin berlaku dalam pasaran sisi dan tidak menentu
  3. Risiko pembalikan arah aliran: apabila arah aliran tiba-tiba berbalik, anda mungkin mengalami anjakan yang besar
  4. Kepekaan parameter: Kombinasi parameter yang berbeza boleh membawa kepada perbezaan besar dalam prestasi strategi Adalah disyorkan untuk menguruskan risiko ini dengan menetapkan kedudukan henti rugi, mengawal saiz kedudukan, dsb.

Arah pengoptimuman strategi

  1. Memperkenalkan penunjuk volum: Menggabungkan perubahan volum untuk mengesahkan kekuatan aliran
  2. Penapisan turun naik yang ditambahkan: laraskan kekerapan dagangan dalam persekitaran turun naik yang tinggi
  3. Optimumkan pemilihan parameter: laraskan parameter purata bergerak secara dinamik untuk kitaran pasaran yang berbeza
  4. Tambah penunjuk kekuatan aliran: Gunakan penunjuk seperti ADX untuk menilai kebolehpercayaan arah aliran
  5. Tingkatkan mekanisme stop loss: reka bentuk peraturan stop loss dan take profit yang lebih fleksibel

ringkaskan

Ini ialah strategi mengikut arah aliran yang direka dengan baik dan jelas secara logik. Melalui kerjasama berbilang purata bergerak yang diselaraskan, adalah mungkin untuk menangkap arah aliran pasaran dengan berkesan sambil mempunyai keupayaan kawalan risiko yang baik. Terdapat ruang besar untuk pengoptimuman strategi, dan kestabilan serta keuntungannya boleh dipertingkatkan lagi melalui penambahbaikan berterusan.

Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("EMA Cross with both MinhTuan", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Tham số EMA
fastLength = input.int(9, title="Fast EMA Length", minval=1)
slowLength = input.int(21, title="Slow EMA Length", minval=1)
filterLength = input.int(200, title="EMA Filter Length", minval=1)

// Tùy chọn chế độ giao dịch
tradeMode = input.string("Both", options=["Long", "Short", "Both"], title="Trade Mode")

// Tính toán EMA
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
filterEMA = ta.ema(close, filterLength)

// Điều kiện vào lệnh Long: EMA nhanh cắt lên EMA chậm và cả hai nằm trên EMA 200
longCondition = ta.crossover(fastEMA, slowEMA) and fastEMA > filterEMA and slowEMA > filterEMA

// Điều kiện vào lệnh Short: EMA nhanh cắt xuống EMA chậm và cả hai nằm dưới EMA 200
shortCondition = ta.crossunder(fastEMA, slowEMA) and fastEMA < filterEMA and slowEMA < filterEMA

// Điều kiện thoát lệnh: EMA nhanh cắt ngược lại EMA chậm
closeLongCondition = ta.crossunder(fastEMA, slowEMA) // Thoát lệnh Long
closeShortCondition = ta.crossover(fastEMA, slowEMA) // Thoát lệnh Short

// Thực hiện lệnh Long
if (longCondition and (tradeMode == "Long" or tradeMode == "Both"))
    strategy.entry("EMA_Cross_Long", strategy.long)
    label.new(x=bar_index, y=low, text="Long", color=color.green, textcolor=color.white, size=size.small)

// Thực hiện lệnh Short
if (shortCondition and (tradeMode == "Short" or tradeMode == "Both"))
    strategy.entry("EMA_Cross_Short", strategy.short)
    label.new(x=bar_index, y=high, text="Short", color=color.red, textcolor=color.white, size=size.small)

// Thoát lệnh Long
if (closeLongCondition)
    strategy.close("EMA_Cross_Long")
    label.new(x=bar_index, y=high, text="Close Long", color=color.orange, textcolor=color.white, size=size.small)

// Thoát lệnh Short
if (closeShortCondition)
    strategy.close("EMA_Cross_Short")
    label.new(x=bar_index, y=low, text="Close Short", color=color.blue, textcolor=color.white, size=size.small)

// Vẽ đường EMA nhanh, EMA chậm, và EMA 200
plot(fastEMA, title="Fast EMA", color=color.blue, linewidth=2)
plot(slowEMA, title="Slow EMA", color=color.orange, linewidth=2)
plot(filterEMA, title="Filter EMA (200)", color=color.red, linewidth=2)

// Hiển thị nền khi đang giữ lệnh
bgcolor(strategy.position_size > 0 ? color.new(color.green, 90) : strategy.position_size < 0 ? color.new(color.red, 90) : na)