Cette stratégie permet de déterminer la direction d’une tendance en fonction de la relation entre la volatilité et sa moyenne mobile, en calculant une moyenne mobile de la gamme de fluctuation réelle, reflétant la volatilité du marché. Regardez en haut lorsque la volatilité traverse la moyenne mobile, regardez en haut lorsque la volatilité traverse la moyenne mobile et définissez un stop-loss.
La fonction ATR permet de calculer la portée réelle des fluctuations au cours d’une période donnée. On calcule ensuite la moyenne mobile simple de l’ATR, qui sert de moyenne mobile de la volatilité. On considère que la volatilité du marché augmente lorsque l’ATR traverse sa moyenne mobile, et on adopte une stratégie à la hausse.
Lors de la tenue d’une position, un stop-loss de suivi à proportion fixe est défini pour ajuster dynamiquement la position de stop-loss en fonction des variations de prix, protégeant les bénéfices tout en empêchant le stop-loss d’être couvert.
Cette stratégie permet de juger de la tendance du marché à partir d’indicateurs de volatilité et d’éviter d’être induit en erreur par le bruit. Elle permet de faire des opérations de couverture lorsque la volatilité augmente et de faire des opérations de couverture lorsque la volatilité diminue. Le suivi des arrêts permet d’ajuster les positions de stop loss en fonction des variations des prix en temps réel, ce qui permet de réduire les arrêts inutiles tout en protégeant les bénéfices.
La stratégie est basée sur un seul indicateur de volatilité, avec un certain retard. Et le suivi des arrêts de perte ne prend en compte que les mouvements de prix dans une direction défavorable, ce qui ne protège pas les bénéfices contre les retournements.
Il est possible d’optimiser l’ATR et les paramètres cycliques de la moyenne, ou d’ajouter d’autres indicateurs pour un jugement global. La méthode d’arrêt peut également être modifiée en arrêt dynamique, en ajustant l’ampleur de l’arrêt en fonction de la volatilité du marché.
Testez différentes combinaisons de paramètres ATR et de périodes moyennes pour trouver le paramètre optimal.
Ajout d’autres indicateurs de jugement, formation d’un portefeuille de stratégies, amélioration de l’exactitude des stratégies.
Définir une stratégie de stop-loss dynamique, en ajustant le stop-loss en fonction de la volatilité du marché.
Optimisation des stratégies de gestion des fonds, différentes variétés permettent de définir des tailles de position différentes.
L’application de l’apprentissage automatique aide à déterminer les points de basculement des fluctuations du marché.
Les indicateurs de la moyenne de niveau supérieur sont combinés pour identifier les tendances à un niveau plus élevé.
Cette stratégie utilise des indicateurs de volatilité pour déterminer les mouvements du marché. Elle est plus simple et plus directe, mais elle peut être limitée par un seul indicateur. L’introduction appropriée de plusieurs indicateurs de jugement et de paramètres d’optimisation améliore la stabilité de la stratégie.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/08/2018
// The Volatility function measures the market volatility by plotting a
// smoothed average of the True Range. It returns an average of the TrueRange
// over a specific number of bars, giving higher weight to the TrueRange of
// the most recent bar.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Volatility Backtest", shorttitle="Volatility")
Length = input(10, minval=1)
LengthMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
xATR = atr(Length)
nRes = ((Length - 1) * nz(nRes[1], 0) + xATR) / Length
xMARes = sma(nRes, LengthMA)
pos = iff(nRes < xMARes, 1,
iff(nRes > xMARes, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="Volatility")
plot(xMARes, color=red, title="MA")