
La stratégie Ichimoku Kumo Twist est une stratégie de suivi de tendance qui utilise les lignes de conversion, les lignes de référence et les lignes de guidage de l’indicateur Ichimoku pour construire des signaux de transaction. Elle utilise les courbes de nuages Ichimoku pour rechercher les points de retournement des tendances à court et à moyen terme afin d’obtenir des points de rupture moins risqués et des opportunités de survente.
La stratégie utilise principalement les trois moyennes de l’indicateur Ichimoku - la ligne de conversion, la ligne de référence et la ligne de référence 1, ainsi que les prix les plus élevés et les prix les plus bas de la ligne K. La ligne de conversion calcule les prix les plus élevés et les prix les plus bas des neuf dernières lignes K, représentant les moyennes à court terme du graphique d’équilibre à première vue; la ligne de référence calcule les prix les plus élevés et les prix les plus bas des 26 dernières lignes K, représentant les moyennes à long terme.
La stratégie consiste à suivre les courbes de la courbe moyenne à court et à moyen terme afin de capturer les changements de tendance.
La stratégie d’inversion de la ceinture de nuage d’Ichimoku, combinant à la fois les tendances à court terme et à moyen terme, permet d’identifier efficacement les points d’inversion de tendance.
La stratégie est basée sur une ligne homogène, avec un certain retard qui permet de filtrer une partie du bruit.
L’utilisation de la bande de nuage pour déterminer l’apparence des tendances fortes et faibles, pour réaliser des entrées et des sorties plus favorables.
Il n’y a pas besoin d’optimiser les paramètres, vous pouvez utiliser les paramètres standard d’Ichimoku.
Les principes d’Ichimoku sont plus complexes, moins sensibles aux paramètres et moins faciles à optimiser.
Les signaux d’erreur peuvent apparaître à plusieurs reprises lors de la consolidation.
Il y a des cas où la stratégie échoue lorsque les tendances à court et à moyen terme s’écartent.
Il est nécessaire d’utiliser un stop-loss pour maîtriser le risque, sans quoi les pertes pourraient être plus importantes.
Les différentes combinaisons de paramètres de la ligne de conversion et de la ligne de référence peuvent être testées pour trouver l’équilibre optimal.
En combinaison avec d’autres indicateurs, filtrer les signaux d’entrée de jeu pour éviter de construire des positions dans des conditions manifestement défavorables.
Ajouter une stratégie de stop loss, définir un stop loss dynamique ou un stop loss de suivi.
Optimisation de la gestion des positions et adaptation de la taille des positions en fonction des conditions du marché.
Les frais de transaction sont ajoutés à la rétroanalyse pour rendre les résultats de la rétroanalyse plus précis.
La stratégie d’inversion de la ceinture de nuage d’Ichimoku est une stratégie de tendance modérée dans l’ensemble. Elle permet d’identifier efficacement les points de retournement de tendance et d’ouvrir des positions dans la direction de la tendance.
/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Ichimoku Kumo Twist Strategy (Presets)", shorttitle="Kumo Twist Strategy", overlay=true)
xlowest_(src, len) =>
x = src
for i = 1 to len - 1
v = src[i]
if (na(v))
break
x := min(x, v)
x
xlowest(src, len) =>
na(src[len]) ? xlowest_(src, len) : lowest(src, len)
xhighest_(src, len) =>
x = src
for i = 1 to len - 1
v = src[i]
if (na(v))
break
x := max(x, v)
x
xhighest(src, len) =>
na(src[len]) ? xhighest_(src, len) : highest(src, len)
dropn(src, n) =>
na(src[n]) ? na : src
ichiConversionPeriods(presets) =>
if presets == "Crypto Doubled"
20
else
if presets == "Crypto Singled"
10
else
if presets == "Standard Doubled"
18
else
9
ichiBasePeriods(presets) =>
if presets == "Crypto Doubled"
60
else
if presets == "Crypto Singled"
30
else
if presets == "Standard Doubled"
52
else
26
ichiLaggingSpan2Periods(presets) =>
if presets == "Crypto Doubled"
120
else
if presets == "Crypto Singled"
60
else
if presets == "Standard Doubled"
104
else
52
ichiDisplacement(presets) =>
if presets == "Crypto Doubled"
30
else
if presets == "Crypto Singled"
30
else
if presets == "Standard Doubled"
26
else
26
scaling = input(title="Scaling", options=["Linear", "Log"], defval="Linear")
presets = input(title="Presets", options=["Crypto Doubled", "Crypto Singled", "Standard Doubled", "Standard Singled"], defval="Crypto Doubled")
dropCandles = input(1, minval=0, title="Drop first N candles")
showClouds = input(false, "Show Clouds")
stoploss = input(true, title="Stop Loss")
conversionPeriods = ichiConversionPeriods(presets)
basePeriods = ichiBasePeriods(presets)
laggingSpan2Periods = ichiLaggingSpan2Periods(presets)
displacement = ichiDisplacement(presets)
logScaling = scaling == "Log"
lows = dropn(low, dropCandles)
highs = dropn(high, dropCandles)
lowsp = logScaling ? log(lows) : lows
highsp = logScaling ? log(highs) : highs
donchian(len) =>
avg(xlowest(lowsp, len), xhighest(highsp, len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
golong = crossover(leadLine1, leadLine2)
goshort = crossunder(leadLine1, leadLine2)
strategy.entry("Buy", strategy.long, when=golong, stop=(stoploss ? high+syminfo.mintick : na))
strategy.entry("Sell", strategy.short, when=goshort, stop=(stoploss ? low-syminfo.mintick : na))
conversionLinep = logScaling ? exp(conversionLine) : conversionLine
baseLinep = logScaling ? exp(baseLine) : baseLine
leadLine1p = logScaling ? exp(leadLine1) : leadLine1
leadLine2p = logScaling ? exp(leadLine2) : leadLine2
plot(showClouds ? conversionLinep : na, color=#0496ff, title="Conversion Line")
plot(showClouds ? baseLinep : na, color=#991515, title="Base Line")
p1 = plot(showClouds ? leadLine1p : na, offset = displacement, color=green, title="Lead 1")
p2 = plot(showClouds ? leadLine2p : na, offset = displacement, color=red, title="Lead 2")
fill(p1, p2, color = showClouds ? (leadLine1p > leadLine2p ? green : red) : na)