Esta estratégia utiliza a dupla linha de equilíbrio e os dois indicadores de SuperTrend para construir sinais de negociação, ao mesmo tempo em que combina diferentes períodos para determinar a direção da tendência e obter lucro eficiente.
Esta estratégia usa MACD e SuperTrend dois indicadores para determinar o momento de entrada no mercado. Dentre eles, MACD binário equilíbrio determina a direção da tendência de curto prazo, Supertrend determina a direção da tendência de médio prazo.
Quando a linha rápida de baixo para cima quebra a linha lenta para um sinal de compra, então se a Supertrend de médio e longo prazo é uma tendência ascendente, produz um sinal de compra final, fazendo mais; ao contrário, quando a linha rápida de cima para baixo quebra a linha lenta para um sinal de venda, então se a Supertrend de médio e longo prazo é uma tendência de queda, produz um sinal de venda final, fazendo vazio.
Stop Loss e Stop Stop são valores fixos.
A maior vantagem desta estratégia é que a utilização simultânea de duas linhas de média e SuperTrend para determinar a direção do mercado, em combinação com o curto e médio prazo, aumenta significativamente a eficiência de decisão, evitando a ocorrência de falsas rupturas. Além disso, a Supertrend pode ser ajustada de acordo com os parâmetros de regulação da volatilidade do mercado e adaptar-se a um ambiente de mercado mais amplo.
O principal risco desta estratégia é que a configuração de stop loss fixo pode perder uma maior margem de lucro. Além disso, a estratégia não pode funcionar corretamente se houver discordância entre o julgamento de curto e médio prazo. Podemos reduzir esse risco com a configuração de stop loss flutuante.
A estratégia pode ser melhorada em alguns aspectos:
Aumentar o mecanismo de ajuste dinâmico do stop loss, ajustando o stop loss de acordo com a volatilidade e a tendência do mercado.
Optimizar os parâmetros MACD para encontrar os parâmetros de linha média mais adequados para a variedade alvo.
Otimizar os parâmetros da Supertrend para ajustar sua sensibilidade ao mercado.
Aumentar os outros indicadores de julgamento, fornecendo sinais de mais dimensões e aumentando a eficácia da estratégia.
Esta estratégia combina com sucesso os benefícios dos dois indicadores, a dupla linha de equilíbrio e a SuperTrend, para filtrar os sinais errôneos através da combinação de diferentes períodos e, assim, obter melhores ganhos em mercados de tendência. Podemos aumentar ainda mais a estabilidade e a lucratividade da estratégia através da otimização de parâmetros e do ajuste do mecanismo.
/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator
strategy("Super Trend 2 MACD", overlay=true)
// MACD input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")
// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)
Macd = fastMA - slowMA
Signal = sma(Macd, signalLength)
res = input(title="Main SuperTrend Time Frame", defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)
tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))
Mclose=request.security(syminfo.tickerid,res,close)
TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn
MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn
Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown
MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown
linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")
Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")
plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
up = Trend == 1 and Trend[1] == -1 and MTrend == 1
down = Trend == -1 and Trend[1] == 1 and MTrend == -1
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)
golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 and Macd > Signal
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 and Macd < Signal
strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)