From 0ed2c53acd278d57a39390fd4db78c5aaf088e0a Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 21 四月 2023 18:03:54 +0800 Subject: [PATCH] 开盘啦数据解析 --- server.py | 95 +++++++++++++++++++++++++++++++++++------------ 1 files changed, 71 insertions(+), 24 deletions(-) diff --git a/server.py b/server.py index edde21d..0492870 100644 --- a/server.py +++ b/server.py @@ -22,6 +22,7 @@ import gpcode_manager import authority import juejin +import limit_up_time_manager from l2 import l2_data_manager_new, l2_data_manager, l2_data_log, l2_log, code_price_manager import l2_data_util from l2.cancel_buy_strategy import HourCancelBigNumComputer, L2LimitUpMoneyStatisticUtil @@ -34,7 +35,7 @@ from third_data import hot_block_data_process from ths import l2_listen_pos_health_manager from trade import trade_gui, trade_data_manager, trade_manager, l2_trade_util, deal_big_money_manager, \ - first_code_score_manager + first_code_score_manager, current_price_process_manager import l2_code_operate from code_data_util import ZYLTGBUtil import l2.transaction_progress @@ -272,16 +273,17 @@ # 淇濆瓨鏈瓫閫夌殑棣栨澘浠g爜 new_add_codes = gpcode_first_screen_manager.set_target_no_screen_codes(codes) # 淇濆瓨鑷敱娴侀�氳偂鏈� - zyltgb_list = [] - for data in dataList: - code = data["code"] - if code in global_util.zyltgb_map: - continue - zyltgb_list.append( - {"code": code, "zyltgb": data["zyltgb"], "zyltgb_unit": data["zyltgbUnit"]}) - if zyltgb_list: - ZYLTGBUtil.save_list(zyltgb_list) - global_data_loader.load_zyltgb() + if dataList: + zyltgb_list = [] + for data in dataList: + code = data["code"] + if code in global_util.zyltgb_map: + continue + zyltgb_list.append( + {"code": code, "zyltgb": data["zyltgb"], "zyltgb_unit": data["zyltgbUnit"]}) + if zyltgb_list: + ZYLTGBUtil.save_list(zyltgb_list) + global_data_loader.load_zyltgb() bad_codes = set() @@ -301,8 +303,8 @@ need_get_volumn = True if need_get_volumn: volumes_data = juejin.get_volumns_by_code(code, 150) - volumes = juejin.parse_max_volume(volumes_data[:60], code_nature_analyse.is_new_top( - gpcode_manager.get_limit_up_price(code), volumes_data[:60])) + volumes = juejin.parse_max_volume(volumes_data[:90], code_nature_analyse.is_new_top( + gpcode_manager.get_limit_up_price(code), volumes_data[:90])) logger_first_code_record.info("{} 鑾峰彇鍒伴鏉�60澶╂渶澶ч噺锛歿}", code, volumes) code_volumn_manager.set_histry_volumn(code, volumes[0], volumes[1], volumes[2]) # 鍒ゆ柇K绾垮舰鎬� @@ -330,6 +332,29 @@ if not gpcode_manager.is_in_gp_pool(lc): # 绉婚櫎浠g爜 l2_code_operate.L2CodeOperate.get_instance().add_operate(0, lc, "浠g爜琚Щ闄�") + + if new_add_codes: + # 浣庡垎鍊间唬鐮佺姝氦鏄� + for code in new_add_codes: + try: + score, score_list = first_code_score_manager.get_score(code, 0, None, False) + if score < 0: + trade_manager.ForbiddenBuyCodeByScoreManager.add_code(code) + # elif score >= 200: + # # 濡傛灉娌℃湁娑ㄥ仠杩� + # limit_up_time = limit_up_time_manager.get_limit_up_time(code) + # if limit_up_time is None and int(tool.get_now_time_str().replace(":","")) > int("113000"): + # gpcode_manager.WantBuyCodesManager.add_code(code) + except Exception as e: + logging.exception(e) + + # if dataList and int(tool.get_now_time_str().replace(":","")) > int("113000"): + # for data in dataList: + # code = data["code"] + # if gpcode_manager.WantBuyCodesManager.is_in(code): + # score, score_list = first_code_score_manager.get_score(code, 0, None, False) + # if score < 200: + # gpcode_manager.WantBuyCodesManager.remove_code(code) # 淇濆瓨鐜颁环 if dataList: @@ -479,13 +504,17 @@ buy_time = data["buyTime"] buy_one_price = data["buyOnePrice"] buy_one_volumn = data["buyOneVolumn"] + sell_one_price = data["sellOnePrice"] + sell_one_volumn = data["sellOneVolumn"] + buy_queue = data["buyQueue"] if buy_one_price is None: print('涔�1浠锋病鏈夛紝', code) limit_up_price = gpcode_manager.get_limit_up_price(code) if limit_up_price is not None: - code_price_manager.Buy1PriceManager.process(code, buy_one_price, buy_time, limit_up_price) + code_price_manager.Buy1PriceManager.process(code, buy_one_price, buy_time, limit_up_price, + sell_one_price, sell_one_volumn) _start_time = time.time() msg += "涔�1浠锋牸澶勭悊锛�" + f"{_start_time - __start_time} " @@ -602,7 +631,7 @@ volumn = item["volume"] volumnUnit = item["volumeUnit"] code_volumn_manager.save_today_volumn(item["code"], volumn, volumnUnit) - juejin.accept_prices(datas) + current_price_process_manager.accept_prices(datas) elif type == 50: data = data_process.parse(_str)["data"] if data is not None: @@ -756,14 +785,29 @@ # 鍔犲叆鐧藉悕鍗� data = json.loads(_str) codes = data["data"]["codes"] - for code in codes: - l2_trade_util.WhiteListCodeManager.add_code(code) - name = gpcode_manager.get_code_name(code) - if not name: - results = juejin.JueJinManager.get_gp_codes_names([code]) - if results: - gpcode_manager.CodesNameManager.add_first_code_name(code, results[code]) - return_str = json.dumps({"code": 0}) + try: + for code in codes: + # 鑷敱娴侀�氬競鍊�>50浜�,鑲′环楂樹簬30鍧楃殑涓嶈兘鍔犵櫧鍚嶅崟 + limit_up_price = gpcode_manager.get_limit_up_price(code) + if float(limit_up_price) > 30: + raise Exception("鑲′环楂樹簬30鍏�") + # zyltgb = global_util.zyltgb_map.get(code) + # if zyltgb is None: + # global_data_loader.load_zyltgb() + # zyltgb = global_util.zyltgb_map.get(code) + # if zyltgb > 50 * 100000000: + # raise Exception("鑷敱娴侀�氳偂鏈ぇ浜�50浜�") + + l2_trade_util.WhiteListCodeManager.add_code(code) + name = gpcode_manager.get_code_name(code) + if not name: + results = juejin.JueJinManager.get_gp_codes_names([code]) + if results: + gpcode_manager.CodesNameManager.add_first_code_name(code, results[code]) + return_str = json.dumps({"code": 0}) + except Exception as e: + return_str = json.dumps({"code": 1, "msg": str(e)}) + elif type == 203: # 绉婚櫎榛戝悕鍗� data = json.loads(_str) @@ -826,6 +870,9 @@ else: trade_manager.TradeStateManager.close_buy() return_str = json.dumps({"code": 0, "msg": ("寮�鍚垚鍔�" if is_open else "鍏抽棴鎴愬姛")}) + elif type == 502: + can_buy = trade_manager.TradeStateManager.is_can_buy() + return_str = json.dumps({"code": 0, "data": {"can_buy": can_buy}}) sk.send(return_str.encode()) @@ -920,7 +967,7 @@ for code in codes: try: global_data_loader.load_zyltgb() - limit_up_price = float(gpcode_manager.get_limit_up_price(code)) + limit_up_price = float(gpcode_manager.get_limit_up_price(code)) volumes_data = juejin.get_volumns_by_code(code, 150) volumes_data = volumes_data[1:] volumes = juejin.parse_max_volume(volumes_data[:60], -- Gitblit v1.8.0