
Strategi MACD Valley Detector adalah strategi perdagangan berdasarkan MACD. Strategi ini menghasilkan isyarat pembelian dengan mengesan bahagian bawah MACD. Apabila MACD membentuk bahagian bawah, dan nilai MACD kurang dari -0.4, dan perbezaan antara MACD dan garis isyaratnya kurang dari 0, strategi ini akan menghantar isyarat pembelian, sambil menetapkan harga berhenti.
Inti strategi MACD Valley Detector adalah menggunakan penunjuk MACD untuk menangkap peluang pembalikan yang berpotensi. Penunjuk MACD dikira oleh perbezaan antara dua indeks Moving Average (EMA), yang mencerminkan perubahan dinamik harga. Apabila penunjuk MACD membentuk bahagian bawah lembah, menunjukkan pergerakan turun harga mungkin melemah dan kemungkinan pembalikan.
Strategi ini menggunakan syarat-syarat berikut untuk menentukan bahagian bawah MACD:
Apabila kedua-dua syarat di atas dipenuhi, strategi menganggap MACD di bawah dan menghantar isyarat beli. Pada masa yang sama, strategi menetapkan harga berhenti tetap, iaitu harga beli ditambah dengan perbezaan harga tetap ((takeProfitValue)).
Strategi MACD Valley Detector adalah strategi perdagangan yang berdasarkan pada pengesanan di bawah lembah indikator MACD. Dengan menangkap lembah indikator MACD, strategi ini cuba mencari peluang pembalikan yang berpotensi dan melakukan pembelian. Strategi ini menggunakan pelbagai syarat untuk mengesahkan isyarat dan menetapkan harga berhenti tetap. Walaupun strategi ini mempunyai beberapa kelebihan, seperti penggunaan penunjuk MACD yang digunakan secara meluas dan pengesahan berbilang syarat, terdapat juga beberapa risiko dan batasan, 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)