mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 23:04:21 +01:00
282 lines
6.4 KiB
Python
282 lines
6.4 KiB
Python
from typing import Type, List, Dict, TypedDict, Union, Optional
|
|
|
|
JSON = Union[Dict[str, "JSON"], List["JSON"], bool, int, float, str, Type[None]]
|
|
|
|
#region Type hinting for subscription objects
|
|
|
|
class Subscriptions:
|
|
TradingPairsTicker = TypedDict("Subscriptions.TradingPairsTicker", {
|
|
"chanId": int,
|
|
"symbol": str,
|
|
"pair": str
|
|
})
|
|
|
|
FundingCurrenciesTicker = TypedDict("Subscriptions.FundingCurrenciesTicker", {
|
|
"chanId": int,
|
|
"symbol": str,
|
|
"currency": str
|
|
})
|
|
|
|
TradingPairsTrades = TypedDict("Subscriptions.TradingPairsTrades", {
|
|
"chanId": int,
|
|
"symbol": str,
|
|
"pair": str
|
|
})
|
|
|
|
FundingCurrenciesTrades = TypedDict("Subscriptions.FundingCurrenciesTrades", {
|
|
"chanId": int,
|
|
"symbol": str,
|
|
"currency": str
|
|
})
|
|
|
|
Book = TypedDict("Subscriptions.Book", {
|
|
"chanId": int,
|
|
"symbol": str,
|
|
"prec": str,
|
|
"freq": str,
|
|
"len": str,
|
|
"subId": int,
|
|
"pair": str
|
|
})
|
|
|
|
Candles = TypedDict("Subscriptions.Candles", {
|
|
"chanId": int,
|
|
"key": str
|
|
})
|
|
|
|
DerivativesStatus = TypedDict("Subscriptions.DerivativesStatus", {
|
|
"chanId": int,
|
|
"key": str
|
|
})
|
|
|
|
#endregion
|
|
|
|
#region Type hinting for Websocket Public Channels
|
|
|
|
TradingPairTicker = TypedDict("TradingPairTicker", {
|
|
"BID": float,
|
|
"BID_SIZE": float,
|
|
"ASK": float,
|
|
"ASK_SIZE": float,
|
|
"DAILY_CHANGE": float,
|
|
"DAILY_CHANGE_RELATIVE": float,
|
|
"LAST_PRICE": float,
|
|
"VOLUME": float,
|
|
"HIGH": float,
|
|
"LOW": float
|
|
})
|
|
|
|
FundingCurrencyTicker = TypedDict("FundingCurrencyTicker", {
|
|
"FRR": float,
|
|
"BID": float,
|
|
"BID_PERIOD": int,
|
|
"BID_SIZE": float,
|
|
"ASK": float,
|
|
"ASK_PERIOD": int,
|
|
"ASK_SIZE": float,
|
|
"DAILY_CHANGE": float,
|
|
"DAILY_CHANGE_RELATIVE": float,
|
|
"LAST_PRICE": float,
|
|
"VOLUME": float,
|
|
"HIGH": float,
|
|
"LOW": float,
|
|
"FRR_AMOUNT_AVAILABLE": float
|
|
})
|
|
|
|
(TradingPairTrade, FundingCurrencyTrade) = (
|
|
TypedDict("TradingPairTrade", { "ID": int, "MTS": int, "AMOUNT": float, "PRICE": float }),
|
|
TypedDict("FundingCurrencyTrade", { "ID": int, "MTS": int, "AMOUNT": float, "RATE": float, "PERIOD": int })
|
|
)
|
|
|
|
(TradingPairTrades, FundingCurrencyTrades) = (List[TradingPairTrade], List[FundingCurrencyTrade])
|
|
|
|
(TradingPairBook, FundingCurrencyBook) = (
|
|
TypedDict("TradingPairBook", { "PRICE": float, "COUNT": int, "AMOUNT": float }),
|
|
TypedDict("FundingCurrencyBook", { "RATE": float, "PERIOD": int, "COUNT": int, "AMOUNT": float })
|
|
)
|
|
|
|
(TradingPairBooks, FundingCurrencyBooks) = (List[TradingPairBook], List[FundingCurrencyBook])
|
|
|
|
(TradingPairRawBook, FundingCurrencyRawBook) = (
|
|
TypedDict("TradingPairRawBook", { "ORDER_ID": int, "PRICE": float, "AMOUNT": float }),
|
|
TypedDict("FundingCurrencyRawBook", { "OFFER_ID": int, "PERIOD": int, "RATE": float, "AMOUNT": float }),
|
|
)
|
|
|
|
(TradingPairRawBooks, FundingCurrencyRawBooks) = (List[TradingPairRawBook], List[FundingCurrencyRawBook])
|
|
|
|
Candle = TypedDict("Candle", {
|
|
"MTS": int,
|
|
"OPEN": float,
|
|
"CLOSE": float,
|
|
"HIGH": float,
|
|
"LOW": float,
|
|
"VOLUME": float
|
|
})
|
|
|
|
Candles = List[Candle]
|
|
|
|
DerivativesStatus = TypedDict("DerivativesStatus", {
|
|
"TIME_MS": int,
|
|
"DERIV_PRICE": float,
|
|
"SPOT_PRICE": float,
|
|
"INSURANCE_FUND_BALANCE": float,
|
|
"NEXT_FUNDING_EVT_TIMESTAMP_MS": int,
|
|
"NEXT_FUNDING_ACCRUED": float,
|
|
"NEXT_FUNDING_STEP": int,
|
|
"CURRENT_FUNDING": float,
|
|
"MARK_PRICE": float,
|
|
"OPEN_INTEREST": float,
|
|
"CLAMP_MIN": float,
|
|
"CLAMP_MAX": float
|
|
})
|
|
|
|
#endregion
|
|
|
|
#region Type hinting for Websocket Authenticated Channels
|
|
|
|
Order = TypedDict("Order", {
|
|
"ID": int,
|
|
"GID": int,
|
|
"CID": int,
|
|
"SYMBOL": str,
|
|
"MTS_CREATE": int,
|
|
"MTS_UPDATE": int,
|
|
"AMOUNT": float,
|
|
"AMOUNT_ORIG": float,
|
|
"ORDER_TYPE": str,
|
|
"TYPE_PREV": str,
|
|
"MTS_TIF": int,
|
|
"FLAGS": int,
|
|
"ORDER_STATUS": str,
|
|
"PRICE": float,
|
|
"PRICE_AVG": float,
|
|
"PRICE_TRAILING": float,
|
|
"PRICE_AUX_LIMIT": float,
|
|
"NOTIFY": int,
|
|
"HIDDEN": int,
|
|
"PLACED_ID": int,
|
|
"ROUTING": str,
|
|
"META": JSON
|
|
})
|
|
|
|
Orders = List[Order]
|
|
|
|
Position = TypedDict("Position", {
|
|
"SYMBOL": str,
|
|
"STATUS": str,
|
|
"AMOUNT": float,
|
|
"BASE_PRICE": float,
|
|
"MARGIN_FUNDING": float,
|
|
"MARGIN_FUNDING_TYPE": int,
|
|
"PL": float,
|
|
"PL_PERC": float,
|
|
"PRICE_LIQ": float,
|
|
"LEVERAGE": float,
|
|
"POSITION_ID": int,
|
|
"MTS_CREATE": int,
|
|
"MTS_UPDATE": int,
|
|
"TYPE": int,
|
|
"COLLATERAL": float,
|
|
"COLLATERAL_MIN": float,
|
|
"META": JSON,
|
|
})
|
|
|
|
Positions = List[Position]
|
|
|
|
Trade = TypedDict("Trade", {
|
|
"ID": int,
|
|
"SYMBOL": str,
|
|
"MTS_CREATE": int,
|
|
"ORDER_ID": int,
|
|
"EXEC_AMOUNT": float,
|
|
"EXEC_PRICE": float,
|
|
"ORDER_TYPE": str,
|
|
"ORDER_PRICE": float,
|
|
"MAKER":int,
|
|
"FEE": Optional[float],
|
|
"FEE_CURRENCY": Optional[str],
|
|
"CID": int
|
|
})
|
|
|
|
FundingOffer = TypedDict("FundingOffer", {
|
|
"ID": int,
|
|
"SYMBOL": str,
|
|
"MTS_CREATED": int,
|
|
"MTS_UPDATED": int,
|
|
"AMOUNT": float,
|
|
"AMOUNT_ORIG": float,
|
|
"OFFER_TYPE": str,
|
|
"FLAGS": int,
|
|
"STATUS": str,
|
|
"RATE": float,
|
|
"PERIOD": int,
|
|
"NOTIFY": int,
|
|
"HIDDEN": int,
|
|
"RENEW": int,
|
|
})
|
|
|
|
FundingOffers = List[FundingOffer]
|
|
|
|
FundingCredit = TypedDict("FundingCredit", {
|
|
"ID": int,
|
|
"SYMBOL": str,
|
|
"SIDE": int,
|
|
"MTS_CREATE": int,
|
|
"MTS_UPDATE": int,
|
|
"AMOUNT": float,
|
|
"FLAGS": int,
|
|
"STATUS": str,
|
|
"RATE": float,
|
|
"PERIOD": int,
|
|
"MTS_OPENING": int,
|
|
"MTS_LAST_PAYOUT": int,
|
|
"NOTIFY": int,
|
|
"HIDDEN": int,
|
|
"RENEW": int,
|
|
"RATE_REAL": float,
|
|
"NO_CLOSE": int,
|
|
"POSITION_PAIR": str
|
|
})
|
|
|
|
FundingCredits = List[FundingCredit]
|
|
|
|
FundingLoan = TypedDict("FundingLoan", {
|
|
"ID": int,
|
|
"SYMBOL": str,
|
|
"SIDE": int,
|
|
"MTS_CREATE": int,
|
|
"MTS_UPDATE": int,
|
|
"AMOUNT": float,
|
|
"FLAGS": int,
|
|
"STATUS": str,
|
|
"RATE": float,
|
|
"PERIOD": int,
|
|
"MTS_OPENING": int,
|
|
"MTS_LAST_PAYOUT": int,
|
|
"NOTIFY": int,
|
|
"HIDDEN": int,
|
|
"RENEW": int,
|
|
"RATE_REAL": float,
|
|
"NO_CLOSE": int
|
|
})
|
|
|
|
FundingLoans = List[FundingLoan]
|
|
|
|
Wallet = TypedDict("Wallet", {
|
|
"WALLET_TYPE": str,
|
|
"CURRENCY": str,
|
|
"BALANCE": float,
|
|
"UNSETTLED_INTEREST": float,
|
|
"BALANCE_AVAILABLE": float,
|
|
"DESCRIPTION": str,
|
|
"META": JSON
|
|
})
|
|
|
|
Wallets = List[Wallet]
|
|
|
|
BalanceInfo = TypedDict("BalanceInfo", {
|
|
"AUM": float,
|
|
"AUM_NET": float
|
|
})
|
|
|
|
#endregion |