ICH Cloud apporte une stratégie de retournement


Date de création: 2023-10-27 16:36:59 Dernière modification: 2023-10-27 16:36:59
Copier: 2 Nombre de clics: 896
1
Suivre
1617
Abonnés

ICH Cloud apporte une stratégie de retournement

Aperçu

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.

Principe de stratégie

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.

Analyse des avantages

  • 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.

Analyse des risques

  • 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.

Direction d’optimisation

  • 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.

Résumer

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.

Code source de la stratégie
/*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)