Stratégie basée sur la double EMA

Auteur:ChaoZhang est là., Date: le 26 février 2024
Les étiquettes:

基于双EMA价格摆动策略

Résumé

La stratégie d'oscillation des prix double EMA permet de juger de l'état de l'espace et de l'intensité du marché en calculant les écarts entre les deux EMA à des délais différents.

La stratégie est simple et facile à utiliser pour déterminer la force et la direction du marché à l'aide de la déviation de l'EMA.

Les principes stratégiques

L'indicateur central de la stratégie d'oscillation des prix à double EMA est l'APO, ou l'oscillateur absolu des prix, qui indique la différence entre les deux EMA; sa formule est la suivante:

APO = EMA(短期) - EMA(长期)

Plus précisément, le calcul de l'APO dans cette stratégie est:

xShortEMA = ema(收盘价, LengthShortEMA) 

xLongEMA = ema(收盘价, LengthLongEMA)

xAPO = xShortEMA - xLongEMA

La longueur et la longueur des EMA représentent respectivement la longueur des cycles des EMA à court et à long terme.

L'APO a quelques règles de jugement clés:

  1. Signalement, lorsque l'APO porte 0
  2. Si l'APO est en dessous de 0, c'est un signe de baisse.
  3. L'APO est positif, c'est-à-dire qu'il est actuellement en état de choc.
  4. L'APO est négatif, c'est-à-dire qu'il est actuellement en baisse.

Le prix de l'APO est basé sur la valeur en temps réel de l'APO pour juger de l'état de l'espace libre et du moment d'entrée.

Analyse des avantages

Les deux EMA ont les avantages suivants:

  1. Utilisation d'une moyenne mobile indicielle pour aplanir efficacement les données sur les prix et réduire les effets du bruit
  2. L'indicateur APO combine deux EMA pour déterminer à la fois la tendance des prix et la force du marché.
  3. Les signaux stratégiques sont simples, clairs, faciles à déterminer et à mettre en œuvre
  4. Cycles d'EMA personnalisables pour différentes variétés et styles de trading
  5. Signal réversible, pour les transactions inversées et blanches

L'analyse des risques

Il existe également des risques liés aux stratégies d'oscillation des prix à double EMA, principalement:

  1. L'EMA est elle-même en retard et ne parvient pas à capturer les points de basculement en temps opportun.
  2. Les paramètres par défaut peuvent ne pas s'appliquer à toutes les variétés et doivent être optimisés.
  3. Les signaux sont fréquents et faciles à produire
  4. Impossible d'identifier les positions de stop-loss et de stop-stop après l'entrée
  5. Il y a un certain retard, et peut-être que vous avez manqué le meilleur moment pour entrer.

Ces risques peuvent être traités et réduits en raison d'un arrêt raisonnable et en réduisant les pertes uniques; en optimisant les paramètres pour s'adapter à différents cycles; en combinant des signaux de filtrage avec d'autres indicateurs pour améliorer la stabilité stratégique.

Optimisation

Les stratégies d'oscillation des prix à double EMA peuvent être optimisées principalement dans les domaines suivants:

  1. Optimiser les paramètres des cycles EMA, tester des combinaisons d'EMA de 5 à 60 de longueur pour trouver les paramètres optimaux

  2. Ajoutez d'autres indicateurs tels que MA, KDJ, MACD, pour définir des conditions de filtrage et éviter les faux signaux

  3. Utiliser des indicateurs tels que le ruban adhésif, le KD pour déterminer la position raisonnable de l'arrêt de la perte

  4. En combinant des indicateurs tels que l'indice de tendance, vous pouvez déterminer la tendance des prix et éviter les transactions contraires.

  5. Ajouter des indicateurs de volume pour s'assurer qu'il y a un signal de rupture soutenu par le volume

  6. Régler les conditions de réintégration, éviter les transactions fréquentes et réduire le nombre de transactions

Résumé

Dans l'ensemble, la stratégie d'oscillation des prix double EMA permet de juger de l'état de l'espace-temps du marché en calculant les APO de décalage des deux EMA. Les signaux stratégiques sont simples, clairs, pratiques et présentent certains inconvénients. Nous pouvons optimiser et améliorer la stabilité de la stratégie par des méthodes telles que l'optimisation des paramètres, l'ajout de nouvelles conditions de filtrage, l'installation de paramètres de stop-loss et de stop-gap. La stratégie est facile à utiliser et offre une grande marge d'expansion.


/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/05/2017
// The Absolute Price Oscillator displays the difference between two exponential 
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
//    APO crossing above zero is considered bullish, while crossing below zero is bearish.
//    A positive indicator value indicates an upward movement, while negative readings 
//      signal a downward trend.
//    Divergences form when a new high or low in price is not confirmed by the Absolute Price 
//      Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO 
//      forms a higher low. This indicates less downward momentum that could foreshadow a bullish 
//      reversal. A bearish divergence forms when price makes a higher high, but the APO forms a 
//      lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Absolute Price Oscillator (APO) Backtest", shorttitle="APO")
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = iff(xAPO > 0, 1,
       iff(xAPO < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xAPO, color=blue, title="APO")

En savoir plus