spb/crypto-trade-bot
Public
Python 54.7%
TypeScript 42.5%
SQL 1.9%
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