Sync SOXL dynamic volatility threshold backtests#80
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 378082df14
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "blend_gate_volatility_delever_enabled": bool(config.get("blend_gate_volatility_delever_enabled", False)), | ||
| "blend_gate_volatility_delever_symbol": str(config.get("blend_gate_volatility_delever_symbol", "SOXX")), | ||
| "blend_gate_volatility_delever_window": int(config.get("blend_gate_volatility_delever_window", 10)), | ||
| "blend_gate_volatility_delever_threshold": float(config.get("blend_gate_volatility_delever_threshold", 0.55)), |
There was a problem hiding this comment.
Forward core volatility threshold mode overrides
When a caller sets strategy_overrides for the new core volatility threshold fields, such as current_core_fixed55 in scripts/research_soxl_dynamic_volatility_delever_thresholds.py, those values are silently dropped because _strategy_kwargs only applies override keys already present in this kwargs dict. As a result blend_gate_volatility_delever_threshold_mode="fixed" and the dynamic lookback/percentile/floor/cap overrides never reach build_rebalance_plan, so fixed-vs-dynamic research variants can be mislabeled and compared against the manifest default instead of the requested mode.
Useful? React with 👍 / 👎.
378082d to
9688a04
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9688a04328
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| volatility_window = int( | ||
| soxl_soxx_trend_income_manifest.default_config["blend_gate_volatility_delever_window"] | ||
| ) | ||
| volatility_lookback = int( | ||
| soxl_soxx_trend_income_manifest.default_config["blend_gate_volatility_delever_dynamic_lookback"] | ||
| ) | ||
| volatility_percentile = float( | ||
| soxl_soxx_trend_income_manifest.default_config["blend_gate_volatility_delever_dynamic_percentile"] |
There was a problem hiding this comment.
Apply volatility overrides before building indicators
When a backtest uses strategy_overrides to research a non-default dynamic volatility gate (for example a different blend_gate_volatility_delever_window, percentile, floor, or cap), these indicator columns are still computed from the manifest defaults before build_rebalance_plan sees the overrides. Since the per-day strategy snapshot only contains the precomputed dynamic threshold/sample-count columns, those override runs can be evaluated and labeled with the requested parameters while comparing against the default 10-day/p95/50%-75% threshold instead. Fresh evidence beyond the earlier comment is that the override keys now get forwarded, but the newly added indicator generation still reads directly from default_config.
Useful? React with 👍 / 👎.
Summary
Tests
Note: pytest backtest coverage could not run locally because this VPS Python environment does not have pandas/numpy installed.