L’idée de base de cette stratégie est de comparer les valeurs de la moyenne mobile de Hull (Hull Moving Average, HMA) avec celles de la ligne K pour générer des signaux d’achat et de vente. Acheter lorsque la HMA est supérieure à la ligne K et vendre lorsque la HMA est inférieure à la ligne K.
Tout d’abord, la stratégie calcule la HMA d’une certaine période à l’aide de la fonction hma (). Ensuite, on obtient le prix d’ouverture de la ligne K supérieure comme référence de comparaison. Si la HMA est supérieure au prix d’ouverture de la ligne K supérieure, un signal d’achat est généré.
La condition d’entrée de la stratégie est d’entrer dans le jeu uniquement lorsque le prix franchit la HMA dans la direction opposée. C’est-à-dire, n’achetez que lorsque le prix franchit la HMA en dessous; ne vendez que lorsque le prix franchit la HMA en haut.
La condition de sortie de la stratégie est de s’arrêter à la perte lorsque le prix revient de l’autre côté de l’HMA. Par exemple, si le prix d’achat est inférieur à l’HMA, le stop loss est vendu.
Dans l’ensemble, cette stratégie utilise les caractéristiques lisses de l’HMA pour identifier les principales tendances et générer des signaux. Dans le même temps, la demande de rupture de prix pour filtrer les faux signaux permet d’éviter d’être piégé à plusieurs reprises par les chocs du marché.
L’utilisation de HMA plutôt que SMA permet de mieux identifier les tendances et de filtrer les oscillations.
Les mécanismes de rupture peuvent réduire la probabilité d’être piégé et d’ouvrir des positions à plusieurs reprises.
Le calcul de la courbe de rétrocession peut être évité en utilisant le prix de la ligne K précédente plutôt que le prix actuel.
Les règles sont simples et claires, adaptées à l’optimisation des paramètres et au trading robotisé.
Il est flexible et universel pour toutes les variétés et tous les cycles.
Une mauvaise configuration des paramètres HMA peut entraîner des tendances erronées ou une hypersensibilité. Vous pouvez tester différents paramètres périodiques pour trouver la valeur optimale.
Les indicateurs individuels sont susceptibles d’être détectés lors d’un essai de détection, mais peuvent être considérés en combinaison avec d’autres indicateurs.
Le point d’arrêt est proche de l’HMA, il est susceptible d’être percé à nouveau et peut être tiré de manière appropriée jusqu’à la résistance de support.
L’incapacité à déterminer la direction et la force d’une tendance peut être considérée comme un indicateur de classification des tendances.
Les points de perte fixes entraînent une forte volatilité des risques et des bénéfices.
Cette stratégie est globalement simple et pratique, avec une pensée centrale claire. La direction de la tendance principale est jugée par l’HMA pour dépasser les signaux erronés. Les marchés en crise peuvent être évités en ouvrant des portefeuilles à plusieurs reprises. Des résultats positifs peuvent être obtenus par l’optimisation des paramètres.
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
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/
// © SeaSide420. Any timeFrame/pair , Hull Moving Average vs Candle
//@version=4
strategy("Hull Moving Average vs Candle",shorttitle="HMA-vs-Candle",overlay=true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.cash_per_order,commission_value=1.00,slippage=1)
Period=input(title="Hull MA Period",type=input.integer,defval=50,minval=1)
Resolution=input(title="Candle Resolution", type=input.resolution,defval="D")
Price=input(title="Source of Price",type=input.source,defval=open)
HMA=hma(Price,Period)
Candle=security(syminfo.tickerid,Resolution,Price,barmerge.gaps_off,barmerge.lookahead_off)
change_color=HMA>Candle?color.green:color.red
plot1=plot(Candle,color=change_color,title="Candle Line",linewidth=2,transp=50)
plot2=plot(HMA[1],color=change_color,title="Hull MA Line",linewidth=2,transp=50)
fill(plot1,plot2,color=change_color,transp=50)
strategy.close("BUY",when=Price<HMA and HMA<Candle,comment="close buy entry")
strategy.close("SELL",when=Price>HMA and HMA>Candle,comment="close sell entry")
if (Price>HMA and HMA>Candle and Price>Price[1])
strategy.entry("BUY",strategy.long)
if (Price<HMA and HMA<Candle and Price<Price[1])
strategy.entry("SELL",strategy.short)
// /L'-,
// ,'-. /MM . . / L '-,
// . _,--dMMMM\ /MMM `.. / '-,
// : _,--, )MMMMMMMMM),. `QMM ,<> /_ '-,'
// ; ___,--. \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, ,;-;\
// <;;;;;;;; '-;;;;
// ~ priceless artwork by SeaSide420