Stratégie de rupture de tortue à double canal


Date de création: 2024-01-05 16:16:44 Dernière modification: 2024-01-05 16:16:44
Copier: 1 Nombre de clics: 603
1
Suivre
1617
Abonnés

Stratégie de rupture de tortue à double canal

Aperçu

La stratégie Turtle est une stratégie de rupture qui utilise l’indicateur de la chaîne Donchian pour construire un signal de transaction. La stratégie établit simultanément une chaîne rapide et une chaîne lente, la chaîne rapide étant utilisée pour définir un prix de stop-loss et la chaîne lente pour générer un signal d’ouverture de position et de repos.

Principe de stratégie

La logique de base de la stratégie de rupture de deux canaux Turtle est basée sur l’indicateur des canaux Donchian. Les canaux Donchian sont calculés à partir des prix les plus élevés et les plus bas, comprenant les voies supérieures, inférieures et moyennes. La stratégie crée simultanément des canaux rapides et des canaux lents, les paramètres étant définis par l’utilisateur, avec un cycle de canaux lents par défaut de 50 lignes K et un cycle de canaux rapides de 20 lignes K.

La ligne bleue est utilisée pour générer des signaux de transaction. Lorsque le prix dépasse la ligne bleue, il y a un gain; lorsque le prix dépasse la ligne bleue, il y a un gain. La ligne rouge est utilisée pour arrêter les pertes.

De cette façon, le canal lent est responsable de la génération du signal, le canal rapide est responsable de l’arrêt des pertes, et le double canal est utilisé conjointement, ce qui garantit à la fois la stabilité du signal de transaction et le contrôle du risque. La couleur de fond indique la direction de la position actuelle, le vert est la position à plusieurs têtes et le rouge est la position vide.

En outre, la stratégie définit le risque et la gestion des positions. Le risque est défini par défaut à 2%, les positions sont calculées en fonction du risque et de la volatilité du canal. Cela permet de contrôler efficacement chaque risque et d’augmenter progressivement les positions.

Analyse des avantages

Les avantages d’une stratégie Turtle à deux voies:

  1. Il est capable de suivre les tendances. Il utilise le canal Donchian pour déterminer les tendances et peut capturer efficacement les tendances de la ligne médiane et longue. La conception à deux canaux permet à la stratégie de suivre uniquement les cas de tendances plus fortes.

  2. La retraite et le contrôle des risques sont bien gérés. La voie rapide fait l’arrêt des pertes, de la voie supérieure à la voie moyenne et de la voie inférieure à la voie moyenne est la zone de risque, ce qui garantit que chaque perte est contrôlable. La stratégie définit également le degré de risque, limitant directement la perte maximale du compte.

  3. Le signal de transaction est stable. Les paramètres de la voie lente sont importants, la formation de la voie prend plus de temps, ce qui évite des transactions fréquentes. La voie rapide, en tant qu’arrêt de perte, permet de saisir des ajustements à court terme.

  4. La stratégie utilise les fluctuations du canal Donchian pour calculer la taille de la position et contrôler les marges de risque. L’ajout progressif de positions permet également à la position de la partie plus ouverte d’être plus équilibrée.

  5. L’indicateur visuel est intuitif. Les deux canaux, les lignes de stop et le contexte de position sont clairement tracés, la logique de négociation est claire. Les indicateurs clés tels que le retrait maximum et la perte maximale sont également affichés.

Analyse des risques

La stratégie de Turtle, qui consiste à débloquer les deux canaux, comporte aussi des risques:

  1. La stratégie Turtle ne peut pas exploiter efficacement le prix à la barre. La stratégie Turtle ne peut être utilisée que pour ouvrir une position lors d’une rupture de passage et ne peut pas être utilisée pour augmenter la position dans des situations plus précises.

  2. Les points d’arrêt sont faciles à suivre. Le point d’arrêt de la stratégie Turtle est le milieu de la voie rapide fixe. Dans les marchés actifs, cela peut être couvert par des points d’arrêt.

  3. Les paramètres de la double voie doivent être ajustés. Les paramètres de la voie doivent être réglés correctement pour produire un signal raisonnablement stable. Les paramètres fixes actuels ne peuvent pas s’adapter aux changements du marché et doivent être adaptés.

  4. Il est impossible d’utiliser les informations de la nuit et de la veille. La stratégie actuelle ne peut guider les décisions de négociation qu’en fonction de la tendance du marché avant et après la veille. Cela peut être amélioré par un ajustement des données.

