Estrategia de fijación de Williams VIX

El autor:¿ Qué pasa?, Fecha: 2023-09-28 15:29:48
Las etiquetas:

Resumen general

Esta estrategia tiene como objetivo predecir la volatilidad del mercado de VIX mediante el uso de la fórmula Williams Vix Fix combinada con los indicadores RSI y RSI estocásticos.

Estrategia lógica

La estrategia se basa principalmente en la combinación de la fórmula Williams Vix Fix e indicadores RSI y RSI estocásticos.

En primer lugar, el valor VIX del período actual se calcula mediante la fórmula Williams Vix Fix mediante la medición de la relación entre el precio más alto y el precio más bajo, que representa la volatilidad del mercado y los niveles de pánico.

En segundo lugar, la estrategia adopta la combinación de los indicadores de RSI estocástico y RSI. El RSI se utiliza para determinar posiciones largas / cortas, mientras que el RSI de Stoch combina líneas K & D para identificar puntos de reversión del RSI. Las señales de venta se generan cuando el RSI de Stoch cae de la zona de sobrecompra.

Por último, la estrategia integra tanto tomando la señal de sobrecompra de Stoch RSI como base para la venta, y el valor VIX inferior a la banda inferior de Bollinger como base para la compra, con el fin de capturar los puntos de reversión del mercado.

Análisis de ventajas

La mayor ventaja de esta estrategia es que puede utilizar las fortalezas de dos indicadores diferentes en combinación.

La fórmula de Williams Vix Fix puede reflejar eficazmente las emociones de pánico del mercado. El ajuste dinámico de las bandas de Bollinger puede adaptarse a diferentes ciclos.

Los dos combinados pueden localizar con mayor precisión los puntos de reversión del mercado.

Análisis de riesgos

Esta estrategia también presenta algunos riesgos:

  1. La fórmula de Williams Vix Fix no puede reflejar plenamente las emociones de pánico del mercado.

  2. Las señales de reversión del RSI de Stoch también pueden ser erróneas y deben verificarse con otros indicadores.

  3. La estrategia es relativamente conservadora y puede perder oportunidades si no se puede seguir a tiempo los mercados en rápido movimiento.

  4. La estrategia puede tener mayores reducciones, lo que requiere un tamaño de posición cuidadoso.

Debemos establecer parámetros razonables, verificar con otros indicadores y controlar los tamaños de las posiciones para mitigar los riesgos al utilizar esta estrategia.

Direcciones de optimización

Algunas maneras de optimizar esta estrategia:

  1. Optimizar los parámetros de la fórmula de Williams Vix para reflejar con mayor precisión los niveles de pánico del mercado.

  2. Optimizar los parámetros del RSI de Stoch para encontrar mejores combinaciones de períodos de K & D para una mayor precisión de inversión.

  3. Añadir mecanismos de dimensionamiento de la posición como el stop loss/take profit o el ajuste dinámico de la posición basado en la relación drawdown/profit.

  4. Incorporar otros indicadores como MACD, KD para realizar la verificación de múltiples indicadores y reducir las señales falsas.

  5. Agregar algoritmos de aprendizaje automático, usar big data para entrenar modelos y optimizar parámetros automáticamente, mejorando la estabilidad.

A través de las optimizaciones anteriores, el rendimiento y la estabilidad de la estrategia pueden mejorarse significativamente.

Conclusión

La estrategia Williams Vix Fix captura el pánico del mercado y las transiciones de estabilidad, y utiliza el Stoch RSI para determinar puntos de entrada específicos, ubicando efectivamente los fondos del mercado. Su ventaja radica en la combinación de indicadores, pero también hay ciertos riesgos. Podemos fortalecer la estrategia mediante la optimización de parámetros y la verificación de múltiples indicadores, lo que la convierte en una herramienta efectiva para localizar las reversiones del mercado.


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

    


Más.