
이 전략은 RSI를 기반으로 설계되어 RSI를 통해 오버 바이 오버 소드를 판단하여 트렌드 추적을 수행합니다. RSI가 오버 세일 라인보다 낮을 때 더 많이하고 RSI가 오버 바이 라인보다 높을 때 공백을 취하여 트렌드의 주요 흐름을 추적하여 수익을 얻습니다.
이 전략은 RSI 지표를 사용하여 시장의 초고매를 판단한다. RSI 지표는 일정 기간 동안의 상승과 하락을 기반으로 계산된다. RSI가 30보다 낮으면 초고매로 간주되며, RSI가 70보다 높으면 초고매로 간주된다.
구체적으로, 이 전략은 RSI 계산 파라미터를 length=14, overBought=70, overSold=30로 정의합니다. 그리고 RSI 값vrsi를 클로즈 가격에 따라 계산합니다. vrsi가 오버 바이 라인보다 높거나 낮은지 판단합니다.
이런 방식으로, 이 전략은 시장의 주요 트렌드를 포착할 수 있고, 오버셀에서 구매하고, 오버셀에서 판매하며, 트렌드 추적을 구현할 수 있다.
위험 해결 방법:
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
다른 RSI 계산 주기 길이를 테스트할 수 있고, 다른 오버 바이 오버 소스 값을 테스트하여 잘못된 신호를 줄이기 위해 최적의 변수를 찾을 수 있다.
평균선, MACD 등의 지표가 트렌드 방향을 판단할 수 있으며, 트렌드 역점에서 잘못된 신호를 발생하지 않도록 한다.
ATR과 같은 지표에 따라 동적 중지 지점을 설정하여 시장의 변동에 가깝게 중지 할 수 있습니다.
RSI 신호에 기초하여 다른 조건을 추가할 수 있습니다. 예를 들어, 특정 가격대를 돌파하거나 거래량을 확대하는 등 진입 신호로 진입 정밀도를 향상시킵니다.
이 전략은 RSI 지표를 통해 과매매 과매매 상황을 판단하여 트렌드를 포착합니다. 전통적인 추적 중지 손실 전략에 비해 지표를 사용하여 시장 타이밍을 판단하는 장점이 있습니다. 그러나 RSI 지표는 트렌드 역점을 판단할 수 없습니다. 이 전략은 최적화해야하는 방향입니다. 변수 최적화, 트렌드 판단, 동적 중지 등의 방법을 통해 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("RSI Etoro Strategy", overlay=true, max_bars_back=2000)
// To use:
// Capital = capital * leverage
// Slippage Ticks: 3, 5 ? (Mainly for spread)
// etoroStopTicks: Set it accordingly to the stock (to corresponds to etoro default of 50 % for exemple...)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 1995)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 1995)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
etoroStopTicks = input( 120 )
// 120 because it is approximatively the number of ticks for default SL of 50% at x5 leverage for copper (no fee)...
price = close
vrsi = rsi(price, length)
if (not na(vrsi))
if (crossover(vrsi, overSold))
strategy.entry("RsiLE", strategy.long, comment="RsiLE", when = window())
if (crossunder(vrsi, overBought))
strategy.entry("RsiSE", strategy.short, comment="RsiSE", when = window())
strategy.exit("exit SE", "RsiSE", loss=etoroStopTicks, when = window())
strategy.exit("exit LE", "RsiLE", loss=etoroStopTicks, when = window())
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)