La doble media móvil y la estrategia de combinación de MACD es una estrategia de negociación cuantitativa que utiliza tanto medias móviles como indicadores de impulso para la generación y validación de señales comerciales. Al combinar la capacidad de seguimiento de tendencias de las medias móviles y la característica de impulso de MACD, esta estrategia puede capturar eficazmente el contorno de las tendencias del mercado a través de criterios estrictos de entrada y salida, evitando al mismo tiempo el riesgo de un rango de ganancias reducido o fluctuaciones del mercado que pueden conducir a una reducción de ganancias o incluso pérdidas.
Esta estrategia emplea una combinación de la media móvil simple de 20 períodos (SMA) y la media móvil exponencial de 5 períodos (EMA). La SMA de 20 períodos puede suavizar las fluctuaciones del mercado de manera efectiva y determinar las tendencias de precios a medio y largo plazo, mientras que la EMA de 5 períodos asigna mayores pesos a los precios recientes y reacciona sensiblemente a los cambios de precios a corto plazo. Las señales de compra se generan cuando el precio cruza por encima de la línea de 5 períodos mientras está por encima de la línea de 20 períodos, y las señales de venta se generan cuando el precio cruza por debajo de la línea de 5 períodos mientras está por debajo de la línea de 20 períodos.
Después de que se generan las señales comerciales, se introduce el indicador MACD para validar la tendencia. Específicamente, cuando se activan las señales de compra, la línea MACD DIFF necesita ver una cruz de oro con la línea DEA que se mantiene durante varios períodos para confirmar una tendencia al alza; por el contrario, cuando se activan las señales de venta, se debe observar una cruz muerta seguida de una tendencia a la baja durante varios períodos. Esto filtra las operaciones de ruido y evita abrir posiciones con frecuencia durante las consolidaciones del mercado.
Por último, se establecen niveles razonables de stop-loss tanto para posiciones largas como cortas. La línea de stop-loss larga se establece por debajo del punto más bajo desde la entrada, mientras que la línea de stop-loss corta se establece por encima del punto más alto desde la entrada. Los niveles de stop-loss se actualizan dinámicamente con las fluctuaciones de precios.
Los parámetros del MACD se pueden ajustar para una mejor cooperación. Además, los parámetros del período promedio móvil necesitan optimización por características del producto. Finalmente, el rango de stop loss se puede aflojar razonablemente para permitir la liberación completa de ganancias para los movimientos direccionales principales.
Para ello, se pueden seguir optimizando en las siguientes direcciones:
Introducir algoritmos de promedios móviles adaptativos. Las combinaciones de promedios móviles dinámicos se adaptan automáticamente a los mercados sin necesidad de ajuste manual de parámetros.
Incorporar modelos de aprendizaje automático. Los algoritmos como el aprendizaje profundo pueden identificar automáticamente las características del mercado de diferentes productos y generar configuraciones de parámetros óptimas en tiempo real.
Se pueden introducir otros indicadores técnicos además de las señales de corriente como estándares de juicio auxiliares, como la integración de factores de volumen.
Optimizar las estrategias de stop loss. Se deben investigar técnicas de stop loss más inteligentes como breakout stop loss y tracking stop loss, para obtener una mayor recompensa mientras se controla el riesgo.
La doble media móvil y la combinación de estrategias MACD consideran aspectos como tendencia, impulso, control de riesgos más allá de las limitaciones de indicadores técnicos únicos, y pueden mejorar efectivamente la estabilidad de la negociación cuantitativa.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Band Strategy with Early Signal (v5)", overlay=true) // Inputs length = 20 mult = 1.5 src = close riskRewardRatio = input(3.0, title="Risk-Reward Ratio") // Calculating Bollinger Bands basis = ta.ema(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plotting Bollinger Bands plot(upper, "Upper Band", color=color.red) plot(lower, "Lower Band", color=color.green) // Tracking Two Candles Ago Crossing Bollinger Bands var float twoCandlesAgoUpperCrossLow = na var float twoCandlesAgoLowerCrossHigh = na if (close[2] > upper[2]) twoCandlesAgoUpperCrossLow := low[2] if (close[2] < lower[2]) twoCandlesAgoLowerCrossHigh := high[2] // Entry Conditions longCondition = (not na(twoCandlesAgoLowerCrossHigh)) and (high > twoCandlesAgoLowerCrossHigh) shortCondition = (not na(twoCandlesAgoUpperCrossLow)) and (low < twoCandlesAgoUpperCrossLow) // Plotting Entry Points plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Execution if (longCondition) stopLoss = low - (high - low) * 0.05 takeProfit = close + (close - stopLoss) * riskRewardRatio strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", "Buy", stop=stopLoss, limit=takeProfit) if (shortCondition) stopLoss = high + (high - low) * 0.05 takeProfit = close - (stopLoss - close) * riskRewardRatio strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", "Sell", stop=stopLoss, limit=takeProfit)