Stratégie de backtesting du filtre de tendance de la plage moyenne


Date de création: 2024-01-08 10:20:25 Dernière modification: 2024-01-08 10:20:25
Copier: 0 Nombre de clics: 656
1
Suivre
1617
Abonnés

Stratégie de backtesting du filtre de tendance de la plage moyenne

Résumé: Cette stratégie permet de déterminer si le prix est en tendance en calculant le rapport entre le prix le plus élevé et le prix le plus bas d’une période donnée et la hausse du prix de clôture. Elle sert d’indicateur de signal de négociation.

Principe de la stratégie: l’indicateur central de la stratégie est le filtre horizontal vertical (VHF), qui est calculé par la formule suivante:

VHF = (Highest(Length) - Lowest(Length)) / SUM(ABS(Close - Close[1]), Length)

Leur rapport permet de juger de la tendance du mouvement des prix. Quand le VHF est supérieur au seuil du signal donné, le prix est considéré comme étant en tendance. Quand il est inférieur au seuil du signal donné, le prix est considéré comme étant en état de discontinuité.

La stratégie est simple et intuitive, elle permet de juger de la tendance en comparant la portée des fluctuations des prix avec la marge réelle, évitant ainsi le problème de la dépendance à un seul indicateur comme les SMA, les EMA et ignorant les caractéristiques des prix eux-mêmes. Cependant, la stratégie est sensible à l’optimisation des paramètres et nécessite d’ajuster les paramètres de Longueur et de Signal pour s’adapter à différents cycles et environnements de marché.

Analyse des avantages:

  1. Les indicateurs intuitifs de tendance sont simples et efficaces.
  2. Le prix lui-même est pris en compte, sans dépendre d’une quelconque correspondance de la courbe.
  3. Sensibilité de la décision à l’ajustement des paramètres configurables.
  4. Il peut être facilement intégré dans toutes les stratégies de trading.

Analyse des risques:

  1. Les paramètres sont sensibles et une configuration inappropriée peut entraîner de nombreuses erreurs de trading.
  2. Une fausse tendance à un moment où le prix est au point de basculement sans qu’on puisse le distinguer.
  3. Le réglage à grande période est insensible aux fluctuations de prix à courte période.
  4. Il est nécessaire d’associer le stop loss au contrôle des pertes individuelles.

Les directions d’optimisation

  1. Optimiser la sensibilité des paramètres de Longueur pour équilibrer les jugements de tendance.
  2. Le MACD, par exemple, permet de déterminer le point de basculement.
  3. Essayez d’apprendre à la machine à adapter la courbe VHF.
  4. Les différents réglages périodiques sont en parallèle et génèrent des signaux stratégiques à plusieurs niveaux.

Résumé: La stratégie est simple et efficace, elle est basée sur les tendances intuitives caractéristiques du prix lui-même, elle mérite d’être explorée, optimisée et vérifiée, elle peut être utilisée comme un outil de base pour déterminer les tendances, elle est largement utilisée dans les stratégies de trading quantitatives.

Code source de la stratégie
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/04/2018
// Vertical Horizontal Filter was initiated by Adam White. It was first published 
// in a magazine called “Issues of Futures” in August, 1991. The Vertical Horizontal 
// Filter (VHF) is a very common Indicator used by traders to find out the Phase of 
// a Price Trend. Normally, a price trend can be in a Trending Phase or a Congestion 
// Phase/Choppy Movement Phase. Adam White created this particular Technical Indicator 
// to determine whether prices are trending in a particular direction or are they going 
// through a transitional period. He used it to measure the range of Futures available
// in the market.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Vertical Horizontal Filter Backtest")
Length = input(28, minval=1)
Signal = input(0.4, step=0.01)
reverse = input(false, title="Trade reverse")
hline(Signal, color=blue, linestyle=line)
xHH = highest(high, Length)
xLL = lowest(low, Length)
xNumerator = abs(xHH - xLL)
xDenominator = sum(abs(close - close[1]), Length)
xVHF = xNumerator / xDenominator 
pos = iff(xVHF > Signal, 1,
       iff(xVHF < Signal, -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(xVHF, color=blue, title="VHF")