VWAP 거래 전략

EMA VWAP
생성 날짜: 2024-04-29 14:20:39 마지막으로 수정됨: 2024-04-29 14:20:39
복사: 6 클릭수: 842
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

VWAP 거래 전략

개요

이 전략은 EMA, VWAP 및 거래량에 기반한 거래 전략이다. 주요 아이디어는 특정 거래 시간 내에 종결 가격이 VWAP와 EMA를 돌파하고 거래량이 전 K 선의 거래량보다 큰 경우 포지션 개시 신호를 발생시키는 것이다. 동시에 중지 손실과 정지 을 설정하고, 특정 시간 동안 포지션을 평정하는 조건이다.

전략 원칙

  1. EMA와 VWAP 지수를 계산한다.
  2. 거래시간이 정해졌는지 판단하기 위해
  3. 다중 상점 개시 조건: 폐쇄 가격은 VWAP와 EMA보다 크며, 거래량은 전 K선보다 크며, 폐쇄 가격은 개시 가격보다 크다.
  4. 공백점 포지션 개시 조건: 닫기 가격은 VWAP와 EMA보다 작고, 거래량은 전 K선보다 크며, 개시 가격은 닫기 가격보다 크다.
  5. 다중중 평점 조건: 종식 가격은 VWAP 또는 EMA를 넘어, 정지점 또는 정지점, 또는 지정된 출구 시간을 도달한다.
  6. 공평한 상위 포지션 조건: 종식 가격은 VWAP 또는 EMA를 돌파하고, 정지점 또는 중지 지점을 달성하거나, 지정된 출장 시간을 달성한다.

전략적 이점

  1. 가격 트렌드 (EMA), 시장 공정 가치 (VWAP) 및 거래량을 고려하면서 포지션 개설 조건이 더 엄격하여 전략의 승률을 높이는 데 도움이 됩니다.
  2. 리스크를 제어하고 수익을 잠금하기 위해 스톱로스 및 스톱을 설정합니다.
  3. 거래시간과 출퇴근시간을 제한하여 거래하지 않는 시간이나 밤새 지분을 보유하는 위험을 피합니다.

전략적 위험

  1. 이 전략은 불안정한 시장에서 잘 작동하지 않을 수 있는데, 빈번한 돌파와 철회로 인해 거래 비용과 슬라이드 포인트가 증가하는 여러 개 포지션 및 포지션이 발생할 수 있기 때문입니다.
  2. 정지점은 고정되어 있고, 시장이 급격하게 변동할 때, 조기적으로 트리거될 수 있어 전략이 큰 손실을 입게 된다.
  3. 이 전략은 실제 시장의 깊이와 위탁 상황을 고려하지 않고 실물 거래에서 슬라이드 포인트와 포지션 열 실패와 같은 문제를 직면 할 수 있습니다.

전략 최적화 방향

  1. 추세와 동력의 강도를 더 확인하기 위해 ATR, RSI와 같은 더 많은 필터 조건을 추가하는 것이 고려 될 수 있습니다.
  2. 스톱로스 및 스톱포인트 지점은 ATR 또는 퍼센티지 스톱로스를 따라 다양한 시장 변동에 적응할 수 있도록 동적으로 설정할 수 있습니다.
  3. 전략의 안정성과 수익성을 높이기 위해 EMA 길이, VWAP 출처, 손실 중지 지점 등과 같은 매개 변수를 최적화 할 수 있습니다.
  4. 포지션 관리를 추가하는 것을 고려할 수 있습니다. 예를 들어, 변동률이나 자본 비율에 따라 포지션 양을 조정하여 전반적인 위험을 제어할 수 있습니다.

요약하다

이 전략은 가격 추세, 시장의 공정 가치 및 거래량을 종합적으로 고려하여 특정 거래 시간 내에 거래합니다. 중지 손실을 설정하고 거래 시간을 제한하지만 실제 응용에서는 여전히 흔들림 시장 및 슬라이드 포인트와 같은 위험을 주의해야합니다. 향후에는 더 많은 필터링 조건, 최적화 매개 변수 및 포지션 관리와 같은 방법을 추가하여 전략의 안정성과 수익성을 향상시킬 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true)

// Inputs
emaLength = input.int(21, title="EMA Length")
vwapSource = input.source(defval=hlc3, title='VWAP Source')
stopLossPoints = input.float(100, title="Stop Loss (points)")
targetPoints = input.float(200, title="Target (points)")
session = input("0950-1430", title='Only take entry during')
exit = input(defval='1515-1525', title='Exit Trade')

tradein = not na(time(timeframe.period, session))
exit_time = not na(time(timeframe.period, exit))

// Calculate indicators
ema = ta.ema(close, emaLength)
vwapValue = ta.vwap(vwapSource)

// Entry Conditions
longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein
shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein

// Exit Conditions
longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time
shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time

// Plotting
plot(vwapValue, color=color.blue, title="VWAP")
plot(ema, color=color.green, title="EMA")

// Strategy
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if longExitCondition
    strategy.close('Long', immediately=true)

if shortExitCondition
    strategy.close("Short", immediately=true)