Strategi perdagangan moving average adalah strategi perdagangan kuantitatif yang melacak persimpangan rata-rata bergerak jangka pendek dan jangka panjang (EMA) dan melakukan operasi beli dan jual pada saat berbinar dan berbinar. Strategi ini digunakan untuk menilai sinyal perdagangan dengan indikator MACD.
Strategi ini bergantung pada indikator EMA 12, EMA 26 dan MACD. Logika spesifiknya adalah:
Selain itu, kebijakan ini juga menetapkan beberapa kondisi penyaringan:
Strategi ini menggabungkan crossover rata-rata bergerak dan indikator MACD untuk secara efektif menangkap titik balik tren pasar jangka pendek dan menengah. Keuntungan utama adalah:
Strategi ini juga memiliki beberapa risiko:
Metode mitigasi yang sesuai:
Strategi ini dapat dioptimalkan dengan cara:
Moving average linear forks dan dead forks yang digabungkan dengan strategi perdagangan MACD, yang membentuk sinyal perdagangan melalui pelacakan tren sederhana, mudah untuk diterapkan, dan dikombinasikan dengan kondisi penyaringan yang tepat untuk mengendalikan risiko, adalah strategi perdagangan kuantitatif yang efektif. Strategi ini dapat ditingkatkan dengan cara pengoptimalan parameter, peningkatan mekanisme stop loss, dan kombinasi lebih banyak indikator tambahan.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMMA", max_bars_back = 200)
var up1 = #26A69A
var up2 = #B2DFDB
var down1 = #FF5252
var down2 = #FFCDD2
var confirmationLength = 2
var earliest = timestamp("20 Jan 2024 00:00 +0000")
// Regn u
shortEMA = ta.ema(close, 12)
longEMA = ta.ema(close, 26)
macd = shortEMA - longEMA
signal = ta.ema(macd, 9)
delta = macd - signal
absDelta = math.abs(delta)
previousDelta = delta[1]
signalCrossover = ta.crossover(macd, signal)
signalCrossunder = ta.crossunder(macd, signal)
harskiftetdag = hour(time[confirmationLength]) > hour(time)
enterLongSignal = signalCrossover[confirmationLength] and (macd > signal) and (absDelta >= 0.08)
exitLongSignal = signalCrossunder[confirmationLength] and (macd < signal)
enterShortSignal = signalCrossunder[confirmationLength] and (macd < signal) and (absDelta >= 0.08)
exitShortSignal = signalCrossover[confirmationLength] and (macd > signal)
// Så er det tid til at købe noe
qty = math.floor(strategy.equity / close)
if time >= earliest and not harskiftetdag
if exitLongSignal
strategy.close("long")
else if enterLongSignal
strategy.close("short")
strategy.entry("long", strategy.long, qty = qty)
if exitShortSignal
strategy.close("short")
else if enterShortSignal
strategy.close("long")
strategy.entry("short", strategy.short, qty = qty)
// Så er det tid til at vise noe
plot(macd, color=color.blue)
plot(signal, color=color.orange)
// bgcolor(color = delta > 0.1 ? color.new(color.green, 90) : color.new(color.green, 100))
// bgcolor(color = signalCrossover ? color.purple : signalCrossunder ? color.aqua : color.new(color.green, 100))
histogramColor = delta > 0 ? (previousDelta < delta ? up1 : up2) : (previousDelta > delta ? down1 : down2)
plot(
delta,
style=plot.style_columns,
color=histogramColor
)