summaryrefslogtreecommitdiff
path: root/services/api/src/trading_api/routers/strategies.py
diff options
context:
space:
mode:
Diffstat (limited to 'services/api/src/trading_api/routers/strategies.py')
-rw-r--r--services/api/src/trading_api/routers/strategies.py28
1 files changed, 28 insertions, 0 deletions
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
+ ]