Source code for bingx_py.models.standard

from typing import Optional

from pydantic import BaseModel, Field


[docs] class PositionItem(BaseModel): """Model for position data. Args: symbol (str): Trading pair. initial_margin (Optional[float]): Margin. leverage (Optional[float]): Leverage. unrealized_profit (Optional[float]): Position unrealized profit and loss. isolated (Optional[bool]): Whether it is isolated margin mode. entry_price (Optional[float]): Holding cost price. position_side (Optional[float]): Position direction, LONG and SHORT. position_amt (Optional[float]): Transaction data. current_price (Optional[float]): Current price. When there is no closing price, the current price will be returned. time (int): Opening time. """ symbol: str = Field(..., description="Trading pair") initial_margin: Optional[float] = Field( None, description="Margin", alias="initialMargin", ) leverage: Optional[float] = Field(None, description="Leverage") unrealized_profit: Optional[float] = Field( None, description="Position unrealized profit and loss", alias="unrealizedProfit", ) isolated: Optional[bool] = Field( None, description="Whether it is isolated margin mode", ) entry_price: Optional[float] = Field( None, description="Holding cost price", alias="entryPrice", ) position_side: Optional[float] = Field( None, description="Position direction, LONG and SHORT", alias="positionSide", ) position_amt: Optional[float] = Field( None, description="Transaction data", alias="positionAmt", ) current_price: Optional[float] = Field( None, description="Current price. When there is no closing price, the current price will be returned", alias="currentPrice", ) time: int = Field(..., description="Opening time")
[docs] class PositionsResponse(BaseModel): """Model for the response of Query Invited Users. Args: - `code` (int): Error code, 0 means successful response, others mean response failure. - `timestamp` (int): Response timestamp. - `data` (List[PositionItem]): Response data. """ code: int = Field(..., description="Error code, 0 means success") timestamp: int = Field(..., description="Response timestamp") data: list[PositionItem] = Field(..., description="List of position items")
[docs] class HistoricalOrderItem(BaseModel): """Model for historical order item. Args: - `avg_price` (Optional[float]): Closing price. - `cum_quote` (Optional[float]): Transaction amount. - `executed_qty` (Optional[float]): Turnover. - `order_id` (Optional[int]): System order number. - `position_side` (str): Position direction, LONG and SHORT. - `status` (str): Order Status CLOSED. - `symbol` (str): Currency pair, the format is similar to: BTC-USDT. - `time` (int): Order time. - `update_time` (int): Update time. - `margin` (Optional[float]): Margin. - `leverage` (Optional[float]): Leverage. - `isolated` (Optional[bool]): Whether it is isolated margin mode. - `close_price` (Optional[float]): Closing price. - `position_id` (int): Position order number. """ avg_price: Optional[float] = Field( None, description="Closing price", alias="avgPrice", ) cum_quote: Optional[float] = Field( None, description="Transaction amount", alias="cumQuote", ) executed_qty: Optional[float] = Field( None, description="Turnover", alias="executedQty", ) order_id: Optional[int] = Field( None, description="System order number", alias="orderId", ) position_side: str = Field( ..., description="Position direction, LONG and SHORT", alias="positionSide", ) status: str = Field(..., description="Order Status CLOSED") symbol: str = Field( ..., description="Currency pair, the format is similar to: BTC-USDT", ) time: int = Field(..., description="Order time") update_time: int = Field(..., description="Update time", alias="updateTime") margin: Optional[float] = Field(None, description="Margin") leverage: Optional[float] = Field(None, description="Leverage") isolated: Optional[bool] = Field( None, description="Whether it is isolated margin mode", ) close_price: Optional[float] = Field( None, description="Closing price", alias="closePrice", ) position_id: int = Field( ..., description="Position order number", alias="positionId", )
[docs] class HistoricalOrderResponse(BaseModel): """Model for the response of Historical Order. Args: - `code` (int): Error code, 0 means successful response, others mean response failure. - `timestamp` (int): Response timestamp. - `data` (List[HistoricalOrderItem]): Response data. """ code: int = Field(..., description="Error code, 0 means success") timestamp: int = Field(..., description="Response timestamp") data: list[HistoricalOrderItem] = Field( ..., description="List of historical order items", )
[docs] class StandardContractBalanceItem(BaseModel): """Model for standard contract balance item. Args: - `asset` (str): Assets. - `balance` (str): Total balance. - `cross_wallet_balance` (str): Cross position balance. - `cross_un_pnl` (str): Unrealized profit and loss of cross positions. - `available_balance` (str): Order available balance. - `max_withdraw_amount` (str): Maximum transferable balance. - `margin_available` (Optional[bool]): Can it be used as a joint bond. - `update_time` (Optional[float]): Timestamp. """ asset: str = Field(..., description="Assets") balance: str = Field(..., description="Total balance") cross_wallet_balance: str = Field( ..., description="Cross position balance", alias="crossWalletBalance", ) cross_un_pnl: str = Field( ..., description="Unrealized profit and loss of cross positions", alias="crossUnPnl", ) available_balance: str = Field( ..., description="Order available balance", alias="availableBalance", ) max_withdraw_amount: str = Field( ..., description="Maximum transferable balance", alias="maxWithdrawAmount", ) margin_available: Optional[bool] = Field( None, description="Can it be used as a joint bond", alias="marginAvailable", ) update_time: Optional[float] = Field( None, description="Timestamp", alias="updateTime", )
[docs] class StandardContractBalanceResponse(BaseModel): """Model for the response of Historical Order. Args: - `code` (int): Error code, 0 means successful response, others mean response failure. - `timestamp` (int): Response timestamp. - `data` (List[StandardContractBalanceItem]): Response data. """ code: int = Field(..., description="Error code, 0 means success") timestamp: int = Field(..., description="Response timestamp") data: list[StandardContractBalanceItem] = Field(..., description="List of balances")