멀티 RSI 지표 거래 전략은 트렌드를 추적하기 위해 여러 RSI 지표를 결합하여 거래 기회를 식별합니다. 전략은 1-5 RSI 지표를 유연하게 활용하고 지표 값에 따라 입출시기를 결정합니다.
이 전략은 입력 매개 변수를 통해 1-5개의 RSI 지표를 선택할 수 있다. 각 RSI 지표는 기간 및 한계 값으로 독립적으로 구성될 수 있다. 어떤 RSI가 한계 값 아래로 떨어지면 구매 신호가 트리거된다. 신호 강도는 트리거된 RSI 지표의 기간에 의해 결정되며, 더 높은 기간은 더 강한 신호를 의미한다. RSI가 한계를 넘어 다시 상승하면 클로즈 포지션 신호가 트리거된다. 이 전략은 컬러 필터를 사용하고 거래 시간을 제한할 수 있는 유연성을 제공한다.
이 전략의 가장 큰 장점은 정확성을 향상시키기 위해 다양한 RSI를 사용하여 여러 시간 프레임을 평가하는 능력이며, 트렌드 및 반전 기회를 길고 짧은 차원에서 판단하여 정확성을 향상시킵니다. 또한 각 RSI 지표의 유연한 구성은 다양한 시장에서 적응력을 크게 확장시킵니다. 가짜 브레이크오웃은 색상 필터를 사용하여 효율적으로 필터링 할 수 있습니다. 거래 시간 및 포지션 사이징과 같은 위험 관리 모듈은 효과적인 위험 관리를 제공합니다.
주요 위험은 여러 RSI 판단을 결합할 때 상충되는 신호입니다. 예를 들어, 짧은 RSI는 구매를 생성하고 더 긴 RSI는 여전히 과판됩니다. 어떤 신호가 우선 순위를 차지하는지 결정하려면 경험에 의존해야합니다. 또한, RSI는 다른 지표 또는 큰 계정을 사용하여 검증을 필요로하는 윙사 (wipssaws) 에 유연합니다.
이 전략은 이동 평균 또는 볼린거 대역과 같은 트렌드 보조 지표를 추가하여 RSI 신호를 검증하고 정확도를 향상시킬 수 있습니다. 또한 특정 기계 학습 알고리즘도 탐색 할 수 있으며, 멀티-팩터 점수를 사용하여 신호 신뢰성을 자동으로 결정할 수 있습니다. 위험 통제를 위해 부동 손실 또는 최대 드라운 다운 스톱 라인을 중지 손실 목적으로 구현 할 수 있습니다.
요약하자면, 멀티 RSI 지표 거래 전략은 매우 혁신적입니다. 지표 조합과 매개 변수에서의 유연성은 진화하는 시장에 적응 할 수있게합니다. 기계 학습 알고리즘과 모듈형 설계로 인해 더 많은 위험 관리 조치를 통합하여 추가 개선이 가능합니다.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Symphony Strategy v1.1", shorttitle = "Symphony str 1.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 20) //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, %") usersi1 = input(true, defval = true, title = "Use RSI 1") rsiperiod1 = input(4, defval = 4, minval = 2, maxval = 100, title = "RSI 1 Period") rsilimit1 = input(20, defval = 20, minval = 2, maxval = 50, title = "RSI 1 Limit") usersi2 = input(true, defval = true, title = "Use RSI 2") rsiperiod2 = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI 2 Period") rsilimit2 = input(25, defval = 25, minval = 2, maxval = 50, title = "RSI 2 Limit") usersi3 = input(true, defval = true, title = "Use RSI 3") rsiperiod3 = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI 3 Period") rsilimit3 = input(30, defval = 30, minval = 2, maxval = 50, title = "RSI 3 Limit") usersi4 = input(false, defval = false, title = "Use RSI 4") rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period") rsilimit4 = input(35, defval = 35, minval = 2, maxval = 50, title = "RSI 4 Limit") usersi5 = input(false, defval = false, title = "Use RSI 5") rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period") rsilimit5 = input(40, defval = 40, minval = 2, maxval = 50, title = "RSI 5 Limit") cf = input(false, defval = false, title = "Use color filter") fromyear = input(1900, defval = 1900, 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") //RSI rsi1 = rsi(close, rsiperiod1) rsi2 = rsi(close, rsiperiod2) rsi3 = rsi(close, rsiperiod3) rsi4 = rsi(close, rsiperiod4) rsi5 = rsi(close, rsiperiod5) //Signals up1 = rsi1 < rsilimit1 and usersi1 up2 = rsi2 < rsilimit2 and usersi2 up3 = rsi3 < rsilimit3 and usersi3 up4 = rsi4 < rsilimit4 and usersi4 up5 = rsi5 < rsilimit5 and usersi5 str = up5 ? 5 : up4 ? 4 : up3 ? 3 : up2 ? 2 : up1 ? 1 : str[1] up = up1 or up2 or up3 or up4 or up5 exit = (rsi1 > rsilimit1 and str == 1) or (rsi2 > rsilimit2 and str == 2) or (rsi3 > rsilimit3 and str == 3) or (rsi4 > rsilimit4 and str == 4) or (rsi5 > rsilimit5 and str == 5) lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] //Background col = up ? lime : na bgcolor(col, transp = 0) //Trading if up and (close < open or cf == false) strategy.entry("Long", strategy.long, 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()