RSI와 MA의 조합 전략

RSI MA EMA SMA HMA WMA STOCHRSI
생성 날짜: 2024-05-28 17:34:11 마지막으로 수정됨: 2024-05-28 17:34:11
복사: 2 클릭수: 1310
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

RSI와 MA의 조합 전략

개요

이 전략은 RSI 지표와 이동 평균 ((MA) 을 결합하여 거래 신호를 생성한다. RSI는 시장이 과매매 또는 과매매 여부를 판단하는데, MA는 가격 동향을 판단하는데. RSI가 과매매되고 MA보다 가격이 높을 때 구매 신호를 생성한다. RSI가 과매매 또는 MA가 사다리기를 생성할 때 판매 신호를 생성한다. 또한, 전략은 무작위 RSI 지표 ((StochRSI) 를 보조 판단으로 도입하여, StochRSI가 신호를 생성할 때 도표에 팁을 표시한다.

전략 원칙

  1. RSI 지표값을 계산하여 시장이 과매매 (<70) 또는 과매매 (<30) 되는지 판단합니다.
  2. 4가지 타입의 EMA, SMA, HMA, WMA를 포함하는 사용자 정의 주기 MA를 계산하고, 파라미터 설정에 따라 그래프에 표시되는지를 결정한다.
  3. RSI가 오버바이하고 마가보다 클로즈가 높을 때, 구매 신호를 생성한다. RSI가 오버바이하거나 마가 사다리를 생성할 때, 판매 신호를 생성한다.
  4. StochRSI 지표가 보조 판단으로 도입되면, StochRSI가 과매매 (<70) 또는 과매매 (<30) 할 때 차트에 힌트를 표시하지만 실제 거래 신호는 발생하지 않습니다.

전략적 이점

  1. RSI와 MA는 두 가지의 고전적인 지표들을 유기적으로 결합하여 트렌드 상황을 더 잘 포착하고 오버 구매와 오버 판매 시기를 더 잘 포착합니다.
  2. MA 유형과 매개 변수는 자유롭게 설정할 수 있으며, 다양한 시장 특성에 따라 조정할 수 있다.
  3. 거래 결정에 더 많은 참고 자료를 제공하기 위해 StochRSI 지표를 보조 판단으로 도입했습니다.
  4. 코드 논리는 명확하고, 읽기 쉽고, 이해하기 쉽고, 재개발하기 쉽다.

전략적 위험

  1. RSI와 MA는 지연된 지표이며, 트렌드 반전의 초기에는 더 많은 잘못된 신호가 발생할 수 있습니다.
  2. 파라미터를 잘못 설정하면 신호가 너무 일찍 또는 너무 늦게 발생하여 전체 수익에 영향을 줄 수 있습니다.
  3. 시장이 급격히 변동할 때, 스톱 손실과 포지션 관리 부족으로 인해 더 큰 위험을 감수할 수 있습니다.

전략 최적화 방향

  1. 트렌드 전환을 미리 판단하기 위해 변동률과 같은 더 많은 선행 지표를 도입하십시오.
  2. 구매 및 판매 신호를 필터링하여 RSI와 MA가 동시에 특정 조건을 충족하도록 요구하면 신호를 생성하여 신호의 정확성을 높인다.
  3. 전략에 스톱로스 및 포지션 관리 모듈을 추가하여 단일 거래 위험과 전체 위험을 제어합니다.
  4. 전략에 대한 변수 최적화, 최적의 변수 조합을 찾는 것.
  5. 다른 주기 또는 여러 품종을 포함시키는 것을 고려하고, 각 품종 또는 주기 사이의 연관 관계를 최대한 활용한다.

요약하다

이 전략은 RSI와 MA를 결합하여 트렌드 상황과 오버 바이 오버 시점을 포착 할 수 있으며, 스토크RSI 지표를 보조 판단으로 도입합니다. 전체적인 아이디어는 간단하고 명확합니다. 그러나 전략에는 위험 제어 장치의 부족과 신호 정확도가 개선되어야하는 것과 같은 몇 가지 결함이 있습니다. 미래에는 더 많은 지표, 최적화 신호 규칙, 위험 제어 모듈 등을 도입하여 전략을 개선 할 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Strategy with Customizable MA and StochRSI Alert", overlay=true)

// กำหนดค่า RSI สำหรับการเปิดสัญญาณซื้อและขาย
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")

// เลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
maType = input.string("EMA", title="MA Type", options=["EMA", "SMA", "HMA", "WMA"])

// กำหนดค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShortLength = input(12, title="MA Short Length")
maLongLength = input(26, title="MA Long Length")

// เลือกการแสดงผลของเส้นค่าเฉลี่ยเคลื่อนที่
showShortMA = input(true, title="Show Short Moving Average")
showLongMA = input(true, title="Show Long Moving Average")

// ฟังก์ชันสำหรับเลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
f_ma(src, length, type) =>
    switch type
        "SMA" => ta.sma(src, length)
        "EMA" => ta.ema(src, length)
        "HMA" => ta.hma(src, length)
        "WMA" => ta.wma(src, length)

// คำนวณค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShort = showShortMA ? f_ma(close, maShortLength, maType) : na
maLong = showLongMA ? f_ma(close, maLongLength, maType) : na

// คำนวณค่า RSI
rsiValue = ta.rsi(close, 14)

// สร้างสัญญาณซื้อและขาย
buySignal = (rsiValue > rsiOverbought and ((showShortMA and showLongMA and close > maShort and maShort > maLong) or (showShortMA and not showLongMA and close > maShort) or (showLongMA and not showShortMA and close > maLong)))
sellSignal = (showShortMA and showLongMA and ta.crossover(maLong, maShort)) or (showShortMA and not showLongMA and ta.crossover(maShort, close)) or (showLongMA and not showShortMA and ta.crossover(maLong, close))

// แสดงค่าเส้นค่าเฉลี่ยเคลื่อนที่บนกราฟ
plot(maShort, color=color.red, title="MA Short")
plot(maLong, color=color.green, title="MA Long")

// คำนวณค่า Stochastic RSI
smoothK = 3
smoothD = 3
RSIlen = 14
STOlen = 14
SRsrc = close
OSlevel = 30
OBlevel = 70

rsi1 = ta.rsi(SRsrc, RSIlen)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, STOlen), smoothK)
d = ta.sma(k, smoothD)

stochRSIOverbought = OBlevel
stochRSIOversold = OSlevel

stochRSIBuyAlert = ta.crossover(k, stochRSIOversold)
stochRSISellAlert = ta.crossunder(k, stochRSIOverbought)

// สร้างคำสั่งซื้อและขายเมื่อมีสัญญาณจาก RSI และ MA เท่านั้น
if (buySignal)
    strategy.entry("Buy", strategy.long)
if (sellSignal)
    strategy.close("Buy")

// แสดงสัญญาณเตือนจาก Stochastic RSI บนกราฟ
plotshape(series=stochRSIBuyAlert, location=location.belowbar, color=color.green, style=shape.labelup, title="StochRSI Buy Alert")
plotshape(series=stochRSISellAlert, location=location.abovebar, color=color.red, style=shape.labeldown, title="StochRSI Sell Alert")

// แสดงสัญญาณซื้อและขายจาก RSI และ MA บนกราฟ
plotshape(series=buySignal, location=location.top, color=color.green, style=shape.triangleup, title="RSI>70")
plotshape(series=sellSignal, location=location.top, color=color.red, style=shape.triangledown, title="MA crossoverDown")