이중 RSI 평균 반전 전략 (Dual RSI Mean Reversion Strategy) 은 두 개의 RSI 지표를 사용하여 서로 다른 시간 프레임에서 과반 구매 및 과반 판매 조건을 식별하는 트렌드 다음 전략이다. 이 전략은 과반 판매 조건 후에 길게 이동하고 과반 구매 조건 후에 짧게 이동하여 평균 반전을 활용하는 것을 목표로합니다. 이 전략은 하이킨-아시 촛불, RSI 지표 및 오픈 컬러 필터를 사용하여 거래 기회를 식별합니다.
이 전략은 서로 다른 기간을 가진 두 개의 RSI 지표를 사용합니다. 하나는 5 분 차트, 하나는 1 시간 차트입니다. RSI 지표의 경우 30 이하의 과판 수준과 70 이상의 과반 구매 수준이 식별됩니다.
그것은 RSI 값을 추적하고 RSI가 30 이하 또는 70 이상의 정의된 수의 바를 위해 RSI가 지속된 과판 또는 과입 상태를 나타내는 상황을 찾습니다.
또한, 그것은 하이킨-아시 촛불을 사용하고 거래에 들어가기 전에 트렌드 방향을 확인하기 위해 정의된 수의 녹색 또는 빨간 촛불을 검사합니다. 열린 색상 필터는 잘못된 신호를 피하는 데 도움이됩니다.
RSI와 하이킨-아시 조건이 모두 일치하면 전략은 지나치게 팔린 조건에 따라 길게 또는 지나치게 구매 된 조건에 따라 짧게 이동하여 평균으로 회귀 할 것입니다.
거래는 하루가 끝나면 닫습니다. 하루가 지나지 않아야 합니다.
이중 RSI 평균 반전 전략은 거래 동력에 대한 규칙 기반의 접근 방식을 취한다. 두 가지 시간 프레임, 과잉 구매 / 과잉 판매 지표, 촛불 분석 및 엔트리 필터를 결합하여 높은 확률의 평균 반전 설정을 식별하는 것을 목표로합니다. 엄격한 위험 관리 및 신중한 위치 사이징은 인수와 마감 관리의 균형을 잡는데 도움이됩니다. 추가 최적화 및 견고성 테스트는 다양한 시장에서 성공적으로 배치하는 데 도움이 될 것입니다.
/*backtest start: 2023-09-01 00:00:00 end: 2023-09-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Gidra //2018 //@version=2 strategy(title = "Gidra's Vchain Strategy v0.1", shorttitle = "Gidra's Vchain Strategy v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") rsiperiod = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI period") rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI limit") rsibars = input(3, defval = 3, minval = 1, maxval = 20, title = "RSI signals") useocf = input(true, defval = true, title = "Use Open Color Filter") openbars = input(2, defval = 2, minval = 1, maxval = 20, title = "Open Color, Bars") showrsi = input(true, defval = true, title = "Show indicator RSI") fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day") //Heikin Ashi Open/Close Price o=open c=close h=high l=low haclose = (o+h+l+c)/4 haopen = na(haopen[1]) ? (o + c)/2 : (haopen[1] + haclose[1]) / 2 hahigh = max (h, max(haopen,haclose)) halow = min (l, min(haopen,haclose)) col=haopen>haclose ? red : lime plotcandle(haopen, hahigh, halow, haclose, title="heikin", color=col) //RSI uprsi = rma(max(change(close), 0), rsiperiod) dnrsi = rma(-min(change(close), 0), rsiperiod) rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi)) uplimit = 100 - rsilimit dnlimit = rsilimit rsidn = rsi < dnlimit ? 1 : 0 rsiup = rsi > uplimit ? 1 : 0 //RSI condition rsidnok = highest(rsidn, rsibars) == 1? 1 : 0 rsiupok = highest(rsiup, rsibars) == 1? 1 : 0 //Color Filter bar = haclose > haopen ? 1 : haclose < haopen ? -1 : 0 gbar = bar == 1 ? 1 : 0 rbar = bar == -1 ? 1 : 0 openrbarok = sma(gbar, openbars) == 1 or useocf == false opengbarok = sma(rbar, openbars) == 1 or useocf == false //Signals up = openrbarok and rsidnok dn = opengbarok and rsiupok lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] //Indicator RSI colbg = showrsi == false ? na : rsi > uplimit ? red : rsi < dnlimit ? lime : na bgcolor(colbg, transp = 20) //Trading if up strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59)// or exit strategy.close_all()