
La stratégie utilise le canal de Dongguan à 24 cycles combiné avec la moyenne à 200 cycles comme signal de négociation principal. Les points d’entrée choisissent de faire court en bas des fluctuations rouge-vert et en haut des fluctuations.
La stratégie est basée sur les points suivants:
La construction d’un canal de Dongguan est faite en utilisant les hauts et les bas de 24 cycles, indiquant que des baisses plus importantes peuvent survenir lorsque le prix franchit ce canal.
La moyenne cyclique de 200 est utilisée comme condition de filtrage polyvalente, si elle est franchie et que les prix sont de l’autre côté de la moyenne, on pense que la tendance peut être inversée.
Le signal d’entrée est:
Le stop loss est le plus élevé des 3 dernières lignes K, le stop loss est le prix d’ouverture moins trois fois la différence entre le stop loss et le prix d’ouverture. Le stop loss et le stop loss sont calculés de la même manière que le stop loss.
L’avantage de cette stratégie est qu’en utilisant une combinaison de filtres homogènes avec le canal de Dongxian, on évite les erreurs d’un seul indicateur technique, ce qui augmente considérablement le taux de réussite de la stratégie.
Cette stratégie présente les avantages suivants:
Taux de réussite élevé: l’utilisation combinée de la voie de Dongxian et de l’indicateur de la ligne de parité permet d’éviter efficacement les pertes inutiles causées par l’erreur d’un seul indicateur technique.
Risque maîtrisé: utilisez le plus haut/le plus bas prix le plus récent comme point d’arrêt pour contrôler efficacement les pertes individuelles. Le stop est 3 fois plus élevé que le stop et le risque de gain est plus élevé.
Simple et facile à utiliser: les indicateurs et la logique sont très simples et clairs, faciles à comprendre et à mettre en œuvre.
Une grande adaptabilité: moins de paramètres stratégiques et une bonne stabilité dans différentes variétés et cycles.
Les principaux risques de cette stratégie sont les suivants:
Risque d’extrême situation: si vous rencontrez une situation unilatérale majeure, il est facile de déclencher un arrêt ou d’accroître les pertes. Il est possible de faire face à la situation en assouplissant de manière appropriée le seuil d’arrêt ou en réduisant la position.
Risque d’erreur de détection des signaux de départ: l’adoption de nouveaux signaux de retour comme signaux de départ peut entraîner des entrées et des sorties fréquentes dans des situations de choc, entraînant des pertes de points de glissement inutiles. Il peut être résolu en optimisant la logique de départ.
Risque d’optimisation des paramètres: un mauvais réglage des paramètres de la fréquence et de la moyenne des canaux de Dongguan peut entraîner une fréquence ou un retard du signal. Ce risque peut être réduit par l’optimisation des paramètres et les tests combinés.
Cette stratégie peut être optimisée dans les directions suivantes:
Les cycles de passage de Dongguan et les cycles de ligne moyenne peuvent être optimisés pour trouver la meilleure combinaison de paramètres.
Il est possible de tester différents ratios de stop-loss, d’équilibre et de profit/perte.
On peut essayer de combiner les signaux d’entrée de jeu de correction d’autres indicateurs, tels que MACD, KD, etc., pour améliorer la stabilité de la stratégie.
Les signaux de départ peuvent être optimisés pour éviter des sorties inutiles dans des situations de choc. Les signaux de départ peuvent également prendre en compte les indicateurs de tendance, etc.
Un nouveau portefeuille de stratégies peut être développé sur la base de ce cadre stratégique, par exemple en combinaison avec d’autres indicateurs de type canal, indicateurs de type liste, etc.
L’idée générale de la stratégie de l’équilibre lent est claire et compréhensible. En utilisant le canal de Tongan et l’équilibre comme signaux de stratégie, il peut améliorer efficacement la stabilité et le taux de victoire de la stratégie.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
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/
// © Mysteriown
//@version=4
strategy("Lagged Donchian Channel + EMA", overlay = true)
//tradePeriod = time(timeframe.period,"0000-0000:1234567")?true:false
// ------------------------------------------ //
// ----------------- Inputs ----------------- //
// ------------------------------------------ //
period = input(24, title="Channel's periods")
Pema = input(200, title="EMA's periods ?")
ratio = input(3, title="Ratio TP", type=input.float)
loss = input(20, title="Risk Loss ($)")
lev = input(5, title="Leverage *...")
chan = input(title="Plot channel ?", type=input.bool, defval=false)
Bpos = input(title="Plot Bull positions ?", type=input.bool, defval=false)
bpos = input(title="Plot Bear positions ?", type=input.bool, defval=false)
labels = input(title="Plot labels of bets ?", type=input.bool, defval=true)
supp = input(title="Delete last labels ?", type=input.bool, defval=true)
// ------------------------------------------ //
// ---------- Canal, EMA and arrow ---------- //
// ------------------------------------------ //
pema = ema(close,Pema)
plot(pema, title="EMA", color=color.blue)
canalhaut = highest(period)[1]
canalbas = lowest(period)[1]
bear = close[1] > canalhaut[1] and close < open and high > pema
bull = close[1] < canalbas[1] and open < close and low < pema
canalhautplot = plot(chan? canalhaut:na, color=color.yellow)
canalbasplot = plot(chan? canalbas:na, color=color.yellow)
plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)
// ------------------------------------------ //
// ------------- Position Short ------------- //
// ------------------------------------------ //
SlShort = highest(3)
BidShort = close[1]
TpShort = BidShort-((SlShort-BidShort)*ratio)
deltaShort = (SlShort-BidShort)/BidShort
betShort = round(loss/(lev*deltaShort)*100)/100
cryptShort = round(betShort*lev/BidShort*1000)/1000
// if bear[1] and labels //and low < low[1]
// Lbear = label.new(bar_index, na, text="SHORT\n\nSL: " + tostring(SlShort) + "\n\nBid: " + tostring(BidShort) + "\n\nTP: " + tostring(TpShort) + "\n\nMise: " + tostring(betShort) + "\n\nCryptos: " + tostring(cryptShort), color=color.red, textcolor=color.white, style=label.style_labeldown, yloc=yloc.abovebar)
// label.delete(supp ? Lbear[1] : na)
var bentry=0.0
var bsl=0.0
var btp=0.0
if bear[1] and low < low[1]
bentry:=BidShort
bsl:=SlShort
btp:=TpShort
pbentry = plot(bpos? bentry:na, color=color.orange)
plot(bpos? (bentry+btp)/2:na, color=color.gray)
pbsl = plot(bpos? bsl:na, color=color.red)
pbtp = plot(bpos? btp:na, color=color.green)
fill(pbentry,pbsl, color.red, transp=70)
fill(pbentry,pbtp, color.green, transp=70)
// ------------------------------------------ //
// ------------- Position Long -------------- //
// ------------------------------------------ //
SlLong = lowest(3)
BidLong = close[1]
TpLong = BidLong + ((BidLong - SlLong) * ratio)
deltaBull = (BidLong - SlLong)/BidLong
betLong = round(loss/(lev*deltaBull)*100)/100
cryptLong = round(betLong*lev/BidLong*1000)/1000
// if bull[1] and labels //and high > high[1]
// Lbull = label.new(bar_index, na, text="LONG\n\nSL: " + tostring(SlLong) + "\n\nBid: " + tostring(BidLong) + "\n\nTP: " + tostring(TpLong) + "\n\nMise: " + tostring(betLong) + "\n\nCryptos: " + tostring(cryptLong), color=color.green, textcolor=color.white, style=label.style_labelup, yloc=yloc.belowbar)
// label.delete(supp ? Lbull[1] : na)
var Bentry=0.0
var Bsl=0.0
var Btp=0.0
if bull[1] and high > high[1]
Bentry:=BidLong
Bsl:=SlLong
Btp:=TpLong
pBentry = plot(Bpos?Bentry:na, color=color.orange)
plot(Bpos?(Bentry+Btp)/2:na, color=color.gray)
pBsl = plot(Bpos?Bsl:na, color=color.red)
pBtp = plot(Bpos?Btp:na, color=color.green)
fill(pBentry,pBsl, color.red, transp=70)
fill(pBentry,pBtp, color.green, transp=70)
// ------------------------------------------ //
// --------------- Strategie ---------------- //
// ------------------------------------------ //
Bear = bear[1] and low < low[1]
Bull = bull[1] and high > high[1]
if (Bear and strategy.opentrades==0)
strategy.order("short", false, 1, limit=BidShort)
strategy.exit("exit", "short", limit = TpShort, stop = SlShort)
strategy.cancel("short", when = high > SlShort or low < (BidShort+TpShort)/2)
strategy.close("short", when=bull)
if (Bull and strategy.opentrades==0)
strategy.order("long", true, 1, limit=BidLong)
strategy.exit("exit", "long", limit = TpLong, stop = SlLong)
strategy.cancel("long", when = low < SlLong or high > (BidLong+TpLong)/2)
strategy.close("long", when=bear)