Вильямс VIX Фиксная стратегия

Автор:Чао ЧжанДата: 28 сентября 2023 года
Тэги:

Обзор

Эта стратегия направлена на прогнозирование волатильности рынка VIX с использованием формулы Williams Vix Fix в сочетании со стохастическими показателями RSI и RSI. Она фиксирует скрытые бычьи расхождения для определения дна рынка и точного определения точек перелома.

Логика стратегии

Стратегия в основном основана на комбинации формулы Williams Vix Fix и показателей Stochastic RSI & RSI.

Во-первых, значение VIX текущего периода вычисляется по формуле Williams Vix Fix путем измерения соотношения наивысшей цены к самой низкой цене, что представляет собой уровни волатильности рынка и паники. Здесь установлены верхние и нижние полосы Боллинджера, когда значение VIX выше верхней полосы, это указывает на повышенную колебание рынка и панику инвесторов; когда ниже нижней полосы, это представляет собой стабильный рынок.

Во-вторых, стратегия использует сочетание стохастических показателей RSI и RSI. RSI используется для определения длинных/коротких позиций, в то время как Stoch RSI объединяет линии K & D для определения точек перелома RSI. Сигналы продажи генерируются, когда Stoch RSI выходит из зоны перекупки.

Наконец, стратегия объединяет оба, используя сигнал перекупленности Stoch RSI в качестве основы для продажи, и стоимость VIX ниже нижней полосы Боллинджера в качестве основы для покупки, чтобы захватить точки перелома рынка.

Анализ преимуществ

Наибольшее преимущество этой стратегии заключается в том, что она может использовать сильные стороны двух различных индикаторов в сочетании.

Формула Williams Vix Fix может эффективно отражать панические эмоции на рынке. Динамическая корректировка полос Боллинджера может адаптироваться к различным циклам. Стохастический RSI определяет точки обратного движения RSI через перекресток линий K & D, избегая ложных сигналов.

Он генерирует сигналы продажи, когда индекс паники рынка выпускает сигналы, используя Stoch RSI для определения конкретных точек входа, чтобы избежать ошибочных записей.

Анализ рисков

В этой стратегии также есть некоторые риски:

  1. Формула Williams Vix Fix не может полностью отражать панические эмоции на рынке. Неправильные параметры полос Боллинджера могут генерировать неправильные сигналы.

  2. Сигналы реверсии Stoch RSI также могут быть неверными и должны быть проверены с помощью других индикаторов.

  3. Стратегия является относительно консервативной и может упустить возможности, если не сможет своевременно отслеживать быстро меняющиеся рынки.

  4. Стратегия может иметь большие выводы, что требует тщательного размещения позиций.

Нам нужно устанавливать параметры разумно, проверять с другими показателями и контролировать размеры позиций, чтобы смягчить риски при использовании этой стратегии.

Руководство по оптимизации

Некоторые способы оптимизации этой стратегии:

  1. Оптимизировать параметры формулы Уильямса Викса, чтобы более точно отразить уровни паники на рынке.

  2. Оптимизировать параметры Stoch RSI, чтобы найти лучшие комбинации периодов K & D для более высокой точности обратного движения.

  3. Добавьте механизмы размещения позиций, такие как стоп-лосс/прибыль или динамическая корректировка позиции на основе коэффициента вывода/прибыли.

  4. Включить другие индикаторы, такие как MACD, KD, чтобы реализовать многоиндикаторную проверку и уменьшить ложные сигналы.

  5. Добавьте алгоритмы машинного обучения, используйте большие данные для обучения моделей и автоматической оптимизации параметров, улучшая стабильность.

С помощью вышеуказанных оптимизаций можно значительно повысить эффективность и стабильность стратегии.

Заключение

Стратегия Williams Vix Fix фиксирует переходы паники и стабильности на рынке и использует Stoch RSI для определения конкретных точек входа, эффективно определяя дно рынка. Ее преимущество заключается в сочетании индикаторов, но есть также определенные риски. Мы можем усилить стратегию путем оптимизации параметров и многоиндикаторной проверки, что делает ее эффективным инструментом для определения переворотов на рынке.


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

    


Больше