결합된 모멘텀과 평균 회귀 고주파 정량 전략

EMA BB RSI MR TA
생성 날짜: 2025-01-06 13:58:11 마지막으로 수정됨: 2025-01-06 13:58:11
복사: 1 클릭수: 452
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

결합된 모멘텀과 평균 회귀 고주파 정량 전략

개요

이 전략은 모멘텀 거래와 평균 회귀라는 두 가지 고전적 거래 방식을 결합한 고빈도 양적 거래 전략입니다. 이 전략은 5분 시간 단위에서 실행되며, 지수 이동 평균(EMA)을 사용하여 추세 기회를 포착하고 볼린저 밴드를 사용하여 매수 과다 및 매도 과다 가격 조건을 식별하여 이중 거래 로직의 상호 보완적인 이점을 얻습니다. 이 전략은 유연한 매개변수 구성을 통해 설계되었으며, 다양한 시장 상황에 따라 단일 또는 결합 거래 모드를 활성화하도록 선택할 수 있습니다.

전략 원칙

이 전략은 2계층 거래 논리 설계를 채택합니다.

  1. 모멘텀 거래 구성 요소는 단기(50기간)와 장기(400기간) EMA의 교차를 사용하여 추세를 식별합니다. 단기 EMA가 장기 EMA를 위쪽으로 교차하면 롱 신호가 생성되고, 그렇지 않으면 숏 신호가 생성됩니다.
  2. 평균 회귀 구성 요소는 볼린저 밴드(20기간, 2표준편차)를 사용하여 가격 편차를 포착합니다. 가격이 하단 트랙을 돌파하면 롱 신호가 생성되고, 상단 트랙을 돌파하면 숏 신호가 생성됩니다.
  3. 두 개의 거래 모듈은 독립적으로 열거나 닫아서 전략을 유연하게 전환할 수 있습니다.

전략적 이점

  1. 이중 논리는 서로를 보완합니다. 모멘텀 전략은 추세 시장에서 좋은 성과를 거두고, 평균 회귀 전략은 변동성이 큰 시장에서 효과적입니다. 두 가지를 결합하면 다양한 시장 상황에 적응할 수 있습니다.
  2. 강력한 매개변수 조정성: EMA 사이클과 볼린저 밴드 매개변수는 시장 특성에 따라 최적화되고 조정될 수 있습니다.
  3. 합리적인 위험 관리: 기술 지표의 교차와 돌파를 거래 신호로 사용하면 단일 지표로 인해 발생할 수 있는 잘못된 신호를 피할 수 있습니다.
  4. 높은 실행 효율성: 전략 논리가 간결하고 명확하여 고빈도 거래 환경에 적합합니다.

전략적 위험

  1. 신호 지연: EMA와 볼린저 밴드는 모두 지연 지표이기 때문에, 빠르게 움직이는 시장에서 가장 좋은 진입 기회를 놓칠 수 있습니다.
  2. 거짓 돌파 위험: 볼린저 밴드에서 나오는 거짓 돌파 신호는 변동성이 높은 기간 동안 발생할 수 있습니다.
  3. 매개변수 민감도: 전략의 효과는 매개변수 선택에 민감하며 지속적인 최적화가 필요합니다.

최적화 방향

  1. 변동성 필터 소개: 과거 변동성을 계산하여 볼린저 밴드 매개변수를 조정하거나 변동성이 높은 기간 동안 거래를 일시 중지합니다.
  2. 볼륨 확인 추가: 볼륨 데이터를 결합하여 돌파구의 유효성을 검증하고 신호 품질을 개선합니다.
  3. 적응형 매개변수 개발: 시장 상황에 따라 EMA 기간과 Bollinger Bands 매개변수를 동적으로 조정합니다.
  4. 손절매 메커니즘 구축: 하락 위험을 통제하기 위해 보다 완벽한 손절매 전략을 설계합니다.

요약하다

이 전략은 모멘텀과 평균 회귀라는 두 가지 고전적인 거래 방법을 결합하여 강력한 적응성과 통제 가능한 위험을 갖춘 고빈도 정량적 거래 시스템을 구축합니다. 전략의 모듈식 설계와 매개변수 유연성은 좋은 실질적 가치를 제공합니다. 지속적인 최적화와 위험 관리 개선을 통해 실제 거래에서 안정적인 수익을 달성할 것으로 기대됩니다.

전략 소스 코드
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Momentum and Mean Reversion Strategy", shorttitle = "MMV_V1", overlay=true)

// --- Inputit ja parametrit ---
use_momentum = input.bool(true, title="Käytä Momentum-strategiaa")
use_mean_reversion = input.bool(true, title="Käytä Keskiarvoon Palautumista (BB)")

// Momentum-parametrit
short_ema_period = input.int(50, title="Lyhyt EMA")
long_ema_period = input.int(400, title="Pitkä EMA")

// Bollinger Band -parametrit
bb_length = input.int(20, title="BB Pituus")
bb_std = input.float(2.0, title="BB Standardipoikkeama")

// --- Momentum-strategia: EMA-risteämä ---
short_ema = ta.ema(close, short_ema_period)
long_ema = ta.ema(close, long_ema_period)

momentum_long_signal = ta.crossover(short_ema, long_ema)
momentum_short_signal = ta.crossunder(short_ema, long_ema)

// --- Keskiarvoon palautuminen: Bollinger Bands ---
[bb_upper, bb_middle, bb_lower] = ta.bb(close, bb_length, bb_std)

bb_long_signal = ta.crossover(close, bb_lower)  // Osto, kun hinta nousee alemman BB:n yli
bb_short_signal = ta.crossunder(close, bb_upper)  // Myynti, kun hinta laskee ylemmän BB:n ali

// --- Kaupankäyntilogiikka ---
if (use_momentum and momentum_long_signal)
    strategy.entry("Momentum Long", strategy.long)

if (use_momentum and momentum_short_signal)
    strategy.entry("Momentum Short", strategy.short)

if (use_mean_reversion and bb_long_signal)
    strategy.entry("BB Long", strategy.long)

if (use_mean_reversion and bb_short_signal)
    strategy.entry("BB Short", strategy.short)