
Strategi ini menggunakan indikator MACD untuk membina isyarat perdagangan garis panjang, melakukan lebih banyak apabila indikator MACD berada di bawah tahap tertentu, memanfaatkan peluang perdagangan terbalik.
Apabila garis penunjuk MACD lebih rendah daripada garis isyarat SIGNAL dan nilai mutlak MACD lebih rendah daripada -0.00025, ia menghasilkan isyarat multitasking. Selepas melakukan multitasking, jika garis MACD melintasi garis SIGNAL lagi, maka ia akan diimbangi.
Strategi ini menggunakan penunjuk MACD untuk mengesan kawasan oversold, berdasarkan teori garis rata-rata, terdapat kebarangkalian untuk membalikkan harga saham dalam jangka pendek, dan berdasarkan kebarangkalian ini untuk membuat isyarat lebih banyak.
Risiko ini boleh dikurangkan dengan parameter pengoptimuman.
Strategi ini menggunakan penunjuk MACD untuk menentukan kemungkinan terbalik yang terbentuk di antara kawasan oversold untuk membina banyak isyarat, dan memperoleh keuntungan dengan cara memegang kedudukan panjang. Mengoptimumkan parameter MACD dan meningkatkan kebolehpercayaan mekanisme hentian kerugian. Secara keseluruhan, menggunakan petunjuk dan peraturan yang lebih mudah untuk membina strategi kuantitatif yang mudah difahami dan dilaksanakan.
//@version=3
strategy(title="MACD - EURUSD", shorttitle="MACD EURUSD")
// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? 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)
longCond = crossover(macd, signal) and macd < -0.00025
exitLong = crossover(macd, hist)
strategy.entry("long", strategy.long, when=longCond==true)
strategy.close("long", when=exitLong==true)