
이 전략은 상대적으로 강한 지수 ((RSI) 의 과매도 및 과매도 수준을 기반으로 거래를 자동으로 실행한다. RSI가 사용자 설정된 과매도 수준보다 낮으면 더 많은 포지션을 열고, RSI가 사용자 설정된 과매도 수준보다 높으면 포지션을 공백한다. 포지션을 일정 시간 후에 자동으로 평정한다. 모든 매개 변수는 사용자가 직접 설정할 수 있으며, RSI, 과매도 및 과매도 수준 및 포지션 시간을 포함한다.
상대적으로 강한 강도 (RSI) 는 최근 가격 변화의 폭을 측정하는 동력 지표이다. 그것의 가치 범위는 0에서 100 사이이다. 전통적인 해석에 따르면, RSI가 70보다 높으면 과매를 의미하고, 30보다 낮으면 과매를 의미한다. 이 전략은 이 원칙을 이용해서, RSI가 과매할 때 구매하고, 과매할 때 판매하며, 가격의 단기 반전을 잡으려고 한다. 동시에, 위험을 통제하기 위해, 전략은 일정 시간 후에 자동으로 포지션을 평형시킨다.
간단하고 이해하기 쉬운: 이 전략은 고전적인 기술 분석 지표 RSI를 기반으로 하고, 논리는 명확하고 이해하기 쉽고 실행하기 쉽다.
변수 유연성: 사용자는 자신의 선호도와 시장 특성에 따라 RSI 주기를, 오버 바이 오버 소매 시점 및 포지션 기간과 같은 변수를 유연하게 설정할 수 있습니다.
높은 자동화: 전략은 자동으로 RSI 수준을 모니터링하고, 포지션 개시 및 포지션 평화 작업을 수행하며, 인적 개입과 감정 영향을 줄일 수 있습니다.
적응성: 매개 변수를 조정하여 이 전략은 다른 시장 환경과 거래 품종에 적용될 수 있다.
파라미터를 최적화하는 데 어려움이 있습니다. 시장 환경의 최적의 파라미터 조합은 크게 다를 수 있으며 적절한 파라미터를 찾는 데에는 많은 피드백과 분석 작업이 필요합니다.
시장 추세 위험: 시장에서 강력한 일방적인 추세가 나타나면, 이 전략은 자주 거래되어 손실을 초래할 수 있다.
잘못된 신호 위험: RSI는 잘못된 신호를 만들어서 전략이 잘못된 거래를 할 수 있습니다.
블랙 스완 사건: 전략은 극단적인 상황에 대한 적응력이 제한되어 있으며, 블랙 스완 사건의 경우 큰 손실을 입을 수 있습니다.
다른 지표와 결합: RSI에만 의존하는 것은 충분히 안정적이지 않을 수 있습니다. 이동 평균, MACD와 같은 다른 기술 지표와 결합하여 신호의 신뢰성을 향상시킬 수 있습니다.
스톱로스 및 스톱스톱을 도입: 단일 거래의 위험과 수익을 더 잘 제어하기 위해 전략에 스톱로스 및 스톱스톱 메커니즘을 추가합니다.
동적 조정 파라미터: 시장 상황의 변화에 따라, 동적으로 조정 RSI 주기, 과매 과판 경량과 같은 파라미터, 전략이 더 적응 할 수 있도록.
시장 상태 필터: 시장의 변동성, 트렌드 강도 등의 지표에 따라 거래에 적합하지 않은 시장 상태를 필터링하여 전략의 안정성을 향상시킵니다.
이 전략은 RSI 지표의 오버 바이 오버 셀딩 원리를 활용하여 간단하고 이해하기 쉬운 자동화 거래 시스템을 구축한다. 사용자는 다양한 매개 변수를 유연하게 설정할 수 있으며, 전략은 자동으로 거래를 수행한다. 그러나, 전략에는 매개 변수 최적화 난이도가 높고, 트렌드 위험과 가짜 신호 위험 등의 문제도 있다.
/*backtest
start: 2024-04-10 00:00:00
end: 2024-05-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Dougie Trades RSI Strategy V1", overlay=true)
// Inputs for strategy
rsiPeriod = input.int(14, title="RSI Period")
overbought = input.int(70, title="Overbought Level", minval=0, maxval=100)
oversold = input.int(30, title="Oversold Level", minval=0, maxval=100)
exitAfterMinutes = input.int(60, title="Exit After X Minutes", minval=1)
// Calculate RSI
rsi = ta.rsi(close, rsiPeriod)
// Define long and short conditions based on RSI
longCondition = rsi < oversold
shortCondition = rsi > overbought
var float entryTime = na
// Execute trades and track entry time
if (longCondition)
strategy.entry("Go Long", strategy.long)
entryTime := time
if (shortCondition)
strategy.entry("Go Short", strategy.short)
entryTime := time
// Exit logic after 'x' minutes
if (not na(entryTime) and (time - entryTime) / 60000 >= exitAfterMinutes)
strategy.close("Go Long")
strategy.close("Go Short")
entryTime := na // Reset entry time after exit
// Plotting RSI and thresholds
plot(rsi, title="RSI", color=color.blue)
hline(overbought, "Overbought Level", color=color.red)
hline(oversold, "Oversold Level", color=color.green)