RS 인덱스와 이동 평균 조합 전략

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

img

전반적인 설명

이 전략은 이동 평균 라인 및 상대 강도 지수 (RSI) 를 계산하여 구매 및 판매 지점을 식별하여 거래 신호를 생성합니다. RSI 지표가 과소매 또는 과소매 수준에 도달하면 구매 및 판매 신호를 발급합니다. 한편, 소란스러운 거래 신호를 필터링하기 위해 가격의 지원 및 저항 수준을 결정하기 위해 볼링거 밴드를 사용합니다.

전략 원칙

이 전략은 주로 RSI 지표와 다양한 기간의 여러 이동 평균 라인의 조합을 기반으로합니다. 구체적으로 1 일에서 200 일까지 여러 MA와 RSI 지표를 계산합니다. 가격이 200 일 이동 평균을 넘어서고 RSI 지표가 10 이하로 떨어지면 구매 신호를 생성합니다. 가격이 5 일 이동 평균 아래로 넘어가고 1 일 MA가 3 일 MA 아래로 넘어가면 판매 신호를 생성합니다.

이 전략은 또한 가격의 지지 및 저항 수준을 결정하기 위해 볼링거 밴드를 사용합니다. 볼링거 밴드는 중간 밴드, 상부 밴드 및 하부 밴드로 구성됩니다. 가격이 상부 밴드에 접근하면 주가가 과평가되어 간주됩니다. 가격이 하부 밴드에 접근하면 주가가 과평가되어 간주됩니다. 따라서 볼링거 밴드는 주가의 상대적 가치를 효과적으로 판단 할 수 있습니다.

이점 분석

  1. 과잉 구매 및 과잉 판매 수준을 결정하기 위해 RSI 지표를 사용하는 것은 가격 반전 기회를 포착 할 수있는 고전적인 경제학 전략입니다.

  2. 여러 MA 라인을 결합하면 필터링 기능을 향상시키고 갇히지 않도록 할 수 있습니다.

  3. 지원 및 저항 수준을 결정하기 위해 볼링거 밴드를 추가하면 높은 가격과 낮은 가격을 쫓는 것을 더 피할 수 있습니다. 시끄러운 거래 신호를 필터링합니다.

위험 분석

  1. RSI 지표는 쉽게 잘못된 신호를 생성 할 수 있으며 결정하기 위해 가격 행동과 결합해야합니다.

  2. MA 라인은 트렌드를 결정하는 데 자주 사용되지만 가격과 MA 사이의 차이는 전환점을 잘못 판단 할 수 있습니다.

  3. 볼링거 밴드 상부 및 하부 레일을 사용하여 지원 및 저항 수준을 결정하는 것은 지연된 특징을 가지고 있으며 일시적인 극심한 높음과 낮은 점을 정확하게 결정하지 않을 수 있습니다.

  4. 이 전략은 상대적으로 짧은 보유 기간을 채택하고 있으며 단기 시장 소음으로 쉽게 방해 될 수 있습니다.

최적화 방향

  1. 종료 라인을 10 일 또는 20 일 라인으로 변경하는 것과 같은 유지 기간을 적절히 연장하여 테스트 할 수 있습니다.

  2. RSI 매개 변수를 조정하여 (3,5) 매개 변수 또는 (2,8) 매개 변수로 변경하는 것을 테스트 할 수 있습니다.

  3. 볼링거 밴드 매개 변수를 높여서 더 명백한 지지 및 저항 간격을 얻을 수 있습니다.

  4. KDJ 지표, MACD 지표 등과 같은 RSI와 다른 지표의 조합을 테스트 할 수 있습니다.

  5. RSI와 부피 표시 OBV의 조합을 테스트 할 수 있습니다.

요약

이 전략은 비교적 고전적이고 견고하며, 거래 신호를 더 정확하고 신뢰할 수 있도록 다른 지표를 활용합니다. 또한 최적화가 필요한 몇 가지 방향이 있습니다. 핵심은 RSI 지표와 지원 및 저항 수준에 대한 볼링거 밴드 판단의 트렌드 판단 기능을 파악하는 것입니다. 적절한 매개 변수 조정 및 지표 조합 최적화를 통해이 전략은 더 나은 결과를 얻을 수 있습니다.


/*backtest
start: 2023-12-04 00:00:00
end: 2024-01-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Created by ChrisMoody
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy(title="_CM_RSI_2_Strat_Low", shorttitle="_CM_RSI_2_Strategy_Lower", overlay=false)
src = close, 

//RSI CODE
up = rma(max(change(src), 0), 2)                
down = rma(-min(change(src), 0), 2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//Criteria for Moving Avg rules
ma1 = sma(close,1)
ma2 = sma(close,2)
ma3 = sma(close,3)
ma4 = sma(close,4)
ma5 = sma(close,5)
ma6 = sma(close,6)
ma7 = sma(close,7)
ma8 = sma(close,8)
ma9 = sma(close,9)
ma200= sma(close, 120)

//Rule for RSI Color
col = close > ma200 and close < ma5 and rsi < 10 ? lime : close < ma200 and close > ma5 and rsi > 90 ? red : silver

plot(rsi, title="RSI", style=line, linewidth=4,color=col)
plot(100, title="Upper Line 100",style=line, linewidth=3, color=aqua)
plot(0, title="Lower Line 0",style=line, linewidth=3, color=aqua)

band1 = plot(90, title="Upper Line 90",style=line, linewidth=3, color=aqua)
band0 = plot(10, title="Lower Line 10",style=line, linewidth=3, color=aqua)
fill(band1, band0, color=silver, transp=90)

///////////// RSI + Bollinger Bands Strategy


if (close > ma200 and rsi < 10 and rsi >1)
    strategy.entry("RSI_2_L", strategy.long, comment="Bullish")
if (close < ma200 and rsi > 90 and rsi <98)
    strategy.entry("RSI_2_S", strategy.short, comment="Bearish")


strategy.close("RSI_2_L", when = close > ma5 and ma1 < ma3)
strategy.close("RSI_2_S", when = close < ma5 and ma1 > ma2)


더 많은