
La stratégie de rupture de canal dynamique est une stratégie de suivi de tendance. Elle utilise l’indicateur de canal Donchian pour déterminer dynamiquement les prix de rupture d’achat et de vente, en combinaison avec l’indicateur ATR de volatilité pour définir les points de rupture, permettant la génération de signaux de négociation et l’automatisation complète de la rupture de rupture.
Le canal de Donchian est un indicateur de canal dynamique qui forme des trajectoires ascendantes et descendantes en calculant les prix les plus élevés et les plus bas d’une période donnée. La trajectoire ascendante est le prix le plus élevé des n dernières périodes et la trajectoire descendante est le prix le plus bas des n dernières périodes. Le canal de Donchian reflète la portée des fluctuations du marché et les tendances potentielles.
La stratégie définit un cycle de 20 jours pour le canal Donchian. Un signal d’achat est généré lorsque le prix franchit une trajectoire ascendante, indiquant que le marché est entré dans une tendance haussière; un signal de vente est généré lorsque le prix est descendu de la trajectoire descendante, indiquant que le marché est entré dans une tendance baissière.
L’indicateur ATR est l’abréviation de Average True Range, qui reflète l’ampleur moyenne des fluctuations d’un actif au cours d’une période récente. L’ATR peut s’adapter automatiquement aux changements de fréquence des fluctuations du marché, reflétant ainsi plus précisément les fluctuations réelles du marché au cours de la dernière période.
La stratégie utilise l’indicateur ATR à 20 jours pour calculer le point de rupture. Plus le nombre d’ATR est élevé, plus la volatilité du marché est importante et plus le point de rupture est éloigné. Cela empêche le point de rupture d’être trop proche et d’être frappé par de petites fluctuations du marché.
Un signal de vente est généré lorsque le prix franchit la ligne médiane du canal Donchian. Cela indique que le prix commence à franchir le canal et à entrer dans un nouveau cycle de tendance.
En même temps, en combinant les points de perte calculés par l’indicateur ATR, les pertes de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte de perte.
Le canal Donchian est un indicateur de suivi des tendances. Cette stratégie permet de suivre automatiquement les changements de tendance du marché en ajustant dynamiquement la portée du canal, ce qui génère des signaux d’achat et de vente. Cela évite la subjectivité du jugement artificiel et rend la génération de signaux de négociation plus objective et plus fiable.
La stratégie contient à la fois des règles de prise de plus et de moins, permettant des transactions bilatérales. Cela élargit l’environnement de marché dans lequel la stratégie s’applique et permet de tirer profit de la hausse et de la baisse des cours.
La combinaison d’un mécanisme de stop-loss avec l’indicateur ATR permet de contrôler efficacement les pertes d’une seule transaction. Ceci est particulièrement important pour les transactions quantitatives, car cela garantit que la stratégie obtient des rendements positifs stables dans des événements à forte probabilité.
Il existe un certain risque de couverture dans la stratégie de la porte Donchian. Lorsque le prix se retourne et rentre dans la porte, des pertes importantes peuvent être causées si les pertes ne s’arrêtent pas. Cette stratégie réduit ce risque grâce au mécanisme d’arrêt des pertes de l’indicateur ATR.
L’indicateur du canal Donchian génère un signal erroné lors d’un renversement de tendance. L’utilisateur doit être attentif à l’état de la situation et éviter de rester aveugle à l’approche d’un renversement de tendance significatif.
Les paramètres périodiques de l’arrêt du canal Donchian et de l’ATR doivent être optimisés, sinon il y aura trop de signaux d’erreur. Les paramètres expérimentaux sont utilisés dans cette stratégie et les paramètres en direct doivent être optimisés en fonction des données historiques.
Des indicateurs de jugement de tendance tels que les moyennes mobiles peuvent être ajoutés pour éviter de générer des signaux erronés à des points de retournement de tendance importants.
L’optimisation des canaux Donchian et des paramètres ATR pour trouver la meilleure combinaison de paramètres. Une réduction appropriée des cycles de canaux permet de capturer plus rapidement les retournements de tendance.
En combinaison avec d’autres indicateurs de jugement auxiliaires, tels que la forme de la ligne K, les variations du volume des transactions, etc., il est possible d’améliorer l’exactitude du signal et de réduire les retournements inutiles.
La stratégie de rupture de canal dynamique oriente la direction de la tendance par le haut et le bas du canal Donchian et génère des signaux de négociation. La stratégie est hautement automatisée et convient aux transactions quantifiées. L’espace d’optimisation réside dans l’optimisation du choix des paramètres et dans la combinaison d’autres indicateurs auxiliaires pour améliorer l’exactitude du signal.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "dc", overlay = true)
atrLength = input(title="ATR Length:", defval=20, minval=1)
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
atrValue=atr(atrLength)
useTakeProfit = na
useStopLoss = na
useTrailStop = na
useTrailOffset = na
Buy_stop = lowest(low[1],3) - atr(20)[1] / 3
plot(Buy_stop, color=red, title="buy_stoploss")
Sell_stop = highest(high[1],3) + atr(20)[1] / 3
plot(Sell_stop, color=green, title="sell_stoploss")
plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)
plot(dcAverage, color=yellow, style=line, linewidth=3, title="Mid-Line Average")
strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage))
strategy.close("simpleBuy",when=((close < dcAverage) and cross(close,dcAverage)) or ( close< Buy_stop))
strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) )
strategy.close("simpleSell",when=((close > dcAverage) and cross(close,dcAverage)) or ( close > Sell_stop))
//strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
//strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)