Stratégie de négociation des moyennes mobiles exponentielles de Heiken Ashi

Auteur:ChaoZhang est là., Date: 2023-12-22 13:18:34 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie combine des moyennes mobiles Heiken Ashi lentes et des moyennes mobiles exponentielles pour identifier les tendances et effectuer des transactions longues / courtes pendant les marchés en tendance.

La logique de la stratégie

La stratégie utilise les indicateurs suivants:

  1. Slow Heiken Ashi: Un type spécial de chandelier calculé à l'aide du prix moyen de la barre précédente, filtrant le bruit du marché et identifiant les tendances.

  2. Moyenne mobile exponentielle: Moyenne de prix lissée avec pondération exponentielle appliquée.

La logique de négociation spécifique est la suivante:

  1. Allez long lorsque le prix dépasse la moyenne de 100 jours, allez court lorsque le prix dépasse la moyenne de 100 jours.

  2. Les positions longues sont fermées sur les croisements inversés et les positions courtes également.

Analyse des avantages

La stratégie combine des signaux de suivi de tendance et d'inversion, captant de grandes fluctuations de prix lors de tendances sur les marchés tout en évitant des pertes excessives lorsque les tendances s'inversent.

  1. L'EMA détermine l'orientation générale de la tendance du marché, empêchant ainsi la distraction par des fluctuations localisées.

  2. Les croisements Heiken Ashi permettent une détection précoce des éventuels retours en arrière.

  3. Le filtre adaptatif KAMA réduit les faux signaux.

Analyse des risques

  1. Les ruptures soudaines et importantes de l'EMA peuvent entraîner des pertes accrues.

  2. Les signaux d'inversion peuvent être retardés, réduisez les positions pour contrôler le risque.

  3. Une paramétrisation inadéquate de l'EMA a des effets négatifs sur les performances. Les paramètres doivent s'adapter aux différents produits et environnements du marché.

Directions d'optimisation

  1. Incorporer des indicateurs supplémentaires tels que le MACD et les bandes de Bollinger pour éviter les erreurs simultanées EMA/Heiken Ashi.

  2. Optimiser dynamiquement les paramètres de l'EMA en fonction de la volatilité du marché, en resserrant les arrêts/en augmentant la tolérance au glissement en conséquence.

  3. Utiliser l'apprentissage automatique pour ajuster automatiquement les paramètres, les règles de filtrage et améliorer la robustesse.

Conclusion

La stratégie est relativement simple et pratique dans l'ensemble, combinant à la fois des éléments de tendance et d'inversion. Avec des paramètres bien ajustés et des contrôles des risques, elle conserve un potentiel de profit décent.


/*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)
    


Plus de