
Стратегия MACD Valley Detector - это торговая стратегия, основанная на индикаторе MACD. Стратегия генерирует сигнал к покупке, обнаруживая дно индикатора MACD. Когда индикатор MACD формирует дно, и значение MACD меньше, чем равно -0.4, и разница между MACD и его сигнальной линией меньше, чем 0, стратегия посылает сигнал к покупке, устанавливая при этом стоп-цену.
В основе стратегии MACD Valley Detector лежит использование индикатора MACD для поимки потенциальных возможностей для обратного хода. MACD-индикатор рассчитывается как разница между двумя индикаторами (движущейся средней величины (EMA)), отражая динамику изменения цены. Когда индикатор MACD формирует дно долины, это указывает на то, что падение цены может ослабеть и существует возможность обратного хода.
Эта стратегия использует следующие условия для определения нижнего уровня MACD:
Когда вышеперечисленные условия одновременно выполняются, стратегия считает, что появилось дно MACD, и посылает сигнал купить. В то же время, стратегия устанавливает фиксированную стоп-цену, то есть цена покупки плюс фиксированная разница в цене ((takeProfitValue)).
Стратегия MACD Valley Detector - это торговая стратегия, основанная на обнаружении дна MACD-индикатора. Стратегия пытается найти потенциальные возможности для обратной связи и совершить покупку, захватив дно MACD-индикатора. Стратегия использует несколько условий для подтверждения сигнала и устанавливает фиксированную цену остановки.
/*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)