
이 전략은 ATR (Average True Rate) 에 기반한 하위 반전 거래 시스템으로, 동적 ATR 하위치를 계산하여 가격 과잉 연장 기회를 식별합니다. 이 전략은 ATR, EMA 및 SMA를 포함한 여러 기술 지표를 통합하여 완전한 거래 의사 결정 프레임워크를 형성합니다. 가격이 ATR 동적 하위치를 돌파하고 EMA 필터링 조건을 충족하면 시스템은 하위 기회를 찾고 가격의 평균으로 돌아가는 움직임을 잡습니다.
전략의 핵심 논리는 다음과 같은 핵심 단계에 기초합니다.
이것은 ATR 동적 하락과 EMA 트렌드 필터링을 통해 신뢰할 수 있는 거래 시스템을 구축 한 잘 설계 된 외환 전략입니다. 전략의 장점은 그것의 적응력이 강하고 위험 통제가 완벽하지만 동시에 시장 환경의 변화에 따른 위험을 주의해야한다는 것입니다. 지속적인 최적화와 위험 관리를 개선함으로써 이 전략은 다양한 시장 환경에서 안정적인 성능을 유지할 것으로 예상됩니다.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("[SHORT ONLY] ATR Sell the Rip Mean Reversion Strategy", overlay=true, initial_capital = 1000000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, process_orders_on_close = true, margin_long = 5, margin_short = 5, calc_on_every_tick = true, fill_orders_on_standard_ohlc = true)
//#region INPUTS SECTION
// ============================================
// ============================================
// Strategy Settings
// ============================================
atrPeriod = input.int(title="ATR Period", defval=20, minval=1, group="Strategy Settings")
atrMultInput = input.float(title='ATR Multiplier', defval=1.0, step=0.25, group="Strategy Settings")
smoothPeriodInput = input.int(title='Smoothing Period', defval=10, minval=1, group="Strategy Settings")
//#endregion
// ============================================
// EMA Filter Settings
// ============================================
useEmaFilter = input.bool(true, "Use EMA Filter", group="Trend Filter")
emaPeriodInput = input.int(200, "EMA Period", minval=1, group="Trend Filter")
//#region INDICATOR CALCULATIONS
// ============================================
// Calculate ATR Signal Trigger
// ============================================
atrValue = ta.atr(atrPeriod)
atrThreshold = close + atrValue * atrMultInput
signalTrigger = ta.sma(atrThreshold, smoothPeriodInput)
plot(signalTrigger, title="Smoothed ATR Trigger", color=color.white)
// ============================================
// Trend Filter
// ============================================
ma200 = ta.ema(close, emaPeriodInput)
plot(ma200, color=color.red, force_overlay=true)
//#region TRADING CONDITIONS
// ============================================
// Entry/Exit Logic
// ============================================
shortCondition = close>signalTrigger
exitCondition = close<low[1]
// Apply EMA Filter if enabled
if useEmaFilter
shortCondition := shortCondition and close < ma200
//#endregion
if shortCondition
strategy.entry("Short", strategy.short)
if exitCondition
strategy.close_all()