Stratégie de rupture du canal Donchian

Auteur:ChaoZhang est là., Date: 2024-02-04 09:42:14 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie Double Donchian Channel Breakout est une stratégie de trading quantitative basée sur le canal de Donchian. Cette stratégie utilise une combinaison de canaux de Donchian rapides et lents pour réaliser un trading de rupture à faible risque et à haut rendement.

La logique de la stratégie

Cette stratégie utilise principalement deux canaux de Donchian, dont un canal plus lent avec une période plus longue et un canal plus rapide avec une période plus courte.

Le canal de Donchian lent a une période plus longue qui peut filtrer efficacement le bruit du marché, ce qui rend ses signaux de rupture plus fiables.

Le canal rapide de Donchian a une période plus courte qui peut réagir rapidement aux fluctuations de prix à court terme.

En outre, une condition de volatilité est définie comme un filtre pour les signaux d'entrée. La stratégie ne déclenchera l'entrée que lorsque le mouvement des prix dépassera un seuil de pourcentage prédéterminé. Cela évite de fréquents fléchissements lors de consolidations à plage.

Analyse des avantages

  • Le mécanisme à double canal établit deux lignes de défense et contrôle efficacement les risques
  • La combinaison de canaux rapides et lents capte efficacement les tendances
  • Le filtre de volatilité réduit les transactions inefficaces
  • En même temps, il suit les tendances et empêche le sur-ajustement
  • Une logique simple et claire, facile à comprendre et à maîtriser.

Analyse des risques

  • Des fluctuations de prix violentes peuvent pénétrer le stop loss et entraîner de lourdes pertes
  • Des paramètres incorrects (p. ex. périodes de diffusion) peuvent compromettre l'efficacité de la stratégie
  • Les coûts de négociation nuisent également dans une certaine mesure aux bénéfices
  • Les risques liés à des événements importants nécessitent une attention particulière

Ces risques peuvent être réduits par l'optimisation des paramètres, un placement raisonnable des stops-loss, une prise de conscience des événements, etc.

Directions d'optimisation

  • Testez différentes combinaisons de périodes du canal de Donchian
  • Optimiser le paramètre de volatilité pour le meilleur moment d'entrée
  • Ajout d'un indicateur de vérification de tendance pour éviter les transactions contre-tendance
  • Le choix des stocks fondamentaliste
  • Ajuster le mécanisme de stop-loss pour limiter les pertes

Conclusion

La stratégie Double Donchian Channel Breakout est globalement une stratégie de suivi des tendances relativement stable et fiable. Elle combine les forces de la capture des tendances et du contrôle des risques, ce qui la rend adaptée comme module de base dans diverses stratégies de négociation d'actions.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)


slowLen = input.int(50, title="Slow Donchian")
fastLen = input.int(30, title="Fast Donchian")
volatility = input.int(3, title="Volatility (%)")
longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01
shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)")

ubSlow = ta.highest(close, slowLen)[1]
lbSlow = ta.lowest(close, slowLen)[1]

ubFast = ta.highest(close, fastLen)[1]
lbFast = ta.lowest(close, fastLen)[1]

plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband")
plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband")
plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband")
plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband")

fark = (ubSlow - lbSlow) / lbSlow * 100

longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

longCondition = ta.crossover(close, ubSlow) and fark > volatility
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if (shortCondition)
    strategy.entry("Short", strategy.short)

if strategy.position_size > 0 and ta.crossunder(close, lbFast) 
    strategy.close("Long", "Close All")

if strategy.position_size < 0 and ta.crossover(close, ubFast)
    strategy.close("Short", "Close All")

// Take Profit
if strategy.position_size > 0
    strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)

if strategy.position_size < 0
    strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)

Plus de