Skip to content

Commit ab65ef8

Browse files
authored
Merge pull request #6 from QuantStrategyLab/codex/ibkr-platform-strategy-policy
[codex] refactor ibkr platform strategy policy
2 parents 2622fac + 503966e commit ab65ef8

2 files changed

Lines changed: 21 additions & 20 deletions

File tree

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
flask
22
gunicorn
3-
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@v0.6.0
4-
us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@98d063564a53f6678ae12a7e941b58b958941554
3+
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@6e8cc058b821aea8a54015d4b39e02fbdd3dc198
4+
us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@8b0c59f2ecd7c74cc2d350f1870f124a2560b205
55
pandas
66
numpy
77
requests

strategy_registry.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
from __future__ import annotations
22

3-
from us_equity_strategies.platform_registry_support import (
3+
from us_equity_strategies import get_strategy_catalog
4+
5+
from quant_platform_kit.common.strategies import (
6+
PlatformStrategyPolicy,
7+
StrategyDefinition,
8+
US_EQUITY_DOMAIN,
49
build_platform_profile_matrix,
510
get_enabled_profiles_for_platform,
611
resolve_platform_strategy_definition,
712
)
813

9-
from quant_platform_kit.common.strategies import StrategyDefinition, US_EQUITY_DOMAIN
10-
1114
IBKR_PLATFORM = "ibkr"
1215

1316
DEFAULT_STRATEGY_PROFILE = "global_etf_rotation"
@@ -25,25 +28,25 @@
2528
PLATFORM_SUPPORTED_DOMAINS: dict[str, frozenset[str]] = {
2629
IBKR_PLATFORM: frozenset({US_EQUITY_DOMAIN}),
2730
}
31+
STRATEGY_CATALOG = get_strategy_catalog()
32+
PLATFORM_POLICY = PlatformStrategyPolicy(
33+
platform_id=IBKR_PLATFORM,
34+
supported_domains=PLATFORM_SUPPORTED_DOMAINS[IBKR_PLATFORM],
35+
enabled_profiles=IBKR_ENABLED_PROFILES,
36+
default_profile=DEFAULT_STRATEGY_PROFILE,
37+
rollback_profile=ROLLBACK_STRATEGY_PROFILE,
38+
require_explicit_profile=True,
39+
)
2840

2941
SUPPORTED_STRATEGY_PROFILES = IBKR_ENABLED_PROFILES
3042

3143

3244
def get_supported_profiles_for_platform(platform_id: str) -> frozenset[str]:
33-
return get_enabled_profiles_for_platform(
34-
platform_id,
35-
expected_platform_id=IBKR_PLATFORM,
36-
enabled_profiles=IBKR_ENABLED_PROFILES,
37-
)
45+
return get_enabled_profiles_for_platform(platform_id, policy=PLATFORM_POLICY)
3846

3947

4048
def get_platform_profile_matrix() -> list[dict[str, object]]:
41-
return build_platform_profile_matrix(
42-
platform_id=IBKR_PLATFORM,
43-
enabled_profiles=IBKR_ENABLED_PROFILES,
44-
default_profile=DEFAULT_STRATEGY_PROFILE,
45-
rollback_profile=ROLLBACK_STRATEGY_PROFILE,
46-
)
49+
return build_platform_profile_matrix(STRATEGY_CATALOG, policy=PLATFORM_POLICY)
4750

4851

4952
def resolve_strategy_definition(
@@ -54,8 +57,6 @@ def resolve_strategy_definition(
5457
return resolve_platform_strategy_definition(
5558
raw_value,
5659
platform_id=platform_id,
57-
expected_platform_id=IBKR_PLATFORM,
58-
enabled_profiles=IBKR_ENABLED_PROFILES,
59-
platform_supported_domains=PLATFORM_SUPPORTED_DOMAINS,
60-
require_explicit=True,
60+
strategy_catalog=STRATEGY_CATALOG,
61+
policy=PLATFORM_POLICY,
6162
)

0 commit comments

Comments
 (0)