
Strategi mengesan trend MACD dengan mengira indikator MACD dan garisan isyaratnya untuk menilai trend, dan untuk mendapatkan keuntungan dari trend.
Strategi ini berdasarkan MACD untuk menentukan arah trend. MACD adalah indeks pengesanan trend yang berbeza dengan purata bergerak, terdiri daripada garis cepat ((MACD), garis perlahan ((Signal) dan histogram. Garis emas dan garis perlahan menunjukkan bahawa pergerakan mungkin memulakan bull market, sementara garisan mati menunjukkan bahawa pergerakan mungkin memulakan bear market.
Apabila Histogram naik dari negatif ke positif, ia menghasilkan isyarat garpu emas, yang menunjukkan bahawa perdagangan mungkin baru bermula, dan boleh menubuhkan kedudukan bermulut; apabila Histogram beralih dari positif ke negatif, ia menghasilkan isyarat garpu mati, yang menunjukkan bahawa perdagangan mungkin mencapai puncak, dan boleh meratakan kedudukan bermulut atau menubuhkan kedudukan kosong.
Strategi mengesan trend MACD secara keseluruhan adalah kaedah penilaian trend yang lebih dipercayai. Dengan mengoptimumkan parameter, dengan pengesahan indikator lain, anda dapat mengurangkan kadar isyarat palsu dengan ketara, sehingga memperoleh keuntungan strategi yang lebih tinggi.
/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("MACD")
// Getting inputs
fastLength = input(title="Fast Length", defval=12)
slowlength = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signalLength = input(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9)
// Calculating
macd = ema(close, fastLength) - ema(close, slowlength)
signal = ema(macd, signalLength)
delta = macd - signal
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Plot histogram
plot(delta, title="Histogram", style=columns, color=(delta>=0 ? (delta[1] < delta ? col_grow_above : col_fall_above) : (delta[1] < delta ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
// Plot orders
if (crossover(delta, 0))
strategy.entry("buy", strategy.long)
if (crossunder(delta, 0))
strategy.entry("sell", strategy.short)