Files
tac-exp-dev/queue/designs/q06_kelly_sizing.md
T
zhaoli c0eb65efa7 queue: pre-registered experiment backlog to prove better-trading-performance hypotheses
Mined from book/ on the 'book' branch (HEAD 436692a). 11 queued runs,
each = hypothesis + one-variable change vs the exp-26 reference + acceptance
metric, per the ch.02 isolation/falsification discipline.

- workflows/: 5 runnable config-only YAMLs (Q01 M2 repro, Q02 seed10, Q03 topk20,
  Q04 label10d, Q05 label22d) byte-derived from the exp-26 reference
- designs/: 6 design docs needing custom strategy modules or tool-only A/B
  (Q06 Kelly, Q07 weekly rebalance, Q08 risk-limit A/B, Q09 long-short,
   Q10 HMM overlay, Q11 standalone reversal)
2026-08-19 15:30:46 +00:00

1.8 KiB
Raw Blame History

QUEUE-06 — Fractional-Kelly sizing vs equal-weight top-k (re-run exp 15 on clean lake)

Status: QUEUED · Priority: P1 · Effort: custom strategy module + run

Hypothesis (prove)

Fractional-Kelly sizing — sizing each name by the edge magnitude of its score instead of equal-weight × risk_degree — is a sizing rule (not a strategy) that throws away less edge and beats equal-weight top-k net of costs on the clean lake. Source: book/README.md open questions (exp 15 run never finished), book/references/chat-ideas.md ("Kelly sizing is a sizing rule, not a strategy").

Change vs exp-26 reference (ONE variable)

  • Strategy: equal-weight TopkDropoutStrategy (topk 10, n_drop 1) → custom FractionalKellyDropoutStrategy (same topk/n_drop selection, sizing ∝ score magnitude, capped at a fraction f of the equal-weight notional; f as a parameter, e.g. 0.5).
  • All signal/config unchanged (compact stochastic features, 5-seed RankIC ensemble, 5d label, train/valid/test, SPY benchmark, 5bp/15bp/$5 costs).

Acceptance

  • net_IR > 0.21 AND net_ann_return > +2.13% (exp-26 reference), with total_cost not higher than the reference book.
  • If sizing flattens the book (over-concentration) and net degrades → REFUTED (recorded negative; equal-weight stays canonical).

Execution prerequisites

  1. New contrib module tac_qlib/contrib/strategy/kelly_dropout.py (FractionalKellyDropoutStrategy subclassing qlib.contrib.strategy.signal_strategy.TopkDropoutStrategy), copy to the venv site-packages copy (/opt/venv/lib/python3.12/site-packages/tac_qlib/...).
  2. Workflow YAML with strategy.class=FractionalKellyDropoutStrategy, module_path=tac_qlib.contrib.strategy.kelly_dropout.
  3. Trace (rd_trace_start → run → rd_trace_finish), snapshot the new module.