Cette stratégie est basée sur l’indicateur des moyennes mobiles de Hull. La stratégie utilise les moyennes mobiles de Hull pour former des signaux d’achat et de vente, et appartient à la stratégie de suivi de tendance.
La stratégie est basée sur l’indicateur de moyenne mobile de Hull, composé de deux moyennes mobiles. On calcule d’abord la moyenne mobile intermédiaire nma du prix, avec la période hullperiod. On calcule ensuite la moyenne mobile rapide n2ma du prix, avec la période nma moitié.
Pour filtrer certains faux signaux, la stratégie a également introduit la ligne Hull (Hull_Line). La ligne Hull est le résultat d’une régression linéaire calculant la différence entre nma et n2ma. La stratégie saute le signal d’achat et de vente lorsque le prix s’écarte de la ligne Hull.
Les règles de la stratégie sont les suivantes:
Calculer nma, période de hull
Calculer n2ma avec un cycle d’un demi-cycle nma
Calculer la différence entre n2ma et nma
La moyenne mobile de la différence avec la période sqrt{\displaystyle \sqrt{\mathrm {hull } } } est donnée par la ligne de Hull
Un signal d’achat est émis lorsque le prix traverse la ligne de Hull
Un signal de vente est émis lorsque le prix dépasse la ligne de Hull
Si le prix s’écarte de la ligne de Hull, sautez le signal
Entrée de position avec un certain pourcentage, arrêt de perte avec un arrêt de sortie
Cette stratégie présente les avantages suivants:
Les moyennes mobiles de Hull permettent de saisir rapidement les tendances, et les fluctuations sont calculées en fonction de l’évolution de la tendance.
Filtrage de faux signaux par câble de coque pour améliorer la qualité du signal
Le rapport entre le retrait et la perte est bon pour les opérations de ligne courte.
Adaptation des paramètres pour une flexibilité adaptée aux différentes conditions du marché
La réversion des pertes permet de réduire les pertes en temps opportun et de contrôler les risques.
Risques systémiques évitables au cours d’une période donnée, associés à la saisonnalité
Cette stratégie comporte aussi des risques:
Les stratégies de suivi des tendances ne permettent pas de négocier 24 heures sur 24.
Les pertes sont plus importantes lorsque la tendance est inversée.
Les moyennes mobiles sont en retard et n’arrivent pas à saisir les points de basculement.
Les transactions en ligne courtes sont fréquentes et coûteuses
Une mauvaise configuration des paramètres pourrait entraîner une baisse des bénéfices sur les marchés en crise
Les mesures suivantes peuvent être prises pour contrer ces risques:
La stratégie d’arrêt de Martingale pour contrôler les pertes individuelles
Optimiser les paramètres, tester la robustesse des paramètres dans différents environnements de marché
Les indicateurs de tendance et les indicateurs de suivi permettent d’éviter une reprise de la baisse
Augmentation du temps de détention et réduction de la fréquence des transactions
La stratégie peut également être optimisée dans les domaines suivants:
Combiné avec des indicateurs de dynamique, déterminez le point de départ de la tendance, une meilleure entrée en jeu
Ajout de modèles d’apprentissage automatique pour aider à déterminer la direction et la force des tendances
Adaptation des paramètres en fonction du marché en temps réel
Configuration d’un système de coque à périodes multiples, avec différentes positions pour différentes périodes
En combinant le volume de transactions avec l’indicateur d’énergie, on évite les fausses percées qui ne sont pas suffisantes.
Ajout d’un module de gestion de position basé sur les fluctuations pour ajuster les positions en fonction des fluctuations
L’ensemble de la stratégie de négociation des moyennes mobiles de Hull est une stratégie de suivi de courte ligne très pratique. Elle utilise le système de moyennes mobiles de Hull pour déterminer la direction de la tendance et atteindre des positions positives. Par rapport au système de moyennes mobiles uniques, elle présente une meilleure qualité de signal et une plus grande flexibilité des paramètres.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Hull Moving Average Swing Trader by SEASIDE420
strategy("Hull Moving Average Swing Trader", shorttitle="HMA_Swing_Trader", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
hullperiod = input(title="HullMA Period", type=input.integer, defval=210, minval=1)
price = input(open, type=input.source, title="Price data")
FromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
FromDay = input(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input(defval=2020, title="From Year", minval=2017)
ToMonth = input(defval=1, title="To Month", minval=1, maxval=12)
ToDay = input(defval=1, title="To Day", minval=1, maxval=31)
ToYear = input(defval=9999, title="To Year", minval=2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
n2ma = 2 * wma(price, round(hullperiod / 2))
nma = wma(price, hullperiod)
diff = n2ma - nma
sqn = round(sqrt(hullperiod))
n2ma1 = 2 * wma(price[1], round(hullperiod / 2))
nma1 = wma(price[1], hullperiod)
diff1 = n2ma1 - nma1
n1 = wma(diff, sqn)
n2 = wma(diff1, sqn)
Hull_Line = n1 / n1 * n2
Hull_retracted = if n1 > n2
Hull_retracted = Hull_Line - 2
else
Hull_retracted = Hull_Line + 2
c1 = Hull_retracted + n1 - price
c2 = Hull_retracted - n2 + price
c4 = n1 > n2 ? color.green : color.red
c2p = plot(c2, color=color.black, linewidth=1)
c3p = plot(price, color=color.black, linewidth=1)
fill(c3p, c2p, color=c4, transp=75)
//plot(cross(c1, c2) ? c1 : na, style=plot.style_circles, color=c4, linewidth=4)
if price < c2
strategy.close("BUY", when=window())
if price > c2
strategy.close("SELL", when=window())
if price > c2 and price[1] > c1
strategy.entry("BUY", strategy.long, when=window())
if price < c1 and price[1] < c2
strategy.entry("SELL", strategy.short, when=window()) // /L'-,
// ,'-. ` ```` / L '-,
// . _,--dMMMM\ ` ` ` '`.. / '-,
// : _,--, )MMMMMMMMM),. ` ,<> /_ '-,'
// ; ___,--. \MM( `-' )M//MM\ ,',.; .-'* ; .'
// | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' /
// | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,'
// | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ /
// | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___
// | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-.
// | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-.,
// | __ \`. | | | \ / _ |. . . . \ `-. F
// | ___ / \ | `| ' __ \ | /-' F . . . . \ '`
// | \ \ \ / | __ / \ | |,-' __,- J . . . . . \
// | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,'
// | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\
// | ___ \ \ | | ` __,--' /;;;;;;;;;;;;.
// | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\
// \ | | / | __,--' `--;;/ \;-'\
// \ | |/ __,--' / / \ \
// \ | __,--' / / \ \
// \|__,--' _,-;M-K, ,;-;\
// <;;;;;;;; '-;;;;
// :D