Esta estrategia es un sistema de seguimiento de tendencia de impulso basado en medias móviles duales, que combina señales cruzadas de medias móviles rápidas y lentas con una línea de filtro para optimizar el tiempo de entrada, logrando resultados comerciales estables a través de una gestión adecuada del dinero y el control de riesgos.
La estrategia emplea promedios móviles simples (SMA) de 11 períodos y 31 períodos como sistema de señal principal, con una media móvil de 5 períodos como filtro. Las señales de entrada largas se generan cuando la línea rápida (SMA11) cruza por encima de la línea lenta (SMA31) y el precio está por encima del promedio del filtro. Las posiciones se cierran cuando la línea rápida cruza por debajo de la línea lenta. La estrategia implementa la gestión del riesgo a través del tamaño de posición fijo.
La estrategia construye una tendencia relativamente robusta siguiendo el sistema a través de múltiples promedios móviles. Aunque tiene algunas limitaciones inherentes, la estabilidad y la rentabilidad se pueden mejorar aún más a través de la optimización y las mejoras apropiadas. Se aconseja a los operadores que ajusten los parámetros basados en condiciones específicas del mercado al implementar la estrategia en el comercio en vivo.
/*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)