이 전략은 변동성 정지 (VStop) 지표와 기하급수적 이동 평균 (EMA) 을 기반으로 한 트렌드 다음 거래 시스템이다. 스탠 와인스타인의 거래 원칙을 통합하여 트렌드 방향을 확인하기 위해 EMA를 사용하여 동적으로 조정된 스톱 손실을 통해 자본 관리를 최적화합니다. 이 조합은 투자자와 스윙 트레이더에게 트렌드를 포착하고 위험을 효과적으로 관리 할 수있는 프레임워크를 제공합니다.
핵심 논리는 두 가지 주요 기술 지표에 기반합니다. 1. 변동성 스톱 (VStop): 시장 변동성에 적응하는 ATR (평균 참 범위) 를 기반으로 한 동적 스톱 손실 지표. 가격이 상승 추세에 있을 때 스톱 라인은 가격과 함께 상승합니다. 추세가 역전되면 스톱 라인은 방향을 변경하고 재 계산합니다.
트레이드 신호 생성 논리: - 진입 조건: VStop 이상의 가격 (상승 추세) 및 EMA 이상의 종료 가격 - 출구 조건: 닫기 가격이 EMA 이하로 떨어지면 - 리스크 제어: 동적으로 조정된 VStop에 의해 제공되는 실시간 스톱 로스 포지션
이 전략은 변동성 스톱과 이동 평균 시스템을 결합하여 완전한 트렌드 다음 거래 프레임워크를 구축합니다. 주요 장점은 적응력과 리스크 관리 능력에 있습니다. 그러나 전략 성능에 대한 시장 환경의 영향에주의를 기울여야합니다. 지속적인 최적화 및 개선으로 전략은 다른 시장 환경에서 안정적인 성능을 유지할 수 있습니다. 거래자는 라이브 거래 전에 매개 변수 설정을 철저히 테스트하고 위험 관용에 따라 전략을 조정하는 것이 좋습니다.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("VStop + EMA Strategy", overlay=true) // VStop Parameters length = input.int(20, "VStop Length", minval=2) multiplier = input.float(2.0, "VStop Multiplier", minval=0.25, step=0.25) // EMA Parameters emaLength = input.int(30, "EMA Length", minval=1) // VStop Calculation volStop(src, atrlen, atrfactor) => if not na(src) var max = src var min = src var uptrend = true var float stop = na atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr) max := math.max(max, src) min := math.min(min, src) stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src) uptrend := src - stop >= 0.0 if uptrend != uptrend[1] and not barstate.isfirst max := src min := src stop := uptrend ? max - atrM : min + atrM [stop, uptrend] // Calculate VStop [vStop, isUptrend] = volStop(close, length, multiplier) // Plot VStop plot(vStop, "Volatility Stop", style=plot.style_cross, color=isUptrend ? color.teal : color.red) // Calculate 30 EMA emaValue = ta.ema(close, emaLength) plot(emaValue, "EMA", color=color.blue) // Entry and Exit Conditions longCondition = isUptrend and close > emaValue exitCondition = close <= emaValue // Strategy Execution if longCondition and not strategy.opentrades strategy.entry("Long", strategy.long) if exitCondition and strategy.opentrades strategy.close("Long") // Display Strategy Info bgcolor(isUptrend ? color.new(color.teal, 90) : color.new(color.red, 90), title="Trend Background")