RSI와 STOCH RSI에 기반한 양방향 거래 전략

저자:차오장, 날짜: 2023-12-01 18:06:23
태그:

img

전반적인 설명

이 전략은 강력한 상대 강도 지수 (RSI) 와 스톡 RSI 기술 지표를 결합하여 비교적 안정적이고 신뢰할 수있는 양방향 거래 전략을 구현합니다. RSI 지표가 과잉 구매 또는 과잉 판매 신호를 표시하고 스톡 RSI가 골든 크로스 및 죽음의 크로스 거래 신호를 생성하면 전략은 긴 또는 짧은 포지션을 입력합니다.

전략 논리

이 전략은 주로 RSI 및 스톡 RSI 지표에 기반합니다. RSI는 시장이 과소매 또는 과소매 여부를 결정하는 데 사용됩니다. 스톡 RSI는 특정 거래 신호를 생성하는 데 사용됩니다.

첫째, RSI는 시장이 과소매 또는 과소매인지 판단합니다. RSI가 과소매 라인 이상이라면 시장이 과소매로 간주됩니다. RSI가 과소매 라인 아래에 있다면 시장이 과소매로 간주됩니다.

두 번째로, 스톡 RSI는 거래 신호를 생성합니다. 빠른 선이 아래에서 느린 선 위에 넘어가면 구매 신호가 생성됩니다. 빠른 선이 위에서 느린 선 아래에 넘어가면 판매 신호가 생성됩니다.

마지막으로, 전략은 RSI가 과잉 구매/ 과잉 판매 조건을 표시하고 Stoch RSI가 동시에 신호를 생성 할 때만 시장에 진입합니다. 긴 신호는 RSI 과잉 판매 및 Stoch RSI 황금 십자이고 짧은 신호는 RSI 과잉 구매 및 Stoch RSI 죽음의 십자입니다.

이점 분석

이 전략은 RSI와 스톡 RSI의 장점을 결합하여 전반적인 시장 추세와 세부적인 변화를 고려하여 불필요한 잘못된 신호를 피하여 더 신뢰할 수있는 거래 신호를 생성합니다.

RSI는 시장이 과반 구매 또는 과반 판매되는지를 효과적으로 결정할 수 있으며, 상위와 하위 추격을 피합니다. 주식 RSI는 전환점을 적시에 파악하기 위해 RSI의 동력 변화를 조사합니다. 이 조합은 거래 신호의 신뢰성과 적절한 입시 타이밍을 모두 보장합니다.

또한 시간 및 가격 필터가 추가되어 잘못된 거래의 확률을 더욱 줄이고 전체 전략의 안정성을 향상시킵니다.

위험 분석

이 전략은 주로 시장 변화에 민감한 RSI와 스톡 RSI에 의존합니다. 이것은 빈번한 잘못된 신호와 지표 간의 오차로 이어질 수 있으며, 높은 거래 빈도와 불안정한 수익으로 이어질 수 있습니다.

이러한 위험을 완화하기 위해, RSI와 Stoch RSI의 매개 변수는 시장 특성에 더 잘 맞게 조정될 수 있으며, 더 많은 필터를 추가할 수 있습니다. 하나의 지표로부터 신호를 취하기 전에 다른 지표와 검증을 고려해야 합니다.

최적화 방향

이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.

  1. 이윤을 확보하고 손실을 줄이기 위해 이동 중지 손실을 추가합니다.

  2. RSI와 스톡 RSI 매개 변수를 다양한 기간과 제품에 맞게 최적화합니다.

  3. 더 큰 시간 프레임과 더 낮은 거래 빈도와 같은 더 많은 필터를 추가합니다.

  4. 오류를 피하기 위해 신호 검증을 위한 다른 지표를 포함합니다.

  5. 가장 좋은 매개 변수 조합을 위한 백테스트 최적화

결론

이 전략은 RSI와 스톡 RSI의 강점을 활용하여 쌍방향 거래 프레임워크를 구축하여 단일 지표를 사용하는 것보다 더 포괄적이고 신뢰할 수 있는 신호 생성을 제공하며 많은 불필요한 잘못된 신호를 피합니다. 추가 최적화로 안정적으로 수익성이 높은 양적 거래 전략이 될 수 있습니다.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("RSI+STOCHRSI v2", overlay=true)
lengthrsi = input(10)
overSold = input( 20 )
overBought = input( 70 )
price = ohlc4
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
srsilow=input(20)
srsiup=input(80)






yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(d,k)) and ( (vrsi<overSold) or crossover(vrsi,overSold) )  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(d,k) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

더 많은