Die Strategie nutzt eine Kombination aus einer Multifaktor-getriebenen Trading-Strategie, die eine Kombination aus einer 123 Reversal-Strategie und einer Linear-Return-Cut-Strategie ermöglicht. Die 123 Reversal-Strategie beurteilt die Preisbeziehungen der letzten zwei Handelstage in Kombination mit dem Stoch-Indikator, um ein Reversal-Signal zu ermitteln. Die Linear-Return-Cut-Strategie nutzt eine Linear-Return-Analyse, um die Beziehung zwischen dem Preis und der Trendlinie zu ermitteln und einen Handel zu erzeugen.
Die Strategie basiert auf folgenden Prinzipien:
Wenn die Relation zwischen den letzten beiden Handelstagen und dem heutigen Schlusskurs höher als der von gestern ist und die Stoch-Schnelllinie unter der Schnelllinie liegt, wird ein bullishes Umkehrsignal angenommen.
Wenn die Relation zwischen den beiden letzten Handelstagen und dem heutigen Schlusskurs niedriger als der von gestern ist und die Stoch-Schnelllinie höher als die Schnelllinie ist, wird ein Rückschlagsignal für den Rückgang angenommen.
Die Regeln für die Beurteilung sind:
Wenn der heutige Schlusskurs > der gestrige Schlusskurs und die Stoch-Schnelllinie eingestellt sind, wird ein Kaufsignal erzeugt
Wenn der heutige Schlusskurs < der gestrige Schlusskurs und die Stoch-Schnelllinie > die Stoch-Schnelllinie und die Stoch-Schnelllinie < eingestellt sind, wird ein Verkaufssignal erzeugt
Die Strategie erfordert die Einstellung von Stoch-Indikatorparametern, darunter: Berechnung von Stochs K-Zykluslänge, Stochs Schnell-Zyklus KSmoothing, Stochs Langzeit-Zyklus DLength, Stochs Schnell-Durchschnitts-Level.
Die Strategie basiert auf einer linearen Regressionsanalyse, um die Beziehung zwischen dem Preis und der linearen Regressions-Trendlinie zu bestimmen.
Wenn der Schlusskurs größer ist als die lineare Rückkehrs-Schnittlinie, erzeugt es ein Kaufsignal
Wenn der Schlusskurs kleiner ist als die lineare Rückschlussschnittlinie, erzeugt dies ein Verkaufssignal.
Die Strategie erfordert die Einrichtung eines linearen Regressionszyklus LengthLRI sowie eine lineare Regressions-Eingabe der Datenquelle xSeria。
Diese Kombinationsstrategie benötigt ein Buy/Sell-Signal, das sowohl die 123 Reversal-Strategie als auch die Linear-Return-Cut-Out-Strategie erfüllt, um einen tatsächlichen Handelsbefehl zu erzeugen, der die falschen Signale wirksam beseitigt und die Handelswirksamkeit verbessert.
Diese Strategie hat folgende Vorteile:
Die Kombination von zwei verschiedenen Arten von Strategien, die beide Strategien gleichzeitig erzeugen müssen, um tatsächlich zu bestellen. Diese Multi-Factor-Verifizierung kann die falschen Signale, die eine Strategie gelegentlich erzeugt, filtern, unnötige Transaktionen reduzieren und die Signalqualität effektiv verbessern.
Die lineare Regressionsschnittstelle kann die Beziehung zwischen dem Preis und der Trendlinie in Echtzeit widerspiegeln und die Strategie rechtzeitig auffordern, die Richtung der Position zu ändern, wenn der Preis stark von der Trendlinie abweicht. So können Verluste rechtzeitig gestoppt werden, um nicht in den historischen Trends gefangen zu sein.
Die lineare Regression-Strategie ist besser in der Identifizierung von Trend-Kauf- und Verkaufspunkten. Die 123 Reversal-Strategie konzentriert sich auf die Identifizierung von Wendepunkten. Beide Strategien kombinieren die Vorteile von Trend-Handel und Wendehandel.
Beide Strategien bieten die Möglichkeit, bestimmte Parameter anzupassen, die für verschiedene Sorten und Trends optimiert werden können, um die Wirksamkeit der Kombinationsstrategie zu optimieren.
Die Strategie birgt auch folgende Risiken:
Wenn die Handelssignale für beide Strategien eingehalten werden müssen, wird die Möglichkeit verpasst, einen Teil des Gewinns aus einer einzigen Strategie zu erzielen. Wenn die Wirksamkeit einer Strategie geschwächt wird, wird die Effektivität des gesamten Handels beeinträchtigt.
Lineare Regression erfordert eine gewisse Anzahl von historischen Daten zur Berechnung und kann nicht in Echtzeit auf unvorhergesehene Ereignisse reagieren. Es gibt eine gewisse Verzögerung. Wenn der Preis stark springt, benötigt die lineare Regression eine gewisse Zeit, um die Trendlinie anzupassen.
Beide Strategien erfordern die Auswahl geeigneter Parameter, die für bestimmte Arten unabhängig angepasst werden müssen. Wenn die Parameter nicht richtig ausgewählt werden, wird die Wirkung der Strategie stark reduziert.
Die Risiken können durch folgende Maßnahmen verringert werden:
Um zu vermeiden, dass zu viele Chancen verpasst werden, sollten die Triggerbedingungen für die Kombinationssignale entsprechend gelockert werden.
Alternative lineare Regression in Kombination mit Trendindikatoren, um eine Trendbeurteilung in Echtzeit zu erhalten
Mit Hilfe von Methoden wie maschinellem Lernen unterstützt die Optimierung der Parameter und verbessert die Parameterwahl
Die Strategie kann weiter optimiert werden, indem:
Es ist möglich, historische Daten zu sammeln, Parameter-Optimierungsziele zu entwerfen und die optimale Parameterkombination mit maschinellen Lernalgorithmen wie genetischen Algorithmen, Bayesian Optimization usw. zu suchen.
Es können Stop-Loss-Regeln in Kombination mit ATR, Trend Indicators usw. eingerichtet werden, um den maximalen Verlust eines einzelnen Handels zu kontrollieren.
Auf der Grundlage von Handelssignalen können zusätzliche Bedingungen für die Markteintritt, wie z. B. ein Gleichgewichtfilter, Brin-Band-Urteil, hinzugefügt werden, um die Häufigkeit der Positionsanpassung zu verringern und eine Deckung zu vermeiden.
Mit Hilfe von Technologien zur natürlichen Sprache (Natural Language Processing) kann man die Stimmung von Marktteilnehmern beurteilen und dabei helfen, Entscheidungen zu treffen.
Die Verwendung von Deep-Learning-Modellen wie LSTM, GRU und anderen, um Preise vorherzusagen und als wichtige Referenz für strategische Entscheidungen zu verwenden.
Durch die Kombination von 123 Umkehrstrategie und Linear-Return-Cut-Out-Strategie ermöglicht die Strategie einen multifaktorgetriebenen, quantitativen Handel. Die Verifizierungsmechanismen können Falschsignale wirksam filtern und dabei Umkehr- und Trendhandelsmöglichkeiten erfassen. Die Strategie birgt jedoch auch ein gewisses Rückstandsrisiko.
/*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 )