Cette stratégie combine les indicateurs doubles de moyenne mobile et de Supertrend pour construire des signaux de trading et juge la direction de la tendance à travers différentes combinaisons de cycles afin d'obtenir une rentabilité élevée.
Cette stratégie utilise les indicateurs MACD et Supertrend pour déterminer le moment de l'entrée sur le marché. Les moyennes mobiles doubles MACD déterminent la direction de la tendance à court terme, tandis que Supertrend détermine la direction de la tendance à moyen et long terme.
Lorsque la ligne rapide traverse la ligne lente vers le haut, c'est un signal d'achat. À ce moment-là, si la Supertrend à moyen et long terme est également une tendance à la hausse, le signal d'achat final est généré pour aller long. Au contraire, lorsque la ligne rapide traverse la ligne lente vers le bas, c'est un signal de vente. À ce moment-là, si la Supertrend à moyen et long terme est également une tendance à la baisse, le signal de vente final est généré pour aller court.
Le stop loss et le take profit sont fixés à des valeurs fixes.
L'avantage majeur de cette stratégie est qu'elle utilise à la fois des moyennes mobiles doubles et Supertrend pour déterminer l'orientation du marché, combinant des analyses à moyen et court terme et à moyen et long terme pour améliorer considérablement l'efficacité des décisions et éviter de fausses ruptures.
Le principal risque de cette stratégie est que les paramètres de stop loss et de take profit fixes peuvent manquer de plus grandes opportunités de profit. De plus, s'il y a une divergence entre les jugements à moyen et court terme et à moyen et long terme, la stratégie ne fonctionnera pas correctement. Nous pouvons réduire ce risque par des paramètres de stop loss et de take profit flottants.
Cette stratégie peut être optimisée dans les aspects suivants:
Améliorer le mécanisme d'ajustement dynamique pour le stop loss et le take profit et définir le stop loss et le take profit en fonction de la volatilité et des tendances du marché.
Optimiser les paramètres du MACD pour trouver des paramètres de moyenne mobile plus adaptés à la variété cible.
Optimiser les paramètres de Supertrend pour ajuster sa sensibilité au marché.
Augmenter les autres indicateurs de jugement pour fournir des signaux plus dimensionnels et améliorer les performances de la stratégie.
Cette stratégie combine avec succès les avantages des moyennes mobiles doubles et des indicateurs de Supertrend. En combinant différents jugements de cycle, elle filtre les mauvais signaux et obtient de meilleurs rendements sur les marchés tendance. Nous pouvons encore améliorer la stabilité et la rentabilité de cette stratégie grâce à l'optimisation des paramètres et aux ajustements du mécanisme.
/*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)