다중 기간 거래량 가중 평균 가격 및 이동 평균 돌파 거래 전략

VWAP EMA ATR RR TP SL
생성 날짜: 2025-02-20 13:25:02 마지막으로 수정됨: 2025-02-20 13:25:02
복사: 2 클릭수: 451
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 기간 거래량 가중 평균 가격 및 이동 평균 돌파 거래 전략 다중 기간 거래량 가중 평균 가격 및 이동 평균 돌파 거래 전략

개요

이것은 거래량 중도 평균 가격 ((VWAP) 과 다중 주기 지수 이동 평균 ((EMA) 을 결합한 거래 전략이다. 이 전략은 주로 일일 거래에 사용되며, 특히 15분 시간 주기에는 적합하다. 이 전략은 가격과 VWAP 및 다른 주기 EMA 사이의 관계를 분석하여 거래량 정보를 합성하여 시장 추세와 거래 기회를 결정한다.

전략 원칙

이 전략은 10주기, 20주기, 200주기 EMA와 VWAP를 핵심 지표로 사용한다. 거래 신호의 발생은 다음과 같은 조건에 기초한다:

  • 다중 입점 조건: 가격은 VWAP, 200EMA, 10EMA 및 20EMA를 동시에 높여야 한다. 현재 K 라인 종료 가격은 오픈 가격보다 높다. VWAP는 200EMA 위에 있다. 10EMA는 20EMA 위에 있고, 20EMA는 VWAP 위에 있다.
  • 텅 빈 머리 입학 조건: 다 머리와 반대되는 조건 조합.
  • 스톱 손실 설정: 처음 10 K 선의 최저 점 ((다중 머리) 또는 최고 점 ((공백 머리) 을 사용하여 ATR 값을 더하거나 줄인다.
  • 이윤 목표: 1:2 및 1:3의 리스크-이익 비율을 사용하여 두 개의 목표 지점을 설정하십시오.

전략적 이점

  1. 다중 확인 메커니즘: 여러 기술 지표의 조합을 통해 거래 신호의 신뢰도를 높인다.
  2. 다이내믹 리스크 관리: ATR 기반의 다이내믹 스톱 로즈 설정으로 시장의 변동성에 적응할 수 있다.
  3. 명확한 수익 목표: 고정된 리스크 수익률을 적용하여 거래자가 위험을 통제할 수 있도록 한다.
  4. 트렌드 추적과 동력 결합: 다양한 주기 평균선과 결합하여 트렌드를 포착하면서도 단기 기회도 놓치지 않습니다.

전략적 위험

  1. 지연 위험: EMA와 VWAP는 지연 지표이며, 시장이 급격하게 변할 때 반응하지 않을 수 있습니다.
  2. 위기 시장 위험: 수평 정리 단계에서 너무 많은 가짜 브레이크 신호가 발생할 수 있습니다.
  3. 자금 관리 위험: 고정된 위험 수익 비율은 모든 시장 환경에 적합하지 않을 수 있습니다.
  4. 거래 비용의 영향: 자주 거래하면 거래 비용이 더 높을 수 있습니다.

전략 최적화 방향

  1. 변동율 필터를 도입한다: ATR 백분율 값을 추가하여 낮은 변동율 환경에서 거래를 피한다.
  2. 최적화 시간 필터: 시장의 특성에 따라 최적의 거래 시간을 설정할 수 있다.
  3. 동적으로 조정된 리스크 수익률: 시장의 변동성에 따라 동적으로 조정된 수익 목표
  4. 트랜지먼트 확인을 추가: 최소 트랜지먼트 스값을 설정하여 돌파의 신뢰성을 높일 수 있습니다.

요약하다

이 전략은 여러 기술 지표들을 결합하여 하나의 완전한 거래 시스템을 구축한다. 전략의 핵심 장점은 다수의 확증 메커니즘과 완벽한 위험 관리 시스템이다. 약간의 후발적 위험이 존재하지만, 제안된 최적화 방향을 통해 전략의 안정성과 수익성을 더욱 향상시킬 수 있다. 전략은 특히 일간 거래자의 사용에 적합하지만, 특정 시장 특성에 따라 파라미터를 최적화해야 한다.

전략 소스 코드
/*backtest
start: 2024-02-21 00:00:00
end: 2024-11-24 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("VWAP EMA Breakout", overlay=true)

// Define Indicators
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)
vwap = ta.vwap(close)
atr = ta.atr(14)

// Price Conditions (Long)
priceAboveVWAP200EMA = close > vwap and close > ema200 and close > ema10 and close > ema20
bullishCandle = close > open

// Additional Conditions for VWAP and EMA Relationships (Long)
vwapAbove200EMA = vwap > ema200
emaConditions = ema10 > ema20 and ema20 > vwap and vwap > ema200

// Entry Conditions (Long)
longCondition = priceAboveVWAP200EMA and bullishCandle and vwapAbove200EMA and emaConditions

// Stop-Loss & Take-Profit (Long)
swingLow = ta.lowest(low, 10)
stopLossLong = swingLow - atr
riskLong = close - stopLossLong
takeProfitLong2 = close + (riskLong * 2) // 1:2 RR
takeProfitLong3 = close + (riskLong * 3) // 1:3 RR

// Execute Long Trade
if longCondition
    strategy.entry("Long", strategy.long)
    strategy.exit("TP 1:2", from_entry="Long", limit=takeProfitLong2, stop=stopLossLong)
    strategy.exit("TP 1:3", from_entry="Long", limit=takeProfitLong3, stop=stopLossLong)

// Price Conditions (Short)
priceBelowVWAP200EMA = close < vwap and close < ema200 and close < ema10 and close < ema20
bearishCandle = close < open

// Additional Conditions for VWAP and EMA Relationships (Short)
vwapBelow200EMA = vwap < ema200
emaConditionsShort = ema10 < ema20 and ema20 < vwap and vwap < ema200

// Entry Conditions (Short)
shortCondition = priceBelowVWAP200EMA and bearishCandle and vwapBelow200EMA and emaConditionsShort

// Stop-Loss & Take-Profit (Short)
swingHigh = ta.highest(high, 10)
stopLossShort = swingHigh + atr
riskShort = stopLossShort - close
takeProfitShort2 = close - (riskShort * 2) // 1:2 RR
takeProfitShort3 = close - (riskShort * 3) // 1:3 RR

// Execute Short Trade
if shortCondition
    strategy.entry("Short", strategy.short)
    strategy.exit("TP 1:2", from_entry="Short", limit=takeProfitShort2, stop=stopLossShort)
    strategy.exit("TP 1:3", from_entry="Short", limit=takeProfitShort3, stop=stopLossShort)

// Plot Indicators
plot(ema10, color=color.red, title="10 EMA")
plot(ema20, color=color.green, title="20 EMA")
plot(ema200, color=color.purple, title="200 EMA")
plot(vwap, color=color.white, title="VWAP")