
Strategi ini adalah sistem perdagangan pembalikan trend berdasarkan pergerakan pilar MACD. Ia menangkap isyarat pembalikan pasaran dengan menganalisis hubungan antara perubahan bentuk K dan perubahan pergerakan pilar MACD. Gagasan utama strategi ini adalah untuk melakukan perdagangan pembalikan apabila terdapat tanda-tanda penurunan dinamik di pasaran, dan dengan itu merangkai awal apabila trend akan berbalik.
Logik dagangan strategi ini terbahagi kepada dua arah iaitu shorting dan plus: Keadaan kosong: Apabila terdapat garis yang lebih besar ((harga penutupan lebih tinggi daripada harga bukaan), dan entiti lebih besar daripada garis K sebelumnya, sementara carta MACD berupa tiang menunjukkan trend menurun selama 3 kitaran berturut-turut, menunjukkan tenaga pendakian ke atas melemah, sistem mengeluarkan isyarat kosong. Buat banyak syarat: Apabila terdapat garis negatif yang lebih besar ((harga penutupan kurang daripada harga bukaan), dan entiti lebih besar daripada garis K sebelumnya, dan grafik MACD bertiang menunjukkan trend naik selama 3 kitaran berturut-turut, menunjukkan bahawa pergerakan turun dapat melemah, sistem mengeluarkan banyak isyarat. Pengurusan kedudukan menggunakan mekanisme penutupan signal lawan, iaitu apabila terdapat isyarat perdagangan ke arah yang bertentangan, penutupan kedudukan semasa. Strategi ini tidak menetapkan hentian dan berhenti, bergantung sepenuhnya pada isyarat untuk menguruskan kedudukan.
Strategi ini dengan menggabungkan bentuk K-baris dan MACD bentuk tiang untuk menangkap perubahan momentum pasaran untuk menangkap peluang pembalikan pasaran, mempunyai ciri-ciri mudah beroperasi, isyarat jelas. Walaupun terdapat risiko tertentu, tetapi dengan pengoptimuman yang munasabah dan langkah-langkah pengurusan risiko, dapat meningkatkan kestabilan strategi dan keuntungan. Strategi ini sangat sesuai untuk keadaan pasaran yang jelas trend, boleh menjadi komponen penting dalam 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")