from dataclasses import dataclass, field
from typing import Optional, List
@dataclass
class LivePrice:
stock_code: str = ""
lastprice: float = 0.0
volume: float = 0.0
high: float = 0.0
low: float = 0.0
open: float = 0.0
average: float = 0.0
close: float = 0.0
prev: float = 0.0
change: str = "NO_CHANGE"
frequency: float = 0.0
@dataclass
class OrderBookEntry:
price: float = 0.0
volume: float = 0.0
frequency: float = 0.0
@dataclass
class OrderBook:
symbol: str = ""
bid: List[OrderBookEntry] = field(default_factory=list)
offer: List[OrderBookEntry] = field(default_factory=list)
total_bid: Optional[OrderBookEntry] = None
total_offer: Optional[OrderBookEntry] = None
@dataclass
class RunningTrade:
stock: str = ""
price: float = 0.0
volume: float = 0.0
action: str = "" # BUY or SELL
value: float = 0.0
trade_number: int = 0
change: str = "NO_CHANGE"
@dataclass
class CashBalance:
cash_balance: float = 0.0
withdrawable: float = 0.0
buying_power: float = 0.0
available_cash: float = 0.0
@dataclass
class PortfolioItem:
symbol: str = ""
total_shares: int = 0
average_buy: float = 0.0
last_price: float = 0.0
total_value: float = 0.0
amount_invested: float = 0.0
profit_loss: float = 0.0
gain_pct: float = 0.0
@dataclass
class Order:
order_id: str = ""
symbol: str = ""
status_text: str = ""
side: str = ""
price_order: float = 0.0
price_avg: float = 0.0
lot_done: int = 0
lot_open: int = 0
lot_total: int = 0