더블 RSI 브레이크아웃 양적 거래 전략


생성 날짜: 2024-01-18 15:25:11 마지막으로 수정됨: 2024-01-18 15:25:11
복사: 0 클릭수: 740
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 RSI 브레이크아웃 양적 거래 전략

개요

이중 RSI 돌파 전략은 빠른 RSI와 느린 RSI 지표를 동시에 사용하여 거래 신호를 생성하는 양적 거래 전략이다. 이 전략은 두 가지 RSI 지표 사이의 빠른 느린 돌파구를 통해 거래 신호를 형성하여 시장 추세를 추적하는 효과를 달성한다.

전략 원칙

이 전략은 두 개의 RSI 지표를 동시에 사용하며, 빠른 RSI 지표의 주기는 2이고, 느린 RSI 지표의 주기는 14이다. 전략의 거래 신호는 두 개의 RSI 지표 사이의 돌파구에서 나온다.

느린 RSI가 50보다 크면, 빠른 RSI가 50보다 작으면, 더 많은 신호를 생성합니다. 느린 RSI가 50보다 작으면, 빠른 RSI가 50보다 크면, 더 많은 신호를 생성합니다. 더 많은 코스피를 수행 한 후, 손실 신호가 발생하면 (더 많은 손실이 발생할 때 빨간색 K 선 줄이 나타나면, 빈 손실이 발생할 때 녹색 K 선 줄이 나타나면) 평지 손실이 발생합니다.

우위 분석

  • RSI 지표의 과매매 특성을 활용하여 거래 신호를 형성하고, 상하를 쫓는 것을 피합니다.
  • 빠른 속도 RSI와 결합하여 시장의 추세 변화를 추적하고 적시에 입출력을 구현할 수 있습니다.
  • 중·장기 동향을 추적하고, 단기 시장의 소음에 방해받지 않도록 한다.
  • 리스크가 통제되고, 손해배상 장치가 있습니다.

위험과 해결책

  • 가짜 돌파의 위험. 해결책은 합리적으로 빠른 느린 RSI의 매개 변수를 설정하여 실제 돌파를 보장하는 것입니다.
  • 스톱포인트 설정이 부적절한 위험. 해결책은 시장의 변동성에 따라 합리적으로 스톱포인트 거리를 설정하는 것이다.
  • 나선형 손실 위험. 해결책은 추락을 쫓지 않고, 전략 규칙에 따라 엔트리와 엑시트를 수행하는 것이다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. RSI의 파라미터를 최적화하여 최적의 파라미터 조합을 찾을 수 있습니다.
  2. 다른 지표들을 도입하여 조합하여 더 신뢰할 수 있는 거래 신호를 만들 수 있습니다.
  3. 동적 스톱로드를 설정하여 시장의 변동에 따라 실시간으로 스톱로드를 조정할 수 있습니다.

요약하다

이중 RSI 돌파 전략은 빠른 느린 RSI 지표를 사용하여 시장 추세 변화를 추적하고, 과잉 구매 과잉 판매 영역에서 거래 신호를 형성하여 고상하를 추적하는 것을 효과적으로 피할 수 있습니다. 동시에 위험을 제어하기 위해 손해 중지 장치를 설정합니다. 이 전략은 작동이 간단하고 구현하기 쉽고, 수량 거래에 적합합니다. 변수 최적화, 조합 지표 등의 방법으로 전략 profit 요소를 추가적으로 향상시킬 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Double RSI Strategy 1.0", shorttitle = "2RSI str 1.0", overlay=true )

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
fast = input(2, defval = 2, minval = 2, maxval = 100, title = "Fast RSI Period")
slow = input(14, defval = 14, minval = 2, maxval = 100, title = "Slow RSI Period")
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")

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

//Slow RSI
slowup = rma(max(change(close), 0), slow)
slowdown = rma(-min(change(close), 0), slow)
slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown))

//Signals
up = slowrsi > 50 and fastrsi < 50
dn = slowrsi < 50 and fastrsi > 50
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)
lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1]

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot )

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot )
    
if exit
    strategy.close_all()