이 전략은 다양한 기술적 지표를 결합한 포괄적인 거래 시스템으로, 주로 이동 평균 (MA), 상대적 강도 지수 (RSI), 평균 방향 지수 (ADX) 를 활용하여 시장 추세와 동력을 식별합니다. 이 시스템은 동적으로 스톱 로스 및 영리 레벨을 설정하기 위해 평균 진정한 범위 (ATR) 를 사용합니다. 이 시스템은 다기 분석 방식을 사용하여 다양한 기간에 걸쳐 지표 크로스오버를 통해 거래 신호를 확인하여 거래 정확성과 효과적인 위험 통제를 보장합니다.
이 전략은 거래 신호를 확인하기 위해 세 계층 검증 메커니즘을 사용합니다. 트렌드 식별 계층: 트렌드 방향을 결정하기 위해 20 기간 및 50 기간 이동 평균의 교차를 사용합니다. 느린 MA 위에 빠른 MA가 교차하면 상승 추세를 나타냅니다. 2. 모멘텀 확인 계층: 가격 모멘텀을 확인하기 위해 14기 RSI를 사용합니다. 50 이상의 RSI는 상승 모멘텀을 나타내고 50 이하는 하락 모멘텀을 나타냅니다. 트렌드 강도 필터 계층: 트렌드 강도를 측정하기 위해 14기 ADX를 사용하며 ADX가 25보다 높을 때만 거래를 확인하며 충분한 트렌드 강도를 나타냅니다.
또한 이 전략은 ATR 기반의 동적 스톱-러스 및 수익 취득 시스템을 구현합니다. - Stop-loss는 2배 ATR로 설정됩니다. - 이윤은 ATR의 4배로 설정되어 있고, 1: 2의 위험/이익 비율을 유지합니다.
이 전략은 여러 기술적 지표의 시너지 효과를 통해 비교적 완전한 거래 시스템을 구축합니다. 주요 강점은 다층 검증 메커니즘과 동적 리스크 관리 시스템, 그러나 다른 시장 환경에서 적응성에주의를 기울여야합니다. 지속적인 최적화 및 개선으로이 전략은 실제 거래에서 안정적인 수익을 얻는 것을 약속합니다.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-15 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Daily Trading Strategy", overlay=true) // --- Indikator --- // Kombinasi MA untuk trend fastMA = ta.sma(close, 20) slowMA = ta.sma(close, 50) // RSI untuk momentum rsi = ta.rsi(close, 14) // --- Fungsi untuk menghitung ADX --- adx(length) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) trur = ta.rma(ta.tr, length) plus = fixnan(100 * ta.rma(plusDM, length) / trur) minus = fixnan(100 * ta.rma(minusDM, length) / trur) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), length) // ADX untuk kekuatan trend adxValue = adx(14) // --- Kondisi Entry Long --- longEntry = ta.crossover(fastMA, slowMA) and rsi > 50 and adxValue > 25 // --- Kondisi Entry Short --- shortEntry = ta.crossunder(fastMA, slowMA) and rsi < 50 and adxValue > 25 // --- Stop Loss dan Take Profit --- // Fungsi untuk menghitung stop loss dan take profit getSLTP(entryPrice, isLong) => atr = ta.atr(14) sl = isLong ? entryPrice - atr * 2 : entryPrice + atr * 2 tp = isLong ? entryPrice + atr * 4 : entryPrice - atr * 4 [sl, tp] // Hitung SL dan TP untuk posisi Long [longSL, longTP] = getSLTP(close, true) // Hitung SL dan TP untuk posisi Short [shortSL, shortTP] = getSLTP(close, false) // --- Eksekusi Order --- if (longEntry) strategy.entry("Long", strategy.long, stop=longSL, limit=longTP) if (shortEntry) strategy.entry("Short", strategy.short, stop=shortSL, limit=shortTP) // --- Plot Indikator --- // MA plot(fastMA, color=color.blue) plot(slowMA, color=color.red) // RSI plot(rsi, color=color.orange) hline(50, color=color.gray) // ADX plot(adxValue, color=color.purple) hline(25, color=color.gray) // --- Alert --- alertcondition(longEntry, title="Long Entry", message="Long Entry") alertcondition(shortEntry, title="Short Entry", message="Short Entry")