
Cette stratégie est basée sur l’investissement en utilisant les coefficients de temps de phase 1, 2, 3 et 4 de la moyenne mobile de Hull ((HMA)). Elle implique une certaine quantité d’investissement. Le point d’entrée est identifié par la tendance des coefficients de phase 2, 3 et 4, tandis que le point de sortie est créé par un nouveau point d’entrée ou un pourcentage de stop loss suivi.
La stratégie commence par calculer la HMA. La moyenne mobile de Hull est une moyenne mobile pondérée qui est calculée à l’aide de la formule suivante:
hullma = wma(2*wma(src,sm/2)-wma(src,sm),round(sqrt(sm)))
src est le prix et sm est un paramètre d’entrée qui contrôle la longueur de la moyenne.
Ensuite, la stratégie calcule la vitesse (derivatrice de 1°), l’accélération (derivatrice de 2°), l’oscillation (derivatrice de 3°) et l’oscillation (derivatrice de 4°). Ces valeurs sont calculées en calculant la différence entre la valeur de l’HMA et son retard, puis en la divisant par la longueur len. Par exemple, la formule pour calculer la vitesse est:
speed = (hullma-hullma[len])/len
Les autres variables sont calculées de la même manière:
La stratégie décide de l’entrée et de la sortie en examinant les positifs et négatifs de l’accélération, de l’oscillation et de l’oscillation. Si les trois indicateurs sont positifs, elle ouvre un billet supplémentaire. Si les trois indicateurs sont négatifs, elle ouvre un billet vide.
En outre, la stratégie utilise le trailing stop loss pour verrouiller les bénéfices. Les positions à plusieurs positions sont réglées sur la base d’un pourcentage d’entrée modifiable.
L’un des principaux avantages de cette stratégie est qu’elle utilise plusieurs coefficients pour les signaux d’entrée et de sortie, ce qui permet de filtrer certains faux signaux. La vitesse seule est généralement trop faible pour décider de l’entrée, mais la combinaison des coefficients de classe 2, 3 et 4 permet de créer un système relativement robuste.
Un autre avantage de cette stratégie est qu’elle est très flexible. Elle dispose de plusieurs paramètres ajustables, y compris la longueur de l’HMA, la longueur des variables, le pourcentage d’arrêt, etc., qui peuvent être optimisés pour différents marchés.
L’utilisation d’un stop-loss de suivi réglable est également un avantage. Cela aide la stratégie à obtenir plus de profits dans les conditions de tendance, tandis que dans les conditions de choc, une sortie en temps opportun limite le retrait maximal.
Le principal risque de cette stratégie est la baisse du taux de réussite due à des événements soudains. Sans les règles de filtrage correspondantes, plusieurs vecteurs peuvent avoir des signaux erronés simultanément après des événements d’actualité majeurs, ce qui entraîne des pertes importantes. Certains filtres d’actualité peuvent être configurés ou la stratégie peut être suspendue pendant un certain temps après les événements d’actualité pour réduire ce risque.
Un autre risque est que les paramètres soient facilement suradaptés. Des paramètres tels que la longueur de l’HMA, la longueur des dérivés peuvent affecter les résultats. Cela nécessite une méthode de retracement stricte pour évaluer la solidité de ces paramètres sur différents marchés.
Cette stratégie peut être optimisée dans les domaines suivants:
Ajout d’un mécanisme de filtrage basé sur les événements inattendus, suspension de la négociation pendant une période après un événement d’actualité majeur, pour éviter des pertes excessives en cas de manquement aux points d’entrée
Les paramètres peuvent être testés sur plusieurs marchés pour assurer leur stabilité. Les données peuvent être testées sur différentes variétés et périodes de temps pour évaluer la stabilité des paramètres.
La logique d’entrée de jeu peut être modifiée pour introduire des algorithmes d’apprentissage automatique qui identifient les tendances plutôt que de simples jugements positifs et négatifs.
Amélioration de la méthode de stop loss. Le stop loss peut être suivi au lieu d’un simple pourcentage de stop loss avec un stop loss à taux d’oscillation ou un stop loss à l’apprentissage automatique.
Augmentation de l’arrêt de sortie. La logique existante repose principalement sur le stop loss, mais peut être ajoutée en plus de l’augmentation de l’arrêt de suivi vers le haut ou de l’augmentation de la sortie des bénéfices.
Cette stratégie est une stratégie de suivi de tendance à plusieurs échelles de temps. Elle utilise plusieurs variables de la moyenne mobile de Hull comme signal de prise de position et de prise de position, et utilise le suivi des arrêts de perte pour verrouiller les bénéfices. Les principaux avantages sont l’utilisation de plusieurs variables pour filtrer les faux signaux, la flexibilité des paramètres de la stratégie, etc. Les risques à prendre en compte comprennent l’impact des événements inattendus et la facilité d’adaptation des paramètres.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Derivative Based Strategy", shorttitle="DER", currency="USD", calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=1000)
len = input(1, minval=1, title="Derivatives Length")
sm = input(4, minval=1, title="HMA Length")
longTrailPerc=input(title="Trail Long Loss %", type=float,minval=0.0,step=0.1,defval=25)*0.01
shortTrailPerc=input(title="Trail Short Loss %",type=float,minval=0.0,step=0.1,defval=25)*0.01
longStopPrice=0.0
shortStopPrice=0.0
src = input(ohlc4, title="Source")
hullma = wma(2*wma(src,sm/2)-wma(src,sm),round(sqrt(sm)))
speed = (hullma-hullma[len])/len
accel = (speed-speed[len])/len
jerk = (accel-accel[len])/len
jounce = (jerk-jerk[len])/len
plot(speed, color=green)
plot(accel, color=purple)
plot(jerk, color=red)
plot(jounce, color=blue)
// hline(0, linestyle=solid, color=black)
if accel>0 and jerk>0 and jounce>0// and strategy.opentrades==0
strategy.entry("openlong", strategy.long)
if accel<0 and jerk<0 and jounce<0// and strategy.opentrades==0
strategy.entry("openshort",strategy.short)
speed_profit = (strategy.openprofit-strategy.openprofit[1])/len
accel_profit = (speed_profit-speed_profit[1])/len
jerk_profit = (accel_profit-accel_profit[1])/len
longStopPrice:=if(strategy.position_size>0)
stopValue=ohlc4*(1-longTrailPerc)
max(stopValue,longStopPrice[1])
else
0
shortStopPrice:=if(strategy.position_size<0)
stopValue=ohlc4*(1+shortTrailPerc)
min(stopValue,shortStopPrice[1])
else
999999
if(strategy.position_size>0)
strategy.exit(id="closelong",stop=longStopPrice)
if(strategy.position_size<0)
strategy.exit(id="closeshort",stop=shortStopPrice)