PulseForce 모멘텀 전략 알고리즘 심층 분석

1. 개요

모멘텀 전략(Momentum strategies) 은 정량 트레이딩에서 가장 흔하고 실용적인 추세 강화 접근법 중 하나입니다.
이 전략은 다음의 핵심 가정에 기반합니다.

“강한 것은 계속 강하고, 약한 것은 계속 약하다.”
최근에 강하게 움직인 자산은 상승을 이어갈 가능성이 높고, 최근에 약했던 자산은 약세가 지속될 가능성이 높습니다.

PulseForce의 내장 momentum 전략은 최근 수익률만 보는 단순 모델이 아닙니다. 대신 다음 요소들을 통합합니다.

  • EMA 교차(ema_fast / ema_slow) – 단기/중기 추세 방향을 확인
  • 최근 고점 돌파(recent_high_window) – 가격이 최근 저항을 실제로 돌파했는지 확인
  • RSI 모멘텀 신호(rsi_period / rsi_buy_threshold / rsi_sell_threshold) – 매수/매도 압력의 강도를 측정
  • 거래량 확장(volume_window) – 상승이 “얇은 거래량 스파이크”가 아니라 실제 자금 유입에 의해 발생했는지 확인
  • CatBoost AI 필터(선택 사항) – 기본 규칙 위에서 저품질 신호를 추가로 걸러주는 AI 모델

동시에, 전략은 다음을 통해 리스크와 포지션 사이징을 관리합니다.

  • 하드 익절/손절(force_take_profit / force_stop_loss)
  • 데일리 익절/손절(daily_take_profit / daily_stop_loss)
  • 동적 자본 배분(allowable_funds_*)

또한 PulseForce 내에서 HyperOpt 기반 자동 탐색을 지원하여 최적의 파라미터 조합을 찾을 수 있습니다.


2. 모멘텀의 간단한 역사와 진화

모멘텀 효과는 매우 탄탄한 학술적 기반과 장기적인 실증 근거를 가지고 있습니다.

  • 1993년, Jegadeesh & Titman의 고전 논문은
    과거 승자를 매수하고 과거 패자를 매도하는 전략이 유의미한 초과수익을 낼 수 있음을 체계적으로 보여주었습니다.
  • 이후 연구들은 모멘텀 효과가 다음 자산군 전반에 존재함을 발견했습니다.
    주식, 선물, FX, 원자재, 지수, 심지어 암호화폐까지.

실전 트레이딩에서 모멘텀 전략은 다음 용도로 널리 사용됩니다.

  • 단기·중기 추세 트레이딩
  • 섹터/산업 로테이션
  • 멀티자산 롱/숏 포트폴리오
  • 더 고빈도 시스템에서의 추세 필터

PulseForce의 모멘텀 전략은 이러한 고전 아이디어 위에, 다중 지표 확인과 AI 기반 신호 필터링을 더한 강화 버전입니다.


3. 이 모멘텀 전략은 어떤 문제를 해결하려는가?

PulseForce의 momentum 전략은 다음과 같은 현실적인 문제들을 해결하도록 설계되었습니다.

  1. 수익률만 보는 모멘텀은 불안정하므로, “진짜 모멘텀”을 다차원으로 확인해야 한다.
    → EMA 교차 + 최근 고점 돌파 + RSI + 거래량을 함께 사용해 공동 판단을 구성합니다.

  2. “가짜 돌파”와 “가짜 펌프”를 어떻게 피할 것인가?
    → 가격이 최근 고점을 돌파해야 하며, 동시에 거래량도 확장되어야 합니다.

  3. 추세가 가속될 때 너무 늦게 들어가는 대신, 더 이른 진입을 어떻게 확보할 것인가?
    → 최근 돌파 + 높은 RSI를 “추세 가속” 신호로 활용합니다.

  4. 무효 신호와 드로우다운을 어떻게 줄일 것인가?
    → 기본 규칙 위에 CatBoost AI 모델을 추가해 일부 신호를 필터링하고, 다층 TP/SL 로직으로 청산을 관리합니다.


4. 핵심 지표와 신호 로직

4.1 핵심 기술적 지표

momentum 전략에서 주요 지표(모두 1분봉 기준 계산)는 다음과 같습니다.

