La estrategia Three SMA Crossover Momentum es una estrategia típica de indicadores técnicos que rastrea las tendencias del mercado. Combina promedios móviles simples de 16-, 36- y 72 períodos y utiliza sus cruces alcistas y bajistas para determinar las tendencias del mercado, junto con el Kaufman Adaptive Moving Average (KAMA) como un filtro para tomar posiciones largas o cortas cuando la dirección de la tendencia es relativamente clara.
Los indicadores centrales de esta estrategia son los promedios móviles simples de 16-, 36- y 72 períodos. Cuando el SMA de período más corto cruza el uno de período más largo hacia arriba, indica que el mercado está entrando en una tendencia alcista. Cuando el SMA de período más corto cruza por debajo del uno de período más largo hacia abajo, indica que el mercado está entrando en una tendencia bajista. Por ejemplo, cuando el 16-SMA cruza el 36-SMA y el 72-SMA, es una señal alcista. Y cuando el 16-SMA cruza por debajo del 36-SMA y el 72-SMA, es una señal bajista.
El Kaufman Adaptive Moving Average (KAMA) sirve como un filtro para evitar señales erróneas cuando la tendencia no está clara.
La estrategia rastrea las situaciones de cruce de SMA para tomar posiciones largas o cortas cuando la tendencia es relativamente clara. La condición larga es el cruce de 16-SMA sobre 36-SMA y 72-SMA con KAMA lineal. La condición corta es el cruce de 16-SMA por debajo de 36-SMA y 72-SMA con KAMA lineal.
Las ventajas de esta estrategia son:
También hay algunos riesgos con esta estrategia:
Los riesgos podrían reducirse ajustando los parámetros de la SMA, estableciendo restricciones de stop loss o aplicándolos únicamente a mercados altamente volátiles.
La estrategia se puede optimizar de las siguientes maneras:
La estrategia Three SMA Crossover Momentum es una estrategia bastante clásica y práctica de seguimiento de tendencias en general. Juzga las tendencias de mercado a medio y largo plazo de manera efectiva a través de cruces de SMA de varios períodos y filtra algo de ruido. Puede servir como uno de los indicadores de referencia de tiempo para el comercio posicional. Pero esta estrategia también tiene algunas debilidades, que requieren mejoras y optimizaciones adicionales para estar en mercados más diversos.
/*backtest start: 2023-11-24 00:00:00 end: 2023-12-24 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Wielkieef //@version=5 strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) src = close Length1 = input.int(16, title=' 1-SMA Lenght', minval=1, group='SMA') Length2 = input.int(36, title=' 2-SMA Lenght', minval=1, group='SMA') Length3 = input.int(72, title=' 3-SMA Lenght', minval=1, group='SMA') SMA1 = ta.sma(close, Length1) SMA2 = ta.sma(close, Length2) SMA3 = ta.sma(close, Length3) Long_ma = SMA1 > SMA2 and SMA2 > SMA3 Short_ma = SMA1 < SMA2 and SMA2 < SMA3 LengthMainSMA = input.int(100, title=' Trend SMA ', minval=1) SMAas = ta.sma(src, LengthMainSMA) // Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef) lengthas = input.int(50, title=' KAMA Lenght') sp = input.bool(true, title=' Self Powered') er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas) pow = sp ? 1 / er : 2 per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow) a = 0. a := per * src + (1 - per) * nz(a[1], src) mad4h = 0. a_f = a / a[1] > .999 and a / a[1] < 1.001 ///. Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray barcolor(color=Bar_color) long_cond = Long_ma and SMAas < close and not a_f and close > a short_cond = Short_ma and SMAas > close and not a_f and close < a long_stop = Short_ma and SMAas < close short_stop = Long_ma and SMAas > close SMA1plot = plot(SMA1, color=Bar_color, linewidth=2) SMA2plot = plot(SMA2, color=Bar_color, linewidth=4) SMA3plot = plot(SMA3, color=Bar_color, linewidth=2) fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50)) if long_cond strategy.entry('Long', strategy.long) if short_cond strategy.entry('Short', strategy.short) strategy.close_all(when=long_stop or short_stop) //by wielkieef