칼만 필터링과 평균 회귀를 기반으로 한 양적 거래 전략


생성 날짜: 2023-12-29 17:23:14 마지막으로 수정됨: 2023-12-29 17:23:14
복사: 0 클릭수: 480
1
집중하다
1166
수행원

칼만 필터링과 평균 회귀를 기반으로 한 양적 거래 전략

개요

이 전략은 칼만 파동과 평균 회귀의 생각을 적용하여 주식 가격의 단기 비정상적인 변동을 포착하여 주식에 대한 방향성 거래를 구현한다. 전략은 먼저 주식과 시장 지수의 가격 비율 모델을 구축한 다음 칼만 파동 기술을 사용하여 대비 비율을 예측하고 파동한다. 비율이 정상적인 수준에서 벗어난 경우 거래가 발생한다. 또한, 전략은 거래량 필터를 결합하여 잘못된 거래를 피한다.

전략 원칙

이 전략의 핵심 아이디어는 주식 자체의 가격과 시장 지수 가격의 비율 모델을 구축하는 것이다. 이 비율은 전체 시장의 가격 수준에 대한 주식의 수준을 반영할 수 있다. 비율이 높으면 주식이 과대 평가되었다고 생각하여 판매 신호를 발생; 비율이 낮으면 주식이 과소 평가되었다고 생각하여 구매 신호를 발생 한다.

대조율 신호를 평형화하기 위해 칼만 파동 알고리즘을 사용한다. 칼만 파동은 비율의 실제 관찰값과 예측값을 가중화하고, 비율의 예측을 실시간으로 업데이트한다. 그리고 평형화된 칼만 파동 값을 계산한다.

또한, 전략은 거래량 요소를 고려한다. 거래량이 큰 경우에만 진정한 거래 신호가 생성되며, 이는 일부 잘못된 거래의 발생을 피할 수 있다.

전략적 강점 분석

이 전략의 가장 큰 장점은 칼만 파동 알고리즘을 사용하여 가격 비율을 효율적으로 평형화하고 예측한다는 것입니다. 간단한 평균 회귀 모델에 비해 칼만 파동은 가격의 동적 변화를 더 잘 반영 할 수 있습니다. 특히 가격이 급격하게 변동하는 경우. 이것은 전략이 가격의 비정상을 제때 발견하고 정확한 거래 신호를 생성 할 수있게합니다.

둘째, 거래량 결합은 전략의 실제 적용성을 강화한다. 합리적인 거래량 필터는 일부 잘못된 신호를 피하고 불필요한 거래 비용을 줄이는 데 도움이 된다.

전체적으로 이 전략은 칼만 파동, 평균 회귀, 거래량 분석과 같은 여러 기술을 성공적으로 결합하여 비교적 강력한 양적 거래 전략을 형성했다.

전략적 위험 분석

이 전략은 이론적으로나 기술적으로나 완벽하지만, 실제 적용 시에는 몇 가지 잠재적인 위험들이 존재하고 있어 주의가 필요하다.

먼저 모델 위험이다. 칼만 파동 모델의 일부 핵심 파라미터, 예를 들어 프로세스 노이즈 차, 관찰 노이즈 차 등은 역사적 데이터에 따라 추정할 필요가 있다. 만약 추정치가 정확하지 않거나 시장 환경이 크게 변하면 모델 예측의 편차가 발생할 것이다.

두 번째는 슬라이드 비용 위험이다. 자주 거래하면 더 많은 슬라이드 비용이 발생하여 전략적 수익이 손실됩니다. 매개 변수 최적화 및 거래량 필터링은 불필요한 거래를 어느 정도 줄일 수 있습니다.

마지막으로, 시장 지수를 기준으로 사용하는 데에는 시장 체계적 위험이 있습니다. 전체 시장이 급격하게 변동할 때, 개별 주식과 시장의 가격 비율도 비정상적으로 나타날 수 있습니다. 이 경우 전략은 잘못된 신호를 제공합니다. 우리는 더 안정적인 지수를 기준으로 선택하는 것을 고려 할 수 있습니다.

전략 최적화 방향

이 전략에는 더 많은 최적화 가능성이 있습니다:

  1. 더 복잡한 딥러닝 모델을 사용하여 가격비율을 맞추고 예측할 수 있습니다. 이것은 모델의 정확성과 융통성을 향상시킬 수 있습니다.

  2. 거래량 필터링 규칙을 최적화하여 거래량 값 설정을 보다 역동적이고 지능적으로 구현한다. 이는 잘못된 거래의 가능성을 줄일 수 있다.

  3. 다양한 시장 지수를 전략적 기준으로 테스트하고, 변동이 적은 더 안정적인 지수를 선택하십시오. 이것은 시장의 체계적 위험의 영향을 줄일 수 있습니다.

  4. 주식 기본 요소 분석과 결합하여 기본 요소가 크게 악화되는 주식을 거래하는 것을 피하십시오. 이것은 더 좋은 품질의 거래 대상을 선정 할 수 있습니다.

  5. 높은 주파수 인트라데이 데이터를 사용하여 전략 재검토 및 최적화를 수행하여 전략의 실장 성능을 향상시킬 수 있습니다.

요약하다

이 전략은 칼만 파동 모델을 사용하여 주식 가격의 단기 비정상적인 변동을 성공적으로 포착했다. 동시에 거래량 신호의 도입도 전략의 실용성을 강화했다. 여전히 특정 모델 위험과 시장 위험이 있지만, 이것은 매우 유망한 양적 거래 전략이다. 모델과 거래 신호 최적화에 있어 미래에는 많은 향상 공간과 응용 잠재력이 있다.

전략 소스 코드
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © xXM3GAXx

//@version=5
strategy("My strategy", overlay=true)

//SPY or QQQ
context = request.security("BTC_USDT:swap", timeframe.period, input(close))
//our stock
particular = input(close)

//ratio
src = ta.roc(particular, 1) / math.abs(ta.roc(context, 1))

//kalman calculation
Sharpness = input.float(1.0)
K = input.float(1.0)


greencolor =  color.lime
redcolor =  color.red

velocity = 0.0
kfilt = 0.0

Distance = src - nz(kfilt[1], src)
Error = nz(kfilt[1], src) + Distance * math.sqrt(Sharpness*K/ 100)
velocity := nz(velocity[1], 0) + Distance*K / 100
kfilt := Error + velocity

//2 std devs up and down
upper = kfilt[1] + 2 * ta.stdev(kfilt, input(20))
lower = kfilt[1] - 2 * ta.stdev(kfilt, input(20))

//plotting for visuals
plot(kfilt, color=velocity > 0 ? greencolor : redcolor, linewidth = 2)
plot(upper)
plot(lower)
//plot(ta.ema(ta.roc(particular, 1)/ta.roc(context, 1), 5), color = #00ffff, linewidth=2)

//volume data
vol = volume
volema = ta.ema(volume, 10)

//buy when ratio too low
longCondition = kfilt<=lower and vol>=volema
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

//sell when ratio too high
shortCondition = kfilt>=upper and vol>=volema
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)