def get_last_trade(self, symbol): request = RestfulRequest(self.__option) request.set_target("/market/trade") request.set_method(RestfulRequest.Method.GET) request.add_query_string("symbol", symbol) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) last_trade_var = LastTrade() last_trade_var.status = root_obj.get_string("status") last_trade_var.ts = root_obj.get_int("ts") last_trade_var.ch = root_obj.get_string("ch") obj = root_obj.get_object("tick") last_trade_var.ts_in_tick = obj.get_int("ts") last_trade_var.id_in_tick = obj.get_int("id") obj0 = obj.get_array("data") for item in obj0.array(): trade_var = Trade() trade_var.amount = item.get_decimal("amount") trade_var.price = item.get_decimal("price") trade_var.ts = item.get_int("ts") trade_var.id = item.get_int("id") trade_var.direction = item.get_string("direction") trade_var.trade_id = item.get_int("trade-id") if last_trade_var.data is None: last_trade_var.data = list() last_trade_var.data.append(trade_var) return last_trade_var
def get_aggregate_trades(self, symbol, from_id, start_time, end_time, limit): request = RestfulRequest(self.__option) request.set_target("/api/v3/aggTrades") request.set_method(RestfulRequest.Method.GET) request.add_query_string("symbol", symbol) request.add_query_string("fromId", str(from_id)) request.add_query_string("startTime", str(start_time)) request.add_query_string("startTime", str(end_time)) request.add_query_string("limit", str(limit)) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) aggregate_trade_list_var = AggregateTradeList() for item in root_obj.array(): aggregate_trade_var = AggregateTrade() aggregate_trade_var.id = item.get_int("a") aggregate_trade_var.price = item.get_decimal("p") aggregate_trade_var.qty = item.get_decimal("q") aggregate_trade_var.first_trade_id = item.get_int("f") aggregate_trade_var.last_trade_id = item.get_int("l") aggregate_trade_var.timestamp = item.get_int("T") aggregate_trade_var.is_buyer_maker = item.get_bool("m") aggregate_trade_var.is_best_match = item.get_bool("M") if aggregate_trade_list_var.data is None: aggregate_trade_list_var.data = list() aggregate_trade_list_var.data.append(aggregate_trade_var) return aggregate_trade_list_var
def get_candlestick(self, symbol, period, size): request = RestfulRequest(self.__option) request.set_target("/market/history/kline") request.set_method(RestfulRequest.Method.GET) request.add_query_string("symbol", symbol) request.add_query_string("period", period) request.add_query_string("size", str(size)) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) candlestick_var = Candlestick() candlestick_var.status = root_obj.get_string("status") obj = root_obj.get_array("data") for item in obj.array(): candlestick_data_var = CandlestickData() candlestick_data_var.id = item.get_int("id") candlestick_data_var.amount = item.get_decimal("amount") candlestick_data_var.count = item.get_int("count") candlestick_data_var.open = item.get_decimal("open") candlestick_data_var.close = item.get_decimal("close") candlestick_data_var.low = item.get_decimal("low") candlestick_data_var.high = item.get_decimal("high") candlestick_data_var.vol = item.get_decimal("vol") if candlestick_var.data is None: candlestick_var.data = list() candlestick_var.data.append(candlestick_data_var) return candlestick_var
def get_market_depth(self, symbol, depth, merge_type): request = RestfulRequest(self.__option) request.set_target("/market/depth") request.set_method(RestfulRequest.Method.GET) request.add_query_string("symbol", symbol) request.add_query_string("depth", str(depth)) request.add_query_string("type", merge_type) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) depth_var = Depth() depth_var.status = root_obj.get_string("status") depth_var.ts = root_obj.get_int("ts") depth_var.ch = root_obj.get_string("ch") obj = root_obj.get_object("tick") obj0 = obj.get_array("bids") for item in obj0.array(): quote_var = Quote() quote_var.price = item.get_decimal("[0]") quote_var.amount = item.get_decimal("[1]") if depth_var.bids is None: depth_var.bids = list() depth_var.bids.append(quote_var) obj1 = obj.get_array("asks") for item2 in obj1.array(): quote_var3 = Quote() quote_var3.price = item2.get_decimal("[0]") quote_var3.amount = item2.get_decimal("[1]") if depth_var.asks is None: depth_var.asks = list() depth_var.asks.append(quote_var3) return depth_var
def on_trade_event_event(connection, msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) trade_clearing_update_var = TradeClearingUpdate() obj = root_obj.get_object("data") trade_clearing_update_var.symbol = obj.get_string_or_none("symbol") trade_clearing_update_var.order_id = obj.get_int_or_none("orderId") trade_clearing_update_var.trade_price = obj.get_string_or_none( "tradePrice") trade_clearing_update_var.trade_volume = obj.get_string_or_none( "tradeVolume") trade_clearing_update_var.order_side = obj.get_string_or_none( "orderSide") trade_clearing_update_var.order_type = obj.get_string_or_none( "orderType") trade_clearing_update_var.aggressor = obj.get_bool_or_none( "aggressor") trade_clearing_update_var.trade_id = obj.get_int_or_none("tradeId") trade_clearing_update_var.trade_time = obj.get_string_or_none( "tradeTime") trade_clearing_update_var.transact_fee = obj.get_string_or_none( "transactFee") trade_clearing_update_var.fee_deduct = obj.get_string_or_none( "feeDeduct") trade_clearing_update_var.fee_deduct_type = obj.get_string_or_none( "feeDeductType") on_trade(trade_clearing_update_var)
def get_symbol(self): request = RestfulRequest(self.__option) request.set_target("/v1/common/symbols") request.set_method(RestfulRequest.Method.GET) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) json_checker = JsonChecker() json_checker.check_not_equal("stauts", "ok", root_obj) json_checker.report_error() symbols_var = Symbols() symbols_var.status = root_obj.get_string("status") obj = root_obj.get_array("data") for item in obj.array(): symbols_data_var = SymbolsData() symbols_data_var.base_currency = item.get_string("base-currency") symbols_data_var.quote_currency = item.get_string("quote-currency") symbols_data_var.price_precision = item.get_int("price-precision") symbols_data_var.amount_precision = item.get_int( "amount-precision") symbols_data_var.symbol_partition = item.get_string( "symbol-partition") symbols_data_var.symbol = item.get_string("symbol") symbols_data_var.state = item.get_string("state") symbols_data_var.value_precision = item.get_int("value-precision") symbols_data_var.min_order_amt = item.get_decimal("min-order-amt") symbols_data_var.max_order_amt = item.get_decimal("max-order-amt") symbols_data_var.min_order_value = item.get_decimal( "min-order-value") symbols_data_var.leverage_ratio = item.get_int("leverage-ratio") if symbols_var.data is None: symbols_var.data = list() symbols_var.data.append(symbols_data_var) return symbols_var
def on_echo_event_trigger(msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) json_checker = JsonChecker() json_checker.check_equal("op", "echo", root_obj) obj = root_obj.get_object_or_none("param") json_checker.check_equal("Name", name, obj) return json_checker.complete()
def on_order_event_event(connection, msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) order_update_var = OrderUpdate() obj = root_obj.get_object("data") order_update_var.event_type = obj.get_string_or_none("eventType") order_update_var.symbol = obj.get_string_or_none("symbol") order_update_var.order_id = obj.get_int_or_none("orderId") order_update_var.client_order_id = obj.get_string_or_none( "clientOrderId") order_update_var.type = obj.get_string_or_none("type") order_update_var.order_price = obj.get_string_or_none("orderPrice") order_update_var.order_size = obj.get_string_or_none("orderSize") order_update_var.type = obj.get_string_or_none("type") order_update_var.order_status = obj.get_string_or_none( "orderStatus") order_update_var.order_create_time = obj.get_int_or_none( "orderCreateTime") order_update_var.trade_price = obj.get_string_or_none("tradePrice") order_update_var.trade_volume = obj.get_string_or_none( "tradeVolume") order_update_var.trade_id = obj.get_int_or_none("tradeId") order_update_var.trade_time = obj.get_int_or_none("tradeTime") order_update_var.aggressor = obj.get_bool_or_none("aggressor") order_update_var.remain_amt = obj.get_string_or_none("remainAmt") order_update_var.last_act_time = obj.get_string_or_none( "lastActTime") on_order(order_update_var)
def get_depth(self, symbol, limit): request = RestfulRequest(self.__option) request.set_target("/api/v3/depth") request.set_method(RestfulRequest.Method.GET) request.add_query_string("symbol", symbol) request.add_query_string("limit", str(limit)) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) depth_var = Depth() depth_var.last_update_id = root_obj.get_int("lastUpdateId") obj = root_obj.get_array("bids") for item in obj.array(): depth_entity_var = DepthEntity() depth_entity_var.price = item.get_decimal("[0]") depth_entity_var.qty = item.get_decimal("[1]") if depth_var.bids is None: depth_var.bids = list() depth_var.bids.append(depth_entity_var) obj0 = root_obj.get_array("asks") for item1 in obj0.array(): depth_entity_var2 = DepthEntity() depth_entity_var2.price = item1.get_decimal("[0]") depth_entity_var2.qty = item1.get_decimal("[1]") if depth_var.asks is None: depth_var.asks = list() depth_var.asks.append(depth_entity_var2) return depth_var
def on_candlestick_event_trigger(msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) json_checker = JsonChecker() json_checker.check_equal( "rep", CEIUtils.string_replace("market.{0}.kline.{1}", symbol, period), root_obj) return json_checker.complete()
def on_depth_event_trigger(msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) json_checker = JsonChecker() json_checker.check_equal( "ch", CEIUtils.string_replace("market.{0}.depth.{1}", symbol, type_u), root_obj) return json_checker.complete()
def on_second1event_event(connection, msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) simple_info_var = SimpleInfo() simple_info_var.name = root_obj.get_string("Name") simple_info_var.number = root_obj.get_int("Number") simple_info_var.price = root_obj.get_decimal("Price") simple_info_var.status = root_obj.get_bool("Status") on_second1(simple_info_var)
def on_ping_event_event(connection, msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) ts = Timestamp() obj = root_obj.get_object("data") ts.timestamp = obj.get_int("ts") json_result = JsonWrapper() json_result.add_json_string("op", "pong") json_result.add_json_number("ts", ts.timestamp) connection.send(json_result.to_json_string())
def get_timestamp(self): request = RestfulRequest(self.__option) request.set_target("/api/v3/time") request.set_method(RestfulRequest.Method.GET) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) timestamp_var = Timestamp() timestamp_var.server_time = root_obj.get_int("serverTime") return timestamp_var
def get_currencies(self): request = RestfulRequest(self.__option) request.set_target("/v1/common/currencys") request.set_method(RestfulRequest.Method.GET) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) currencies_var = Currencies() currencies_var.status = root_obj.get_string("status") currencies_var.data = root_obj.get_string_array("data") return currencies_var
def get_simple_info(self): request = RestfulRequest(self.__option) request.set_target("/restful/get/simpleInfo") request.set_method(RestfulRequest.Method.GET) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) simple_info_var = SimpleInfo() simple_info_var.name = root_obj.get_string("Name") simple_info_var.number = root_obj.get_int("Number") simple_info_var.price = root_obj.get_decimal("Price") simple_info_var.status = root_obj.get_bool("Status") return simple_info_var
def get_timestamp(self): request = RestfulRequest(self.__option) request.set_target("/v1/common/timestamp") request.set_method(RestfulRequest.Method.GET) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) json_checker = JsonChecker() json_checker.check_not_equal("stauts", "ok", root_obj) json_checker.report_error() timestamp_var = Timestamp() timestamp_var.timestamp = root_obj.get_int("data") return timestamp_var
def on_candlestick_event_event(connection, msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) candlestick_data_var = CandlestickData() obj = root_obj.get_object("tick") candlestick_data_var.id = obj.get_int("id") candlestick_data_var.amount = obj.get_decimal("amount") candlestick_data_var.count = obj.get_int("count") candlestick_data_var.open = obj.get_decimal("open") candlestick_data_var.close = obj.get_decimal("close") candlestick_data_var.low = obj.get_decimal("low") candlestick_data_var.high = obj.get_decimal("high") candlestick_data_var.vol = obj.get_decimal("vol") on_candlestick(candlestick_data_var)
def cancel_order(self, order_id): request = RestfulRequest(self.__option) request.set_target( CEIUtils.string_replace("/v1/order/orders/{0}/submitcancel", str(order_id))) request.set_method(RestfulRequest.Method.POST) Procedures.restful_auth(request, self.__option) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) order_idvar = OrderID() order_idvar.status = root_obj.get_string("status") order_idvar.data = root_obj.get_int("data") return order_idvar
def get_accounts(self): request = RestfulRequest(self.__option) request.set_target("/v1/account/accounts") request.set_method(RestfulRequest.Method.GET) Procedures.restful_auth(request, self.__option) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) account_var = Account() account_var.status = root_obj.get_string("status") account_data_var = AccountData() obj = root_obj.get_object("data") account_data_var.id = obj.get_int("id") account_data_var.state = obj.get_string("state") account_data_var.type = obj.get_string("type") account_data_var.subtype = obj.get_string("subtype") return account_var
def inputs_by_get(self, name, number, price, status): request = RestfulRequest(self.__option) request.set_target("/restful/get/inputsByGet") request.set_method(RestfulRequest.Method.GET) request.add_query_string("Name", name) request.add_query_string("Number", str(number)) request.add_query_string("Price", str(price)) request.add_query_string("Status", str(status)) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) simple_info_var = SimpleInfo() simple_info_var.name = root_obj.get_string("Name") simple_info_var.number = root_obj.get_int("Number") simple_info_var.price = root_obj.get_decimal("Price") simple_info_var.status = root_obj.get_bool("Status") return simple_info_var
def authentication(self, name, number): request = RestfulRequest(self.__option) post_msg = JsonWrapper() post_msg.add_json_number("Number", number) request.set_target("/restful/post/authentication") request.set_method(RestfulRequest.Method.POST) request.add_query_string("Name", name) request.set_post_body(post_msg.to_json_string()) Procedures.restful_auth(request, self.__option) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) simple_info_var = SimpleInfo() simple_info_var.name = root_obj.get_string("Name") simple_info_var.number = root_obj.get_int("Number") simple_info_var.price = root_obj.get_decimal("Price") return simple_info_var
def get_price_list(self): request = RestfulRequest(self.__option) request.set_target("/restful/get/priceList") request.set_method(RestfulRequest.Method.GET) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) price_list_var = PriceList() price_list_var.name = root_obj.get_string("Name") obj = root_obj.get_array("Prices") for item in obj.array(): price_entity_var = PriceEntity() price_entity_var.price = item.get_decimal("[0]") price_entity_var.volume = item.get_decimal("[1]") if price_list_var.prices is None: price_list_var.prices = list() price_list_var.prices.append(price_entity_var) return price_list_var
def place_order(self, account_id, symbol, order_type, amount, price): request = RestfulRequest(self.__option) post_msg = JsonWrapper() post_msg.add_json_string("account-Id", account_id) post_msg.add_json_string("symbol", symbol) post_msg.add_json_string("orderType", order_type) post_msg.add_json_string("amount", amount) post_msg.add_json_string("price", price) request.set_target("/v1/order/orders/place") request.set_method(RestfulRequest.Method.POST) request.set_post_body(post_msg.to_json_string()) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) order_idvar = OrderID() order_idvar.status = root_obj.get_string("status") order_idvar.data = root_obj.get_int("data") return order_idvar
def get_info_list(self): request = RestfulRequest(self.__option) request.set_target("/restful/get/infoList") request.set_method(RestfulRequest.Method.GET) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) info_list_var = InfoList() info_list_var.name = root_obj.get_string("Name") obj = root_obj.get_array("Values") for item in obj.array(): info_entity_var = InfoEntity() info_entity_var.name = item.get_string("Name") info_entity_var.info_value = item.get_string("InfoValue") if info_list_var.values is None: info_list_var.values = list() info_list_var.values.append(info_entity_var) return info_list_var
def post_inputs(self, this, price, number, status): request = RestfulRequest(self.__option) post_msg = JsonWrapper() post_msg.add_json_string("Name", this) post_msg.add_json_number("Price", price) post_msg.add_json_number("Number", number) post_msg.add_json_boolean("Status_1", status) request.set_target("/restful/post/echo") request.set_method(RestfulRequest.Method.POST) request.set_post_body(post_msg.to_json_string()) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) simple_info_var = SimpleInfo() simple_info_var.name = root_obj.get_string("Name") simple_info_var.number = root_obj.get_int("Number") simple_info_var.price = root_obj.get_decimal("Price") simple_info_var.status = root_obj.get_bool("Status_1") return simple_info_var
def on_candlestick_event_event(connection, msg): root_obj = JsonWrapper.parse_from_string(msg.get_string()) candlestick_var = Candlestick() obj = root_obj.get_array("data") for item in obj.array(): candlestick_data_var = CandlestickData() candlestick_data_var.id = item.get_int("id") candlestick_data_var.amount = item.get_decimal("amount") candlestick_data_var.count = item.get_int("count") candlestick_data_var.open = item.get_decimal("open") candlestick_data_var.close = item.get_decimal("close") candlestick_data_var.low = item.get_decimal("low") candlestick_data_var.high = item.get_decimal("high") candlestick_data_var.vol = item.get_decimal("vol") if candlestick_var.data is None: candlestick_var.data = list() candlestick_var.data.append(candlestick_data_var) on_candlestick(candlestick_var)
def get_model_info(self): request = RestfulRequest(self.__option) request.set_target("/restful/get/modelInfo") request.set_method(RestfulRequest.Method.GET) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) json_checker = JsonChecker() json_checker.check_equal("aaa", "aa", root_obj) json_checker.report_error() model_info_var = ModelInfo() model_info_var.name = root_obj.get_string("Name") obj = root_obj.get_object("DataL1") obj0 = obj.get_object("DataL2") model_value_var = ModelValue() obj1 = obj0.get_object("Value") model_value_var.name = obj1.get_string("Name") model_value_var.value = obj1.get_int("Value") model_info_var.value = model_value_var return model_info_var
def get_candlestick_data(self, symbol, interval, start_time, end_time, limit): request = RestfulRequest(self.__option) request.set_target("/api/v3/klines") request.set_method(RestfulRequest.Method.GET) request.add_query_string("symbol", symbol) request.add_query_string("interval", interval) request.add_query_string("startTime", str(start_time)) request.add_query_string("endTime", str(end_time)) request.add_query_string("limit", str(limit)) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) candlestick_data_list_var = CandlestickDataList() for item in root_obj.array(): candlestick_data_var = CandlestickData() candlestick_data_var.open = item.get_decimal("\\[0]") candlestick_data_var.high = item.get_decimal("\\[1]") if candlestick_data_list_var.data is None: candlestick_data_list_var.data = list() candlestick_data_list_var.data.append(candlestick_data_var) return candlestick_data_list_var
def get_trade(self, symbol, limit): request = RestfulRequest(self.__option) request.set_target("/api/v3/trades") request.set_method(RestfulRequest.Method.GET) request.add_query_string("symbol", symbol) request.add_query_string("limit", str(limit)) response = RestfulConnection.query(request) root_obj = JsonWrapper.parse_from_string(response.get_string()) trade_list_var = TradeList() for item in root_obj.array(): trade_var = Trade() trade_var.id = item.get_int("id") trade_var.price = item.get_decimal("price") trade_var.qty = item.get_decimal("qty") trade_var.quote_qty = item.get_decimal("quoteQty") trade_var.time = item.get_int("time") trade_var.is_buyer_maker = item.get_bool("isBuyerMaker") trade_var.is_best_match = item.get_bool("isBestMatch") if trade_list_var.data is None: trade_list_var.data = list() trade_list_var.data.append(trade_var) return trade_list_var