
La stratégie utilise la ligne de conversion, la ligne de base, le Kumo Cloud et la ligne de retard pour juger de la tendance actuelle du marché, et combine les deux fractions d’or 1.618 et 0.618 pour définir les points d’arrêt et d’identifier les chocs du marché. En outre, la stratégie introduit deux lignes moyennes supplémentaires pour filtrer les faux signaux.
L’indicateur Cloud est composé de quatre parties: la ligne de conversion, la ligne de base, la nuée et la ligne de décalage. La ligne de conversion et la ligne de base sont respectivement calculées à partir de la moyenne des prix les plus élevés et les plus bas de différentes périodes. La nuée est formée par 26 cycles de progression vers l’avant de la ligne de base, tandis que la ligne de décalage est 26 cycles de progression vers l’arrière de la clôture.
Les conditions de la stratégie sont les suivantes:
Les conditions d’ouverture d’une position à vide sont le contraire de celles d’une position à plusieurs têtes.
Le paramètre de la position de stop utilise deux fractions d’or de 1,618 et de 0,618: le stop multiple est la hauteur de la nuée moins la hauteur de la nuée multipliée par 1,618 et le stop vide est le contraire. La ligne de 0,618 est utilisée pour identifier un marché en tremblement.
En plus d’un indicateur de nuage de texte, la stratégie introduit deux lignes centrales pour filtrer les faux signaux. Les lignes centrales sont calculées à partir de la moyenne des prix les plus élevés et les plus bas des différents cycles.
La stratégie combine de manière innovante l’indicateur de la nuée et le taux de fractionnement de l’or pour former un ensemble complet de systèmes de détection et de négociation de tendances. L’avantage de la stratégie réside dans sa capacité à mieux s’adapter à la tendance et à la volatilité du marché et à contrôler les risques par le biais d’un arrêt dynamique. Cependant, la stratégie présente également des lacunes, telles que le manque de support théorique, l’optimisation des paramètres peut être trop adaptée.
/*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)