Strategi Pengesanan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-10-20 17:02:52
Tag:

img

Ringkasan

Strategi pengesanan purata bergerak adalah strategi yang mengikuti trend berdasarkan purata bergerak mudah. Ia menggunakan purata bergerak mudah 200 hari untuk menentukan arah trend harga. Apabila harga melintasi di atas purata bergerak, ia pergi panjang. Apabila harga melintasi di bawah purata bergerak, ia pergi pendek. Strategi ini mengesan trend untuk keuntungan.

Logika Strategi

Strategi ini berdasarkan prinsip-prinsip berikut:

  1. Gunakan purata bergerak mudah 200 hari (slowMA) untuk menentukan trend harga.
  2. Apabila harga penutupan (tutup) melintasi di atas slowMA, ia menandakan trend menaik, jadi pergi panjang.
  3. Apabila harga penutupan (tutup) melintasi di bawah slowMA, ia menandakan trend menurun, jadi pergi pendek.
  4. Gunakan pembolehubah last_long dan last_short untuk merakam masa entri panjang dan pendek terakhir.
  5. Gunakan fungsi crossover untuk mengesan crossover antara last_long dan last_short untuk menjana isyarat perdagangan.
  6. Dalam tempoh backtest, pergi panjang apabila menerima isyarat panjang (long_signal), dan pergi pendek apabila menerima isyarat pendek (short_signal).

Strategi ini mengesan trend dengan bergerak arah purata dan membuat perdagangan terbalik apabila persilangan MA berlaku, untuk mendapat keuntungan daripada trend.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Logik strategi adalah mudah dan mudah difahami dan dilaksanakan.
  2. Purata bergerak jangka panjang menapis kebisingan dan mengunci trend utama.
  3. Dagangan terbalik yang tepat pada masanya boleh menangkap perubahan harga yang signifikan di sekitar pembalikan trend.
  4. Ia hanya menggunakan satu penunjuk, mengelakkan kerumitan beberapa penunjuk.
  5. Peraturan masuk dan keluar yang jelas tanpa campur tangan manusia.

Analisis Risiko

Terdapat juga beberapa risiko:

  1. MA jangka panjang tidak sensitif terhadap pembetulan jangka pendek, kehilangan peluang jangka pendek.
  2. Kemampuan yang lemah dalam mengenal pasti pembalikan trend utama, dengan kerugian pembalikan.
  3. Tiada mekanisme stop loss, membawa kepada pengeluaran yang besar.
  4. Parameter tetap mempunyai daya adaptasi yang lemah di antara produk dan persekitaran pasaran yang berbeza.
  5. Backtest risiko terlalu sesuai kerana strategi hanya diuji pada data sejarah.

Risiko boleh ditangani melalui pengoptimuman berikut:

  1. Tambah MA jangka pendek untuk menangkap juga trend jangka pendek.
  2. Tambah penapis kelantangan untuk mengelakkan isyarat palsu.
  3. Tambah penunjuk yang mengikuti trend untuk meningkatkan pengenalan pembalikan trend.
  4. Tambahkan stop loss dinamik untuk mengawal kerugian perdagangan tunggal.
  5. Menggunakan kaedah pengoptimuman parameter untuk meningkatkan kebolehsesuaian.
  6. Ujian ketahanan di persekitaran pasaran yang berbeza.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi dalam aspek berikut:

  1. Mengoptimumkan parameter tempoh MA menggunakan kaedah seperti Walk Forward Analysis untuk mencari parameter yang optimum.

  2. Tambah MA jangka pendek untuk mengesan kedua-dua trend jangka panjang dan jangka pendek.

  3. Menggabungkan penunjuk trend seperti MACD untuk meningkatkan pengenalan pembalikan trend.

  4. Tambah mekanisme stop loss seperti trailing stop loss untuk mengawal kerugian perdagangan tunggal.

  5. Ujian ketahanan pada produk dan tempoh masa yang berbeza.

  6. Gunakan pembelajaran mesin untuk pengoptimuman adaptif parameter.

Kesimpulan

Strategi pengesanan purata bergerak adalah strategi yang mudah dan praktikal mengikuti trend. Ia mempunyai logika yang jelas dan mudah dilaksanakan untuk menangkap trend. Tetapi ia juga mempunyai beberapa kelemahan seperti tidak sensitif terhadap pembetulan jangka pendek dan kawalan risiko yang lemah. Kita boleh mengoptimumkan strategi dari pelbagai aspek untuk menjadikannya lebih kukuh, lebih parameter dan dengan pengurusan risiko yang lebih kuat. Secara keseluruhan, strategi pengesanan purata bergerak mempunyai nilai aplikasi yang baik dan merupakan konsep perdagangan trend penting dalam perdagangan kuantitatif.


/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// MA 200 /////////////
slowMA = sma(close, input(200))

/////////////// Strategy ///////////////
long = close > slowMA
short = close < slowMA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long Entry",  strategy.long, when=long_signal)
    strategy.entry("Short Entry", strategy.short, when=short_signal)
    strategy.exit("Long Ex", "Long Entry")
    strategy.exit("Short Ex", "Short Entry")

/////////////// Plotting /////////////// 
plot(slowMA, color = long ? color.lime : color.red, linewidth=2)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)

Lebih lanjut