Umkehr- und lineare Regressions-Intercept-Kombi-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-09-26 15:56:48
Tags:

Übersicht

Diese Strategie kombiniert die 123 Umkehrstrategie und die lineare Regressions-Abschlussstrategie, um eine multifaktorgetriebene Combo-Handelsstrategie umzusetzen. Die 123 Umkehrstrategie beurteilt das Preisverhältnis zwischen den letzten beiden Handelstagen und kombiniert den Stoch-Indikator, um das Umkehrsignal zu bestimmen. Die lineare Regressions-Abschlussstrategie verwendet lineare Regressionsanalyse, um das Verhältnis zwischen Preis und Trendlinie zu beurteilen und Handelssignale zu generieren. Die beiden Strategien überprüfen sich gegenseitig und können falsche Signale effektiv filtern.

Strategieprinzip

123 Umkehrstrategie

Die Strategie beruht auf folgenden Grundsätzen:

  1. Wenn der Schlusskursverhältnis zwischen den letzten beiden Handelstagen höher ist als der heutige Schlusskurs und die Stoch-Schnelllinie niedriger ist als die langsame Linie, wird davon ausgegangen, dass es ein bullisches Umkehrsignal gibt.

  2. Wenn der Schlusskursverhältnis zwischen den letzten beiden Handelstagen der heutige Schlusskurs niedriger als der gestrige ist und die Stoch-Schnelllinie höher als die langsame ist, wird davon ausgegangen, dass es ein bärisches Umkehrsignal gibt.

Die Urteilsregeln sind wie folgt:

  • Wenn der heutige Schlusskurs > der gestrige Schlusskurs und die Stoch-Schnelllinie < Stoch-Slow-Line und Stoch-Schnelllinie > den Parameter festlegen, wird ein Kaufsignal erzeugt.

  • Wenn der heutige Schlusskurs < der gestrige Schlusskurs und die Stoch-Schnelllinie > die Stoch-Slow-Line und die Stoch-Schnelllinie < Satzparameter erzeugen, wird ein Verkaufssignal erzeugt.

Die Strategie muss Stoch-Indikatorparameter festlegen, darunter: K-Linienzyklus Länge für die Stoch-Berechnung, Glättungszyklus KSglättung für Stoch-Schnelllinie, Glättungszyklus D-Länge für Stoch-Langsam-Linie, Schwellenwert für Stoch-Schnelllinie.

Lineare Regressions-Abfangstrategie

Die Strategie basiert auf einer linearen Regressionsanalyse, um die Beziehung zwischen Preis und linearer Regressions-Trendlinie zu beurteilen.

  • Wenn der Schlusskurs größer ist als der lineare Regressions-Abschnitt, wird ein Kaufsignal generiert.

  • Wenn der Schlusskurs geringer ist als der lineare Regressions-Abschnitt, wird ein Verkaufssignal generiert.

Die Strategie muss den linearen Regressionszyklus LengthLRI und die lineare Regressionsdatenquelle xSeria festlegen.

Kombinationsstrategie

Die Combo-Strategie erfordert gleichzeitige Kauf-/Verkaufssignale sowohl aus der Umkehrstrategie 123 als auch aus der linearen Regressions-Abfangstrategie, um tatsächliche Handelsorders zu generieren, die falsche Signale effektiv filtern und die Handelsleistung verbessern.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Mehrfaktorgestützte, wirksame Filterung falscher Signale und Verbesserung der Signalqualität

Die Kombination zweier verschiedener Arten von Strategien erfordert Signale von beiden Strategien, um tatsächlich Aufträge zu platzieren.

  1. Echtzeitüberwachung von Preis- und Trendbeziehungen verhindert, dass man in die Falle gerät

Der lineare Regressions-Intersect kann die Beziehung zwischen Preis und Trendlinie in Echtzeit widerspiegeln. Wenn der Preis signifikant vom Trend abweicht, wird er die Strategie umgehend auffordern, die Positionsrichtung anzupassen. Dies ermöglicht zeitnahe Stop-Losses und vermeidet, in historischen Trends gefangen zu werden.

  1. Berücksichtigen Sie Handelschancen sowohl für Trends als auch für Umkehrungen

Die lineare Regressionsstrategie ist besser bei der Identifizierung von Trendkauf- und Verkaufspunkten. Während sich die 123 Umkehrstrategie auf die Identifizierung von Umkehrpunkten konzentriert. Die beiden Strategien können die Vorteile des Trendhandels und des Umkehrhandels kombinieren.

  1. Anpassbare Optimierung von Strategien

