Stratégie commerciale de la tortue basée sur les canaux de Donchian

Auteur:ChaoZhang est là., Date: le 26 février 2024 à 14 h 35: 02
Les étiquettes:

img

Résumé

La stratégie Tang Anqi Turtle Trading est une version très simplifiée de la stratégie de trading Turtle originale. Elle est très différente de la stratégie Turtle originale. La stratégie utilise deux canaux Donchian, un canal rapide et un canal lent. Les périodes de canal sont définies par l'utilisateur, avec des valeurs par défaut de 20 barres pour le canal rapide et 50 barres pour le canal lent. La stratégie utilise les bandes supérieures et inférieures du canal lent pour les transactions d'entrée et la bande moyenne du canal rapide pour définir le stop loss.

La logique de la stratégie

La logique de base de cette stratégie est la suivante:

  1. Calculez le canal de Donchian rapide: la bande supérieure est le plus haut haut sur les barres rapides passées, la bande inférieure est le plus bas bas, et la bande du milieu est la moyenne des bandes supérieures et inférieures.

  2. Calculez le canal de Donchian lent: la bande supérieure est le plus haut haut sur les barres lentes passées, la bande inférieure est le plus bas bas.

  3. Lorsqu'il n'y a pas de position, un signal long est déclenché lorsque le prix touche la bande supérieure du canal lent, et un signal court est déclenché lorsque le prix touche la bande inférieure du canal lent.

  4. Après ouverture d'une position, la bande médiane du canal rapide est utilisée comme stop loss.

  5. Fermer la position lorsqu'il y a un signal opposé au signal d'ouverture pendant la période de détention.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Les canaux de Donchian et le stop loss sont faciles à comprendre, adaptés aux débutants.

  2. Paramètres personnalisables: les utilisateurs peuvent ajuster les paramètres en fonction des produits et des délais de négociation afin de s'adapter aux différents environnements du marché.

  3. Peu de signaux commerciaux contradictoires. Il s'appuie uniquement sur les écarts de prix des bandes de canaux, évitant les faux signaux des indicateurs communs.

  4. Gestion automatique des stop-loss. Le stop-loss mobile basé sur la bande moyenne du canal rapide peut limiter les pertes sur les transactions uniques.

Analyse des risques

Les risques auxquels cette stratégie est confrontée comprennent:

  1. Plus de stop-loss lorsque la tendance n'est pas claire.

  2. Lorsque la tendance s'inverse, les bénéfices flottants dans la direction de la tendance précédente se transformeront en pertes.

  3. Les paramètres mal réglés conduisent à une agressivité ou à une conservatrice excessive.

  4. La stabilité du serveur est importante pour éviter les exceptions conduisant à l'échec du trading automatisé.

Pour réduire les risques susmentionnés, les paramètres peuvent être optimisés, la taille des positions peut être limitée de manière appropriée et des modules de gestion des risques peuvent être ajoutés.

Directions d'optimisation

Les stratégies peuvent être améliorées dans les domaines suivants:

  1. Ajoutez des filtres pour les signaux d'entrée afin d'éviter de capter les signaux d'inversion de tendance.

  2. Optimiser les paramètres tels que les périodes de canal et la taille des positions pour mieux s'adapter aux différents instruments de négociation.

  3. Ajouter des modules de gestion des risques tels que les limites maximales de tirage et les limites de perte quotidiennes pour éviter des pertes excessives dans les cas extrêmes.

  4. Améliorer les stratégies de stop-loss. Par exemple, adopter un stop-loss de suivi pour rendre les stops plus adaptables aux tendances du marché.

Conclusion

En résumé, la stratégie de trading de la tortue Tang Anqi est un système simple de suivi des tendances. Ses avantages résident dans sa facilité de compréhension et d'automatisation. Mais elle comporte également certains risques, et d'autres optimisations sur les paramètres et la gestion des risques sont nécessaires pour la rendre plus pratique.


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-15 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy("Noro's SimpleTurtle Strategy", shorttitle = "SimpleTurtle 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")
sizelong  = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot long, %")
sizeshort = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot short, %")
fast      = input(20, minval=1)
slow      = input(50, minval=1)
showof    = input(true, defval = true, title = "Show offset")
showll    = input(true, defval = true, title = "Show lines")
showdd    = input(false, 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)
plot(ls, offset = offset, color = colorpc)
plot(center, offset = offset, color = colorsl)

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

//Orders
truetime = true
lotlong = 0.0
lotshort = 0.0
lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1]
lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1]

//Orders
strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and truetime)
strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and truetime)
strategy.exit("Long", stop = center, when = needlong and strategy.position_size > 0)
strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0)
if true
    strategy.close_all()
    strategy.cancel("fast L")
    strategy.cancel("fast S")
    strategy.cancel("slow L")
    strategy.cancel("slow S")
    
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]))
    
    //Label
    min := round(min * 100) / 100
    labeltext = "Drawdown: " + tostring(min) + "%"
    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)

Plus de