RSI와 WMA 크로스오버 전략


생성 날짜: 2024-02-05 12:16:46 마지막으로 수정됨: 2024-02-05 12:16:46
복사: 2 클릭수: 642
avatar of ChaoZhang ChaoZhang
1
집중하다
1237
수행원

RSI와 WMA 크로스오버 전략

개요

이 글은 주로 RSI와 WMA를 기반으로 한 양적 거래 전략을 소개한다. 이 전략은 RSI와 WMA의 값을 계산하고, 구매 및 판매 신호의 조건을 설정하여 주식 가격 반전점을 발견하여, 낮은 가격으로 높은 가격으로 판매하는 것을 목표로 한다.

전략 원칙

이 전략의 핵심 지표는 RSI와 WMA이다. RSI (Relative Strength Index) 는 주식의 최근 상승과 하락의 변화를 측정하는 변동 지표이다. WMA (Weighted Moving Average) 는 중화 이동 평균이다.

전략의 구매 신호는 RSI가 WMA를 통과했을 때 생성되며, 이는 주가 가격이 반전되어 상승하기 시작할 가능성이 있음을 나타냅니다. 전략의 판매 신호는 RSI가 WMA를 통과했을 때 생성되며, 이는 가격이 반전되어 하락하기 시작할 가능성이 있음을 나타냅니다.

구체적으로, 전략은 먼저 14일 RSI의 값을 계산하고 45일 WMA의 값을 계산한다. RSI가 WMA를 통과하면 구매 신호를 생성하고, RSI가 WMA를 통과하면 판매 신호를 생성한다. RSI와 WMA의 조합을 통해 가격의 역점을 더 정확하게 잡을 수 있다.

전략적 이점

이 전략에는 다음과 같은 장점이 있습니다.

  1. 전략적 신호는 명확하고, 거래 규칙은 명확하고, 실행하기 쉽다.
  2. RSI와 WMA 지표는 서로 검증하여 가짜 신호를 줄일 수 있다.
  3. RSI의 매개 변수는 다른 주기의 주식에 맞게 조정할 수 있다.
  4. WMA 파라미터는 또한 조정할 수 있으며, CAPTURE는 다양한 수준의 가격 동향을 나타냅니다.
  5. 코드는 간결하고, 이해하기 쉽고, 후기 최적화를 위한 것이다.

전략적 위험

이 전략에는 다음과 같은 위험도 있습니다.

  1. 주식 가격의 급격한 변동으로 인해 손실이 발생할 수 있습니다.
  2. RSI와 WMA의 파라미터는 반복적으로 테스트를 통해 최적화되어야 하며, 잘못 설정되면 실패할 수 있다.
  3. 거래 빈도가 너무 높아서 거래 비용과 슬라이드 포인트 비용을 증가시킬 수 있습니다.
  4. 전체 시장의 SYSTEMIC 위험을 효과적으로 필터링할 수 없습니다.

이러한 위험은 변수 조정, 손해 중지 설정, 필터링 시장 위험 등의 방법으로 회피할 수 있다.

최적화 방향

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

  1. RSI와 WMA의 변수를 테스트하여 최적의 변수를 찾습니다.
  2. 트랜스포메이션을 필터링하여 잘못된 신호를 방지합니다.
  3. 변동성 스톱로스 라인을 설정하여 가격이 불리한 방향으로 움직일 때 스톱로스를 설정합니다.
  4. MACD, BOLL 등의 다른 지표와 함께 필터링을 통해 신호 품질을 향상시킵니다.
  5. 진상규명 논리를 최적화하고, 출전 및 출전 전략을 변경한다.

요약하다

이 전략은 RSI와 WMA 두 지표를 통합하여, 그들의 교차 형성 거래 신호를 포착하여 간단한 효과적인 양적 거래를 구현합니다. 이 전략은 실행하기 쉽고, 약간의 시가상승 효과가 있습니다. 매개 변수를 계속 테스트하고 최적화하여 적절한 손해 방지 장치를 설정하면 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI WMA Strategy", overlay=true)

// Input parameters
rsiLength = input(14, title="RSI Length")
wmaLength = input(45, title="WMA Length")

// Calculate RSI and WMA
rsiValue = ta.rsi(close, rsiLength)
wmaValue = ta.wma(rsiValue, wmaLength)

// Define overbought and oversold levels for RSI
overboughtLevel = 70
oversoldLevel = 30

// Strategy logic
longCondition = ta.crossover(rsiValue, wmaValue)
shortCondition = ta.crossunder(rsiValue, wmaValue)

// Execute trades
if (longCondition)
    strategy.entry("Long", strategy.long, comment="BUY")
if (shortCondition)
    strategy.entry("Short", strategy.short, comment="SELL")

// Plotting for visualization
plot(rsiValue, title="RSI", color=color.blue)
plot(wmaValue, title="WMA", color=color.orange)
hline(overboughtLevel, "Overbought Level", color=color.red)
hline(oversoldLevel, "Oversold Level", color=color.green)

// Plot buy and sell signals on the chart
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)