async def get_position_margin_change_history(
            self,
            pair: Pair,
            limit: int = None,
            type: int = None,
            start_tmstmp_ms: int = None,
            end_tmstmp_ms: int = None,
            recv_window_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol":
            map_pair(pair),
            "limit":
            limit,
            "type":
            type,
            "startTime":
            start_tmstmp_ms,
            "endTime":
            end_tmstmp_ms,
            "recvWindow":
            recv_window_ms,
            "timestamp":
            self._get_current_timestamp_ms()
        })

        return await self._create_get(
            "positionMargin/history",
            params=params,
            headers=self._get_header(),
            signed=True,
            api_variable_path=BinanceUSDSMFuturesClient.FAPI_V1)
    async def create_order(self,
                           product_id: str,
                           order_type: enums.OrderType,
                           order_side: enums.OrderSide,
                           quantity: str,
                           price: str,
                           client_order_id: str = None) -> dict:
        data = CryptoXLibClient._clean_request_params({
            "product_id":
            int(product_id),
            "price":
            price,
            "quantity":
            quantity,
            "order_type":
            order_type.value,
            "side":
            order_side.value,
            "client_order_id":
            client_order_id
        })

        return await self._create_post("orders",
                                       data=data,
                                       headers=self._get_headers(),
                                       signed=True)
    async def get_income_history(self,
                                 pair: Pair = None,
                                 limit: int = None,
                                 income_type: enums.IncomeType = None,
                                 start_tmstmp_ms: int = None,
                                 end_tmstmp_ms: int = None,
                                 recv_window_ms: Optional[int] = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "limit":
            limit,
            "startTime":
            start_tmstmp_ms,
            "endTime":
            end_tmstmp_ms,
            "timestamp":
            self._get_current_timestamp_ms(),
            "recvWindow":
            recv_window_ms
        })

        if pair is not None:
            params['symbol'] = map_pair(pair)

        if income_type is not None:
            params['incomeType'] = income_type.value

        return await self._create_get(
            "income",
            params=params,
            headers=self._get_header(),
            signed=True,
            api_variable_path=BinanceUSDSMFuturesClient.FAPI_V1)
Example #4
0
    async def get_trades(self, pair: Pair, size: str = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "size": size
        })

        return await self._create_get("market/trades", params = params, signed = True)
Example #5
0
    async def get_order_book(self, pair: Pair, depth: str = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "size": depth,
        })

        return await self._create_get("market/depth", params = params)
    async def get_global_long_short_account_ratio(
            self,
            pair: Pair,
            interval: enums.Interval,
            limit: int = None,
            start_tmstmp_ms: int = None,
            end_tmstmp_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol":
            map_pair(pair),
            "period":
            interval.value,
            "limit":
            limit,
            "startTime":
            start_tmstmp_ms,
            "endTime":
            end_tmstmp_ms
        })

        return await self._create_get(
            "globalLongShortAccountRatio",
            headers=self._get_header(),
            params=params,
            api_variable_path=BinanceUSDSMFuturesClient.FUTURES)
    async def update_isolated_position_margin(
            self,
            pair: Pair,
            quantity: str,
            type: int,
            position_side: enums.PositionSide = None,
            recv_window_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol":
            map_pair(pair),
            "amount":
            quantity,
            "type":
            type,
            "recvWindow":
            recv_window_ms,
            "timestamp":
            self._get_current_timestamp_ms()
        })

        if position_side is not None:
            params['positionSide'] = position_side.value

        return await self._create_post(
            "positionMargin",
            params=params,
            headers=self._get_header(),
            signed=True,
            api_variable_path=BinanceUSDSMFuturesClient.FAPI_V1)
Example #8
0
    async def get_single_fund(self, currency: str) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "currency": currency.lower(),
            "nonce": self._get_current_timestamp_ms()
        })

        return await self._create_post("fund/mainAccount", params = params, signed = True)
    async def get_cont_contract_candlesticks(
            self,
            pair: Pair,
            interval: enums.Interval,
            contract_type: enums.ContractType,
            limit: int = None,
            start_tmstmp_ms: int = None,
            end_tmstmp_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "pair":
            map_pair(pair),
            "contractType":
            contract_type.value,
            "limit":
            limit,
            "startTime":
            start_tmstmp_ms,
            "endTime":
            end_tmstmp_ms
        })

        if interval:
            params['interval'] = interval.value

        return await self._create_get(
            "continuousKlines",
            params=params,
            api_variable_path=BinanceUSDSMFuturesClient.FAPI_V1)
Example #10
0
    async def get_trades(self, pair: Pair, limit: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "limit": limit
        })

        return await self._create_get("trades", params = params, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #11
0
    async def get_funds(self) -> dict:
        params = CryptoXLibClient._clean_request_params(
            {"nonce": self._get_current_timestamp_ms()})

        return await self._create_post("fund/allAccount",
                                       params=params,
                                       signed=True)
Example #12
0
    async def get_ticker(self, pair: Pair) -> dict:
        params = CryptoXLibClient._clean_request_params(
            {"symbol": map_pair(pair)})

        return await self._create_get("market/ticker",
                                      params=params,
                                      signed=True)
Example #13
0
    async def get_account(self, recv_window_ms: Optional[int] = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "recvWindow": recv_window_ms,
            "timestamp": self._get_current_timestamp_ms()
        })

        return await self._create_get("account", headers = self._get_header(), params = params, signed = True, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V2)
