리버스 피셔 RSI 이동 평균 다중 시간 프레임 전략은 더 높은 시간 프레임에서 역으로 조정된 RSI 지표의 이동 평균을 계산하여 잠재적인 시장 전환점을 식별하려고 노력하는 양적 거래 전략입니다.
전략은 먼저 일반 RSI 지표를 계산하고, RSI_pm 매개 변수는 RSI 계산 기간을 나타냅니다. 원래 RSI는 수학 함수 IF ((input)=>(exp(2를 통해 역으로 조정됩니다.입력) -1) / (exp) 2조정된 RSI는 IF_RSI 변수에 전달됩니다.
너무 많은 잡음을 필터링하기 위해 전략은 RSI_ps 기간 동안 IF_RSI의 이동 평균을 계산하여 구매 및 판매 신호를 결정하는 데 사용되는 최종 지표 wma_RSI를 얻습니다. 이 지표는 0-100 범위로 매핑됩니다.
마지막으로, 전략은 이 지표를 더 높은 시간 프레임에 그래프화하고 0.8 및 -0.8로 임계선을 설정한다. 지표 라인이 아래에서 0.8보다 낮을 때 구매 신호가 생성된다. 지표 라인이 위에서 -0.8보다 낮을 때 판매 신호가 생성된다.
이 전략은 이중 평형화를 통해 RSI 트렌드를 처리하여 너무 많은 소음을 효과적으로 필터링하고 비교적 명확한 반전 신호를 잠금 할 수 있습니다. 이중 평형화는 각각 원래 RSI 지표와 절대적으로 조정된 RSI 지표에 적용됩니다. 이 방법은 지표의 평균 반전 특성을 향상시키고 비교적 신뢰할 수있는 거래 신호를 생산 할 수 있습니다.
또한, 전략에 의해 채택된 다중 시간 프레임 분석 방법은 더 높은 수준의 시간 프레임에 대한 지표의 브레이크를 식별하여 장기적 역전 기회를 포착하고 과도한 단기 시장 소음의 간섭을 피할 수 있습니다.
이 전략은 구매 및 판매 지점을 결정하기 위해 이동 평균 지표에 의존하고 있으며, 이는 약간의 지연을 가지고 있습니다. 장기적인 황소 시장에서 조정된 지표의 상승 공간이 제한 될 수 있으며, 트렌드 기회를 완전히 포착하지 못합니다.
한편, 조정은 또한 단기적 수정 후 회복 기회를 놓칠 수 있습니다. 지표 매개 변수가 적절히 최적화되지 않으면 특정 전략 위험이 발생할 수 있습니다.
시장 조건에 더 잘 적응하기 위해 지표 매개 변수를 적절히 조정하십시오. 예를 들어, 최적의 매개 변수 조합을 찾기 위해 다른 RSI 계산 주기와 평형 기간 매개 변수를 테스트 할 수 있습니다.
또한 신호를 검증하고 전략 안정성을 향상시키기 위해 다른 보조 지표를 결합하는 것도 고려할 가치가 있습니다. 예를 들어, 거래량 지표, 볼링거 밴드 등을 추가하여 트렌드 신호의 강도를 판단 할 수 있습니다.
역 피셔 RSI 이동 평균 다중 시간 프레임 전략은 전반적으로 강력한 논리를 가지고 있지만 더 넓은 시장 상황에 적응하기 위해 최적화가 필요합니다. 신뢰할 수있는 양적 거래 전략으로 만들기 위해 추가 테스트 및 개선 가치가 있습니다.
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "Inverse Fisher RSI-MTF2", shorttitle="INRSIM2",overlay=true) //Inputs RSI_pm = input(5, title="RSI Main Period",minval=2) RSI_ps = input(1, title="RSI Smooth Period",minval=0) //Functions IF(input)=>(exp(2*input)-1)/(exp(2*input)+1) //RSI Calculation raw_RSI=0.1*(rsi(close,RSI_pm)-50) wma_RSI=wma(raw_RSI,RSI_ps)*100 IF_RSI = IF(wma_RSI) resCustom = input(title="Timeframe", defval="1440" ) v=request.security(syminfo.tickerid, resCustom,IF_RSI) a=v>0.8 b=v<-0.8 z=0.8 buy = crossover(v,z) sell=crossunder(v,b) plotshape(sell, title="sell", style=shape.triangledown,location=location.abovebar, color=red, transp=0, size=size.small) plotshape(buy, title="buy", style=shape.triangleup,location=location.belowbar, color=green, transp=0, size=size.small) //Strategy golong = crossover(v,z) goshort = crossunder(v,b) strategy.entry("Buy",strategy.long,when = golong) strategy.entry("Sell",strategy.short,when = goshort)