Stratégie des bandes gyroscopiques basée sur plusieurs délais et amplitude moyenne

Auteur:ChaoZhang est là., Date: 2023-11-24 17:29:39
Les étiquettes:

img

Résumé

Cette stratégie est appelée Gyroscopic Bands Strategy Based on Multi Time Frame and Average Amplitude. Son idée principale est de construire des signaux de trading basés sur l'amplitude moyenne entre le prix et une particule qui correspond à la trajectoire du prix.

La logique de la stratégie

La stratégie définit d'abord une particule qui correspond à la trajectoire du prix. Sous l'influence de la gravité et de l'inertie, la trajectoire de la particule oscillera autour du prix. Ensuite, nous calculons l'écart moyen entre la particule et le prix, et l'utilisons pour construire des bandes supérieures et inférieures. Lorsque le prix franchit la bande supérieure ou inférieure, des signaux de trading sont générés.

Plus précisément, la formule de position des particules définie dans la stratégie est la suivante:

pos:=if pos<close  
     nz(pos[1])+grav+traj
else
     nz(pos[1])-(grav)+traj 

Je vous en prie.gravreprésente le terme de gravité qui rapproche la particule du prix;trajreprésente le terme d'inertie qui maintient la tendance du mouvement de la particule.

Ensuite, nous calculons la déviation moyenneavgdistentre le prix et la particule, et l'utiliser pour construire des bandes supérieures et inférieures:

bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)  

Enfin, allez long lorsque le prix est supérieur à la bande supérieure, et allez court lorsque le prix est inférieur à la bande inférieure.

Les avantages

Cette stratégie présente les avantages suivants par rapport aux stratégies de moyenne mobile traditionnelles:

  1. Utiliser des trajectoires de particules pour mieux simuler les fluctuations des prix;
  2. Les bandes supérieures et inférieures peuvent être ajustées de manière adaptative en fonction de l'amplitude moyenne historique, ce qui favorise la capture des avancées;
  3. La conception de plusieurs délais peut basculer entre des délais élevés et bas pour saisir plus d'opportunités commerciales.

Les risques

Cette stratégie comporte également des risques:

  1. Des paramètres de mouvement de particules mal réglés peuvent entraîner des signaux erronés ou des signaux manquants;
  2. Des conflits de signaux peuvent survenir lors de la commutation entre plusieurs délais;
  3. Les signaux de rupture des bandes supérieures et inférieures peuvent augmenter le risque d'arrêt des pertes.

Les mesures de gestion des risques correspondantes comprennent: l'optimisation des paramètres pour réduire les faux signaux, la définition de règles claires de calendrier, la définition de positions de stop loss appropriées, etc.

Directions d'optimisation

Cette stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres liés au mouvement des particules afin de les adapter à la trajectoire des prix;
  2. Augmenter le nombre de couches de temps pour confirmer les signaux à des intervalles plus longs;
  3. Ajouter des indicateurs de volatilité pour éviter les signaux lors de fortes fluctuations du marché;
  4. Optimiser les stratégies de stop loss pour réduire les stop loss uniques.

Conclusion

Cette stratégie améliore la stratégie de la moyenne mobile en introduisant l'ajustement de la trajectoire des prix. Elle possède des fonctionnalités telles que des paramètres adaptatifs, des délais multiples, l'optimisation de la perte de stop, etc. La clé est de trouver une équation de mouvement de particules appropriée pour simuler le prix. Bien que des tests et une optimisation supplémentaires soient nécessaires, l'idée de base est réalisable et mérite d'être poursuivie.


/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//2 revert
strategy("Jomy's Gyroscopic Bands",precision=8,commission_value=.03,overlay=true,initial_capital =10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100,  pyramiding=0)//,calc_on_order_fills= true, calc_on_every_tick=false) 
leverage=input(1,"leverage")
a=0
a:= if volume > -1
    nz(a[1])+1
else
    nz(a)
    
vara=input(4.0,"variable a (10 to the power of __ ",step=.5)
vara:=pow(10,vara)
varb=input(12,"variable b")
pos=0.0
pos:=if a<=5
    close
else
    nz(pos[1])
grav=1/sqrt((close*close))*vara
traj=0.0
traj:=(nz(close[1])-nz(close[2])+nz(traj[1])*varb)/(varb+1)
pos:=if pos<close
    nz(pos[1])+grav+traj
else
    nz(pos[1])-(grav)+traj

plot(pos,color=color.white)
plot(close)

avgdist=abs(close-pos)
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)

plbbh=plot(bbh,color=color.red)
plbbl=plot(bbl,color=color.red)

long = close>pos
short = close<pos

fill(plbbh,plbbl,color=long?color.lime:color.red)
//bgcolor(close>bbh?color.lime:close<bbl?color.red:na,transp=90)

strategy.entry("Long1",strategy.long,when=long,qty=(strategy.equity*leverage/open)) 
strategy.close("Long1",when=not long)
strategy.entry("Short1",strategy.short,when=short,qty=(strategy.equity*leverage/open)) 
strategy.close("Short1",when=not short)


//plot(strategy.equity,color=color.lime,linewidth=4)

Plus de