Stratégie de rupture dynamique des canaux

Auteur:ChaoZhang est là., Date: 2024-01-17 15h29 et 55 min
Les étiquettes:

img

Résumé

La stratégie de rupture dynamique du canal est une stratégie de suivi des tendances. Elle utilise l'indicateur du canal Donchian pour déterminer dynamiquement les prix d'achat et de vente de rupture, combine l'indicateur ATR pour définir des points de stop-loss et réalise une automatisation complète de la génération de signaux de trading et des sorties de stop-loss.

Principaux

Canal du Donchien

Le canal de Donchian est un indicateur de canal dynamique qui forme des bandes supérieures et inférieures en calculant les prix les plus élevés et les plus bas au cours d'une certaine période dans le passé.

Cette stratégie fixe la période du canal de Donchian à 20 jours. Lorsque le prix franchit le rail supérieur, un signal d'achat est généré, indiquant que le marché est entré dans une tendance à la hausse. Lorsque le prix tombe en dessous du rail inférieur, un signal de vente est généré, indiquant que le marché est entré dans une tendance à la baisse.

Indicateur ATR

L'indicateur ATR est l'abréviation de Average True Range, qui reflète l'amplitude moyenne de fluctuation d'un certain actif au cours d'une période récente.

Cette stratégie utilise l'indicateur ATR de 20 jours pour calculer le point d'arrêt de perte. Plus la valeur ATR est grande, plus la fluctuation du marché est grande et plus le point d'arrêt de perte est éloigné. Cela empêche le point d'arrêt de perte d'être trop proche et éliminé par de légères fluctuations du marché.

Génération du signal

Lorsque le prix franchit la ligne médiane du canal de Donchian vers le haut, un signal d'achat est généré. Lorsque le prix franchit la ligne médiane vers le bas, un signal de vente est généré. Cela indique que le prix a commencé à franchir ce canal et à entrer dans un nouveau cycle de tendance.

En même temps, en combinaison avec le point de stop loss calculé par l'indicateur ATR, lorsque la perte atteint le point de stop loss, la position sera activement stoppée pour contrôler les risques.

Analyse des avantages

Suivi automatique des tendances

Le canal Donchian est un indicateur de suivi des tendances. En ajustant dynamiquement la plage de canaux, cette stratégie peut suivre automatiquement les changements dans les tendances du marché et générer des signaux d'achat et de vente en conséquence. Cela évite la subjectivité du jugement manuel et rend les signaux de trading plus objectifs et fiables.

Commerce à double sens

La stratégie contient à la fois des règles longues et courtes, ce qui permet un commerce bidirectionnel. Cela élargit les environnements de marché où la stratégie peut être appliquée, permettant une rentabilité à la fois en hausse et en baisse.

Gestion des risques

Le mécanisme d'arrêt des pertes de l'indicateur ATR peut contrôler efficacement la perte d'une seule transaction.

Analyse des risques

Risque de piège

La stratégie du canal de Donchian présente un certain risque d'être piégée. Si le prix s'inverse et rentre dans le canal sans stop loss, des pertes importantes peuvent être encourues. Le mécanisme de stop loss ATR dans cette stratégie aide à atténuer ce risque.

Risque d'inversion de tendance

L'indicateur Donchian Channel génère des signaux erronés lors d'inversions de tendance.

Risque d'optimisation des paramètres

Les paramètres de la période de la chaîne de Donchian et de l'ATR doivent être optimisés, sinon des signaux incorrects excessifs peuvent être générés.

Directions d'optimisation

Ajouter le jugement de tendance

Des indicateurs de jugement de tendance tels que des moyennes mobiles peuvent être ajoutés pour éviter des signaux erronés à des points tournants importants.

Optimisation des paramètres

Optimiser les paramètres du canal de Donchian et de l'ATR pour trouver la meilleure combinaison.

Ajouter des modèles de prix

Combiner d'autres indicateurs de jugement auxiliaires tels que les modèles de chandeliers et les changements de volume de négociation pour améliorer l'exactitude du signal et réduire les transactions de renversement inutiles.

Conclusion

La stratégie de rupture dynamique du canal localise la direction de la tendance à travers les bandes supérieures et inférieures du canal de Donchian et génère des signaux de trading. Le mécanisme de stop loss ATR contrôle le risque. Cette stratégie a un haut degré d'automatisation et convient au trading quantitatif.


/*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)



Plus de