더블 리버설 RSI 역사적 경보 전략


생성 날짜: 2024-01-04 17:17:24 마지막으로 수정됨: 2024-01-04 17:17:24
복사: 1 클릭수: 806
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

더블 리버설 RSI 역사적 경보 전략

개요

이중 반전 RSI 역사 경보 전략은 123 반전 전략과 RSI 역사 경보 전략을 결합하여 더 정확한 거래 신호를 생성합니다. 123 반전 전략은 가격 반전 지점을 판단하고, RSI 역사 경보 전략은 과매매 지점을 판단합니다. 두 가지 전략 신호를 통합하면 더 신뢰할 수있는 거래 신호를 생성 할 수 있습니다.

전략 원칙

123 역전 전략

123 역전 전략은 이 가설에 기초한다: 주식 가격 역전 신호는 주식 가격 역전 2일 전에 나타난다.

그 다음의 규칙이 적용됩니다.

  • 구매 신호: 전날 종결 가격 <전날 종결 가격 2일 및 현재 종결 가격> 전날 종결 가격 9일 느린 K선 50 이하
  • 팔기 신호: 전날 종료 가격> 전날 종료 가격 2일 현재 종료 가격 < 전날 종료 가격 9일 빠른 K선 50 이상

이 전략은 주가 반전 2일 전의 가격관계를 통해 가능한 반전점을 판단한다. 동시에, K선 지표는 일부 잡음 신호를 제거한다.

RSI 역사 경고 전략

RSI 역사 경고 전략은 RSI 지표에 따라 변경되었습니다.

  • RSI 값을 100에서 100로 축소합니다.
  • RSI 값이 기본 구매/판매 경보선을 초과하면 거래 신호가 발생

이 전략은 RSI 지표의 절대값 크기를 판단하여 과매매 상황을 암시하여 거래 신호를 생성한다.

전략적 이점

이 전략은 두 가지 다른 유형의 전략적 사고를 결합하여 서로 다른 장점을 보완하여 더 신뢰할 수있는 신호를 생성합니다. 구체적인 장점은 다음과 같습니다.

  1. 123 역전 전략은 가격 역전점을 판단하는 데 능숙하다. RSI 역사 경고 전략은 오버 바이 오버 셀 포인트를 판단하는 데 능숙하다. 둘을 결합하면 거래 시기를 더 포괄적으로 판단할 수 있다.
  2. 123 역전 전략과 RSI 역사 경고 전략은 다른 지표를 입력으로 사용합니다. 이것은 잘못된 신호의 가능성을 줄이고 신뢰성을 향상시킵니다.
  3. 두 가지 전략은 각각의 최적화 공간을 가지고 있으며, 매개 변수를 조정하여 전략 효과를 더욱 향상시킬 수 있습니다.

전략적 위험

이 전략의 주요 위험은 다음과 같습니다.

  1. 주가 반전이 반드시 일어나지 않는다. 123 반전 전략의 판단 조건에 부합하더라도 가격이 원래의 추세를 계속 운영할 수도 있다.
  2. RSI 지표는 거짓 신호를 발산할 가능성이 높습니다. RSI 절대값이 경고선을 초과하는 것은 반드시 진정한 과매매 과매매 상태를 나타내지 않습니다.
  3. 두 가지 전략 모두 동시에 잘못된 신호를 보낼 수 있습니다. 잘못된 방향의 위험은 두 배가 될 것입니다.

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

  1. 123 역전 전략의 매개 변수를 적절히 조정하여 비교가 결정된 역전 시점에서만 신호를 발산하도록 한다.
  2. RSI 역사 경고 전략의 경고 라인 위치를 조정하여 거짓 신호의 가능성을 줄여줍니다.
  3. 다른 지표의 확인이 추가되어 잘못된 방향의 위험이 너무 크지 않도록하십시오.

전략 최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 다양한 변수 조합을 사용하여 123 역전 전략과 RSI 역사 경고 전략을 테스트하여 최적의 변수를 찾습니다.
  2. 다른 지표 판단을 추가하고, 다중 인자 검증을 실시하고, 더 많은 가짜 신호를 필터링한다. 예를 들어, 평균선 지표, 변동률 지표 등을 도입할 수 있다.
  3. 다양한 포지션 시간 범위를 테스트한다. 현존하는 전략은 Momentum 포지션을 사용하며, 트렌드 추적 포지션으로 최적화 된 포지션을 테스트 할 수 있다.
  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 )