이 전략은 여러 가지 기하급수적인 이동 평균 (EMA) 및 평균 진정한 범위 (ATR) 를 기반으로 한 트렌드-추천 거래 시스템입니다. 이 접근법은 동적 리스크 관리 및 수익 타겟팅을 위해 ATR과 함께 세 개의 EMA (20, 50, 100 기간) 을 사용합니다. 이 접근법은 동적 리스크 통제를 유지하면서 체계적인 거래를 보장합니다.
핵심 논리는 가격과 여러 EMA 사이의 상호 작용에 기반합니다.
이 전략은 여러 EMA와 ATR 기반의 동적 위험 통제를 결합하여 트렌드 따라와 스윙 거래 특징을 모두 갖춘 거래 시스템을 만듭니다. 이 전략의 장점은 체계적인 접근과 통제 가능한 위험에 있지만 실제 적용은 실제 조건에 따라 시장 적응력과 특정 최적화에주의를 기울여야합니다. 적절한 매개 변수 설정과 엄격한 위험 통제를 통해 전략은 대부분의 시장 환경에서 안정적인 거래 결과를 얻을 수 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("EMA Swing Strategy with ATR", overlay=true) // Inputs emaShort = input.int(20, "Short EMA") emaMid = input.int(50, "Mid EMA") emaLong = input.int(100, "Long EMA") rrRatio = input.float(1.5, "Risk-Reward Ratio") contracts = input.int(5, "Number of Contracts") // Calculations ema20 = ta.ema(close, emaShort) ema50 = ta.ema(close, emaMid) ema100 = ta.ema(close, emaLong) atr = ta.atr(14) // Conditions longCondition = ta.crossover(close, ema20) and close > ema50 shortCondition = ta.crossunder(close, ema20) and close < ema50 // Variables for trades var float entryPrice = na var float stopLoss = na var float takeProfit = na // Long Trades if (longCondition) entryPrice := close stopLoss := close - atr takeProfit := close + atr * rrRatio strategy.entry("Long", strategy.long, contracts) strategy.exit("Exit Long", from_entry="Long", stop=stopLoss, limit=takeProfit) // Short Trades if (shortCondition) entryPrice := close stopLoss := close + atr takeProfit := close - atr * rrRatio strategy.entry("Short", strategy.short, contracts) strategy.exit("Exit Short", from_entry="Short", stop=stopLoss, limit=takeProfit) // Plot EMAs plot(ema20, color=color.green, title="EMA 20") plot(ema50, color=color.red, title="EMA 50") plot(ema100, color=color.white, title="EMA 100") // Visualization for Entries plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Long Entry") plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Short Entry")