Adaptive Volatilitätsstrategie basierend auf quantitativem Range Breakout


Erstellungsdatum: 2024-02-22 16:50:46 zuletzt geändert: 2024-02-22 16:50:46
Kopie: 0 Klicks: 563
1
konzentrieren Sie sich auf
1617
Anhänger

Adaptive Volatilitätsstrategie basierend auf quantitativem Range Breakout

Überblick

Die Strategie erzeugt ein anpassungsfähiges Schwankungsbereich, indem sie die Höchst- und Tiefstwerte der letzten bestimmten Periode berechnet und ein Handelssignal erzeugt, wenn die Transaktionsmenge der aktuellen Periode diese Grenze überschreitet. Die Signalrichtung gehört nach dem Urteil der Zwiebeln zu den einfachsten und wirksamsten Strategien, um die Marktausfälle zu verfolgen.

Strategieprinzip

Die Kernlogik ist die Berechnung der höchsten und niedrigsten Werte der positiven und negativen Transaktionen in den letzten N-Zyklen, um einen selbständigen Schwankungsbereich zu bilden. Basierend auf diesem Bereich wird beurteilt, ob es zu einem Durchbruch gekommen ist.

Der Prozess der Berechnung ist wie folgt:

  1. Berechnung der höchsten und niedrigsten Transaktionen der letzten N-Zyklen
  2. Beurteilen Sie, ob die Transaktionsmenge des laufenden Zyklus Volume höher als Highest ist
  3. Kombination der aktuellen Wellenlänge, um den Durchbruch zu bestimmen.
  4. Erzeugen von mehr als einem leeren Signal

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Anpassungsbereitschaft und Sensibilität für Marktveränderungen
  2. Das Unternehmen hat sich in der Vergangenheit bemüht, die Unsicherheiten zu erfassen und die Einzelfälle zu reduzieren.
  3. Vermeiden Sie falsche Durchbrüche in Kombination mit falscher Einschätzung
  4. Einfach und leicht zu verstehen und zu ändern
  5. Flexibel anpassbare Parameter für verschiedene Sorten

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Die Parameter müssen angepasst werden.
  2. Häufige Fehlsignale bei großen, zyklischen Marktschwankungen
  3. Unmöglichkeit, zwischen normalen und abnormalen Durchbrüchen zu unterscheiden, erfordert eine Kombination anderer Indikatoren oder Musterurteile
  4. Jeder Durchbruch ist eine Eintrittsmöglichkeit, keine Trends zu verfolgen.

Optimierung durch Anpassung der Parameter-Periode in Kombination mit anderen Kennzahlen.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Erhöhung der Parameter, um die Intervalllänge an unterschiedliche Marktzyklen anzupassen
  2. Hinzufügen von Kennzahlen wie Mittellinien, Brinks und Filtersignalen
  3. Optimierung der K-Linien-Kombination, um falsche Durchbrüche zu vermeiden
  4. Hinzufügen von Re-Entry- und Stop-Loss-Module, um die Strategie zu ermöglichen, Trends zu verfolgen

Zusammenfassen

Die Strategie ist insgesamt einfach und praktisch und kann durch Anpassungsspanne und Summe von Werten und Preisen eine unerwartete einseitige Situation effektiv erfassen. Es besteht jedoch ein gewisses Risiko für Fehlinformationen, die die Parameter entsprechend anpassen und mit anderen Tools kombiniert werden müssen, um die maximale Wirkung zu erzielen.

Strategiequellcode
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © EvoCrypto

//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)

// INPUTS {
Range_Length    =   input(5,        title="Range Length",                       minval=1)

Heikin_Ashi     =   input(true,     title="Heikin Ashi Colors")
Display_Bars    =   input(true,     title="Show Bar Colors")
Display_Break   =   input(true,     title="Show Break-Out")
Display_Range   =   input(true,     title="Show Range")
// }

// SETTINGS {
Close           =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close)    : close
Open            =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open)     : open

Positive        =    volume
Negative        =   -volume

Highest         =   highest(volume, Range_Length)
Lowest          =   lowest(-volume, Range_Length)

Up              =   Highest > Highest[1] and Close > Open
Dn              =   Highest > Highest[1] and Close < Open

Volume_Color    =   
 Display_Break and Up   ? color.new(#ffeb3b, 0)     : 
 Display_Break and Dn   ? color.new(#f44336, 0)     : 
 Close > Open           ? color.new(#00c0ff, 60)    : 
 Close < Open           ? color.new(#000000, 60)    : na 
// }

//PLOTS {
plot(Positive,                      title="Positive Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)
plot(Negative,                      title="Negative Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)

plot(Display_Range ? Highest : na,  title="Highest",            color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)
plot(Display_Range ? Lowest  : na,  title="Lowest",             color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)

barcolor(Display_Bars ? Volume_Color : na)
// }

if (Up)
    strategy.entry("Long Entry", strategy.long)
if (Dn)
    strategy.entry("Short Entry", strategy.short)