| | |
| | | import random |
| | | import socket |
| | | import socketserver |
| | | import threading |
| | | import time |
| | | |
| | | from code_attribute import gpcode_manager |
| | | from l2 import l2_data_manager_new, l2_log, code_price_manager, l2_data_util, l2_data_manager |
| | | from l2.cancel_buy_strategy import HourCancelBigNumComputer, LCancelBigNumComputer |
| | | from l2.cancel_buy_strategy import HourCancelBigNumComputer, LCancelBigNumComputer, DCancelBigNumComputer |
| | | from l2.huaxin import huaxin_target_codes_manager |
| | | from log_module.log import hx_logger_l2_upload, hx_logger_contact_debug, hx_logger_trade_callback, \ |
| | | hx_logger_l2_orderdetail, hx_logger_l2_transaction, hx_logger_l2_market_data, logger_l2_trade_buy_queue |
| | | from trade import deal_big_money_manager |
| | | |
| | | from trade.huaxin import huaxin_trade_api as trade_api, trade_api_server |
| | | from trade.huaxin import huaxin_trade_api as trade_api, trade_api_server, huaxin_trade_api |
| | | |
| | | trade_data_request_queue = queue.Queue() |
| | | |
| | |
| | | code) |
| | | if True: |
| | | if buy_progress_index is not None: |
| | | logger_l2_trade_buy_queue.info("获取成交位置成功: code-{} index-{}", code, buy_progress_index) |
| | | buy_time = l2_data_util.local_today_datas.get(code)[buy_progress_index]["val"]["time"] |
| | | logger_l2_trade_buy_queue.info("获取成交位置成功: code-{} index-{}", code, |
| | | buy_progress_index) |
| | | buy_time = l2_data_util.local_today_datas.get(code)[buy_progress_index]["val"][ |
| | | "time"] |
| | | HourCancelBigNumComputer.set_trade_progress(code, buy_time, buy_exec_index, |
| | | buy_progress_index, |
| | | l2_data_util.local_today_datas.get( |
| | |
| | | l2_data_util.local_today_datas.get( |
| | | code)) |
| | | |
| | | |
| | | # 计算大单成交额 |
| | | deal_big_money_manager.set_trade_progress(code, buy_progress_index, |
| | | l2_data_util.local_today_datas.get( |
| | | code), |
| | | l2_data_util.local_today_num_operate_map.get( |
| | | code)) |
| | | DCancelBigNumComputer.set_trade_progress(code, buy_progress_index, buy_exec_index, |
| | | l2_data_util.local_today_datas.get( |
| | | code), |
| | | l2_data_util.local_today_num_operate_map.get( |
| | | code), 1000 * 10000, |
| | | gpcode_manager.get_limit_up_price(code)) |
| | | except Exception as e: |
| | | hx_logger_l2_transaction.exception(e) |
| | | |
| | |
| | | super().finish() |
| | | |
| | | |
| | | def clear_invalid_client(): |
| | | while True: |
| | | try: |
| | | huaxin_trade_api.ClientSocketManager.del_invalid_clients() |
| | | except: |
| | | pass |
| | | finally: |
| | | time.sleep(2) |
| | | |
| | | |
| | | def run(): |
| | | print("create TradeServer") |
| | | t1 = threading.Thread(target=lambda: clear_invalid_client(), daemon=True) |
| | | t1.start() |
| | | |
| | | laddr = "0.0.0.0", 10008 |
| | | tcpserver = MyThreadingTCPServer(laddr, MyBaseRequestHandle) # 注意:参数是MyBaseRequestHandle |
| | | tcpserver.serve_forever() |