Adaptive Schwankungsstrategie auf der Grundlage eines quantitativen Durchbruchs

Schriftsteller:ChaoZhang, Datum: 2024-02-22 16:50:46
Tags:

img

Übersicht

Diese Strategie berechnet das höchste und niedrigste Transaktionsvolumen über einen bestimmten letzten Zeitraum, um einen anpassungsfähigen Schwankungsbereich zu bilden. Wenn das Transaktionsvolumen des aktuellen Zyklus diesen Bereich durchbricht, werden Handelssignale generiert. Die Signalrichtung wird durch den Yin Yang-Candlestick bestimmt, eine einfache und effektive Strategie, um plötzliche große einzelne Transaktionen auf dem Markt zu verfolgen.

Strategie Logik

Die Kernlogik besteht darin, die höchsten und niedrigsten Werte der positiven und negativen Transaktionsvolumina in den jüngsten N-Zyklen zu berechnen, um einen anpassungsfähigen Schwankungsbereich zu bilden.

Der spezifische Berechnungsverfahren ist:

  1. Berechnen Sie das höchste Transaktionsvolumen Höchstes und das niedrigste Transaktionsvolumen Niedrigstes in den letzten N-Zyklen
  2. Bestimmen, ob das Transaktionsvolumen Volumen des aktuellen Zyklus größer als Höchstes ist
  3. Kombinieren Sie, ob die aktuelle Kerze ist Yin oder Yang, um das Durchbruchsignal Urteil abzuschließen
  4. Lange und kurze Signale erzeugen

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Adaptiver Bereichsansatz ist an Veränderungen des Marktes angepaßt
  2. Erfassen von hohen Volatilitätswellen, Verringerung der Anzahl fehlender Transaktionen
  3. Kombination von Kerzenformurteilen, um falsche Durchbrüche zu vermeiden
  4. Einfach zu implementieren und zu ändern
  5. Die Parameter sind an unterschiedliche Produkte angepasst

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Neigung, Höhen zu jagen und Tötung Tiefen, müssen die Parameter anpassen, um zu kontrollieren
  2. Kann häufig falsche Signale in großen Zyklus-Oszillationsmärkten erzeugen
  3. Kann normale und abnormale Durchbrüche nicht unterscheiden, muss andere Indikatoren oder Muster für das Urteilen einbeziehen
  4. Nur eine Eintrittsmöglichkeit für jeden Durchbruch, kann Trends nicht verfolgen

Die Anpassung der Zyklusparameter und die Einbeziehung anderer Indikatoren für die Filterung können optimiert werden.

Optimierungsrichtlinien

Die Strategie kann auf verschiedene Weise optimiert werden:

  1. Erhöhung der Intervalle zur Anpassung der Bandlänge an verschiedene Marktzyklen
  2. Einbeziehung von MA, Bollinger Bands usw. zur Filterung von Signalen
  3. Optimieren Sie Kombinationen mit Kerzenmustern, um falsche Signale zu vermeiden
  4. Hinzufügen von Re-Entry- und Stop-Loss-Modulen, damit die Strategie Trends verfolgen kann

Zusammenfassung

Die Strategie ist im Großen und Ganzen einfach und praktisch. Durch die Kombination von adaptiver Reichweite und Volumenpreisanalyse kann sie einseitige explosive Märkte effektiv erfassen. Es besteht jedoch auch ein gewisses Risiko für falsche Signale, die eine angemessene Parameteränderung und ergänzende Werkzeuge erfordern, bevor sie maximale Wirkung erzielen kann.


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

Mehr