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)
30 lines
1.5 KiB
Markdown
30 lines
1.5 KiB
Markdown
# QUEUE-09 — Long-short construction: capture the long-short edge net of costs
|
||
|
||
**Status:** QUEUED · **Priority:** P2 · **Effort:** custom strategy module + run
|
||
|
||
## Hypothesis (prove)
|
||
The compact stochastic signal's long-short spread is the real edge (L/S ann
|
||
Sharpe 4.54, exp 24; "edge is long-short, not long-only" — chat-ideas.md), but
|
||
all canonical constructions are long-only (TopkDropout buys topk, drops, holds).
|
||
A market-neutral book (long topk, short bottom topk) should realize more of the
|
||
spread net of costs than the long-only book, IF short-side financing + doubled
|
||
turnover cost stays below the added spread capture.
|
||
|
||
## Change vs exp-26 reference (ONE variable)
|
||
- **Strategy**: long-only TopkDropout (topk 10, n_drop 1) → custom
|
||
`TopBottomDropoutStrategy` (long topk by rank, short bottom topk, equal
|
||
weight per side, same risk_degree), realized in a workflow with a cost model
|
||
that includes both sides (open/close cost symmetric).
|
||
- All signal/config unchanged.
|
||
|
||
## Acceptance
|
||
- `net_IR > 0.21` AND `net_ann_return > +2.13%` AND `total_cost` within ~2× the
|
||
reference (doubled side count is the structural cost of this construction).
|
||
- Watch: benchmark neutrality (SPY beta ≈ 0) as a secondary sanity metric.
|
||
|
||
## Execution prerequisites
|
||
1. New contrib module `tac_qlib/contrib/strategy/top_bottom.py`
|
||
(`TopBottomDropoutStrategy` subclassing `BaseSignalStrategy`), copy to the
|
||
venv site-packages copy.
|
||
2. Workflow YAML wiring the strategy; PortAnaRecord benchmark SPY.
|
||
3. Trace + run + snapshot. |