
다중 RSI 지표 집합 전략은 여러 상대 강도 지표 (RSI) 를 사용하여 주식을 선택 할 때 거래하는 전략이다. 이 전략은 동시에 1, 2, 3, 4, 5 개의 다른 주기 RSI 지표를 사용하며, RSI 지표가 설정된 한계 값보다 낮으면 구매 신호를 발생시키고, 모든 RSI 지표가 각자의 한계 값보다 높으면 판매 신호를 발생시켜 주식의 시간적 입지와 출구를 구현한다.
이 전략의 핵심 논리는 4주기, 7주기, 14주기, 21주기 및 28주기 RSI를 포함한 1, 2, 3, 4, 5개의 다른 주기의 RSI 지표를 동시에 추적하는 것입니다. 이 5개의 RSI 지표는 각각 다른 제한값을 설정하고, 어떤 RSI 지표가 해당 제한값보다 낮으면 구매 신호가 발생합니다.
예를 들어, 4주기 RSI 지표의 한계 값은 15로 설정되어 있으며, 4주기 RSI가 15보다 낮으면 구매 신호가 발생한다. 전략은 동시에 다른 주기의 RSI 지표가 해당 한계 값보다 낮는지 검출하고, 만약 그렇다면 구매 신호도 발생한다.
모든 5개의 RSI 지표가 각자의 경계 값보다 높을 때, 판매 신호가 생성되어 수익이 이루어집니다. 이렇게 여러 주기 지표의 신호를 집합하여 엔트리의 정확성을 향상시킬 수 있습니다.
이 전략은 5개의 다른 주기 RSI 지표를 동시에 사용하며, 어느 RSI가 한계 값보다 낮을 때 구매 신호를 발생시킨다. 이것은 신호의 신뢰성을 높이고, 단일 지표로 인한 잘못된 신호를 피한다. 여러 지표의 집합은 엔트리의 정확성을 향상시킬 수 있다.
1, 2, 3, 4, 5주기의 RSI 지표를 사용하여 다른 주기의 주가 변동에 적응 할 수 있습니다. 예를 들어, 28주기 RSI는 장거리 거래에 적합하며, 4주기 RSI는 단거리 거래에 적합합니다. 이것은 여러 시장 상황에서 전략이 정상적으로 작동 할 수 있음을 보장합니다.
정책의 변수 명칭과 코드 구조는 매우 명확하며, 다른 지표와 신호의 계산 과정은 한눈에 보인다. 이것은 정책을 쉽게 이해하고, 수정하고 최적화 할 수 있게 한다. 이것은 양적 전략의 매우 중요한 장점이다.
이 전략은 주로 오버 바이 오버 셀 신호를 생성하는 데 의존하며, 단편적으로 상승하거나 하락하는 트렌드 상황에서 그 효과는 할인됩니다. 이것은 역전 지표를 사용하는 전략이 보편적으로 발생하는 문제입니다.
전략에는 여러 지표와 매개 변수가 포함되어 있어 매개 변수 최적화에 큰 어려움이 있다. 불합리한 매개 변수 조합은 전략 효과를 크게 감소시킬 수 있다. 이는 최적화 도구를 사용하여 최적의 매개 변수를 찾는 것이 필요하다.
여러 주기적 지표가 사용됨에 따라, 전략의 다공간 전환이 더 자주 발생할 수 있으며, 이는 더 높은 거래 비용과 슬라이드 포인트 위험을 초래한다.
MA 또는 BOLL와 같은 추세 지표에 가입할 수 있으며, 일방적인 상황에서는 할인되지 않는다. 예를 들어, 추세 지표도 반전을 동의하는 경우에만 출전한다.
사용된 RSI 지표의 수를 줄이고, 변수 최적화를 하는 데 어려움을 줄여주십시오. 실험에 따르면 2-3개의 지표 조합이 좋은 효과를 얻을 수 있습니다.
단계적 최적화, 무작위적 최적화와 같은 방법을 사용하여 각 RSI 변수의 최적의 범위와 조합을 찾아서 전략의 성능을 극대화하십시오.
다중 RSI 지표 집합 전략은 congregation 다중 주기 RSI의 signals를 통해, entries의 정확성을 향상시키고, 주식의 timing trading을 구현한다. 그것은 여러 가지 지표를 이용하는 장점이 있지만, 일방적 인 실효성, 최적화가 어려운 문제 등이 있습니다. 트렌드 지표를 추가하고, 지표 수를 줄이고, 최적화 파라미터를 사용하는 방법 등이 전략 Robustness을 더욱 향상시킬 수 있다.
/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Symphony v1.0", shorttitle = "Symphony 1.0", 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(15, defval = 15, 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(20, defval = 20, 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(25, defval = 25, minval = 2, maxval = 50, title = "RSI 3 Limit")
usersi4 = input(true, defval = true, title = "Use RSI 4")
rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period")
rsilimit4 = input(30, defval = 30, minval = 2, maxval = 50, title = "RSI 4 Limit")
usersi5 = input(true, defval = true, title = "Use RSI 5")
rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period")
rsilimit5 = input(35, defval = 35, 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
up = up1 or up2 or up3 or up4 or up5
exit = rsi1 > rsilimit1 and rsi2 > rsilimit2 and rsi3 > rsilimit3 and rsi4 > rsilimit4 and rsi5 > rsilimit5
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, needlong == false ? 0 : lot)
if exit
strategy.close_all()