Strategi Crossover Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-11-23 13:38:02
Tag:

img

Ringkasan

Strategi crossover purata bergerak adalah strategi perdagangan berdasarkan purata bergerak. Ia menggunakan persilangan purata bergerak pantas dan purata bergerak perlahan sebagai isyarat beli dan jual. Apabila MA pantas melintasi di atas MA perlahan dari bawah, isyarat beli dihasilkan. Apabila MA pantas melintasi di bawah MA perlahan dari atas, isyarat jual dihasilkan.

Logika Strategi

Strategi ini menggunakan fungsi sma untuk mengira purata bergerak mudah untuk tempoh tertentu seperti MA pantas dan MA perlahan. Tempoh MA pantas lalai adalah 18 hari, yang boleh diselaraskan melalui parameter.

Apabila MA pantas melintasi di atas MA perlahan dari bawah, fungsi crossunder mengesan isyarat crossover dan menghasilkan isyarat beli. Apabila MA pantas melintasi di bawah MA perlahan dari atas, fungsi crossover mengesan isyarat crossover dan menghasilkan isyarat jual.

Strategi ini merealisasikan perdagangan automatik melalui isyarat trek dan isyarat keluar. Masuk panjang mencetuskan apabila MA pantas melintasi di atas MA perlahan, dan masuk pendek mencetuskan apabila MA pantas melintasi di bawah MA perlahan. Isyarat keluar yang sepadan juga dihasilkan pada persimpangan terbalik.

Analisis Kelebihan

  • Purata bergerak mempunyai keupayaan untuk mengesan trend dengan berkesan dan menangkap momentum harga
  • Strategi MA adalah mudah dan mudah, mudah difahami dan dilaksanakan
  • Parameter boleh dioptimumkan untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza
  • Strategi ini mengotomatiskan perdagangan tanpa campur tangan manual, mengurangkan kos perdagangan

Risiko dan Penyelesaian

  • Pergolakan harga boleh menyebabkan beberapa isyarat palsu dan kekerapan perdagangan yang tinggi. Penapis tambahan dapat mengelakkan ini.
  • Pengoptimuman parameter sangat penting dan boleh memberi kesan yang signifikan terhadap prestasi.
  • Terdapat risiko isyarat yang hilang. Penunjuk lain boleh digabungkan untuk menapis atau melengkapkan isyarat perdagangan.
  • Stop loss boleh mengawal kerugian perdagangan tunggal.

Arahan pengoptimuman

  • Purata bergerak adaptif boleh digunakan untuk menyesuaikan parameter MA secara dinamik untuk pengesanan yang lebih baik.
  • Penapis tambahan, seperti jumlah dagangan, boleh mengelakkan isyarat palsu apabila trend tidak jelas.
  • Menggabungkan penunjuk lain seperti Bollinger Bands sebagai penapis atau syarat tambahan boleh meningkatkan prestasi strategi.
  • Strategi stop loss mengawal kerugian perdagangan tunggal dalam tahap yang boleh diterima.

Kesimpulan

Strategi crossover MA adalah strategi trend-mengikuti klasik dan mudah. Ia terutamanya menggunakan crossover MA sebagai isyarat perdagangan dengan logik dan pelaksanaan yang mudah. Ia boleh disesuaikan melalui penyesuaian parameter. Tetapi ia juga mempunyai kelemahan seperti kerentanan terhadap turun naik dan pembalikan trend, kekerapan isyarat yang tinggi dan lain-lain. Ini boleh dipertingkatkan melalui penapis, parameter dinamik, stop loss dan lain-lain. Strategi ini mempunyai ruang pengoptimuman dan arah yang luas, dan merupakan salah satu strategi perdagangan kuantitatif asas.


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 04:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

MASource   = input(defval = open, title = "MA Source")
MaLength   = input(defval = 18, title = "MA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")
stopLoss = input(50, title = "Stop loss percentage(0.1%)") 

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

MA = sma(MASource,MaLength)

plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(MA, close)
short = crossover(MA, close)

if (long)
    strategy.entry("LongId", strategy.long, when = long)
    strategy.exit("ExitLong", from_entry = "LongId", when = short)

if (short)
    strategy.entry("ShortId", strategy.short, when = short)
    strategy.exit("ExitShort", from_entry = "ShortId", when = long)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)


Lebih lanjut