You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.6 KiB

import json
from huobi.utils.time_service import get_current_timestamp
def dict_add_new(old_dict, new_dict):
if old_dict is None:
old_dict = {}
if new_dict and len(new_dict):
for key_val, val in new_dict.items():
if val:
exist_val = old_dict.get(key_val, None)
if exist_val and len(str(exist_val)):
pass
else:
old_dict[key_val] = str(val)
return old_dict
def request_kline_channel(symbol, interval, from_ts_second = None, to_ts_second = None):
channel = dict()
channel["req"] = "market." + symbol + ".kline." + interval
channel["id"] = str(get_current_timestamp())
if from_ts_second:
channel["from"] = int(from_ts_second)
if to_ts_second:
channel["to"] = int(to_ts_second)
return json.dumps(channel)
def request_trade_detail_channel(symbol):
channel = dict()
channel["req"] = "market." + symbol + ".trade.detail"
channel["id"] = str(get_current_timestamp())
return json.dumps(channel)
def request_price_depth_channel(symbol, step_type = "step0"):
channel = dict()
channel["req"] = "market." + symbol + ".depth." + step_type
channel["id"] = str(get_current_timestamp())
return json.dumps(channel)
def request_market_detail_channel(symbol):
channel = dict()
channel["req"] = "market." + symbol + ".detail"
channel["id"] = str(get_current_timestamp())
return json.dumps(channel)
def request_account_list_channel(client_req_id = None):
channel = dict()
channel["op"] = "req"
channel["topic"] = "accounts.list"
channel["cid"] = str(client_req_id) if client_req_id else str(get_current_timestamp())
return json.dumps(channel)
def request_order_list_channel(symbol, account_id, states_str= None, client_req_id = None, more_key={}):
channel = dict()
try:
channel["op"] = "req"
channel["account-id"] = account_id
channel["topic"] = "orders.list"
channel["symbol"] = symbol
if states_str and len(states_str):
channel["states"] = str(states_str)
channel["cid"] = str(client_req_id) if client_req_id else str(get_current_timestamp())
channel = dict_add_new(channel, more_key)
except Exception as e:
print(e)
return json.dumps(channel)
def request_order_detail_channel(order_id, client_req_id = None):
channel = dict()
channel["op"] = "req"
channel["topic"] = "orders.detail"
channel["order-id"] = str(order_id)
channel["cid"] = str(client_req_id) if client_req_id else str(get_current_timestamp())
return json.dumps(channel)