RSI를 기반으로 한 순수 롱 트레이딩 전략


생성 날짜: 2023-10-07 10:02:21 마지막으로 수정됨: 2023-10-07 10:02:21
복사: 2 클릭수: 720
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 상대적으로 강한 지수 ((RSI) 지표를 기반으로 순수 다중 거래 시스템을 설계했다. 이 시스템은 RSI의 다른 상하 궤도를 구성하여 RSI 지표가 금 포크가 발생할 때 더 많은 포즈를 취하고, 죽은 포크가 발생할 때 평소 포즈를 취한다.

전략 원칙

이 전략은 주로 RSI 지표에 의존하여 거래 신호를 생성한다. RSI 지표는 일정 기간 동안 종결 가격 상승과 하락의 비율을 계산하여 주식의 과매매를 반영한다. RSI 값이 높으면 과매를 의미하고, RSI 값이 낮으면 과매를 의미한다.

구체적으로, 전략은 RSI의 여러 변수를 설정하여 거래 신호를 생성합니다.

  1. rsi_low: RSI의 하도, 기본값은 30이며, 이 값보다 낮으면 과매매로 간주됩니다.
  2. rsi_middle: RSI의 중간 궤도, 기본값은 55
  3. rsi_mhigh: RSI의 중간고도 궤도, 기본값은 60
  4. rsi_high: RSI의 높은 궤도, 기본값은 70이며, 이 값보다 높으면 과매매로 간주됩니다.
  5. rsi_top: RSI의 고위치, 기본값은 75
  6. rsi_period: RSI의 주기 수를 계산합니다. 기본값은 14입니다.

RSI 값을 계산한 후, 전략은 다음과 같은 원칙을 가지고 거래 신호를 생성합니다.

  1. RSI가 하향 또는 중향으로 갈 때 더 많은 포지션을 씁니다.
  2. RSI 아래로 내려갈 때, Stop Loss Exit
  3. RSI 아래에서 중간, 중간, 높은 경로를 통과할 때, Partial는 점진적으로 포지션을 종료합니다.
  4. RSI가 높은 지점을 넘어서면 모두 내립니다.

이렇게 하면, RSI의 여러 그룹을 설정하여 오버 바이 오버 셀 영역 사이의 금 포크를 포착하여 트렌드 추적이 가능합니다.

우위 분석

RSI 기반의 트렌드 추적 전략은 다음과 같은 장점이 있습니다.

  1. 전략적 사고는 명확하고 이해하기 쉽다. RSI 지표를 통해 과매매를 판단하고,
  2. 구성 가능한 RSI 파라미터가 풍부하여 다양한 주기 및 품종에 따라 유연하게 조정할 수 있습니다.
  3. 분기 상쇄 메커니즘을 사용하여 큰 추세를 파악하고 동시에 위험을 제어합니다.
  4. 구매와 판매의 특정 시점을 제한하지 않고, 완전히 자동화된 거래
  5. RSI 지표는 다른 지표와 결합하여 전략을 확장할 수 있습니다.

위험 분석

물론, 이 전략에는 위험도 있습니다.

  1. RSI는 다소 뒤쳐져 있으며, 큰 트렌드의 시작을 놓칠 수 있습니다.
  2. 부적절한 스톱포인트 설정으로 불필요한 손실이 발생할 수 있습니다.
  3. 다자 전략은 트렌드 반향을 포착하지 못하고 방향성 위험이 있습니다.
  4. 안정적인 보유 기간이 짧고, 높은 수수료와 슬라이드 포인트 비용이 발생할 수 있습니다.
  5. RSI 외환시 트레이딩 신호 오류

이에 대해, RSI 주기 변수를 적절히 조정하고, 평균선 지표와 결합하여, 합리적인 스톱 로즈 위치를 설정하는 등의 방법으로 최적화 할 수 있다.

최적화 방향

이 전략은 다음의 몇 가지 측면에서 더 개선될 수 있습니다.

  1. RSI 변수를 최적화하고 시장 상황에 맞게 궤도 상하 위치를 조정합니다.
  2. RSI 지연으로 인한 잘못된 신호를 방지하기 위해 평균 선 지표 필터를 추가합니다.
  3. 가격 돌파구를 입력 신호로 설정하고 RSI 금 포크를 확인합니다.
  4. 트렌드 반전의 판단을 높여서 전략을 양방향으로 사용할 수 있게 한다.
  5. 순차적으로 주식을 매입하고, 주가를 낮추고, 주식을 움직여서 손해를 막는 등의 최적화 전략
  6. 거래량과 함께 트렌드 판단을 강화합니다.
  7. 기계 학습 알고리즘을 추가하여 RSI 파라미터를 동적으로 최적화합니다.

요약하다

이 전략은 구성된 RSI 기술 지표를 통해 간단한 트렌드 추적 거래 시스템을 구현한다. 전략 아이디어는 명확하고 이해하기 쉽고, 자신의 필요에 따라 파라미터를 조정할 수 있다. 그러나 또한 몇 가지 위험이 있으며, 주의를 기울여야 한다.

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

//@version= 4
// https://sauciusfinance.altervista.org, another trading idea, suggested by the fact that RSI tends to accompany the trend
strategy(title="Pure RSI long only", overlay = true, max_bars_back=500)


// INPUTS 
rsi_low = input(30, title ="RSI lower band",  minval=5, step = 1)
rsi_middle = input(55, title ="RSI middle band",  minval=10, step = 1)
rsi_mhigh = input(60, title ="RSI middle high",  minval=20, step = 1)
rsi_high = input(70, title ="RSI high",  minval=30, step = 1)
rsi_top = input(75, title ="RSI top",  minval=30, step = 1)
rsi_period = input(14, title="RSI period", minval = 1, step = 1) 
// CALCULATIONS
myrsi = rsi(close, rsi_period)

/// Entry: when RSI rises from the bottom or, after a retracement, it overcomes again the middle level of 50 
strategy.entry("Long", true, when = crossover(myrsi,rsi_low))
strategy.entry("Long", true, when = crossover(myrsi,rsi_middle))

/// EXITS: when RSI crosses under the initial bottom level (stop loss) or undergoes one of the next 3 steps : 50, 60, 70 or it's simply
// higher than 70
// you may test viceversa for short, adding level of 40

strategy.close("Long", when = crossunder(myrsi, rsi_low), comment="low")
strategy.close("Long", when = crossunder(myrsi, rsi_middle), comment="middle")
strategy.close("Long", when = crossunder(myrsi, rsi_mhigh), comment="middle-hi")
strategy.close("Long", when = crossunder(myrsi, rsi_high), comment="high")
strategy.close("Long", when = (myrsi>rsi_top), comment="top")

plotchar(myrsi, title = "myrsi", char='+', color=color.black)
// CONCLUSION: this system give notable results related to  MA & RSI trading system and it's a good alternative. The best is making
// roboadvisoring by working this two system togheter, i.e. watching both MA and levels of RSI together (you may also enter if RSI
// crosses over 30 and then wait for a confirm in MA)