Esta estrategia optimiza el indicador MACD clásico de múltiples maneras para generar señales de negociación más precisas y confiables y lograr un control de riesgos más estricto. Las principales optimizaciones incluyen: 1introducción del indicador RSI para evitar la sobrecompra / sobreventa; 2añadir confirmación de volumen; 3establecimiento de stop loss y take profit; 4optimización de la combinación de parámetros.
El principio básico sigue utilizando la cruz de oro del MACD para largo y la cruz de la muerte para corto.
Introducción del indicador RSI para evitar la generación de señales falsas cuando el mercado está sobreestimado o subestimado.
La ampliación del volumen de negociación puede confirmar la fuerza de la tendencia.
Establecer mecanismos de stop loss y take profit que puedan rastrear dinámicamente las fluctuaciones del mercado y controlar los riesgos dentro de rangos soportables.
Optimización de la combinación de parámetros MACD para obtener una mejor cartera de parámetros y generar señales comerciales más precisas.
Esta estrategia MACD multi-optimizada tiene las siguientes ventajas significativas:
Aumento considerable de la fiabilidad y precisión de la señal al reducir las señales falsas.
El estricto mecanismo de stop loss y take profit controla los riesgos comerciales y bloquea las ganancias en la medida máxima.
Los parámetros MACD están optimizados y más adecuados para diferentes productos y plazos.
Las señales generadas a partir de múltiples combinaciones de indicadores tienen una mayor robustez y adaptabilidad a entornos de mercado más amplios.
La eficiencia general del capital y la relación de riesgo-beneficio se han mejorado considerablemente.
También es necesario prevenir algunos riesgos de esta estrategia:
Los parámetros optimizados pueden no ser adecuados al 100% para todos los productos y períodos, lo que requiere ajustes situacionales.
La frecuencia de generación de señales se reducirá, lo que dará lugar a ciertos riesgos comerciales perdidos.
En condiciones extremas de mercado pueden aparecer señales contradictorias de múltiples indicadores, lo que requiere un juicio manual.
El stop loss automático puede detenerse prematuramente en escenarios de brecha rápida, lo que representa cierto riesgo para las ganancias.
Las contramedidas consisten principalmente en el seguimiento y la evaluación manuales, el ajuste de los parámetros según las condiciones del mercado cuando sea necesario y el control del tamaño de las posiciones.
La estrategia se puede optimizar aún más en los siguientes aspectos:
Prueba más combinaciones de indicadores como bandas de Bollinger, KD para formar un juicio de grupo.
Aplicar algoritmos de aprendizaje automático para optimizar automáticamente los parámetros para una mayor inteligencia.
Introducir estrategias de gestión de dinero más estrictas como la fracción fija, la fórmula de Kelly, etc.
Desarrollar estrategias automáticas de toma de ganancias para ajustar los puntos de toma de ganancias en función de las tendencias y la volatilidad.
Aplicar algoritmos de vanguardia como el aprendizaje profundo para predicciones más precisas.
Esta estrategia resuelve los problemas de la tendencia del MACD a generar señales falsas y un control de riesgo inadecuado. La aplicación de múltiples indicadores combinados con stop loss y take profit hace que las señales sean más precisas y confiables, y el control de riesgos también sea más estricto. Esta estrategia merece un mayor desarrollo y aplicación, y es un paradigma de mejora del indicador MACD.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("优化版MACD交易策略 ", overlay=true) // 输入参数 fastLength = input(16, "快速线周期") slowLength = input(34, "慢速线周期") signalSmoothing = input(10, "信号线平滑") rsiPeriod = input(19, "RSI周期") overboughtRsi = 70 oversoldRsi = 30 volumeAvgPeriod = input(13, "成交量平均周期") stopLossPerc = input.float(10.5, "止损百分比", step=0.1) takeProfitPerc = input.float(0.3, "止盈百分比", step=0.1) // 计算指标 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) rsi = ta.rsi(close, rsiPeriod) volumeAvg = ta.sma(volume, volumeAvgPeriod) // 交易信号 longCondition = ta.crossover(macdLine, signalLine) and macdLine > 0 and rsi < overboughtRsi and volume > volumeAvg shortCondition = ta.crossunder(macdLine, signalLine) and macdLine < 0 and rsi > oversoldRsi and volume > volumeAvg // 止损和止盈 longStopLossPrice = close * (1 - stopLossPerc / 100) longTakeProfitPrice = close * (1 + takeProfitPerc / 100) shortStopLossPrice = close * (1 + stopLossPerc / 100) shortTakeProfitPrice = close * (1 - takeProfitPerc / 100) // 执行交易 if longCondition strategy.entry("买入", strategy.long) strategy.exit("买入止损止盈", "买入", stop=longStopLossPrice, limit=longTakeProfitPrice) if shortCondition strategy.entry("卖出", strategy.short) strategy.exit("卖出止损止盈", "卖出", stop=shortStopLossPrice, limit=shortTakeProfitPrice)