From ed9e2367eea9baa6c8bea82e0f81c209ffb2a56f Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 02 一月 2023 17:55:50 +0800 Subject: [PATCH] 撤单策略再次修改 --- server.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 52 insertions(+), 5 deletions(-) diff --git a/server.py b/server.py index e00cf8c..daa7031 100644 --- a/server.py +++ b/server.py @@ -26,6 +26,7 @@ import ths_industry_util import ths_util import tool +import trade_data_manager import trade_gui import trade_manager import l2_code_operate @@ -96,7 +97,8 @@ day, client, channel, code, capture_time, process_time, datas, origin_datas = l2_data_manager.parseL2Data( _str) # 闂撮殧1s淇濆瓨涓�鏉2鐨勬渶鍚庝竴鏉℃暟鎹� - if code not in self.l2_save_time_dict or origin_start_time - self.l2_save_time_dict[code] >= 1000 and len(datas) > 0: + if code not in self.l2_save_time_dict or origin_start_time - self.l2_save_time_dict[ + code] >= 1000 and len(datas) > 0: self.l2_save_time_dict[code] = origin_start_time logger_l2_latest_data.info("{}#{}#{}", code, capture_time, datas[-1]) @@ -157,7 +159,7 @@ "l2鏁版嵁澶勭悊鎬昏�楁椂", True) except Exception as e: - logging.exception(e) + logger_l2_error.exception(e) elif type == 1: # 璁剧疆鑲$エ浠g爜 data_list, is_add = data_process.parseGPCode(_str) @@ -219,6 +221,28 @@ # 淇濆瓨濮旀墭淇℃伅 logger_trade_delegate.info(dataList) try: + # 璁剧疆鐢虫姤鏃堕棿 + for item in dataList: + apply_time = item["apply_time"] + if apply_time and len(apply_time) >= 8: + code = item["code"] + trade_state = trade_manager.get_trade_state(code) + # 璁剧疆涓嬪崟鐘舵�佺殑浠g爜涓哄凡濮旀墭 + if trade_state == trade_manager.TRADE_STATE_BUY_PLACE_ORDER: + origin_apply_time = apply_time + apply_time = apply_time[0:6] + apply_time = "{}:{}:{}".format(apply_time[0:2], apply_time[2:4], apply_time[4:6]) + ms = origin_apply_time[6:9] + if int(ms) > 500: + # 鏃堕棿+1s + apply_time = tool.trade_time_add_second(apply_time, 1) + + print(apply_time) + l2_data_manager_new.SecondAverageBigNumComputer.set_apply_time(code, apply_time) + except Exception as e: + logging.exception(e) + + try: trade_manager.process_trade_delegate_data(dataList) except Exception as e: logging.exception(e) @@ -251,11 +275,12 @@ if self.ths_l2_trade_queue_manager.save_recod(code, data): if buy_time != "00:00:00": logger_l2_trade_queue.info("{}-{}", code, data) + self.buy1_price_manager.save(code, buy_one_price) need_sync, need_cancel, cancel_msg = self.buy1_volumn_manager.save(code, buy_time, int(buy_one_volumn), buy_one_price) if need_cancel: - l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, cancel_msg) + l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, cancel_msg, "trade_queue") if need_sync: # 鍚屾鏁版嵁 l2_data_manager_new.L2LimitUpMoneyStatisticUtil.verify_num(code, int(buy_one_volumn), @@ -285,7 +310,6 @@ elif type == 50: data = data_process.parse(_str)["data"] if data is not None: - print(data) index = data["index"] code_name = data["codeName"].replace(" ", "") volumn = data["volumn"] @@ -309,7 +333,7 @@ need_sync, need_cancel, cancel_msg = self.buy1_volumn_manager.save(code, time_, volumn, price) if need_cancel: - l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, cancel_msg) + l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, cancel_msg, "trade_queue") if need_sync: # 鍚屾鏁版嵁 l2_data_manager_new.L2LimitUpMoneyStatisticUtil.verify_num(code, volumn, time_) @@ -332,6 +356,29 @@ data = data_process.parse(_str)["data"] client_id = data["client"] print("L2鑷惎鍔ㄦ垚鍔�", client_id) + now_str = datetime.datetime.now().strftime("%H:%M:%S") + ts = tool.get_time_as_second(now_str) + # 9鐐�25鍒�9鐐�28涔嬮棿鐨勮嚜鍚姩灏遍渶瑕佹壒閲忚缃唬鐮� + if tool.get_time_as_second("09:24:50") <= ts <= tool.get_time_as_second("09:28:00"): + # 鍑嗗鎵归噺璁剧疆浠g爜 + return_json = {"code": 1, "msg": "绛夊緟鎵归噺璁剧疆浠g爜"} + return_str = json.dumps(return_json) + # 鑾峰彇鎺掑悕鍓�16浣嶇殑浠g爜 + codes = trade_data_manager.CodeActualPriceProcessor().get_top_rate_codes(16) + codes = sorted(codes) + if client_id == 2: + codes = codes[:8] + else: + codes = codes[8:] + codes_datas = [] + for i in range(0, 8): + if i >= len(codes): + break + codes_datas.append((i, codes[i])) + l2_code_operate.betch_set_client_codes(client_id, codes_datas) + else: + return_json = {"code": 0, "msg": "寮�鍚湪绾跨姸鎬�"} + return_str = json.dumps(return_json) # print("蹇冭烦锛�", client_id) sk.send(return_str.encode()) -- Gitblit v1.8.0