Stratégie de percée par oscillation à double moyenne mobile


Date de création: 2023-11-27 17:44:49 Dernière modification: 2023-11-27 17:44:49
Copier: 0 Nombre de clics: 624
1
Suivre
1617
Abonnés

Stratégie de percée par oscillation à double moyenne mobile

Aperçu

La stratégie de rupture des oscillations de la double ligne d’équilibre permet de déterminer le mouvement des oscillations de prix en calculant les courbes d’équilibre de deux périodes différentes. Lorsque le prix franchit la voie, un signal de transaction est formé. La stratégie est combinée à la fois avec le jugement de la tendance dominante du marché pour éviter les fausses ruptures.

Principe de stratégie

La stratégie consiste principalement à former un canal ascendant et descendant à travers deux lignes moyennes mobiles, dont la portée est déterminée par la plage d’oscillation réelle moyenne ATR. Plus précisément, la stratégie consiste principalement en les étapes suivantes:

  1. On calcule deux courbes de moyenne, la courbe 1 de courte durée et la courbe 2 de longue durée. La courbe 1 reflète la tendance actuelle des prix et la courbe 2 reflète la tendance des prix courants.

  2. Dans la moyenne 1, un ATR est ajouté à chaque canal de formation, ce qui permet de refléter la volatilité du marché actuel.

  3. Un signal d’achat se forme lorsque le prix franchit le canal de bas en haut; un signal de vente se forme lorsque le prix franchit le canal de haut en bas.

  4. En combinaison avec les tendances des prix courants, un véritable signal de transaction ne peut être généré que si la direction de la rupture du cycle court est conforme à la tendance du cycle long.

Grâce aux étapes ci-dessus, la stratégie peut capturer les points de rupture dans les tendances de volatilité des prix, tout en évitant les faux signaux en combinaison avec les tendances dominantes.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’utilisation d’une ligne biunivoque pour former des canaux reflétant les fluctuations des prix actuels.

  2. L’introduction du paramètre ATR permet à la portée du canal de suivre les fluctuations du marché en temps réel.

  3. Le prix de l’électricité est le principal facteur de la croissance de l’électricité dans le monde.

  4. Les règles de jugement stratégique sont claires, simples, faciles à comprendre, adaptées à l’apprentissage et à la recherche.

Analyse des risques

La stratégie présente également les risques suivants:

  1. Il est facile de se tromper après un échec de la percée. Vous pouvez réduire ce risque en déplaçant votre position après avoir gagné.

  2. Le courant dominant juge qu’il existe un retard de temps et qu’il est impossible d’éviter complètement le signal erroné. Il est possible d’ajuster le paramètre de la ligne moyenne de manière appropriée pour le réduire.

  3. Dans les marchés à forte volatilité, les points d’arrêt peuvent être facilement franchis. L’ATR peut être ajusté en temps réel pour répondre aux fluctuations du marché.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Les paramètres calculés pour la moyenne peuvent être optimisés pour trouver la combinaison optimale de paramètres pour les différentes variétés.

  2. Les paramètres ATR peuvent également être optimisés pour permettre à la chaîne de mieux suivre les fluctuations actuelles.

  3. Ajout de conditions de filtrage supplémentaires, telles que des indicateurs de quantité d’énergie, des indicateurs d’oscillation, etc., pour éviter davantage de faux signaux.

  4. L’optimisation automatique des paramètres par le biais de la technologie d’apprentissage automatique permet une adaptation dynamique des paramètres.

Résumer

La stratégie de rupture de la secousse biuniversale permet de capturer les tendances de la secousse par la détermination du canal biuniversale et de la direction dominante. Les règles de cette stratégie sont simples et claires, faciles à comprendre et à mettre en œuvre, et constituent un excellent exemple de compréhension et d’apprentissage de la stratégie de rupture. La stratégie peut améliorer encore la stabilité et la rentabilité en optimisant continuellement la définition des paramètres et le filtrage des signaux.

Code source de la stratégie
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Anuj4912
//@version=4
strategy("Anuj4912", overlay=true)
res = input(title="Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=request.security(syminfo.tickerid,res,close)

TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)