트리플 상대 강도 지수 양적 거래 전략

RSI SMA
생성 날짜: 2024-05-15 10:23:08 마지막으로 수정됨: 2024-05-15 10:23:08
복사: 0 클릭수: 841
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

트리플 상대 강도 지수 양적 거래 전략

개요

이 전략은 주로 상대적으로 강한 지수 ((RSI) 를 이용하여 시장의 과매매 상황을 판단하고, 가격과 200일 간단한 이동 평균 ((SMA) 의 위를 트렌드 필터 조건으로 결합하여, 진입 여부를 결정한다. 이 전략은 트리플 RSI 지표를 통해 공동으로 포지션 개시 조건을 구축하고, 단기 RSI가 35보다 작고 3회 연속으로 하향 경향을 보이고 있는 경우에만, 3회 주기 RSI가 60보다 작고, 현재 종결 시점은 200일 SMA의 위에 있을 때만, 더 많이 한다. 평형 포지션 조건은 RSI가 50을 넘어서야 한다.

전략 원칙

  1. RSI를 계산하는 방법
  2. 다음의 조건이 충족되는지 판단하기 위해:
    • 현재 RSI는 35보다 낮습니다.
    • 현재 RSI는 이전 1주기 RSI, 이전 1주기 RSI는 이전 2주기 RSI, 이전 2주기 RSI는 이전 3주기 RSI보다 작습니다.
    • 3주기 RSI가 60보다 작습니다.
    • 현재 종식 가격은 200일 SMA보다 크다.
  3. 4가지 조건이 모두 충족되면 더 많은 돈을 벌 수 있습니다.
  4. RSI가 50을 넘으면 지분할 수 있습니다.
  5. 2~4단계를 반복하고 다음 거래에 가십시오.

전략적 이점

  1. RSI를 통해 과매매를 판단하고, 과매매 지역에서 포지션을 개설하여 시장 역전 기회를 잡을 수 있습니다.
  2. 트리플 RSI를 통해 포지션 개장 신호를 공동으로 구성하여 가짜 신호의 가능성을 낮추고 신호의 신뢰성을 향상시킵니다.
  3. 200일 평균선 위에 가격을 트렌드 조건으로 추가하여 하향 트렌드에서 거래하는 것을 피합니다.
  4. 평지 조건이 간단하고 명확해서 적시에 수익을 낼 수 있습니다.
  5. 전략 논리는 명확하고, 이해하기 쉽고, 구현하기 쉽습니다.

전략적 위험

  1. RSI 지표는 신호 지연성이 있어 최적의 시점을 놓칠 수 있다.
  2. 상장 조건은 상대적으로 엄격하고 거래 빈도가 낮아 일부 거래가 놓칠 수 있다.
  3. 이 경우, 주식시장의 경우, 주식시장의 경우, 주식시장의 경우, 주식시장의 경우, 주식시장의 경우, 주식시장의 경우.
  4. 전략은 한방의 상승세를 포착할 수 있을 뿐이고, 추세가 뒤집힌 후의 하락세를 포착할 수 없다.

전략 최적화 방향

  1. 단일 거래의 위험을 제어하기 위해 이동 중지 또는 고정 중단을 추가하는 것을 고려할 수 있습니다.
  2. RSI와 다른 보조 지표의 결합을 연구하여 평점 신호의 신뢰성 및 적시에 대해 개선합니다.
  3. 포지션 개시 조건을 최적화하여 신호의 신뢰성을 보장하면서 거래 빈도를 높인다.
  4. 포지션 관리를 도입하여 시장 추세의 강도 및 변동률에 따라 포지션을 동적으로 조정합니다.
  5. 단선과 중선을 고려하여 다양한 시장 상황에 맞는 전략 버전을 개발하십시오.

요약하다

이 전략은 트리플 RSI를 통해 포지션 개시 조건을 구성하고, 가격과 함께 장기 평균선 위에 트렌드 필터로 사용하여 오버셀 역전 상황을 포착한다. 전략 논리는 간단하고 구현하기 쉽고 최적화된다. 그러나 전략에는 신호 지연, 거래 빈도가 낮고 일방적인 상황을 포착 할 수있는 위험과 부족이 존재하며 실제 응용에서 계속 조정 및 개선이 필요합니다.

전략 소스 코드
/*backtest
start: 2023-05-15 00:00:00
end: 2024-05-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@author Honestcowboy
//
strategy("Triple RSI [Honestcowboy]" )

  
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> User Inputs <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rsiLengthInput = input.int(5, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> VARIABLE CALCULATIONS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> CONDITIONALS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rule1   = rsi<35
rule2   = rsi<rsi[1] and rsi[1]<rsi[2] and rsi[2]<rsi[3]
rule3   = rsi[3]<60
rule4   = close>ta.sma(close, 200)

longCondition = rule1 and rule2 and rule3 and rule4
closeCondition = rsi>50

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> GRAPHICAL DISPLAY <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

hline(30, title="Long Condition Line")
hline(50, title="Exit Condition Line")
plot(rsi)
plotshape(longCondition ? rsi-3 : na, title="Long Condition", style=shape.triangleup, color=color.lime, location=location.absolute)
plotshape(closeCondition and rsi[1]<50? rsi+3 : na, title="Exit Condition", style=shape.triangledown, color=#e60000, location=location.absolute)

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> AUTOMATION AND BACKTESTING <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

if longCondition and strategy.position_size==0
    strategy.entry("LONG", strategy.long)
if closeCondition
    strategy.close("LONG")