가우시안 채널과 확률적 RSI를 기반으로 한 양적 거래 전략 최적화 시스템

RSI EMA stdev SMA
생성 날짜: 2025-02-18 15:00:11 마지막으로 수정됨: 2025-02-18 15:00:11
복사: 3 클릭수: 460
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

가우시안 채널과 확률적 RSI를 기반으로 한 양적 거래 전략 최적화 시스템

개요

이 전략은 가우스 채널 (Gaussian Channel) 과 무작위 RSI 지표 (Stochastic RSI) 를 기반으로 한 정량 거래 시스템이다. 이 전략은 기술 분석의 평균 회귀와 동력 원리를 결합하여, 가격이 채널 하향 궤도를 접촉하고 무작위 RSI 지표가 오버셀 신호를 표시할 때 상장하고, 가격이 채널 상향 궤도를 접촉하거나 무작위 RSI 지표가 오버 구매 신호를 표시할 때 평정 상장한다. 이 전략은 단지 다중 거래를 위해 사용되며, 공백 작업은 수행되지 않는다.

전략 원칙

이 전략의 핵심 논리는 다음과 같은 몇 가지 핵심 계산에 기반합니다.

  1. 고스 통로의 구성: EMA를 중철로 사용하여 표준 차이의 2배로 통로 폭으로 상하철을 계산한다.
  2. 무작위 RSI의 계산: 먼저 14 주기의 RSI를 계산하고, 그 다음 14 주기의 RSI의 최고값과 최저값을 계산하고, 마지막으로 현재 RSI가 이 범위의 상대적인 위치를 계산한다.
  3. 진입 신호: 가격이 통로 하향 궤도를 돌파하는 동시에, 무작위 RSI 지표는 20 이하에서 위로 돌파한다.
  4. 출구 신호: 가격이 채널을 뚫고 올라갑니다. 또는 임의의 RSI 지표가 80 이상에서 아래로 뚫립니다.

전략적 이점

  1. 이중 확인 메커니즘: 가격 채널과 동력 지표의 결합으로 가짜 신호의 영향을 줄인다.
  2. 리스크 관리가 완벽합니다. 거래 비용과 슬라이드 포인트 요소를 고려한 비율 포지션 관리가 사용됩니다.
  3. 평균 회귀 특성: 고스 통로는 가격의 변동 범위를 효과적으로 포착하여 거래의 정확성을 향상시킵니다.
  4. 동적 적응력: 전략 매개 변수는 시장 상황에 따라 최적화 조정할 수 있다.

전략적 위험

  1. 트렌드 시장 위험: 강한 트렌드 시장에서 조기 청산하여 큰 상황을 놓칠 수 있습니다.
  2. 변수 민감성: 채널 곱셈과 RSI 변수의 설정이 전략 성능에 큰 영향을 미칩니다.
  3. 시장 환경 의존성: 전략은 불안정한 시장에서 잘 작동하지만, 일방적인 시장에서는 좋지 않을 수 있다.
  4. 계산 지연 위험: 기술 지표의 계산에는 지연이 존재하여 거래 시점에 영향을 미칠 수 있다.

전략 최적화 방향

  1. 적응 파라미터를 도입: 시장의 변동에 따라 채널 곱수를 동적으로 조정할 수 있다.
  2. 시장 환경 인식: 트렌드 강도 지표를 추가하여 다른 시장 환경에서 다른 파라미터 설정을 사용합니다.
  3. 자금 관리를 최적화: 신호 강도에 따라 지분 비율을 동적으로 조정할 수 있다.
  4. 손해 방지 장치의 개량: 손해 방지 기능을 추가하여 수익을 더 잘 보호합니다.

요약하다

이 전략은 고스 통로와 무작위 RSI 지표를 결합하여 비교적 안정적인 거래 시스템을 구축한다. 전략의 장점은 두 가지 확인 메커니즘과 완벽한 위험 통제에 있다. 그러나 또한 다양한 시장 환경에 대한 적응성에 주의를 기울여야 한다. 적응 파라미터와 시장 환경 식별과 같은 최적화 방향을 도입함으로써 전략의 안정성과 수익성을 더욱 향상시킬 수 있다.

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

//@version=5
strategy("Gaussian Channel with Stochastic RSI", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0)

// Gaussian Channel Parameters
gc_length = input.int(20, "Gaussian Channel Length", minval=1)
gc_mult = input.float(2.0, "Gaussian Channel Multiplier", minval=0.1)

middle = ta.ema(close, gc_length)
stdev = ta.stdev(close, gc_length)
upper = middle + gc_mult * stdev
lower = middle - gc_mult * stdev

// Plot Channels
plot(middle, "Middle Line", color=color.blue)
plot(upper, "Upper Channel", color=color.red)
plot(lower, "Lower Channel", color=color.green)

// Stochastic RSI Parameters
rsi_length = input.int(14, "RSI Length", minval=1)
stoch_length = input.int(14, "Stochastic Length", minval=1)
smooth_k = input.int(3, "Smooth %K", minval=1)
oversold = input.int(20, "Oversold Level", minval=0, maxval=100)
overbought = input.int(80, "Overbought Level", minval=0, maxval=100)

// Calculate Stochastic RSI
rsi = ta.rsi(close, rsi_length)
lowest_rsi = ta.lowest(rsi, stoch_length)
highest_rsi = ta.highest(rsi, stoch_length)
stoch_rsi = highest_rsi != lowest_rsi ? (rsi - lowest_rsi) / (highest_rsi - lowest_rsi) * 100 : 0
k = ta.sma(stoch_rsi, smooth_k)

// Entry/Exit Conditions
enterLong = ta.crossover(close, lower) and ta.crossover(k, oversold)
exitLong = ta.crossover(close, upper) or ta.crossunder(k, overbought)

// Strategy Execution
if (time >= timestamp(2018, 01, 01, 0, 0) and time < timestamp(2069, 01, 01, 0, 0))
    if enterLong
        strategy.entry("Long", strategy.long)
    if exitLong
        strategy.close("Long")