
RSI 축평균선 교차 전략은 RSI 지표와 간단한 이동 평균을 계산하고 두 사람의 금叉死叉를 관찰하여 진출을 판단합니다. 이 전략은 동시에 부린带을 RSI 축평균선으로 추가 지원 저항 판단에 결합합니다.
이 전략은 먼저 14일 RSI 지표를 계산하고, 그 다음에는 RSI 지표의 8일 간단한 이동 평균을 계산한다. RSI 지표가 아래에서 위로 이동하는 평균을 돌파할 때 구매 신호를 발생시키고, RSI가 위에서 아래로 이동하는 평균을 돌파할 때 판매 신호를 발생시킨다.
동시에 이 전략은 RSI 축평균선에 부린 반을 추가한다. 부린 반은 RSI 축평균선이 상대적으로 너무 꽉 차있는지 판단하기 위해 표준 차이를 계산하여 높은 것을 사서 낮은 것을 팔지 않도록한다.
RSI 축평균선 교차전략은 트렌드 지표 RSI와 곡선 순차 지표 이동 평균을 결합하여 시장의 추세와 무작위성을 효과적으로 판단할 수 있습니다. RSI 지표의 수학적 평균은 가격 변동이 신호에 미치는 영향을 더 잘 평행 할 수 있습니다.
이 전략에 추가된 부린 밴드는 표준 차차 원리를 사용하며, 오르락 내리락의 폭을 자동으로 조정할 수 있어 거래 신호의 혼란을 효과적으로 방지한다. 부린 밴드가 좁아질 때, 변화가 서서히 완화되는 것을 나타내며, 역전 기회를 찾는 데 적합하다. 부린 밴드가 넓어질 때, 거래상황이 급격하게 변동하는 기간을 나타내어, 트렌드를 추적하는 데 적합하다.
RSI 축평균형 가로수지 전략의 가장 큰 위험은 RSI 지표와 이동 평균 자체의 지연성이다. 급격한 상황이 올 때, 지표의 계산과 트렌드 판단은 약간의 지연이 있을 것이다. 이것은 구매 지점이 높이고 판매 지점이 낮아질 수 있다.
또 다른 주요 위험은 트렌드 호이 베어 전환 시 지표의 오해입니다. 시장 상황이 변하면서 RSI와 평균 지표가 반응하지 않은 상태에서는 잘못된 거래 신호가 발생하여 손실이 발생합니다.
해결 방법은 RSI 파라미터를 적절하게 조정하여 평균 주기를 줄이는 것; 트렌드형 지표 보조 판단을 추가하는 것; 적절히 느슨한 스톱 레인지.
RSI 축평선교차 전략은 다음과 같은 방향으로 최적화할 수 있다:
RSI 파라미터를 최적화: RSI의 길이를 조정하면 민감성과 안정성을 균형을 잡을 수 있습니다.
이동 평균 파라미터를 최적화: 평균선 유형과 주기 파라미터를 조정하고, 지표의 점진성을 최적화
손해 제도를 늘리십시오: 이동 손해 또는 시간 손해를 설정하여 단독 손실을 제어하십시오.
트렌드 지표와 결합: MACD, KDJ 등의 지표를 추가하여 역전 오류 판단을 피하십시오.
다중 시간 프레임 검증: 더 높은 시간 프레임을 사용하여 트렌드를 확인하고, 함정을 피하십시오.
RSI 축평선교차 전략은 전체적으로 비교적 성숙한 양적 거래 전략이다. 그것은 여러 가지 기술 지표의 장점을 결합하여, 매개 변수 조정 및 다차원 최적화를 통해 시장의 주류 현상에 진입할 수 있다. 이 전략의 가장 큰 위험은 지표의 낙후성이며, 손실을 제어하기 위해 중지 손실과 함께 필요하다. 적절하게 운용되면, RSI 축평선교차 전략은 더 안정적인 투자 수익을 얻을 수 있다.
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// Copyright (c) 2020-present, Alex Orekhov (everget)
// Corrected Moving Average script may be freely distributed under the terms of the GPL-3.0 license.
strategy('rsisma', shorttitle='rsisma')
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"
plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.blue)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")
long = ta.crossover(rsi, rsiMA)
short = ta.crossunder(rsi, rsiMA)
if long
strategy.entry("long", strategy.long)
if short
strategy.close("long", comment = "long TP")
// long1 = close * 9
// long2 = long1 / 100
// long3 = long2 + close
//plot(long3,color=color.blue)
// if short
// strategy.entry("short", strategy.short)
// if long
// strategy.close("short", comment = "short TP")