Williams VIX - Strategie für die Lösung

Schriftsteller:ChaoZhang, Datum: 2023-09-28 15:29:48
Tags:

Übersicht

Diese Strategie zielt darauf ab, die Marktvolatilität von VIX durch die Verwendung der Williams Vix Fix-Formel in Kombination mit den stochastischen RSI- und RSI-Indikatoren vorherzusagen.

Strategie Logik

Die Strategie basiert hauptsächlich auf der Kombination von Williams Vix Fix-Formel und Stochastic RSI & RSI-Indikatoren.

Zunächst wird der VIX-Wert des laufenden Zeitraums durch die Williams-Vix-Fix-Formel berechnet, indem das Verhältnis zwischen dem höchsten Preis und dem niedrigsten Preis gemessen wird, was die Volatilität des Marktes und die Panikniveaus darstellt.

Zweitens setzt die Strategie die Kombination von Stochastic RSI und RSI-Indikatoren ein. Der RSI wird zur Bestimmung von Long/Short-Positionen verwendet, während der Stoch RSI K & D-Linien kombiniert, um Umkehrpunkte des RSI zu identifizieren. Verkaufssignale werden generiert, wenn der Stoch RSI aus der Überkaufzone fällt.

Schließlich integriert die Strategie sowohl das überkaufte Signal des Stoch RSI als Basis für den Verkauf als auch den VIX-Wert unterhalb des unteren Bollingerbands als Basis für den Kauf, um Umkehrpunkte des Marktes zu erfassen.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie die Stärken zweier verschiedener Indikatoren kombiniert nutzen kann.

Der Stochastische RSI identifiziert RSI-Umkehrpunkte durch das Überschreiten von K & D-Linien und vermeidet falsche Signale.

Die beiden kombiniert können Marktumkehrpunkte genauer lokalisieren. Es erzeugt Verkaufssignale, wenn der Marktpanic-Index Signale freigibt, während der Stoch RSI verwendet wird, um bestimmte Einstiegspunkte zu bestimmen, um fehlerhafte Einträge zu vermeiden.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Williams Vix Fix-Formel kann keine vollständige Reflexion der Panikgefühle auf dem Markt geben.

  2. Auch die Umkehrsignale des Stoch RSI können falsch sein und müssen mit anderen Indikatoren überprüft werden.

  3. Die Strategie ist relativ konservativ und kann Chancen verpassen, wenn sie nicht in der Lage ist, schnelllebige Märkte rechtzeitig zu verfolgen.

  4. Die Strategie kann größere Drawdowns haben, was eine sorgfältige Positionsgröße erfordert.

Wir müssen Parameter vernünftig festlegen, mit anderen Indikatoren überprüfen und die Positionsgrößen kontrollieren, um Risiken bei der Anwendung dieser Strategie zu mindern.

Optimierungsrichtlinien

Einige Möglichkeiten, diese Strategie zu optimieren:

  1. Optimierung der Parameter der Williams-Vix-Formel, um die Panikniveaus des Marktes genauer widerzuspiegeln.

  2. Optimieren Sie die Parameter des Stoch RSI, um bessere Kombinationen von K & D-Perioden für eine höhere Umkehrgenauigkeit zu finden.

  3. Zusätzliche Positionsgrößenmechanismen wie Stop-Loss/Take-Profit oder dynamische Positionsanpassung basierend auf der Drawdown-/Profit-Ratio.

  4. Einbeziehung anderer Indikatoren wie MACD, KD, um eine Multi-Indikator-Verifizierung zu realisieren und falsche Signale zu reduzieren.

  5. Fügen Sie maschinelle Lernalgorithmen hinzu, nutzen Sie Big Data, um Modelle zu trainieren und Parameter automatisch zu optimieren, um die Stabilität zu verbessern.

Durch die oben genannten Optimierungen können die Leistung und Stabilität der Strategie erheblich verbessert werden.

Schlussfolgerung

