
Strategi MACD Valley Detector adalah strategi perdagangan berdasarkan indikator MACD. Strategi ini menghasilkan sinyal beli dengan mendeteksi titik terendah indikator MACD. Strategi ini akan mengirimkan sinyal beli ketika indikator MACD membentuk titik terendah, dan nilai MACD kurang dari -0.4, dan perbedaan antara MACD dan garis sinyalnya kurang dari 0.
Inti dari strategi MACD Valley Detector adalah menggunakan indikator MACD untuk menangkap peluang terbalik yang potensial. Indikator MACD diperoleh dari perbedaan antara dua indikator moving average (EMA), yang mencerminkan perubahan dinamika harga. Ketika indikator MACD membentuk dasar lembah, menunjukkan bahwa pergerakan turun harga mungkin melemah dan ada kemungkinan terbalik.
Strategi ini menggunakan kondisi berikut untuk menilai MACD valley bottom:
Ketika kondisi di atas terpenuhi secara bersamaan, strategi menganggap terjadinya MACD Valley Bottom, dan mengirimkan sinyal beli. Pada saat yang sama, strategi menetapkan harga stop-loss yang tetap, yaitu harga beli ditambah dengan harga diferensial yang tetap ((takeProfitValue)).
Strategi MACD Valley Detector adalah strategi perdagangan yang didasarkan pada deteksi terowongan indikator MACD. Dengan menangkap terowongan indikator MACD, strategi mencoba menemukan peluang pembalikan potensial dan melakukan pembelian. Strategi ini menggunakan beberapa kondisi untuk mengkonfirmasi sinyal dan menetapkan harga stop-loss yang tetap. Meskipun strategi ini memiliki beberapa keuntungan, seperti memanfaatkan indikator MACD yang banyak digunakan dan konfirmasi multi-kondisi, ada beberapa risiko dan keterbatasan, seperti keterlambatan, parameter tetap, kurangnya stop loss yang jelas, dll.
/*backtest
start: 2024-03-12 00:00:00
end: 2024-04-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © freditansari
//@version=5
//@version=5
strategy("MACD Valley Detector", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
rsi = ta.rsi(close, 14)
atr = ta.atr(14)
qty=1
takeProfitValue =7
// stopLossValue = 1
// close[0] < close[1] and close[1] > close[2]
is_valley= delta[0] > delta[1] and delta[1]<delta[2]? 1:0
// plot(is_valley , "valley?")
if(is_valley==1 and MACD<=-0.4 and delta <0)
takeProfit = close +takeProfitValue
action = "buy"
// strategy.entry("long", strategy.long, qty=qty)
// // strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit)
// strategy.exit("exit", "long", limit=takeProfit)
alert('{"TICKER":"'+syminfo.ticker+'","ACTION":"'+action+'","PRICE":"'+str.tostring(close)+'","TAKEPROFIT":"'+str.tostring(takeProfit)+'","QTY":"'+str.tostring(qty)+'"}')
if (ta.crossover(delta, 0))
stopLoss = low -0.3
takeProfit = high +0.3
strategy.entry("MacdLE", strategy.long,qty=qty, comment="MacdLE")
strategy.exit("exit long", "MacdLE", limit=takeProfit)
// strategy.exit("exit long", "MacdLE", stop=stopLoss, limit=takeProfit)
if (ta.crossunder(delta, 0))
stopLoss = high + 0.3
takeProfit = low - 0.3
strategy.entry("MacdSE", strategy.short,qty=qty, comment="MacdSE")
strategy.exit("exit long", "MacdLE", limit=takeProfit)
// strategy.exit("exit short", "MacdSE", stop=stopLoss, limit=takeProfit)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)