Cette stratégie utilise des bandes de Bollinger pour déterminer la direction des tendances du marché et combine des indicateurs de dynamique pour mettre en œuvre des transactions de suivi des tendances. Le
La stratégie peut être principalement divisée en trois parties:
Les bandes de Bollinger représentent la moyenne mobile et les bandes supérieure et inférieure représentent la fourchette de volatilité. Lorsque le prix est proche du rail supérieur, il est suracheté. Lorsqu'il est proche du rail inférieur, il est survendu. La direction des bandes de Bollinger représente la direction de la tendance des prix.
Calculer le momentum. Cette stratégie utilise le momentum Hull. Le momentum Hull est dérivé de la moyenne mobile rapide moins la moyenne mobile lente. Une valeur positive représente une tendance à la hausse et une valeur négative représente une tendance à la baisse.
Lorsque la moyenne mobile rapide traverse la moyenne mobile lente depuis le bas, un signal long est généré.
La règle de trading est la suivante: la direction des bandes de Bollinger représente la tendance majeure, et le croisement de l'indicateur de dynamique représente le moment de l'entrée sur le marché.
Évitez les fausses percées en combinant tendances et dynamique. Adopter des bandes de Bollinger pour juger des tendances à grande échelle, puis utiliser des indicateurs de dynamique pour déterminer des points d'entrée spécifiques afin d'éviter le risque formel de poursuivre des percées locales.
Les bandes de Bollinger fournissent des points de stop-loss, qui sont plus efficaces que les moyennes mobiles simples.
Des indicateurs de dynamique peuvent assurer une puissance suffisante pour continuer à pousser les prix dans la direction initiale après leur entrée sur le marché, ce qui rend le suivi de la tendance plus fluide.
Le risque d'échec de la détermination des bandes de Bollinger Les bandes de Bollinger ne déterminent pas toujours la tendance avec une précision totale, ce qui peut fournir des signaux directionnels incorrects, augmentant ainsi le taux de perte.
Même si les bandes de Bollinger reflètent correctement la tendance à grande échelle, les prix peuvent s'inverser à moyen et à court terme, ce qui doit être pris en compte lors de la négociation.
Risque d'optimisation des paramètres: les paramètres de stratégie tels que le cycle de calcul doivent être optimisés pour différentes données de marché afin d'obtenir le meilleur effet de négociation.
Combinez plus d'indicateurs FILTER. En plus des bandes de Bollinger et de l'élan de Hull, d'autres indicateurs tels que le MACD et le KDJ peuvent être ajoutés pour former un indicateur FILTER afin d'améliorer la précision du jugement.
Optimisation adaptative des paramètres. Rejoignez des algorithmes d'apprentissage automatique pour optimiser les paramètres en temps réel en fonction de différentes variétés et environnements de marché pour améliorer la stabilité de la stratégie.
Optimisation de la stratégie de stop loss. Optimiser la stratégie de stop loss pour maximiser les profits de verrouillage avant que les tendances majeures ne changent, et arrêter les pertes plus rapidement lorsque les tendances s'inversent.
Cette stratégie intègre des bandes de Bollinger pour déterminer les tendances à grande échelle et des indicateurs de dynamique de Hull pour déterminer des points d'entrée spécifiques, ce qui suit efficacement les tendances.
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-25 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Hull Moving Average Crossover by SeaSide420 strategy("Hull Moving Average Crossover Strategy", overlay=true) keh=input(title="HullMA cross",defval=10) p=input(ohlc4) n2ma=2*ta.wma(p,math.round(keh/2)) nma=ta.wma(p,keh) diff=n2ma-nma sqn=math.round(math.sqrt(keh)) n2ma1=2*ta.wma(p[1],math.round(keh/2)) nma1=ta.wma(p[1],keh) diff1=n2ma1-nma1 sqn1=math.round(math.sqrt(keh)) n1=ta.wma(diff,sqn) n2=ta.wma(diff1,sqn) hullcross1 = n1 hullcross2 = n2 longcross1=(n1[0]-n1[3])+(n1[0]-n2[4])*100 longcross2=(n2[0]-n2[3])+(n2[0]-n1[4])*100 closelong = n1<n2 and longcross1<longcross2 if (closelong) strategy.close("Long") closeshort = n1>n2 and longcross1>longcross2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and longcross1>longcross2 and strategy.opentrades<1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and longcross1<longcross2 and strategy.opentrades<1 if (shortCondition) strategy.entry("Short",strategy.short) b=hullcross1>hullcross2?color.green:color.red c=hullcross2>hullcross1?color.green:color.red plot(ta.cross(hullcross1, hullcross2) ? hullcross1 : na,color=c, linewidth = 5, offset=3) barcolor(longcross1 < longcross2 ? color.black : color.white) bgcolor(longcross2 < longcross1 ? color.green : color.black, transp=85) plotshape(ta.cross(longcross2, longcross1) ? longcross2 : na, text="X", style=shape.labeldown, location=location.bottom)