윌리엄스 VIX와 DEMA를 기반으로 시간 프레임에 걸쳐 변동성 및 트렌드 추적 전략

저자:차오장, 날짜: 2024-01-23 15:02:30
태그:

img

전반적인 설명

이 전략은 먼저 윌리엄스 VIX 지표를 계산하여 특정 기간 동안 가장 높은 가격과 가장 낮은 가격 사이의 차이를 가장 높은 가격으로 나눈다. 그 다음 볼링거 밴드에서 표준편차의 아이디어를 결합하여 상위와 하위 밴드를 설정합니다. 동시에 특정 기간 동안 퍼센틸에 기반한 수익 범위를 설정합니다. 입구 부분에서 가격이 상위 밴드 아래로 넘어가 DEMA 지표보다 낮을 때, 그것은 길습니다. 가격이 하위 밴드 위에 넘어가 DEMA 지표보다 높을 때, 그것은 짧습니다.

전략 논리

이 전략은 주로 시장 변동성과 위험을 측정하기 위해 윌리엄스 VIX 지표를 사용하며 가격 추세를 판단하기 위해 DEMA 지표를 사용합니다.

첫째, 윌리엄스 VIX 지표의 계산 공식은 다음과 같습니다.

WVF = ((Highest(close, n) - Low) / (Highest(close, n))) * 100

이 지표는 특정 기간 동안 가장 높은 가격과 가장 낮은 가격 사이의 변동성을 반영합니다. 값이 높을수록 변동성이 높고 위험이 높습니다.

이 기반에서 전략은 볼링거 밴드 (Bollinger Bands) 의 아이디어를 사용합니다. 상단대는 중간 밴드 + n 곱하기 표준 편차로 설정되고, 하단대는 중간 밴드 - n 곱하기 표준 편차로 설정됩니다. 가격이 상단대에 접근하면 확장 변동성과 긴 기회를 나타냅니다. 가격이 하단대에 접근하면 수축 변동성과 짧은 기회를 나타냅니다.

또한, 전략은 또한 일정 기간 동안 퍼센틸 원칙에 기초한 수익을 취하는 범위를 설정합니다. 예를 들어, 90 퍼센틸은 통계 기간 동안 가장 최근의 90% 가격을 의미합니다. 가격이 이 퍼센틸을 초과하면 변동성이 상당히 커졌으며 수익을 취하는 것을 고려할 때입니다.

실제 거래 전략에서는 트렌드를 판단하기 위해 DEMA 지표를 포함합니다. 가격이 상단역 아래로 넘어가 DEMA보다 낮을 때만 길게 이동합니다. 가격이 하단역 위에 넘어가 DEMA보다 높을 때만 짧게 이동합니다.

이점 분석

이 전략은 변동성을 판단하는 윌리엄스 VIX 지표, 표준편차에 기반한 볼링거 밴드, 그리고 트렌드를 판단하는 DEMA 지표를 결합하여 두 가지 주요 시장 요인을 파악하는 데 매우 포괄적입니다. 위험과 트렌드.

특히, Williams VIX와 BB 상부 및 하부 대역이 결합되어 위험 및 변동성 판단을 할 수 있습니다. DEMA 지표는 가격 트렌드 방향을 결정할 수 있습니다. 이윤 범위 설정은 이윤을 잠금하고 너무 탐욕스러운 것을 피할 수 있습니다.

따라서 이 전략은 위험과 트렌드를 포착하는 데 매우 잘합니다. 그것은 더 나은 입시 시기를 선택하는 것뿐만 아니라 수익 범위에서 적당한 이익을 얻었을 때 반전 위험을 피할 수 있습니다. 안정적이고 보수적인 전략이됩니다.

위험 분석

이 전략의 가장 큰 위험은 변동성 지표와 트렌드 지표가 분리가 될 수 있다는 것입니다. 즉, 윌리엄스 VIX 지표가 변동성이 증가하고 가격이 BB 상부 또는 하부 대역에 가까워지면 DEMA 지표의 판단이 이에 모순됩니다. 예를 들어, 변동성은 긴 기회를 나타냅니다. 그러나 DEMA는 하향 추세를 나타냅니다. 이와 같은 상황에서 손실이 발생할 수 있습니다.

또한, 과도하게 보수적인 수익 범위 설정은 전략의 수익성을 손상시킬 수 있습니다. 퍼센틸 매개 변수가 너무 낮게 설정되면 수익을 확보하지 못하면 수익을 발생시키는 것이 어려울 것입니다.

최적화 방향

우리는 다른 시장 환경에 맞게 수익 범위 매개 변수를 조정하는 것을 고려할 수 있습니다. 구체적으로, 범위 제한 시장에서, 수익 범위를 확장하기 위해 퍼센틸 매개 변수를 적절히 올립니다. 그러나 명백한 트렌딩 시장에서, 시간에 이익을 얻기 위해 퍼센틸 매개 변수를 낮추십시오.

또한, 우리는 추세를 판단하기 위해 다른 지표를 추가하는 것을 고려할 수 있습니다. 원래 DEMA가 새로운 지표와 다르면, 잘못된 신호로 인한 손실을 피하기 위해 개시 지위를 중지하십시오.

결론

이 전략은 변동성 지표, 표준 오차 원칙, 트렌드 판단 및 수익 취득 아이디어를 포괄적으로 활용하여 시장 위험과 트렌드 변화를 매우 잘 다루고 있습니다. 안정적이고 보수적이며 장기 보유에 적합합니다. 매개 변수 최적화를 통해 전략의 안정성과 수익성이 더욱 향상 될 수 있습니다.


/*backtest
start: 2023-12-23 00:00:00
end: 2024-01-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy("VIX and DEMA", overlay=false)
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
multupper = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
multlow = input(2.0,minval=1,maxval=5,title="BB STD LOW")
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?")

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

sDevupper = multupper * stdev(wvf, bbl)
sDevlow = multlow *stdev(wvf,bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDevlow
upperBand = midLine + sDevupper

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

col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
price=close 


plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(wvf, title="Williams Vix Fix", style=histogram, linewidth = 4, color=col)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=line, linewidth = 3, color=aqua)

yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)


lengthema = input(50, minval=1)
src = input(close, title="Source")
e1 = ema(src, lengthema)
e2 = ema(e1, lengthema)
dema = 2 * e1 - e2
plot(dema, color=green)


if ((crossunder(wvf,upperBand) ) and (price<dema) ) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if   ((( (wvf<lowerBand) ) and  (price>dema) ) ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")
    
    
    
    

더 많은