RSI 지표 계산 및 평활 이동 평균 반전 전략


생성 날짜: 2024-01-19 14:24:09 마지막으로 수정됨: 2024-01-19 14:24:09
복사: 1 클릭수: 748
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

RSI 지표 계산 및 평활 이동 평균 반전 전략

개요

RSI 역전 전략은 RSI 지표의 평평한 이동 평균을 계산하여 주식이 과매매 또는 과매매 상태에 있는지 판단하여 구매 및 판매 신호를 생성합니다. 이 전략은 RSI 지표의 역전 특성을 활용하여 주식 가격이 역전 될 때 이익을 얻습니다.

전략 원칙

이 전략은 먼저 14주기 RSI 값을 계산하고 0-100 정규화 처리를 한다. 그 다음 5주기 RSI의 가중 이동 평균을 계산하고, 후반 절단 함수를 통해 -1에서 1 사이로 맵핑한다. 맵핑된 RSI가 -0.8을 통과하면 구매 신호를 발생시키고, 1을 통과하면 판매 신호를 발생시킨다. 여기에서는 맵핑과 하락을 판단하는 방법을 통해 RSI 지표의 역전 신호를 검출한다.

이 정책은 또한 운영되는 달과 날짜의 범위를 설정하여 지정된 달과 날짜에서만 작동하도록 합니다.

장점

  • RSI 지표의 반전 특성을 활용하여 주가 반전 지점에서 거래 신호를 생성하여 반전 기회를 잡습니다.
  • RSI를 매핑하고 임계값을 판단하여 신호를 더 명확하게 합니다.
  • 운영 달과 날짜를 구성할 수 있으며, 사용에 있어 유연하다.

위험

  • RSI 반전 신호는 잘못된 신호가 발생할 수 있으며, 이는 거래 신호 오류를 초래한다. RSI 파라미터를 조정하거나 다른 지표 필터를 추가하여 잘못된 신호를 줄일 수 있다.
  • RSI 단 하나의 지표에 의존하는 것은 벽 상반 신호를 쉽게 만들 수 있으며, 다른 지표 또는 요소 구축 메커니즘을 도입하여 전략의 안정성을 향상시킬 수 있습니다.
  • 고정된 달과 날짜 범위는 다른 시간대의 거래 기회를 놓칠 수 있으며, 보다 유연한 운영 시간을 구성할 수 있다.

최적화 방향

  • 더 많은 조합의 변수를 테스트하여 RSI와 이동 평균 주기에서 가장 적합한 매칭을 찾습니다.
  • 반전 신호를 확인하기 위해 거래량이나 변동률과 같은 지표를 증가시켜 잘못된 정보를 줄여줍니다.
  • 더 많은 거래 기회를 포괄하기 위해 운영 달과 날짜의 범위를 최적화하고 조정하십시오.
  • 위험 통제를 위한 손해 방지 장치를 추가하십시오.

요약하다

RSI 역전 전략은 RSI 지표의 역전 거래 규칙을 구축하여 가격 역전 기회를 간단하고 효과적으로 포착합니다. 이 전략은 실행하기 쉽지만, 매개 변수 최적화, 위험 제어 장치 강화 등으로 최적화되어 안정적으로 수익성이있는 정량 거래 전략이됩니다.

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

//@version=3
strategy(title="RSI Reverse", shorttitle="RSI Reverse")


RSI_main = input(14, title="RSI Main Period")
RSI_smooth = input(5, title="RSI Smooth Period")

//Functions
RVS(input) => (exp(2*input)-1) / (exp(2*input)+1)

//RSI Calculation
raw_RSI=0.1*(rsi(close,RSI_main)-50)
wma_RSI=wma(raw_RSI,RSI_smooth)
RVS_RSI = RVS(wma_RSI)


threshold1 = RVS_RSI < 0.8? 1 : 0
threshold2 = -0.8


plot(RVS_RSI,color=red)
plot(threshold1,color=blue)
plot(threshold2,color=blue)

buycon = crossover(RVS_RSI,threshold2)
sellcon = crossunder(RVS_RSI , threshold1)

monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)


if (  buycon  ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( sellcon) 

    strategy.close("BUY")