
Strategi Crossover Rata-rata Bergerak Dinamik adalah strategi trend yang biasa. Strategi ini menghasilkan isyarat beli dan jual dengan mengira purata bergerak cepat (Fast MA) dan purata bergerak perlahan (Slow MA) dan menangkap titik-titik perubahan trend pasaran ketika mereka bersilang.
Logik teras strategi ini ialah: apabila purata bergerak cepat melintasi purata bergerak perlahan dari bawah, menghasilkan isyarat beli; apabila purata bergerak cepat melintasi purata bergerak perlahan dari atas ke bawah, menghasilkan isyarat jual.
Rata-rata bergerak dengan cepat lebih sensitif dan dapat menangkap perubahan trend; Rata-rata bergerak perlahan lebih stabil dan dapat menghapuskan kesan turun naik jangka pendek. Apabila garisan rata-rata yang cepat berlaku (berjalan dari bawah ke atas), pasar masuk ke dalam keadaan berbilang kepala; Apabila garisan mati berlaku (berjalan dari atas ke bawah), ia masuk ke dalam keadaan kosong.
Strategi ini akan segera mengeluarkan isyarat perdagangan apabila merentasi garis rata, mengambil strategi mengikuti trend, mengikuti trend pasaran untuk mendapatkan keuntungan yang lebih besar. Pada masa yang sama, strategi ini akan menetapkan titik berhenti dan titik berhenti, mengawal risiko dengan ketat.
Ia boleh diperbaiki dengan cara seperti mengoptimumkan parameter, menyesuaikan panjang kitaran purata, atau menambah syarat penapisan.
Strategi persilangan linear dinamik mempunyai kesan keseluruhan yang baik, dengan menyesuaikan parameter pengoptimuman dapat meningkatkan prestasi strategi. Strategi ini mudah dilaksanakan, sesuai untuk latihan praktikal pemula. Tetapi juga perlu berhati-hati terhadap risiko menghasilkan isyarat yang salah, yang perlu dibantu dengan indikator lain untuk menilai keberkesanan.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple Moving Average Crossover", shorttitle="SMAC", overlay=true)
// Define input parameters
fast_length = input.int(9, title="Fast MA Length")
slow_length = input.int(21, title="Slow MA Length")
stop_loss = input.float(1, title="Stop Loss (%)", minval=0, maxval=100)
take_profit = input.float(2, title="Take Profit (%)", minval=0, maxval=100)
// Calculate moving averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)
// Define conditions for long and short signals
long_condition = ta.crossover(fast_ma, slow_ma)
short_condition = ta.crossunder(fast_ma, slow_ma)
// Plot moving averages on the chart
plot(fast_ma, title="Fast MA", color=color.blue)
plot(slow_ma, title="Slow MA", color=color.red)
// Execute long and short trades
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
// Set stop loss and take profit levels
stop_loss_price = close * (1 - stop_loss / 100)
take_profit_price = close * (1 + take_profit / 100)
strategy.exit("Take Profit/Stop Loss", stop=stop_loss_price, limit=take_profit_price)
// Plot signals on the chart
plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)