
RSI 간격의 흔들림 거래 전략은 RSI가 오버 바이 오버 소드 범위에 도달했을 때 역거래를 통해 가격의 흔들림 영역에서 이익을 얻습니다. 이 전략은 가격이 영원히 단독으로 상승하거나 하락하지 않을 것이라는 가정에 기초하여 RSI가 오버 바이 오버 소드 범위에 도달했을 때 가격 회전을 잡는 기회를 통해 수익을 얻습니다.
이 전략은 RSI 지표를 계산하여 가격이 초과 구매 또는 초과 판매 범위에 도달했는지 여부를 판단합니다. 구체적으로, 전략은 먼저 RSI 지표의 길이를 2 주기로 계산합니다. 그리고 RSI 초과 구매 라인을 91으로 설정하고, 초과 판매 라인을 11으로 설정합니다. RSI 상에서 초과 판매 범위를 통과 할 때, 공백; RSI 아래에서 초과 판매 범위를 통과 할 때, 더 많이하십시오.
위험을 제어하기 위해, 전략은 또한 손실을 중지하는 기술을 설정한다. 구체적으로, 더 많은 것을 할 때, 가격이 장시간 가격의 0.5% 이상을 아래로 이동하면 평준을 중지한다.
종합적으로, 이 전략의 핵심 논리는: RSI 지표를 모니터링하여 가격 오버 바이 오버 소드를 판단하고, 구성된 RSI 파라미터에 따라 역거래를 하며, 위험을 제어하기 위해 스톱을 설정하는 것입니다.
RSI를 이용해서 오버 바이 오버 소드를 판단하는 것은 좀 더 고전적이고 신뢰할 수 있는 거래 신호입니다.
역거래는 가격의 일방적인 상승과 하락이 영원히 일어나지 않는다는 가정에 부합하는 과매매를 통해 가격 간격의 변동으로부터 이익을 얻을 수 있다.
단일 거래의 손실을 제어하기 위해 중지 손실을 설정하십시오.
전략적 피드백 프레임워크는 간단하고 명확하며, 이해하기 쉽고 수정할 수 있습니다.
RSI 파라미터와 스톱 로드 폭은 시장의 변화에 따라 유연하게 설정할 수 있다.
RSI는 트렌드 지표로서, 변동이 아닌 지속적인 가격 트렌드가 발생하면 이 전략은 연속적인 손실을 초래할 수 있다.
RSI 파라미터가 잘못 설정되어 거래 신호가 증가하지만 승률이 낮을 수 있습니다.
스톱 손실이 적절하게 설정되지 않으면, 가격의 작은 부분으로 스톱 손실이 유발되거나, 단일 손실이 너무 커질 수 있습니다.
이 전략은 역동적인 시장환경에 더 적합하며, 현저한 추세가 있는 시장에서는 효과가 좋지 않을 수 있다.
너무 큰 포지션을 설정하는 것은 또한 단편적 손실을 증가시킬 수 있습니다.
다른 지표들 (MACD 등) 과 RSI를 결합하여 포트폴리오 신호를 형성하여 거래 의사결정의 정확성을 높일 수 있다.
RSI의 통계적 특성을 연구하여 최적의 변수 조합을 찾을 수 있다.
포지션 비율 동적 조정 메커니즘을 설정할 수 있으며, 피드백에서 그 효과를 테스트할 수 있다.
ATR과 같은 지표로 스톱 로드 폭을 계산하는 것을 고려할 수 있으며, 스톱 로드를 더 적응적으로 만들 수 있다.
기계학습과 같은 방법을 결합하여 최적의 파라미터 조합을 찾을 수 있다.
RSI와 결합된 다른 역전 거래 전략을 탐색하여 보다 안정적인 거래 시스템을 형성할 수 있습니다.
RSI 간격의 흔들림 거래 전략은 간단한 RSI 지표에 의해 가격 과매매를 판단하여 역거래를 하고, 손실 통제 위험을 설정한다. 이 전략은 흔들림 반동의 시장 환경에 적합하며, 간격의 가격 변동을 포착하여 이익을 얻는다. 그러나 RSI가 트렌드 지표로서의 한계도 있다. 이 전략은 트렌드가 명백한 시장에는 적합하지 않을 수 있다.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple RSI Strategy", overlay=true)
var rsiLength = input(2, title = "rsi Length")
var float rsiBuyLevel = input(11, title = "What rsi level triggers a long")
var float rsiShortLevel = input(91, title = "What rsi level triggers a short")
var float maxRisk = input(.05, title="Maximum risk/ trade")
var chartEntryStop = input(.005, title="Max Movment in the opposite direction / trade")
var float longEntryPrice = na
var float shortEntryPrice = na
rsiValue = ta.rsi(close, rsiLength)
var float maxRiskValue = (strategy.equity * maxRisk) / chartEntryStop
var float maxRsi = 0
//Conditions
// Strategy Execution
if( close <= longEntryPrice-(longEntryPrice*chartEntryStop ))
strategy.close("Long")
if( close >= shortEntryPrice+(shortEntryPrice*chartEntryStop ))
strategy.close("Short")
if (rsiValue <= rsiBuyLevel and maxRsi == rsiShortLevel)
maxRsi := rsiBuyLevel
strategy.close("Short")
strategy.entry("Long", strategy.long)
longEntryPrice := close
else if (rsiValue >= rsiShortLevel and maxRsi == rsiBuyLevel)
maxRsi := rsiShortLevel
strategy.close("Long")
strategy.entry("Short", strategy.short)
shortEntryPrice := close
else if (rsiValue >= rsiShortLevel )
maxRsi := rsiShortLevel
strategy.close("Long")
else if (rsiValue <= rsiBuyLevel )
maxRsi := rsiBuyLevel
strategy.close("Short")