리소스 로딩... 로딩...

다단계 지표 중복 RSI 거래 전략

저자:차오장, 날짜: 2025-01-10 16:31:08
태그:RSIRMATPSLATR

 Multi-level Indicator Overlapping RSI Trading Strategy

전반적인 설명

이 전략은 상대적 강도 지수 (RSI) 를 기반으로 한 다단계 지표 중복 거래 시스템이다. 특정 거래 창 내에서 작동하여, 이 전략은 적당한 시장 움직임 중에 스케일 된 입시 접근 방식을 사용하는 동적 위치 조정 메커니즘과 결합하여 RSI의 과소매 및 과소매 신호를 통해 거래 기회를 식별합니다. 이 전략은 평균 입시 가격 목표를 기반으로 수익 취득을 구현합니다.

전략 원칙

이 전략은 다음과 같은 핵심 요소에 기반합니다. 1. RSI 계산은 종료 가격으로 표준 14 기간을 원본 데이터로 사용합니다. 2. 거래 창은 시장 특성에 따라 조정 가능한 2-4 시간 사이에 제어됩니다 3. RSI 를 기반으로 30 이하 (가량 판매) 와 70 이상 (가량 구매) 의 진입 신호 4. 위치 구축은 초기 위치와 동적 조정 수준을 포함 5. 가격 이 1 포인트 이상 불리하게 움직일 때 스케일링 메커니즘이 작동 6. 영업이익은 평균 진입 가격에서 1.5 포인트로 설정됩니다.

전략적 장점

  1. 다단계 신호 필터링: 거짓 신호를 효과적으로 줄이기 위해 RSI 기술 지표와 시간 창 이중 필터링을 결합합니다.
  2. 역동적 위치 관리: 확장된 진입 메커니즘을 통해 불리한 시장 움직임 중 평균 비용을 줄입니다.
  3. 합리적인 위험/이익 비율: 평균 입시 가격에 기반한 수익 수준은 전체 거래 기대를 보장합니다.
  4. 명확한 전략 논리: 잘 정의 된 모듈 책임은 후속 최적화 및 조정을 촉진합니다.
  5. 높은 적응력: 주요 매개 변수는 다른 시장 특성에 최적화 될 수 있습니다.

전략 위험

  1. 트렌드 시장 위험: 강한 트렌드 시장에서 빈번한 확장으로 인해 과도한 자본 사용에 직면 할 수 있습니다.
  2. 시간 창 제한: 특정 시간 창 제한은 다른 기간에서 좋은 기회를 놓칠 수 있습니다.
  3. 매개 변수 감수성: RSI 기간 설정, 입력 간격 전략 성과에 중대한 영향을 미칩니다.
  4. 자본 관리 위험: 과도한 집중을 피하기 위해 단일 입시 비율에 대한 합리적인 통제가 필요합니다.

전략 최적화 방향

  1. 트렌드 필터를 소개합니다: 진입 시기를 최적화하기 위해 이동 평균 또는 다른 트렌드 지표를 추가하는 것을 제안합니다.
  2. 동적 매개 변수 최적화: 시장 변동성에 따라 RSI 임계값과 진입 간격이 동적으로 조정될 수 있습니다.
  3. 스톱 로스 메커니즘 개선: 기존 수익을 더 잘 보호하기 위해 후속 스톱 로스 기능을 추가하는 것이 좋습니다.
  4. 시간 창을 최적화: 백테스팅 데이터 분석을 통해 더 나은 거래 기간을 식별 할 수 있습니다.
  5. 부피 지표 추가: 신호 신뢰성을 향상시키기 위해 부피 분석을 통합

요약

이 전략은 RSI 지표와 확장된 엔트리 메커니즘의 조합을 통해 비교적 완전한 거래 시스템을 형성합니다. 주요 장점은 다단계 신호 필터링 메커니즘과 유연한 포지션 관리 접근 방식에 있으며, 트렌드 시장 위험과 매개 변수 최적화 문제에주의를 기울여야합니다. 트렌드 필터 추가 및 스톱 로스 메커니즘 최적화와 같은 향상으로 전략의 전반적인 성능을 더욱 향상시킬 수 있습니다.


/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-08 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("TonyM RSI", overlay=true)

// Input Settings
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
startHour = input.int(2, "Start Hour", minval=0, maxval=23, group="Trading Window")
endHour = input.int(4, "End Hour", minval=0, maxval=23, group="Trading Window")

// RSI Calculation
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// Time Filter
inTradingWindow = (hour >= startHour and hour < endHour)

// Strategy Settings
buyLevel = 30
sellLevel = 70
scaleDistance = 1.0  // Distance in points to add to the position
takeProfitPoints = 1.5  // Profit target from average price
initialQty = 1  // Initial trade size
scalingQty = 1  // Additional trade size for scaling

// Trade Logic
if inTradingWindow
    // Entry Logic
    if rsi <= buyLevel and strategy.position_size == 0
        strategy.entry("Buy", strategy.long, qty=initialQty)
    if rsi >= sellLevel and strategy.position_size == 0
        strategy.entry("Sell", strategy.short, qty=initialQty)

    // Scaling Logic
    if strategy.position_size > 0 and close <= strategy.position_avg_price - scaleDistance
        strategy.entry("Scale Buy", strategy.long, qty=scalingQty)
    if strategy.position_size < 0 and close >= strategy.position_avg_price + scaleDistance
        strategy.entry("Scale Sell", strategy.short, qty=scalingQty)

    // Exit Logic (based on average price)
    if strategy.position_size > 0
        strategy.exit("Take Profit Long", "Buy", limit=strategy.position_avg_price + takeProfitPoints)
    if strategy.position_size < 0
        strategy.exit("Take Profit Short", "Sell", limit=strategy.position_avg_price - takeProfitPoints)

// Plot RSI
plot(rsi, "RSI", color=color.blue, linewidth=1)
rsiUpperBand = hline(70, "RSI Upper Band", color=color.red)
rsiLowerBand = hline(30, "RSI Lower Band", color=color.green)
fill(rsiUpperBand, rsiLowerBand, color=color.new(color.gray, 90))


관련

더 많은