바닥 반전을 기반으로 한 양적 거래 전략


생성 날짜: 2024-02-06 15:16:39 마지막으로 수정됨: 2024-02-06 15:16:39
복사: 0 클릭수: 657
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

바닥 반전을 기반으로 한 양적 거래 전략

개요

이 전략은 빠른 RSI 지표와 K선 엔티티 필터를 계산하여 시장이 과매매 상태에 있는지 판단하여 저흡수 동작을 구현한다. 빠른 RSI가 10보다 낮고 K선 엔티티가 확대되면 시장의 역전 신호가 발생한다고 판단하여 시장의 바닥에 대한 판단을 수행 할 수 있다.

전략 원칙

이 전략은 크게 두 가지의 지표에 근거하여 판단됩니다.

  1. 빠른 RSI 지표. 최근 2 일간의 상승과 하락을 계산하여 시장의 과매매를 빠르게 판단하십시오. 빠른 RSI가 10 미만으로 떨어지면 시장이 과매매 상태에 있음을 나타냅니다.

  2. K선 실체 필터링. K선 실체 부피와 평균 선의 비율을 계산하여, 실체 부피가 평균 선 부피의 1.5배 이상일 때, 하단 신호가 발생한다고 본다.

먼저, 빠른 RSI가 10보다 낮으면 시장이 과매매되는 것을 나타냅니다. 그 다음, K선 엔티티가 확대되어, 평균 선의 1.5배 이상의 실물 부피를 충족시킵니다. 두 가지 조건이 동시에 충족되면, 시장이 역동 하단에 있다고 생각하는 여러 신호가 발산되며, 많은 가짜 신호를 필터링 할 수 있습니다.

전략적 이점

이 전략에는 다음과 같은 장점이 있습니다.

  1. 급속한 RSI 지표는 과매매를 빠르게 판단할 수 있습니다.
  2. K선 엔티티 필터링은 확실성을 높여서 가짜 돌파구를 방지한다.
  3. 빠른 지표와 K선 형태를 결합하면 시장의 역점을 효과적으로 판단할 수 있다.
  4. 낮은 흡수 운영을 구현하여 상대적으로 낮은 가격에 시장에 진입할 수 있다.
  5. 전략은 간단하고 명확하며, 실행을 이해하기 쉽습니다.

위험 분석

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

  1. 시장은 추락 시기가 있을 수 있고, 초과 판매에도 불구하고 계속 하락할 수 있다.
  2. 빠른 RSI는 가짜 신호를 생성할 수 있고, 실물 필터도 뚫릴 수 있다.
  3. 양적 전략 재검토에는 과장합치의 위험이 있으며, 실체에서는 효과의 차이가 있을 수 있다.

위험 요소에 대해 최적화할 수 있는 방법은 다음과 같습니다.

  1. 트렌드 지표와 함께 메이 시장이 계속 하락하는 것을 피하십시오.
  2. 다른 필터링 조건을 추가하여 하단 확인 상태를 보장합니다.
  3. 매개 변수를 다중 조합으로 최적화하여 안정성을 높인다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 손실을 막기 위한 전략을 강화하고 손실 위험을 통제합니다.
  2. 변동률 지표와 결합하여 시장의 비정상적인 변동으로 인한 위험을 피하십시오.
  3. 거래 신호의 효과를 보장하기 위해 다중 요소 모델을 추가합니다.
  4. 기계 학습 알고리즘을 사용하여 파라미터를 최적화하십시오.
  5. 큰 시간 사이클에서 트렌드를 판단하고 역대 거래는 피하십시오.

요약하다

이 전략은 빠른 RSI 지표 판단 과매매와 K선 엔티티 필터를 더하여 시장 바닥에 대한 효과적인 판단을 구현합니다. 전략 아이디어는 간단하고 구현하기 쉽고 반전 기회를 얻을 수 있습니다. 그러나 안정성과 실장 성능을 향상시키기 위해 추가 최적화가 필요한 위험이 있습니다.

전략 소스 코드
/*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()