이 전략은 이동 평균 (EMA), 방향 움직임 지수 (DMI), 억제 가격 오시레이터 (DPO), 상대 강도 지수 (RSI), 평균 진정한 범위 (ATR) 를 결합한 여러 기술적 지표에 기반한 트렌드 다음 시스템입니다. 핵심 개념은 트렌드 방향, 추진력 및 변동성 등 여러 시장 특성을 확인한 후에 거래 성공률을 향상시키는 것입니다.
이 전략은 트리플 익스포넌셜 이동 평균 (Triple Exponential Moving Average, EMA) 시스템을 핵심 트렌드 식별 메커니즘으로 사용하고 여러 신호 확인을 위한 다른 기술적 지표와 결합합니다. 1. 빠른 EMA (10 일) 는 단기 가격 동력을 포착 합니다. 2. 중형 EMA (25 일) 는 중장기 트렌드 필터 역할을 합니다. 느린 EMA (50 일) 는 전체 트렌드 방향을 정의 합니다. 4. DMI (14 일) 는 트렌드 방향 강도를 확인 합니다. 5. DPO는 가격 동향에서 벗어나는 것을 확인 6. RSI (14-day) 는 동력과 과잉 구매/ 과잉 판매 조건을 측정합니다. 7. ATR (14일) 는 스톱 로스 및 수익 목표를 설정 합니다.
거래 신호 조건: - 긴: 빠른 EMA는 중간 EMA를 넘고 둘 다 느린 EMA를 넘고 ADX>25, RSI>50, DPO>0 - 짧은: 빠른 EMA는 중간 EMA 아래를 넘고 둘 다 느린 EMA 아래, ADX>25, RSI<50, DPO<0
위험 관리 조치: - 동적 ATR 기반 정지 시장 변동성에 적응 - 일정한 비율의 위험 관리 - 다중 표시자 교차 확인은 잘못된 신호를 줄입니다.
이 전략은 여러 기술적 지표의 조합을 통해 완전한 트렌드 다음 거래 시스템을 구축합니다. 주요 특징은 엄격한 신호 확인 및 합리적인 위험 통제이며, 매일 시간 프레임에서 중장기 트렌드를 추적하는 데 적합합니다. 신호에 약간의 지연이 있지만 전략은 엄격한 위험 통제 및 여러 신호 확인을 통해 강력한 전반적인 성능을 보여줍니다. 라이브 거래에 적용 할 때 특정 도구에 대한 시장 환경 선택과 매개 변수 최적화에 신중한 고려가해야합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Daily Strategy with Triple EMA, DMI, DPO, RSI, and ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters fastEmaLength = input.int(10, title="Fast EMA Length") mediumEmaLength = input.int(25, title="Medium EMA Length") slowEmaLength = input.int(50, title="Slow EMA Length") dmiLength = input.int(14, title="DMI Length") adxSmoothing = input.int(14, title="ADX Smoothing") dpoLength = input.int(14, title="DPO Length") rsiLength = input.int(14, title="RSI Length") atrLength = input.int(14, title="ATR Length") riskPercentage = input.float(2.0, title="Risk Percentage", step=0.1) atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss", step=0.1) tpMultiplier = input.float(2.0, title="ATR Multiplier for Take Profit", step=0.1) // Calculate EMAs fastEma = ta.ema(close, fastEmaLength) mediumEma = ta.ema(close, mediumEmaLength) slowEma = ta.ema(close, slowEmaLength) // Calculate other indicators [adx, diPlus, diMinus] = ta.dmi(dmiLength, adxSmoothing) dpo = close - ta.sma(close, dpoLength) rsi = ta.rsi(close, rsiLength) atr = ta.atr(atrLength) // Trading logic longCondition = ta.crossover(fastEma, mediumEma) and fastEma > slowEma and mediumEma > slowEma and adx > 25 and rsi > 50 and dpo > 0 shortCondition = ta.crossunder(fastEma, mediumEma) and fastEma < slowEma and mediumEma < slowEma and adx > 25 and rsi < 50 and dpo < 0 // Risk management riskAmount = (strategy.equity * riskPercentage) / 100 stopLoss = atr * atrMultiplier takeProfit = atr * tpMultiplier // Entry and exit logic if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Exit Long", "Buy", stop=close - stopLoss, limit=close + takeProfit) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Exit Short", "Sell", stop=close + stopLoss, limit=close - takeProfit) // Plot indicators plot(fastEma, color=color.green, title="Fast EMA") plot(mediumEma, color=color.orange, title="Medium EMA") plot(slowEma, color=color.red, title="Slow EMA") hline(25, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)