feat: add sim_45m40.py and update STRATEGY.md with 40min backtest results
This commit is contained in:
51
STRATEGY.md
51
STRATEGY.md
@@ -127,18 +127,35 @@ WF_SHADOW_WINS=2
|
||||
| 승률 | 46% |
|
||||
| 월평균 수익 | 약 115만원 |
|
||||
|
||||
### B. 45일 — 40분봉 (`interval_sweep.py`)
|
||||
> 기간: 2025-12-18 ~ 2026-03-02 / 데이터: Upbit minute10 캐시 리샘플링 / 20종목
|
||||
> ※ WF 미적용, 단순 전략 누적 PnL 합산 기준
|
||||
### B. 45일 — 40분봉, WF + 복리 적용 (`sim_45m40.py`)
|
||||
> 기간: 2026-01-20 ~ 2026-03-02 / 데이터: Upbit minute10 캐시 40분 리샘플링 / 20종목
|
||||
|
||||
| 봉 단위 | 거래수 | 승률 | 누적PnL | 최대낙폭 |
|
||||
|---------|--------|------|---------|---------|
|
||||
| 10분 | 180 | 33.9% | +15.8% | -32.6% |
|
||||
| 20분 | 120 | 36.7% | +31.0% | -16.7% |
|
||||
| 30분 | 91 | 48.4% | +81.7% | -12.9% |
|
||||
| **40분** | **91** | **48.4%** | **+119.4%** | **-11.2%** ← 현재 채택 |
|
||||
| 50분 | 83 | 50.6% | +94.7% | -17.1% |
|
||||
| 60분 | 65 | 50.8% | +88.3% | -11.9% |
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| 초기 예산 | 15,000,000원 |
|
||||
| 최종 자산 | 17,231,166원 |
|
||||
| 수익률 | **+14.87%** |
|
||||
| 최대 낙폭 | -5.37% (-806,139원) |
|
||||
| 거래수 | 56건 (WF 34건 차단 / MAX_POS 1건 스킵) |
|
||||
| 승률 | 42.9% |
|
||||
| 월평균 수익 | 약 744,000원 |
|
||||
|
||||
| 월 | 거래 | 승률 | 월수익 | 누적수익 |
|
||||
|----|------|------|--------|---------|
|
||||
| 2026-01 | 16건 | 31% | -75,000원 | -75,000원 |
|
||||
| 2026-02 | 33건 | 42% | +1,891,000원 | +1,816,000원 |
|
||||
| 2026-03 | 7건 | 71% | +415,000원 | +2,231,000원 |
|
||||
|
||||
> **참고 — 봉 단위별 단순 PnL 합산 비교** (WF 미적용, `interval_sweep.py`)
|
||||
>
|
||||
> | 봉 단위 | 거래수 | 승률 | 누적PnL | 최대낙폭 |
|
||||
> |---------|--------|------|---------|---------|
|
||||
> | 10분 | 180 | 33.9% | +15.8% | -32.6% |
|
||||
> | 20분 | 120 | 36.7% | +31.0% | -16.7% |
|
||||
> | 30분 | 91 | 48.4% | +81.7% | -12.9% |
|
||||
> | **40분** | **91** | **48.4%** | **+119.4%** | **-11.2%** ← 채택 |
|
||||
> | 50분 | 83 | 50.6% | +94.7% | -17.1% |
|
||||
> | 60분 | 65 | 50.8% | +88.3% | -11.9% |
|
||||
|
||||
### C. ATR_MAX_STOP 스윕 — 1h봉 기준 (`atr_sweep.py`)
|
||||
> 데이터: Oracle DB 1h OHLCV / 20종목
|
||||
@@ -162,7 +179,8 @@ WF_SHADOW_WINS=2
|
||||
| `core/market_regime.py` | 시장 레짐 감지 |
|
||||
| `core/price_db.py` | 가격 DB + WF 상태 영속화 |
|
||||
| `ohlcv_db.py` | OHLCV 시계열 DB 캐시 관리 |
|
||||
| `sim_365.py` | 365일 복리 시뮬레이션 |
|
||||
| `sim_365.py` | 365일 복리 시뮬레이션 (1h봉, DB) |
|
||||
| `sim_45m40.py` | 45일 복리 시뮬레이션 (40분봉, 캐시) |
|
||||
| `atr_sweep.py` | ATR_MAX_STOP 파라미터 스윕 |
|
||||
| `sim10m.py` | 10분봉 vs 1h봉 전략 비교 시뮬 |
|
||||
| `interval_sweep.py` | 봉 단위별 성과 비교 (10/20/30/40/50/60분) |
|
||||
@@ -172,15 +190,18 @@ WF_SHADOW_WINS=2
|
||||
## 시뮬레이션 실행
|
||||
|
||||
```bash
|
||||
# 45일 복리 시뮬 — 40분봉 (현재 전략 기준)
|
||||
python sim_45m40.py
|
||||
|
||||
# 365일 복리 시뮬 — 1h봉 (DB에서 로드)
|
||||
python sim_365.py
|
||||
|
||||
# 봉 단위별 비교 (10m 캐시 필요)
|
||||
python interval_sweep.py
|
||||
|
||||
# ATR_MAX_STOP 스윕 (DB에서 로드)
|
||||
python atr_sweep.py
|
||||
|
||||
# 365일 복리 시뮬 (DB에서 로드)
|
||||
python sim_365.py
|
||||
|
||||
# OHLCV DB 상태 확인
|
||||
python ohlcv_db.py status
|
||||
|
||||
|
||||
Reference in New Issue
Block a user