feat(옵투나): score·min_trades·후처리 재탐색 및 웹 job 개선
PnL/(MDD+ADD) score·legacy 정렬·거래일×min_trades 게이트를 공통화한다. 후처리 ob_modes·study store·4전략 TPE 순차 스크립트와 문서를 갱신한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
24
docs/호가.md
24
docs/호가.md
@@ -458,7 +458,7 @@ OR 5장 채우는 시간: LS 틱동기면 체결 몇 번(초 단위) · 키움 ~
|
||||
5. 스냅 없이 OHLC로 호가 **지어내기** 금지.
|
||||
6. 모의에 ORD_DVSN=13 강제 금지.
|
||||
7. 필터 TTL과 저장 TTL을 **한 키로 묶지 말 것** (`FILTER_MAX_AGE` vs `TICK_MAX_AGE`).
|
||||
8. 캔들 TPE 본체에 호가 ON/OFF를 넣지 말 것. 숫자 탐색은 **후처리**만 (§8).
|
||||
8. Optuna 호가: **현재 기본은 본 TPE에 진입 호가 포함** (`OPTUNA_TPE_INCLUDE_ORDERBOOK`). 돌파는 스터디 스위치로 ON/OFF 분리. 상세 `docs/옵투나.md` §1. (구 “캔들 TPE에 호가 넣지 말 것”은 옛 권고.)
|
||||
9. 거래대금·시총회전 **만**으로 손절 만들지 말 것.
|
||||
10. 필터 ON인데 호가 사진이 없다고 **통과**시키지 말 것. REST로 메우지 말 것 (`REJECT_IF_EMPTY`).
|
||||
|
||||
@@ -484,13 +484,19 @@ OR 5장 채우는 시간: LS 틱동기면 체결 몇 번(초 단위) · 키움 ~
|
||||
|
||||
---
|
||||
|
||||
## 8. Optuna / TPE (2026-08-15)
|
||||
## 8. Optuna / TPE (2026-08-28 · 상세는 `docs/옵투나.md`)
|
||||
|
||||
### 캔들 본체 TPE (Stage 1)
|
||||
매수필터 ON/OFF · EXIT_OB · STOP_OB 를 **차트 trial 축에 넣지 않음**.
|
||||
끈 구간과 켠 구간이 한 랭킹에 섞이면 순위가 호가 날씨에 흔들린다.
|
||||
> **주의:** 아래 「캔들 본체에 호가 넣지 말 것」은 **옛 권고(2026-08-15)**.
|
||||
> **현재 코드 기본**은 `OPTUNA_TPE_INCLUDE_ORDERBOOK=true` → 본 TPE에 진입 호가가 들어간다.
|
||||
> 돌파만 **스터디 스위치**(off/on 분리). 꼬리·모멘·스캘은 아직 **같은 스터디 categorical**.
|
||||
> 진실·분리 vs trial 수: **`docs/옵투나.md` §1**.
|
||||
|
||||
### 후처리 (Stage 2) — **이미 동작**
|
||||
### 본 TPE (현재)
|
||||
- 기본: 차트 + 호가(및 휩쏘)를 **trial에서 함께** 평가.
|
||||
- 돌파: `--orderbook-filter off|on` · 한 스터디에 ON/OFF 안 섞음 (OFF 편애 방지).
|
||||
- `INCLUDE_ORDERBOOK=true` 이면 사후 8방 **기본 생략** (성적 사기 방지).
|
||||
|
||||
### 후처리 (Stage 2) — INCLUDE_ORDERBOOK=false 일 때 / FORCE 시
|
||||
`optuna_postprocess_topn.py` → `optuna_orderbook_recommend.py`.
|
||||
구 JSON만 다시: `python3 -u kis_trader/backtest/optuna_rerun_postprocess.py --result-json <path>`
|
||||
(`--apply-best` 아님. 실매 숫자는 안 바뀜.)
|
||||
@@ -501,11 +507,11 @@ OR 5장 채우는 시간: LS 틱동기면 체결 몇 번(초 단위) · 키움 ~
|
||||
|----|------------------------------|-----------|
|
||||
| 스프레드 % | 0.1 ~ 8.0 step 0.1 | 모멘텀 운영 3.0 포함 |
|
||||
| 잔량비 | 0.05 ~ 1.5 step 0.05 | 0.58~1.0 포함 |
|
||||
| 매도벽 배수 | 1 ~ 80 step 1 | 운영 3 / 스캘프 8. **예전 후처리는 이 축이 없어** 벽 탈락을 못 봄 |
|
||||
| 매도벽 배수 | 1 ~ 80 step 1 | 운영 3 / 스캘프 8 |
|
||||
| lookback | `OPTUNA_OB_LOOKBACK_MIN` 기본 30분 | |
|
||||
|
||||
건수 하한: 잔여가 원본의 **30% 미만**이면 trial 무효 → 너무 센 컷은 점수에서 죽음.
|
||||
후처리는 **이미 난 체결 + 근처 호가 재생**. 실매 “스냅 없음 통과” 구멍은 **모델링하지 않음** (그건 B안 필터 TTL).
|
||||
건수 하한: 잔여가 원본의 **30% 미만**이면 trial 무효.
|
||||
후처리는 **이미 난 체결 + 근처 호가 재생**. 실매 “스냅 없음 통과” 구멍은 **모델링하지 않음** (B안 필터 TTL).
|
||||
|
||||
DB 반영은 사용자 명시 / `scripts/apply_optuna_ob_consensus.py` 만. 후처리 재실행 ≠ 적용.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user