| | |
| | | """ |
| | | from code_attribute import gpcode_manager |
| | | from l2 import l2_log |
| | | from l2.l2_data_util import L2DataUtil |
| | | from log_module import async_log_util, log_export |
| | | from log_module.log import hx_logger_l2_sell_delegate, hx_logger_l2_sell_deal |
| | | from utils import tool |
| | |
| | | __delegating_sell_num_dict = {} |
| | | |
| | | @classmethod |
| | | def add_l2_origin_data(cls, code, origin_datas): |
| | | def add_l2_data(cls, code, add_datas): |
| | | """ |
| | | 添加L2委托原始数据 |
| | | @param code: 代码 |
| | | @param origin_datas: 原始数据 |
| | | @param add_datas: 新增的格式化数据 |
| | | @return: |
| | | """ |
| | | try: |
| | |
| | | cls.__delegating_sell_num_dict[code] = 0 |
| | | |
| | | limit_up_price = gpcode_manager.get_limit_up_price_as_num(code) |
| | | for d in origin_datas: |
| | | order_no, price, volume = d[8], d[1], d[2] |
| | | if price != limit_up_price: |
| | | continue |
| | | if d[9] == 'D': |
| | | if d[3] != '1': |
| | | # 卖撤 |
| | | cls.__order_no_set_dict[code].discard(order_no) |
| | | cls.__delegating_sell_num_dict[code] -= volume |
| | | async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, |
| | | f"{code}-卖撤-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}") |
| | | else: |
| | | if d[3] != '1': |
| | | # 卖 |
| | | cls.__order_no_data_map_dict[code][order_no] = (order_no, price, volume) |
| | | cls.__order_no_set_dict[code].add(order_no) |
| | | cls.__delegating_sell_num_dict[code] += volume |
| | | async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, |
| | | f"{code}-卖-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}") |
| | | for d in add_datas: |
| | | val = d["val"] |
| | | if L2DataUtil.is_limit_up_price_sell(val): |
| | | # 卖 |
| | | order_no, price, volume = val["orderNo"], val["price"], val["num"]*100 |
| | | cls.__order_no_data_map_dict[code][order_no] = (order_no, price, volume) |
| | | cls.__order_no_set_dict[code].add(order_no) |
| | | cls.__delegating_sell_num_dict[code] += volume |
| | | async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, |
| | | f"{code}-卖-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}") |
| | | elif L2DataUtil.is_limit_up_price_sell_cancel(val): |
| | | # 卖撤 |
| | | order_no, price, volume = val["orderNo"], val["price"], val["num"] * 100 |
| | | cls.__order_no_set_dict[code].discard(order_no) |
| | | cls.__delegating_sell_num_dict[code] -= volume |
| | | async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, |
| | | f"{code}-卖撤-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}") |
| | | except: |
| | | pass |
| | | |
| | |
| | | @param code: |
| | | @return: |
| | | """ |
| | | if code in cls.__order_no_set_dict: |
| | | cls.__order_no_set_dict.pop(code) |
| | | if cls.__order_no_set_dict.get(code): |
| | | cls.__order_no_set_dict[code].clear() |
| | | |
| | | if code in cls.__order_no_data_map_dict: |
| | | cls.__order_no_data_map_dict.pop(code) |
| | | if cls.__order_no_data_map_dict.get(code): |
| | | cls.__order_no_data_map_dict[code].clear() |
| | | |
| | | if code in cls.__delegating_sell_num_dict: |
| | | cls.__delegating_sell_num_dict.pop(code) |
| | | async_log_util.l2_data_log.info(hx_logger_l2_sell_deal, |
| | | if cls.__delegating_sell_num_dict.get(code): |
| | | cls.__delegating_sell_num_dict[code] = 0 |
| | | async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate, |
| | | f"出现主动卖清除数据:{code}") |
| | | |
| | | |
| | |
| | | fdatas.append(x) |
| | | total_delegate = sum([x[2][2] for x in fdatas]) |
| | | print(fdatas) |
| | | print("总委托", total_delegate, total_delegate*20.41) |
| | | for d in fdatas: |
| | | print(d) |
| | | print("总委托", total_delegate, total_delegate * 20.41) |