Files
tac-exp-dev/queue/designs/q09_long_short.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

30 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.