Esta estrategia es una estrategia de identificación de tendencias y de trading basada en el indicador de la Nube de Ichimoku combinado con los índices de Fibonacci. Utiliza la Línea de Conversión, Línea Base, Nube Kumo y Lagging Span del indicador de la Nube de Ichimoku para determinar la tendencia actual del mercado, e incorpora los índices de Fibonacci 1.618 y 0.618 para establecer niveles de stop-loss e identificar mercados laterales. Además, la estrategia introduce dos líneas medias adicionales para filtrar señales falsas.
El indicador de la nube Ichimoku consta de cuatro componentes: la línea de conversión, la línea base, la nube Kumo y el lapso de retraso. La línea de conversión y la línea base se calculan utilizando el promedio del máximo más alto y el mínimo más bajo en diferentes períodos de tiempo.
Las condiciones de entrada a largo plazo para esta estrategia son las siguientes:
Las condiciones de entrada cortas son opuestas a las condiciones de entrada largas.
Los niveles de stop-loss se establecen utilizando los ratios 1.618 y 0.618 de Fibonacci. Para las posiciones largas, el stop-loss es el borde superior de la nube menos 1.618 veces la distancia entre los bordes superior e inferior. Para las posiciones cortas, es lo contrario. La línea 0.618 se utiliza para identificar mercados laterales. Cuando la nube es verde y la línea 0.618 está por debajo del nivel de stop-loss de 1.618, se considera que el mercado está en un estado lateral.
Además del indicador Ichimoku Cloud, la estrategia introduce dos líneas medias para filtrar aún más las señales falsas.
Esta estrategia combina innovadoramente el indicador de la nube de Ichimoku con los ratios de Fibonacci para formar un sistema completo de identificación y negociación de tendencias. La introducción de líneas medias adicionales para el filtrado puede mejorar la calidad de la señal hasta cierto punto. La ventaja de la estrategia radica en su capacidad de adaptarse bien a las condiciones de mercado de tendencia y rango, y controlar el riesgo a través de stop-loss dinámicos. Sin embargo, la estrategia también tiene algunas deficiencias, como la falta de soporte teórico y un posible sobreajuste en la optimización de parámetros. En el futuro, la estrategia puede mejorarse mediante la introducción de más indicadores, la optimización de stop-losses y posicionamiento de tamaño, y el uso de aprendizaje automático para la optimización de parámetros.
/*backtest start: 2023-03-13 00:00:00 end: 2024-03-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © manoharbauskar //@version=5 // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © manoharbauskar //@version=5 strategy("Advanced_Ichimoku_Cloud_Strategy", overlay=true, margin_long=100, margin_short=100) conversionPeriods = input.int(9, minval=1, title="Conversion Line Length") basePeriods = input.int(26, minval=1, title="Base Line Length") laggingSpanPeriods = input.int(52, minval=1, title="Leading Span B Length") pivotPeriods1 = input.int(17,minval = 1,title = "PPL1") pivotPeriods2 = input.int(39,minval = 1,title = "PPL2") displacement = input.int(26, minval=1, title="Lagging Span") donchian(len) => math.avg(ta.lowest(len), ta.highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) midLine1 = donchian(pivotPeriods1) midLine2 = donchian(pivotPeriods2) midLine3 = donchian(laggingSpanPeriods) leadLine1 = math.avg(conversionLine, baseLine, midLine1) leadLine2 = math.avg(midLine2 , midLine3) plot(conversionLine, color=#2962FF, title="Conversion Line") plot(baseLine, color=#B71C1C, title="Base Line") plot(close, offset = -displacement + 1, color=color.yellow, title="Lagging Span") p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7, title="Leading Span A") p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A, title="Leading Span B") plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none) plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none) fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90)) //stoploss calculating mult1 = input.float(1.618, "Mult1") mult2 = input.float(0.618, "Mult2") stoploss1 = leadLine1 - (leadLine1 - leadLine2)*mult1 stoploss2 = leadLine1 - (leadLine1 - leadLine2)*mult2 plot(stoploss1,"Sl", color = color.fuchsia, linewidth = 2, style = plot.style_line, offset = displacement - 1) plot(stoploss2,"S2", color = color.lime, linewidth = 2, style = plot.style_line, offset = displacement - 1) longCondition = leadLine1 > leadLine2 if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = leadLine1 < leadLine2 if (shortCondition) strategy.entry("Sell", strategy.short)