상대적 강도 지수에 기반한 개선된 RSI 스칼핑 전략

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

img

전반적인 설명

이 전략의 핵심 아이디어는 RSI 지표와 사용자 정의 AI 조건을 결합하여 거래 기회를 발견하는 것입니다. 여러 조건이 충족되면 긴 또는 짧은 포지션을 설정하고 고정된 수익 및 스톱 손실 수준을 사용합니다.

거래 논리

이 전략은 다음과 같은 단계를 통해 실행됩니다.

  1. 14주기 RSI 값을 계산합니다
  2. 두 개의 사용자 정의 AI 조건 (장과 짧은) 을 정의
  3. 입시 신호를 생성하기 위해 AI 조건과 RSI 과잉 구매 / 과잉 판매 구역을 결합하십시오.
  4. 리스크 비율 및 스톱 로스 피프에 기초한 포지션 크기를 계산합니다
  5. 이윤을 취하고 손해를 멈추는 가격을 계산
  6. 입력 신호가 발사되면 위치를 입력합니다
  7. 이윤을 취득하거나 손해를 멈추면 출구 포지션

또한, 전략은 신호 생성에 대한 경고를 생성하고 차트에 RSI 값을 그래프화합니다.

이점 분석

이 전략은 몇 가지 주요 장점을 가지고 있습니다.

  1. RSI와 AI 조건을 결합하면 더 정확한 거래 신호가 발생합니다.
  2. 복수의 조건 조합을 사용하면 잘못된 신호를 효과적으로 필터링합니다.
  3. 위험 관리 원칙에 기초한 포지션 크기 조정 거래 위험별 통제
  4. 일정한 취득/손실 중단은 위험과 수익에 대한 명확성을 제공합니다.
  5. 매개 변수 조정을 통해 매우 사용자 정의

위험 분석

또한 고려해야 할 몇 가지 위험이 있습니다.

  1. 잘못된 RSI 매개 변수는 잘못된 신호로 이어질 수 있습니다.
  2. 잘못 설계된 맞춤형 AI 논리는 잘못된 신호를 생성할 수 있습니다.
  3. 너무 긴 스톱 로스 레벨은 과도한 스톱 아웃으로 이어질 수 있습니다.
  4. 고정된 취득/손실 중단은 불안정한 시장에서 더 많은 이익을 잃거나 더 많은 손실을 일으킬 수 있습니다.

이 문제는 RSI 매개 변수를 조정하고 AI 논리를 최적화하고, 스톱 로스 거리를 완화하여 완화 할 수 있습니다.

더 나은 기회

이 전략이 더 향상될 수 있는 몇 가지 방법:

  1. 더 많은 사용자 정의 AI 조건을 통합하여 여러 가지 요소에 기반한 트렌드를 결정합니다.
  2. 가장 좋은 조합을 찾기 위해 RSI 매개 변수를 최적화
  3. 다른 취득/손실 중지 메커니즘을 테스트 하 고 후속 중지 또는 이동 취득
  4. 양질의 거래 기회를 감지하기 위해 볼륨 스파이크와 같은 추가 필터를 추가하십시오.
  5. 기계 학습을 사용하여 최적의 매개 변수를 자동으로 생성합니다.

요약

요약하자면, 이것은 RSI와 사용자 지정 AI 논리를 기반으로 하는 highly configurable 및 최적화 가능한 고급 전략입니다. 여러 신호 소스의 조합을 통해 트렌드 방향을 결정하고, 위험 관리와 수익 / 중지 손실 절차를 수행하는 거래를 실행합니다. 전략은 풍부한 확장 및 최적화 기능을 통해 사용자에게 좋은 거래 성능을 제공할 수 있습니다.


/*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=5
strategy("Improved RSI Scalping Strategy", overlay=true)

// Parameters
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Threshold")
rsiOversold = input.int(30, title="RSI Oversold Threshold")
takeProfitPips = input.int(10, title="Take Profit (Pips)")
stopLossPips = input.int(5, title="Stop Loss (Pips)")
riskPercentage = input.float(1, title="Risk Percentage", minval=0, maxval=100, step=0.1)

// Calculate RSI
rsiValue = ta.rsi(close, rsiLength)

// Custom AI Conditions
aiCondition1Long = ta.crossover(rsiValue, 50)
aiCondition1Short = ta.crossunder(rsiValue, 50)

// Add more AI conditions here
var aiCondition2Long = ta.crossover(rsiValue, 30)
var aiCondition2Short = ta.crossunder(rsiValue, 70)

// Combine AI conditions with RSI
longCondition = aiCondition1Long or aiCondition2Long or ta.crossover(rsiValue, rsiOversold)
shortCondition = aiCondition1Short or aiCondition2Short or ta.crossunder(rsiValue, rsiOverbought)

// Calculate position size based on risk percentage
equity = strategy.equity
riskAmount = (equity * riskPercentage) / 100
positionSize = riskAmount / (stopLossPips * syminfo.mintick)

// Calculate Take Profit and Stop Loss levels
takeProfitLevel = close + takeProfitPips * syminfo.mintick
stopLossLevel = close - stopLossPips * syminfo.mintick

// Long entry
strategy.entry("Long Entry", strategy.long, when=longCondition[1] and not longCondition, qty=1)
strategy.exit("Take Profit/Stop Loss", from_entry="Long Entry", limit=takeProfitLevel, stop=stopLossLevel)

// Short entry
strategy.entry("Short Entry", strategy.short, when=shortCondition[1] and not shortCondition, qty=1)
strategy.exit("Take Profit/Stop Loss", from_entry="Short Entry", limit=takeProfitLevel, stop=stopLossLevel)

// Alerts
alertcondition(longCondition, title="Long Entry Signal", message="Long Entry Signal")
alertcondition(shortCondition, title="Short Entry Signal", message="Short Entry Signal")

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


더 많은