diff --git a/requirements.txt b/requirements.txt index 3e811f7..c1ef411 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ flask gunicorn -quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@v0.6.0 -us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@17fa78c22463070b88ba4a884c84e7a761835ccb +quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@6e8cc058b821aea8a54015d4b39e02fbdd3dc198 +us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@8b0c59f2ecd7c74cc2d350f1870f124a2560b205 pandas requests pytz diff --git a/strategy_registry.py b/strategy_registry.py index d10bea3..eeef12a 100644 --- a/strategy_registry.py +++ b/strategy_registry.py @@ -1,13 +1,16 @@ from __future__ import annotations -from us_equity_strategies.platform_registry_support import ( +from us_equity_strategies import get_strategy_catalog + +from quant_platform_kit.common.strategies import ( + PlatformStrategyPolicy, + StrategyDefinition, + US_EQUITY_DOMAIN, build_platform_profile_matrix, get_enabled_profiles_for_platform, resolve_platform_strategy_definition, ) -from quant_platform_kit.common.strategies import StrategyDefinition, US_EQUITY_DOMAIN - LONGBRIDGE_PLATFORM = "longbridge" DEFAULT_STRATEGY_PROFILE = "semiconductor_rotation_income" @@ -18,25 +21,24 @@ PLATFORM_SUPPORTED_DOMAINS: dict[str, frozenset[str]] = { LONGBRIDGE_PLATFORM: frozenset({US_EQUITY_DOMAIN}), } +STRATEGY_CATALOG = get_strategy_catalog() +PLATFORM_POLICY = PlatformStrategyPolicy( + platform_id=LONGBRIDGE_PLATFORM, + supported_domains=PLATFORM_SUPPORTED_DOMAINS[LONGBRIDGE_PLATFORM], + enabled_profiles=LONGBRIDGE_ENABLED_PROFILES, + default_profile=DEFAULT_STRATEGY_PROFILE, + rollback_profile=ROLLBACK_STRATEGY_PROFILE, +) SUPPORTED_STRATEGY_PROFILES = LONGBRIDGE_ENABLED_PROFILES def get_supported_profiles_for_platform(platform_id: str) -> frozenset[str]: - return get_enabled_profiles_for_platform( - platform_id, - expected_platform_id=LONGBRIDGE_PLATFORM, - enabled_profiles=LONGBRIDGE_ENABLED_PROFILES, - ) + return get_enabled_profiles_for_platform(platform_id, policy=PLATFORM_POLICY) def get_platform_profile_matrix() -> list[dict[str, object]]: - return build_platform_profile_matrix( - platform_id=LONGBRIDGE_PLATFORM, - enabled_profiles=LONGBRIDGE_ENABLED_PROFILES, - default_profile=DEFAULT_STRATEGY_PROFILE, - rollback_profile=ROLLBACK_STRATEGY_PROFILE, - ) + return build_platform_profile_matrix(STRATEGY_CATALOG, policy=PLATFORM_POLICY) def resolve_strategy_definition( @@ -47,8 +49,6 @@ def resolve_strategy_definition( return resolve_platform_strategy_definition( raw_value, platform_id=platform_id, - expected_platform_id=LONGBRIDGE_PLATFORM, - enabled_profiles=LONGBRIDGE_ENABLED_PROFILES, - platform_supported_domains=PLATFORM_SUPPORTED_DOMAINS, - default_profile=DEFAULT_STRATEGY_PROFILE, + strategy_catalog=STRATEGY_CATALOG, + policy=PLATFORM_POLICY, )