# AegisTrade AI — Module Contracts & Interfaces

## 1. Core Module Contracts

### 1.1 Market Data Protocol (`app.market_data.base`)
```python
class MarketDataProvider(Protocol):
    async def get_klines(self, symbol: str, interval: str, limit: int = 200) -> list[Candle]: ...
    async def get_ticker(self, symbol: str) -> Ticker: ...
    async def get_orderbook(self, symbol: str, limit: int = 50) -> OrderBook: ...
    async def get_server_time(self) -> int: ...
```

### 1.2 Risk Engine Protocol (`app.risk.engine`)
```python
class RiskEngine(Protocol):
    def evaluate_signal(self, signal: SignalCandidate, account_state: AccountState) -> RiskDecision: ...
    def check_kill_switch(self) -> bool: ...
    def trigger_kill_switch(self, reason: str) -> None: ...
    def reset_kill_switch(self, admin_token: str) -> bool: ...
```

### 1.3 Execution Router Protocol (`app.execution.router`)
```python
class ExecutionRouter(Protocol):
    async def submit_order(self, intent: OrderIntent) -> OrderResult: ...
    async def cancel_order(self, client_order_id: str) -> bool: ...
    async def get_open_orders(self, symbol: str | None = None) -> list[Order]: ...
    async def get_positions(self) -> list[Position]: ...
```

### 1.4 ML Model Protocol (`app.models.base`)
```python
class BaseTradingModel(Protocol):
    def predict_proba(self, features: pd.DataFrame) -> np.ndarray: ...
    def evaluate_expected_value(self, proba: float, entry: float, stop: float, tp: float) -> ExpectedValueMetrics: ...
```
