Add FastAPI backend for energy trading system

Implements FastAPI backend with ML model support for energy trading,
including price prediction models and RL-based battery trading policy.
Features dashboard, trading, backtest, and settings API routes with
WebSocket support for real-time updates.
This commit is contained in:
2026-02-12 00:59:26 +07:00
parent a22a13f6f4
commit fe76bc7629
72 changed files with 2931 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
from tests.conftest import sample_price_data, sample_battery_state
__all__ = ["sample_price_data", "sample_battery_state"]

View File

@@ -0,0 +1,13 @@
import pytest
def test_backtest_start():
pass
def test_backtest_status():
pass
def test_backtest_history():
pass

View File

@@ -0,0 +1,46 @@
import pytest
from fastapi.testclient import TestClient
def test_health_check(client: TestClient):
response = client.get("/health")
assert response.status_code == 200
assert response.json()["status"] == "healthy"
def test_dashboard_summary(client: TestClient):
response = client.get("/api/v1/dashboard/summary")
assert response.status_code == 200
def test_latest_prices(client: TestClient):
response = client.get("/api/v1/dashboard/prices")
assert response.status_code == 200
assert "regions" in response.json()
def test_battery_states(client: TestClient):
response = client.get("/api/v1/dashboard/battery")
assert response.status_code == 200
assert "batteries" in response.json()
def test_arbitrage_opportunities(client: TestClient):
response = client.get("/api/v1/dashboard/arbitrage")
assert response.status_code == 200
assert "opportunities" in response.json()
def test_get_settings(client: TestClient):
response = client.get("/api/v1/settings")
assert response.status_code == 200
def test_list_models(client: TestClient):
response = client.get("/api/v1/models")
assert response.status_code == 200
def test_get_strategies(client: TestClient):
response = client.get("/api/v1/trading/strategies")
assert response.status_code == 200

View File

@@ -0,0 +1,9 @@
import pytest
def test_model_prediction():
pass
def test_model_training():
pass

View File

@@ -0,0 +1,9 @@
import pytest
def test_strategy_toggle():
pass
def test_trading_positions():
pass