VWAP 브레이크오웃 추적 전략은 트렌드 방향을 식별하기 위해 VWAP 지표를 사용하는 트렌드 추적 전략이다. 최근 5 바의 폐쇄 가격을 기반으로 VWAP 전체에서 가격 브레이크오웃을 탐지합니다. 3 개의 연속 바가 같은 방향으로 VWAP 브레이크오웃을 할 때 3 차 바의 가장 높고 가장 낮은 가격이 기록됩니다. 가격이 기록된 가장 높고 가장 낮은 가격 수준을 넘어서면 거래 신호가 생성됩니다.
이 전략의 주요 장점은 초단기 동력 거래의 브레이크아웃 기회를 빠르게 잡는 것입니다. 그러나 너무 큰 포지션을 축적 할 위험이 있습니다. 포지션 사이징 매개 변수를 조정하여 최적화 할 수 있습니다.
이 전략에서 사용되는 핵심 지표는 VWAP입니다. VWAP는 볼륨 가중 평균 가격, 즉 볼륨 가중 평균 가격 라인을 의미합니다. 시장 합의 가격 수준을 반영합니다.
이 전략은 가장 최근의 5 바의 종료 가격과 VWAP 지표를 실시간으로 계산합니다. 또한 연속적인 VWAP 브레이크의 특정 유형을 확인하기 위해 일련의 논리적 변수를 정의합니다.
거래 신호는 가격 브레이크로 만들어진 새로운 최고/최저 가격에 기초하여 생성됩니다. 논리는 다음과 같습니다.
따라서 핵심 아이디어는 가격 파업의 방향을 파악하고 파업으로 인한 새로운 최고/최저 가격을 거래하는 것입니다.
기본 포지션 크기는 자본의 100%로 설정됩니다. 이것은 모든 거래에 대한 전체 포지션을 나타냅니다. 이 전략의 단기적 성격을 고려하면 포지션 크기는 위험을 제어하도록 줄일 수 있습니다.
출구 규칙은 VWAP 크로스 앤더/크로스 오버입니다. VWAP는 탈피 손실을 피하기 위해 후속 스톱 손실로 사용됩니다.
VWAP 브레이크오웃 추적 전략의 가장 큰 장점은 단기 가격 동력과 트렌드 다음 기회를 잡기 위한 빠른 반응입니다. 주요 장점은 다음과 같습니다.
이 전략은 특히 높은 주파수 단기 거래에 적합하며 수익을 빠르게 잠금 할 수 있습니다. 원유 및 금과 같은 휘발성 도구와 함께 가장 잘 수행됩니다.
이 전략은 효율적인 추적 능력을 가지고 있지만 여전히 고려해야 할 위험이 있습니다.
다음의 최적화는 이러한 위험을 완화하는 데 도움이 될 수 있습니다.
초단기 추적 전략으로서, 다음 영역에서 더 많은 최적화를 할 수 있습니다.
다중 지표 통합: 더 엄격한 필터 규칙을 설정하고 정확도를 향상시키기 위해 다른 변동성과 추진력 지표를 결합하십시오.
동적 위치 크기: 변화하는 시장 조건에 따라 위치 크기를 동적으로 조정합니다. 변동성이 급증할 때 감소하고 강한 추세에 증가합니다.
적응식 정지: ATR 및 다른 가격 행동 신호에 기반한 적응적 트레일링 스톱 메커니즘으로 고정된 VWAP 스톱을 업그레이드합니다.
위험 관리: 위험을 통제하기 위해 최대 보유 기간, 하루 당 이익/손실 제한, 유출 제한 등과 같은 더 많은 위험 측정 기준 제약을 설정하십시오.
기계 학습: 역사적인 무역 데이터를 수집하고 기계 학습 모델을 채택하여 더 높은 안정성을위한 최적의 전략 매개 변수를 찾습니다.
전체적으로, 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")