Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion notifications/telegram.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
"strategy_name_russell_1000_multi_factor_defensive": "罗素1000多因子",
"strategy_name_tech_communication_pullback_enhancement": "科技通信回调增强",
"strategy_name_qqq_tech_enhancement": "科技通信回调增强",
"strategy_name_mega_cap_leader_rotation_top50_balanced": "Mega Cap Top50 平衡龙头轮动",
"strategy_name_mega_cap_leader_rotation_top50_balanced": "美股超大盘50强平衡龙头轮动",
"strategy_name_hk_global_etf_tactical_rotation": "港股全球 ETF 战术轮动",
"strategy_name_hk_dividend_gold_defensive_rotation": "港股股息黄金防守轮动",
"strategy_name_hk_low_vol_dividend_quality_snapshot": "港股低波股息质量快照",
Expand Down
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
flask
gunicorn
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@9d9682533578c7e5a9e02ea80040b7014898e4dd
us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@c7a1ae5e804b720f2ab6412451b9e8ee3341ff20
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@2a711adf60b585ca02932bab9ee1bac7ce1df7c6

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Align the shared kit pin with HK dependency

In a clean pip install -r requirements.txt, this new direct URL conflicts with the still-pinned hk-equity-strategies dependency: HkEquityStrategies at 196f16b... declares quant-platform-kit @ ...@9d968253... in its pyproject.toml, while the top-level requirements now request ...@2a711ad.... pip cannot satisfy two different direct references for the same project, so fresh deployments that install the full requirements set will fail before the app starts; update the HK strategy package/pin together with this bump or remove the conflicting transitive pin.

Useful? React with 👍 / 👎.

us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@085f6010883b3f7c66a1c16f96749c0251410f93
hk-equity-strategies @ git+https://github.com/QuantStrategyLab/HkEquityStrategies.git@196f16b63b39fc7f35db703a00a9344a1d1d2bb4
pandas
requests
Expand Down
3 changes: 2 additions & 1 deletion scripts/print_strategy_profile_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ def _print_table(rows: list[dict[str, object]]) -> None:
headers = (
"canonical_profile",
"display_name",
"display_name_zh",
"profile_group",
"input_mode",
"requires_snapshot_artifacts",
Expand All @@ -90,7 +91,7 @@ def _print_table(rows: list[dict[str, object]]) -> None:
def main() -> int:
rows = build_status_rows()
if "--json" in sys.argv:
print(json.dumps(rows, indent=2, sort_keys=True))
print(json.dumps(rows, ensure_ascii=False, indent=2, sort_keys=True))
return 0
_print_table(rows)
return 0
Expand Down
2 changes: 1 addition & 1 deletion tests/test_notifications.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ def test_heartbeat_localizes_strategy_diagnostics_and_source_input_status(self):
note_logs=(),
translator=build_translator("zh"),
separator="━━━━━━━━━━━━━━━━━━",
strategy_display_name="Mega Cap Top50 平衡龙头轮动",
strategy_display_name="美股超大盘50强平衡龙头轮动",
dry_run_only=False,
)

Expand Down
8 changes: 8 additions & 0 deletions tests/test_runtime_config_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -741,11 +741,13 @@ def test_print_strategy_profile_status_json_matches_registry(self):
for key in (
"canonical_profile",
"display_name",
"display_name_zh",
"domain",
"eligible",
"enabled",
"platform",
)
if key in row
}
for row in rows
],
Expand All @@ -758,6 +760,10 @@ def test_print_strategy_profile_status_json_matches_registry(self):
self.assertFalse(by_profile["global_etf_rotation"]["requires_strategy_config_path"])
self.assertNotIn("tech_communication_pullback_enhancement", by_profile)
self.assertEqual(by_profile["mega_cap_leader_rotation_top50_balanced"]["profile_group"], "snapshot_backed")
self.assertEqual(
by_profile["mega_cap_leader_rotation_top50_balanced"]["display_name_zh"],
"美股超大盘50强平衡龙头轮动",
)
self.assertEqual(by_profile["mega_cap_leader_rotation_top50_balanced"]["input_mode"], "feature_snapshot")
self.assertTrue(by_profile["mega_cap_leader_rotation_top50_balanced"]["requires_snapshot_artifacts"])
self.assertFalse(by_profile["mega_cap_leader_rotation_top50_balanced"]["requires_strategy_config_path"])
Expand Down Expand Up @@ -788,6 +794,7 @@ def test_print_strategy_profile_status_table_contains_expected_headers(self):

self.assertIn("canonical_profile", result.stdout)
self.assertIn("display_name", result.stdout)
self.assertIn("display_name_zh", result.stdout)
self.assertIn("profile_group", result.stdout)
self.assertIn("input_mode", result.stdout)
self.assertIn("requires_snapshot_artifacts", result.stdout)
Expand All @@ -801,6 +808,7 @@ def test_print_strategy_profile_status_table_contains_expected_headers(self):
self.assertIn("HK Dividend-Gold Defensive Rotation", result.stdout)
self.assertIn("Russell 1000 Multi-Factor", result.stdout)
self.assertIn("Mega Cap Leader Rotation Top50 Balanced", result.stdout)
self.assertIn("美股超大盘50强平衡龙头轮动", result.stdout)
self.assertNotIn("Tech/Communication Pullback Enhancement", result.stdout)
self.assertNotIn("hk_blue_chip_leader_rotation", result.stdout)
self.assertNotIn("hk_index_mean_reversion", result.stdout)
Expand Down
Loading