
Die binäre Regression-Trend-Tracking-Strategie nutzt die Differenz zwischen einer schnellen linearen Regression und einer langsamen linearen Regression, um die Preisentwicklung zu beurteilen und als Einstiegssignal zu dienen. Wenn die schnellen linearen Regressionen die Obergrenze überschreiten, werden sie überschritten, wenn sie die Obergrenze überschreiten, werden sie ausgeglichen. Die Strategie nutzt außerdem die EMA als Filterbedingung und wird nur eingeschaltet, wenn der Preis über der EMA liegt.
Die Strategie berechnet zunächst zwei lineare Regressionskurven mit unterschiedlichen Perioden, eine mit schneller linearer Regression mit kürzerer Periode und eine mit langsamer linearer Regression mit längerer Periode. Dann wird der Unterschied zwischen den beiden linearen Regressionen berechnet. Wenn der Unterschied größer als 0 ist, ist der Preis im Aufwärtstrend; wenn der Unterschied kleiner als 0 ist, ist der Preis im Abwärtstrend.
Die Strategie verwendet die Differenzlinie als Kaufsignal, die die Grenze überschreitet, und die Differenzlinie als Bruttoposition. Die Strategie verlangt, dass der Preis über den 200-Zyklus-EMA liegt, um einen nicht-trendenden Trend zu filtern.
Die zweilineare Regression wird verwendet, um die Preisentwicklung zu erfassen.
Die EMA-Filter werden hinzugefügt, um einige nicht-trendige Trends zu filtern und falsche Signale zu vermeiden.
Die Strategie ist klar und einfach zu verstehen und umzusetzen.
Die lineare Regression ist falsch eingestellt und kann zu einem hohen Geräuschpegel führen.
Die EMA-Filter könnten bei starken Trends einige Chancen verpassen.
In einem konjunkturellen Umfeld kann es zu häufigen Transaktionen und Verlusten kommen.
Die Lösung:
Optimierung der linearen Regressionszyklusparameter und Reduzierung der Geräusche.
Der EMA-Zyklus kann dynamisch an die Marktlage angepasst werden.
Steigerung der Stop-Loss-Regelung.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Optimieren Sie die Periodiparameter der schnellen Linearregression und der langsamen Linearregression, um die optimale Kombination von Parametern zu finden.
Versuchen Sie es mit anderen Filterindikatoren anstelle der EMA, wie Brinband, KDJ, etc., um zu sehen, ob Sie die Effektivität der Strategie verbessern können.
Steigerung der dynamischen Stop-Losses zur Risikokontrolle und Verhinderung der Ausweitung von Verlusten.
In Kombination mit einem Aktienwahlmechanismus werden die am stärksten trendigen Aktien ausgewählt.
Die Parameter werden automatisch an die Marktlage angepasst.
Die Strategie zur Beobachtung der Trendentwicklung mit einer linearen Regression ist insgesamt relativ einfach und direkt. Sie nutzt die Differenzwerte der linearen Regression, um die Preisentwicklung zu bestimmen und die Trendentwicklung mit Hilfe der EMA als Filterindikator effektiv zu verfolgen. Die Strategie birgt jedoch auch gewisse Risiken und muss auf die Optimierung der Parameter und die Stop-Loss-Kontrolle achten, um die Strategie optimal auszuüben.
/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
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/
// © TradingAmmo
//@version=4
strategy("Linear trend", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end = timestamp(input(9999, "End Year"), input(1, "Month"), input(1, "Day"), 0, 0)
_testPeriod() =>
iff(time >= startP and time <= end, true, false)
src = close
len1 = input(defval=13, minval=1, title="Fast LR")
len2 = input(defval=55, minval=1, title="Slow LR")
lag1 = input(0, title="Lag for fast")
lag2 = input(0, title="Lag for slow")
threshold = input(0,step=0.5, title="Threshold")
fast_lr = linreg(src, len1, lag1)
slow_lr = linreg(src, len2, lag2)
lr = fast_lr - slow_lr
plot_fast = plot(lr, color = lr > 0 ? color.green : color.red)
plot(threshold, color=color.purple)
long_condition = crossover(lr, threshold) and close > ema(close, 200) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition)
short_condition = crossunder(lr, threshold)
strategy.close('BUY', when=short_condition)