Strategi perdagangan Forex bergerak adalah strategi perdagangan kuantitatif yang menjejaki persilangan purata bergerak jangka pendek dan jangka panjang (EMA) dan melakukan operasi beli dan jual semasa Forex bergerak dan Forex bergerak. Strategi ini digabungkan dengan indikator MACD untuk membuat keputusan isyarat perdagangan.
Strategi ini bergantung kepada 12 hari EMA, 26 hari EMA dan MACD. Logiknya ialah:
Selain itu, strategi ini juga menetapkan beberapa syarat penapisan:
Strategi ini digabungkan dengan penyambungan purata bergerak dan penunjuk MACD, yang dapat menangkap titik-titik perubahan tren pasaran dalam jangka pendek dan pertengahan. Kelebihan utama adalah:
Strategi ini mempunyai beberapa risiko:
Kaedah penanggulangan yang sesuai:
Strategi ini boleh dioptimumkan dari segi berikut:
Moving Average Linear Fork Dead Fork menggabungkan strategi perdagangan MACD, membentuk isyarat perdagangan melalui trend yang mudah diikuti, mudah dilaksanakan, dan dikombinasikan dengan keadaan penapisan yang sesuai untuk mengawal risiko, merupakan strategi perdagangan kuantitatif yang berkesan. Strategi ini dapat diperbaiki dengan cara mengoptimumkan parameter, meningkatkan mekanisme hentikan kerugian, dan menggabungkan lebih banyak petunjuk 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
)