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 application/rebalance_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
)
from quant_platform_kit.strategy_contracts import build_strategy_evaluation_inputs
from runtime_config_support import IBIT_SMART_DCA_PROFILE, PlatformRuntimeSettings, load_platform_runtime_settings
from market_signal_runtime import resolve_external_market_signal_inputs
from us_equity_strategies.signals import resolve_external_market_signal_inputs
from strategy_runtime import load_strategy_runtime

LIMIT_SELL_DISCOUNT = 0.995
Expand Down
23 changes: 0 additions & 23 deletions market_signal_runtime.py

This file was deleted.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ authors = [
]
dependencies = [
"firstrade==0.0.39",
"quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@b821e8c318e15d40f925c84a007ae335a3415cd5",
"us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@7ae083fae5c00c3df0c8fb1d98b045401a3b5bfa",
"quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@aee8121d530c2e92c72b68aee434bf174b3b9c85",
"us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@b2fa659304c02cc19f7c82e86b0ce36ef592846a",
"google-cloud-storage",
"requests",
]
Expand Down
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
flask
gunicorn
firstrade==0.0.39
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@b821e8c318e15d40f925c84a007ae335a3415cd5
us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@7ae083fae5c00c3df0c8fb1d98b045401a3b5bfa
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@aee8121d530c2e92c72b68aee434bf174b3b9c85
us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@b2fa659304c02cc19f7c82e86b0ce36ef592846a
google-cloud-storage
google-auth
requests
Expand Down
2 changes: 1 addition & 1 deletion strategy_runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
build_strategy_context_from_available_inputs,
)
from runtime_config_support import PlatformRuntimeSettings
from market_signal_runtime import resolve_external_market_signal_inputs
from us_equity_strategies.signals import resolve_external_market_signal_inputs
from strategy_loader import (
load_strategy_entrypoint_for_profile,
load_strategy_runtime_adapter_for_profile,
Expand Down
23 changes: 13 additions & 10 deletions tests/test_market_signal_runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,18 @@

import pytest

import market_signal_runtime
from us_equity_strategies.signals import runtime_market_signal_inputs as runtime_signal_inputs


def _resolve(*args, **kwargs):
return runtime_signal_inputs.resolve_external_market_signal_inputs(*args, **kwargs)


def test_unsupported_profile_does_not_load_market_signal():
settings = SimpleNamespace(market_signal_required=True)

assert (
market_signal_runtime.resolve_external_market_signal_inputs(
runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="tqqq_growth_income",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand All @@ -25,7 +28,7 @@ def test_unsupported_profile_does_not_load_market_signal():
def test_ibit_without_reference_provides_empty_indicator_input():
settings = SimpleNamespace(market_signal_required=False)

assert market_signal_runtime.resolve_external_market_signal_inputs(
assert runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="ibit_smart_dca",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand All @@ -36,7 +39,7 @@ def test_ibit_required_reference_missing_raises():
settings = SimpleNamespace(market_signal_required=True)

with pytest.raises(RuntimeError, match="external market signal is required"):
market_signal_runtime.resolve_external_market_signal_inputs(
runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="ibit_smart_dca",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand All @@ -46,7 +49,7 @@ def test_ibit_required_reference_missing_raises():
def test_soxl_without_reference_preserves_legacy_inputs():
settings = SimpleNamespace(market_signal_required=False)

assert market_signal_runtime.resolve_external_market_signal_inputs(
assert runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="soxl_soxx_trend_income",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand All @@ -56,7 +59,7 @@ def test_soxl_without_reference_preserves_legacy_inputs():
def test_nasdaq_without_reference_preserves_legacy_inputs():
settings = SimpleNamespace(market_signal_required=False)

assert market_signal_runtime.resolve_external_market_signal_inputs(
assert runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="nasdaq_sp500_smart_dca",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand All @@ -70,7 +73,7 @@ def test_soxl_required_reference_missing_raises():
RuntimeError,
match="soxl_soxx_trend_income external market signal is required",
):
market_signal_runtime.resolve_external_market_signal_inputs(
runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="soxl_soxx_trend_income",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand Down Expand Up @@ -120,7 +123,7 @@ def fake_extract(
market_signal_max_stale_days=5,
)

assert market_signal_runtime.resolve_external_market_signal_inputs(
assert runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="ibit_smart_dca",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand Down Expand Up @@ -188,7 +191,7 @@ def fake_extract(
market_signal_max_stale_days=4,
)

assert market_signal_runtime.resolve_external_market_signal_inputs(
assert runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="nasdaq_sp500_smart_dca",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand Down Expand Up @@ -255,7 +258,7 @@ def fake_extract(
market_signal_fallback_mode="none",
)

assert market_signal_runtime.resolve_external_market_signal_inputs(
assert runtime_signal_inputs.resolve_external_market_signal_inputs(
strategy_profile="soxl_soxx_trend_income",
available_inputs={"derived_indicators"},
runtime_settings=settings,
Expand Down