Beide Strategien bieten bestimmte Parameter für die Anpassung, die für verschiedene Sorten und verschiedene Trends optimiert werden können, um die Wirkung der kombinierten Strategie zu optimieren.

Risikoanalyse

Die Strategie birgt außerdem folgende Risiken:

  1. Mehrfacherfahrer können einige Chancen verpassen

Die Notwendigkeit, die Handelssignale beider Strategien zu erfüllen, wird einige Chancen verpassen, die nur mit einer einzigen Strategie profitabel sein können.

  1. Lineare Regression hat Verzögerung

Die lineare Regression erfordert einige historische Daten für die Berechnung und kann nicht in Echtzeit auf plötzliche Ereignisse reagieren, was zu einer Verzögerung führt.

  1. Eine angemessene Optimierung der Parameter ist erforderlich

Beide Strategien erfordern eine angemessene Parameterwahl, die für einige Sorten unabhängig voneinander angepasst werden muss.

Die Risiken können durch folgende Methoden verringert werden:

  1. Entspannen Sie das Combo-Signal angemessen, um zu vermeiden, dass zu viele Gelegenheiten verpasst werden

  2. Kombination von Trendindikatoren, um die lineare Regression zu ersetzen, um mehr Echtzeit-Trendbeurteilungen zu erhalten

  3. Verwenden von Methoden des maschinellen Lernens zur Unterstützung der Parameteroptimierung und Verbesserung der Parameterwahl

Optimierungsrichtlinien

Die Strategie kann auf folgende Weise weiter optimiert werden:

  1. Verwenden Sie Methoden des maschinellen Lernens für die Optimierung von Parametern

Sammeln Sie historische Daten, entwerfen Sie Parameteroptimierungsziele und verwenden Sie Machine-Learning-Algorithmen wie genetische Algorithmen und Bayesian-Optimierung, um nach den besten Parameterkombinationen zu suchen.

  1. Hinzufügen eines Stop-Loss-Mechanismus

Es können auf der Grundlage von ATR, Trendindikatoren usw. Stop-Loss-Regeln festgelegt werden, um den maximalen Verlust pro Handel zu kontrollieren.

  1. Optimierung der Ein- und Ausstiegslogik

Zusätzliche Bedingungen wie gleitende Durchschnittsfilter und Bollinger-Bänder können auf der Grundlage von Handelssignalen hinzugefügt werden, um die Häufigkeit der Positionsanpassungen zu reduzieren und nicht in die Falle zu geraten.

  1. Kombination von Stimmungen

Verwenden Sie Techniken zur Verarbeitung natürlicher Sprache, um die Stimmung der Marktteilnehmer zu ermitteln und bei Handelsentscheidungen zu unterstützen.

  1. Hinzufügen eines Moduls zur Vorhersage durch maschinelles Lernen

Verwenden Sie Deep-Learning-Modelle wie LSTM und GRU, um Preise als wichtige Referenz für strategische Entscheidungen vorherzusagen.

Zusammenfassung

Diese Strategie kombiniert die 123 Umkehrstrategie und die lineare Regressions-Abfangstrategie, um multifaktorgetriebenen quantitativen Handel zu implementieren. Der Verifizierungsmechanismus kann falsche Signale effektiv filtern und Umkehr- und Trendhandelschancen erfassen. Es gibt jedoch auch bestimmte Verzögerungsrisiken in der Strategie, die Aufmerksamkeit auf Parameteroptimierung und Erweiterung von Risikokontrollmechanismen erfordern, um die Stabilität der Strategie weiter zu verbessern.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/01/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Linear Regression Intercept is one of the indicators calculated by using the 
// Linear Regression technique. Linear regression indicates the value of the Y 
// (generally the price) when the value of X (the time series) is 0. Linear 
// Regression Intercept is used along with the Linear Regression Slope to create 
// the Linear Regression Line. The Linear Regression Intercept along with the Slope 
// creates the Regression line.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

LRI(Length,xSeria) =>
    pos = 0.0
    xX = Length * (Length - 1) * 0.5
    xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6
    xXY = 0.0
    for i = 0 to Length-1
    	xXY := xXY + (i * xSeria[i])
    xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor
    xLRI = (sum(xSeria, Length) - xSlope * xX) / Length
    pos:= iff(close > xLRI, 1,
           iff(close < xLRI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Line Regression Intercept", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Line Regression Intercept ----")
LengthLRI = input(14, minval=1)
xSeria = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLRI = LRI(LengthLRI,xSeria)
pos = iff(posReversal123 == 1 and posLRI == 1 , 1,
	   iff(posReversal123 == -1 and posLRI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mehr