이 전략은 트렌드를 따르는 거래 시스템으로 MACD (Moving Average Convergence Divergence) 와 RSI (Relative Strength Index) 를 결합합니다. 5분 시간 프레임에서 작동하며, MACD 크로스오버와 RSI 과잉 구매/ 과잉 판매 수준을 분석하여 거래 신호를 생성합니다. 전략은 리스크 관리에 대한 비율 기반의 스톱 로스 및 영업 메커니즘을 통합합니다.
이 전략은 다음과 같은 핵심 논리에 기반합니다. 1. 가격 추세를 포착하기 위해 12-26-9 매개 변수와 MACD 지표를 사용합니다. 2. 14기간의 RSI를 사용하여 과반 구매/ 과반 판매 조건을 식별합니다. 3. MACD 라인이 신호 라인의 위를 넘어서고 RSI가 45보다 낮을 때 긴 신호를 생성합니다. 4. MACD 라인이 신호 라인 아래를 넘고 RSI가 55 이상이면 출구 신호를 유발합니다. 5. 위험 통제를 위해 1.2%의 스톱 로스를 설정하고 이윤을 확보하기 위해 2.4%의 수익을 취합니다. 6. 신호 품질을 향상시키기 위해 트렌드 필터로 10 기간 EMA를 사용합니다.
이 전략은 MACD와 RSI 통합을 통해 트렌드 추적 및 모멘텀 특성을 결합한 거래 시스템을 구축합니다. 포괄적인 리스크 제어 메커니즘과 명확한 거래 논리는 좋은 실용성을 제공합니다. 제안된 최적화 방향에 의해 전략은 추가 개선의 여지가 있습니다. 라이브 거래 전에 철저한 백테스팅을 수행하고 특정 시장 특성에 따라 매개 변수를 조정하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ //@version=5 strategy("MACD + RSI Basit Strateji", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // İndikatör parametreleri fastLength = input(12, "MACD Fast Length") slowLength = input(26, "MACD Slow Length") signalLength = input(9, "MACD Signal Length") rsiLength = input(14, "RSI Period") rsiOversold = input(45, "RSI Oversold Level") rsiOverbought = input(55, "RSI Overbought Level") // Stop Loss ve Take Profit ekledim stopLoss = input(1.2, "Stop Loss (%)") takeProfit = input(2.4, "Take Profit (%)") // MACD hesaplama [macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength) // RSI hesaplama rsiValue = ta.rsi(close, rsiLength) // EMA trend filtresi emaValue = ta.ema(close, 10) // Alım sinyali koşulları - sadece MACD ve RSI kullanalım longCondition = macdLine > signalLine and rsiValue < rsiOversold // Satım sinyali koşulları shortCondition = macdLine < signalLine and rsiValue > rsiOverbought // Pozisyon yönetimi - Stop Loss ve Take Profit ekledim if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("TP/SL", "Long", profit = close * takeProfit / 100, loss = close * stopLoss / 100) if (shortCondition) strategy.close("Long") // Grafik göstergeleri plotshape(longCondition, title="Alım", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.large, text="AL") plotshape(shortCondition, title="Satım", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.large, text="SAT") // İndikatörleri göster plot(rsiValue, "RSI", color=color.purple) hline(rsiOversold, "Oversold", color=color.gray) hline(rsiOverbought, "Overbought", color=color.gray)