UT Bot 동적 추세 추적 및 RSI 복합 전략

RSI EMA ATR TP SL Trend
생성 날짜: 2025-08-04 10:05:40 마지막으로 수정됨: 2025-08-04 10:05:40
복사: 0 클릭수: 218
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

UT Bot 동적 추세 추적 및 RSI 복합 전략 UT Bot 동적 추세 추적 및 RSI 복합 전략

개요

UT Bot의 동적 트렌드 추적과 RSI 복합 전략은 상대적으로 강한 지수 (RSI) 와 적응적 트렌드 추적 시스템을 결합한 양적 거래 전략이다. 이 전략의 핵심은 평균 실제 파도 (ATR) 를 사용하여 동적 지원과 저항 대역을 구축하는 것이며, RSI 오버 바이 오버 셀 신호를 캡처하는 시장 전환점과 함께 200 주기의 지수 이동 평균 (EMA200) 을 통합하여 트렌드 확인한다. 이 전략은 또한 ATR 배수를 기반으로 한 동적 중지 손실 메커니즘을 설계하여 시장의 변동성에 따라 자동으로 위험 관리 파라미터를 조정할 수 있습니다.

전략 원칙

이 전략의 핵심 원칙은 두 가지 주요 기술 지표 시스템: UT Bot 트렌드 추적 시스템과 RSI 흔들림 지표에 기반합니다.

UT Bot의 트렌드 추적 시스템은 ATR 지표를 통해 가격의 변동 범위를 계산하고 동적인 위아래 궤도를 구축합니다.

  • 상단역 (upperBand) = 현재 가격 + factor * ATR
  • 하위 궤도 (lowerBand) = 현재 가격 - factor * ATR

시스템은 현재 트렌드 방향을 확인하기 위해 추적선을 유지합니다.

  1. 가격의 트래킹 라인을 넘으면, 동향이 올라갑니다.
  2. 가격이 트래킹선 아래로 넘어가면, 추세는 아래로 향합니다.
  3. 동향 변화의 신호는 dir 변수의 전환에 의해 잡힌다.

이 전략은 RSI 지표와 함께 신호를 필터링합니다.

  • RSI <40 (오버소드 영역) 이 있고 추세가 하향으로 전환되면 구매 신호가 발생합니다.
  • RSI > 60 (오버 바이 지역) 과 추세가 상향으로 전환되면 판매 신호가 발생합니다.

또한, 전략은 EMA200을 장기적인 트렌드 레퍼런스 라인으로 통합하고, 백분율 기반의 스톱 스톱 손실 메커니즘을 설정합니다:

  • 입점 가격의 3%로 설정
  • 입점 가격의 1.5%로 설정된 스톱 손실

