| |
| |
| |
| |
| |
|
|
| """Data models for the Finenv environment.""" |
|
|
| from enum import Enum |
| from typing import Any, Dict, Optional |
|
|
| from openenv.core.env_server.types import Action, Observation |
|
|
| from typing import Optional, Literal |
|
|
|
|
|
|
| class StockExchangeMarket(Enum): |
| BSE = "bse" |
| NSE = "nse" |
|
|
|
|
|
|
| class FinenvAction(Action): |
| """ |
| Action model for Finenv environment. |
| |
| Supports: |
| - init β initialize environment |
| - buy β buy shares |
| - sell β sell shares |
| - hold β no action |
| """ |
|
|
| type: str |
|
|
| |
| quantity: Optional[int] = 0 |
|
|
| task_type: Optional[Literal["easy", "medium", "hard"]] = None |
|
|
| |
| stock: Optional[str] = None |
| market: Optional[StockExchangeMarket] = None |
| initial_cash: Optional[float] = None |
| max_steps: Optional[int] = None |
|
|
|
|
| class FinenvObservation(Observation): |
| """Observation from the Finenv environment - the echoed message.""" |
| stock: Optional[str] = None |
| market: Optional[StockExchangeMarket] = None |
| shares: int |
| cash: float |
| price: float |
| reward: str |
| done: bool |
| metadata: Optional[Dict[str, Any]] = None |
| |
|
|