급변하는 RSI 거래 전략

저자:차오장, 날짜: 2024-01-08 11:50:38
태그:

img

전반적인 설명

이것은 RSI 지표를 사용하여 오스실레이션 시장을 식별하고 시장 오스실레이션 중에 트렌드 역전 기회를 포착하는 거래 전략입니다. 전략은 빠른 RSI 지표에 의해 가격이 오스실레이션 구역에 진입했는지 판단하고 촛불체와 빠른 RSI 신호와 결합하여 진입 시기를 결정합니다.

전략 논리

이 전략은 주로 다음과 같은 원칙에 따라 작동합니다.

  1. 급속한 RSI를 통해 가격의 오스실레이션 동작을 식별합니다. 가격이 과반 구매/ 과반 판매 구역에 들어갔는지 판단합니다.
  2. 촛불 몸의 브레이크오웃과 빠른 RSI 신호로 특정 입력 시기를 결정
  3. 듀얼 필터 메커니즘을 통해 오스실레이션 트렌드가 아닌 경우 잘못된 신호를 피합니다.

특히, 전략은 가격이 30-70 미리 설정된 오스실레이션 범위에 진입했는지 판단하기 위해 이중 기간 RSI를 사용합니다. 또한 거래 신호를 생성하기 전에 촛불 몸의 1/4 또는 1/2를 뚫어야합니다. 이러한 이중 조건 검사를 통해 가짜 신호는 실제 오스실레이션이 발생했을 때만 시장에 진입하는 것을 보장하기 위해 효과적으로 필터링 할 수 있습니다.

이점 분석

이 전략은 다음과 같은 중요한 장점을 보여줍니다.

  1. 빠른 RSI 지표는 오스실레이션 구역에 들어가는/출리는 가격을 빠르게 식별하기 위해 민감합니다.
  2. 이중 시간 프레임 분석은 시장 소음의 간섭을 방지합니다.
  3. 촛불 필터는 실제 트렌드 반전을 확인합니다.
  4. 중간 거래 빈도는 과도한 거래를 방지합니다.

위험 분석

또한 주의해야 할 몇 가지 위험 요소가 있습니다.

  1. 불충분한 이익으로 이어지는 잠재적인 행보 반전 기회
  2. Whipsw 신호는 손실을 일으킬 수 있습니다.
  3. 잘못된 매개 변수 설정은 전략 성능에 영향을 미칩니다.

리스크를 제어하기 위해 매개 변수 조합, 실시간 거래 검증 및 스톱 로스 메커니즘을 조정하는 것이 좋습니다.

최적화 방향

더 많은 최적화를 할 수 있습니다.

  1. 확률 모델을 만들기 위해 다른 지표 신호를 통합
  2. 적응 패러미터 튜닝 모듈 추가
  3. 더 빠른 거래 실행을 위해 algo 거래 모듈을 증가

다중 지표 통합, 적응적 매개 변수 조정 및 알고 거래와 같은 기술을 통해 전략 안정성과 수익성은 다음 단계로 올라갈 수 있습니다.

결론

급변하는 RSI 거래 전략은 급변하는 RSI와 이중 필터 메커니즘을 통해 가격 변동을 식별하고 출입 시기를 결정합니다. 심도 있는 연구와 응용을 가치가있는 효과적인 전략입니다. 실제로는 위험을 모니터링하고 전략의 효율성을 높이기 위해 다차원적 최적화가 필요합니다.


/*backtest
start: 2023-01-07 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's FRSI Strategy v1.22", shorttitle = "FRSI str 1.22", overlay = true )

//Settings
uprsiperiod = input(2, defval = 2, minval = 2, maxval = 50, title = "RSI UP Period")
dnrsiperiod = input(9, defval = 9, minval = 2, maxval = 50, title = "RSI DN Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2018, defval = 2018, 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")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), uprsiperiod)
fastdown = rma(-min(change(rsisrc), 0), dnrsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0

//Body
body = abs(close - open)
emabody = ema(body, 30)

//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2

//Trading
if up
    strategy.entry("Long", strategy.long)
    sps := 1

if exit
    strategy.close_all()
    sps := 0
    

더 많은