Stratégie de percée de la dynamique HMA

Auteur:ChaoZhang est là., Date: 2024-01-04 15h34 et 52 min
Les étiquettes:

img

II. Vue d'ensemble de la stratégie

Cette stratégie utilise l'indicateur HMA (Hull Moving Average) et l'analyse technique de la ligne K pour réaliser le jugement de l'élan et les opérations de percée sur les prix.

III. Principe de stratégie

  1. Principe de l'indicateur HMA

L'indicateur HMA a été créé par Alan Hull en 2005 pour créer une moyenne mobile à la fois sensible et lisse.

(1) Calculer la DMA moyenne de doubles lissage d'un demi-cycle

(2) Calculer la moyenne SMA de cycle complet

(3) Calculer la différence DIFF entre DMA et SMA

(4) Calculer la ligne moyenne du cycle SQRT ((période) du DIFF pour obtenir HMA

  1. Stratégie commerciale

La stratégie utilise les percées à la hausse et à la baisse de l'indicateur HMA comme signaux, combinés à la percée de la partie de l'entité de la ligne K, pour générer des signaux d'achat et de vente.

IV. Avantages de la stratégie

  1. La caractéristique de convergence de l'indicateur HMA le rend extrêmement sensible aux variations de prix tout en maintenant la fluidité de la moyenne mobile afin d'éviter de faux signaux.

  2. Le mécanisme de double percée améliore la fiabilité des signaux et évite de se faire piéger.

  3. Le stop loss dynamique et la protection des bénéfices optimisent le risque et le rendement.

  4. Le trading entièrement automatisé simplifie les opérations.

V. Risques liés à la stratégie

  1. En cas de fortes fluctuations du marché, la probabilité d'un stop loss est plus élevée.

  2. Une fréquence de négociation élevée augmente les coûts de commission.

  3. Des paramètres incorrects peuvent générer de faux signaux.

Les solutions

  1. Optimiser les conditions de stop loss et de prise de profit et fixer des retraits raisonnables.

  2. Ajustez la fréquence des transactions afin de réduire l'impact des commissions.

  3. Tester et optimiser le cycle HMA et les conditions de rupture pour déterminer les paramètres optimaux.

VI. Directions d'optimisation de la stratégie

  1. Incorporer des indicateurs de jugement de tendance pour éviter les opérations contre tendance.

  2. Améliorer le jugement automatique sur le changement de source de données pour s'adapter à un plus grand nombre d'environnements de marché.

  3. Améliorer les algorithmes d'apprentissage automatique pour obtenir une optimisation automatique des paramètres.

  4. Déployer sur le serveur pour obtenir une vérification des transactions en direct 24 heures sur 24.

VII. Résumé

La stratégie de rupture d'élan HMA utilise les avantages uniques de la moyenne mobile de Hull pour capturer avec précision l'élan du marché. Le mécanisme de filtration à double rupture améliore la qualité du signal et le stop profit et stop loss dynamiques protègent les revenus. Cette stratégie est facile à utiliser, efficace et un outil de trading quantitatif très pratique qui mérite d'être promu.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//SeaSide420
strategy("Hull Moving Average and Daily Candle Crossover", shorttitle="Hull&D", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
// settings----------------------
q=input(title="HullMA",defval=5)
SL = input(defval=-10000.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=500.00, title="Target Point in $", type=float, step=1)
price=input(ohlc4,title="Price data")
ot=1
p=price[1]
// Daily candle crossover---------
dt = 0.0010
Daily=(p-p[1])/p[1]
//--------------------------------
// Hull MA's----------------------
n2ma=2*wma(p,round(q/2))
nma=wma(p,q)
diff=n2ma-nma
sqn=round(sqrt(q))
n2ma1=2*wma(p[1],round(q/2))
nma1=wma(p[1], q)
diff1=n2ma1-nma1
sqn1=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
//---------------------------------
// Plotting------------------------
z1e=n1>n2?green:black
z2e=n1>n2?black:red
z3e=n1>n2?green:red
n1e=plot(n1, title="HMA1", color=z1e, linewidth=2, offset=2)
n2e=plot(n2, title="HMA2", color=z2e, linewidth=2, offset=2)
fill(n1e, n2e, color=z3e, transp=80)
// Order controls-------------------
closelong = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] and strategy.opentrades<ot and Daily>dt and close>n1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] and strategy.opentrades<ot and Daily<dt and close<n1 
if (shortCondition)
    strategy.entry("Short",strategy.short)

Plus de