Der Trend des Vortex-Oszillators nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-07 16:48:45
Tags:

img

Übersicht

Der Vortex-Oszillator ist eine Trendverfolgungsstrategie, die auf dem Vortex-Indikator basiert. Er verwendet gleitende Durchschnitte mehrerer Zeitrahmen, um den Vortex-Indikator zu konstruieren, um potenzielle Kurstrends zu identifizieren, und kombiniert sich mit einem kürzeren Zeitraum gleitenden Durchschnitt als Hilfsurteil, um risikoarme Trendverfolgungsoperationen zu erreichen.

Strategieprinzip

Der Kernindikator dieser Strategie ist der Vortex-Indikator. Der Vortex-Indikator besteht aus kurzfristigen, mittelfristigen und langfristigen gleitenden Durchschnitten mehrerer Zeitrahmen. Insbesondere verwendet die Strategie gleitende Durchschnitte von 6 Tagen, 27 Tagen, 72 Tagen und 234 Tagen. Der kurzfristige gleitende Durchschnitt spiegelt den jüngsten Preistrend wider, während der langfristige gleitende Durchschnitt den langfristigen Trend widerspiegelt. Die Kernlogik des Indikators ist, dass, wenn der kurzfristige gleitende Durchschnitt über den langfristigen gleitenden Durchschnitt überschreitet, es darauf hinweist, dass die Aufwärtsdynamik stärker wird und es Zeit zum Kauf ist. Wenn der kurzfristige gleitende Durchschnitt unter den langfristigen gleitenden Durchschnitt überschreitet, zeigt es an, dass die Aufwärtsdynamik schwächer wird und wir verkaufen sollten.

Der Vortex-Indikator hat den Vorteil, dass er Trends genau beurteilt und Marktlärm effektiv ausfiltert. Seine Reaktion ist jedoch nicht empfindlich genug, um Wendepunkte rechtzeitig zu erfassen. Daher beinhaltet die Strategie einen empfindlicheren 6-Tage- gleitenden Durchschnitt, um einen Hilfsbeurteilungsindikator zu konstruieren. Kaufen, wenn sowohl der Vortex-Indikator als auch der Hilfsindikator über die Nulllinie überschreiten, und verkaufen, wenn beide Indikatoren unter die Nulllinie überschreiten. Dies bildet eine Multi-Bestätigungslogik, bei der der Vortex-Indikator die Trendrichtung und -stärke bestimmt, während der Hilfsindikator bestimmte Ein- und Ausstiegspunkte bestimmt, was falsche Signale herausfiltert und gleichzeitig die Empfindlichkeit der Operationen verbessert.

Analyse der Vorteile

Der größte Vorteil dieser Strategie ist die Genauigkeit des Urteils und die Empfindlichkeit der Operationen. Die Kombination des Vortex-Indikators und Hilfsindikatoren erreicht eine organische Einheit des Trendurteils und der Bestimmung bestimmter Ein-/Ausgangspunkte, während die Störungen untereinander vermieden werden. Der Multi-Bestätigungsmechanismus kann effektiv Marktlärm filtern und falsche Trades vermeiden. Gleichzeitig gewährleistet die Hinzufügung des Hilfsindikators auch die Empfindlichkeit der Operationen der Strategie.

Im Vergleich zu Einzelindikatorstrategien besteht der Vorteil dieser Strategie darin, dass sie mehrere Indikatoren kombiniert, um stärkere Fähigkeiten bei der Identifizierung und Reaktion auf Marktveränderungen zu erzielen.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie stammen aus unsachgemäßen Parameter-Einstellungen von Indikatoren und der Auswirkung von Extremereignissen. Die Parameter von gleitenden Durchschnitten müssen die Empfindlichkeit und die Lärmstörungsbeständigkeit ausgleichen. unsachgemäße Parameter-Einstellungen führen zu einem abnormalen Strategieverhalten. Darüber hinaus könnten große Ereignisse auch zu extremer Preisvolatilität führen, die Indikatoren deaktiviert und zu falschen Trades führt.

Um diese Risiken zu mindern, sollten die Parameter optimiert und zurück getestet werden, um die Indikatorenleistung zu stabilisieren. Achten Sie außerdem auf die Markteffekte von wichtigen Ereignissen, pausieren Sie Strategien, wenn nötig, um Fehler während abnormaler Volatilitätsperioden zu vermeiden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie die gleitenden Durchschnittsparameter, um die Lärmfestigkeit und die Funktionsempfindlichkeit des Indikators zu verbessern.

  2. Hinzufügen von Stop-Loss-Mechanismen: Stellen Sie Stop-Loss-Punkte fest, wenn die Preise die wichtigsten Unterstützungsniveaus in ungünstige Richtungen durchbrechen, um weitere Verluste zu vermeiden.

  3. Einbeziehung anderer Indikatorbeurteilungen zur Steigerung der Strategie-Stabilität, z. B. Erfassung von Signalen nur, wenn das Handelsvolumen zunimmt.

  4. Verwenden Sie unterschiedliche Parameter-Sätze, die auf verschiedenen Marktstadien basieren. Zum Beispiel aggressivere Parameter während Bullenmärkte und stabilere Einstellungen in Bärenmärkten.

Schlussfolgerung

Die Vortex Oscillator Trend Following Strategie kombiniert erfolgreich Trendbeurteilung und -ausführung durch den Vortex-Indikator, der die Kursentwicklungsrichtung/Stärke bestimmt, und einen sensiblen kurzfristigen gleitenden Durchschnitt, der spezifische Ein-/Ausfahrtszeiten angibt.


/*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")

  




Mehr