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

1.5 KiB
Raw Blame History

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.