이중 역행 RSI 히스토 알렛 전략

저자:차오장, 날짜: 2024-01-04 17:17:24
태그:

img

전반적인 설명

이중 리버션 RSI 히스토 알렛 전략은 123 리버션 전략과 RSI 히스토 알렛 전략을 결합하여 더 정확한 거래 신호를 생성합니다. 123 리버션 전략은 가격 반전 지점을 판단하고 RSI 히스토 알렛 전략은 과잉 구매 및 과잉 판매 지점을 판단합니다. 두 전략의 통합 신호는 더 신뢰할 수있는 거래 신호를 생성 할 수 있습니다.

전략 논리

123 환원 전략

123 리버션 전략은 다음과 같은 가설에 기초합니다: 가격 반전 신호는 실제 가격 반전보다 2 일 전에 종종 나타납니다.

구체적인 규칙은 다음과 같습니다.

  • 구매 신호: 이전 폐쇄 < 2일 전 폐쇄 AND 현재 폐쇄 > 이전 폐쇄 AND 9일 느린 K 라인 50 이하
  • 판매 신호: 이전 종료 > 2일 전 종료 AND 현재 종료 < 이전 종료 AND 9일 빠른 K 라인 50 이상

역전 전 2일 가격 관계를 사용하여 역전 포인트를 판단합니다. K-라인 지표는 일부 노이즈 신호를 필터합니다.

RSI HistoAlert 전략

RSI HistoAlert 전략은 RSI 지표를 수정합니다.

  • RSI 값은 -100에서 100까지 스케일합니다.
  • RSI가 미리 설정된 구매/판매 경보 라인을 초과할 때 거래 신호를 생성합니다.

절대적인 RSI 값을 사용하여 과잉 구매/ 과잉 판매 상태를 표시하고 신호를 트리거합니다.

장점

이 전략은 두 가지 다른 전략 아이디어를 결합하여 강점을 보완하고 더 신뢰할 수있는 신호를 생성합니다.

  1. 123 리버션 전략은 가격 반전 지점을 잘 잡는다. RSI 히스토 알렛 전략은 과잉 구매/ 과잉 판매 지점을 잘 잡는다. 이 조합은 거래 기회에 대한 보다 포괄적인 판단을 유도한다.
  2. 두 전략은 다른 입력 지표를 사용합니다. 이것은 잘못된 신호의 가능성을 감소시키고 신뢰성을 향상시킵니다.
  3. 두 전략 모두 최적화 공간을 가지고 있습니다. 매개 변수 조정으로 추가 성능 향상을 달성 할 수 있습니다.

위험성

주요 위험은 다음과 같습니다.

  1. 가격 반전은 보장되지 않습니다. 123 반전 신호 규칙이 충족되더라도 가격이 추세를 계속할 수 있습니다.
  2. RSI 인디케이터는 잘못된 신호의 높은 비율을 가질 수 있습니다. 경고 라인을 초과하는 것은 항상 과잉 구매 / 과잉 판매 상태를 의미하지는 않습니다.
  3. 두 가지 전략 모두 동시에 잘못된 신호를 발산할 수 있습니다. 이것은 잘못된 방향의 위험을 두 배로 증가시킵니다.

해결책은 다음과 같습니다.

  1. 123 반전 매개 변수를 잘 조율하여 높은 확률의 반전 지점에서만 신호를 보장합니다.
  2. 잘못된 신호율을 줄이기 위해 RSI 히스토 알레르트 경보 라인 위치를 조정합니다.
  3. 부적절한 잘못된 방향 위험을 피하기 위해 다른 지표 확인을 추가하십시오.

최적화 방향

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

  1. 최적 값을 찾기 위해 두 전략의 다른 매개 변수 조합을 테스트합니다.
  2. 더 많은 잘못된 신호를 필터링하기 위해 MA와 같은 더 많은 요소를 도입합니다.
  3. 다른 보유 기간을 테스트하십시오. 현재 전략은 추진력 보유를 사용합니다. 보유 다음 트렌드를 평가 할 수 있습니다.
  4. 장기 및 단기별로 세트된 매개 변수

결론

듀얼 리버션 RSI 히스토 알레트 전략은 단일 전략 사용에 비해 더 신뢰할 수있는 거래 신호를 위해 가격 역전 및 과잉 구매 / 과잉 판매 판단 전략을 결합합니다. 이는 잘못된 신호 확률이 낮고 더 포괄적인 판단을 제공합니다. 또한 파라미터 튜닝, 멀티 팩터 검증, 포지션 홀딩 스키마 등을 통해 최적화 할 수있는 넓은 공간이 있습니다. 안정성과 수익성을 더욱 향상시키기 위해.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/06/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This simple indicator modified RSI
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


RSI_Hist(RSIPeriod,BuyAlertLevel,SellAlertLevel,RSIHistoModify) =>
    pos = 0.0
    xPrice = close
    RSIMain = (rsi(xPrice, RSIPeriod) - 50) * RSIHistoModify
    pos:= iff(RSIMain > BuyAlertLevel, 1,
    	     iff(RSIMain < SellAlertLevel, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & RSI HistoAlert", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- RSI HistoAlert ----")
RSIPeriod = input(13, minval=1)
BuyAlertLevel = input(-10)
SellAlertLevel = input(10)
RSIHistoModify = input(1.5)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_Hist = RSI_Hist(RSIPeriod,BuyAlertLevel,SellAlertLevel,RSIHistoModify)
pos = iff(posReversal123 == 1 and posRSI_Hist == 1 , 1,
	   iff(posReversal123 == -1 and posRSI_Hist == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

더 많은