El sistema de seguimiento de la reversión de las medias móviles dobles integra la estrategia de patrón de reversión 123 y la estrategia de Ichimoku para identificar oportunidades de reversión y rastrear tendencias de rendimientos excesivos.
La estrategia consta de dos subestrategias:
Esta estrategia se basa en patrones de precios.
Ir largo cuando el precio de cierre sube durante dos días consecutivos y el estocástico lento de 9 días está por debajo de 50.
Ir corto cuando el precio de cierre cae durante dos días consecutivos y el estocástico rápido de 9 días está por encima de 50.
Utiliza la ruptura de los cierres de los días anteriores para determinar las reversiones y utiliza estocástica para filtrar el ruido.
Esta estrategia se basa en el cruce de cinco líneas de Ichimoku.
Ir largo cuando el precio de cierre está por encima de la línea de base.
Ir corto cuando el precio de cierre está por debajo de la línea de conversión.
Donde la línea de base es el punto medio del máximo más alto y el mínimo más bajo en los últimos 26 días, y la línea de conversión es el punto medio del máximo más alto y el mínimo más bajo en los últimos 9 días.
La estrategia final combina las señales de las dos subestrategias, entrando cuando ambas señalan largo o corto y saliendo cuando no están de acuerdo.
Combina la reversión y la tendencia, flexible para detectar las reversiones y las tendencias.
El patrón 123 es simple y eficaz en la identificación de las reversiones.
Los parámetros de Ichimoku están optimizados, con menor riesgo de fuga.
La combinación de dos estrategias diferentes puede lograr la optimización.
Las estrategias de reversión son propensas a trampas y pérdidas.
Ichimoku puede experimentar cambios en los mercados de rango, ajustar los parámetros o añadir filtros para reducir las operaciones innecesarias.
Los parámetros incompatibles al combinar estrategias pueden dar lugar a señales demasiado frecuentes o escasas.
Prueba más indicadores para obtener mejores filtros, por ejemplo, incorporando el volumen.
Optimice los parámetros de Ichimoku para adaptarse a las características del instrumento.
Añadir mecanismos de stop loss, por ejemplo, salidas establecidas basadas en ATR.
Añadir módulo de gestión de dinero para el control de riesgos.
Recopilar más datos para pruebas de retroceso robustas, descubrir problemas e iterar.
El sistema de seguimiento de reversión de promedios móviles combina las fortalezas de las estrategias de reversión y seguimiento de tendencias a través de la optimización y combinación para la generación de alfa. Tiene méritos comerciales, pero existen riesgos como whipshaw y stop loss. Necesitamos seguir mejorando la lógica en las pruebas de retroceso e implementar un control de riesgos adecuado para la estabilidad y el rendimiento del mundo real. En general, proporciona un buen enfoque para combinar diferentes estrategias para mejores resultados generales.
/*backtest start: 2023-10-07 00:00:00 end: 2023-11-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 26/11/2020 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // Ichimoku Strategy // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos middleDonchian(Length) => lower = lowest(Length) upper = highest(Length) avg(upper, lower) Ichimoku2c(conversionPeriods, basePeriods,laggingSpan2Periods,displacement) => pos = 0.0 Tenkan = middleDonchian(conversionPeriods) Kijun = middleDonchian(basePeriods) xChikou = close SenkouA = middleDonchian(laggingSpan2Periods) SenkouB = (Tenkan[basePeriods] + Kijun[basePeriods]) / 2 pos := iff(close < SenkouA[displacement], -1, iff(close > SenkouB, 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Ichimoku2c", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- conversionPeriods = input(9, minval=1), basePeriods = input(26, minval=1) laggingSpan2Periods = input(52, minval=1), displacement = input(26, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posIchimoku2c = Ichimoku2c(conversionPeriods, basePeriods,laggingSpan2Periods,displacement) pos = iff(posReversal123 == 1 and posIchimoku2c == 1 , 1, iff(posReversal123 == -1 and posIchimoku2c == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )