feat(ai_trade): SIGNAL_TTL_SECONDS env 추가 (F5 part 2)
신호 expires_at 계산용 TTL (default 300s). 환경별로 조정 가능. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,9 @@ class Settings:
|
|||||||
min_momentum_for_buy: str = field(
|
min_momentum_for_buy: str = field(
|
||||||
default_factory=lambda: os.getenv("MIN_MOMENTUM_FOR_BUY", "strong_up")
|
default_factory=lambda: os.getenv("MIN_MOMENTUM_FOR_BUY", "strong_up")
|
||||||
)
|
)
|
||||||
|
signal_ttl_seconds: int = field(
|
||||||
|
default_factory=lambda: int(os.getenv("SIGNAL_TTL_SECONDS", "300"))
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def kis_is_virtual(self) -> bool:
|
def kis_is_virtual(self) -> bool:
|
||||||
|
|||||||
@@ -48,3 +48,19 @@ def test_purge_expired_signals_removes_expired():
|
|||||||
assert "A" in state.signals
|
assert "A" in state.signals
|
||||||
assert "B" not in state.signals
|
assert "B" not in state.signals
|
||||||
assert removed == 1
|
assert removed == 1
|
||||||
|
|
||||||
|
|
||||||
|
# ----- SIGNAL_TTL_SECONDS env -----
|
||||||
|
|
||||||
|
def test_signal_ttl_seconds_default(monkeypatch):
|
||||||
|
monkeypatch.delenv("SIGNAL_TTL_SECONDS", raising=False)
|
||||||
|
from ai_trade.config import Settings
|
||||||
|
s = Settings()
|
||||||
|
assert s.signal_ttl_seconds == 300
|
||||||
|
|
||||||
|
|
||||||
|
def test_signal_ttl_seconds_env_override(monkeypatch):
|
||||||
|
monkeypatch.setenv("SIGNAL_TTL_SECONDS", "60")
|
||||||
|
from ai_trade.config import Settings
|
||||||
|
s = Settings()
|
||||||
|
assert s.signal_ttl_seconds == 60
|
||||||
|
|||||||
Reference in New Issue
Block a user