하위 전환을 위한 양적 거래 전략

저자:차오장, 날짜: 2024-02-06 15:16:39
태그:

img

전반적인 설명

이 전략은 급속한 RSI 지표와 K-라인 엔티티 필터를 계산하여 과판 상태를 결정하여 시장 바닥을 식별합니다. 급속한 RSI가 10 이하로 떨어지고 K-라인 엔티티티가 확장되면 긴 포지션을 입력하기 위해 반전 신호가 나타납니다. 이것은 시장 바닥을 효과적으로 감지 할 수 있습니다.

전략 논리

이 전략은 주로 두 가지 지표에 기반합니다.

  1. 빠른 RSI 지표. 최근 2 일 동안의 상승과 하락 비율을 계산함으로써 시장의 과잉 구매 및 과잉 판매를 신속하게 판단합니다. 빠른 RSI가 10 이하라면 시장이 과잉 판매로 간주됩니다.

  2. K-라인 엔티티 필터: K-라인 엔티티 볼륨과 MA 사이의 비율을 계산함으로써, 엔티티 볼륨이 MA 볼륨의 1.5배를 초과할 때, 그것은 최저 신호로 간주됩니다.

첫째, 10 이하의 빠른 RSI는 과잉 판매 시장을 나타냅니다. 둘째, K-라인 엔티티는 엔티티 볼륨이 MA 볼륨의 1.5 배 이상의 조건을 만족시키기 위해 확장됩니다. 두 조건이 충족되면 긴 신호를 보내고 시장이 바닥 반전을 달성한다고 간주하여 많은 잘못된 신호를 필터링합니다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 빠른 RSI 지표는 민감하고 과잉 구매와 과잉 판매를 빠르게 결정할 수 있습니다.
  2. K-라인 엔티티 필터는 확실성을 높이고 거짓 유출을 방지합니다.
  3. 빠른 지표와 K선 패턴을 결합하면 시장 반전 지점을 효과적으로 결정할 수 있습니다.
  4. 저비용 긴 포지션은 바닥 낚시 운영을 실현합니다.
  5. 전략 논리는 간단하고 명확하고 이해하기 쉽고 실행하기 쉽습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 시장은 통합 기간을 가질 수 있고, 과판된 경우에도 계속 떨어질 수 있습니다.
  2. 빠른 RSI는 잘못된 신호를 가질 수 있고 엔티티 필터도 침투할 수 있습니다.
  3. 백테스팅은 과도한 적합성 위험이 있으며 실시간 거래 성과가 다를 수 있습니다.

몇 가지 해결책:

  1. 추세 지표를 결합해서 지속적인 하락을 피합니다.
  2. 바닥 확인을 보장하기 위해 다른 필터 조건을 높여야 합니다.
  3. 안정성을 높이기 위해 여러 매개 변수 조합을 최적화합니다.

최적화 방향

전략 강화에 대한 몇 가지 방향:

  1. 하향 위험을 통제하기 위해 스톱 로스를 추가합니다.
  2. 비정상적인 변동성 위험을 피하기 위해 변동성 지표를 사용하십시오.
  3. 효과적인 거래 신호를 보장하기 위해 다중 요소 모델을 구축합니다.
  4. 매개 변수 최적화를 위해 기계 학습 알고리즘을 사용하십시오.
  5. 반대 트렌드 거래를 피하기 위해 더 큰 시간 프레임에서 트렌드를 판단합니다.

결론

이 전략은 과잉 판매 및 K-라인 엔티티 필터를 위해 빠른 RSI에 의해 시장 바닥을 효과적으로 식별합니다. 논리는 쉽게 구현하기 위해 간단하고 반전 기회를 잡는 데 좋습니다. 그러나 특정 위험이 존재하며 안정성과 라이브 성능을 향상시키기 위해 추가 최적화가 필요합니다. 전반적으로,이 논리에 기반하여 설계된 바닥 반전 거래 전략은 추가 연구가 필요합니다.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MarketBottom", shorttitle = "MarketBottom", overlay = true)

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

//Body Filter
body = abs(close - open)
abody = sma(body, 10)

mac = sma(close, 10)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)
up = close < open and len > sma * 2 and min < min[1] and fastrsi < 10 and body > abody * 1.5
plotarrow(up == 1 ? 1 : na, colorup = blue, colordown = blue)

sell = sma(close, 5)
exit = high > sell and close > open and body > abody
plot(sell)

if up
    strategy.entry("Long", strategy.long)

if exit
    strategy.close_all()

더 많은