Direction d’optimisation

Les stratégies de détection de Turtle à deux canaux sont principalement optimisées dans les domaines suivants:

  1. Il est possible d’ajuster la taille de la position en fonction de la distance entre le prix et le canal, plutôt que de simplement faire plus de blanchiment.

  2. Augmentation de l’intelligence des stratégies de stop loss. Modification de la trajectoire de stop loss fixe en une trajectoire de stop loss dynamique pour éviter que le point de stop loss ne soit suivi.

  3. L’optimisation des paramètres de la voie s’adapte automatiquement. Les paramètres de la voie peuvent être ajustés automatiquement en fonction des conditions du marché, au lieu d’être définis manuellement.

  4. Augmenter les jugements de marché avant et après la clôture. Dans les jugements stratégiques, non seulement les prix réels, mais aussi les prix avant et après la clôture doivent être pris en compte pour obtenir une situation de marché plus complète.

  5. Combiner plusieurs actions ou indices. Appliquer la stratégie à plusieurs actions, négocier un arbitrage configurable entre différentes actions et indices, obtenir alpha.

Résumer

La stratégie de rupture de la tortue à deux voies est une stratégie de suivi de tendance stable, efficace et contrôlée par les risques. La stratégie utilise à la fois des voies rapides et des voies lentes, assurant la stabilité du signal de négociation et la gestion des risques. En outre, la couleur de fond, le retrait maximal et la gestion de la position facilitent la gestion et l’optimisation de la stratégie.

Code source de la stratégie
/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy("Noro's RiskTurtle Strategy", shorttitle = "RiskTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong  = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
risk      = input(2, minval = 0.1, maxval = 99, title = "Risk size, %")
fast      = input(20, minval = 1, title = "Fast channel (for stop-loss)")
slow      = input(50, minval = 1, title = "Slow channel (for entries)")
showof    = input(true, defval = true, title = "Show offset")
showll    = input(true, defval = true, title = "Show lines")
showdd    = input(true, defval = true, title = "Show label (drawdown)")
showbg    = input(true, defval = true, title = "Show background")
fromyear  = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear    = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth   = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday   = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today     = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Donchian price channel fast
hf = highest(high, fast)
lf = lowest(low, fast)
center = (hf + lf) / 2

//Donchian price chennal slow
hs = highest(high, slow)
ls = lowest(low, slow)

//Lines
colorpc = showll ? color.blue : na
colorsl = showll ? color.red : na
offset = showof ? 1 : 0
plot(hs, offset = offset, color = colorpc, title = "Slow channel high")
plot(ls, offset = offset, color = colorpc, title = "Slow channel low")
plot(center, offset = offset, color = colorsl, title = "Fast channel stop-loss")

//Background
size = strategy.position_size
colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(colorbg, transp = 70)

//Var
loss = 0.0
maxloss = 0.0
equity = 0.0
truetime = true

//Lot size
risksize = -1 * risk
risklong = ((center / hs) - 1) * 100
coeflong = abs(risksize / risklong)
lotlong = (strategy.equity / close) * coeflong
riskshort = ((center / ls) - 1) * 100
coefshort = abs(risksize / riskshort)
lotshort = (strategy.equity / close) * coefshort

//Orders
strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and hs > 0 and truetime)
strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and ls > 0 and truetime)
strategy.exit("LongExit", "Long", stop = center, when = needlong and strategy.position_size > 0)
strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")
    
if showdd

    //Drawdown
    max = 0.0
    max := max(strategy.equity, nz(max[1]))
    dd = (strategy.equity / max - 1) * 100
    min = 100.0
    min := min(dd, nz(min[1]))
    
    //Max loss size
    equity := strategy.position_size == 0 ? strategy.equity : equity[1]
    loss := equity < equity[1] ? ((equity / equity[1]) - 1) * 100 : 0
    maxloss := min(nz(maxloss[1]), loss)
    
    //Label
    min := round(min * 100) / 100
    maxloss := round(maxloss * 100) / 100
    labeltext = "Drawdown: " + tostring(min) + "%" + "\nMax.loss " + tostring(maxloss) + "%"
    var label la = na
    label.delete(la)
    tc = min > -100 ? color.white : color.red
    osx = timenow + round(change(time)*10)
    osy = highest(100)
    // la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)