Die Williams Vix Fix-Strategie erfasst Marktpanik und Stabilitätsübergänge und verwendet den Stoch RSI, um spezifische Einstiegspunkte zu bestimmen und effektiv Marktboden zu lokalisieren. Sein Vorteil liegt in der Kombination von Indikatoren, aber es gibt auch bestimmte Risiken. Wir können die Strategie durch Parameteroptimierung und Multi-Indikator-Verifizierung stärken, was es zu einem effektiven Werkzeug zur Lokalisierung von Marktumkehrungen macht.


/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Divergence and Hidden Divergence correlating with the Money Flow Index

strategy("Vix FIX / StochRSI Strategy", pyramiding=9, initial_capital=10000, default_qty_type=strategy.percent_of_equity,overlay=false)

///////////// Stochastic Slow
Stochlength = input(14, minval=1, title="lookback length of Stochastic")
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
smoothK = input(3, title="smoothing of Stochastic %K ")
smoothD = input(3, title="moving average of Stochastic %K")
k = sma(stoch(close, high, low, Stochlength), smoothK)
d = sma(k, smoothD)

 
///////////// RSI 
RSIlength = input( 14, minval=1 , title="lookback length of RSI")
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)

///////////// Double strategy: RSI strategy + Stochastic strategy

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%")
new = input(false, title="-------Text Plots Below Use Original Criteria-------" )
sbc = input(false, title="Show Text Plot if WVF WAS True and IS Now False")
sbcc = input(false, title="Show Text Plot if WVF IS True")
new2 = input(false, title="-------Text Plots Below Use FILTERED Criteria-------" )
sbcFilt = input(true, title="Show Text Plot For Filtered Entry")
sbcAggr = input(true, title="Show Text Plot For AGGRESSIVE Filtered Entry")
ltLB = input(40, minval=25, maxval=99, title="Long-Term Look Back Current Bar Has To Close Below This Value OR Medium Term--Default=40")
mtLB = input(14, minval=10, maxval=20, title="Medium-Term Look Back Current Bar Has To Close Below This Value OR Long Term--Default=14")
str = input(3, minval=1, maxval=9, title="Entry Price Action Strength--Close > X Bars Back---Default=3")
//Alerts Instructions and Options Below...Inputs Tab
new4 = input(false, title="-------------------------Turn On/Off ALERTS Below---------------------" )
new5 = input(false, title="----To Activate Alerts You HAVE To Check The Boxes Below For Any Alert Criteria You Want----")
sa1 = input(false, title="Show Alert WVF = True?")
sa2 = input(false, title="Show Alert WVF Was True Now False?")
sa3 = input(false, title="Show Alert WVF Filtered?")
sa4 = input(false, title="Show Alert WVF AGGRESSIVE Filter?")

//Williams Vix Fix Formula
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

//Filtered Bar Criteria
upRange = low > low[1] and close > high[1]
upRange_Aggr = close > close[1] and close > open[1]
//Filtered Criteria
filtered = ((wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh))
filtered_Aggr = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and not (wvf < upperBand and wvf < rangeHigh)

//Alerts Criteria
alert1 = wvf >= upperBand or wvf >= rangeHigh ? 1 : 0
alert2 = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh) ? 1 : 0
alert3 = upRange and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered ? 1 : 0
alert4 = upRange_Aggr and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered_Aggr ? 1 : 0

//Coloring Criteria of Williams Vix Fix
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray

isOverBought = (crossover(k,d) and k > StochOverBought) ? 1 : 0
isOverBoughtv2 = k > StochOverBought ? 1 : 0
filteredAlert = alert3 ? 1 : 0
aggressiveAlert = alert4 ? 1 : 0

plot(isOverBought, "Overbought / Crossover", style=line, color=red) 
plot(filteredAlert, "Filtered Alert", style=line, color=fuchsia) 
plot(aggressiveAlert, "Aggressive Alert", style=line, color=orange)

if (filteredAlert or aggressiveAlert)
    strategy.entry("Long", strategy.long)

if (isOverBought)
    strategy.close("Long")

    


Mehr