Cette stratégie est une stratégie d'identification de tendance et de trading basée sur l'indicateur Ichimoku Cloud combiné avec les ratios de Fibonacci. Elle utilise la ligne de conversion, la ligne de base, le nuage Kumo et le lagging span de l'indicateur Ichimoku Cloud pour déterminer la tendance actuelle du marché, et intègre les ratios 1.618 et 0.618 de Fibonacci pour définir les niveaux de stop-loss et identifier les marchés latéraux.
L'indicateur de nuage Ichimoku est composé de quatre composants: la ligne de conversion, la ligne de base, le nuage Kumo et la période de retard.
Les conditions d'entrée à long terme de cette stratégie sont les suivantes:
Les conditions d'entrée courtes sont l'opposé des conditions d'entrée longues.
Les niveaux de stop-loss sont définis en utilisant les ratios 1.618 et 0.618 de Fibonacci. Pour les positions longues, le stop-loss est le bord supérieur du nuage moins 1.618 fois la distance entre les bords supérieur et inférieur. Pour les positions courtes, c'est l'inverse.
En plus de l'indicateur Ichimoku Cloud, la stratégie introduit deux lignes moyennes pour filtrer davantage les faux signaux.
Cette stratégie combine de manière innovante l'indicateur Ichimoku Cloud avec les ratios de Fibonacci pour former un système complet d'identification et de trading de tendance. L'introduction de lignes intermédiaires supplémentaires pour le filtrage peut améliorer la qualité du signal dans une certaine mesure. L'avantage de la stratégie réside dans sa capacité à bien s'adapter à la fois aux tendances et aux conditions de marché variantes, et à contrôler le risque grâce à des stop-losses dynamiques. Cependant, la stratégie présente également quelques lacunes, telles que le manque de support théorique et un surajustement potentiel dans l'optimisation des paramètres.
/*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)