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

VWAP 탈출 추적 전략

저자:차오장, 날짜: 2023-12-20 16:18:50
태그:

img

전반적인 설명

VWAP 브레이크오웃 추적 전략은 트렌드 방향을 식별하기 위해 VWAP 지표를 사용하는 트렌드 추적 전략이다. 최근 5 바의 폐쇄 가격을 기반으로 VWAP 전체에서 가격 브레이크오웃을 탐지합니다. 3 개의 연속 바가 같은 방향으로 VWAP 브레이크오웃을 할 때 3 차 바의 가장 높고 가장 낮은 가격이 기록됩니다. 가격이 기록된 가장 높고 가장 낮은 가격 수준을 넘어서면 거래 신호가 생성됩니다.

이 전략의 주요 장점은 초단기 동력 거래의 브레이크아웃 기회를 빠르게 잡는 것입니다. 그러나 너무 큰 포지션을 축적 할 위험이 있습니다. 포지션 사이징 매개 변수를 조정하여 최적화 할 수 있습니다.

전략 논리

지표 계산

이 전략에서 사용되는 핵심 지표는 VWAP입니다. VWAP는 볼륨 가중 평균 가격, 즉 볼륨 가중 평균 가격 라인을 의미합니다. 시장 합의 가격 수준을 반영합니다.

이 전략은 가장 최근의 5 바의 종료 가격과 VWAP 지표를 실시간으로 계산합니다. 또한 연속적인 VWAP 브레이크의 특정 유형을 확인하기 위해 일련의 논리적 변수를 정의합니다.

거래 신호

거래 신호는 가격 브레이크로 만들어진 새로운 최고/최저 가격에 기초하여 생성됩니다. 논리는 다음과 같습니다.

  1. 가장 최근 3 바의 종료 가격이 같은 방향으로 연속적으로 VWAP를 뚫고 있는지 확인합니다 (예를 들어 가격이 상승하거나 하락합니다)
  2. 만약 네라면, 3번째 바의 가장 높고 낮은 가격을 그 방향으로 기록합니다.
  3. 가격이 기록된 최고/최저 가격을 돌파할 때 거래에 들어가기

따라서 핵심 아이디어는 가격 파업의 방향을 파악하고 파업으로 인한 새로운 최고/최저 가격을 거래하는 것입니다.

위치 크기

기본 포지션 크기는 자본의 100%로 설정됩니다. 이것은 모든 거래에 대한 전체 포지션을 나타냅니다. 이 전략의 단기적 성격을 고려하면 포지션 크기는 위험을 제어하도록 줄일 수 있습니다.

출구 규칙은 VWAP 크로스 앤더/크로스 오버입니다. VWAP는 탈피 손실을 피하기 위해 후속 스톱 손실로 사용됩니다.

이점 분석

VWAP 브레이크오웃 추적 전략의 가장 큰 장점은 단기 가격 동력과 트렌드 다음 기회를 잡기 위한 빠른 반응입니다. 주요 장점은 다음과 같습니다.

  1. 가격 파업과 동력 변동에 대한 빠른 반응
  2. VWAP 지표는 합리적으로 신뢰할 수 있는 방향 편차를 제공합니다.
  3. 기본 풀 포지션 사이징은 최대 수익을 제공합니다.
  4. VWAP는 손실을 억제하기 위한 위험 관리 역할을 합니다.

이 전략은 특히 높은 주파수 단기 거래에 적합하며 수익을 빠르게 잠금 할 수 있습니다. 원유 및 금과 같은 휘발성 도구와 함께 가장 잘 수행됩니다.

위험 분석

이 전략은 효율적인 추적 능력을 가지고 있지만 여전히 고려해야 할 위험이 있습니다.

  1. 빈번한 추적으로 인해 과도한 위치를 축적합니다.
  2. 손실을 완전히 방지하기 위한 VWAP의 제한적 효과
  3. 빈번한 출입/출입으로 인한 높은 거래 비용
  4. 전체 포지션 크기는 기본적으로 높은 위험과 마감을 의미합니다.

