
이 전략은 양평선 시스템 ((50 및 100 주기 EMA) 과 RSI 동적 지표가 결합된 거래 시스템입니다. 전략은 평평선 교차와 RSI 오버 바이 영역을 식별하여 시장 추세와 진입 시기를 결정하며 동적 스톱로스를 사용하여 위험을 제어합니다. 이 전략은 주로 추세가 명백한 시장 환경에 적용되며 추세가 지속되는 것을 포착하여 수익을 얻습니다.
이 전략의 핵심 논리는 다음과 같은 핵심 요소들을 포함하고 있습니다.
이것은 고전적인 기술 분석 이론에 기반한 트렌드 추적 전략으로, 평행선 시스템과 RSI 지표의 결합된 사용으로 수익 기회와 위험 통제를 효과적으로 균형을 이룬다. 전략의 주요 장점은 논리적으로 명확하고, 위험은 통제 가능하지만, 실제 응용에서는 시장 상황에 따라 적절한 매개 변수 최적화와 전략 개선이 필요합니다. 중장기 트렌드 거래 기회를 찾는 투자자에게는 참고할 가치가 있는 기본 전략 프레임워크이다.
/*backtest
start: 2024-02-10 00:00:00
end: 2025-02-09 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("IME-Bands with RSI Strategy", overlay=true)
// === INPUTS ===
src = close
emaS_value = input.int(50, minval=1, title="EMA Small - Value") // 50 EMA
emaB_value = input.int(100, minval=1, title="EMA Big - Value") // 100 EMA
rsi_length = input.int(14, title="RSI Length")
rsi_source = input.source(close, title="RSI Source")
rsi_overbought = input.int(70, title="RSI Overbought Level")
rsi_oversold = input.int(30, title="RSI Oversold Level")
// === CALCULATIONS ===
// EMAs
emaS = ta.ema(close, emaS_value)
emaB = ta.ema(close, emaB_value)
// RSI
rsi = ta.rsi(rsi_source, rsi_length)
// IME-Band Cross Conditions
isGreenCrossover = emaS > emaB // Green band
isRedCrossover = emaS < emaB // Red band
// Track Green Cross Confirmation
var bool isGreenConfirmed = false
if (isGreenCrossover and not isGreenCrossover[1]) // First green crossover
isGreenConfirmed := true
if (not isGreenCrossover)
isGreenConfirmed := false
// Entry Condition: RSI above 70 on second green candle
entryCondition = isGreenConfirmed and rsi > rsi_overbought and isGreenCrossover
// Exit Condition: Red band confirmed
exitCondition = isRedCrossover
// === STRATEGY RULES ===
// Stop Loss: Lowest point of crossover
var float stopLoss = na
if (isGreenCrossover and not isGreenCrossover[1])
stopLoss := emaB // Set stop loss to EMA Big (crossover point)
// Entry and Exit Trades
if (entryCondition)
strategy.entry("Buy", strategy.long)
stopLoss := na // Reset stop loss after entry
if (exitCondition)
strategy.close("Buy")
// Stop Loss logic
if (strategy.position_size > 0 and not na(stopLoss))
strategy.exit("Stop Loss", from_entry="Buy", stop=stopLoss)
// Plotting
plot(emaS, color=color.green, title="EMA Small (50)", linewidth=1)
plot(emaB, color=color.red, title="EMA Big (100)", linewidth=1)
hline(rsi_overbought, "RSI Overbought", color=color.new(color.red, 70), linestyle=hline.style_dotted)
plot(rsi, color=color.blue, title="RSI")