급속한 RSI 역전 전략

저자:차오장, 날짜: 2023-12-01 13:37:20
태그:

img여기 제가 작성한 SEO 기사가 있습니다. 코드와 요구 사항에 따라, 전략 이름, 개요, 전략 원칙, 장점 분석, 위험 분석, 최적화 방향, 요약 등이 있습니다.

전반적인 설명

이 전략은 급속한 RSI 반전 거래 전략으로, 주로 RSI가 과잉 구매 또는 과잉 판매 된 경우 반전 기회를 포착합니다. 과잉 구매 및 과잉 판매 수준을 판단하기 위해 3 일 RSI를 사용하여 30 일 MA를 결합하여 돌파 신호를 결정하고, 과잉 구매 또는 과잉 판매 상태 후에 반전이 발생하면 포지션을 개척합니다.

전략 논리

이 전략은 두 가지 지표를 사용합니다.

  1. 3일 RSI는 과잉 구매와 과잉 판매 수준을 판단합니다.

  2. 반전 신호의 강도를 결정하기 위한 30일 MA. 반전 막대체가 30일 MA의 절반 이상이면, 그것은 입문 신호로 사용됩니다.

특정 거래 규칙:

긴 신호: RSI가 하위 한계 (25 기본값) 이하이고 현재 바 몸값이 30일 MA의 절반 이상이면 긴 신호로 이동합니다.

짧은 신호: RSI가 상단계 (디폴트 75) 를 넘어서고 현재 바 몸값이 30일 MA의 절반을 넘으면 짧은 신호로 이동합니다.

출구 신호: 긴 포지션을 보유할 때, RSI가 상위 한도를 넘어서거나, 짧은 포지션을 보유할 때, RSI가 하위 한도를 넘어서, 막대기가 30일 MA의 절반 이상을 차지하는 동안, 포지션을 닫습니다.

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 단기 RSI를 사용하여 단기 반전 기회를 빠르게 잡습니다.

  2. MA 필터와 결합하여 신호 신뢰성을 높이고 범위 제한 시장에서 윙사우를 피합니다.

  3. 통제 가능한 수요, 최대 수요는 너무 크지 않습니다.

  4. 명확한 위치 제어 규칙, 과잉 거래를 피합니다.

위험 분석

이 전략의 위험은 다음과 같습니다.

  1. 실패한 반전 위험. 과잉 구매와 과잉 판매는 반드시 반전으로 이어지지 않습니다.

  2. 트렌드 시장에서 트렌드에 반대하여 거래함으로써 손실 위험이 있습니다.

  3. 너무 엄격한 바 필터 규칙 때문에 기회를 놓치고 있습니다.

  4. 높은 매개 변수 감수성, RSI 및 MA 기간 조정이 필요합니다.

최적화 방향

전략은 다음 측면에서 최적화 될 수 있습니다:

  1. 최적의 기간을 찾기 위해 RSI 매개 변수를 최적화합니다.

  2. 가장 좋은 바 필터 기간을 결정하기 위해 MA 매개 변수를 최적화합니다.

  3. 단 하나의 거래 손실을 제어하기 위해 후속 스톱 손실과 같은 스톱 손실 전략을 추가하십시오.

  4. 트렌드 결정 규칙을 추가하여 트렌드 상거래를 피합니다.

결론

결론적으로, 이것은 단기 반전 중심의 RSI 전략이다. 빠른 RSI 과잉 구매 및 과잉 판매 수준을 식별하여 반전을 포착하고 입력을 확인하기 위해 MA 바 필터를 사용합니다. 장점은 제어 가능한 드라우다운 및 명확한 위치 제어입니다. 단기 거래에 적합하지만 실패한 반전 및 트렌드에 반대하는 거래의 위험을 조심해야합니다. 매개 변수 최적화, 스톱 로스 추가 및 트렌드를 판단함으로써 개선 될 수 있습니다.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.0", shorttitle = "Fast RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
limit = input(25, defval = 25, minval = 1, maxval = 100, title = "RSI limit")
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")

//Fast RSI
src = close
fastup = rma(max(change(src), 0), 3)
fastdown = rma(-min(change(src), 0), 3)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
uplimit = 100 - limit
dnlimit = limit

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

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up = bar == -1 and fastrsi < dnlimit and body > emabody
dn = bar == 1 and fastrsi > uplimit and body > emabody
exit = ((strategy.position_size > 0 and fastrsi > dnlimit) or (strategy.position_size < 0 and fastrsi < uplimit)) and body > emabody

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()

더 많은