live: commit the TrendRider V9/V10 registrations the monitor already runs

trader.py registers trend_rider_v9 (+ vt24/vt32/vt36) and trend_rider_v10
(+ vt32/vt36) from strategies/trend_rider_v9.py, and bridge.py labels them.
These were left uncommitted by the 2026-10-07 research session while the
monitor ran them from the working tree (state files data/trader_us_trend_rider_v9*/v10*).
research/tr9_*.py is the research trail CLAUDE.md cites.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-09 22:20:28 -07:00
parent 92a2a585e1
commit 36cb125719
8 changed files with 1576 additions and 1 deletions

View File

@@ -71,6 +71,7 @@ from strategies.trend_rider_voltgt import (
TrendRiderV5VolTarget,
)
from strategies.trend_rider_v7 import TrendRiderV7
from strategies.trend_rider_v9 import TrendRiderV9
from strategies.ensemble_alpha import (
EnsembleAlphaStrategy,
EnhancedFactorComboStrategy,
@@ -265,6 +266,18 @@ STRATEGY_REGISTRY = {
"trend_rider_v7_vt24": lambda **kw: TrendRiderV7(target_vol=0.24, min_lev=0.5),
"trend_rider_v7_vt32": lambda **kw: TrendRiderV7(target_vol=0.32, min_lev=0.7),
"trend_rider_v7_vt36": lambda **kw: TrendRiderV7(target_vol=0.36, min_lev=0.75),
# --- V9: V7 + trailing stop on the leveraged risk-on leg ---
"trend_rider_v9": lambda **kw: TrendRiderV9(),
"trend_rider_v9_vt24": lambda **kw: TrendRiderV9(target_vol=0.24, min_lev=0.5),
"trend_rider_v9_vt32": lambda **kw: TrendRiderV9(target_vol=0.32, min_lev=0.7),
"trend_rider_v9_vt36": lambda **kw: TrendRiderV9(target_vol=0.36, min_lev=0.75),
# --- V10: V9 + PT refinement (clear 28% / restore band 8pp / 10-day re-clear lockout) ---
"trend_rider_v10": lambda **kw: TrendRiderV9(
pt_threshold=0.28, pt_band=0.08, pt_min_hold=10),
"trend_rider_v10_vt32": lambda **kw: TrendRiderV9(
target_vol=0.32, min_lev=0.70, pt_threshold=0.28, pt_band=0.08, pt_min_hold=10),
"trend_rider_v10_vt36": lambda **kw: TrendRiderV9(
target_vol=0.36, min_lev=0.75, pt_threshold=0.28, pt_band=0.08, pt_min_hold=10),
# --- Stock-picker ensemble strategies (S&P 500 universe) ---
"ensemble_alpha_top10": lambda **kw: EnsembleAlphaStrategy(top_n=10),
"ensemble_alpha_top12": lambda **kw: EnsembleAlphaStrategy(top_n=12),
@@ -380,6 +393,13 @@ ETF_STRATEGY_UNIVERSES = {
"trend_rider_v7_vt24": sorted(set(ETF_UNIVERSE)),
"trend_rider_v7_vt32": sorted(set(ETF_UNIVERSE)),
"trend_rider_v7_vt36": sorted(set(ETF_UNIVERSE)),
"trend_rider_v9": sorted(set(ETF_UNIVERSE)),
"trend_rider_v9_vt24": sorted(set(ETF_UNIVERSE)),
"trend_rider_v9_vt32": sorted(set(ETF_UNIVERSE)),
"trend_rider_v9_vt36": sorted(set(ETF_UNIVERSE)),
"trend_rider_v10": sorted(set(ETF_UNIVERSE)),
"trend_rider_v10_vt32": sorted(set(ETF_UNIVERSE)),
"trend_rider_v10_vt36": sorted(set(ETF_UNIVERSE)),
}
# Strategies that use the market's stock universe PLUS fixed extra ETF tickers.