From 31a00a209b5defb9ee0375283e1e8b6167539a8d Mon Sep 17 00:00:00 2001 From: Pigbibi <20649888+Pigbibi@users.noreply.github.com> Date: Thu, 16 Apr 2026 02:45:30 +0800 Subject: [PATCH 1/2] Use UsEquityStrategies 0.7.25 --- requirements.txt | 2 +- tests/test_strategy_loader.py | 2 ++ tests/test_strategy_runtime.py | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index 5718f02..1872e83 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ flask gunicorn quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@v0.7.16 -us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@v0.7.24 +us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@v0.7.25 pandas numpy requests diff --git a/tests/test_strategy_loader.py b/tests/test_strategy_loader.py index ae6b64b..32b7c93 100644 --- a/tests/test_strategy_loader.py +++ b/tests/test_strategy_loader.py @@ -51,6 +51,8 @@ def test_load_strategy_entrypoint_for_profile_resolves_tqqq_growth_income(monkey assert entrypoint.manifest.profile == "tqqq_growth_income" assert entrypoint.manifest.required_inputs == frozenset({"benchmark_history", "portfolio_snapshot"}) assert entrypoint.manifest.default_config["benchmark_symbol"] == "QQQ" + assert entrypoint.manifest.default_config["managed_symbols"] == ("TQQQ", "QQQ", "BOXX", "SPYI", "QQQI") + assert entrypoint.manifest.default_config["attack_allocation_mode"] == "fixed_qqq_tqqq_pullback" def test_load_strategy_entrypoint_for_profile_resolves_mega_cap_dynamic_top20(monkeypatch): diff --git a/tests/test_strategy_runtime.py b/tests/test_strategy_runtime.py index 891f593..a091e1c 100644 --- a/tests/test_strategy_runtime.py +++ b/tests/test_strategy_runtime.py @@ -491,7 +491,7 @@ class FakeEntrypoint: required_inputs=frozenset({"benchmark_history", "portfolio_snapshot"}), default_config={ "benchmark_symbol": "QQQ", - "managed_symbols": ("TQQQ", "BOXX", "SPYI", "QQQI"), + "managed_symbols": ("TQQQ", "QQQ", "BOXX", "SPYI", "QQQI"), }, ) @@ -517,7 +517,7 @@ def evaluate(self, ctx): runtime_config={}, merged_runtime_config={ "benchmark_symbol": "QQQ", - "managed_symbols": ("TQQQ", "BOXX", "SPYI", "QQQI"), + "managed_symbols": ("TQQQ", "QQQ", "BOXX", "SPYI", "QQQI"), }, status_icon="🐤", logger=lambda _message: None, @@ -551,4 +551,4 @@ def fake_candle_loader(_ib, symbol, duration="2 Y", bar_size="1 day"): assert "pacing_sec" not in captured["runtime_config"] assert result.metadata["portfolio_total_equity"] == 50000.0 assert result.metadata["benchmark_symbol"] == "QQQ" - assert result.metadata["managed_symbols"] == ("TQQQ", "BOXX", "SPYI", "QQQI") + assert result.metadata["managed_symbols"] == ("TQQQ", "QQQ", "BOXX", "SPYI", "QQQI") From ccb294960e518e284da56bca5b7adb772c798f31 Mon Sep 17 00:00:00 2001 From: Pigbibi <20649888+Pigbibi@users.noreply.github.com> Date: Thu, 16 Apr 2026 02:49:03 +0800 Subject: [PATCH 2/2] Fix research lint --- research/backtest_video_qqq_tqqq_dual_drive.py | 1 - 1 file changed, 1 deletion(-) diff --git a/research/backtest_video_qqq_tqqq_dual_drive.py b/research/backtest_video_qqq_tqqq_dual_drive.py index 70e6ad6..74fc8a1 100644 --- a/research/backtest_video_qqq_tqqq_dual_drive.py +++ b/research/backtest_video_qqq_tqqq_dual_drive.py @@ -22,7 +22,6 @@ from pathlib import Path from typing import Iterable -import numpy as np import pandas as pd CURRENT_DIR = Path(__file__).resolve().parent