Se trata de una estrategia cuantitativa de seguimiento de tendencias basada en el indicador Ichimoku, que consiste principalmente en la construcción de posiciones largas y cortas en condiciones específicas para rastrear las tendencias del mercado, combinada con ciertos mecanismos de stop loss para controlar los riesgos.
El núcleo de esta estrategia es construir señales comerciales basadas en el indicador Ichimoku con ciertas configuraciones de parámetros. El indicador Ichimoku consta de cuatro líneas: la línea de conversión, la línea base, el intervalo líder A y el intervalo rezagado B. La línea de conversión es comúnmente conocida como el Tenkan-sen y la línea base se llama el Kijun-sen. Esta estrategia establece diferentes parámetros para que Tenkan-sen y Kijun-sen generen señales comerciales de cruz dorada y cruz muerta. Además, también incorpora breakouts de nubes como una condición auxiliar para desencadenar entradas.
Concretamente, la estrategia sigue principalmente las siguientes reglas comerciales:
Ir largo cuando el precio se rompe por encima del Tenkan-sen y deja la nube;
Cierre posiciones largas cuando el precio cae por debajo del Tenkan-sen;
Ir corto cuando el precio se rompe por debajo del Kijun-sen y entra en la nube;
Cierra posiciones cortas cuando el precio vuelva a subir por encima del Tenkan-sen.
A través de tales principios comerciales largos y cortos, la estrategia puede capturar eficazmente los movimientos de tendencia en el mercado.
En comparación con otras estrategias de negociación de promedios móviles comunes, esta estrategia tiene las siguientes ventajas:
Un juicio de tendencia más preciso basado en Ichimoku. Ichimoku consiste en múltiples promedios móviles, lo que lo hace más confiable para el reconocimiento de tendencias y el filtrado del ruido de los MA individuales.
Mejor efecto de filtro con líneas múltiples.
Los riesgos controlables: establecer una línea de stop loss permite un control oportuno de la stop loss y el riesgo.
Las operaciones menos desfavorables en comparación con otras estrategias de tendencia reducen las pérdidas de extracción.
Ajuste flexible de los parámetros: los parámetros se pueden ajustar para adaptarse a las diferentes condiciones del mercado.
Todavía hay algunos riesgos a tener en cuenta para esta estrategia:
Pérdidas de float en los mercados de rango limitado.
Inadecuado reconocimiento de la reversión de tendencia. Debilidad en la identificación de reversiones de tendencia a corto plazo, puede perder oportunidades o encontrar reversiones repentinas.
Los parámetros diferentes pueden afectar significativamente el rendimiento, lo que requiere una amplia experiencia histórica.
Los siguientes aspectos pueden optimizarse para hacer frente a los riesgos anteriores:
Añadir indicadores de volatilidad para detectar mercados que no están en tendencia y pausar la estrategia.
Incorpore señales adicionales de reversión como cruces de promedios móviles.
Utilice el aprendizaje automático para la optimización automática de parámetros en lugar del ajuste manual.
Establecer líneas de stop loss dinámicas basadas en la volatilidad del mercado.
En general, esta estrategia aprovecha la fortaleza de Ichimoku en la captura de movimientos de tendencia.
/*backtest start: 2022-12-13 00:00:00 end: 2023-12-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="RENKO ICHIMOKU STRATEGY", shorttitle="RENKO ICHIMOKU STRATEGY", overlay=true) ro = open rc = close tenkanSenPeriods = input(10, minval=1, title="Tenkan-sen"), kijunSenPeriods = input(30, minval=1, title="Kijun-sen") SenkouSpanBPeriods = input(60, minval=1, title="Senkou Span B"), displacement = input(30, minval=1, title="Chikou Span (Displacement)") donchian(len) => avg(lowest(len), highest(len)) tenkanSen = donchian(tenkanSenPeriods) kijunSen = donchian(kijunSenPeriods) SenkouSpanA = avg(tenkanSen, kijunSen) SenkouSpanB = donchian(SenkouSpanBPeriods) plot(tenkanSen, color=#0496ff, linewidth=2, title="Tenkan-sen") // plot(kijunSen, color=#991515, title="Kijun-sen") // plot(close, offset = -displacement, color=#459915, title="Chikou Span") p1 = plot(SenkouSpanA, offset = displacement, color=green, title="Senkou Span A") p2 = plot(SenkouSpanB, offset = displacement, color=red, title="Senkou Span B") fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red) // Entry/Exit Signals tk_cross_bull = tenkanSen > kijunSen tk_cross_bear = tenkanSen < kijunSen price_below_tenkan = open < tenkanSen and close < tenkanSen price_above_tenkan = open > tenkanSen and close > tenkanSen price_below_kinjun = close < kijunSen price_above_kinjun = close > kijunSen tekan_above_kinjun = tenkanSen > kijunSen tekan_below_kinjun = tenkanSen < kijunSen ss_high = max(SenkouSpanA[displacement-1], SenkouSpanB[displacement-1]) ss_low = min(SenkouSpanA[displacement-1], SenkouSpanB[displacement-1]) price_inside_kumo = close > ss_high and close < ss_low price_below_kumo = rc[1] < ro[1] and rc[0] < ro[0] and rc[1] < ss_low price_above_kumo = rc[1] > ro[1] and rc[0] > ro[0] and rc[1] > ss_high cs_cross_bull = mom(close, displacement-1) > 0 cs_cross_bear = mom(close, displacement-1) < 0 bullish = cs_cross_bull and not price_inside_kumo bearish = cs_cross_bear and not price_inside_kumo strategy.entry("Long", strategy.long, when=price_above_kumo and price_above_tenkan ) strategy.close("Long", when=price_below_tenkan ) strategy.entry("Short", strategy.short, when=price_below_kumo and price_below_tenkan ) strategy.close("Short", when=price_above_tenkan ) // longCondition = crossover(sma(close, 14), sma(close, 28)) // if (longCondition) // strategy.entry("My Long Entry Id", strategy.long) // shortCondition = crossunder(sma(close, 14), sma(close, 28)) // if (shortCondition) // strategy.entry("My Short Entry Id", strategy.short)