Stratégie de rupture du canal de Donchian

Auteur:ChaoZhang est là., Date: 2024-02-26 14:55:04 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie de rupture du canal de Donchian est une stratégie de suivi des tendances basée sur les canaux de prix.

La logique de la stratégie

La stratégie calcule d'abord la moyenne mobile des prix la plus élevée, la plus basse et la ligne moyenne des prix sur une certaine période. Les bandes supérieure et inférieure forment le canal de prix, tandis que la ligne moyenne se trouve au milieu du canal. Lorsque le prix dépasse la ligne moyenne, il signale une tendance à la hausse et va long. Lorsque le prix dépasse la ligne moyenne, il signale une tendance à la baisse et va court.

Plus précisément, la stratégie se compose des étapes suivantes:

  1. Calculer le plus haut de 20 périodes, à savoir dcUpper;
  2. Calculer le plus bas de 20 périodes, à savoir dcLe plus bas;
  3. Calculer la moyenne de dcUpper et dcLower pour obtenir dcAverage, comme la ligne médiane du canal;
  4. Tracez le canal supérieur, le canal inférieur et le canal moyen pour former le canal de Donchian.
  5. Il est préférable d'aller long lorsque la clôture est au-dessus de la ligne médiane de la moyenne, et de passer court lorsque la clôture est en dessous de la moyenne.
  6. Règles de sortie: si close est en dessous de la bande inférieure dcLower lorsque long, close long position; si close est au-dessus de la ligne médiane dcAverage lorsque short, close short position.

La logique ci-dessus décrit le principe de base de la stratégie de trading - capturer les tendances par des écarts de prix et changer de direction aux points pivots.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. Une base théorique solide - l'utilisation de canaux de prix pour déterminer les tendances est une approche d'analyse technique éprouvée;
  2. logique simple et claire, facile à comprendre et à mettre en œuvre;
  3. Système basé sur la rupture avec beaucoup d'opportunités de suivi des tendances, stratégies de négociation quantitatives appropriées;
  4. un mécanisme de stop loss clair pour limiter les pertes d'une seule transaction;
  5. Flexibilité - les paramètres peuvent être ajustés pour différents environnements de marché.

Analyse des risques

Il y a aussi des risques:

  1. Une fréquence de négociation élevée entraîne des coûts et des écarts plus élevés;
  2. Le placement incorrect d'un stop loss entraîne une perte dépassant le stop loss;
  3. Les paramètres inappropriés entraînent des signaux manquants ou erronés;
  4. Les échecs de rupture de tendance tardive entraînent des pertes.

Les solutions:

  1. Optimiser les paramètres et contrôler la fréquence des échanges;
  2. Améliorer la logique de stop-loss pour éviter les pertes excédentaires;
  3. Test dans différents environnements et réglage des paramètres;
  4. Ajoutez des filtres pour éviter les échecs de rupture de tendance tardive.

Directions d'optimisation

La stratégie peut être encore optimisée dans les aspects suivants:

  1. Ajouter des indicateurs de structure de marché pour éviter les transactions contre tendance majeure;
  2. Augmenter le filtrage des signaux pour assurer la validité de la rupture et réduire les faux signaux;
  3. Incorporer des métriques de volatilité pour mesurer l'intensité de la rupture;
  4. Appliquer une analyse multi-temporelle ou multi-actifs pour améliorer la robustesse;
  5. Utiliser l'apprentissage automatique pour ajuster automatiquement les paramètres en fonction de l'évolution des marchés.

Conclusion

En conclusion, la stratégie de rupture de canal Donchian est un système efficace de suivi des tendances, avec une base théorique solide, une logique simple et la capacité de suivre les tendances à travers les ruptures.


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

//@version=3

strategy(title = "dc", overlay = true)


testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = input(20, "Period")

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)
    



Plus de