La stratégie dynamique d'équilibrage intradien à court terme combinant moyenne mobile et supertrend est une stratégie de trading quantitative écrite en Pine ScriptTM 5. La stratégie utilise l'indicateur MACD et l'indicateur Supertrend pour capturer les opportunités de tendance sur le marché, tout en contrôlant le risque grâce à une commutation dynamique à long terme et à un stop-loss/take-profit.
Le noyau de cette stratégie est de combiner l'indicateur MACD et l'indicateur Supertrend pour déterminer la direction de tendance du marché.
Par le biais d'une commutation dynamique long-short, la stratégie peut s'adapter aux changements du marché et saisir les opportunités de tendance.
La stratégie d'équilibrage dynamique intradien à court terme combinant moyenne mobile et supertrend est une stratégie de trading basée sur le suivi des tendances et le jugement de l'élan. En combinant l'indicateur Supertrend et l'indicateur MACD et en ajustant dynamiquement la direction de la position, la stratégie peut s'adapter aux changements du marché et saisir les opportunités de tendance.
Cependant, la stratégie comporte également certains risques et lacunes, tels que le risque d'échec de l'indicateur, le risque d'optimisation des paramètres, le risque de stop-loss, etc. Pour améliorer davantage la stratégie, on peut envisager d'ajouter une logique de stop-loss, d'optimiser les paramètres, d'ajouter plus de conditions de filtrage du signal et de tester sur plusieurs marchés.
Dans l'ensemble, la stratégie d'équilibrage dynamique intradien à court terme combinant moyenne mobile et supertrend fournit une façon de penser pour le suivi des tendances et le contrôle des risques. Dans l'application pratique, les traders doivent apporter des ajustements et des optimisations appropriés à la stratégie en fonction de leurs propres préférences en matière de risque et des caractéristiques du marché, et l'utiliser avec prudence. Les stratégies de trading quantitatives peuvent fournir des idées de trading, mais le marché est en constante évolution, et aucune stratégie ne peut garantir des profits. Les investisseurs doivent comprendre les principes et les risques de la stratégie, contrôler raisonnablement les positions, arrêter strictement les pertes et toujours rester alertes afin de survivre sur le marché à long terme.
/*backtest start: 2023-03-05 00:00:00 end: 2024-03-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © smj31071995 //@version=5 strategy("EQ - INTRA - Samsuga supertrend prod", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_every_tick = false) atrPeriod = input.int(7, "ATR Length", minval = 1) factor = input.float(1.0, "Factor", minval = 0.01, step = 0.01) st_tf = "3" macd_tf="30" [supertrend, direction] =request.security(symbol = syminfo.tickerid, timeframe = st_tf,expression = ta.supertrend(factor, atrPeriod),lookahead=barmerge.lookahead_on) 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 = 2 macdp2=8 macdp3=4 [macdLine, signalLine, histLine] =request.security(symbol = syminfo.tickerid, timeframe = macd_tf,expression = ta.macd(close,macdp1,macdp2,macdp3),lookahead=barmerge.lookahead_on) // log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0])) timezone_input = input("Asia/Kolkata", title="Timezone") // log.info(timezone_input) if(hour==15 and minute==15) strategy.close_all(comment = "DAY EXIT",alert_message = "X-D") else if(hour==9 and minute==30) if(longcondition or histLine[1]>0) strategy.entry(id= "Long", direction=strategy.long, comment = "DL",alert_message = "L") else if(shortCondition or histLine[1]<0) strategy.entry(id= "Short", direction=strategy.short, comment = "DS",alert_message = "S") else if(longcondition) strategy.close("Short",comment = "X-S", alert_message = "X-S") if(histLine[1]>0) strategy.entry(id= "Long", direction=strategy.long, comment = "L",alert_message = "L") else if(shortCondition) strategy.close("Long",comment = "X-L",alert_message = "X-L") if(histLine[1]<0) strategy.entry(id= "Short", direction=strategy.short, comment = "S",alert_message = "S") // 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-----------------////////////////