다음의 최적화는 이러한 위험을 완화하는 데 도움이 될 수 있습니다.

  1. 손실에 대한 영향을 제한하기 위해 위치 크기 비율을 줄이십시오.
  2. 신호 정확성을 향상시키기 위해 더 많은 표시기로 필터 조건을 추가하십시오.
  3. 이상 중단을 방지하기 위해 휴식 손실 거리를 느리게
  4. 이윤을 확보하기 위해 PROTECT와 같은 이윤 취득 메커니즘을 추가합니다

최적화 방향

초단기 추적 전략으로서, 다음 영역에서 더 많은 최적화를 할 수 있습니다.

  1. 다중 지표 통합: 더 엄격한 필터 규칙을 설정하고 정확도를 향상시키기 위해 다른 변동성과 추진력 지표를 결합하십시오.

  2. 동적 위치 크기: 변화하는 시장 조건에 따라 위치 크기를 동적으로 조정합니다. 변동성이 급증할 때 감소하고 강한 추세에 증가합니다.

  3. 적응식 정지: ATR 및 다른 가격 행동 신호에 기반한 적응적 트레일링 스톱 메커니즘으로 고정된 VWAP 스톱을 업그레이드합니다.

  4. 위험 관리: 위험을 통제하기 위해 최대 보유 기간, 하루 당 이익/손실 제한, 유출 제한 등과 같은 더 많은 위험 측정 기준 제약을 설정하십시오.

  5. 기계 학습: 역사적인 무역 데이터를 수집하고 기계 학습 모델을 채택하여 더 높은 안정성을위한 최적의 전략 매개 변수를 찾습니다.

결론

전체적으로, VWAP 브레이크아웃 추적 전략은 매우 실용적인 고주파 거래 시스템이다. 단기 브레이크아웃 기회에 신속하게 반응하고 빠른 스칼핑을 위해 전체 포지션을 사용하여 가격을 추적합니다. 내장된 VWAP 트레일링 스톱은 또한 위험을 제한하는 데 도움이됩니다.

다중 지표 필터링, 동적 위치 사이즈링, 적응 스톱 및 머신 러닝과 같은 추가 최적화로, 이 전략은 더욱 더 나은 효율성과 안정성을 달성할 수 있다. 고주파 트레이더에게 큰 잠재력을 가지고 있다. 이 전략의 지속적인 향상은 실용적 적용 가능성 때문에 강력히 권장된다.


/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-19 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy(title="VWAP Push", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true)


//VWAP
vwap = ta.vwap(close)
plot(vwap, color=color.black, title="vwap")

//Last 5 Closes
closeBarPrevious5 = close[5]
closeBarPrevious4 = close[4]
closeBarPrevious3 = close[3]
closeBarPrevious2 = close[2]
closeBarPrevious1 = close[1]
closeBarCurrent = close


//is_1530 = (hour == 15) and (minute == 30)

is_push_up = (closeBarCurrent > closeBarPrevious1) and (closeBarPrevious1 > closeBarPrevious2) and (closeBarPrevious2 > closeBarPrevious3) and (closeBarPrevious4 < vwap) and (closeBarPrevious3 > vwap)  
is_push_down = (closeBarCurrent < closeBarPrevious1) and (closeBarPrevious1 < closeBarPrevious2) and (closeBarPrevious2 < closeBarPrevious3) and (closeBarPrevious4 > vwap) and (closeBarPrevious3 < vwap)  

var float hi = na
var float lo = na

hi := is_push_up ? high : hi
lo := is_push_down and (close < vwap) ? low : lo

plot(hi, "High", color.green, 1, plot.style_circles)
plot(lo, "Low", color.red, 1, plot.style_circles)

// Conditions

longCondition = ta.crossover(close,hi)
exitLong = ta.crossunder(close,vwap)

shortCondition = ta.crossunder(close,lo) and (close < vwap)
exitShort = ta.crossover(close,vwap)

// Entries Exits


if (longCondition)
    strategy.entry("Long", strategy.long)
if (exitLong)
    strategy.close("Long")
 

if (shortCondition)
    strategy.entry("Sell", strategy.short)
if (exitShort)
    strategy.close("Sell")




더 많은