
이 전략은 기술 지표에 기반한 일간 단선 거래 시스템으로, 주로 20주기 지수 이동 평균 ((EMA 20) 과 전형적인 가격 계산에 기반한 거래량 가중 평균 가격 ((VWAP)) 사이의 관계를 사용하여 거래 신호를 결정한다. 전략은 ATR ((진실 파도 평균) 과 무기 (신호 ) 의 크기를 통해 위험과 수익의 비율을 정확하게 계산하여 위험 제어와 수익을 최대화하는 균형을 이룬다. 이 전략은 특히 변동성이 높은 시장 환경에 적합하며, 단기 가격 경향의 전환점을 포착하여 수익을 얻는다.
이 전략의 핵심 원리는 두 개의 평행선 (EMA 20과 고정 VWAP) 과 가격의 상호작용에 기초하고 있다. 구체적으로:
입력 신호 생성 메커니즘:
전형적인 가격의 적용전략: VWAP를 계산하기 위해 전형적인 가격 ((높은 가격 + 낮은 가격 + 종결 가격) / 3을 사용한다. 이는 종결 가격을 사용하는 것보다 더 포괄적인 가격 정보를 제공한다.
VWAP의 일기결정: VWAP는 거래일 초에 재설정되어, 당일 가격과 거래량 관계를 반영하는 지표가 되어, 당일 거래자의 사용에 적합하다.
동적 위험 관리:
위험과 수익의 비율이 전략은 기본적으로 1:3의 리스크-비용 비율을 사용한다. 즉, 잠재적인 수익은 잠재적인 위험의 3배이다. 이는 전문 거래자의 위험 관리 기준에 부합한다.
통합 기술 지표의 장점 통합: EMA의 트렌드 추적 능력과 VWAP의 거래량 무게 우위를 결합하여 신호를 더욱 신뢰할 수 있게 한다.
시장의 변동성에 적응하는 역동적인 상쇄: ATR을 통해 스톱 포지션을 계산하여 스톱 포인트를 시장의 실제 변동 상황에 따라 자동으로 조정할 수 있도록 하며, 고정 스톱 포인트가 다양한 변동 환경에서 부적응하는 것을 방지한다.
체 크기에 따른 목표 설정신호 의 실제 크기를 사용하여 목표 가격을 결정하는 방법은 현재의 시장의 변동적 특성에 더 잘 적응할 수 있습니다. 큰 변동이 있을 때 더 먼 목표를 설정하고 작은 변동이 있을 때 더 가까운 목표를 설정합니다.
하루 동안의 VWAP 계산: 매 거래일마다 VWAP를 재계산하여, 현재 거래일에 대한 역사 데이터의 간섭을 피하고, 보다 명확한 당일 가격 참조를 제공합니다.
다중 인증 메커니즘: 평선 교차와 가격 교차의 조합 조건을 요구하여 잘못된 신호의 가능성을 줄이고 거래의 정확도를 높인다.
직관적인 시각화 효과전략: 전략은 거래 결정을 직관적으로 이해하고 실행할 수 있도록 구매 및 판매 신호, 중지 및 목표 가격 라인을 포함하는 명확한 그래픽 표시를 제공합니다.
수평선 뒤떨어진 위험: EMA는 단순 이동 평균보다 더 빠르게 반응하지만, 여전히 약간의 지연성이 존재하며, 빠르게 변화하는 시장에서 최적의 진입 지점을 놓치거나 지연 신호를 발생시킬 수 있습니다.
VWAP 계산은 거래량에 의존합니다.: 거래량이 비정상적일 경우, 예를 들어 대형 기관의 단일 대량의 거래는 VWAP의 편차를 유발할 수 있으며, 신호의 정확성에 영향을 미칠 수 있다.
거래 빈도 위험: 불안정한 시장에서, 평행선은 자주 교차할 수 있으며, 이는 과도한 거래와 거래 비용을 증가시킨다.
손해배상 트리거 위험: 시장은 단기적인 가격 가시가 발생할 수 있으며, 정지 손실을 유발한 후 다시 원래의 추세 방향으로 돌아가서 불필요한 손실을 초래할 수 있습니다.
목표 가격 설정의 한계개별 덩어리 크기를 기반으로 한 목표 설정은 모든 시장 조건에 적합하지 않을 수 있습니다. 특히 시장 구조가 변화 할 때 그렇습니다.
해결 방법:
변수 최적화:
시장 환경 필터 추가:
시간 필터:
정지 손실 최적화:
다중 시간 프레임 분석 통합:
이러한 최적화 방향의 구현은 전략의 안정성과 수익성을 크게 향상시킬 수 있지만, 과도한 최적화가 과잉 적합성에 이르지 않도록 주의해야 한다. 각 개선은 엄격한 피드백과 전향 테스트를 통해 그 효과를 검증해야 한다.
쌍평선 교차 전형적인 가격 고정 VWAP 일일 동적 중지 중지 손실량화 전략은 여러 가지 기술적 분석 도구를 결합한 통합 거래 시스템이다. 그것은 EMA 20과 전형적인 가격 계산의 VWAP 사이의 관계를 통해 잠재적인 거래 기회를 식별하고 ATR 및 크기에 기반한 동적 위험 관리 장치를 사용하여 위험을 제어하고 수익을 최적화한다.
전략의 주요 장점은 시장의 변동성에 적응할 수 있는 능력과 여러 기술 지표와 결합하여 제공되는 신호의 신뢰성이다. 그러나, 그것은 또한 평평선 낙후 및 과도한 거래와 같은 위험에 직면해 있으며, 추가적인 필터링 조건과 변수 최적화를 통해 완화해야 한다.
이 전략은 일일 거래자에게 체계화된 거래 프레임워크를 제공하며, 특히 합리적인 위험 통제를 유지하면서 단기 시장 기회를 잡으려는 거래자에게 적합합니다. 지속적인 피드백, 최적화 및 연습을 통해 거래자는 자신의 위험 수용 능력과 거래 목표에 따라 이 전략을 더 개선하여 개인화 된 안정적인 거래 시스템으로 만들 수 있습니다.
/*backtest
start: 2024-07-25 00:00:00
end: 2025-07-23 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("EMA 20 and Anchored VWAP with Typical Price", overlay=true)
// === INPUTS ===
emaLength = input.int(20, title="EMA Length")
atrMultiplier = input.float(2.0, title="Stop Loss Multiplier (x ATR)", minval=1)
riskRewardRatio = input.float(3.0, title="Risk/Reward Ratio", minval=1, step=0.1) // 1:3 Risk/Reward Ratio
// === CALCULATIONS ===
// EMA 20
ema20 = ta.ema(close, emaLength)
// === TYPICAL PRICE ===
typicalPrice = (high + low + close) / 3
// === VWAP CALCULATION (ANCHOR PERIOD = SESSION) ===
// Reset at the start of each session (new day)
var float cumPriceVol = na
var float cumVol = na
if (dayofweek != dayofweek[1]) // Reset at the start of each day
cumPriceVol := typicalPrice * volume
cumVol := volume
else
cumPriceVol := cumPriceVol + (typicalPrice * volume)
cumVol := cumVol + volume
vwap = cumPriceVol / cumVol // VWAP = cumulative price-volume / cumulative volume
// ATR Calculation
atr = ta.atr(14)
// === BUY CONDITIONS ===
// EMA 20 above VWAP and close crosses EMA 20 from below, OR EMA 20 crosses VWAP from below
buyCondition = (ema20 > vwap and ta.crossover(close, ema20)) or ta.crossover(ema20, vwap)
// === SELL CONDITIONS ===
// EMA 20 below VWAP and close crosses EMA 20 from above, OR EMA 20 crosses VWAP from above
sellCondition = (ema20 < vwap and ta.crossunder(close, ema20)) or ta.crossunder(ema20, vwap)
// === STOP LOSS and TARGET ===
// Buy Stop Loss and Target calculation (Weapon Candle is the signal candle)
buyStopLoss = close - atr * atrMultiplier
// Weapon Candle (signal candle) for Buy
weaponCandleSize = high - low
buyTarget = high + 2 * weaponCandleSize // Target = High of weapon candle + 2 * candle size
// Sell Stop Loss and Target calculation (Weapon Candle is the signal candle)
sellStopLoss = close + atr * atrMultiplier
// Weapon Candle (signal candle) for Sell
weaponCandleSizeSell = high - low
sellTarget = low - 2 * weaponCandleSizeSell // Target = Low of weapon candle - 2 * candle size
// === EXECUTE STRATEGY (Buy and Sell) ===
// Buy order entry
if (buyCondition)
strategy.entry("Buy", strategy.long, stop=buyStopLoss, limit=buyTarget)
// Sell order entry
if (sellCondition)
strategy.entry("Sell", strategy.short, stop=sellStopLoss, limit=sellTarget)
// === PLOTS ===
// Plot EMA 20
plot(ema20, color=color.blue, title="EMA 20", linewidth=2)
// Plot VWAP
plot(vwap, color=color.orange, title="Session Anchored VWAP", linewidth=2)
// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")
// === BACKGROUND COLORS ===
bgcolor(buyCondition ? color.new(color.green, 90) : na, title="Buy Background")
bgcolor(sellCondition ? color.new(color.red, 90) : na, title="Sell Background")