리소스 로딩... 로딩...

가만급 변동성 동적 추적 전략이 적용되는 적응형 VWAP 대역

저자:차오장, 날짜: 2024-12-20 14:51:00
태그:VWAPGKV성병MAVWMA

img

전반적인 설명

이것은 볼륨 가중 평균 가격 (VWAP) 과 가르만 클래스 변동성 (GKV) 에 기반한 적응 거래 전략이다. 이 전략은 지능적인 시장 트렌드 추적을 달성하기 위해 변동성을 통해 VWAP의 표준 편차 대역을 동적으로 조정합니다. 가격이 상위 대역을 넘어서면 긴 포지션을 열고 하위 대역을 넘어서면 포지션을 닫습니다. 높은 변동성이 더 높은 브레이크업 임계로 이어지고 낮은 변동성이 더 낮은 임계로 이어집니다.

전략 원칙

이 전략의 핵심은 VWAP와 GKV 변동성을 결합한다. 먼저 VWAP를 가격 피보트로 계산하고, 그 다음 폐쇄 가격의 표준편차를 사용하여 밴드를 구축한다. 핵심은 변동성 계산에 GKV 공식을 사용하여 네 가지 가격 포인트 (오픈, 하이, 로우, 클로즈) 를 고려하고 있으며 전통적인 변동성 측정보다 더 정확하다. 변동성은 동적으로 밴드 폭을 조정한다. 변동성이 증가하면 밴드는 넓어지며, 브레이크업 임계치를 높인다. 변동성이 감소하면 밴드는 좁아지고, 브레이크업 임계치를 낮추고 있다. 이 적응 메커니즘은 잘못된 브레이크업을 효과적으로 피한다.

전략적 장점

  1. 더 신뢰할 수 있는 신호를 위해 부피 가격 관계와 변동성 특성을 결합합니다.
  2. 대역폭의 적응 조정으로 노이즈 간섭을 줄입니다.
  3. 보다 정확한 시장 미세 구조 포착을 위해 GKV 변동성을 사용합니다.
  4. 간단하고 명확한 계산 논리, 구현 및 유지 관리에 편리합니다.
  5. 다양한 시장 환경에 적합하며 강력한 보편성

전략 위험

  1. 다양한 시장에서 자주 거래 할 수 있으며 비용을 증가시킬 수 있습니다.
  2. VWAP 길이와 변동성 기간에 민감합니다.
  3. 급격한 트렌드 전환에 느리게 반응할 수 있습니다.
  4. 높은 품질 요구 사항과 실시간 시장 데이터를 요구합니다. 위험 관리 제안:
  • 합리적인 스톱 로스 레벨을 설정
  • 다른 시장에 대한 매개 변수를 최적화
  • 트렌드 확인 지표 추가
  • 제어 위치 크기

전략 최적화 방향

  1. 신호 신뢰성을 향상시키기 위해 여러 시간 프레임 분석을 도입
  2. 파업 유효성을 확인하기 위해 볼륨 분석 차원을 추가
  3. 변동성 계산 방법을 최적화, EWMA 도입을 고려
  4. 트렌드 강도 필터를 추가
  5. 동적 스톱 로스 메커니즘을 추가하는 것을 고려하십시오. 이러한 최적화는 전략 안정성과 수익 품질을 향상시킬 수 있습니다.

요약

이 전략은 혁신적인 VWAP 및 GKV 변동성 조합을 통해 동적인 시장 추적을 달성합니다. 적응성 성격은 다른 시장 환경에서 안정적인 성능을 가능하게합니다. 일부 잠재적 인 위험이 있지만 전략은 적절한 위험 통제와 지속적인 최적화로 좋은 응용 가능성을 보여줍니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Adaptive VWAP Bands with Garman Klass Volatility", overlay=true)

// Inputs
length = input.int(25, title="Volatility Length")
vwapLength = input.int(14, title="VWAP Length")
vol_multiplier = input.float(1,title="Volatility Multiplier")

// Function to calculate Garman-Klass Volatility
var float sum_gkv = na
if na(sum_gkv)
    sum_gkv := 0.0

sum_gkv := 0.0
for i = 0 to length - 1
    sum_gkv := sum_gkv + 0.5 * math.pow(math.log(high[i]/low[i]), 2) - (2*math.log(2)-1) * math.pow(math.log(close[i]/open[i]), 2)

gcv = math.sqrt(sum_gkv / length)

// VWAP calculation
vwap = ta.vwma(close, vwapLength)

// Standard deviation for VWAP bands
vwapStdDev = ta.stdev(close, vwapLength)

// Adaptive multiplier based on GCV
multiplier = (gcv / ta.sma(gcv, length)) * vol_multiplier

// Upper and lower bands
upperBand = vwap + (vwapStdDev * multiplier)
lowerBand = vwap - (vwapStdDev * multiplier)

// Plotting VWAP and bands
plot(vwap, title="VWAP", color=color.blue, linewidth=2)
plot(upperBand, title="Upper Band", color=color.green, linewidth=1)
plot(lowerBand, title="Lower Band", color=color.red, linewidth=1)

var barColor = color.black

// Strategy: Enter long above upper band, go to cash below lower band
if (close > upperBand)
    barColor := color.green
    strategy.entry("Long", strategy.long)
else if (close < lowerBand)
    barColor := color.fuchsia
    strategy.close("Long")

barcolor(barColor)


관련

더 많은