
La stratégie de suivi des tendances de la chaîne de Dongguan est une stratégie de suivi des tendances basée sur l’indicateur de la chaîne de Dongguan. La stratégie consiste à calculer les prix les plus élevés et les plus bas de différents cycles, formant des trajectoires supérieures, inférieures et moyennes, pour déterminer la direction de la tendance des prix et réaliser des transactions de suivi des tendances.
La stratégie définit d’abord une période de rétroaction, puis définit les règles de placement de positions à plusieurs et à vide.
Pour les positions multiples, il y a une ouverture multiple lorsque le prix monte sur la trajectoire du passage de Dongxian; une ouverture multiple lorsque le prix descend sur la trajectoire de la descente.
Pour les positions creuses, il y a une ouverture creuse lorsque le prix est en dessous de la trajectoire du passage de Dongjian; une ouverture creuse lorsque le prix est au-dessus de la trajectoire de la trajectoire supérieure.
La stratégie a également introduit l’indicateur ATR pour configurer le mécanisme de sortie du stop loss. La valeur ATR est multipliée par un facteur pour le stop loss.
Plus précisément, le stop multiple est le prix d’ouverture de la position moins le stop ATR; le stop vide est le prix d’ouverture de la position plus le stop ATR.
Cette stratégie a permis de tracer à la fois les hauts et les bas de la voie de Don Chien, ainsi que les lignes de stop-loss de l’ATR, pour former un système complet de négociation.
Il utilise le canal de Dongxian pour déterminer la direction de la tendance et possède une certaine capacité de suivi de la tendance.
Les paramètres de Smoother du canal Dongjian sont réglables et peuvent être optimisés pour rechercher la meilleure combinaison de paramètres.
Le contrôle des risques est efficace en combinant les paramètres de l’indicateur ATR avec les paramètres de stop loss.
Les règles de trading multi-chips sont claires et faciles à comprendre, et conviennent à l’apprentissage d’un débutant.
La structure du code est claire, facile à comprendre et à réutiliser.
Il existe un certain risque de transaction erronée pour les fluctuations de prix dans la zone de consolidation.
Le paramètre d’arrêt ATR est mal réglé, ce qui peut entraîner un arrêt trop large ou trop sensible.
Les positions à plusieurs titres peuvent être trop concentrées et nécessitent des règles de gestion de position.
La validation de la pertinence des variétés commerciales est nécessaire, et les paramètres des différentes variétés doivent être optimisés indépendamment.
Les frais de transaction doivent également être pris en compte et doivent être ajustés en cas de frais élevés.
Optimiser les paramètres du cycle de passage du canal de Dongjian pour trouver la combinaison optimale de paramètres.
Essayez différents réglages d’ATR pour trouver la meilleure plage de dommages.
Essayez d’introduire un stop mobile pour verrouiller les bénéfices sur la base du stop ATR.
Adapter le ratio des positions de plus de 1 tête vide en fonction de la situation du marché.
Tester la robustesse des paramètres de différentes variétés et trouver des combinaisons de paramètres généraux.
Des filtres, tels que l’indicateur de la fourchette, ont été étudiés pour améliorer la stabilité de la stratégie.
Adaptation des paramètres de test dans différents environnements de coûts de transaction.
Dans l’ensemble, la stratégie est une stratégie de suivi de tendance relativement simple, centrée sur l’application de la voie de Dongguan. L’avantage de la stratégie réside dans sa simplicité et sa facilité d’apprentissage, mais elle doit toujours être optimisée pour les paramètres et les risques.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © kriswaters
//@version=4
strategy("Donchian Channels Strategy by KrisWaters", overlay=true )
// Date filter
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2017, title = "From Year", minval = 1900)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// Strategy Settings
canEnterLong = input(true, title="Can Enter Long Position")
canEnterShort = input(false, title="Can Enter Short Position")
showLongChannel = input(true, title="Show Donchian Long Channels")
showShortChannel = input(false , title="Show Donchian Short Channels")
useAtrAsStopRule = input(false, title="Enable ATR Stop Rule")
// DonCcian Channel Lengths
longUpperLength = input(20, minval=1)
longLowerLength = input(10, minval=1)
shortUpperLength = input(10, minval=1)
shortLowerLength = input(20, minval=1)
// Donchian indicator calculations
longUpperValue = highest(high,longUpperLength)
longLowerValue = lowest(low,longLowerLength)
shortUpperValue = highest(high,shortUpperLength)
shortLowerValue = lowest(low,shortLowerLength)
// Plot Donchian Channels
uLong = plot(showLongChannel ? longUpperValue : na, color=color.green, offset=1)
lLong = plot(showLongChannel ? longLowerValue : na, color=color.green, offset=1)
uShort = plot(showShortChannel ? shortUpperValue : na, color=color.red, offset=1)
lShort = plot(showShortChannel ? shortLowerValue : na, color=color.red, offset=1)
// Styling
fill(uLong,lLong, color=color.green, transp=95, title="Long Arkaplan")
fill(uShort,lShort, color=color.red, transp=95, title="Short Arkaplan")
// Stop-loss value calculations
atrMultiplier = 2.0
atrValue = atr(20)
longStopValue = open - (atrMultiplier*atrValue)
shortStopValue = open + (atrMultiplier*atrValue)
// Plot stop-loss line
plot(useAtrAsStopRule ? longStopValue : na, color=color.red, linewidth=2, offset=1)
plot(useAtrAsStopRule ? shortStopValue : na, color=color.red, linewidth=2, offset=1)
// Long and Short Position Rules
if canEnterLong and na(longUpperValue) != true and na(longLowerValue) != true and window()
strategy.entry("Long", true, stop=longUpperValue)
strategy.exit("Long Exit", "Long", stop=useAtrAsStopRule ? max(longLowerValue,longStopValue) : longLowerValue)
if canEnterShort and na(shortUpperValue) != true and na(shortLowerValue) != true and window()
strategy.entry("Short", false, stop=shortLowerValue)
strategy.exit("Short Exit", "Short", stop=useAtrAsStopRule ? min(shortUpperValue,shortStopValue) : shortUpperValue)