Esta estrategia utiliza una combinación de promedios móviles con diferentes períodos para establecer tendencias y utiliza aproximaciones de derivados de diferencia finita para predecir posibles reversiones.
La estrategia utiliza promedios móviles simples de 20, 40 y 80 períodos simultáneamente. Cuando el precio de cierre está por encima de estos 3 promedios móviles, se define como una tendencia alcista; cuando el precio de cierre está por debajo de estos 3 promedios móviles, se define como una tendencia bajista. La tendencia se confirma solo cuando el precio más bajo está por encima o el precio más alto está por debajo de estos 3 promedios móviles.
Para predecir posibles puntos de reversión, la estrategia utiliza la aproximación derivada de la diferencia finita de la primera derivada de la media móvil simple de 40 períodos.
Las reglas específicas para el comercio son:
Cuando la línea rápida esté por encima de la línea media y la línea media por encima de la línea lenta, y la primera derivada sea > 0, vaya a largo;
Cuando la línea rápida esté por debajo de la línea media y la línea media esté por debajo de la línea lenta, y la primera derivada < 0, se hará corto;
cierre de la posición larga cuando el primer derivado <= 0;
Puesta a disposición de la entidad en el mercado de valores en el momento en que el primer derivado >= 0.
Las ventajas de esta estrategia incluyen:
El uso de múltiples medias móviles para determinar tendencias hace que el juicio de tendencias sea más confiable;
La predicción de los puntos de reversión con los derivados permite un stop loss oportuno y reducciones de los drawdowns;
La lógica es sencilla y fácil de entender, adecuada para principiantes;
Sólo las inversiones comerciales después de las tendencias evitan quedar atrapadas y tienen una mayor tasa de ganancia.
También hay algunos riesgos con esta estrategia:
La combinación de medias móviles puede dar señales erróneas durante los mercados de rango;
Las señales de reversión de los derivados pueden retrasarse y no pueden evitar completamente las pérdidas;
La configuración incorrecta de stop loss puede aumentar las pérdidas.
Para hacer frente a estos riesgos, podemos optimizar los parámetros de las medias móviles, ajustar el stop loss, combinar con otros indicadores para mejorar la estrategia.
La estrategia se puede optimizar en los siguientes aspectos:
Optimizar los períodos de media móvil para adaptarse mejor a las diferentes condiciones del mercado;
Pruebe diferentes tipos de medias móviles, como las EMA;
utilizar indicadores de volatilidad para establecer paradas dinámicas;
Combinar otros indicadores de confirmación para evitar señales falsas.
Esta estrategia de combinación de tendencia de promedios móviles utiliza múltiples promedios móviles para determinar la dirección de la tendencia y derivados para predecir las reversiones, lo que puede controlar eficazmente los riesgos y es adecuado para el comercio a mediano plazo.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Big 3",overlay=true, default_qty_type=strategy.percent_of_equity) // enter on Arrows // take profit on touch with 80 SMA, gray, or at discretion fast = sma(close,20) mid = sma(close,40) slow = sma(close,80) plot(fast,linewidth=1) plot(mid,linewidth=2) plot(slow,linewidth=4) isUptrend = close > fast and close > mid and close > slow isDowntrend = close < fast and close < mid and close < slow confirmed = (low > fast and low > mid and low > slow) or (high < fast and high < mid and high < slow) deriv = 3 * mid[0] - 4 * mid[1] + mid[2] stableUptrend = (fast > mid) and (mid > slow) and (deriv > 0) stableDowntrend = (fast < mid) and (mid < slow) and (deriv < 0) barcolor(isUptrend ? green : isDowntrend ? red : gray) plotshape(not confirmed[1] and confirmed and isUptrend ? close : na,style=shape.arrowup,location=location.belowbar,color=green) plotshape(not confirmed[1] and confirmed and isDowntrend ? close : na,style=shape.arrowdown,location=location.abovebar,color=red) stop = na //stop = input(1000, "Stop") strategy.entry("long", strategy.long, when=(stableUptrend), stop=stop) strategy.close("long", when=(deriv <= 0)) strategy.entry("short", strategy.short, when=(stableDowntrend), stop=stop) strategy.close("short", when=(deriv >= 0))