지표 의미
ema_fast 빠른 EMA. 민감도가 높아 단기 모멘텀을 반영
ema_slow 느린 EMA. 중기~장기 추세 방향을 반영
recent_high 일정 기간(recent_high_window)의 최고가. 돌파 확인에 사용
rsi RSI(상대강도지수). 단기 매수 강도를 측정
volume_mean 일정 기간 평균 거래량. 거래량 확장 감지에 사용

코드의 지표 계산 예시(발췌):

df["rsi"] = ta.RSI(df, timeperiod=rsi_p).fillna(0)
df["ema_fast"] = ta.EMA(df, timeperiod=ema_f)
df["ema_slow"] = ta.EMA(df, timeperiod=ema_s)

df["recent_high"] = df["high"].rolling(window=rh_w, min_periods=1).max()
df["volume_mean"] = df["volume"].rolling(window=vol_w, min_periods=1).mean()

4.2 추세 라벨: 단기 추세 / 장기 추세 / 일간 추세

EMA를 기반으로, 전략은 추가로 다음 라벨을 부여합니다.

  • short_trend: ema_fast 와 ema_slow 의 관계로 결정
  • long_trend: 더 긴 기간 EMA 조합으로 계산
  • daily_short_trend / daily_trend: 1분 데이터를 1일로 리샘플링하여 산출한 일간 추세

이 추세 필드들은 다음 용도로 활용될 수 있습니다.

  • 향후 AI 모델을 위한 피처
  • 리스크 컨트롤 모듈 확장
  • UI에서 더 직관적인 추세 상태 시각화

5. 핵심 매수/매도 로직 (Runner + AI 필터)

5.1 매수 신호: 돌파 + 강한 모멘텀 + 거래량 확장 + EMA 상승 정렬 + AI 필터

populate_buy_trend에서 Runner가 사용하는 로직은 다음과 같이 요약할 수 있습니다.

# 1) Runner 내부의 기본 모멘텀 조건
base_cond = (
    (df["close"] > df["recent_high"].shift(1)) &   # 이전 최근 고점을 상향 돌파
    (df["rsi"] > rsi_buy_th) &                     # RSI가 매수 임계값 초과
    (df["volume"] > df["volume_mean"]) &           # 거래량이 평균보다 큼 (확장)
    (df["ema_fast"] > df["ema_slow"]) &            # EMA 상승 정렬
    (df["volume"] > 0)                             # 실제 거래량 존재
)

df.loc[:, "buy"] = 0

# 2) AI 필터가 비활성화면 base_cond를 그대로 사용
if not self.ai_manager or not self.ai_manager.plugins:
    df.loc[base_cond, "buy"] = 1
    return df

# 3) AI 필터가 켜져 있으면, base_cond가 참인 행에 대해서만 AI 점수를 평가
ai_mask = df.loc[base_cond].apply(_ai_pass, axis=1)
df.loc[base_cond, "buy"] = ai_mask.astype(int)

즉, 이 모멘텀 전략의 매수 로직은 다음처럼 설명할 수 있습니다.

“가격이 최근 고점을 돌파하고 + RSI가 강하며 + 거래량이 확장되고 + EMA가 상승 정렬일 때, 강한 모멘텀 돌파로 간주한다. 여기에 AI 모델이 신호 품질을 높게 평가하면 최종 매수 신호를 생성한다.”


5.2 매도 신호: 모멘텀 약화 + SL/TP 결합

이 전략은 EMA 데드 크로스만으로 단순 청산하지 않습니다. 대신 _has_sell_signal이라는 **“모멘텀 약화 신호 레이어”**를 정의합니다.

def _has_sell_signal(self, row: pd.Series) -> bool:
    rsi_sell_th = float(self._val(self.rsi_sell_threshold))
    c = float(row.get("close", np.nan))
    ema_f = float(row.get("ema_fast", np.inf))
    rsi = float(row.get("rsi", 50))
    return (c < ema_f) and (rsi < rsi_sell_th)

의미:

  • 종가가 ema_fast 아래로 내려감 → 단기 모멘텀 약화
  • RSI가 rsi_sell_threshold 아래로 내려감 → 과열/강세 국면 종료

실제 청산 로직은 custom_exit에 구현되어 있습니다.

# ① 하드 손절 / 하드 익절 (모멘텀 신호와 무관)
if current_profit <= -self.force_stop_loss.value:
    return "hard_sl"
if current_profit >= self.force_take_profit.value:
    return "hard_tp"

