VixFix 동적 변동성 거래 시스템: 다중 지표 융합 및 적응형 트레일링 스톱 로스 최적화 전략

WVF RSI HMA ATR EMA
생성 날짜: 2025-07-08 14:49:35 마지막으로 수정됨: 2025-07-08 14:49:35
복사: 1 클릭수: 266
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

VixFix 동적 변동성 거래 시스템: 다중 지표 융합 및 적응형 트레일링 스톱 로스 최적화 전략 VixFix 동적 변동성 거래 시스템: 다중 지표 융합 및 적응형 트레일링 스톱 로스 최적화 전략

개요

비크 픽스 (VixFix) 다이내믹 파동 거래 시스템은 시장의 변동성 모니터링, 트렌드 확인 및 동력 필터링을 결합한 정량화 거래 전략이다. 이 전략의 핵심은 시장의 변동성 돌풍을 식별하는 윌리엄스 비크 픽스 (WVF) 지표를 사용하며, HMA200 (Hill 200 주기 이동 평균) 과 결합하여 트렌드 확인을 수행하며, RSI (대비적으로 강한 약 지표) 를 통해 높은 확률의 거래 신호를 필터링한다.

전략 원칙

이 전략의 작동 메커니즘은 다음과 같은 네 가지 핵심 요소의 연동에 기반합니다.

  1. Williams Vix Fix (WVF)전략의 핵심 트리거로서, WVF는 현재 가격과 지난 22주기 최고 가격의 비율 차이를 계산하여 시장의 변동성 돌풍을 식별한다. WVF 값이 부린 대역을 넘어선 경우 또는 역사적 백분율보다 높을 때, 변동성 이상으로 간주되며, 일반적으로 시장의 공황이나 과매매를 나타냅니다.

  2. 헐 이동 평균 (HMA200): 주요 트렌드 필터로 사용되며, 가격과 HMA200의 위치 관계를 비교하여 시장의 트렌드 방향을 결정한다. 전략은 가격이 HMA200 위쪽에 있을 때만 더 많이 할 수 있으며, HMA 경사가 마이너스일 때 그 아래에 있고, 거래 방향이 주 트렌드와 일치하도록 공백을 한다.

  3. 상대적으로 약한 지표 (RSI): 전략에 동력을 확인하는 신호를 제공합니다. 다중 헤드 입장은 35 이상의 RSI 값이 필요하며, 공백 입장은 20 이하의 RSI 값이 필요하며, RSI가 21 주기의 지수 이동 평균선 아래에 있어야하며, 낮은 공백 RSI 값을 설정하면 높은 동력을 포착하는 데 도움이 됩니다.

  4. ATR 추적 차단 시스템: 가격이 특정 수익 수준에 도달했을 때 꼬리 손해 메커니즘을 활성화합니다. 다중 머리 위치에서 1.75x ATR의 꼬리 폭을 사용하며, 허드에서는 1.0x ATR을 사용하며, 과잉 손실을 방지하기 위해 딱딱한 중지 제한을 설정합니다.

