
Strategi ini adalah sistem perdagangan reversal tren yang didasarkan pada pergerakan pilar MACD yang menyimpang. Ini menangkap sinyal reversal pasar dengan menganalisis hubungan antara perubahan bentuk K-line dan perubahan dinamika pilar MACD. Gagasan inti dari strategi ini adalah untuk melakukan perdagangan reversal ketika ada tanda-tanda penurunan dinamika pasar, sehingga dapat diprediksikan ketika tren akan berbalik.
Logika trading strategi ini terbagi menjadi dua arah: shorting dan plus: Kondisi untuk melakukan pengosongan: Ketika ada garis yang lebih besar ((harga penutupan lebih tinggi dari harga bukaan), dan entitasnya lebih besar dari garis K sebelumnya, sementara grafik MACD berupa pilar menunjukkan tren menurun selama 3 siklus berturut-turut, menunjukkan bahwa pergerakan ke atas melemah, sistem mengeluarkan sinyal untuk melakukan pengosongan. Terjadi beberapa kondisi: Ketika muncul garis negatif yang lebih besar (harga close-out lebih rendah dari harga open-out), dan entitasnya lebih besar dari garis K sebelumnya, sementara grafik MACD berupa pilar menunjukkan tren naik selama 3 siklus berturut-turut, menunjukkan bahwa pergerakan turun dapat melemah, sistem mengeluarkan beberapa sinyal. Manajemen posisi menggunakan mekanisme penutupan posisi sinyal lawan, yaitu ketika muncul sinyal perdagangan ke arah yang berlawanan, tutup posisi saat ini. Strategi ini tidak mengatur stop loss dan stop loss, dan sepenuhnya bergantung pada sinyal untuk mengelola posisi.
Strategi ini dengan menggabungkan K-line dan MACD pilar momentum perubahan untuk menangkap peluang pasar berbalik, memiliki operasi sederhana, sinyal jelas karakteristik. Meskipun ada risiko tertentu, tetapi dengan optimasi yang masuk akal dan risiko manajemen langkah-langkah, dapat meningkatkan strategi stabilitas dan profitabilitas secara signifikan. Strategi ini sangat cocok untuk lingkungan pasar jelas tren, dapat digunakan sebagai komponen penting dari sistem perdagangan.
/*backtest
start: 2024-11-10 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("MACD Momentum Reversal Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === MACD Calculation ===
fastLength = input.int(12, "MACD Fast Length")
slowLength = input.int(26, "MACD Slow Length")
signalLength = input.int(9, "MACD Signal Length")
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)
// === Candle Properties ===
bodySize = math.abs(close - open)
prevBodySize = math.abs(close[1] - open[1])
candleBigger = bodySize > prevBodySize
bullishCandle = close > open
bearishCandle = close < open
// === MACD Momentum Conditions ===
// For bullish candles: if the MACD histogram (normally positive) is decreasing over the last 3 bars,
// then the bullish momentum is fading – a potential short signal.
macdLossBullish = (histLine[2] > histLine[1]) and (histLine[1] > histLine[0])
// For bearish candles: if the MACD histogram (normally negative) is increasing (moving closer to zero)
// over the last 3 bars, then the bearish momentum is fading – a potential long signal.
macdLossBearish = (histLine[2] < histLine[1]) and (histLine[1] < histLine[0])
// === Entry Conditions ===
// Short entry: Occurs when the current candle is bullish and larger than the previous candle,
// while the MACD histogram shows fading bullish momentum.
enterShort = bullishCandle and candleBigger and macdLossBullish
// Long entry: Occurs when the current candle is bearish and larger than the previous candle,
// while the MACD histogram shows fading bearish momentum.
enterLong = bearishCandle and candleBigger and macdLossBearish
// === Plot the MACD Histogram for Reference ===
plot(histLine, title="MACD Histogram", color=color.blue, style=plot.style_histogram)
// === Strategy Execution ===
// Enter positions based on conditions. There is no stop loss or take profit defined;
// positions remain open until an opposite signal occurs.
if (enterShort)
strategy.entry("Short", strategy.short)
if (enterLong)
strategy.entry("Long", strategy.long)
// Exit conditions: close an existing position when the opposite signal appears.
if (strategy.position_size > 0 and enterShort)
strategy.close("Long")
if (strategy.position_size < 0 and enterLong)
strategy.close("Short")