스토카스틱 RSI 거래 전략

저자:차오장, 날짜: 2023-09-23 15:59:22
태그:

전반적인 설명

이 전략은 스토카스틱 RSI 지표, 즉 스토카스틱 오시레이터와 상대 강도 지표 (RSI) 를 결합한 스토카스틱 RSI 지표에 기반합니다. 스토카스틱 RSI 라인이 과소매 또는 과소매 수준을 넘을 때 거래 신호를 생성합니다.

전략 논리

  1. 닫기 가격, rsi1의 14주기 RSI를 계산합니다.

  2. rsi1에 기초한 스토카스틱 K와 D값을 계산합니다.

  3. K가 80을 넘으면 롱하고, K가 20을 넘으면 쇼트

  4. K가 80도와 20도 넘으면 포지션을 닫아요

  5. 반대 방향으로 거래할 수 있는 옵션

  6. 성능을 평가하기 위해 다양한 제품과 시간 프레임에 대한 백테스트

이점 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 스토카스틱 RSI는 RSI와 스토카스틱 오시레이터의 강점을 결합합니다.

  2. 과잉 매수/ 과잉 판매 지역은 가짜 파장을 필터링하는 데 도움이 됩니다.

  3. 트레이드 전환에 대한 유연성

  4. 간단하고 직관적인 거래 규칙

  5. 명확한 시각 신호는 수동 거래에 용이합니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 손해를 막지 않으면 큰 손실을 입을 수 있습니다.

  2. 트렌드 필터가 없는 오시레이터에서 잘못된 신호가 나타납니다.

  3. 포지션 사이즈 컨트롤은 없습니다.

  4. 매개 변수 최적화 부족으로 인해 과도한 적합성이 발생합니다.

  5. 거래 비용을 무시합니다.

  6. 역시험 데이터가 부족해서 곡선 부착이 발생합니다.

최적화 방향

이 전략은 다음과 같이 개선될 수 있습니다.

  1. 스톱 손실을 추가하고 스톱 레벨을 최적화합니다.

  2. 잘못된 신호를 줄이기 위해 파라미터 최적화

  3. 포지션 크기와 레버리지를 제어하는 것

  4. 트렌드에 반하는 거래를 피하기 위해 필터를 추가합니다.

  5. 거래 비용의 회계

  6. 더 긴 기간과 도구에 대한 검증

요약

스토카스틱 RSI 전략은 RSI와 스토카스틱 오시레이터의 강점을 결합하여 선이 주요 수준을 넘을 때 신호를 생성합니다. 사용하기 쉽음에도 불구하고 전략은 잘못된 신호의 위험을 감수합니다. 스톱, 매개 변수, 트렌드 필터에 대한 추가 개선은 더 견고한 단기 거래 시스템을 만드는 데 도움이 될 수 있습니다.


/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/11/2014
// This strategy used to calculate the Stochastic RSI
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Stochastic RSI", shorttitle="Stoch RSI Backtest")
TopBand = input(80, step=0.01)
LowBand = input(20, step=0.01)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
Source = close
lengthRSI = input(14, minval=1), lengthStoch = input(14, minval=1)
smoothK = input(3, minval=1), smoothD = input(3, minval=1)
rsi1 = rsi(Source, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
d_cross_80 = cross(d,TopBand) 
dc80 = d_cross_80 ? red : green 
pos = iff(k > TopBand, 1,
       iff(k < LowBand, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(k, color= orange)
plot(d, color=dc80)

더 많은