홈으로 돌아가기

DiffQuant: 미분 가능 시뮬레이터에서의 Sharpe 최적화

DiffQuant는 PyTorch에서 미분 가능 거래 전략 시뮬레이터를 통해 Sharpe ratio의 직접 최적화를 구현합니다. 모델, 포지션, PnL 및 비용을 단일 그래프로 통합합니다. BTC 데이터에서 수수료 후 walk-forward 테스트에서 Sharpe +1.73을 보입니다.

DiffQuant에서의 프록시 타겟 없는 직접 Sharpe 최적화
Advertisement 728x90

# DiffQuant: 샤프 비율 직접 최적화용 미분 가능 거래 시뮬레이터

ML 기반 알고리즘 트레이딩에서 모델은 전통적으로 MSE나 크로스 엔트로피를 사용해 수익률이나 가격 방향을 예측하도록 훈련되지만, 성과는 비용을 고려한 샤프 비율로 평가됩니다. 이로 인해 단절이 발생합니다: 미세 움직임 예측 정확도가 샘플 외 수익성을 보장하지 않습니다. DiffQuant은 시장 특징부터 최종 PnL과 샤프까지 단일 미분 가능 그래프를 구축해 프록시 목표를 제거합니다. Walk-forward 테스트에서 수수료 후 샤프 +1.73과 +8.22% 수익을 달성했습니다.

전통적 프록시 목표의 문제점

표준 파이프라인은 예측과 트레이딩을 분리합니다:

  • 모델이 return_{t+1}에 대한 MSE를 최소화.
  • 포지션 크기는 휴리스틱으로 결정.
  • 백테스터가 사후에 수수료 적용.

이로 인해 발생하는 문제:

Google AdInline article slot
  • 오차 공간 불일치: 노이즈 변동성에 대한 정확도가 과도한 거래와 비용 손실을 유발.
  • 포지션 크기 그레이디언트 부재: 모델이 진입 적극성을 학습하지 않음.
  • 훈련 중 비용 무시: 슬리피지와 수수료가 계산 그래프 밖에 있음.

DiffQuant은 포지션 크기 조정, PnL 시뮬레이션, 메트릭스를 PyTorch 그래프에 통합해 엔드투엔드 그레이디언트를 전달합니다.

미분 가능 거래 시뮬레이터

시뮬레이터는 horizon t ∈ [0, H-1]에 대한 텐서 연산으로 PnL을 계산합니다:

$$r_t = \frac{c_t - c_{t-1}}{|c_{t-1}| + \varepsilon}$$

Google AdInline article slot

$$gross_t = p_{t-1} \cdot r_t$$

$$cost_t = smooth\_abs(\Delta p_t) \cdot (commission + slippage)$$

$$pnl_t = gross_t - cost_t$$

Google AdInline article slot

주요 혁신—미분 가능성을 위한 smooth_abs:

$$smooth\_abs(x) = \sqrt{x^2 + \varepsilon}, \quad \varepsilon = 10^{-6}$$

이로 인해 0 근처에서 C^∞ 부드러움을 보장하며, 정책이 평평하게 시작할 때 서브그레이디언트 불연속성을 피합니다.

-Sharpe로부터의 그레이디언트가 PnL → 포지션 → 모델로 흘러 비용을 엔드투엔드 고려하도록 훈련합니다.

iTransformer 기반 정책 아키텍처

백본은 iTransformer (ICLR 2024): 시간 스텝이 아닌 특징 채널을 토큰으로 하는 inverted transformer. 금융 데이터에서 가격-볼륨-변동성 간 교차 채널 의존성을 포착합니다.

설정: d_model=32, n_layers=4, n_heads=2, d_ff=64 (52k 파라미터).

전체 그래프:

  • 룩어헤드 없는 컨텍스트 윈도우 (B, ctx, F)에 대한 Z-score 정규화.
  • iTransformerEncoder.
  • 추가 연결: [prev_pos, prev_delta, t/H, (H-t)/H].
  • PolicyHead: direction_head × gate_head.

포지션: $$p_t = \tanh\left(\frac{d_t}{\tau_{dir}}\right) \times \sigma\left(\frac{g_t}{\tau_{gate}}\right)$$

게이트 신호가 불확실한 방향을 마스킹 (액션 마스킹처럼). gate_bias=-1.0 초기화로 평평한 시작을 안정화.

롤링 롤아웃:

for t in range(H):
    window = full_seq[:, t : t + ctx, :]
    window_norm = normalize_context(window)
    extras = [prev_pos, prev_delta, t/H, (H-t)/H]
    pos_t = model(window_norm, extras)
    positions_list.append(pos_t)
positions = cat(positions_list)
step_pnl = simulator.simulate(closes, positions)
loss = hybrid_loss(step_pnl, positions)
loss.backward()

병리 현상 방지를 위한 하이브리드 손실

순수 샤프는 과도 거래, 평평 붕괴, 롱 바이어스, 종단 노출, 드로다운 무시를 유발. 하이브리드가 이를 수정:

$$\mathcal{L} = \lambda_1 \cdot (-Sharpe) + \lambda_2 \cdot turnover + \lambda_3 \cdot drawdown_{log} + \lambda_4 \cdot |p_H| + \lambda_5 \cdot (\hat{f} - f^*)^2 + \lambda_6 \cdot |\bar{p}|$$

  • $\lambda_2$: 과도 거래 방지 턴오버 페널티.
  • $\lambda_3$: 안정성을 위한 로그 드로다운.
  • $\lambda_4$: horizon 끝에서 제로 노출.
  • $\lambda_5$: 시그모이드로 타겟 평평 비율.
  • $\lambda_6$: 불마켓에서 필수인 안티-바이어스.

$$drawdown_{log} = mean(cummax(cumsum(log(1+pnl))) - cumsum(log(1+pnl)))$$

대칭성을 위한 미러 증강

훈련 데이터 (2024–2025)는 강세 BTC. 개입 없이는 롱만. 미러 증강이 배치 서브셋에서 가격과 특징을 뒤집어 대칭 쌍 생성.

결과: 숏 비율 17.3% (테스트), 20.9% (백테스트).

실험: 데이터와 분할

| 매개변수 | 값 |

|-----------|-------|

| 상품 | BTCUSDT Binance 선물 |

| 해상도 | 30분 바 (1분 집계) |

| 기간 | 2021–2025 |

분할:

  • 훈련: 2024년 1월 – 2025년 3월.
  • 테스트: 2025년 7~9월.
  • 백테스트: 2025년 10~12월.
  • Walk-forward OOS.

주요 교훈

  • 특징부터 샤프까지 단일 미분 가능 그래프가 비용과 포지션 크기 포함 프록시 문제를 해결.
  • iTransformer + direction×gate가 교차 채널 어텐션과 자신감 있는 트레이딩 가능.
  • 안티-바이어스 하이브리드 손실이 과도 거래와 롱만 같은 병리를 방지.
  • 미러 증강이 비대칭 데이터에서 대칭 정책 생성.
  • BTC OOS에서 수수료 후 Walk-forward 샤프 +1.73.

— Editorial Team

Advertisement 728x90

다음 읽기