상대 강도 지수 손절매 전략


생성 날짜: 2023-12-26 10:22:44 마지막으로 수정됨: 2023-12-26 10:22:44
복사: 3 클릭수: 634
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

상대 강도 지수 손절매 전략

개요

이 전략은 상대 강도 지수 ((RSI) 지표에 기초하여, 중지 손실 및 일일 손실 제한 메커니즘과 결합하여, Nvidia 주식에 대한 알고리즘 거래를 구현한다. 거래 결정은 RSI 지표에 의존하여 과매매 신호를 인식하고, 그 후 다중 사외선 포지션을 구축한다. 동시에, 전략은 단위 손실을 제한하기 위해 중지 손실을 설정하고, 전체 위험을 제어하기 위해 최대 일일 손실 비율을 규정한다.

전략 원칙

RSI 지표가 오버소드 시점 37보다 낮으면 주가가 과소평가되었다고 생각하면 더 많이 한다. RSI가 오버소드 시점 75보다 높으면 주가가 과대평가되었다고 생각하면 공백한다. 주가가 상승하여 미리 설정된 중지 손실을 초과하면 손실이 중단된다. 하루 내 최대 당기순이익 손실이 3%에 달하면 평지 손실이 중단되고 거래가 중단된다.

이 전략은 주로 RSI 지표에 의존하여 매매 시기를 판단한다. RSI가 30보다 낮으면 과매매 신호로 주가가 과소평가되었다는 것을 나타냅니다. RSI가 70 이상이면 과매매 신호로 주가가 과대평가되었다는 것을 의미합니다. 전략은 과매매 과매매 지점을 개시하고 과외하고 주가가 반전되어 이익을 얻습니다.

손해 제도는 단위 손실을 제어하기 위해 사용된다. 손실이 설정된 비율에 도달했을 때 전략은 손실을 중단한다. 이 설정은 단일 큰 손실을 방지한다. 하루 손실 제한은 하루 전체 손실을 제한하기 위해 사용된다.

우위 분석

이 전략은 RSI 지표와 Stop/Loss Limit을 결합하여 다음과 같은 장점을 가지고 있습니다.

  1. RSI를 사용하여 과매매를 판단하는 것은 약간의 신뢰성을 가지고 있으며 일부 잡음 거래 기회를 필터링 할 수 있습니다.
  2. 단편적 손실 위험을 효과적으로 제어하는 손해 방지 장치
  3. 일일 손실 제한은 극단적인 상황에서의 엄청난 손실을 방지합니다.
  4. 전략 규칙은 명확하고 간단하며 이해하기 쉽고 실행이 가능합니다.
  5. 사용자 정의 RSI 변수와 스톱포트는 다른 시장 환경에 적응합니다

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. RSI 지표는 기술 분석 도구로서 가격 변화의 동향과 시점을 완전히 예측할 수 없습니다.
  2. 스톱포인트가 잘못 설정되어 너무 일찍 또는 너무 큰 스톱포인트가 발생할 수 있습니다.
  3. 당일 손실 제한은 당일 거래를 조기 종료하여 다음 거래 기회를 놓치게 됩니다.
  4. 변수 설정 (RSI 길이, 오버 바이 오버 시드 마이너스 등) 은 전략의 효과에 영향을 미칠 수 있습니다.
  5. 불충분한 데이터 재검토는 전략의 실제 수익을 과대평가할 수 있다.

최적화 방향

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

  1. 시장과 시기를 따라 RSI의 최적의 조합과 초고가 초고가 될 수 있도록 테스트하는 방법
  2. 역대 데이터에 따라 최우수 절감 비율을 계산합니다.
  3. 매일의 손실 제한 수준에 따른 위험/수익 효과를 평가하는 방법
  4. 여러 주식에서 테스트하고, 주식 풀 알고리즘을 설계하여 Stability를 향상시킵니다.
  5. 다른 지표와 결합하여 MACD, KD 등과 같은 설계 동적 중지 손실, 동적 위치 크기
  6. 기계 학습 알고리즘을 추가하여 전략적 수익을 올립니다.

요약하다

이 상대 강도 지수 스톱 로드 전략은 기술 지표와 위험 제어 장치의 장점을 통합하고, 어느 정도 소음 거래 기회를 필터링하고, 거래 위험을 제어한다. 전략은 간단하고 명확하며, 실행하기 쉽고, 정량 거래의 입문 전략 중 하나로 사용할 수 있다. 그러나 그것의 파라미터 설정과 스톱 로드 메커니즘은 추가적으로 최적화할 수 있으며, 일정 확률의 수익의 불확실성에 직면한다. 전체적으로, 이 전략은 초보자에게 참고 템플릿을 제공하지만, 실제 사용에서는 신중한 평가와 조정이 필요하다.

전략 소스 코드
//@version=5
strategy("RSI Strategy with Daily Loss Limit", overlay=true)

// Define RSI conditions
rsiValue = ta.rsi(close, 7)
rsiLength = input(15, title="RSI Length")
rsiOverbought = 75
rsiOversold = 37

// Define stop-loss percentage
stopLossPercent = input(1, title="Stop Loss Percentage") / 100

// Enter long (buy) when RSI is below 40 with stop-loss
if (rsiValue < rsiOversold)
    strategy.entry("Buy", strategy.long)

// Exit long when RSI is above 80 or when stop-loss is hit
if (rsiValue > rsiOverbought)
    strategy.exit("Buy", from_entry="Buy", loss=close * stopLossPercent)

// Enter short (sell) when RSI is above 80 with stop-loss
if (rsiValue > rsiOverbought)
    strategy.entry("Sell", strategy.short)

// Exit short when RSI is below 40 or when stop-loss is hit
if (rsiValue < rsiOversold)
    strategy.exit("Sell", from_entry="Sell", loss=close * stopLossPercent)

// Track account equity
equityLimit = strategy.equity * 0.97  // Set the daily loss limit to 3%

// Enter long (buy) when RSI is below 40
if (rsiValue < rsiOversold)
    strategy.entry("Buy", strategy.long)

// Exit long when RSI is above 80 or when stop-loss is hit
if (rsiValue > rsiOverbought)
    strategy.exit("Buy", from_entry="Buy", loss=close * stopLossPercent)

// Enter short (sell) when RSI is above 80
if (rsiValue > rsiOverbought)
    strategy.entry("Sell", strategy.short)

// Exit short when RSI is below 40 or when stop-loss is hit
if (rsiValue < rsiOversold)
    strategy.exit("Sell", from_entry="Sell", loss=close * stopLossPercent)

// Plot RSI on the chart
plot(rsiValue, title="RSI", color=color.blue)

// Stop trading for the day if the daily loss limit is reached
if (strategy.equity < equityLimit)
    strategy.close_all()