class RequestClient(object): def __init__(self, **kwargs): """ Create the request client instance. :param kwargs: The option of request connection. api_key: The public key applied from Binance. secret_key: The private key applied from Binance. server_url: The URL name like "https://api.binance.com". """ api_key = None secret_key = None url = RestApiDefine.Url if "api_key" in kwargs: api_key = kwargs["api_key"] if "secret_key" in kwargs: secret_key = kwargs["secret_key"] if "url" in kwargs: url = kwargs["url"] try: self.request_impl = RestApiRequestImpl(api_key, secret_key, url) except Exception: pass self.limits = {} def refresh_limits(self, limits): for k, v in limits.items(): self.limits[k] = v def get_servertime(self) -> any: """ Check Server Time GET /fapi/v1/time Test connectivity to the Rest API and get the current server time. """ response = call_sync(self.request_impl.get_servertime()) self.refresh_limits(response[1]) return response[0] def get_exchange_information(self) -> any: """ Exchange Information (MARKET_DATA) GET /fapi/v1/exchangeInfo Current exchange trading rules and symbol information """ response = call_sync(self.request_impl.get_exchange_information()) self.refresh_limits(response[1]) return response[0] def get_order_book(self, symbol: 'str', limit: 'int' = None) -> any: """ Order Book (MARKET_DATA) GET /fapi/v1/depth Adjusted based on the limit: """ response = call_sync(self.request_impl.get_order_book(symbol, limit)) self.refresh_limits(response[1]) return response[0] def get_recent_trades_list(self, symbol: 'str', limit: 'int' = None) -> any: """ Recent Trades List (MARKET_DATA) GET /fapi/v1/trades Get recent trades (up to last 500). """ response = call_sync( self.request_impl.get_recent_trades_list(symbol, limit)) self.refresh_limits(response[1]) return response[0] def get_old_trade_lookup(self, symbol: 'str', limit: 'int' = None, fromId: 'long' = None) -> any: """ Old Trades Lookup (MARKET_DATA) GET /fapi/v1/historicalTrades Get older market historical trades. """ response = call_sync( self.request_impl.get_old_trade_lookup(symbol, limit, fromId)) self.refresh_limits(response[1]) return response[0] def get_aggregate_trades_list(self, symbol: 'str', fromId: 'long' = None, startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ Compressed/Aggregate Trades List (MARKET_DATA) GET /fapi/v1/aggTrades Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated. """ response = call_sync( self.request_impl.get_aggregate_trades_list( symbol, fromId, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_candlestick_data(self, symbol: 'str', interval: 'CandlestickInterval', startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ Kline/Candlestick Data (MARKET_DATA) GET /fapi/v1/klines Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time. """ response = call_sync( self.request_impl.get_candlestick_data(symbol, interval, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_mark_price(self, symbol: 'str') -> any: """ Mark Price (MARKET_DATA) GET /fapi/v1/premiumIndex Mark Price and Funding Rate """ response = call_sync(self.request_impl.get_mark_price(symbol)) self.refresh_limits(response[1]) return response[0] def get_funding_rate(self, symbol: 'str', startTime: 'long' = None, endTime: 'str' = None, limit: 'int' = None) -> any: """ Get Funding Rate History (MARKET_DATA) GET /fapi/v1/fundingRate """ response = call_sync( self.request_impl.get_funding_rate(symbol, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_ticker_price_change_statistics(self, symbol: 'str' = None) -> any: """ 24hr Ticker Price Change Statistics (MARKET_DATA) GET /fapi/v1/ticker/24hr 24 hour rolling window price change statistics. Careful when accessing this with no symbol. """ response = call_sync( self.request_impl.get_ticker_price_change_statistics(symbol)) self.refresh_limits(response[1]) return response[0] def get_symbol_price_ticker(self, symbol: 'str' = None) -> any: """ Symbol Price Ticker (MARKET_DATA) GET /fapi/v1/ticker/price Latest price for a symbol or symbols. """ response = call_sync(self.request_impl.get_symbol_price_ticker(symbol)) self.refresh_limits(response[1]) return response[0] def get_symbol_orderbook_ticker(self, symbol: 'str' = None) -> any: """ Symbol Order Book Ticker (MARKET_DATA) GET /fapi/v1/ticker/bookTicker Best price/qty on the order book for a symbol or symbols. """ response = call_sync( self.request_impl.get_symbol_orderbook_ticker(symbol)) self.refresh_limits(response[1]) return response[0] def get_liquidation_orders(self, symbol: 'str' = None, startTime: 'long' = None, endTime: 'str' = None, limit: 'int' = None) -> any: """ Get all Liquidation Orders (MARKET_DATA) GET /fapi/v1/allForceOrders """ response = call_sync( self.request_impl.get_liquidation_orders(symbol, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_open_interest(self, symbol: 'str') -> any: """ Symbol Open Interest (MARKET_DATA) GET /fapi/v1/openInterest Get present open interest of a specific symbol. """ response = call_sync(self.request_impl.get_open_interest(symbol)) self.refresh_limits(response[1]) return response[0] def change_position_mode(self, dualSidePosition: 'boolean' = None) -> any: """ Change Current Position Mode (TRADE) POST /fapi/v1/positionSide/dual (HMAC SHA256) Change user's position mode (Hedge Mode or One-way Mode ) on EVERY symbol """ response = call_sync( self.request_impl.change_position_mode(dualSidePosition)) self.refresh_limits(response[1]) return response[0] def get_position_mode(self) -> any: """ Get Current Position Mode (USER_DATA) GET /fapi/v1/positionSide/dual (HMAC SHA256) Get user's position mode (Hedge Mode or One-way Mode ) on EVERY symbol """ response = call_sync(self.request_impl.get_position_mode()) self.refresh_limits(response[1]) return response[0] def post_order( self, symbol: 'str', side: 'OrderSide', ordertype: 'OrderType', timeInForce: 'TimeInForce' = TimeInForce.INVALID, quantity: 'float' = None, reduceOnly: 'boolean' = None, price: 'float' = None, newClientOrderId: 'str' = None, stopPrice: 'float' = None, workingType: 'WorkingType' = WorkingType.INVALID, closePosition: 'boolean' = None, positionSide: 'PositionSide' = PositionSide.INVALID, callbackRate: 'float' = None, activationPrice: 'float' = None, newOrderRespType: 'OrderRespType' = OrderRespType.INVALID) -> any: """ New Order (TRADE) POST /fapi/v1/order (HMAC SHA256) Send in a new order. """ response = call_sync( self.request_impl.post_order(symbol, side, ordertype, timeInForce, quantity, reduceOnly, price, newClientOrderId, stopPrice, workingType, closePosition, positionSide, callbackRate, activationPrice, newOrderRespType)) self.refresh_limits(response[1]) return response[0] def get_order(self, symbol: 'str', orderId: 'long' = None, origClientOrderId: 'str' = None) -> any: """ Query Order (USER_DATA) GET /fapi/v1/order (HMAC SHA256) Check an order's status. """ response = call_sync( self.request_impl.get_order(symbol, orderId, origClientOrderId)) self.refresh_limits(response[1]) return response[0] def cancel_order(self, symbol: 'str', orderId: 'long' = None, origClientOrderId: 'str' = None) -> any: """ Cancel Order (TRADE) DELETE /fapi/v1/order (HMAC SHA256) Cancel an active order. """ response = call_sync( self.request_impl.cancel_order(symbol, orderId, origClientOrderId)) self.refresh_limits(response[1]) return response[0] def cancel_all_orders(self, symbol: 'str') -> any: """ Cancel All Open Orders (TRADE) DELETE /fapi/v1/allOpenOrders (HMAC SHA256) """ response = call_sync(self.request_impl.cancel_all_orders(symbol)) self.refresh_limits(response[1]) return response[0] def cancel_list_orders(self, symbol: 'str', orderIdList: 'list' = None, origClientOrderIdList: 'list' = None) -> any: """ Cancel Multiple Orders (TRADE) DELETE /fapi/v1/batchOrders (HMAC SHA256) """ response = call_sync( self.request_impl.cancel_list_orders(symbol, orderIdList, origClientOrderIdList)) self.refresh_limits(response[1]) return response[0] def get_open_orders(self, symbol: 'str' = None) -> any: """ Current Open Orders (USER_DATA) GET /fapi/v1/openOrders (HMAC SHA256) Get all open orders on a symbol. Careful when accessing this with no symbol. """ response = call_sync(self.request_impl.get_open_orders(symbol)) self.refresh_limits(response[1]) return response[0] def get_all_orders(self, symbol: 'str', orderId: 'long' = None, startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ All Orders (USER_DATA) GET /fapi/v1/allOrders (HMAC SHA256) Get all account orders; active, canceled, or filled. """ response = call_sync( self.request_impl.get_all_orders(symbol, orderId, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_balance(self) -> any: """ Future Account Balance (USER_DATA) Get /fapi/v1/balance (HMAC SHA256) """ response = call_sync(self.request_impl.get_balance()) self.refresh_limits(response[1]) return response[0] def get_account_information(self) -> any: """ Account Information (USER_DATA) GET /fapi/v1/account (HMAC SHA256) Get current account information. """ response = call_sync(self.request_impl.get_account_information()) self.refresh_limits(response[1]) return response[0] def change_initial_leverage(self, symbol: 'str', leverage: 'int') -> any: """ Change Initial Leverage (TRADE) POST /fapi/v1/leverage (HMAC SHA256) Change user's initial leverage of specific symbol market. """ response = call_sync( self.request_impl.change_initial_leverage(symbol, leverage)) self.refresh_limits(response[1]) return response[0] def change_margin_type(self, symbol: 'str', marginType: 'FuturesMarginType') -> any: """ Change Margin Type (TRADE) POST /fapi/v1/marginType (HMAC SHA256) """ response = call_sync( self.request_impl.change_margin_type(symbol, marginType)) self.refresh_limits(response[1]) return response[0] def change_position_margin(self, symbol: 'str', amount: 'float', type: 'int') -> any: """ Modify Isolated Position Margin (TRADE) POST /fapi/v1/positionMargin (HMAC SHA256) """ response = call_sync( self.request_impl.change_position_margin(symbol, amount, type)) self.refresh_limits(response[1]) return response[0] def get_position_margin_change_history(self, symbol: 'str', type: 'int' = None, startTime: 'int' = None, endTime: 'int' = None, limit: 'int' = None) -> any: """ Get Position Margin Change History (TRADE) GET /fapi/v1/positionMargin/history (HMAC SHA256) """ response = call_sync( self.request_impl.get_position_margin_change_history( symbol, type, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_position(self) -> any: """ Position Information (USER_DATA) GET /fapi/v1/positionRisk (HMAC SHA256) Get current account information. """ response = call_sync(self.request_impl.get_position()) self.refresh_limits(response[1]) return response[0] def get_account_trades(self, symbol: 'str', startTime: 'long' = None, endTime: 'long' = None, fromId: 'long' = None, limit: 'int' = None) -> any: """ Account Trade List (USER_DATA) GET /fapi/v1/userTrades (HMAC SHA256) Get trades for a specific account and symbol. """ response = call_sync( self.request_impl.get_account_trades(symbol, startTime, endTime, fromId, limit)) self.refresh_limits(response[1]) return response[0] def get_income_history(self, symbol: 'str' = None, incomeType: 'IncomeType' = IncomeType.INVALID, startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ Get Income History(USER_DATA) GET /fapi/v1/income (HMAC SHA256) """ response = call_sync( self.request_impl.get_income_history(symbol, incomeType, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def start_user_data_stream(self) -> any: """ Start User Data Stream (USER_STREAM) POST /fapi/v1/listenKey (HMAC SHA256) Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active listenKey, that listenKey will be returned and its validity will be extended for 60 minutes. """ response = call_sync(self.request_impl.start_user_data_stream()) self.refresh_limits(response[1]) return response[0] def keep_user_data_stream(self) -> any: """ Keepalive User Data Stream (USER_STREAM) PUT /fapi/v1/listenKey (HMAC SHA256) Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes. """ response = call_sync(self.request_impl.keep_user_data_stream()) self.refresh_limits(response[1]) return response[0] def close_user_data_stream(self) -> any: """ Close User Data Stream (USER_STREAM) DELETE /fapi/v1/listenKey (HMAC SHA256) Close out a user data stream. """ response = call_sync(self.request_impl.close_user_data_stream()) self.refresh_limits(response[1]) return response[0] def get_open_interest_stats(self, symbol: 'str', period: 'str', startTime: 'str' = None, endTime: 'str' = None, limit: 'int' = 30) -> any: """ Open Interest Statistics (MARKET_DATA) GET /futures/data/openInterestHist """ response = call_sync( self.request_impl.get_open_interest_stats(symbol, period, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_top_long_short_accounts(self, symbol: 'str', period: 'str', startTime: 'str' = None, endTime: 'str' = None, limit: 'int' = 30) -> any: """ Top Trader Long/Short Ratio (Accounts) (MARKET_DATA) GET /futures/data/topLongShortAccountRatio """ response = call_sync( self.request_impl.get_top_long_short_accounts( symbol, period, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_top_long_short_positions(self, symbol: 'str', period: 'str', startTime: 'str' = None, endTime: 'str' = None, limit: 'int' = 30) -> any: """ Top Trader Long/Short Ratio (Positions) GET /futures/data/topLongShortPositionRatio """ response = call_sync( self.request_impl.get_top_long_short_positions( symbol, period, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_global_long_short_accounts(self, symbol: 'str', period: 'str', startTime: 'str' = None, endTime: 'str' = None, limit: 'int' = 30) -> any: """ Long/Short Ratio (MARKET_DATA) GET /futures/data/globalLongShortAccountRatio """ response = call_sync( self.request_impl.get_global_long_short_accounts( symbol, period, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_taker_buy_sell_ratio(self, symbol: 'str', period: 'str', startTime: 'str' = None, endTime: 'str' = None, limit: 'int' = 30) -> any: """ Taker Buy/Sell Volume(MARKET_DATA) GET /futures/data/takerlongshortRatio """ response = call_sync( self.request_impl.get_taker_buy_sell_ratio(symbol, period, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_blvt_nav_candlestick_data(self, symbol: 'str', interval: 'CandlestickInterval', startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ Historical BLVT NAV Kline/Candlestick (MARKET_DATA) GET /fapi/v1/lvtKlines The BLVT NAV system is based on Binance Futures, so the endpoint is based on fapi """ response = call_sync( self.request_impl.get_blvt_nav_candlestick_data( symbol, interval, startTime, endTime, limit)) self.refresh_limits(response[1]) return response[0] def get_composite_index_info(self, symbol: 'str') -> any: """ Composite Index Symbol Information (MARKET_DATA) GET /fapi/v1/indexInfo """ response = call_sync( self.request_impl.get_composite_index_info(symbol)) self.refresh_limits(response[1]) return response[0] def auto_cancel_all_orders(self, symbol: 'str', countdownTime: 'long') -> any: """ Auto-Cancel All Open Orders (TRADE) POST /fapi/v1/countdownCancelAll (HMAC SHA256) """ response = call_sync( self.request_impl.auto_cancel_all_orders(symbol, countdownTime)) self.refresh_limits(response[1]) return response[0] def get_balance_v2(self) -> any: """ Future Account Balance (USER_DATA) Get /fapi/v2/balance (HMAC SHA256) """ response = call_sync(self.request_impl.get_balance_v2()) self.refresh_limits(response[1]) return response[0] def get_account_information_v2(self) -> any: """ Account Information (USER_DATA) GET /fapi/v2/account (HMAC SHA256) Get current account information. """ response = call_sync(self.request_impl.get_account_information_v2()) self.refresh_limits(response[1]) return response[0] def get_position_v2(self) -> any: """ Position Information (USER_DATA) GET /fapi/v2/positionRisk (HMAC SHA256) Get current account information. """ response = call_sync(self.request_impl.get_position_v2()) self.refresh_limits(response[1]) return response[0] def get_leverage_bracket(self, symbol: 'str' = None) -> any: """ Notional and Leverage Brackets (USER_DATA) GET /fapi/v1/leverageBracket """ response = call_sync(self.request_impl.get_leverage_bracket(symbol)) self.refresh_limits(response[1]) return response[0] def get_adl_quantile(self, symbol: 'str' = None) -> any: """ Position ADL Quantile Estimation (USER_DATA) GET /fapi/v1/adlQuantile """ response = call_sync(self.request_impl.get_adl_quantile(symbol)) self.refresh_limits(response[1]) return response[0] def get_api_trading_stats(self, symbol: 'str' = None) -> any: """ User API Trading Quantitative Rules Indicators (USER_DATA) GET /fapi/v1/apiTradingStatus """ response = call_sync(self.request_impl.get_api_trading_stats(symbol)) self.refresh_limits(response[1]) return response[0]
class RequestClient(object): def __init__(self, **kwargs): """ Create the request client instance. :param kwargs: The option of request connection. api_key: The public key applied from Binance. secret_key: The private key applied from Binance. server_url: The URL name like "https://api.binance.com". """ api_key = None secret_key = None url = RestApiDefine.Url if "api_key" in kwargs: api_key = kwargs["api_key"] if "secret_key" in kwargs: secret_key = kwargs["secret_key"] if "url" in kwargs: url = kwargs["url"] try: self.request_impl = RestApiRequestImpl(api_key, secret_key, url) except Exception: pass def get_servertime(self) -> any: """ Check Server Time GET /fapi/v1/time Test connectivity to the Rest API and get the current server time. """ return call_sync(self.request_impl.get_servertime()) def get_exchange_information(self) -> any: """ Exchange Information (MARKET_DATA) GET /fapi/v1/exchangeInfo Current exchange trading rules and symbol information """ return call_sync(self.request_impl.get_exchange_information()) def get_order_book(self, symbol: 'str', limit: 'int' = None) -> any: """ Order Book (MARKET_DATA) GET /fapi/v1/depth Adjusted based on the limit: """ return call_sync(self.request_impl.get_order_book(symbol, limit)) def get_recent_trades_list(self, symbol: 'str', limit: 'int' = None) -> any: """ Recent Trades List (MARKET_DATA) GET /fapi/v1/trades Get recent trades (up to last 500). """ return call_sync( self.request_impl.get_recent_trades_list(symbol, limit)) def get_old_trade_lookup(self, symbol: 'str', limit: 'int' = None, fromId: 'long' = None) -> any: """ Old Trades Lookup (MARKET_DATA) GET /fapi/v1/historicalTrades Get older market historical trades. """ return call_sync( self.request_impl.get_old_trade_lookup(symbol, limit, fromId)) def get_aggregate_trades_list(self, symbol: 'str', fromId: 'long' = None, startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ Compressed/Aggregate Trades List (MARKET_DATA) GET /fapi/v1/aggTrades Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated. """ return call_sync( self.request_impl.get_aggregate_trades_list( symbol, fromId, startTime, endTime, limit)) def get_candlestick_data(self, symbol: 'str', interval: 'CandlestickInterval', startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ Kline/Candlestick Data (MARKET_DATA) GET /fapi/v1/klines Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time. """ return call_sync( self.request_impl.get_candlestick_data(symbol, interval, startTime, endTime, limit)) def get_mark_price(self, symbol: 'str') -> any: """ Mark Price (MARKET_DATA) GET /fapi/v1/premiumIndex Mark Price and Funding Rate """ return call_sync(self.request_impl.get_mark_price(symbol)) def get_funding_rate(self, symbol: 'str', startTime: 'long' = None, endTime: 'str' = None, limit: 'int' = None) -> any: """ Get Funding Rate History (MARKET_DATA) GET /fapi/v1/fundingRate """ return call_sync( self.request_impl.get_funding_rate(symbol, startTime, endTime, limit)) def get_ticker_price_change_statistics(self, symbol: 'str' = None) -> any: """ 24hr Ticker Price Change Statistics (MARKET_DATA) GET /fapi/v1/ticker/24hr 24 hour rolling window price change statistics. Careful when accessing this with no symbol. """ return call_sync( self.request_impl.get_ticker_price_change_statistics(symbol)) def get_symbol_price_ticker(self, symbol: 'str' = None) -> any: """ Symbol Price Ticker (MARKET_DATA) GET /fapi/v1/ticker/price Latest price for a symbol or symbols. """ return call_sync(self.request_impl.get_symbol_price_ticker(symbol)) def get_symbol_orderbook_ticker(self, symbol: 'str' = None) -> any: """ Symbol Order Book Ticker (MARKET_DATA) GET /fapi/v1/ticker/bookTicker Best price/qty on the order book for a symbol or symbols. """ return call_sync(self.request_impl.get_symbol_orderbook_ticker(symbol)) def get_liquidation_orders(self, symbol: 'str' = None, startTime: 'long' = None, endTime: 'str' = None, limit: 'int' = None) -> any: """ Get all Liquidation Orders (MARKET_DATA) GET /fapi/v1/allForceOrders """ return call_sync( self.request_impl.get_liquidation_orders(symbol, startTime, endTime, limit)) def get_open_interest(self, symbol: 'str') -> any: """ Symbol Open Interest (MARKET_DATA) GET /fapi/v1/openInterest Get present open interest of a specific symbol. """ return call_sync(self.request_impl.get_open_interest(symbol)) def post_order(self, symbol: 'str', side: 'OrderSide', ordertype: 'OrderType', timeInForce: 'TimeInForce' = TimeInForce.INVALID, quantity: 'float' = None, reduceOnly: 'boolean' = None, price: 'float' = None, newClientOrderId: 'str' = None, stopPrice: 'float' = None, workingType: 'WorkingType' = WorkingType.INVALID) -> any: """ New Order (TRADE) POST /fapi/v1/order (HMAC SHA256) Send in a new order. """ return call_sync( self.request_impl.post_order(symbol, side, ordertype, timeInForce, quantity, reduceOnly, price, newClientOrderId, stopPrice, workingType)) def get_order(self, symbol: 'str', orderId: 'long' = None, origClientOrderId: 'str' = None) -> any: """ Query Order (USER_DATA) GET /fapi/v1/order (HMAC SHA256) Check an order's status. """ return call_sync( self.request_impl.get_order(symbol, orderId, origClientOrderId)) def cancel_order(self, symbol: 'str', orderId: 'long' = None, origClientOrderId: 'str' = None) -> any: """ Cancel Order (TRADE) DELETE /fapi/v1/order (HMAC SHA256) Cancel an active order. """ return call_sync( self.request_impl.cancel_order(symbol, orderId, origClientOrderId)) def cancel_all_orders(self, symbol: 'str') -> any: """ Cancel All Open Orders (TRADE) DELETE /fapi/v1/allOpenOrders (HMAC SHA256) """ return call_sync(self.request_impl.cancel_all_orders(symbol)) def cancel_list_orders(self, symbol: 'str', orderIdList: 'list' = None, origClientOrderIdList: 'list' = None) -> any: """ Cancel Multiple Orders (TRADE) DELETE /fapi/v1/batchOrders (HMAC SHA256) """ return call_sync( self.request_impl.cancel_list_orders(symbol, orderIdList, origClientOrderIdList)) def get_open_orders(self, symbol: 'str' = None) -> any: """ Current Open Orders (USER_DATA) GET /fapi/v1/openOrders (HMAC SHA256) Get all open orders on a symbol. Careful when accessing this with no symbol. """ return call_sync(self.request_impl.get_open_orders(symbol)) def get_all_orders(self, symbol: 'str', orderId: 'long' = None, startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ All Orders (USER_DATA) GET /fapi/v1/allOrders (HMAC SHA256) Get all account orders; active, canceled, or filled. """ return call_sync( self.request_impl.get_all_orders(symbol, orderId, startTime, endTime, limit)) def get_balance(self) -> any: """ Future Account Balance (USER_DATA) Get /fapi/v1/balance (HMAC SHA256) """ return call_sync(self.request_impl.get_balance()) def get_account_information(self) -> any: """ Account Information (USER_DATA) GET /fapi/v1/account (HMAC SHA256) Get current account information. """ return call_sync(self.request_impl.get_account_information()) def change_initial_leverage(self, symbol: 'str', leverage: 'int') -> any: """ Change Initial Leverage (TRADE) POST /fapi/v1/leverage (HMAC SHA256) Change user's initial leverage of specific symbol market. """ return call_sync( self.request_impl.change_initial_leverage(symbol, leverage)) def change_margin_type(self, symbol: 'str', marginType: 'FuturesMarginType') -> any: """ Change Margin Type (TRADE) POST /fapi/v1/marginType (HMAC SHA256) """ return call_sync( self.request_impl.change_margin_type(symbol, marginType)) def change_position_margin(self, symbol: 'str', amount: 'float', type: 'int') -> any: """ Modify Isolated Position Margin (TRADE) POST /fapi/v1/positionMargin (HMAC SHA256) """ return call_sync( self.request_impl.change_position_margin(symbol, amount, type)) def get_position_margin_change_history(self, symbol: 'str', type: 'int' = None, startTime: 'int' = None, endTime: 'int' = None, limit: 'int' = None) -> any: """ Get Position Margin Change History (TRADE) GET /fapi/v1/positionMargin/history (HMAC SHA256) """ return call_sync( self.request_impl.get_position_margin_change_history( symbol, type, startTime, endTime, limit)) def get_position(self) -> any: """ Position Information (USER_DATA) GET /fapi/v1/positionRisk (HMAC SHA256) Get current account information. """ return call_sync(self.request_impl.get_position()) def get_account_trades(self, symbol: 'str', startTime: 'long' = None, endTime: 'long' = None, fromId: 'long' = None, limit: 'int' = None) -> any: """ Account Trade List (USER_DATA) GET /fapi/v1/userTrades (HMAC SHA256) Get trades for a specific account and symbol. """ return call_sync( self.request_impl.get_account_trades(symbol, startTime, endTime, fromId, limit)) def get_income_history(self, symbol: 'str' = None, incomeType: 'IncomeType' = IncomeType.INVALID, startTime: 'long' = None, endTime: 'long' = None, limit: 'int' = None) -> any: """ Get Income History(USER_DATA) GET /fapi/v1/income (HMAC SHA256) """ return call_sync( self.request_impl.get_income_history(symbol, incomeType, startTime, endTime, limit)) def start_user_data_stream(self) -> any: """ Start User Data Stream (USER_STREAM) POST /fapi/v1/listenKey (HMAC SHA256) Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active listenKey, that listenKey will be returned and its validity will be extended for 60 minutes. """ return call_sync(self.request_impl.start_user_data_stream()) def keep_user_data_stream(self) -> any: """ Keepalive User Data Stream (USER_STREAM) PUT /fapi/v1/listenKey (HMAC SHA256) Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes. """ return call_sync(self.request_impl.keep_user_data_stream()) def close_user_data_stream(self) -> any: """ Close User Data Stream (USER_STREAM) DELETE /fapi/v1/listenKey (HMAC SHA256) Close out a user data stream. """ return call_sync(self.request_impl.close_user_data_stream())