Stratégie de trading quantitative basée sur la bande de pourcentage HullMA


Date de création: 2024-03-01 12:16:45 Dernière modification: 2024-03-01 12:16:45
Copier: 1 Nombre de clics: 680
1
Suivre
1617
Abonnés

Stratégie de trading quantitative basée sur la bande de pourcentage HullMA

Aperçu

Cette stratégie permet de réaliser des transactions quantifiées en calculant les moyennes mobiles de Hull et ses bandes de pourcentage supérieures et inférieures. Les avantages de la stratégie comprennent la modularité des paramètres, la simplicité de la mise en œuvre, la rigueur des arrêts. Mais il existe également des risques tels que la poursuite des pertes élevées et des transactions fréquentes.

Principe de stratégie

  1. La longueur est calculée en longueur moyenne mobile de la coque hullma。

  2. Les voies supérieures xL1, xL3 et inférieures xL2 et xL4 sont représentées en pourcentage de la coque.

  3. Lorsque le cours de clôture est en hausse, faites plus; lorsque le cours de clôture est en baisse, faites moins.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’indicateur HullMA est sensible aux variations de prix et permet de suivre efficacement les tendances.

  2. Le pourcentage de liberté de réglage est élevé et peut être ajusté pour s’adapter à différentes variétés.

  3. La stratégie de double voie permet de filtrer efficacement les signaux erronés.

  4. Les stratégies de stop loss permettent de contrôler efficacement les risques.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Il y a peut-être une chasse à l’homme.

  2. La perte de points de glissement due à des échanges fréquents.

  3. Une mauvaise configuration des paramètres peut entraîner des transactions fréquentes.

  4. Les paramètres de la position de rupture nécessitent des tests répétés et une optimisation.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Optimisation des paramètres de longueur de coque MA pour les différentes variétés.

  2. Optimiser les paramètres de la bande de pourcentage pour réduire les erreurs de transaction.

  3. Ajouter des stratégies d’opérations en ligne courte pour obtenir plus de bénéfices grâce à la rétroaction.

  4. Optimiser les stratégies de stop loss pour les rendre efficaces.

  5. Test de la robustesse des différentes variétés.

Résumer

Cette stratégie construit une stratégie de trading de rupture relativement simple et intuitive à l’aide de l’indicateur HullMA et de sa bande de pourcentage. Les avantages et les inconvénients de la stratégie sont clairs et peuvent être étendus par ajustement de paramètres et optimisation des fonctionnalités, ce qui en fait une stratégie quantitative très pratique.

Code source de la stratégie
/*backtest
start: 2023-03-01 00:00:00
end: 2024-02-29 00:00:00
period: 5d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("hullma percentage lines", overlay=true)



length = input(9, minval=1)
src = input(close, title="Source")
hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(hullma)



Uband1 = input(3, minval=1, step = .5)
Lband1 = input(3, minval=1, step = .5)
Uband2 = input(6, minval=1, step = .5)
Lband2 = input(6, minval=1, step = .5)


v1 = Uband1+100
v2 = 100 - Lband1
v3 = Uband2+100
v4 = 100 - Lband2


xL1 = (hullma / 100) * v1
xL2 = (hullma / 100) * v2 
xL3 = (hullma / 100) * v3
xL4 = (hullma / 100) * v4 


plot(xL1, color=yellow, title="H1")
plot(xL2, color=yellow, title="L1")
plot(xL3, color=yellow, title="H2")
plot(xL4, color=yellow, title="L2")




longCondition1 =  crossover(close, xL4) 
if (longCondition1)  
    strategy.entry("l1", strategy.long)

longCondition2 =  crossover(close, xL2) 
if (longCondition2)  
    strategy.entry("l1", strategy.long)


shortCondition1 = crossover(close, xL1)
if (shortCondition1) 
    strategy.close("l1", strategy.long)
    
shortCondition2 = crossover(close, xL2)
if (shortCondition2) 
    strategy.close("l1", strategy.long)
    
shortCondition3 = crossover(close, xL3)
if (shortCondition3) 
    strategy.close("l1", strategy.long)