RSI 및 Supertrend 추세 추종 적응형 변동성 전략

RSI ST ATR TP SL
생성 날짜: 2024-12-02 16:41:30 마지막으로 수정됨: 2024-12-02 16:41:30
복사: 0 클릭수: 542
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

RSI 및 Supertrend 추세 추종 적응형 변동성 전략

개요

이 전략은 RSI와 Supertrend 지표에 기반한 트렌드 추적 시스템으로 ATR의 변동율과 결합하여 위험 관리를 수행합니다. 전략은 트렌드 신호와 오버 바이 오버 셀 영역을 판단하여 출입 시기를 결정하고 시장의 변동성에 기반한 동적 스톱 스톱 손실을 사용하여 위험을 관리합니다. 이 전략은 15 분 시간 주기를 채택하고 15%의 자금 관리 규칙을 기본으로 사용합니다.

전략 원칙

이 전략은 다음과 같은 핵심 요소를 기반으로 거래합니다.

  1. 수퍼트렌드 지표 ((변수 2.76) 를 주요 트렌드 판단 도구로 사용하여 방향이 변경되면 거래 신호를 생성합니다.
  2. RSI 지표 ((주기는 12) 를 필터로 도입하여 과매도 지역에서 역동적인 거래를 방지합니다.
  3. ATR 지표 ((주기 12개) 를 사용하여 스톱로즈 및 스톱 포지션을 동적으로 계산하여 위험 관리 프레임워크를 제공합니다.
  4. 다중 입시 조건: RSI가 70보다 낮아 슈퍼트렌드가 지시를 구매
  5. 공허 입시 조건: 슈퍼트렌드 지표가 팔리고 RSI가 30 이상
  6. 현재 가격 ± 4배 ATR로 설정
  7. 현재 가격 ± 2 또는 2.237배 ATR으로 설정

전략적 이점

  1. 동력 필터링과 결합된 트렌드 추적은 거래 신호의 신뢰성을 향상시킵니다.
  2. 변동율에 기반한 동적 정지장치 설정, 적응력 강
  3. 백분율 자금 관리를 적용하여 리스크 을 효과적으로 제어합니다.
  4. 지표 매개 변수가 최적화되어 잘못된 신호의 영향을 줄입니다.
  5. 명확하고 이해하기 쉽고 실행하기 쉬운 전략 논리
  6. 변동성이 큰 시장 환경에 적합

전략적 위험

  1. 변동성이 큰 시장에서는 자주 잘못된 돌파 신호가 발생할 수 있습니다.
  2. RSI 필터링은 중요한 트렌드 시작점을 놓칠 수 있습니다.
  3. ATR 중지 위치가 비교적 넓기 때문에 더 큰 철수 가능성이 있다.
  4. 특정 시장 조건에서 고정 자금 관리 비율이 너무 위험 할 수 있습니다.
  5. 전략은 기술 지표에 의존하며 시장 구조의 변화에 따라 조정이 필요합니다.

전략 최적화 방향

  1. 더 많은 시장 환경 필터를 도입하는 것, 예를 들어 변동률 범위를 판단하는 것
  2. 자본 관리 시스템을 최적화하고 시장의 변동에 따라 입장을 조정합니다.
  3. 트렌드 강도 확인 지표를 늘리고, 진입 신호 품질을 향상시킵니다.
  4. 시간 필터링을 고려하여 부적절한 시간에 거래하는 것을 피하십시오.
  5. 다양한 시장 환경에서 최적의 변수 조합을 연구합니다.
  6. 더 유연한 손해 방지 장치에 대한 탐구

요약하다

이것은 구조적이고 논리적으로 명확한 트렌드 추적 전략이다. Supertrend, RSI, ATR의 세 지표를 유기적으로 결합하여 트렌드를 포착하는 동시에 위험 통제에 중점을 둡니다. 전략의 핵심 장점은 자율 적응성과 위험 관리 프레임워크에 있습니다. 그러나 실제 응용에서는 여전히 시장 환경에 따라 적절한 매개 변수를 조정하고 최적화해야합니다.

전략 소스 코드
/*backtest
start: 2023-12-02 00:00:00
end: 2024-11-28 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ETH Signal 15m", overlay=true)

// Backtest period
start_time = input(timestamp("2024-08-01 00:00"), title="Backtest Start Time")
end_time = input(timestamp("2054-01-01 00:00"), title="Backtest End Time")

atrPeriod = input(12, "ATR Length")
factor = input.float(2.76, "Factor", step=0.01)
rsiLength = input(12, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")

[_, direction] = ta.supertrend(factor, atrPeriod)
rsi = ta.rsi(close, rsiLength)

// Ensure current time is within the backtest period
in_date_range = true

// Long condition: Supertrend buy signal and RSI not overbought
if in_date_range and ta.change(direction) < 0 and rsi < rsiOverbought
    strategy.entry("Long", strategy.long)

// Short condition: Supertrend sell signal and RSI not oversold
if in_date_range and ta.change(direction) > 0 and rsi > rsiOversold
    strategy.entry("Short", strategy.short)

// Optional: Add stop loss and take profit using ATR
atr = ta.atr(atrPeriod)
strategy.exit("Exit Long", "Long", stop=close - 4 * atr, limit=close + 2 * atr)
strategy.exit("Exit Short", "Short", stop=close + 4 * atr, limit=close - 2.237 * atr)