Historische Volatilitätsbereich-Ausbruchshandelsstrategie


Erstellungsdatum: 2023-09-21 20:38:29 zuletzt geändert: 2023-09-21 20:38:29
Kopie: 1 Klicks: 677
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Diese Strategie basiert auf historischen Preisschwankungen, um ein Handelssignal zu ermitteln. Sie berechnet die Differenz zwischen den höchsten und niedrigsten Preisen in einem bestimmten Zeitraum und bildet einen Schwankungsbereich durch einen Moving Average. Sie erzeugt ein Handelssignal, wenn der Preis den Auf- und Abstieg dieser Zone durchbricht.

Strategieprinzip

Der Kern der Strategie ist die historische Schwankungsrate der Preise. Die Berechnungsmethode ist:

  1. Der Unterschied zwischen dem Höchst- und dem Tiefstpreis der letzten N-Reihe Bar wird als HL berechnet.

  2. Berechnen Sie den Mittelwert der höchsten und niedrigsten Preise in der Vergangenheit N-Rückgang Bar (avg ((H, L))

  3. Schwankungsrate = HL / avg (H, L)

N ist das Parameter “Volatility Length”.

Nach Erhalt der Schwankungsrate berechnet man die Auf- und Abfahrt:

Aufwärts = aktuelle Close + aktuelle Close * Volatilität

Unterbahn = aktuelle Close - aktuelle Close * Schwankungen

Die Ober- und Unterstrecke wird durch eine WMA-Gleichlinie mit dem Parameter “Average Length” geschliffen.

Wenn die Preise hochgehen, machen Sie mehr; wenn die Preise untergehen, machen Sie weniger.

Das Ausgangssignal wird nach dem Parameter “Exit Type” angegeben:

  1. Exit Type ist ein Volatility MA, bei dem der Preis die WMA-Durchschnitts-Gleichgewichtsposition wieder durchbricht;

  2. Exit Type ist Range Crossover, der Kurs bricht wieder aus dem oberen und unteren Gleis.

Strategische Vorteile

  • Die Verwendung von Preisschwankungen zur Erfassung von Trends
  • WMA-Linienbehandlung für eine stabilere und zuverlässigere Bandbreite
  • Breakout-Eintritte machen Trendwende leicht zu erfassen
  • Rückschritt über die Durchschnittslinie oder Auf- und Abfahrt kann zu einem zeitnahen Ausfall führen
  • Große Optimierungsmöglichkeiten für verschiedene Märkte

Strategisches Risiko

  • Ein Durchbruch in die Bandbreite ist mit einem Risiko für einen Rückschlag verbunden
  • Bei einer Trendwende sind die Verluste größer.
  • Die WMA ist manchmal nicht empfindlich genug, um Trendwende zu erkennen.
  • Optimierung für Parameter ist schwierig und erfordert viel Versuch und Fehler.
  • Rücknahmen sind riskant und erfordern eine sorgfältige Vermögensverwaltung.

Das Risiko kann durch folgende Maßnahmen verringert werden:

  • Optimierung der Parameter für eine stabilere und zuverlässigere Bandbreite
  • Das sind die wichtigsten Faktoren, die den Rückschlag verhindern.
  • SIZE der Geschäfte verkleinern und auf Kapitalmanagement fokussieren
  • Erwägung eines Wiedereintrittsmechanismus

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Parameteroptimierung

Die optimale Kombination der Parameter wird durch das Testen verschiedener Length-Parameter gefunden.

  1. Hinzufügen von anderen Indikatoren

Zum Beispiel, wenn der MACD bei einem Kursbruch auf die Strecke kommt, wird er mehr tun, wenn der MACD gleichzeitig Goldfork ist.

  1. Optimierung der Stop-Loss-Methode

Es kann optimiert werden, um einen elastischen Tracking-Stopp zu erzeugen, anstatt nur einen einfachen Interval-Breakout-Stopp.

  1. Hinzufügen von Wiedereintrittsmechanismen

Nach dem Stop-Loss-Ausgang kann die Wiedereintrittsbedingung gesetzt werden, um den Trend erneut zu verfolgen, wenn der Trend fortgesetzt wird.

  1. Optimierung der Positionsführung

Die Positionen können dynamisch angepasst werden, je nach Marktvolatilität.

Zusammenfassen

Die Strategie ist im Allgemeinen eher geeignet für Trendbewegungen, um die Richtung und Stärke des Trends anhand der Obergänge und Untergänge der Volatilität zu beurteilen und mit der WMA-Gewinnlinie einen zuverlässigen Handelsbereich zu bilden, wodurch ein Kauf- und Verkaufspunkt entsteht. Es gibt jedoch auch einige Probleme, wie z. B. Trendbeurteilung, Verzögerung, Stop-Loss-Methode kann verbessert werden.

Strategiequellcode
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin

//@version=5
strategy("Volatility Range Breakout Strategy [wbburgin]", shorttitle = "VRB Strategy [wbburgin]", overlay=true,
 pyramiding=20,max_bars_back=2000,initial_capital=10000)

wma(float priceType,int length,float weight) =>
    norm = 0.0
    sum = 0.0
    for i = 0 to length - 1
        norm := norm + weight
        sum := sum + priceType[i] * weight
    sum / norm

// This definition of volatility uses the high-low range divided by the average of that range.
volatility(source,length) =>
    h = ta.highest(source,length)
    l = ta.lowest(source,length)
    vx = 2 * (h - l) / (h + l)
    vx

vm1 = input.int(100,"Average Length")
volLen = input.int(100,"Volatility Length")
vsrc = input.source(close,"Volatility Source")
cross_type = input.source(close,"Exit Source")
exit_type = input.string("Volatility MA",options=["Volatility MA","Range Crossover"],title="Exit Type")

volatility = volatility(vsrc,volLen)

highband1 = close + (close * volatility)
lowband1 = close - (close * volatility)
hb1 = wma(highband1,vm1,volatility)
lb1 = wma(lowband1,vm1,volatility)
hlavg = math.avg(hb1,lb1)

upcross = ta.crossover(high,hb1)    //Crossing over the high band of historical volatility signifies a bullish breakout
dncross = ta.crossunder(low,lb1)    //Crossing under the low band of historical volatility signifies a bearish breakout

vlong = upcross
vshort = dncross
vlong_exit = switch
    exit_type == "Volatility MA" => ta.crossunder(cross_type,hlavg)
    exit_type == "Range Crossover" => ta.crossunder(cross_type,hb1)
vshort_exit = switch
    exit_type == "Volatility MA" => ta.crossover(cross_type,hlavg)
    exit_type == "Range Crossover" => ta.crossover(cross_type,lb1)

if vlong
    strategy.entry("Long",strategy.long)
if vlong_exit
    strategy.close("Long")
if vshort
    strategy.entry("Short",strategy.short)
if vshort_exit
    strategy.close("Short")

plot(hlavg,color=color.white,title="Weighted Volatility Moving Average")
t = plot(hb1,color=color.new(color.red,50),title="Volatility Reversal Band - Top")
b = plot(lb1,color=color.new(color.green,50),title="Volatility Reversal Band - Bottom")

alertcondition(vlong,"Volatility Long Entry Signal")
alertcondition(vlong_exit,"Volatility Long Exit Signal")
alertcondition(vshort,"Volatility Short Entry Signal")
alertcondition(vshort_exit,"Volatility Short Exit Signal")

fill(t,b,color=color.new(color.aqua,90))