| | |
| | | # print("逐笔成交", item) |
| | | l2_data_manager.add_transaction_detail(item) |
| | | |
| | | logger_local_huaxin_l2_transaction.info( |
| | | "OnRtnTransaction SecurityID[%s] TradePrice[%.2f] TradeVolume[%d] TradeTime[%d] MainSeq[%d] SubSeq[%d] BuyNo[%d] SellNo[%d] ExecType[%s]" % ( |
| | | pTransaction['SecurityID'], |
| | | pTransaction['TradePrice'], |
| | | pTransaction['TradeVolume'], |
| | | pTransaction['TradeTime'], |
| | | pTransaction['MainSeq'], |
| | | pTransaction['SubSeq'], |
| | | pTransaction['BuyNo'], |
| | | pTransaction['SellNo'], |
| | | pTransaction['ExecType'], |
| | | )) |
| | | # logger_local_huaxin_l2_transaction.info( |
| | | # "OnRtnTransaction SecurityID[%s] TradePrice[%.2f] TradeVolume[%d] TradeTime[%d] MainSeq[%d] SubSeq[%d] BuyNo[%d] SellNo[%d] ExecType[%s]" % ( |
| | | # pTransaction['SecurityID'], |
| | | # pTransaction['TradePrice'], |
| | | # pTransaction['TradeVolume'], |
| | | # pTransaction['TradeTime'], |
| | | # pTransaction['MainSeq'], |
| | | # pTransaction['SubSeq'], |
| | | # pTransaction['BuyNo'], |
| | | # pTransaction['SellNo'], |
| | | # pTransaction['ExecType'], |
| | | # )) |
| | | |
| | | def OnRtnOrderDetail(self, pOrderDetail): |
| | | can_listen = False |
| | |
| | | print("逐笔委托", item) |
| | | l2_data_manager.add_l2_order_detail(item) |
| | | |
| | | logger_local_huaxin_l2_orderdetail.info( |
| | | "OnRtnOrderDetail SecurityID[%s] Price[%.2f] Volume[%d] Side[%s] OrderType[%s] OrderTime[%d] MainSeq[%d] SubSeq[%d] OrderNO[%s] OrderStatus[%s] Info1[%d] Info2[%d] Info3[%d]" % ( |
| | | pOrderDetail['SecurityID'], |
| | | pOrderDetail['Price'], |
| | | pOrderDetail['Volume'], |
| | | pOrderDetail['Side'], |
| | | pOrderDetail['OrderType'], |
| | | pOrderDetail['OrderTime'], |
| | | pOrderDetail['MainSeq'], |
| | | pOrderDetail['SubSeq'], |
| | | pOrderDetail['OrderNO'], |
| | | pOrderDetail['OrderStatus'], |
| | | pOrderDetail['Info1'], |
| | | pOrderDetail['Info2'], |
| | | pOrderDetail['Info3'] |
| | | )) |
| | | # logger_local_huaxin_l2_orderdetail.info( |
| | | # "OnRtnOrderDetail SecurityID[%s] Price[%.2f] Volume[%d] Side[%s] OrderType[%s] OrderTime[%d] MainSeq[%d] SubSeq[%d] OrderNO[%s] OrderStatus[%s] Info1[%d] Info2[%d] Info3[%d]" % ( |
| | | # pOrderDetail['SecurityID'], |
| | | # pOrderDetail['Price'], |
| | | # pOrderDetail['Volume'], |
| | | # pOrderDetail['Side'], |
| | | # pOrderDetail['OrderType'], |
| | | # pOrderDetail['OrderTime'], |
| | | # pOrderDetail['MainSeq'], |
| | | # pOrderDetail['SubSeq'], |
| | | # pOrderDetail['OrderNO'], |
| | | # pOrderDetail['OrderStatus'], |
| | | # pOrderDetail['Info1'], |
| | | # pOrderDetail['Info2'], |
| | | # pOrderDetail['Info3'] |
| | | # )) |
| | | |
| | | def OnRtnBondMarketData(self, pDepthMarketData, FirstLevelBuyNum, FirstLevelBuyOrderVolumes, FirstLevelSellNum, |
| | | FirstLevelSellOrderVolumes): |
| | |
| | | cancel_data, cancel_msg = h_cancel(buy_single_index, buy_exec_index) |
| | | if not cancel_data: |
| | | cancel_data, cancel_msg = l_cancel(buy_single_index, buy_exec_index) |
| | | l2_log.debug(code, "撤单计算结束") |
| | | # l2_log.debug(code, "撤单计算结束") |
| | | # _start_time = l2_data_log.l2_time(code, tool.get_now_timestamp() - _start_time, |
| | | # "已下单-撤单 判断是否需要撤单") |
| | | if cancel_data: |
| | |
| | | import logging |
| | | import queue |
| | | import threading |
| | | import time |
| | | |
| | | from log_module.log import logger_l2_process_time, logger_debug |
| | | |
| | | |
| | | _dict = {} |
| | | |
| | | class TestInstance: |
| | | __instance = None |
| | | |
| | | # def __new__(cls, *args, **kwargs): |
| | | # if not cls.__instance: |
| | | # cls.__instance = super(TestInstance, cls).__new__(cls, *args, **kwargs) |
| | | # print(cls.__instance) |
| | | # return cls.__instance |
| | | |
| | | def test(self): |
| | | i=1 |
| | | _dict["test"]=i+2 |
| | | _queue = queue.Queue() |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | def test_time(instance, i): |
| | | start = time.time() |
| | | instance.test() |
| | | logger_debug.info(f"开始:{i}") |
| | | time.time() |
| | | # round(time.time() * 1000) - round(start * 1000) |
| | | logger_debug.info(f"结束:{i}") |
| | | if len(_dict.keys()) == 99: |
| | | total = 0 |
| | | for k in _dict: |
| | | total += _dict[k] |
| | | print(total / len(_dict)) |
| | | def add(index): |
| | | start_time = time.time() |
| | | _queue.put(index) |
| | | end_time = time.time() |
| | | logger_debug.debug(end_time -start_time) |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | # for k in range(1): |
| | | # _dict.clear() |
| | | # for i in range(0, 100): |
| | | # threading.Thread(target=lambda: test_time(TestInstance(), i), daemon=True).start() |
| | | # time.sleep(2) |
| | | print(time.time()) |
| | | for i in range(1000): |
| | | # logger_debug.debug("结束") |
| | | TestInstance().test() |
| | | pass |
| | | print(time.time()) |
| | | for i in range(1000): |
| | | logger_debug.debug("结束") |
| | | pass |
| | | print(time.time()) |
| | | for k in range(1): |
| | | _dict.clear() |
| | | for i in range(0, 1000): |
| | | threading.Thread(target=lambda: add(i), daemon=True).start() |
| | | time.sleep(2) |
| | | |
| | | input() |