스토카스틱 오버솔드 및 오버쇼프트 레인지 RSI 전략은 시장 기회를 보다 유연하게 포착하기 위해 RSI의 오버쇼프트 및 오버쇼프트 임계치를 동적으로 조정합니다. 이 전략은 상대 강도 지수 (RSI) 를 주요 거래 지표로 사용하고 여러 무작위적인 오버쇼프트 및 오버쇼프트 매개 변수를 설정합니다. RSI 라인이 무작위 임계 범위를 넘으면 거래 신호를 생성합니다.
이 전략의 핵심 논리는 주식 가격이 과소매 또는 과소매인지 결정하기 위해 RSI 지표를 사용하는 것입니다. RSI는 현재 가격 트렌드를 판단하기 위해 기간 동안 폐쇄 가격과 폐쇄 가격의 평균 값을 비교합니다. 스토카스틱 RSI 전략은 고정 된 과소매 및 과소매 매개 변수를 사용하지 않습니다. 대신 여러 무작위 임계 범위를 설정하고 RSI 라인이 이러한 무작위 범위를 넘을 때 거래 신호를 생성합니다.
예를 들어, 전형적인 RSI 전략은 30을 임계로 사용하고, RSI가 30 이하로 떨어지면 긴 포지션을 취하고, RSI가 70 이상으로 상승하면 포지션을 닫을 수 있습니다. 그러나 이 스토카스틱 RSI 전략은 임계 범위로 20에서 30 사이의 여러 임의 값을 설정합니다. 이것은 더 많은 기회 지점에서 포지션을 개척하는 더 유연한 거래 전략을 가능하게합니다.
특히 이 전략의 주요 논리는 다음과 같습니다.
전통적인 RSI 전략과 비교하면 이 스토카스틱 오버셀드 및 오버구입 범위 RSI 전략은 다음과 같은 주요 장점을 가지고 있습니다.
무작위 임계 설정은 더 유연하며 더 많은 기회 지점에서 포지션을 열 수 있습니다. 고정 임계에는 두 가지 지점이 있습니다. 이 전략은 더 많은 거래 기회를 포착하기 위해 여러 무작위 범위를 설정합니다.
무작위 범위 설정은 시장의 순환성을 더 잘 반영 할 수 있습니다. 합리적인 임계 범위는 시장 주기에 따라 다를 수 있습니다. 무작위 설정은 다른 시장 조건에 적응 할 수 있습니다.
여러 무작위 범위의 조합은 비교적 완전한 거래 시스템을 형성합니다. 단일 거래 신호는 실패에 취약하지만이 전략에서 여러 범위로 형성된 여러 거래 논리는 전략을 더 안정적이고 신뢰할 수있게 만들 수 있습니다.
RSI 지표 자체는 높은 안정성을 가지고 있습니다. 트렌드 지표로서 RSI는 가격 추세를 명확하게 결정할 수 있습니다. 가격 자체와 비교하면 RSI 신호는 잘못된 긍정적 인 확률이 작습니다.
이 전략은 구현하기 쉽고 백테스트가 쉽습니다. 복잡한 공식 없이 기본적인 RSI 계산만을 포함하고, 구현과 테스트가 매우 쉽습니다. 이것은 또한 전략을 최적화하고 개선하는 것을 쉽습니다.
스토카스틱 RSI 전략은 몇 가지 장점을 가지고 있지만 주요 위험도 있습니다.
다른 모든 지표와 마찬가지로 RSI는 시장 움직임을 완벽하게 예측할 수 없습니다. RSI는 역사적 데이터로 계산되며 미래의 가격에 대한 최종 예측 힘이 없습니다.
여전히 무작위 범위 선택으로 곡선 부착의 위험이 있습니다. 우리는 전략이 역사적인 시장 움직임에 부착되는 것을 막아야하지만 미래의 시장 조건에 적응하지 못하는 것을 막아야합니다.
다중 거래 논리는 충돌 신호를 발산 할 수 있습니다. 예를 들어 긴 입점 신호에 따라 가까운 위치 신호가 필요합니다. 최적의 매개 변수를 찾기 위해 신중한 테스트가 필요합니다.
최적의 범위 조합은 신중하게 식별되어야 합니다. 범위의 밀도와 방향은 지속적인 조정과 최적화가 필요합니다.
RSI 전략은 중장기 트렌드 거래에 더 적합합니다. 단기적으로는 RSI 신호가 시간이 지연할 수 있습니다. 반전 위험을 줄이기 위해 거래 빈도를 제어해야합니다.
주요 리스크 관리 접근법은 안정성과 수익성을 보장하기 위해 오랜 기간과 다양한 시장 조건에 대한 엄격한 백테스팅을 채택하는 것입니다. 동시에, 포지션 사이징은 건전한 리스크 관리로 통제되어야합니다.
이 스토카스틱 RSI 전략의 주요 최적화 방향은 다음과 같습니다.
5일, 10일, 20일 등을 테스트하여 최적의 RSI 매개 변수 길이를 구하십시오.
최적의 범위 분포를 찾기 위해 더 많은 무작위 범위를 테스트하여 과도한 밀도를 피하면서 충분한 커버리지를 보장합니다.
이윤 취득 또는 손실 중단 메커니즘을 통합하여 단일 무역 위험을 통제하고 지속 가능한 수익성을 보장합니다.
더 포괄적인 다인자 모델을 구축하기 위해 다른 보조 지표를 통합하십시오. 예를 들어 신호 품질을 향상시키기 위해 필터로 이동 평균을 추가하십시오.
중장기 지분을 더 잘 맞추기 위해 거래 빈도를 최적화하고 줄이고, 안정성을 위태롭게 할 수있는 과도한 거래를 피합니다.
다른 제품별로 매개 변수를 최적화하여 더 많은 시장 환경에 전략을 조정합니다.
더 발전된 기계 학습 방법을 채택하여 주요 매개 변수를 실시간 시장 변화에 따라 업데이트 할 수 있도록 매개 변수를 동적으로 최적화합니다.
이러한 최적화 조치는 곡선 적응 위험을 줄이고 전략의 고유 알파를 밝히고 더 나은 라이브 거래 성과를 달성하는 데 도움이됩니다.
스토카스틱 오버셀드 및 오버보이트 범위 RSI 전략은 주요 RSI 지표의 구매 및 판매 범위를 유연하게 설정함으로써 전통적인 RSI 전략보다 더 풍부한 거래 논리를 실현합니다. 이 접근 방식은 지표 신호가 시장의 순환성과 단기 변동을 더 잘 파악 할 수 있습니다. 한편 무작위 범위 매개 변수 도입은 전략 최적화에 더 많은 공간을 제공하여 라이브 거래 성과를 지속적으로 향상시킵니다. 요약하면 라이브 테스트와 추가 연구를 가치가있는 사용하기 쉽고 강력한 수치 전략 패러다임입니다.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("imrich", shorttitle="imrich", overlay=true) RSIlength = input(6,title="RSI Period Length") RSIoverSold1 = 1 RSIoverSold2 = 2 RSIoverSold3 = 3 RSIoverSold4 = 4 RSIoverSold5 = 5 RSIoverSold6 = 6 RSIoverSold7 = 7 RSIoverSold8 = 8 RSIoverSold9 = 9 RSIoverSold10 = 10 RSIoverSold11 = 11 RSIoverSold12 = 12 RSIoverSold13 = 13 RSIoverSold14 = 14 RSIoverSold15 = 15 RSIoverSold16 = 16 RSIoverSold17 = 17 RSIoverSold18 = 18 RSIoverSold19 = 19 RSIoverSold20 = 20 RSIoverSold21 = 21 RSIoverSold22 = 22 RSIoverSold23 = 23 RSIoverSold24 = 24 RSIoverSold25 = 25 RSIoverSold26 = 26 RSIoverSold27 = 27 RSIoverSold28 = 28 RSIoverSold29 = 29 RSIoverSold30 = 30 RSIoverSold31 = 31 RSIoverSold32 = 32 RSIoverBought1 = 70 RSIoverBought2 = 72 RSIoverBought3 = 73 RSIoverBought4 = 74 RSIoverBought5 = 75 RSIoverBought6 = 76 RSIoverBought7 = 77 RSIoverBought8 = 78 RSIoverBought9 = 79 RSIoverBought10 = 80 RSIoverBought11 = 81 RSIoverBought12 = 82 RSIoverBought13 = 83 RSIoverBought14 = 84 RSIoverBought15 = 85 RSIoverBought16 = 86 RSIoverBought17 = 87 RSIoverBought18 = 88 RSIoverBought19 = 89 RSIoverBought20 = 90 RSIoverBought21 = 91 RSIoverBought22 = 92 RSIoverBought23 = 93 RSIoverBought24 = 94 RSIoverBought25 = 95 RSIoverBought26 = 96 RSIoverBought27 = 97 RSIoverBought28 = 98 RSIoverBought29 = 99 RSIoverBought0 = 100 price = close vrsi = rsi(price, RSIlength) long = (crossover(vrsi, RSIoverSold5) or crossover(vrsi, RSIoverSold10) or crossover(vrsi, RSIoverSold15) or crossover(vrsi, RSIoverSold20) or crossover(vrsi, RSIoverSold25) or crossover(vrsi, RSIoverSold30) or crossover(vrsi, RSIoverSold7) or crossover(vrsi, RSIoverSold8) or crossover(vrsi, RSIoverSold9)) close_long = (crossunder(vrsi, RSIoverBought1) or crossunder(vrsi, RSIoverBought5) or crossunder(vrsi, RSIoverBought10) or crossunder(vrsi, RSIoverBought15) or crossunder(vrsi, RSIoverBought20) or crossunder(vrsi, RSIoverBought25) or crossunder(vrsi, RSIoverBought29)) if (not na(vrsi)) if long strategy.entry("RSI_BB", strategy.long, comment="RSI_BB") else strategy.cancel(id="RSI_BB") if close_long strategy.close("RSI_BB")