Cette stratégie combine l'indicateur SuperTrend et l'indicateur MACD pour capturer les petites tendances pour le profit. Elle utilise l'indicateur SuperTrend pour déterminer la tendance actuelle du marché et l'indicateur MACD comme condition auxiliaire pour l'entrée et la sortie.
En combinant l'indicateur SuperTrend et l'indicateur MACD, cette stratégie capte les petites tendances tout en tenant compte de la continuité de la tendance, ce qui en fait une stratégie relativement complète et équilibrée. Les atouts de la stratégie résident dans sa logique claire, sa facilité de compréhension et de mise en œuvre, et l'utilisation d'un indicateur MACD à plus long terme comme condition auxiliaire pour filtrer efficacement les faux signaux. Cependant, la stratégie comporte également certains risques, tels que le potentiel de négociation fréquente sur des marchés agités, la sensibilité aux paramètres et l'absence de mesures de stop-loss.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Samsuga supertrend", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) atrPeriod = input.int(7, "ATR Length", minval = 1) factor = input.float(1.0, "Factor", minval = 0.01, step = 0.01) [supertrend, direction] = ta.supertrend(factor, atrPeriod) supertrend := barstate.isfirst ? na : supertrend upTrend = plot(direction <= 0 ? supertrend : na, "Up Trend", color = color.green, style = plot.style_linebr) downTrend = plot(direction <= 0 ? na : supertrend, "Down Trend", color = color.red, style = plot.style_linebr) bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle",display = display.none) longcondition = direction[1] > direction shortCondition = direction[1] < direction macdp1 = 3 macdp2=10 macdp3=6 [macdLine, signalLine, histLine] =request.security(symbol = syminfo.tickerid, timeframe = "30",expression = ta.macd(close,macdp1,macdp2,macdp3),lookahead=barmerge.lookahead_on) // plot(macdLine, title = "MACD", color = #2962FF) // plot(signalLine, title = "Signal", color = #FF6D00) // 8, 21, 5 // 8,13,9 // 12,26,9 // 1--> 3, 17, 5 // 3, 10, 16 // log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0])) // /////////----------------METHOD 1-----------------//////////////// // if(longcondition) // if(strategy.opentrades>0) // strategy.close("Long","Prev Exit", immediately = true) // if( histLine[0] > 0.1) // strategy.entry(id= "Long", direction=strategy.long, comment = "update long") // else if(shortCondition and strategy.openprofit<=0.1) // strategy.close("Long",comment = "Close",immediately = true) // /////////----------------METHOD 2-----------------//////////////// // if(longcondition) // if(histLine[0] > 0) // strategy.entry(id= "Long", direction=strategy.long, comment = "update long" ) // strategy.exit("Long", loss = close*0.2) // else if(shortCondition ) // strategy.close("Long",comment = "Close",immediately = true) // /////////----------------METHOD 3-----------------//////////////// // log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0])) if(longcondition) if(histLine[0] > 0) strategy.close("Short",comment = "E-S", alert_message = "E-S",disable_alert = true) strategy.entry(id= "Long", direction=strategy.long, comment = "L",alert_message = "L") else if(shortCondition) if(histLine[0] < 0) strategy.close("Long",comment = "E-L",alert_message = "E-L",disable_alert = true) strategy.entry(id= "Short", direction=strategy.short, comment = "S",alert_message = "S")