La estrategia de cruce de media móvil dual es una estrategia de análisis técnico muy clásica y comúnmente utilizada. Esta estrategia utiliza el cruce de una media móvil más rápida y una media móvil más lenta como las señales de negociación para comprar y vender. Cuando la media móvil más rápida cruza por encima de la media móvil más lenta desde abajo, se genera una señal de compra. Cuando la media móvil más rápida cruza por debajo de la media móvil más lenta desde arriba, se genera una señal de venta.
Las partes clave del código de estrategia incluyen:
Definir la longitud y el tipo de medias móviles rápidas y lentas: la media móvil rápida tiene un período de 5 años, la media móvil lenta tiene un período de 21 años, ambas utilizando una media móvil simple.
Calcular las medias móviles rápidas y lentas: utilizando la función sma para calcular las medias móviles simples de 5 y 21 períodos.
Trazar el gráfico: trazar las líneas de tendencia de los MA rápidos y lentos.
Definir las reglas de entrada y salida: comprar cuando el MA rápido cruza el MA lento, vender cuando el MA rápido cruza el MA lento.
Ejecutar operaciones: utilizar las funciones largas y cortas de la estrategia para ejecutar automáticamente operaciones cuando se cumplen las condiciones.
La clave de esta estrategia es usar promedios móviles de diferentes períodos para formar los MA rápidos y lentos, y usar sus cruces como señales comerciales. El MA rápido captura los cambios de precio más rápido mientras que el MA lento refleja mejor la tendencia a largo plazo. El cruce del MA rápido por encima del MA lento indica una ruptura al alza, que es una señal de compra. Y el cruce debajo es una señal de venta. La lógica de esta estrategia es simple y fácil de implementar.
La doble estrategia de cruce de medias móviles tiene las siguientes ventajas:
Principio simple, fácil de entender, adecuado para principiantes.
Sigue la tendencia del precio, pequeña retirada.
Frecuencia de negociación moderada, evita el exceso de negociación.
Parámetros personalizables, flexibles para adaptarse a los cambios del mercado.
Fácil de optimizar y encontrar conjuntos de parámetros personales adecuados.
Puede establecer el stop loss para controlar el riesgo.
Se puede utilizar en varios mercados, alta aplicabilidad.
Puede combinarse con otros indicadores para mejorar el rendimiento.
También hay algunos riesgos con esta estrategia:
La reacción tardía cuando la tendencia es fuerte, puede perder el mejor momento de entrada.
Más señales falsas durante los mercados limitados al rango, puede añadir filtros para evitar operaciones equivocadas.
Demasiadas operaciones pueden afectar a la rentabilidad, pueden ampliar la distancia de MA para reducir los cruces.
Difícil de determinar tendencia, riesgo de negociación contra tendencia puede añadir indicadores de tendencia.
La optimización de parámetros requiere datos históricos suficientes, riesgo de sobreajuste con nuevos productos.
Indicador único susceptible a factores externos, el rendimiento puede ser inestable.
Hay algunas formas de optimizar aún más la estrategia de doble MA:
Prueba diferentes longitudes de MA rápidas y lentas para encontrar los parámetros óptimos para productos comerciales específicos.
Añadir filtros como los volúmenes de negociación, ATR stop loss para reducir las oportunidades inferiores.
Combinar indicadores de impulso para confirmar las señales comerciales y evitar falsos breakouts.
Optimice las estrategias de stop loss para evitar salidas prematuras o tardías.
Incorporar indicadores de tendencia y de onda para permitir el seguimiento de tendencias y el comercio contra tendencias.
Se utilizarán MAs adaptativas para ajustar los parámetros en función de las condiciones del mercado en lugar de períodos fijos.
Utilice combinaciones de parámetros para diferentes sesiones y características del mercado.
Realizar optimización en tiempo real mediante algoritmos de aprendizaje automático para mejorar continuamente los parámetros.
Con su lógica simple y facilidad de implementación, la estrategia de cruce de media móvil dual se ha convertido en una de las estrategias de análisis técnico más esenciales y ampliamente utilizadas. Sigue la tendencia del precio con retroceso controlado y riesgo aceptable. Pero también hay un enorme potencial de optimización, mediante el ajuste de parámetros, la incorporación de otros indicadores y algoritmos automatizados, su aplicabilidad y rendimiento pueden mejorarse aún más. En general, la estrategia de cruce de media móvil dual MA merece gran atención y aplicación a largo plazo por parte de los inversores.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("Stochastic Strategy of BiznesFilosof", shorttitle="SS of BiznesFilosof", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.15, pyramiding=0) //Period startY = input(title="Start Year", defval = 2011) startM = input(title="Start Month", defval = 1, minval = 1, maxval = 12) startD = input(title="Start Day", defval = 1, minval = 1, maxval = 31) finishY = input(title="Finish Year", defval = 2050) finishM = input(title="Finish Month", defval = 12, minval = 1, maxval = 12) finishD = input(title="Finish Day", defval = 31, minval = 1, maxval = 31) //finish = input(2019, 02, 28, 00, 00) timestart = timestamp(startY, startM, startD, 00, 00) timefinish = timestamp(finishY, finishM, finishD, 23, 59) window = true // Lenghth strategy length1 = input(21, minval=1), smoothK1 = input(3, minval=1), smoothD1 = input(3, minval=1) //length2 = input(5, minval=1), smoothK2 = input(1, minval=1), smoothD2 = input(1, minval=1) inh0 = input(title="Bottom Line", defval = 14, minval=0), inh1 = input(title="Upper Line", defval = 86, minval=0) k1 = sma(stoch(close, high, low, length1), smoothK1) d1 = sma(k1, smoothD1) plot(k1, color=blue) plot(d1, color=red) //k2 = sma(stoch(close, high, low, length2), smoothK2) //d2 = sma(k2, smoothD2) //plot(k2, color=orange) h1 = hline(inh1) h0 = hline(inh0) fill(h0, h1, color = aqua, transp=90) //open strategy.entry("LongEntryID", strategy.long, comment="LONG", when = crossover(k1, d1) and crossover(k1, inh0) and window) strategy.entry("ShortEntryID", strategy.short, comment="SHORT", when = crossunder(k1, d1) and crossunder(k1, inh1) and window) if crossunder(k1, d1) and crossunder(k1, inh1) and strategy.position_size > 0 strategy.close_all() if crossover(k1, d1) and crossover(k1, inh0) and strategy.position_size < 0 strategy.close_all()