Strategie des geglätteten Volatilitätszielbands


Erstellungsdatum: 2024-01-29 16:22:14 zuletzt geändert: 2024-01-29 16:22:14
Kopie: 0 Klicks: 591
1
konzentrieren Sie sich auf
1617
Anhänger

Strategie des geglätteten Volatilitätszielbands

Überblick

Diese Strategie basiert auf der Schleichung der Preisfluktuation, um eine Preiszielzone zu erzeugen, die ein Handelssignal erzeugt, wenn der Preis die Zielzone überschreitet.

Strategieprinzip

Die Strategie berechnet zunächst die durchschnittliche Schwankungsbreite des Preises während eines bestimmten Zeitraums, dann wird die Schwankungsbreite durch einen Index-Moving-Average-Gleichung behandelt, um eine Schwankungsbreite zu erzeugen. Die Schwankungsbreite wird mit einem Faktor multipliziert, um die Reichweite des Zielbandes zu erhalten. Wenn der Preis das Zielband überschreitet, wird ein Kaufsignal erzeugt.

Die Strategie berechnet die Smooth-Volatilität smrng mit der Funktion smoothrng und berechnet dann die Up-and-Down-Strecken hband und lband des Zielbands anhand der smrng-Werte. Auf dieser Grundlage werden die Long-Condition und die Short-Condition festgelegt. Wenn die Long-Kondition erfüllt ist, wird ein Kaufsignal erzeugt; wenn die Short-Kondition erfüllt ist, wird ein Verkaufsignal erzeugt.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Verwendung von Preisschwankungen zur Konstruktion von Handelssignalen ermöglicht eine effiziente Verfolgung von Marktveränderungen.

  2. Durch den Index kann der Moving Average die Schwankungen ausgleichen und so den Lärm filtern, um ein zuverlässigeres Handelssignal zu erzeugen.

  3. Die Zielbandbreite kann durch einen Schwankungskoeffizienten angepasst werden, um die Strategie flexibler zu machen.

  4. In Kombination mit einem Preis-Breakthrough-Urteil kann eine Handelschance bei einem Trendwechsel rechtzeitig erfasst werden.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Bei ungewöhnlichen Marktschwankungen kann die Fliessrate die tatsächlichen Schwankungen nicht genau widerspiegeln, was zu falschen Signalen führt. Das Modell kann durch Anpassung der Parameter optimiert werden.

  2. Die Zielbandbreite kann bei falscher Einstellung zu hohen Handelsfrequenzen oder zu geringen Signalen führen. Verschiedene Parameter können getestet werden, um die optimale Bandbreite zu finden.

  3. Das Durchbruchsignal wird mit einer zeitlichen Verzögerung beurteilt, die zu einer vorzeitigen oder verspäteten Einreise führen kann. Die Bestätigung kann in Kombination mit anderen Indikatoren erfolgen.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Versuchen Sie, verschiedene Zeiträume der Preisdaten zu testen, um die am besten geeignete Periodiparameter für die Berechnung der Schwankungen zu finden.

  2. Versuchen Sie mit verschiedenen Moving Average-Algorithmen, z. B. mit einem linear gewogenen Moving Average.

  3. Die Einführung von Handelsvolumen oder anderen Indikatoren zur Bestätigung eines Durchbruchs signalisiert.

  4. Setzen Sie einen Stop-Loss oder Trailing Stop, um den Einzelschaden zu kontrollieren.

  5. Optimieren Sie den Wert des Fluktuationskoeffizienten mult, um den optimalen Zielbandbereich zu ermitteln.

Zusammenfassen

Die Strategie ist klar und übersichtlich. Die Strategie kann durch die Preisfluktuation eine Zielzone erstellen, die Preisdurchbrüche nutzen, um Handelssignale zu erzeugen und die Trends der Marktveränderungen effektiv zu verfolgen. Es besteht jedoch auch ein gewisser Raum für Verbesserungen, um die Strategie durch Parameteroptimierung und die Einführung von Bestätigungsindikatoren zu verbessern.

Strategiequellcode
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("1SmSm1 Strategy", shorttitle="1SmSm1", overlay=true)

// Source
src = input(defval=close, title="Source")

// Sampling Period
per = input(defval=100, minval=1, title="Sampling Period")

// Range Multiplier
mult = input(defval=3.0, minval=0.1, title="Range Multiplier")

// Smooth Average Range
smoothrng(x, t, m) =>
    wper = (t * 2) - 1
    avrng = ema(abs(x - x[1]), t)
    smoothrng = ema(avrng, wper) * m
    smoothrng

smrng = smoothrng(src, per, mult)

// Range Filter
rngfilt(x, r) =>
    rngfilt = x
    rngfilt := x > nz(rngfilt[1]) ? ((x - r) < nz(rngfilt[1]) ? nz(rngfilt[1]) : (x - r)) : ((x + r) > nz(rngfilt[1]) ? nz(rngfilt[1]) : (x + r))
    rngfilt

filt = rngfilt(src, smrng)

// Filter Direction
upward = 0.0
upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1])

downward = 0.0
downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1])

// Target Bands
hband = filt + smrng
lband = filt - smrng

// Breakouts
longCondition = (src > filt) and (src > src[1]) and (upward > 0)
shortCondition = (src < filt) and (src < src[1]) and (downward > 0)

strategy.entry("Buy", strategy.long, when = longCondition)
strategy.entry("Sell", strategy.short, when = shortCondition)

// Plotting
plot(filt, color=upward > 0 ? color.lime : downward > 0 ? color.red : color.orange, linewidth=3, title="Range Filter")
hbandplot = plot(hband, color=color.aqua, transp=100, title="High Target")
lbandplot = plot(lband, color=color.fuchsia, transp=100, title="Low Target")

// Fills
fill(hbandplot, lbandplot, color=color.aqua, title="Target Range")

// Bar Color
barcolor(longCondition ? color.green : shortCondition ? color.red : na)

// Alerts
alertcondition(longCondition, title="Buy Alert", message="BUY")
alertcondition(shortCondition, title="Sell Alert", message="SELL")