RSI 이동 평균 크로스오버 전략 (RSI Moving Average Crossover Strategy) 은 주로 암호화폐 거래에 사용되는 전략이다. RSI 지표에 이동 평균을 적용하고 RSI와 이동 평균 사이의 크로스오버를 기반으로 거래한다. 또한 그 지표가 만들어졌다.
전략은 먼저 RSI 지표를 계산합니다. RSI 지표는 특정 기간 동안 상승 및 하락 움직임에 따라 가격의 힘을 반영합니다. RSI 70 이상은 과소매로 간주되며 30 이하는 과소매로 간주됩니다.
그 다음 전략은 이동 평균을 RSI 지표에 적용합니다. 이동 평균은 무작위 변동을 필터링하고 트렌드 방향을 결정할 수 있습니다. 여기서 10 기간 RSI 이동 평균이 설정됩니다.
RSI가 이동평균을 넘으면 구매 신호로 간주됩니다. RSI가 이동평균을 넘으면 판매 신호로 간주됩니다. 거래는이 두 신호에 따라 수행됩니다.
코드에서, RSI 지표와 연장 기간은 먼저 계산됩니다. 그 다음 RSI의 10 기간 이동 평균 ma는 계산됩니다. ma가 rsi를 넘으면 구매합니다. ma가 rsi를 넘으면 판매합니다.
또한, 코드는 rsi와 ma의 선 차트, 그리고 rsi-ma의 열 차트를 그래프화한다. rsi=70과 rsi=30의 분할 선도 그래프화된다. 해당 신호 화살표는 구매 또는 판매시 차트에 표시된다.
RSI는 과반 구매 및 과반 판매 조건을 판단 할 수 있습니다. 이동 평균은 무작위 변동을 필터링 할 수 있습니다. 둘의 조합은 트렌드 역전 지점을 식별 할 수 있습니다.
RSI 이동 평균 크로스오버는 일부 잘못된 신호를 필터링할 수 있는 비교적 성숙한 거래 전략 아이디어입니다.
전략 코드는 간단하고 명확하고 이해하기 쉽습니다. 플롯 기능은 거래 신호를 명확하게 관찰하기 위해 완료됩니다.
이 전략은 상대적으로 명백한 트렌드를 가진 암호화폐에 잘 작동합니다.
부적절한 RSI 및 이동 평균 기간 매개 변수는 너무 많은 잘못된 신호를 생성 할 수 있습니다.
단지 지표의 교차에 의존하는 것은 완전히 함정에 빠지는 것을 피할 수 없습니다. 트렌드 분석이 결합되어야합니다.
거래 비용은 수익에 어느 정도 영향을 줄 수 있습니다. 포지션 크기는 최적화되어야합니다.
암호화폐 시장의 높은 변동성 때문에 손실 위험을 막기 위해 주의해야 합니다.
위험을 해결하기 위해 매개 변수를 조정하여 지표를 최적화 할 수 있으며, 포지션 크기를 줄일 수 있으며, 스톱 로스를 설정할 수 있으며, 트렌드 분석을 사용하여 신호를 필터링 할 수 있습니다.
다른 기간 매개 변수에서 RSI와 이동 평균의 최적 조합을 연구하십시오.
트렌드가 강할 때 포지션 크기를 늘리고, 트렌드가 불분명할 때 줄여야 합니다.
동적 스톱 손실을 설정하여 트렌드를 추적합니다.
새로운 거래 신호를 형성하기 위해 다른 지표와 RSI를 결합하는 것을 탐구하십시오.
이 전략에 기반한 기계 학습 모델을 탐구하여 승률을 향상시킵니다.
RSI 이동 평균 크로스오버 전략은 추세와 필터링 지표의 장점을 결합하여 비교적 성숙하고 신뢰할 수 있습니다. 전략 논리는 간단하고 명확하며 코드 구현 또한 상당히 완전합니다. 전반적으로 상당히 좋은 암호화폐 거래 전략입니다. 그러나 모든 전략은 최적화가 필요합니다. 더 나은 전략 성능을 달성하기 위해 추세 분석과 결합하여 지속적인 테스트와 조정이 필요합니다.
/*backtest start: 2022-10-31 00:00:00 end: 2023-11-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("RSI w MA Strategy", shorttitle="RSI w MA Strategy", overlay=false, initial_capital=10000, currency='USD',process_orders_on_close=true) //TIME FRAME AND BACKGROUND CONTROL///////////////////////////////////////////// testStartYear = input(2019, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(01, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) testStopYear = input(2022, "Backtest Stop Year") testStopMonth = input(1, "Backtest Stop Month") testStopDay = input(1, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? color.teal : na //bgcolor(testPeriodBackgroundColor, transp=50) testPeriod() => true //////////////////////////////////////////////////////////////////////////////// src = close, len = input(27, minval=1, title="Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) window = input(10, "RSI MA Window") ma = sma(rsi,window) plot(rsi, color=color.orange) colorr= ma > rsi ? color.red : color.green plot(ma,color=colorr) band1 = hline(70) band0 = hline(30) fill(band1, band0, color=color.purple, transp=90) diff = rsi - ma plot(diff,style= plot.style_columns,transp=50,color = colorr) plotshape(crossunder(rsi,ma)?rsi:na,title="top",style=shape.triangledown,location=location.absolute,size=size.tiny,color=color.red,transp=0) plotshape(crossover(rsi,ma)?rsi:na,title="bottom",style=shape.triangleup,location=location.absolute,size=size.tiny,color=color.lime,transp=0) buySignal = crossover(rsi,ma) sellSignal = crossunder(rsi,ma) //TRADE CONTROL///////////////////////////////////////////////////////////////// if testPeriod() if buySignal strategy.close("Short", qty_percent = 100, comment = "Close Short") strategy.entry("Long", strategy.long, qty=.1) if sellSignal strategy.close("Long", qty_percent = 100, comment = "Close Long") strategy.entry("Short", strategy.short, qty=.1) ////////////////////////////////////////////////////////////////////////////////