Stratégie de trading multi-temporalité basée sur l'amplitude moyenne de la trajectoire
Aperçu
Ce stratège s’intitule « Stratégie de trading multi-timeframes basée sur l’amplitude moyenne de la trajectoire ». Son idée principale consiste à introduire une particule qui ajuste la trajectoire des prix, et à construire des signaux de trading en se basant sur l’amplitude moyenne entre la particule et le prix.
Principe de la stratégie
Cette stratégie définit d’abord une particule qui ajuste la trajectoire des prix. Cette particule, influencée par la gravité et l’inertie, oscille autour du prix. Ensuite, on calcule la distance d’écart moyenne entre la particule et le prix, et on construit des bandes supérieure et inférieure. Lorsque le prix franchit la bande supérieure ou inférieure, un signal de trading est généré.
Plus précisément, la formule de la position de la particule définie dans la stratégie est :
pos:=if pos<close
nz(pos[1])+grav+traj
else
nz(pos[1])-(grav)+traj
Ici, grav représente le terme de gravité qui attire la particule vers le prix ; traj représente le terme d’inertie qui permet à la particule de conserver sa tendance de mouvement. La combinaison de ces deux termes fait osciller la particule autour du prix.
Ensuite, on calcule la distance d’écart moyenne entre le prix et la particule avgdist, et on construit les bandes supérieure et inférieure :
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)
Enfin, lorsque le prix est supérieur à la bande supérieure, on prend une position longue ; lorsqu’il est inférieur à la bande inférieure, on prend une position courte.
Avantages de la stratégie
Comparée aux stratégies de moyenne mobile traditionnelles, cette stratégie présente les avantages suivants :
- Utilisation de la trajectoire de la particule pour mieux simuler les fluctuations des prix ;
- Les bandes supérieure et inférieure peuvent s’adapter automatiquement en fonction de l’amplitude moyenne historique, ce qui facilite la capture des cassures ;
- Conception multi-timeframes, permettant de basculer entre des timeframes hauts et bas pour capter davantage d’opportunités de trading.
Risques de la stratégie
Cette stratégie comporte également certains risques :
- Un réglage inapproprié des paramètres de mouvement de la particule peut entraîner des faux signaux ou des signaux manqués ;
- Des conflits de signaux peuvent survenir lors du basculement entre différents timeframes ;
- Les signaux de franchissement des bandes supérieure et inférieure peuvent accroître le risque de stop-loss.
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 sélection des timeframes, la mise en place de niveaux de stop-loss appropriés, etc.
Pistes d’optimisation de la stratégie
Cette stratégie peut être optimisée sous les aspects suivants :
- Optimiser les paramètres liés au mouvement de la particule pour mieux ajuster la trajectoire des prix ;
- Augmenter le nombre de couches de timeframes afin de confirmer les signaux sur des timeframes plus élevés ;
- Intégrer un indicateur de volatilité pour éviter de générer des signaux en période de forte volatilité du marché ;
- Optimiser la stratégie de stop-loss pour réduire la perte par transaction.
Résumé
Cette stratégie améliore la stratégie de moyenne mobile en introduisant un ajustement de la trajectoire des prix. Elle présente des caractéristiques telles que l’auto-adaptation des paramètres, le multi-timeframe et l’optimisation du stop-loss. La clé réside dans la recherche d’une équation de mouvement appropriée pour la particule afin de simuler les prix. Bien qu’elle doive encore être testée et optimisée, l’idée de base est réalisable et mérite d’être approfondie.
/*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")- 1

