La estrategia de seguimiento de tendencias de la nube temprana de Ichimoku es una estrategia de seguimiento de tendencias basada en el popular indicador de la nube de Ichimoku. Utiliza las líneas de cruce de la nube de Ichimoku para generar señales de entrada tempranas y capturar tendencias con anticipación.
La estrategia se basa principalmente en los siguientes elementos:
Construye la Nube Ichimoku usando la Línea de Conversión y la Línea de Base, y traza la nube con un desplazamiento de 26 períodos.
Activar una señal larga cuando se rompe cerca por encima de la parte superior de la nube; activar una señal corta cuando se rompe cerca por debajo de la parte inferior de la nube.
Requiere cerrar también romper el máximo/min de las líneas de conversión y base para filtrar las falsas rupturas.
Opcionalmente establecer un stop loss del 5% basado en el precio de entrada.
Con este tipo de filtrado de múltiples capas, puede identificar eficazmente los puntos de inversión de tendencia y capturar oportunamente las oportunidades comerciales emergentes.
La estrategia tiene las siguientes ventajas:
También hay algunos riesgos a tener en cuenta:
Los riesgos pueden reducirse:
La estrategia puede mejorarse aún más en los siguientes aspectos:
Añadir el tamaño de la posición a la cantidad de control negociada programáticamente a través destrategy.position_size
.
Añadir filtro de seguridad universo para detectar automáticamente la fuerza de la tendencia a través desecurity()
.
Incorporar técnicas de toma de pérdidas/ganancias para la gestión del riesgo.
Construir un sistema de múltiples indicadores que combine indicadores como bandas de Bollinger y RSI para mejorar la calidad de la señal.
Aplicar el aprendizaje automático para juzgar la confiabilidad de la señal y ajustar dinámicamente las cantidades de pedido.
La estrategia de seguimiento de tendencias de la nube temprana de Ichimoku utiliza la nube de Ichimoku para la identificación temprana de tendencias, reforzada por filtros de promedio móvil, para detectar de manera confiable oportunidades comerciales de alta calidad.
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © QuantCT //@version=4 strategy("Ichimoku Cloud Strategy Idea", shorttitle="Ichimoku", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=99, initial_capital=1000, commission_type=strategy.commission.percent, commission_value=0.1) // ____ Inputs conversion_period = input(9, minval=1, title="Conversion Line Period") base_period = input(26, minval=1, title="Base Line Period") lagging_span2_period = input(52, minval=1, title="Lagging Span 2 Period") displacement = input(26, minval=1, title="Displacement") long_only = input(title="Long Only", defval=false) slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0) use_sl = input(title="Use Stop-Loss", defval=false) // ____ Logic donchian(len) => avg(lowest(len), highest(len)) conversion_line = donchian(conversion_period) base_line = donchian(base_period) lead_line1 = avg(conversion_line, base_line) lead_line2 = donchian(lagging_span2_period) chikou = close chikou_free_long = close > high[displacement] and close > max(lead_line1[2 * displacement], lead_line2[2 * displacement]) enter_long = chikou_free_long and close > max(lead_line1[displacement], lead_line2[displacement]) exit_long = close < lead_line1[displacement] or close < lead_line2[displacement] chikou_free_short = close < low[displacement] and close < min(lead_line1[2 * displacement], lead_line2[2 * displacement]) enter_short = chikou_free_short and close < min(lead_line1[displacement], lead_line2[displacement]) exit_short = close > lead_line1[displacement] or close > lead_line2[displacement] strategy.entry("Long", strategy.long, when=enter_long) strategy.close("Long", when=exit_long) if (not long_only) strategy.entry("Short", strategy.short, when=enter_short) strategy.close("Short", when=exit_short) // ____ SL sl_long = strategy.position_avg_price * (1- (slp/100)) sl_short = strategy.position_avg_price * (1 + (slp/100)) if (use_sl) strategy.exit(id="SL", from_entry="Long", stop=sl_long) strategy.exit(id="SL", from_entry="Short", stop=sl_short) // ____ Plots colors = enter_long ? #27D600 : enter_short ? #E30202 : color.orange p1 = plot(lead_line1, offset = displacement, color=colors, title="Lead 1") p2 = plot(lead_line2, offset = displacement, color=colors, title="Lead 2") fill(p1, p2, color = colors) plot(chikou, offset = -displacement, color=color.blue)