Stratégie de moyenne mobile double HULL

Auteur:ChaoZhang est là., Date: 15 septembre 2023 à 16h39
Les étiquettes:

Résumé de la stratégie:

La stratégie de moyenne mobile double HULL est une stratégie de trading basée sur l'indicateur HULL Moving Average (HMA) créé par Alan HULL. La stratégie utilise deux lignes HMA, une ligne à plus long terme et une ligne à plus court terme, pour déterminer les points d'entrée et de sortie.

La formule de calcul de l'AMH est la suivante:

HmaL = wma(2 * wma(close, round(PDL/2)) - wma(close, PDL), round(sqrt(PDL)))
HmaS = wma(2 * wma(close, round(PDS/2)) - wma(close, PDS), round(sqrt(PDS)))

Dans ce cas, le PDL représente la période à plus long terme et le PDS la période à plus court terme.

Les avantages:

  1. Réduction du décalage: le HMA a un décalage plus faible par rapport aux moyennes mobiles traditionnelles, ce qui lui permet de réagir plus rapidement aux changements des tendances des prix et de fournir des signaux plus précis pour l'achat et la vente.
  2. Simplicité: la stratégie utilise deux lignes moyennes mobiles pour l'analyse croisée, ce qui la rend relativement simple à comprendre et à mettre en œuvre.
  3. Une grande personnalisation: les paramètres de période de la stratégie peuvent être ajustés en fonction de marchés et d'instruments de négociation spécifiques, ce qui la rend plus adaptable aux différentes conditions du marché.

Les risques:

  1. Volatilité du marché: pendant les périodes de volatilité du marché, les lignes moyennes mobiles peuvent se croiser fréquemment, ce qui entraîne des signaux fréquents pouvant générer de faux signaux et entraîner des transactions et des pertes excessives.
  2. Le risque de décalage et de latence: l'exécution de la stratégie est sujette à des décalages et à des décalages, en particulier dans le commerce à haute fréquence, ce qui peut entraîner une déviation des prix exécutés par rapport aux prix attendus et affecter les résultats des transactions.
  3. Dépendance d'un seul indicateur: la stratégie s'appuie uniquement sur l'indicateur HMA sans intégrer d'autres indicateurs techniques ou d'informations sur le marché, ce qui peut limiter sa capacité à capturer l'ensemble des changements et des tendances du marché.

Conclusion:

La stratégie de la moyenne mobile double HULL est une stratégie de trading basée sur l'indicateur de moyenne mobile HULL. Elle utilise le croisement des lignes HMA à court et à long terme pour déterminer les points d'entrée et de sortie. La stratégie offre des avantages tels qu'un décalage réduit, une simplicité et une grande personnalisation.


/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit Indicator from KIVANC
// author and idea: KIVANC @fr3762 on twitter
// creator: Alan HULL
// 
strategy("Double HULL Moving Average Strategy", overlay=true)
PDL=input(title="LongerPeriod", defval=21, minval=1,maxval=500)
PDS=input(title="ShorterPeriod",  defval=8, minval=1,maxval=500)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

HmaL=wma(2*wma(close,round(PDL/2))-wma(close,PDL),round(sqrt(PDL)))
HmaS=wma(2*wma(close,round(PDS/2))-wma(close,PDS),round(sqrt(PDS)))
plot(HmaL,color=red, linewidth=2)
plot(HmaS,color=blue, linewidth=2)

Buy = HmaS > HmaL
Sell = HmaS < HmaL

strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)

Plus de