SPB Git forge
1commits 1branches 0releases
189.0 KBsize
maindefault branch
5 h agolast push
Python 54.7% TypeScript 42.5% SQL 1.9%
829 B · 25 lines python
Raw Blame History
1from __future__ import annotations23from ktrade.strategy.base import Strategy4from ktrade.strategy.benchmarks import BuyAndHold, Cash, EqualRisk, SimpleMomentum5from ktrade.strategy.meanrev import ZScoreMeanReversion6from ktrade.strategy.momentum import MovingAverageEnsemble, TimeSeriesMomentum78_REGISTRY: dict[str, type[Strategy]] = {9    c.meta.name: c for c in (TimeSeriesMomentum, MovingAverageEnsemble, ZScoreMeanReversion, BuyAndHold, Cash, SimpleMomentum, EqualRisk)10}111213def list_strategies() -> list[dict]:14    return [c.meta.model_dump() for c in _REGISTRY.values()]151617def get_strategy(name: str) -> type[Strategy]:18    if name not in _REGISTRY:19        raise KeyError(f"unknown strategy {name!r}; known: {sorted(_REGISTRY)}")20    return _REGISTRY[name]212223def strategy_names() -> list[str]:24    return list(_REGISTRY)25