Eine quantitative Handelsstrategie basierend auf linearer Regressionsanalyse


Erstellungsdatum: 2024-01-26 15:48:35 zuletzt geändert: 2024-01-26 15:48:35
Kopie: 0 Klicks: 680
1
konzentrieren Sie sich auf
1617
Anhänger

Eine quantitative Handelsstrategie basierend auf linearer Regressionsanalyse

Überblick

Die Adaptive Linear Regression Channel Strategie ist eine quantitative Handelsstrategie, die auf der Linear Regression Analyse basiert. Die Strategie bildet einen Up-Down-Channel, indem sie die lineare Regressionsgleichung der Wertpapierpreise in einem bestimmten Zeitraum berechnet und den Up-Down-Track des Kanals als Handelssignal verwendet, um einen Intervall zu handeln oder einen Trend zu verfolgen.

Strategieprinzip

Der Kern der Adaptive Linear Regression-Channel-Strategie ist die Berechnung einer linearen Regression-Equation für die Schließung von K-Wurzel K-Linien mit einer Anzahl von K-Linien, die eine mittlere Linie bilden, die die mittleren Zahlen der Preise darstellt, eine obere Linie, die die oberen Preise darstellt, und eine untere Linie, die die unteren Preise darstellt. Die Berechnung erfolgt wie folgt:

  1. Sammeln Sie die unabhängigen Variablen x und y der K-Reihe, die mit dem Eingabeparameter length angegeben ist. x ist eine ganze Zahl von 1 bis length und y ist der Schlusskurs der entsprechenden K-Reihe.

  2. Berechnung des Regressionsfaktors:

    • b = (∑y)/n - m(∑x)/n
    • m = [(n∑xy) - (∑x)(∑y)]/[(n∑x2) - (∑x)2]
  3. Berechnen Sie die lineare Regression y’ für jede K-Linie mit der Standarddifferenz STDDEV

  4. Die mittlere Linie ist die Regressionsgleichung y’ = mx + b, wobei die oberen und unteren Bahnen jeweils eine Standarddifferenz-Mehrfachspanne auf und ab der mittleren Linie schweben.

Mit der Ankunft der neuen K-Linie wird die Berechnung der Rollen aktualisiert, um einen oberen und unteren Anpassungskanal zu bilden. Je nach der Überquerung der oberen und unteren Bahn des Kanals wird mehr Freiraum gemacht und der Verlust in der Nähe der mittleren Linie eingestellt.

Analyse der Stärken

Die Adaptive Linear Return-Channel-Strategie hat folgende Vorteile gegenüber der herkömmlichen Mittellinien-Strategie:

  1. Regressionsmodelle sind wissenschaftlicher, logischer und statistisch bedeutsamer als die Durchschnittslinie

  2. Mehr Flexibilität, der Umfang der Kanäle passt sich automatisch an Preisänderungen an

  3. Bessere Rückverfolgbarkeit, bei einigen Sorten deutlich besser als bei der linearen Strategie

  4. Die Ergebnisse der Tests sind positiv und die Ergebnisse der Tests sind zufriedenstellend.

Risikoanalyse

Diese Strategie birgt folgende Risiken:

  1. Die Lösung besteht darin, Stop-Loss-Parameter einzurichten und zu optimieren.

  2. Die Lösung besteht darin, die Parameter in Kombination mit anderen technischen Indikatoren anzupassen.

  3. Die Rückdaten wirken gut, aber die Festplatten wirken schlecht. Die Lösung besteht darin, die Parameter anzupassen und zu überprüfen.

Optimierungsrichtung

Die Strategie kann in folgenden Dimensionen weiter optimiert werden:

  1. Versuchen Sie, mehr Parameterkombinationen zu testen, um die optimale Parameter zu finden

  2. In Kombination mit anderen technischen Indikatoren vermeidet das Signal einen Fehltritt bei starker Bewegung

  3. Erhöhung der Stop-Loss-Strategie zur Verringerung des Verlustrisikos und zum Schutz von Kapital

  4. Erweiterung des Moduls für die Positionsverwaltung und Anpassung der Positionsgröße an die Marktlage

Zusammenfassen

Die Adaptive-Linear-Return-Channel-Strategie ist insgesamt eine gut funktionierende quantitative Strategie. Die theoretische Grundlage ist solide, die praktische Wirksamkeit ist gut, es lohnt sich, weiter zu untersuchen und zu optimieren, und kann ein effektiver Bestandteil eines quantitativen Handelssystems sein.

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=2
strategy("Stealthy 7 Linear Regression Channel Strategy", overlay=true)
source = open
length = input(100, minval=1)
mult1 = input(1, minval=0.001, maxval=50)
mult2 = input(1, minval=0.001, maxval=50)
DayTrader = input(title="Range Mode", type=bool, defval=false)

//Making the first least squares line
sum_x = length * (length + 1) / 2
sum_y = 0
sum_xy = 0
xyproductsum = 0
sum_xx = 0
for i = 1 to length
    sum_y := sum_y + close[i]
    sum_xy := i * close[i] + sum_xy
    sum_xx := i * i + sum_xx
m = (length*sum_xy - (sum_x * sum_y)) / (length * sum_xx - (sum_x * sum_x))
b = sum_y / length - (m * sum_x / length)

//Finding the first standard deviation from the line
difference = 0
for i = 1 to length
    y = i * m  + b
    difference := pow(abs(close[i] - y),2) + difference
STDDEV = sqrt(difference / length)

//Creating trading zones
dev = mult1 * STDDEV
dev2 = mult2 * STDDEV
upper = b + dev
lower = b - dev2
middle = b

if DayTrader == false
    if crossover(source, upper)
        strategy.entry("RGLONG", strategy.long, oca_name="RegChannel",  comment="RegLong")
    else
        strategy.cancel(id="RGLONG")

    if crossunder(source, lower)
        strategy.entry("RGSHORT", strategy.short, oca_name="RegChannel",  comment="RegShort")
    else
        strategy.cancel(id="RGSHORT")

    if crossover(source, middle) and strategy.position_size < 0
        strategy.close_all()
    if crossunder(source,middle) and strategy.position_size > 0
        strategy.close_all()

if DayTrader == true
    if crossover(source, lower) 
        strategy.entry("RGLONG", strategy.long, oca_name="RegChannel",  comment="RegLong")
    else
        strategy.cancel(id="RGLONG")

    if crossunder(source, upper)
        strategy.entry("RGSHORT", strategy.short, oca_name="RegChannel",  comment="RegShort")
    else
        strategy.cancel(id="RGSHORT")


plot(upper, title="UpperBand", color=purple, linewidth=1, style=line)
plot(lower, title="LowerBand", color=purple, linewidth=1, style=line)
plot(middle, title="MiddleBand", color=black, linewidth=1, style=line)