RSI 다이버전스 반전 전략


생성 날짜: 2023-09-18 13:54:48 마지막으로 수정됨: 2023-09-18 13:54:48
복사: 0 클릭수: 730
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 RSI 지표에 기반한 역전 전략이다. 이 전략은 두 개의 서로 다른 주기의 RSI 곡선을 계산하고 두 개의 RSI 곡선에서 황금 포크 또는 사각지대가 발생했을 때 구매 또는 판매 작업을 수행한다.

전략 원칙

  1. 두 개의 RSI 곡선을 계산한다: 단기 RSI 곡선, 장기 RSI 곡선.

  2. 단기 RSI가 장기 RSI에 부딪힐 때, 낙관적 신호로 판단하여 더 많이 한다.

  3. 단기 RSI가 장기 RSI를 넘어서면 하향 신호로 판단하고, 공백을 다.

  4. 구매 신호를 발신할 때, 최신 가격으로 스톱로스 가격을 설정한다.

  5. 판매 신호를 발산할 때, 최신 가격으로 스톱로스 가격을 설정한다.

  6. 만약 가격이 스톱로스 가격에 도달하면, 스톱로스는 현재 포지션을 탈퇴한다.

우위 분석

  1. RSI 지표를 사용하여 트렌드 반전점을 판단하는 것은 어느 정도 신뢰성이 있다.

  2. 이중 RSI 곡선 조합은 일부 노이즈 트레이딩 신호를 필터링한다.

  3. 각 거래의 손실을 제어하기 위해 스톱로스를 설정하십시오.

  4. 전략적 논리는 간단하고 직관적이며 실행하기 쉽습니다.

  5. RSI 파라미터는 사용자 정의 가능하며, 다른 시장 환경에 적용된다.

위험 분석

  1. RSI 지표는 지연되어 있고, 돌발적인 트렌드 반전의 시점을 놓칠 수 있다.

  2. 부적절한 손해 방지 설정으로 불필요한 손해가 발생할 수 있습니다.

  3. 이중 RSI 포트폴리오는 여전히 가짜 브레이크의 위험을 완전히 피할 수 없습니다.

  • 위험 1은 다른 지표와 결합할 수 있습니다. 예를 들어, 브린 벨트 확인 반전.

  • 리스크 2는 트래킹 스톱 또는 싱글 스톱을 사용하여 스톱을 최적화 할 수 있습니다.

  • 리스크 3는 트렌드 필터링 조건을 추가하여 가짜 브레이크를 방지할 수 있습니다.

최적화 방향

  1. 다른 변수들의 RSI 주기 조합 효과를 테스트한다.

  2. MACD, KD 등의 다른 지표와 함께 평가한다.

  3. 더 많은 손실을 막는 전략, 예를 들어, 추적 손실, 중지 표시.

  4. 트렌드 필터를 추가하여 역작업을 피하십시오.

  5. 다른 품종과 주기에서의 효과를 평가한다.

요약하다

이 전략은 RSI 차이 교차를 통해 간단한 반전 거래를 구현한다. 쌍 RSI 필터링과 스톱로드는 위험을 통제한다. 이후 다중 지표 조합, 최적화 스톱로드 전략 등으로 효과를 더 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI cross Strategy by alireza v1.1.1", overlay=true)
length1 = input( 25 )
length2 = input( 100 )
price = close


vrsi1 = ta.rsi(price, length1)
vrsi2 = ta.rsi(price, length2)

GC = (close > open)
RC = (open > close)

HH = (close > close[2])
LL = (close < close[2])




cu = ta.crossover(vrsi1, vrsi2)
cd = ta.crossunder(vrsi1, vrsi2)



if (not na(vrsi1))
	if (cu) 
	    sll=price
		strategy.entry("BUY", strategy.long )
		strategy.exit("SL" , limit = sll )
	if (cd)
	    sls=price
		strategy.entry("SELL", strategy.short )
		strategy.exit("SL" , limit = sls )