Rekursive Volumenhandelsstrategie


Erstellungsdatum: 2024-01-31 16:56:31 zuletzt geändert: 2024-01-31 16:56:31
Kopie: 0 Klicks: 596
1
konzentrieren Sie sich auf
1617
Anhänger

Rekursive Volumenhandelsstrategie

Überblick

Die Strategie basiert auf der Trendverfolgung und dem Durchbruch der Recursive Band Indicator, die von Alex Grover entwickelt wurde. Die Strategie nutzt die Recursive Band Indicator, um die Preisentwicklung und die kritischen Unterstützungswiderstände zu bestimmen, kombiniert mit der Filterung von False Breakouts durch Momentumbedingungen, um einen niedrigen, aber qualitativ hochwertigen Einstieg zu erzielen.

Strategieprinzip

Berechnung der Recursive Band Indicator

Der Rücklaufband besteht aus dem oberen Band, dem unteren Band und der mittleren Linie. Der Indikator wird wie folgt berechnet:

Obergrenze = maximaler Wert ((Obergrenze der vorherigen K-Linie, Schlusskurs + n*Schwankungen) Unterband = Mindestwert ((Unterband der vorherigen K-Linie, Schlusskurs - n)*Schwankungen)
Die mittlere Linie = (Oberseite + Unterseite) / 2

n ist ein Skalierungsfaktor, bei dem die Schwankungen auf ATR, Standarddifferenz, Mittelwertkanal und spezielle RFV-Methoden ausgewählt werden können. Die Längeparameter steuern die Sensitivität des Indikators. Je größer der Wert ist, desto weniger leicht kann der Indikator ausgelöst werden.

Strategische Handelsregeln

Die Strategie erkennt zuerst, ob die Unterbandrichtung nach oben und die Oberbandrichtung nach unten geht, um falsche Durchbrüche zu beseitigen.

Wenn der Preis unterhalb der unteren Bandbreite fällt, machen Sie mehr; wenn der Preis über der oberen Bandbreite fällt, machen Sie weniger.

Die Strategie beinhaltet außerdem eine Stop-Loss-Logik.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Mit Hilfe eines regressiven Rahmens werden die Kennzahlen effizient berechnet und es werden keine Mehrfachberechnungen vorgenommen.
  2. Anpassbar für unterschiedliche Marktumstände
  3. Trends und Durchbrüche, um falsche Durchbrüche zu vermeiden
  4. Filterung der dynamischen Bedingungen, um die Qualität des Handelssignals zu gewährleisten

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Fehlgeleitete Parameter können zu hoher Handelsfrequenz oder schlechter Signalqualität führen
  2. Bei einer Veränderung des konjunkturellen Trends können größere Verluste auftreten.
  3. Unkontrollierter Abwärtstrend könnte die Verluste ausweiten

Diese Risiken können durch Optimierung von Parametern, Stop-Loss-Einstellungen und Erhöhung der Gleitpunkte kontrolliert werden.

Optimierungsrichtung

Die Strategie kann auch in folgenden Richtungen optimiert werden:

  1. Multiple Periodicity Indicators für mehrere Zeiträume
  2. Hinzufügen von Machine Learning Modulen zur Optimierung der Anpassung der Parameter
  3. Erhöhung der Quantifizierung von Korrelationsanalysen, um die optimale Kombination von Parametern zu finden
  4. Der Einsatz von Deep Learning zur Vorhersage von Preiswegen verbessert die Signalgenauigkeit

Zusammenfassen

Insgesamt ist diese Strategie eine sehr praktische und effiziente Trendverfolgungsstrategie. Sie kombiniert Recursive Frameworks, um die Rechenressourcen zu sparen, und nutzt Trendunterstützung, um die Richtung der großen Trends zu bestimmen, und erhöht die Filterung von False Breakouts durch die dynamischen Bedingungen, um die Qualität des Handelssignals zu gewährleisten. Bei Parameteranpassung und Risikokontrolle können bessere Ergebnisse erzielt werden.

Strategiequellcode
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// Original indicator by alexgrover
strategy('Extended Recursive Bands Strategy', overlay=true, commission_type=strategy.commission.percent,commission_value=0.06,default_qty_type =strategy.percent_of_equity,default_qty_value = 100,initial_capital =1000)
length = input.int(260, step=10, title='Length')
src = input(close, title='Source')
method = input.string('Classic', options=['Classic', 'Atr', 'Stdev', 'Ahlr', 'Rfv'], title='Method')
bandDirectionCheck = input.bool(true, title='Bands Hold Direction')
lookback = input(3)
//----
atr = ta.atr(length)
stdev = ta.stdev(src, length)
ahlr = ta.sma(high - low, length)
rfv = 0.
rfv := ta.rising(src, length) or ta.falling(src, length) ? math.abs(ta.change(src)) : rfv[1]
//-----
f(a, b, c) =>
    method == a ? b : c
v(x) =>
    f('Atr', atr, f('Stdev', stdev, f('Ahlr', ahlr, f('Rfv', rfv, x))))
//----
sc = 2 / (length + 1)
a = 0.
a := math.max(nz(a[1], src), src) - sc * v(math.abs(src - nz(a[1], src)))
b = 0.
b := math.min(nz(b[1], src), src) + sc * v(math.abs(src - nz(b[1], src)))
c = (a+b)/2

// Colors
beColor = #675F76
buColor = #a472ff

// Plots
pA = plot(a, color=color.new(beColor, 0), linewidth=2, title='Upper Band')
pB = plot(b, color=color.new(buColor, 0), linewidth=2, title='Lower Band')
pC = plot(c, color=color.rgb(120,123,134,0), linewidth=2, title='Middle Band')
fill(pC, pA, color=color.new(beColor,90))
fill(pC, pB, color=color.new(buColor,90))

// Band keeping direction
// By Adulari
longc = 0
shortc = 0
for i = 0 to lookback-1
    if b[i] > b[i+1]
        longc:=longc+1
    if a[i] < a[i+1]
        shortc:=shortc+1
bhdLong = if bandDirectionCheck
    longc==lookback
else
    true
bhdShort = if bandDirectionCheck
    shortc==lookback
else
    true

// Strategy
if b>=low and bhdLong
    strategy.entry(id='Long',direction=strategy.long)
if high>=a and bhdShort
    strategy.entry(id='Short',direction=strategy.short)

// TP at middle line
//if low<=c and strategy.position_size<0 and strategy.position_avg_price>close
    //strategy.exit(id="Short",limit=close)
//if high>=c and strategy.position_size>0 and strategy.position_avg_price<close
    //strategy.exit(id="Long",limit=close)