Stratégie de trading à moyenne mobile à clôture lente


Date de création: 2023-12-22 13:18:34 Dernière modification: 2023-12-22 13:18:34
Copier: 0 Nombre de clics: 687
1
Suivre
1623
Abonnés

Stratégie de trading à moyenne mobile à clôture lente

Aperçu

Cette stratégie est combinée à l’utilisation d’un Heiken Ashi lent et d’une moyenne mobile indicielle pour identifier les tendances et faire des transactions longues et courtes dans des conditions de tendance. Optez pour la hausse lorsque le prix est supérieur à l’EMA de 100 jours, la baisse lorsque le prix est inférieur à l’EMA de 100 jours, et la baisse dans certaines conditions.

Principe de stratégie

La stratégie utilise la combinaison suivante d’indicateurs:

  1. Heiken Ashi: un type particulier de diagramme de ligne K, tracé à partir de la moyenne de la ligne K précédente, permettant de filtrer le bruit du marché et d’identifier les tendances. Ceci est réalisé en s’adaptant au filtre Kama.

  2. Moyenne mobile indicielle: moyenne des prix après l’aplatissement de l’indice, comprenant des EMA sur des périodes de 5 à plus de 100 jours.

La logique de l’opération est la suivante:

  1. Lorsque le prix atteint l’EMA de 100 jours, faites plus; lorsque le prix atteint l’EMA de 100 jours, faites moins.

  2. Conditions de placement: lorsque le prix d’ouverture de Heiken Ashi croise son prix de clôture (signal de retournement potentiel), les positions de plusieurs têtes correspondantes se placent par un croisement inverse, les positions de tête vide étant les mêmes.

Analyse des avantages

Cette stratégie, combinée à un jugement de tendance et à un signal de revers, permet de capturer des fluctuations de prix plus importantes dans des conditions de tendance, tout en évitant l’expansion des pertes par des signaux de revers.

  1. L’EMA peut être utilisée pour déterminer la direction de la tendance globale et éviter d’être induit en erreur par les chocs locaux.

  2. Les signaux de croisement de Heiken Ashi permettent de détecter plus tôt les occasions de renversement.

  3. Les filtres Kama adaptés réduisent la probabilité de faux signaux.

Analyse des risques

  1. Une rupture significative de l’EMA peut entraîner une expansion des pertes. La période de détention peut être raccourcie de manière appropriée ou un arrêt de perte peut être mis en place.

  2. Les signaux de retournement peuvent être retardés, et il est envisageable de réduire la taille de la position pour contrôler le risque.

  3. Une mauvaise configuration des paramètres EMA peut également affecter la performance de la stratégie et doit être adaptée en fonction des variétés et des conditions du marché.

Direction d’optimisation

  1. Il est possible de combiner plusieurs indices pour éviter que l’EMA et le Heiken Ashi émettent des signaux erronés.

  2. Les paramètres EMA peuvent être optimisés en temps réel en fonction de la volatilité du marché, en resserrant les arrêts de perte en cas de forte volatilité et en assouplissant les points de glissement en cas de faible volatilité.

  3. L’optimisation automatique des paramètres et des règles de filtrage est basée sur des algorithmes d’apprentissage automatique, ce qui rend la stratégie plus robuste.

Résumer

La stratégie est globalement simple et pratique, mais elle est combinée à la tendance et à l’inversion. Il y a encore de la marge de profit dans le cas où l’optimisation des paramètres et la maîtrise des risques sont en place.

Code source de la stratégie
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-19 10:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("NoScoobies Slow Heiken Ashi and Exponential Moving average Strategy 2.2", overlay=true)

//SHA
p=input(6,title='Period')
fastend=input(0.666,step=0.001)
slowend=input(0.0645,step=0.0001)
kama(close,amaLength)=>
    diff=abs(close[0]-close[1])
    signal=abs(close-close[amaLength])
    noise=sum(diff, amaLength)
    efratio=noise!=0 ? signal/noise : 1
    smooth=pow(efratio*(fastend-slowend)+slowend,2)
    kama=nz(kama[1], close)+smooth*(close-nz(kama[1], close))
    kama
hakamaper=1
Om=sma(open,p)
Hm=sma(high,p)
Lm=sma(low,p)
Cm=sma(close,p)
vClose=(Om+Hm+Lm+Cm)/4
vOpen= kama(vClose[1],hakamaper)
vHigh= max(Hm,max(vClose, vOpen))
vLow=  min(Lm,min(vClose, vOpen))
asize=vOpen-vClose
size=abs(asize)

//MMAR
exponential = input(true, title="Exponential MA")
src = close
ma05 = exponential ? ema(src, 05) : sma(src, 05)
ma10 = exponential ? ema(src, 10) : sma(src, 10)
ma15 = exponential ? ema(src, 15) : sma(src, 15)
ma20 = exponential ? ema(src, 20) : sma(src, 20)
ma25 = exponential ? ema(src, 25) : sma(src, 25)
ma30 = exponential ? ema(src, 30) : sma(src, 30)
ma35 = exponential ? ema(src, 35) : sma(src, 35)
ma40 = exponential ? ema(src, 40) : sma(src, 40)
ma45 = exponential ? ema(src, 45) : sma(src, 45)
ma50 = exponential ? ema(src, 50) : sma(src, 50)
ma55 = exponential ? ema(src, 55) : sma(src, 55)
ma60 = exponential ? ema(src, 60) : sma(src, 60)
ma65 = exponential ? ema(src, 65) : sma(src, 65)
ma70 = exponential ? ema(src, 70) : sma(src, 70)
ma75 = exponential ? ema(src, 75) : sma(src, 75)
ma80 = exponential ? ema(src, 80) : sma(src, 80)
ma85 = exponential ? ema(src, 85) : sma(src, 85)
ma90 = exponential ? ema(src, 90) : sma(src, 90)
ma95 = exponential ? ema(src, 95) : sma(src, 95)
ma100 = exponential ? ema(src, 100) : sma(src, 100)

longcondition=src>ma100
shortcondition=src<ma100
long=longcondition and size<size[1] and (vOpen<vClose or vOpen>vClose)
short=shortcondition and size<size[1] and (vOpen>vClose or vOpen<vClose)
close_long=longcondition and crossunder(open, vClose)
close_short=shortcondition and crossover(open, vClose)
_close=close_long[2] or close_short[2]

if long
    strategy.entry("LONG", strategy.long)
    strategy.close("LONG", when = _close)
if short
    strategy.entry("SHORT", strategy.short)
    strategy.close("SHORT", when = _close)