Strategie zur Erfassung von Tiefpunkten basierend auf linearer Regression zur Vix-Reparatur


Erstellungsdatum: 2024-01-30 16:56:39 zuletzt geändert: 2024-01-30 16:56:39
Kopie: 1 Klicks: 735
1
konzentrieren Sie sich auf
1617
Anhänger

Strategie zur Erfassung von Tiefpunkten basierend auf linearer Regression zur Vix-Reparatur

Überblick

Die Kernidee der Strategie besteht darin, die niedrigen Punkte des Marktes in Kombination mit dem Fix-Vix-Indikator und seiner linearen Regression präzise zu erfassen. Die Strategie heißt Fix-Vix-Linear-Return-Low-Points-Strategie.

Strategieprinzip

  1. Die Vix-Reparatur-Indikatoren sind ein besserer Indikator für die Markteinbußen
  2. Lineare Regression auf die Fix-Vix-Indikatoren angewendet. Wenn das Lineare Regression-Histogramm grün wird, um zu zeigen, dass die Fix-Vix-Lineare Regression beginnt zu steigen, kann ein Kaufsignal ausgegeben werden
  3. In Kombination mit der grünen Säule des Wix-Reparatur-Index kann ein Kaufzeitpunkt weiter bestätigt werden.
  4. Wenn die Farbe des linearen Regressions-Histogramms rot wird, zeigt dies an, dass die lineare Regression von der Fix-Vix-Reihe beginnt zu sinken und ein Ausverkaufssignal ausgesendet wird.

Der Vorgang nutzt die lineare Regression, um die Genauigkeit und Aktualität des Indexsignals von Wix zu verbessern und einige falsche Signale zu filtern, um die Tiefpunkte genau zu erfassen.

Analyse der Stärken

  1. Strategie nutzt die lineare Regression-Filterung von partiellen Falschsignalen des Wix-Reparaturindikators, um die Kauf-/Verkaufssignale genauer und zuverlässiger zu machen
  2. Lineare Regression erhöht die Sensibilität und Aktualität der Signale und ermöglicht die schnelle Erfassung von Marktwendepunkten
  3. Die Strategie ist einfach, klar und verständlich und ist für die Quantifizierung von Transaktionen geeignet.
  4. Mehr konfigurierbare Parameter, die flexibel angepasst werden können, um sich an Marktveränderungen anzupassen

Risiken und Lösungen

  1. Diese Strategie wird hauptsächlich verwendet, um die Gesamtheit der niedrigen Punkte des Marktes zu beurteilen und ist nicht für einzelne Aktien geeignet
  2. Die lineare Regression kann nicht vollständig Falschsignale filtern, und die Kombination mit dem Fix-Vix-Kennzeichen kann das Risiko verringern.
  3. Die Parameter müssen entsprechend angepasst werden, um den Veränderungen der Praxis gerecht zu werden und die Wirksamkeit zu verhindern.
  4. Empfohlen in Kombination mit anderen Indikatoren zur weiteren Bestätigung von Signalen

Optimierungsrichtung

  1. Eine Kombination mit einem Fluktuationsrate- oder Quantitätsindikator kann in Betracht gezogen werden, um die Signale weiter zu filtern.
  2. Die Optimierungsmethoden für die Anpassung von Parametern können untersucht werden, um Strategien intelligenter zu machen
  3. Mit Hilfe von maschinellen Lernmethoden können komplexere Modelle die Reparaturentwicklung von Wix vorhersagen.
  4. Ein ähnlicher Ansatz könnte auf einzelne Aktien angewendet werden, um zu untersuchen, wie man falsche Signale filtert.

Zusammenfassen

Die Strategie nutzt die Wix-Reparatur-Indikatoren, um die Tiefpunkte zu ermitteln, während die Einführung einer linearen Regression die Signalqualität verbessert, um die Tiefpunkte des Marktes effektiv zu erfassen. Die Strategie ist einfach und praktisch, die Ergebnisse sind ideal, und das Hauptrisiko besteht darin, dass falsche Signale nicht vollständig gefiltert werden können.

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"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HeWhoMustNotBeNamed

//@version=4
strategy("VixFixLinReg-Strategy", shorttitle="VixFixLinReg - Strategy",
                     overlay=false, initial_capital = 100000, 
                     default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, pyramiding = 1, 
                     commission_value = 0.01)
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range - Based on Percentile and LookBack Period?")
sd = input(false, title="Show Standard Deviation Line?")
i_startTime = input(defval = timestamp("01 Jan 2010 00:00 +0000"), title = "Start Time", type = input.time)
i_endTime = input(defval = timestamp("01 Jan 2099 00:00 +0000"), title = "End Time", type = input.time)
inDateRange = true
considerVIXFixClose = input(false)
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")

atrLen = input(22)
atrMult = input(5)
initialStopBar = input(5)
waitForCloseBeforeStop = input(true)
f_getStop(atrLen, atrMult)=>
    stop = strategy.position_size > 0 ? close - (atrMult * atr(atrLen)) : lowest(initialStopBar)
    stop := strategy.position_size > 0 ? max(stop,nz(stop[1], stop)) : lowest(initialStopBar)
    stop

wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100

sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev

rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl


col = wvf >= upperBand or wvf >= rangeHigh ? color.lime : color.gray

val = linreg(wvf, pd, 0)
absVal = abs(val)

linRegColor = val>val[1]? (val > 0 ? color.green : color.orange): (val > 0 ? color.lime : color.red)
plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=plot.style_line, linewidth=4, color=color.orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=plot.style_line, linewidth=4, color=color.orange)
plot(wvf, title="Williams Vix Fix", style=plot.style_histogram, linewidth = 4, color=col)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=plot.style_line, linewidth = 3, color=color.aqua)

plot(-absVal, title="Linear Regression", style=plot.style_histogram, linewidth=4, color=linRegColor)

vixFixState = (col == color.lime) ? 1: 0
vixFixState := strategy.position_size == 0? max(vixFixState, nz(vixFixState[1],0)) : vixFixState

longCondition = (vixFixState == 1 and linRegColor == color.lime) and inDateRange
exitLongCondition = (linRegColor == color.orange or linRegColor == color.red) and considerVIXFixClose

stop = f_getStop(atrLen, atrMult)
label_x = time+(60*60*24*1000*20) 
myLabel = label.new(x=label_x, y=0, text="Stop : "+tostring(stop), xloc=xloc.bar_time, style=label.style_none, textcolor=color.black, size=size.normal)
label.delete(myLabel[1])
strategy.entry("Long", strategy.long, when=longCondition, oca_name="oca_buy")
strategy.close("Long", when=exitLongCondition or (close < stop and waitForCloseBeforeStop and linRegColor == color.green))
strategy.exit("ExitLong", "Long", stop = stop, when=not waitForCloseBeforeStop and linRegColor == color.green)