Files
cointrader/docs/plans/2026-03-06-strategy-parameter-sweep-plan.md
21in7 2a767c35d4 feat(weekly-report): implement weekly report generation with live trade data and performance tracking
- Added functionality to fetch live trade data from the dashboard API.
- Implemented weekly report generation that includes backtest results, live trade statistics, and performance trends.
- Enhanced error handling for API requests and improved logging for better traceability.
- Updated tests to cover new features and ensure reliability of the report generation process.
2026-03-07 01:13:03 +09:00

4.9 KiB
Raw Permalink Blame History

전략 파라미터 스윕 계획

날짜: 2026-03-06 상태: 완료

목표

Walk-Forward 백테스트를 활용하여 기본 기술 지표 전략(ML OFF)의 수익성 높은 파라미터 조합을 탐색하고, PF >= 1.0을 ML 재설계의 기반으로 확보한다.

배경

Walk-Forward 백테스트 결과 현재 XRP 전략이 비수익적(PF 0.71, -641 PnL)으로 확인되었다. 전략 파라미터 스윕은 5개 파라미터의 324개 조합을 체계적으로 테스트하여 수익 구간을 탐색한다.

스윕 파라미터

파라미터 설명
atr_sl_mult 1.0, 1.5, 2.0 손절 ATR 배수
atr_tp_mult 2.0, 3.0, 4.0 익절 ATR 배수
signal_threshold 3, 4, 5 진입을 위한 최소 가중치 지표 점수
adx_threshold 0, 20, 25, 30 ADX 필터 (0=비활성, N=ADX>=N 필요)
volume_multiplier 1.5, 2.0, 2.5 거래량 급증 감지 배수

총 조합: 3 x 3 x 3 x 4 x 3 = 324

구현

수정된 파일

  • src/indicators.pyget_signal()signal_threshold, adx_threshold, volume_multiplier 파라미터 추가
  • src/dataset_builder.py_calc_signals()에 동일 파라미터를 받아 벡터화 계산에 적용
  • src/backtester.pyBacktestConfig에 전략 파라미터 포함; WalkForwardBacktester가 테스트 폴드에 전파

신규 생성 파일

  • scripts/strategy_sweep.py — 파라미터 그리드 스윕 CLI 도구

버그 수정

  • WalkForwardBacktestersignal_threshold, adx_threshold, volume_multiplier, use_ml을 폴드 BacktestConfig에 전달하지 않는 버그 수정. 모든 신호 파라미터가 기본값으로 적용되어 ADX/거래량/임계값 스윕이 효과 없이 실행되고 있었음.

결과 (XRPUSDT, Walk-Forward 3/1)

상위 10개 조합

순위 SL×ATR TP×ATR 신호 ADX 거래량 거래 수 승률 PF MDD PnL 샤프
1 1.5 4.0 3 30 2.5 19 52.6% 2.39 7.0% +469 61.0
2 1.5 2.0 3 30 2.5 19 68.4% 2.23 6.5% +282 61.2
3 1.0 2.0 3 30 2.5 19 57.9% 1.98 5.0% +213 50.8
4 1.0 4.0 3 30 2.5 19 36.8% 1.80 7.7% +248 37.1
5 1.5 3.0 3 30 2.5 19 52.6% 1.76 10.1% +258 40.9
6 1.5 4.0 3 25 2.5 28 42.9% 1.75 13.1% +381 36.8
7 2.0 4.0 3 30 1.5 39 48.7% 1.67 16.9% +572 35.3
8 1.0 2.0 3 25 2.5 28 50.0% 1.64 5.8% +205 35.7
9 1.5 2.0 3 25 2.5 28 57.1% 1.62 10.3% +229 35.7
10 2.0 2.0 3 25 2.5 27 66.7% 1.57 12.0% +217 33.3

현재 프로덕션 (324개 중 93위)

SL×ATR TP×ATR 신호 ADX 거래량 거래 수 승률 PF MDD PnL
1.5 3.0 3 0 1.5 118 30.5% 0.71 65.9% -641

핵심 발견 사항

  1. ADX 필터가 가장 영향력 있는 단일 파라미터. 상위 10개 결과 모두 ADX >= 25를 사용하며, 상위 5개는 ADX=30이 지배적. 횡보/박스권 시장에서 노이즈 신호를 필터링한다.
  2. 거래량 배수 2.5가 지배적. 높은 거래량 임계값은 진정한 돌파에서만 진입을 보장한다 (노이즈 대비 실질 돌파).
  3. 신호 임계값 3이 최적. 더 높은 임계값(4, 5)은 대부분의 ADX 필터링 구간에서 거래가 너무 적거나 0건이었다.
  4. SL/TP 비율보다 진입 필터가 더 중요. 상위 결과는 모든 SL/TP 조합에 걸쳐 있지만, 모두 ADX=25-30 + Vol=2.5를 공유한다.
  5. 필터 적용 시 거래 수가 크게 감소. 상위 조합은 19-39건 vs 현재 118건. 적지만 높은 품질의 진입.
  6. 324개 중 41개 조합이 PF >= 1.0 달성 (12.7%).

권장 다음 단계

  1. 프로덕션 기본값 업데이트: ADX=25, volume_multiplier=2.0을 보수적 선택으로 적용 (ADX=30보다 더 많은 거래 확보)
  2. TRXUSDT, DOGEUSDT에서 검증: ADX 필터가 XRP에만 특화된 것이 아닌지 확인
  3. ML 모델 재학습: 업데이트된 전략 파라미터로 — ML 필터가 수익성 있는 기반 위에서 개선 가능
  4. 수익 구간 주변 세밀 스윕: ADX [25-35], Vol [2.0-3.0]