# ② 매도 신호가 없으면 → 데일리 SL/TP에 닿아도 아무 것도 하지 않음
if not self._has_sell_signal(row):
    return None

# ③ 매도 신호가 있을 때만 데일리 SL/TP를 체크
th = self._pick_trend_thresholds(row)  # {"sl": daily_stop_loss, "tp": daily_take_profit}
sl = float(th["sl"])
tp = float(th["tp"])

if current_profit <= -sl:
    return "sl_signal"
if current_profit >= tp:
    return "tp_signal"

요약하면, 이 청산 로직은:

  1. 극단적 상황에서 자본을 보호하는 **“하드 TP/SL 안전망”**을 제공합니다.
  2. 정상 상황에서는 쉽게 청산하지 않고, 먼저 모멘텀 약화 신호를 기다립니다.
  3. **“모멘텀 약화 + 데일리 SL/TP 임계값”**이 동시에 트리거될 때만 청산합니다.

단순한 “손절가 도달 시 매도” 또는 “EMA 교차 시 청산”보다 더 정교하며, 추세가 지속되는 동안 포지션을 더 오래 보유하도록 돕습니다.


6. PulseForce 파라미터 설정과 HyperOpt

PulseForce 앱(Apple App Store / Google Play 제공)은 실전 태스크, 백테스트, 하이퍼파라미터 최적화에 대한 시각적 설정 UI를 제공하여, 전략을 완전 파라미터화할 수 있습니다.

백테스트 파라미터 설정 화면:

하이퍼파라미터 최적화 설정 화면:

6.1 핵심 파라미터 그룹

이 그룹은 모멘텀 신호의 핵심 구조를 정의하며, 모든 파라미터가 HyperOpt를 지원합니다.

Key Name 역할 최적화 권장 초기 탐색 범위 (otp_init_min ~ otp_init_max)
ema_fast Fast EMA Period 빠른 EMA 기간. 작을수록 반응이 빠름 ✅ 15 ~ 30
ema_slow Slow EMA Period 느린 EMA 기간. 중기~장기 추세를 평활화 ✅ 50 ~ 90
recent_high_window Recent High Window “최근 고점” 계산에 사용되는 룩백 윈도우 ✅ 20 ~ 45
rsi_period RSI Period RSI 계산 기간 ✅ 10 ~ 25
rsi_buy_threshold RSI Buy Threshold 매수 신호 트리거를 위한 최소 RSI ✅ 60 ~ 75
rsi_sell_threshold RSI Sell Threshold 매도 신호 판단을 위한 최대 RSI(모멘텀 약화 레벨) ✅ 20 ~ 45
volume_window Volume MA Window 평균 거래량 계산 윈도우 길이 ✅ 10 ~ 30

이 파라미터들은 코드의 HyperOpt 탐색 공간과 직접 매핑됩니다.

ema_fast           # IntParameter(15, 30, ...)
ema_slow           # IntParameter(50, 90, ...)
recent_high_window # IntParameter(20, 45, ...)
rsi_period         # IntParameter(10, 25, ...)
rsi_buy_threshold  # DecimalParameter(60.0, 75.0, ...)
rsi_sell_threshold # DecimalParameter(20.0, 45.0, ...)
volume_window      # IntParameter(10, 30, ...)

6.2 자본 관리 파라미터

PulseForce에서 이 파라미터들은 주로 최대 사용 자본과 추세 기반 배분을 제어하며, 현재는 사용자 설정 가능하지만 기본적으로 HyperOpt에 포함되지는 않습니다.

파라미터 의미
max_funds_allowed_using 이 전략이 사용할 수 있는 최대 자본
allowable_funds_neutral 중립 구간에서의 자본 비율
allowable_funds_uptrend 상승 추세에서의 자본 비율
allowable_funds_downtrend 하락 추세에서의 자본 비율

리스크 선호에 따라 PulseForce 앱에서 값을 조정할 수 있습니다. 예:

  • 강한 추세장에서는 allowable_funds_uptrend를 1.0으로 설정
  • 불확실한 장에서는 allowable_funds_neutral, allowable_funds_downtrend를 낮춤

6.3 손절 파라미터

이 그룹은 리스크 컨트롤의 핵심이며, 모든 파라미터가 HyperOpt를 지원합니다.