Example #14
0
    async def cancel_all_orders(self, pair: Pair) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "nonce": self._get_current_timestamp_ms()
        })

        return await self._create_post("trade/cancelAllOrder", params = params, signed = True)
    async def get_account_trades(self,
                                 pair: Pair,
                                 limit: int = None,
                                 from_id: int = None,
                                 start_tmstmp_ms: int = None,
                                 end_tmstmp_ms: int = None,
                                 recv_window_ms: Optional[int] = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol":
            map_pair(pair),
            "limit":
            limit,
            "fromId":
            from_id,
            "startTime":
            start_tmstmp_ms,
            "endTime":
            end_tmstmp_ms,
            "timestamp":
            self._get_current_timestamp_ms(),
            "recvWindow":
            recv_window_ms
        })

        return await self._create_get(
            "userTrades",
            params=params,
            headers=self._get_header(),
            signed=True,
            api_variable_path=BinanceUSDSMFuturesClient.FAPI_V1)
Example #16
0
    async def get_historical_trades(self, pair: Pair, limit: int = None, from_id: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "limit": limit,
            "fromId": from_id
        })

        return await self._create_get("historicalTrades", params = params, headers = self._get_header(), api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #17
0
    async def get_commission_rate(self, pair: Pair, recv_window_ms: Optional[int] = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "timestamp": self._get_current_timestamp_ms(),
            "recvWindow": recv_window_ms
        })

        return await self._create_get("commissionRate", params = params, headers = self._get_header(), signed = True, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #18
0
    async def get_all_open_orders(self, pair: Pair, recv_window_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "recvWindow": recv_window_ms,
            "timestamp": self._get_current_timestamp_ms()
        })

        return await self._create_get("openOrders", params = params, headers = self._get_header(), signed = True, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #19
0
    async def get_position_type(self, recv_window_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "recvWindow": recv_window_ms,
            "timestamp": self._get_current_timestamp_ms()
        })

        return await self._create_get("positionSide/dual", headers = self._get_header(), params = params, signed = True,
                                       api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #20
0
    async def get_candlesticks(self, pair: Pair, interval: enums.CandelstickInterval, size: str = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "ktype": interval.value,
            "size": size
        })

        return await self._create_get("market/kline", params = params, signed = True)
Example #21
0
    async def get_orders(self, pair: Pair, order_ids: List[str]) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "orderIds": ",".join(order_ids),
            "nonce": self._get_current_timestamp_ms()
        })

        return await self._create_post("trade/multiOrderInfo", params = params, signed = True)
Example #22
0
    async def get_order(self, pair: Pair, order_id: str) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "orderId": order_id,
            "nonce": self._get_current_timestamp_ms()
        })

        return await self._create_post("trade/orderInfo", params = params, signed = True)
Example #23
0
    async def auto_cancel_orders(self, pair: Pair, countdown_time_ms: int, recv_window_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "countdownTime": countdown_time_ms,
            "recvWindow": recv_window_ms,
            "timestamp": self._get_current_timestamp_ms()
        })

        return await self._create_delete("countdownCancelAll", params = params, headers = self._get_header(), signed = True, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #24
0
    async def change_margin_type(self, pair: Pair, margin_type: enums.MarginType, recv_window_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "marginType": margin_type.value,
            "recvWindow": recv_window_ms,
            "timestamp": self._get_current_timestamp_ms()
        })

        return await self._create_post("marginType", params = params, headers = self._get_header(), signed = True, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #25
0
    async def get_orderbook(self, pair: Pair, limit: enums.DepthLimit = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
        })

        if limit:
            params['limit'] = limit.value

        return await self._create_get("depth", params = params, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #26
0
    async def get_api_trading_status(self, pair: Pair = None, recv_window_ms: Optional[int] = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "timestamp": self._get_current_timestamp_ms(),
            "recvWindow": recv_window_ms
        })

        if pair is not None:
            params['symbol'] = map_pair(pair)

        return await self._create_get("apiTradingStatus", params = params, headers = self._get_header(), signed = True, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #27
0
    async def create_order(self, pair: Pair, price: str, quantity: str, side: enums.OrderSide) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "price": price,
            "amount": quantity,
            "tradeType": side.value,
            "nonce": self._get_current_timestamp_ms()
        })

        return await self._create_post("trade/placeOrder", params = params, signed = True)
Example #28
0
    async def get_aggregate_trades(self, pair: Pair, limit: int = None, from_id: int = None,
                                   start_tmstmp_ms: int = None, end_tmstmp_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "limit": limit,
            "fromId": from_id,
            "startTime": start_tmstmp_ms,
            "endTime": end_tmstmp_ms
        })

        return await self._create_get("aggTrades", params = params, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #29
0
    async def cancel_order(self, pair: Pair, order_id: int = None, orig_client_order_id: str = None,
                           recv_window_ms: int = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "orderId": order_id,
            "origClientOrderId": orig_client_order_id,
            "recvWindow": recv_window_ms,
            "timestamp": self._get_current_timestamp_ms()
        })

        return await self._create_delete("order", params = params, headers = self._get_header(), signed = True, api_variable_path = BinanceUSDSMFuturesClient.FAPI_V1)
Example #30
0
    async def find_order(self, pair: Pair, state: enums.OrderState, side: enums.OrderSide = None) -> dict:
        params = CryptoXLibClient._clean_request_params({
            "symbol": map_pair(pair),
            "state": state.value,
            "nonce": self._get_current_timestamp_ms()
        })

        if side:
            params["tradeType"] = side.value

        return await self._create_post("trade/orderInfos", params = params, signed = True)