스토카스틱 RSI 및 볼륨 기반 거래 전략

저자:차오장, 날짜: 2023-11-02 14:12:13
태그:

img

전반적인 설명

이 전략은 스토카스틱 RSI 지표와 거래 부피를 결합합니다. 스토카스틱 RSI 지표가 넘어가면 구매 및 판매 신호를 생성하고, 지난 7 일 동안의 평균 부피보다 부피가 높을 때만 거래합니다. 목표는 스토크RSI 지표를 사용하여 과소매 및 과소매 조건을 식별하고, 강력한 트렌드 중에 거래 기회를 찾기 위해 볼륨을 사용하여 잘못된 신호를 필터링하는 것입니다.

전략 논리

우선, 14기간의 RSI가 계산되고, 그 후 StochRSI K와 D 값을 생성하기 위해 StochRSI 지표가 RSI에 적용됩니다. StochRSI 지표는 과잉 구매 및 과잉 판매 조건을 신호합니다.

다음으로, K와 D 값 사이의 차이는 계산됩니다. 차이는 0보다 높을 때, 지표 레벨은 1로 설정되며, 0보다 낮을 경우 -1로 설정됩니다. 지표 레벨은 StochRSI의 긴 / 짧은 상태를 결정합니다.

다음으로, 지난 7 일 동안의 평균 볼륨이 계산됩니다. K 값이 D 값보다 높을 때 (지표 수준은 음에서 양으로 변하며), 클로즈는 오픈보다 높고 볼륨은 평균보다 높으면 구매를 신호합니다. K 값이 D 이하로 넘어가면 (지표 수준은 긍정적에서 부정으로 변하며), 클로즈는 오픈보다 낮고 볼륨은 평균보다 높으면 판매를 신호합니다.

그래서 요약하면, 전략은 StochRSI 지표를 결합하여 과잉 구매/ 과잉 판매 조건을 식별하고, 부피를 결합하여 잘못된 신호를 필터링하여 강한 트렌드 중에 거래합니다.

이점 분석

  1. StochRSI는 평균 리버션 거래에서 과반 구매/ 과반 판매 수준을 식별합니다. 거래량은 범위 시장에서 잘못된 신호를 피합니다.

  2. 볼륨 조건은 낮은 볼륨의 가짜 브레이크를 필터합니다. 높은 볼륨 트렌드 중만 거래하면 수익성이 향상됩니다.

  3. K/D 크로스오버와 볼륨의 조합은 잘못된 신호를 피하는 강력한 신호를 제공합니다.

  4. 단순하고 이해하기 쉬운 논리, 알고 거래 구현에 적합합니다.

위험 분석

  1. StochRSI는 K/D 크로스오버에 지연할 수 있습니다.

  2. 부피 증폭은 시장 부진 때 엄청난 손실을 초래할 수 있습니다. 위험을 통제하기 위해 손실을 멈추어야 합니다.

  3. 스톡RSI에 지나치게 의존하면 잘못된 유출에 문제가 생길 수 있어 더 많은 논리가 필요해

  4. 볼륨 필터는 일부 거래 기회를 놓칠 수 있습니다. 최적화를 위해 틱 분석, 틱 파워를 추가 할 수 있습니다.

최적화 방향

  1. StochRSI 매개 변수를 최적화하여 가장 좋은 K, D 값을 찾습니다.

  2. 부피 추세를 결정하기 위해 부피의 이동 평균을 추가하여 부피가 떨어지면 잘못된 신호를 피합니다.

  3. MACD, RSI와 같은 다른 지표들을 추가해서 콤보 신호를 통해 정확도를 높일 수 있습니다.

  4. 동적 스톱 손실 관리를 위해 ATR에 기반한 스톱 손실을 추가합니다.

  5. 평행 부피와 반대 부피를 분석하여 평행 부피의 과도한 위험을 피합니다.

  6. 시장 체제에 기반한 적응적인 StochRSI 매개 변수를 사용한다.

결론

이 전략은 주로 StochRSI를 이용하여 과반 구매/ 과반 판매 및 K/D 크로스오버를 결정한다. 이는 잘못된 신호를 필터링하고 강한 트렌드 중만 거래하기 위해 볼륨 분석을 추가한다. 지표의 간단한 통합은 구현하기 쉬운 algo 전략을 만듭니다. 추가 테스트와 최적화는 안정성과 수익성을 향상시킬 수 있다. 그러나 볼륨 증폭 위험은 모니터링되어야 하며 위험을 제어하기 위해 손해를 막는 것이 좋습니다.


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

//@version=5
strategy("StochRSI Volume Strategy", overlay = true)

// StochRSI inputs
smoothK = input.int(3, title="K")
smoothD = input.int(3, title="D")
lengthRSI = input.int(14, "RSI Length")
lengthStoch = input.int(14, "Stochastic Length")

// Calculate StochRSI
rsiValue = ta.rsi(close, lengthRSI)
k = ta.sma(ta.stoch(rsiValue, rsiValue, rsiValue, lengthStoch), smoothK)
d = ta.sma(k, smoothD)

// Calculate difference between lines
lineDifference = k - d

// Calculate indicator level based on line positions
level = lineDifference >= 0 ? 1 : -1

// Calculate mean of last 7 volume bars
meanVolume = ta.sma(volume, 7)

// Determine buy and sell conditions
buyCondition = level > -1 and level[1] <= -1 and close > open and volume > meanVolume
sellCondition = level < 1 and level[1] >= 1 and close < open and volume > meanVolume

// Execute buy and sell signals
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)

// Plot StochRSI levels
plot(level, title="Indicator Level", color=color.blue, linewidth=2)

더 많은