전략적 이점

  1. 역동적이고 적응력이 강합니다.: ATR 지표를 통해 거래 대역폭을 자동으로 조정하여 전략이 다양한 시장 변동 환경에 적응할 수 있도록 하며, 높은 변동과 낮은 변동 시장에서 효과적으로 작동할 수 있습니다.

  2. 추세와 흔들림이 전략은 트렌드 추적과 충격 거래의 두 가지 사고방식을 결합합니다. 트렌드가 명확할 때 트렌드를 따르고 시장이 과매매 할 때 역전 기회를 찾아 전략의 포괄성을 향상시킵니다.

  3. 정확한 입구 지점: RSI ((6040)) 과잉구매와 과잉매매 레벨 확장 설정을 통해 거래 신호의 주파수를 증가시키면서 신호의 질을 보장하고 입시 시기를 최적화한다.

  4. 개선된 위험 관리: 동적 스톱 스톱 손실 메커니즘이 통합되어 있으며, 스톱 스톱 비율은 ((3%) 스톱 스톱 손실 비율보다 크다 ((1.5%)), 긍정적인 기대 가치 거래 원칙에 부합하며, 장기적으로 안정적인 수익을 유도한다.

  5. 신호는 즉시 경고합니다.이 전략은 거래자가 시장 기회를 잡을 수 있도록 구매 및 판매 신호를 상기시키는 기능을 갖추고 있습니다.

  6. 구조가 명확하고 모듈화: 코드 구조가 명확하고, 각 기능 모듈이 구분되어, 후속 유지 및 최적화를 용이하게 한다.

전략적 위험

  1. 시장의 위조 신호: 명확한 트렌드가 없는 흔들리는 시장에서, 전략은 빈번한 교차 신호를 생성하여 연속적인 손실을 초래할 수 있다. 해결책은 ADX 지표 또는 트렌드 지속 시간 요구 사항과 같은 트렌드 강도 필터링 조건을 추가하는 것이다.

  2. 너무 작은 위험: 현재 설정된 1.5%의 정지는 일부 높은 변동 시장에서 너무 작아 시장 소음으로 촉발될 수 있다. 거래 품종 특성과 시간 주기 역학에 따라 정지 비율을 조정하는 것이 좋습니다.

  3. 매개변수 민감도: 전략 성능은 RSI 길이, 과매매 수준 및 ATR 요소와 같은 매개 변수에 민감하며, 다른 매개 변수 조합은 다른 시장 환경에서 큰 차이를 나타냅니다.

  4. 시장 상태 인식 부족이 전략은 다른 시장 상태를 명확하게 구분하지 않으며, 특정 시장 환경에서는 좋지 않을 수 있습니다.

  5. EMA200 기준이 부족하다EMA200 라인이 그려졌지만, 전략은 거래 조건으로 사용하지 않았고, 장기적인 트렌드 정보를 충분히 활용하지 않았습니다.

전략 최적화 방향

  1. 트렌드 강도 필터링: ADX 지표 또는 다른 트렌드 강도 지표를 도입하여 트렌드가 분명할 때만 거래하도록 하고, 흔들리는 시장에서 잘못된 신호를 피한다. 최적화 후 조건은 다음과 같다.
   趋势强度 = ta.adx(14) > 25
   买入条件 = 趋势强度 and trendUp and rsi < rsiUnder
  1. 역동적 상쇄 메커니즘 개선: 고정된 퍼센티지 스톱을 ATR 기반의 동적 스톱으로 변경하여 시장의 다양한 변동성에 적응합니다:
   stopLoss = atr * slFactor
   strategy.exit("TP/SL", from_entry="Buy", profit=tpPercent, loss=stopLoss/close*100)
  1. 수량 확인: 중요한 트렌드 전환은 종종 거래량에 큰 변화를 동반하며, 거래량 확인을 추가하면 신호 품질이 향상됩니다:
   volumeConfirmation = volume > ta.sma(volume, 20) * 1.5
   buy = trendUp and rsi < rsiUnder and volumeConfirmation
  1. 시장 상태 분류 거래: 변동률과 트렌드 지표에 따라 시장 상태를 분류하고, 다른 시장 상태에서 다른 거래 전략과 파라미터를 사용합니다:
   isVolatile = atr/close*100 > 历史平均水平
   isTrending = ta.adx(14) > 25
  1. 시간 필터링중요한 경제 자료가 발표되거나 시장이 유동적이지 않은 시기에 거래하는 것을 피하고, 예상치 못한 위험을 줄여라.
   validTradingHour = (hour >= 9 and hour <= 16)
   buy = validTradingHour and trendUp and rsi < rsiUnder

요약하다

UT Bot의 동적 트렌드 추적과 RSI 복합 전략은 동적 변동율 채널과 충격 지표를 결합한 통합 거래 시스템이다. 그것은 UT Bot의 적응 채널을 통해 트렌드 변화를 포착하고 RSI의 과매매 과매매 수준을 활용하여 진입 신호를 확인하며, 퍼센트 기반의 위험 관리 메커니즘을 통합한다. 이 전략의 가장 큰 장점은 동적 적응력과 다양한 기술 지표를 통합적으로 사용할 수있는 능력으로 다양한 시장 환경에서 거래 기회를 찾을 수 있습니다.

그러나, 이 전략은 흔들리는 시장에서 잘못된 신호를 생성할 수 있으며, 파라미터 설정에 민감하다. 미래 최적화 방향은 추세 강도 필터링을 증가시키고, 동적 위험 관리를 개선하고, 거래량 확인과 시장 상태 분류 거래를 도입하는 데 중점을 두어야 한다. 이러한 최적화를 통해, 전략은 기존의 우위를 유지한 기초에 안정성과 적응성을 더 높여서 더 포괄적이고 안정적인 양적 거래 시스템으로 될 전망이다.

전체적으로, 이것은 합리적이고 논리적으로 명확하게 설계된 수치화 전략이며, 기술적 분석 기반을 가진 거래자가 사용할 수 있습니다. 매개 변수의 적절한 조정과 최적화 방향을 실행하면 실제 거래에서 안정적인 수익을 얻을 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-08-04 00:00:00
end: 2025-08-02 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("✅ BACKTEST: UT Bot + RSI", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

rsiLen      = input.int(14, "RSI Length")
rsiOver     = input.int(60, "RSI Overbought Level")
rsiUnder    = input.int(40, "RSI Oversold Level")
atrLen      = input.int(10, "ATR Length")
factor      = input.float(1.0, "UT Bot Factor", step=0.1)
tpPercent   = input.float(3.0, "Take Profit %")
slPercent   = input.float(1.5, "Stop Loss %")

rsi = ta.rsi(close, rsiLen)
atr = ta.atr(atrLen)
ema200 = ta.ema(close, 200)
upperBand = close + factor * atr
lowerBand = close - factor * atr

var float trail = na
var int dir = 0

if na(trail)
    trail := lowerBand
    dir := 0

if close > trail
    trail := math.max(trail, lowerBand)
    dir := 1
else if close < trail
    trail := math.min(trail, upperBand)
    dir := -1
else
    trail := trail[1]
    dir := dir[1]

trendUp = dir == 1 and dir[1] == -1
trendDown = dir == -1 and dir[1] == 1

buy  = trendUp and rsi < rsiUnder
sell = trendDown and rsi > rsiOver

if (buy)
    strategy.entry("Buy", strategy.long)
    strategy.close("Sell")

if (sell)
    strategy.entry("Sell", strategy.short)
    strategy.close("Buy")

strategy.exit("TP/SL", from_entry="Buy",  profit=tpPercent, loss=slPercent)
strategy.exit("TP/SL", from_entry="Sell", profit=tpPercent, loss=slPercent)

// plotting
plot (ema200, "EMA 200, color=color.orange")

// === ALERT SIGNALS ===
alertcondition(buy, title="Buy Signal", message="BUY")
alertcondition(sell, title="Sell Signal", message="SELL")