Les ressources ont été chargées... Je charge...

Quatre moyennes mobiles exponentielles et stratégie de volume

Auteur:ChaoZhang est là., Date: 2023-10-09 15h05 et 47 min
Les étiquettes:

Résumé

Cette stratégie combine plusieurs EMA avec des paramètres différents et l'indicateur de volume EOM pour déterminer les tendances sur plusieurs délais et construire une stratégie de trading avec des jugements à long terme et à court terme.

La logique de la stratégie

La stratégie utilise 4 groupes de EMA avec des paramètres de période différents - 13, 21, 50 et 180. Ces 4 EMA établissent plusieurs dimensions temporelles pour déterminer les tendances des prix et découvrir des tendances à plus long terme.

La stratégie utilise l'indicateur de volume EOM pour confirmer les tendances. L'EOM combine le volume des transactions et la fourchette de volatilité des prix pour mesurer efficacement la pression d'achat et de vente.

La stratégie comporte deux options. L'option 1 va long lorsque l'EMA plus courte traverse au-dessus de l'EMA plus longue et ferme longue lorsque l'EMA plus courte traverse au-dessous de l'EMA plus longue. L'option 2 va long lorsque l'EMA plus courte traverse au-dessus de l'EMA intermédiaire et ferme longue lorsque l'EMA plus courte traverse au-dessous de l'EMA intermédiaire. Les deux options permettent une confirmation de tendance plus complète.

Les avantages

  • L' utilisation d' EMA multi-temporelles pour déterminer les tendances peut permettre de détecter des tendances à plus long terme
  • L'indicateur de volume EOM mesure efficacement la pression d'achat/de vente, évitant ainsi les faux signaux de baisses temporaires
  • Deux méthodes d'entrée facultatives permettent une confirmation de tendance plus complète
  • La mise à l'échelle avec des sorties en couches réduit l'exposition à une seule sortie

Les risques

  • Les EMA ont un décalage et peuvent manquer des retours rapides
  • Les indicateurs de volume peuvent donner de faux signaux
  • Critères de condition multiples créent une entrée peu claire
  • Les sorties en couches peuvent être trop mécaniques

Des possibilités d'amélioration

  • Testez plus de combinaisons de périodes EMA pour trouver des paramètres optimaux
  • Ajouter d'autres indicateurs comme le MACD pour la confirmation d'entrée
  • Adopter un stop loss dynamique pour suivre les tendances
  • Ajuster la taille des positions en fonction des conditions du marché

Résumé

Cette stratégie intègre la détermination de la tendance EMA sur plusieurs délais et le filtrage des indicateurs de volume pour atteindre le suivi de la tendance et l'élimination du bruit. Il y a encore beaucoup de place pour l'optimisation en testant différentes combinaisons de paramètres et en ajoutant plus d'indicateurs pour améliorer encore la robustesse.


/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
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/
// © SoftKill21

//@version=4
strategy("4x ema + volume", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 )

//ema x 4
ema1l=input(13)
ema2l=input(21)
ema3l=input(50)
ema4l=input(180)

ema1=ema(close,ema1l)
ema2=ema(close,ema2l)
ema3=ema(close,ema3l)
ema4=ema(close,ema4l)

long1 = close > ema1 and ema1 > ema2 and ema2> ema3 and ema3 > ema4
long2 = crossover(ema1,ema2) and crossover(ema1,ema3)

short1 = close < ema1 and ema1 < ema2 and ema2< ema3 and ema3 < ema4
short2= crossunder(ema1,ema2) and crossunder(ema1,ema3)


//eom
length = input(14, minval=1)
div = input(10000, title="Divisor", minval=1)
eom = sma(div * change(hl2) * (high - low) / volume, length)


option1=input(true)
option2=input(false)

if(option1)
    strategy.entry("long",1,when=long1 and eom>0)
    strategy.close("long",when=short1 and eom<0)
 
if(option2)
    strategy.entry("long",1,when=long2 and eom>0)
    strategy.close("long",when=short2 and eom<0)   

Plus de