Key Name 설명 최적화 탐색 범위
force_stop_loss Force Stop-Loss Ratio 신호와 무관하게 손실이 이 비율에 도달하면 즉시 청산 ✅ 0.005 ~ 0.30 (설정), 또는 0.01 ~ 0.1 (HyperOpt)
daily_stop_loss Daily Stop-Loss Ratio 매도 신호가 있을 때만, 손실이 이 비율을 넘으면 손절 ✅ 0.005 ~ 0.30 (설정), 또는 0.01 ~ 0.1 (HyperOpt)

참고:

  • force 손절은 항상 활성인 하드 방어선입니다.
  • daily 손절은 _has_sell_signal이 참일 때만 평가됩니다.

6.4 익절 파라미터

이 또한 HyperOpt를 지원합니다.

Key Name 설명 최적화 탐색 범위
force_take_profit Force Take-Profit Ratio 신호와 무관하게 수익이 이 비율에 도달하면 즉시 청산 ✅ 0.005 ~ 0.30 (설정), 또는 0.01 ~ 0.1 (코드)
daily_take_profit Daily Take-Profit Ratio 매도 신호가 있을 때, 수익이 이 임계값을 넘으면 익절 ✅ 0.005 ~ 0.30 (설정), 또는 0.01 ~ 0.1 (코드)

전체적으로:

  • Force 파라미터는 “블랙스완 보호 / 극단 수익 잠금”을 위한 하드 로직 레이어입니다.
  • Daily 파라미터는 “추세 내 합리적 청산 지점”을 찾기 위한 소프트 로직 레이어입니다.

PulseForce HyperOpt 환경에서는 이 4개 파라미터를 종목별로 최적화하여 더 적합한 범위를 찾을 수 있습니다.


7. 사용 사례와 특성

7.1 적합한 시나리오

  • 변동성이 크고 추세가 뚜렷한 자산(미국 성장주, 인기 ETF, 암호화폐 등)
  • 1분/5분봉 기반의 단기 추세 트레이딩
  • 유동성이 안정적이고 돌파 움직임이 자주 나오는 종목
  • “최적 파라미터 조합”을 HyperOpt로 탐색하고 싶은 연구/실전 환경

7.2 덜 적합한 시나리오

  • 장기간 좁은 박스권에 갇혀 돌파와 추세가 희소한 종목
  • 극단적으로 비유동적인 종목(큰 호가 단위로 점프하는 경우)
  • 반응 속도가 훨씬 더 빠른 로직이 필요한 뉴스 주도 초단기 시장

8. 강점과 한계

강점

  • EMA 교차 + 돌파 + RSI + 거래량을 결합 → 다중 확인 기반의 “진짜 모멘텀”
  • AI 필터(CatBoostMomentumPlugin) 를 추가해 저품질 신호를 감소
  • 더 정교한 청산 로직: 모멘텀 약화 + SL/TP 결합 의사결정
  • 종목별 튜닝이 쉬운 완전한 HyperOpt 지원
  • PulseForce의 UI / 백테스트 / HyperOpt 모듈과 깊게 통합

한계

  • 단순 모멘텀 모델보다 복잡해, 데이터 품질과 백테스트 품질 요구가 더 높음
  • 장기 횡보장에서는 돌파/강모멘텀 이벤트가 드물어 거래 횟수가 줄 수 있음
  • AI 필터는 모델 품질에 크게 의존하며, 학습이 나쁘면 좋은 신호를 걸러낼 수도 있음

9. 요약

PulseForce의 내장 momentum 전략은 고전적 모멘텀 아이디어 위에 다중 지표 확인과 AI 필터링을 더한 강화형 추세 추종 전략입니다.

  • 빠른/느린 EMA로 추세 방향을 판단
  • 최근 고점 돌파 + 강한 RSI + 거래량 확장으로 모멘텀 품질을 확인
  • AI 모델(CatBoostMomentumPlugin) 로 각 기본 매수 신호를 검수
  • 하드/데일리 익절·손절로 리스크를 관리
  • HyperOpt 하이퍼파라미터 최적화로 종목별 최적 조합을 탐색

PulseForce 안에서 “더 똑똑한 모멘텀 전략” 을 구축하고 싶은 사용자에게, 이는 견고하고 확장 가능한 기반 블록입니다.

전략 상세와 최신 기능을 더 알아보려면 아래를 방문하세요:
👉 PulseForce 공식 웹사이트: https://www.hiforce.ai