Cette stratégie est basée sur l'indicateur Hull Moving Average inventé par Alan Hull, appartenant aux stratégies de suivi des tendances.
Calculer les MAs de Hull à court terme et à long terme.
Lorsque les MAs de la coque à courte période se croisent, déterminer l'inversion de tendance. Filtrer avec la direction de la tendance à longue période.
Ajoutez la rupture de prix à travers la condition Hull MA pour assurer une rupture réussie.
Ajouter un filtre de taux de variation des prix pour éviter une entrée de rupture indésirable.
Mettez un stop-loss et prenez des profits pour contrôler le risque.
Par rapport aux moyennes mobiles simples, les avantages de cette stratégie sont les suivants:
Hull MA réagit plus rapidement aux changements de prix, capable de saisir les tendances en temps opportun.
La structure de l'AM à double coque permet de déterminer les tendances sur des délais aussi bien longs que courts.
Les filtres de rupture de prix et de taux de change aident à éviter les fausses ruptures.
L'opération stop loss dynamique et prise de bénéfices bloque les bénéfices et contrôle le risque.
Les risques de cette stratégie:
Un paramètre mal réglé risque de manquer un tournant de tendance des prix.
Une mauvaise appréciation de la tendance globale peut entraîner des transactions contre tendance.
Le paramètre de stop-loss trop large peut entraîner de grosses pertes.
Les échanges trop fréquents augmentent les coûts de transaction et les risques de dérapage.
Elle peut être optimisée dans les aspects suivants:
Optimiser les périodes d'évaluation de l'Hull pour équilibrer la sensibilité et la douceur.
Optimiser les paramètres d'entrée et de sortie pour trouver les valeurs optimales.
Testez la robustesse des paramètres sur différents instruments afin d'améliorer l'adaptabilité.
Incorporer le volume pour éviter les risques de divergence.
Ajouter des conditions pour améliorer la stabilité.
Dans l'ensemble, cette stratégie tire parti de la réactivité de Hull MA pour suivre les tendances en temps opportun et présente une forte rentabilité sous contrôle des risques.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-12 22:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //SeaSide420 strategy("SS420FX", 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) q=input(title="HullMA Short",defval=14) z=input(title="HullMA Long",defval=14) dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001) SL = input(defval=-50000.00, title="Stop Loss in $", type=float, step=1) TP = input(defval=100000.00, title="Target Point in $", type=float, step=1) ot=1 n2ma=2*wma(close,round(q/2)) nma=wma(close,q) diff=n2ma-nma sqn=round(sqrt(q)) n2ma1=2*wma(close[1],round(q/2)) nma1=wma(close[1], q) diff1=n2ma1-nma1 sqn1=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) z2ma=2*wma(close[11],round(z/2)) zma=wma(close[11],z) ziff=n2ma-nma zqn=round(sqrt(z)) z2ma1=2*wma(close[12],round(z/2)) zma1=wma(close[12], z) ziff1=n2ma1-nma1 zqn1=round(sqrt(z)) z1=wma(diff,sqn) z2=wma(diff1,sqn) z1e=z1>z2?green:black z2e=z1>z2?black:red z3e=z1>z2?green:red n1e=plot(z1, title="HMA1", color=z1e, linewidth=2, offset=2) n2e=plot(z2, title="HMA2", color=z2e, linewidth=2, offset=2) fill(n1e, n2e, color=z3e, transp=80) confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1]) closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP if (closelong) strategy.close("Long") closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP if (closeshort) strategy.close("Short") longCondition = n1>n2 and z1>z2 and strategy.opentrades<ot and confidence>dt and close>n1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and z1<z2 and strategy.opentrades<ot and confidence<dt and close<n1 if (shortCondition) strategy.entry("Short",strategy.short)