Stratégie de suivi de tendance de l'oscillateur Vortex


Date de création: 2023-12-07 16:48:45 Dernière modification: 2023-12-07 16:48:45
Copier: 0 Nombre de clics: 676
1
Suivre
1619
Abonnés

Stratégie de suivi de tendance de l’oscillateur Vortex

Aperçu

La stratégie de suivi de tendance des oscillateurs de vortex est une stratégie de suivi de tendance basée sur des indicateurs de vortex. Elle utilise des moyennes mobiles de plusieurs périodes différentes pour construire des indicateurs de vortex, identifier les tendances potentielles des prix et combiner des moyennes mobiles de périodes plus courtes comme jugement auxiliaire pour réaliser des opérations de suivi de tendance à faible risque.

Principe de stratégie

L’indicateur tourbillon est constitué de moyennes mobiles à court, moyen et long terme de plusieurs périodes différentes. Plus précisément, la stratégie utilise des moyennes mobiles à quatre périodes de 6, 27, 72 et 234 jours. La moyenne mobile à court terme reflète la tendance la plus récente des prix et la moyenne mobile à long terme reflète la tendance à long terme des prix. La logique centrale de l’indicateur est que lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme, ce qui indique une augmentation de la hausse des prix, il faut acheter; lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme, ce qui indique une diminution de la hausse des prix, il faut vendre.

L’indicateur de tourbillon a l’avantage d’être un indicateur de tendance précis, capable de filtrer efficacement le bruit du marché. Cependant, sa réaction n’est pas suffisamment sensible pour capturer les points de basculement en temps opportun. Par conséquent, la stratégie a ajouté une moyenne mobile de 6 jours plus sensible, construisant un indicateur de jugement auxiliaire.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans l’exactitude des jugements et la sensibilité des opérations. La combinaison d’indicateurs de tourbillon et d’indicateurs auxiliaires permet de déterminer les tendances et les points de vente spécifiques, ainsi que d’éviter l’interférence entre les fonctions des différents secteurs. Le mécanisme de confirmation multiple permet de filtrer efficacement le bruit du marché et d’éviter les erreurs.

Comparée à une stratégie d’indicateur unique, cette stratégie utilise l’avantage d’une combinaison de plusieurs indicateurs et a une meilleure capacité d’identification et de réponse aux changements du marché. La stratégie permet de réaliser des bénéfices stables dans le cas d’une tendance majeure inchangée; La stratégie peut également réagir rapidement et réduire les pertes lorsque la tendance majeure se transforme.

Analyse des risques

Les principaux risques de cette stratégie sont les effets d’une mauvaise configuration des paramètres de l’indicateur et d’un événement soudain. La configuration des paramètres de la moyenne mobile nécessite un équilibre entre la sensibilité et la résistance aux interférences sonores. Une configuration incorrecte des paramètres peut entraîner des comportements anormaux de la stratégie.

Pour réduire ces risques, il est recommandé d’optimiser la combinaison de paramètres et de faire des retours pour rendre la performance de l’indicateur plus stable. Il est également nécessaire de prêter attention aux effets du marché des événements majeurs, de suspendre la stratégie si nécessaire et d’éviter les erreurs de manipulation des périodes de volatilité anormale.

Direction d’optimisation

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

  1. Optimiser les paramètres des moyennes mobiles, améliorer la résistance aux interférences et la sensibilité aux opérations des indicateurs. Vous pouvez essayer des combinaisons de paramètres de différentes longueurs et choisir des indicateurs stables et sensibles.

  2. Augmentation des mécanismes de stop-loss. Lorsque le prix franchit un support critique dans une direction défavorable, définissez un stop-loss pour éviter d’autres pertes.

  3. En combinaison avec d’autres indicateurs de jugement, il augmente la stabilité de la stratégie. Par exemple, l’ajout d’un indicateur de volume de transactions ne génère un signal de transaction que si le volume de transactions est augmenté.

  4. Différentes combinaisons de paramètres sont utilisées selon les phases du marché. Par exemple, un paramètre plus positif est utilisé pour les marchés haussiers et un paramètre plus stable pour les marchés baissiers.