입구 논리는: 다중을 할 때 WVF 돌풍을 동시에 충족시켜야 하고, RSI가 35 이상, 가격은 HMA200 상위이다. 공백을 할 때 WVF 돌풍을 충족시켜야 하고, RSI가 20 미만, 가격은 HMA200 이하이며 HMA 기울기는 마이너스이다, RSI는 그것의 EMA ((21) 보다 낮고, 가격은 EMA ((100) 보다 낮으며, 마지막 공백 신호로부터 최소 10 K선이다.

전략적 이점

  1. 다단계 필터링전략은 변동성 식별 (WVF), 트렌드 확인 (HMA200) 및 동력 검증 (RSI) 을 결합하여 트리플 필터링 시스템을 구축하여 거래 신호의 신뢰성을 크게 향상시키고 가짜 브레이크 및 잘못된 신호를 줄입니다.

  2. 시장의 적응성 차이: 전략은 오이즈와 오피스 방향에 대해 각각 다른 파라미터를 설정하여 시장의 상승 편향성을 인정하고 적응합니다. 공상 거래는 더 엄격한 입시 조건과 더 느슨한 중지 손실 설정을 사용하여 하향의 급격한 특성에 대응합니다.

  3. 지능형 위험 관리: ATR 기반의 동적 후속 손실 시스템은 시장의 변동성에 따라 적응할 수 있으며, 이미 이윤을 보호하면서 가격에 충분한 호흡 공간을 제공하며, 정상적인 시장 변동에 의해 유리한 위치를 씻어내지 않습니다.

  4. 파동 포착 능력Williams Vix Fix 지표는 시장의 공포와 과매매 상황을 식별하는 데 탁월하며, 시장의 극단적 인 감정 기간 동안 전략이 높은 확률의 역전 기회를 잡을 수 있도록 해줍니다. 이는 시장의 급격한 변동 시 특히 가치가 있습니다.

  5. 과도한 거래 방지: 공허 신호 사이의 최소 K선 간격 ((10 K선) 을 설정함으로써, 전략은 불안한 시장에서 과도한 신호를 발생하지 않도록 효과적으로 방지하고, 연속적인 손실의 위험을 줄이고 거래 비용을 절감합니다.

전략적 위험

  1. 트렌드 반전 후기 인식HMA200과 같은 장기기 이동 평균에 의존하는 것은 트렌드 전환점에서의 지연 반응을 초래할 수 있으며, 시장의 방향이 갑자기 바뀌면 전략이 최적의 입문 시기를 놓치거나 초기 손실을 입을 수 있습니다.

  2. 성공률에 대한 도전: 재검토 자료에 따르면 공허 거래의 승률은 다수 거래보다 현저히 낮다 (30.0% vs 49.6%), 평균 수익률이 높지만, 연속적으로 실패한 공허 거래는 계좌에 심리적, 재정적 압박을 줄 수 있다. 강한 상반기 시장에서 공허 거래를 신중하게 사용하거나 일시적으로 금지하는 것이 좋습니다.

  3. 매개변수 민감도: 전략은 여러 고정된 파라미터를 사용한다 (RSI 미지수, ATR 배수 등), 이 파라미터는 서로 다른 시장 환경에서 최적의 값이 변할 수 있다. 과도한 최적화는 전략이 샘플 외부 데이터에서 성능이 떨어질 수 있기 때문에, 파라미터의 유효성을 정기적으로 재확인하는 것이 좋습니다.

  4. 변동성 의존성전략의 핵심 촉발기는 시장의 변동성이 급격히 증가하는 것에 의존하며, 장기간 낮은 변동성 환경에서 거래 신호가 덜 발생하여 전체 수익에 영향을 미칠 수 있습니다. 낮은 변동성 기간에 대안 입시 논리를 추가하는 것이 고려 될 수 있습니다.

  5. 하드웨어 손상 위험: 고정 ATR 배수의 하드 스톱은 시장의 급격한 변동에 쉽게 접촉 할 수 있으며, 가격이 반전되기 전에 밀리도록 할 수 있습니다. 다른 기술 지표와 함께 스톱 레벨을 동적으로 조정하거나, 분기적 평형 포지션 전략을 적용하는 것이 고려 될 수 있습니다.

전략 최적화 방향

  1. 동적 변수는 스스로 적응합니다.: 전략은 시장의 변동성과 트렌드 강도에 따라 동적 파라미터 조정 메커니즘을 도입할 수 있습니다. 예를 들어, 높은 변동성 환경에서 RSI 마이너스 및 중지 거리를 자동으로 증가시키고, 낮은 변동성 환경에서 파라미터를 강화하여 전략의 환경 적응성을 향상시킵니다.

  2. 거래량과 시간 필터: 거래량 확인 및 시간 필터 조건을 추가할 수 있습니다. 예를 들어 거래량이 급증하거나 특정 시간 (시장 개장 시간, 주요 경제 데이터가 발표되기 전과 후) 에만 거래를 수행하여 신호 품질을 향상시킬 수 있습니다.

  3. 다중 시간 주기 확인: 더 높은 시간 주기의 트렌드 및 동력 확인을 도입하면 전략의 안정성을 크게 향상시킬 수 있습니다. 예를 들어, 일계 트렌드가 30 분 신호 방향과 일치하는 경우에만 입문하면 역전 거래 위험을 줄일 수 있습니다.

  4. 기계 학습 최적화: 기계 학습 알고리즘을 동적으로 적용하여 최적의 입수 변수 및 중단 수준을 예측하고, 전략 변수를 역사적 패턴과 현재 시장 상태에 따라 실시간으로 조정하여 전략의 적응성과 안정성을 향상시킬 수 있습니다.

  5. 감정 지표의 융합: 시장 정서 지표 (거래량 비율, 보이스/보이스 옵션 비율 등과 같은) 를 통합하면 WVF에 추가 확인이 제공되어 시장 전환점에 대한 예측 정확도를 높일 수 있습니다. 이러한 지표는 종종 시장 정서 변화를 미리 반영하여 WVF의 지연 특성을 보완하는 선도적 인 지표입니다.

요약하다

비크픽스 (VixFix) 다이내믹 파동 거래 시스템은 시장의 변동성 식별, 트렌드 확인, 동력 필리싱을 결합한 포괄적 거래 전략으로, 윌리엄스 비크픽스 (VixFix) 지표를 통해 시장의 변동성 급격한 기회를 포착하고 HMA200 및 RSI를 사용하여 방향 및 동력을 확인하며, ATR 기반의 적응형 추적 중지 장치와 함께 위험을 관리합니다. 이 전략은 다공간 방향에 대해 개별적으로 최적화된 매개 변수 설정을 수행하며, 특히 위상 거래의 필리싱 조건을 강화하여 암호화폐 시장의 상승 편향성에 대응합니다.

이 전략의 가장 큰 장점은 다단계 신호 필터링 시스템과 유연한 위험 관리 메커니즘으로, 높은 변동성 시장 환경에서 역전 기회를 포착하면서 효과적으로 위험을 통제할 수 있습니다. 주요 위험에는 트렌드 식별 지연, 상쇄 성공률 저하 및 변수 민감성 등의 문제가 포함됩니다.

전반적으로, 이 전략은 다양한 유형의 기술 지표와 정교한 위험 관리 메커니즘을 결합하여 완전한 거래 시스템을 구축하는 방법을 보여줍니다. 특히 변동성이 높은 시장 환경에 적합합니다. 실제 적용에서, 기본 사항과 거시 경제 관점을 결합하여 합리적인 자금 관리 규칙과 함께 전략의 실용적 가치를 더욱 향상시킬 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-07-08 00:00:00
end: 2025-07-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("CM_VixFix_RSI_HMA200_TrailStop_vFinal", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === INPUTS ===
hmaLen = input.int(200, title="HMA Length")
rsiLen = input.int(14, title="RSI Length")
rsiLongTrigger = input.int(35, title="RSI Long Trigger Level")
rsiShortTrigger = input.int(20, title="RSI Short Trigger Level")

atrLen = input.int(14, title="ATR Length")
atr = ta.atr(atrLen)

// === Long Trailing Parameters
trailTriggerL = input.float(2.5, title="Long Trail Trigger (xATR)")
trailOffsetL  = input.float(1.75, title="Long Trail Offset (xATR)")
hardStopL     = input.float(2.5, title="Long Hard Stop (xATR)")

// === Short Trailing Parameters
trailTriggerS = input.float(1.2, title="Short Trail Trigger (xATR)")
trailOffsetS  = input.float(1.0, title="Short Trail Offset (xATR)")
hardStopS     = input.float(3.0, title="Short Hard Stop (xATR)")
maxBarsShort  = input.int(10, title="Min Bars Between Short Signals")

// === VIX FIX Settings
pd = input.int(22, title="Lookback Period")
bbl = input.int(20, title="Bollinger Length")
mult = input.float(2.0, title="StdDev Multiplier")
lb = input.int(50, title="Percentile Lookback")
ph = input.float(0.97, title="Range High Percentile")

// === WVF VixFix
wvf = ((ta.highest(close, pd) - low) / ta.highest(close, pd)) * 100
rangeHigh = ta.percentile_nearest_rank(wvf, lb, ph)
upperBand = ta.sma(wvf, bbl) + ta.stdev(wvf, bbl) * mult
vixSpike = wvf >= upperBand or wvf >= rangeHigh

// === HMA & RSI & Filters
wma1 = ta.wma(close, hmaLen / 2)
wma2 = ta.wma(close, hmaLen)
diff = 2 * wma1 - wma2
hma = ta.wma(diff, math.round(math.sqrt(hmaLen)))
hmaSlope = hma - hma[5]
plot(hma, title="HMA", color=color.orange, linewidth=2)

rsi = ta.rsi(close, rsiLen)
rsiEMA = ta.ema(rsi, 21)
priceEMA = ta.ema(close, 100)

// === State Variables
var float entryL = na
var float peakL  = na
var bool  trailL = false

var float entryS = na
var float lowS   = na
var bool  trailS = false
var int   lastShortBar = na

// === LONG ENTRY ===
longCondition = vixSpike and rsi > rsiLongTrigger and close > hma

if (longCondition and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)
    entryL := close
    trailL := false
    peakL := close

if (strategy.position_size > 0)
    peakL := math.max(peakL, high)
    if not trailL and close >= entryL + trailTriggerL * atr
        trailL := true
    if not trailL and close <= entryL - hardStopL * atr
        strategy.close("Long", comment="HardStopL")
    if trailL and close <= peakL - trailOffsetL * atr
        strategy.close("Long", comment="TrailStopL")

// === SHORT ENTRY ===
shortBase = vixSpike and rsi < rsiShortTrigger and close < hma and hmaSlope < 0
shortFilter = rsi < rsiEMA and close < priceEMA
canShort = na(lastShortBar) or (bar_index - lastShortBar > maxBarsShort)
shortCondition = shortBase and shortFilter and canShort

if (shortCondition and strategy.position_size == 0)
    strategy.entry("Short", strategy.short)
    entryS := close
    trailS := false
    lowS := close
    lastShortBar := bar_index

if (strategy.position_size < 0)
    lowS := math.min(lowS, low)
    if not trailS and close <= entryS - trailTriggerS * atr
        trailS := true
    if not trailS and close >= entryS + hardStopS * atr
        strategy.close("Short", comment="HardStopS")
    if trailS and close >= lowS + trailOffsetS * atr
        strategy.close("Short", comment="TrailStopS")