Stratégie de cassure du canal à moyenne mobile


Date de création: 2024-01-29 10:26:25 Dernière modification: 2024-01-29 10:26:25
Copier: 0 Nombre de clics: 666
1
Suivre
1617
Abonnés

Stratégie de cassure du canal à moyenne mobile

Aperçu

La stratégie est basée sur le calcul du milieu, du haut et du bas des canaux Keltner, avec les couleurs de remplissage ABOVE et ABOVE. Après avoir jugé la direction des canaux, on effectue des achats et des ventes de rupture.

Principe de stratégie

L’indicateur central est le canal de Keltner. La trajectoire du canal est la moyenne mobile pondérée de N jours de prix typiques (prix plus haut + prix plus bas + prix de clôture) / 3. La trajectoire du canal est la moyenne mobile pondérée de N jours de tranches de transactions séparées de la trajectoire du canal.

En particulier, la stratégie consiste à déterminer si le prix a franchi la trajectoire ascendante ou descendante, en utilisant la trajectoire intermédiaire pour prendre des décisions à plusieurs têtes ou à vide. Si le prix de clôture est supérieur à la trajectoire ascendante, faites plus; si le prix de clôture est inférieur à la trajectoire descendante, faites vide.

Analyse des avantages

  1. L’utilisation de l’indicateur de la chaîne de Keltner permet de mieux juger la portée des fluctuations des prix et d’éviter les fausses ruptures.
  2. L’utilisation d’une ligne médiane comme support permet de réduire les pertes.
  3. La rupture de la trajectoire ascendante et la rupture de la trajectoire descendante font partie de la stratégie de suivi de la tendance et sont conformes à la loi de variation des prix de la plupart des actions.

Analyse des risques

  1. Les stratégies de canal de rupture sont sensibles aux paramètres et nécessitent des tests répétés pour trouver la meilleure combinaison de paramètres.
  2. Les fluctuations importantes du cours des actions à court terme augmentent le risque de transaction. La largeur des canaux peut être assouplie de manière appropriée pour réduire le risque de transaction erronée.
  3. L’effet est plus pertinent pour la configuration des paramètres et la variété, et doit être adapté aux différentes variétés.

Direction d’optimisation

  1. En combinaison avec d’autres indicateurs, les signaux de filtrage sont évités. Par exemple, l’indicateur de quantité d’énergie, l’indicateur de volatilité, etc.
  2. Optimisation des paramètres, recherche de la meilleure combinaison de paramètres. Ajustement des paramètres de moyenne et des multiples de voie principalement.
  3. Les paramètres des différentes variétés varient considérablement et nécessitent une optimisation de la classification.

Résumer

Cette stratégie est généralement simple et directe. Elle fait partie des stratégies de prix les plus courantes. Elle a l’avantage d’être clairement pensée, facile à comprendre et adaptée aux débutants.

Code source de la stratégie
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © WMX_Q_System_Trading
//@version=3

strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true)

useTrueRange = input(true)
length = input(20, minval=5)
mult = input(2.618, minval=0.1)
mah =ema(ema( ema(high, length),length),length)
mal =ema(ema( ema(low, length),length),length)
range = useTrueRange ? tr : high - low
rangema =ema(ema( ema(range, length),length),length)
upper = mah + rangema * mult
lower = mal - rangema * mult
ma=(upper+lower)/2
uc = red
lc=green
u = plot(upper, color=uc, title="Upper")
basis=plot(ma, color=yellow, title="Basis")
l = plot(lower, color=lc, title="Lower")
fill(u, basis, color=uc, transp=95)
fill(l, basis, color=lc, transp=95)


strategy.entry("Long", strategy.long,  stop = upper, when = strategy.position_size <= 0 and close >upper)
strategy.entry("Short", strategy.short,  stop = lower, when = strategy.position_size >= 0 and close<lower)
if strategy.position_size > 0 
    strategy.exit("Stop Long", "Long", stop = ma)

if strategy.position_size < 0 
    strategy.exit("Stop Short", "Short", stop = ma)