Résumer

La stratégie de suivi des tendances des oscillateurs de tourbillon utilise des indicateurs de tourbillon pour déterminer la direction et la force de la tendance des prix, et est complétée par des moyennes mobiles à court terme plus sensibles pour déterminer le moment précis d’achat et de vente. Cette stratégie combine avec succès les deux niveaux de jugement de tendance et d’exécution des transactions, garantissant à la fois la stabilité des opérations et améliorant la flexibilité de la stratégie.

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

//@version=3
//swap strategy line for study line to enable backtesting
strategy(title="Vortex Ocillator" )
//study(title = "Vortex Oscillator", precision = 6)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2048, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

//vortex histogram
short_input = input(6, minval = 1)
long_input = input(27, minval = 1)
longer_input = input(72, minval = 1)
longest_input = input(234, minval = 1)

short = sma(close, short_input)
long = sma(close, long_input)
longer = sma(close, longer_input)
longest = sma(close, longest_input)

hist = short - long
longhist = short - longer
longesthist = short - longest

hist_fractal = input(3, minval = 0)
longhist_fractal = input(2, minval = 0)
longesthist_fractal = input(4, minval = 0)

vortexhist = avg((hist / hist_fractal), (longhist / longhist_fractal), (longesthist / longesthist_fractal))

crossover_calc = vortexhist > 0 and vortexhist[1] < 0
crossunder_calc = vortexhist < 0 and vortexhist[1] > 0

crossover2 = crossover(vortexhist, 0)
crossunder2 = crossunder(vortexhist, 0)

hist_color = hist > 0? fuchsia : purple
longhist_color = longhist > 0? olive : orange
longesthist_color = longesthist > 0? teal : blue
vortexhist_color = vortexhist >= 0? green : red

plot(longesthist, "Longest Ocillator", style = histogram, color = longesthist_color, transp = 5)
plot(longhist, "Longer Ocillator", style = histogram, color = longhist_color, transp = 30)
plot(hist, "Short Ocillator", style = histogram, color = hist_color, transp = 30)
plot(vortexhist, "Vortex Ocillator", style = columns, color = vortexhist_color, transp = 40)
plotshape(crossover_calc,title = "Crossover",location = location.bottom, style = shape.triangleup, size = size.small, color = green)
plotshape(crossunder_calc,title = "Crossunder",location = location.bottom, style = shape.triangledown, size = size.small, color = red)

//micro
micro_ema_length = input(6,"Micro EMA Length")
micro = ema(vortexhist, micro_ema_length)
plot(micro, title = "micro", linewidth = 1, color = white)
microup = crossover(vortexhist, micro)
microdown = crossunder(vortexhist, micro)

//new micro signals
xmicroup = microup and vortexhist >=0 or crossover_calc
xmicrodown = microdown and vortexhist >=0 or crossunder_calc
plotshape(xmicroup, title = "Micro up", style = shape.circle, color = olive, location = location.bottom, size = size.tiny)
plotshape(xmicrodown, title = "Micro down", style = shape.circle, color = fuchsia, location = location.bottom, size = size.tiny)

//optional strategy options for backtesting, comment out the alertcondition rows and swap the top study row for the strategy row to compile as strategy
if testPeriod()
    strategy.entry("buy", true, 1, when = xmicroup, limit = low)
if testPeriod()
    strategy.close("buy", when = xmicrodown)

   

//if (xmicroup)
    //strategy.entry("My Long Entry Id", strategy.long)
//if (xmicroup)
    //strategy.exit("My Short Exit Id", "My Short Entry Id")
//if (xmicrodown)
    //strategy.exit("My Long Exit Id", "My Long Entry Id")