Cette stratégie est un système de suivi de la tendance dynamique basé sur des moyennes mobiles doubles, combinant des signaux croisés de moyennes mobiles rapides et lentes avec une ligne de filtre pour optimiser le timing d'entrée, obtenant des résultats de trading stables grâce à une bonne gestion de l'argent et un contrôle des risques.
La stratégie utilise des moyennes mobiles simples (SMA) de 11 périodes et 31 périodes comme système de signal principal, avec une moyenne mobile de 5 périodes comme filtre. Les signaux d'entrée longue sont générés lorsque la ligne rapide (SMA11) traverse au-dessus de la ligne lente (SMA31) et que le prix est au-dessus de la moyenne du filtre. Les positions sont fermées lorsque la ligne rapide traverse au-dessous de la ligne lente.
La stratégie construit une tendance relativement robuste suivant le système à travers plusieurs moyennes mobiles. Bien qu'elle ait certaines limitations inhérentes, la stabilité et la rentabilité peuvent être encore améliorées grâce à l'optimisation et aux améliorations appropriées.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Nifty 30m SMA Crossover Long', overlay=true) start = timestamp(2020, 1, 1, 0, 0) end = timestamp(2024, 12, 31, 0, 0) SlowSma = ta.sma(close, 31) FastSma = ta.sma(close, 11) FilterSma = ta.sma(close, 5) plot(SlowSma, title='Sma 31', color=color.new(color.green, 0)) plot(FastSma, title='Sma 11', color=color.new(color.red, 0)) plot(FilterSma, title='Filter Sma 5', color=color.new(color.black, 0)) // strategy LongEntry = FastSma > SlowSma and close > FilterSma LongExit = FastSma < SlowSma MyQty = 10000000 / close // // Plot signals to chart // plotshape(not LongExit and strategy.position_size > 0 and bIndicator, title='Hold', location=location.abovebar, color=color.new(color.blue, 0), style=shape.square, text='Hold', textcolor=color.new(color.blue, 0)) // plotshape(LongExit and bIndicator and strategy.position_size > 0, title='Exit', location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, text='Sell', textcolor=color.new(color.red, 0)) // plotshape(LongEntry and strategy.position_size == 0 and bIndicator, '', shape.arrowup, location.abovebar, color.new(color.green, 0), text='Buy', textcolor=color.new(color.green, 0)) // plotshape(not LongEntry and strategy.position_size == 0 and bIndicator, '', shape.circle, location.belowbar, color.new(color.yellow, 0), text='Wait', textcolor=color.new(color.black, 0)) if time >= start and time < end strategy.entry('Enter Long', strategy.long, qty=1, when=LongEntry) strategy.close('Enter Long', when=LongExit)