From e10d4a96e062818cb2395add1746c733a053c374 Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Wed, 1 Apr 2026 17:25:54 +0900 Subject: feat: add FastAPI REST API service --- services/api/src/trading_api/routers/strategies.py | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 services/api/src/trading_api/routers/strategies.py (limited to 'services/api/src/trading_api/routers/strategies.py') diff --git a/services/api/src/trading_api/routers/strategies.py b/services/api/src/trading_api/routers/strategies.py new file mode 100644 index 0000000..a8d778d --- /dev/null +++ b/services/api/src/trading_api/routers/strategies.py @@ -0,0 +1,28 @@ +"""Strategy endpoints.""" +import sys +from pathlib import Path + +from fastapi import APIRouter + +# Add strategy-engine to path for plugin loading +_STRATEGY_DIR = Path(__file__).resolve().parents[5] / "strategy-engine" +if str(_STRATEGY_DIR) not in sys.path: + sys.path.insert(0, str(_STRATEGY_DIR)) + +router = APIRouter() + + +@router.get("/") +async def list_strategies(): + """List available strategies.""" + from strategy_engine.plugin_loader import load_strategies + strategies_dir = _STRATEGY_DIR / "strategies" + strategies = load_strategies(strategies_dir) + return [ + { + "name": s.name, + "warmup_period": s.warmup_period, + "class": type(s).__name__, + } + for s in strategies + ] -- cgit v1.2.3