Stratégie de volatilité adaptative pour les éléments de volume fini

Auteur:ChaoZhang est là., Date: 2023-10-17 14:50:13 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie utilise la méthode de l'élément volume fini combinée à des métriques de volatilité adaptative pour déterminer les signaux longs et courts, appartenant aux stratégies de suivi de tendance.

Principaux

La stratégie calcule d'abord la moyenne des prix élevés et bas, la moyenne des prix de clôture des N barres récentes, et la moyenne des prix élevés, bas et de clôture de la barre précédente.

En fonction des niveaux de volatilité et des paramètres réglables, le coefficient de coupe adaptatif CutOff est déterminé. Lorsque le changement de prix dépasse le CutOff, des signaux longs ou courts sont générés. Spécifiquement, il calcule la différence MF entre le prix de clôture actuel et la moyenne des prix hauts et bas. Lorsque MF est supérieur à CutOff, c'est un signal long. Lorsque MF est inférieur à un CutOff négatif, c'est un signal court.

Enfin, en fonction des signaux, les flux de fonds sont calculés, la sortie du signal de position pos, et le tracé de la courbe de l'élément de volume fini FVE.

Les avantages

  1. Paramètres adaptatifs, applicables à différents délais et niveaux de volatilité sans ajustement manuel.

  2. Capture avec précision les tendances des prix.

  3. La courbe FVE reflète clairement la comparaison des forces longues et courtes.

  4. Une base théorique solide de l'analyse des flux de fonds, des signaux relativement fiables.

Les risques

  1. Peut générer plus de faux signaux lors de fortes fluctuations du marché.

  2. Ne pouvant gérer les écarts de prix, peut envisager de combiner d'autres indicateurs.

  3. Les signaux de flux de fonds peuvent parfois diverger de l'analyse technique.

Optimisation

  1. Il peut tester l'impact de différentes valeurs de N. Généralement, un N plus grand peut filtrer le bruit.

  2. Peut tester différentes combinaisons de Cintra et de Cinter pour trouver des paramètres optimaux ou envisager de les adapter dynamiquement.

  3. Peut être combiné avec d'autres indicateurs comme le MACD pour améliorer la robustesse.

  4. Peut intégrer des mécanismes d'arrêt des pertes pour contrôler les pertes d'une seule transaction.

Conclusion

Dans l'ensemble, cette stratégie est assez fiable avec des principes solides. Elle peut servir de composante des stratégies de suivi des tendances et fonctionner encore mieux lorsqu'elle est correctement combinée avec d'autres. La clé est de trouver des paramètres optimaux et d'établir une gestion des risques saine. Si elle est optimisée, elle peut devenir un système de suivi des tendances très puissant.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/08/2017
// This is another version of FVE indicator that we have posted earlier 
// in this forum.
// This version has an important enhancement to the previous one that`s 
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra 
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate 
// price changes in minute charts and underestimate corresponding changes in 
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to 
// all time frames automatically.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Volatility Finite Volume Elements", shorttitle="FVI")
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1, step=0.1)
Cinter = input(0.1, step=0.1)
reverse = input(false, title="Trade reverse")
xhl2 = hl2
xhlc3 = hlc3
xClose = close
xIntra = log(high) - log(low)
xInter = log(xhlc3) - log(xhlc3[1])
xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
xStDevInter = stdev(sma(xInter, Samples) , Samples)
xVolume = volume
TP = xhlc3
TP1 = xhlc3[1]
Intra = xIntra
Vintra = xStDevIntra
Inter = xInter
Vinter = xStDevInter
CutOff = Cintra * Vintra + Cinter * Vinter
MF = xClose - xhl2 + TP - TP1
FveFactor = iff(MF > CutOff * xClose, 1, 
             iff(MF < -1 * CutOff * xClose, -1,  0))
xVolumePlusMinus = xVolume * FveFactor
Fvesum = sum(xVolumePlusMinus, Samples)
VolSum = sum(xVolume, Samples)
xFVE = (Fvesum / VolSum) * 100
xEMAFVE = ema(xFVE, Perma)
pos = iff(xFVE > xEMAFVE, 1,
	   iff(xFVE < xEMAFVE, -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(xFVE, color=green, title="FVI")
plot(xEMAFVE, color=blue, title="FVI EMA")

Plus de