Bilineare Regressionsentwicklung nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-17 16:51:33
Tags:

img

Übersicht

Die Bilineare Regressions-Trend-Folge-Strategie verwendet den Unterschied zwischen schneller und langsamer linearer Regression, um Preistrends zu bestimmen, und verwendet sie als Einstiegssignale.

Strategie Logik

Die Strategie berechnet zunächst zwei lineare Regressionslinien mit unterschiedlichen Perioden, eine schnelle mit kürzerer Periode und eine langsame mit längerer Periode. Dann berechnet sie den Unterschied zwischen den beiden, wenn die schnelle Regression über der langsamen Regression liegt, ist der Unterschied positiv, was einen Aufwärtstrend anzeigt. Wenn schnell unter langsam ist, ist der Unterschied negativ, was einen Abwärtstrend anzeigt.

Die Strategie geht lang ein, wenn die Differenzlinie über die Schwelle geht, und geht aus, wenn sie darunter geht.

Analyse der Vorteile

  1. Die doppelte lineare Regression kann die Preisentwicklung gut erfassen.

  2. Der EMA-Filter eliminiert einige falsche Signale von nicht-trendigen Bewegungen.

  3. Einfache und klare Logik, leicht zu verstehen und umzusetzen.

Risikoanalyse

  1. Unzulässige LR-Perioden können zu starkem Lärm führen.

  2. Der EMA-Filter kann bei starken Trends Chancen verpassen.

  3. Anfällig für Schlagsauen und Verluste auf verschiedenen Märkten.

Lösungen:

  1. Optimierung der LR-Perioden zur Verringerung von Lärm.

  2. Dynamische Anpassung der EMA-Periode anhand der Marktbedingungen.

  3. Fügen Sie Stop-Loss zu Kontrollverlusten hinzu.

Optimierung

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie schnelle und langsame LR-Perioden, um die beste Kombination zu finden.

  2. Versuchen Sie andere Filter wie Bollinger Bands, KDJ statt EMA.

  3. Hinzufügen dynamischer Stop-Loss zur Risikokontrolle.

  4. Kombinieren Sie die Auswahl mit der Auswahl von Aktien, um Trendaktien auszuwählen.

  5. Entwicklung anpassungsfähiger Parameter auf der Grundlage der Marktbedingungen.

Zusammenfassung

Die Bilineare Regressionsstrategie ist einfach und direkt bei der Erfassung von Trends mit doppelter linearer Regression und EMA-Filter. Aber sie hat auch Risiken, die durch Parameteroptimierung, Stop-Loss usw. angegangen werden müssen.


/*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) 



Mehr