
Strategi persilangan rata-rata adalah strategi perdagangan berdasarkan rata-rata bergerak. Ia menggunakan persilangan rata-rata bergerak cepat dan rata-rata bergerak perlahan sebagai isyarat membeli dan menjual. Ia menghasilkan isyarat membeli apabila rata-rata bergerak cepat menembusi rata-rata perlahan dari arah bawah; ia menghasilkan isyarat menjual apabila rata-rata bergerak cepat jatuh dari arah atas dan melanggar rata-rata perlahan.
Kaedah ini menggunakan fungsi sma untuk mengira purata bergerak sederhana untuk tempoh yang ditetapkan, sebagai purata cepat dan purata perlahan. Kaedah ini mempunyai tempoh purata cepat default 18 hari, yang boleh disesuaikan dengan parameter.
Apabila garisan laju rata-rata menembusi garisan laju rata-rata dari arah bawah, gunakan fungsi crossunder untuk mengesan isyarat silang dan menghasilkan isyarat beli. Apabila garisan laju rata-rata jatuh dari arah atas dan menembusi garisan laju rata-rata, gunakan fungsi crossover untuk mengesan isyarat silang dan menghasilkan isyarat jual.
Strategi ini mewujudkan perdagangan automatik melalui isyarat trek dan isyarat keluar. Masukan bermulut dipicu apabila garis rata-rata pantas dari bawah melanggar garis rata-rata perlahan; Masukan kosong dipicu apabila garis rata-rata pantas dari atas melanggar garis rata-rata perlahan. Isyarat keluar yang sesuai juga dihasilkan apabila bersilang terbalik.
Strategi persilangan garis sejajar secara keseluruhan adalah strategi trend yang lebih klasik dan sederhana. Ia menggunakan persilangan garis sejajar sebagai isyarat perdagangan, asasnya mudah dan mudah difahami, dapat disesuaikan dengan pasaran melalui parameter. Tetapi ada juga beberapa kelemahan, seperti terdedah kepada kesan gegaran dan perubahan trend, isyarat yang kerap, dan lain-lain.
/*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)