From 6fbaa1012ca1b10689f7baad3a5e808ffc3c06b2 Mon Sep 17 00:00:00 2001 From: admin <admin@example.com> Date: 星期五, 20 六月 2025 14:13:11 +0800 Subject: [PATCH] 1.精选流入09:25起开始进入数据 2.修复日志数据的None BUG 3.分离出手动拉黑后的决策日志和手动拉黑前的决策日志 --- data_server.py | 92 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 70 insertions(+), 22 deletions(-) diff --git a/data_server.py b/data_server.py index 84ab5fd..3e39b96 100644 --- a/data_server.py +++ b/data_server.py @@ -15,9 +15,10 @@ from db import redis_manager_delegate as redis_manager, mysql_data_delegate as mysql_data from db.redis_manager_delegate import RedisUtils from log_module import log_export, async_log_util -from log_module.log import hx_logger_l2_transaction, logger_debug, logger_request_api +from log_module.log import hx_logger_l2_transaction, logger_debug, logger_request_api, logger_system from strategy import data_cache -from strategy.kpl_data_manager import KPLStockOfMarketsPlateLogManager +from strategy.forbidden_plates_manager import ForbiddenPlatesManager +from strategy.kpl_data_manager import KPLMarketsSiftPlateLogManager, KPLMarketStockHeatLogManager from strategy.trade_setting import TradeSetting from trade import huaxin_trade_api, huaxin_trade_data_update from trade.huaxin_trade_record_manager import DelegateRecordManager, DealRecordManager, MoneyManager, PositionManager @@ -110,18 +111,6 @@ "auto_buy": TradeSetting().get_auto_buy()} response_data = json.dumps({"code": 0, "data": fdata}) - elif url.path == "/set_trade_settings": - running = params_dict.get("running") - auto_sell = params_dict.get("auto_sell") - auto_buy = params_dict.get("auto_buy") - if running is not None: - TradeSetting().set_running(int(running)) - if auto_sell is not None: - TradeSetting().set_auto_sell(int(auto_sell)) - if auto_buy is not None: - TradeSetting().set_auto_buy(int(auto_buy)) - response_data = json.dumps({"code": 0, "data": {}}) - elif url.path == "/get_env": request_id = params_dict.get("request_id") use_time_list = [] @@ -192,19 +181,41 @@ finally: if use_time_list and use_time_list[-1][1] > 10: logger_debug.warning(f"鐜鑾峰彇鏃堕棿澶т簬10s({request_id}):{use_time_list}") - - elif url.path == "/load_kpl_stock_of_markets_plate": + # 鑾峰彇鏉垮潡寮哄害鏁版嵁 + elif url.path == "/load_kpl_market_sift_plate": # 鍔犺浇鏁版嵁 - KPLStockOfMarketsPlateLogManager().load_data() + KPLMarketsSiftPlateLogManager().load_data() response_data = json.dumps({"code": 0, "msg": "鏆傛棤鍐呭"}) - elif url.path == "/get_kpl_stock_of_markets_plate": + elif url.path == "/get_kpl_market_sift_plate": + # 鑾峰彇寮�鐩樺暒娴佸叆鏉垮潡璇︾粏淇℃伅 + print("==========get_kpl_market_sift_plate==========") + try: + time_str = params_dict.get("time") + if not time_str: + time_str = tool.get_now_time_str() + fdatas = KPLMarketsSiftPlateLogManager().get_filter_log_datas() + response_data = json.dumps({"code": 1, "msg": "鏆傛棤鍐呭"}) + for i in range(len(fdatas) - 1, -1, -1): + if fdatas[i][0] <= time_str: + response_data = json.dumps({"code": 0, "data": fdatas[i]}) + break + except Exception as e: + logging.exception(e) + response_data = json.dumps({"code": 1, "msg": str(e)}) + + # 鑾峰彇涓偂寮哄害鏁版嵁 + elif url.path == "/load_kpl_market_stock_heat": + # 鍔犺浇鏁版嵁 + KPLMarketStockHeatLogManager().load_data() + response_data = json.dumps({"code": 0, "msg": "鏆傛棤鍐呭"}) + elif url.path == "/get_kpl_market_stock_heat": # 鑾峰彇寮�鐩樺暒娴佸叆鏉垮潡璇︾粏淇℃伅 print("==========get_kpl_stock_of_markets_plate==========") try: time_str = params_dict.get("time") if not time_str: time_str = tool.get_now_time_str() - fdatas = KPLStockOfMarketsPlateLogManager().get_filter_log_datas() + fdatas = KPLMarketStockHeatLogManager().get_filter_log_datas() response_data = json.dumps({"code": 1, "msg": "鏆傛棤鍐呭"}) for i in range(len(fdatas) - 1, -1, -1): if fdatas[i][0] <= time_str: @@ -224,6 +235,26 @@ # (璺濈09:15:00鐨勭鏁�, 鏃堕棿, 寮哄害) fdatas.append((tool.trade_time_sub(data[0], "09:15:00"), data[0], data[1])) response_data = json.dumps({"code": 0, "data": fdatas}) + elif url.path == "/get_place_order_records": + datas = data_cache.purchased_stocks_details_list + response_data = json.dumps({"code": 0, "data": datas}) + elif url.path == "/get_forbidden_plates": + datas = ForbiddenPlatesManager().list_plates() + # human 璁や负璁剧疆 fixed: 鍥哄畾鐨� + response_data = json.dumps( + {"code": 0, "data": {"human": list(datas), "fixed": list(constant.check_plate_list)}}) + elif url.path == "/add_forbidden_plate": + plate = params_dict.get("plate") + ForbiddenPlatesManager().add_plate(plate) + response_data = json.dumps({"code": 0, "data": {}}) + elif url.path == "/remove_forbidden_plate": + plate = params_dict.get("plate") + ForbiddenPlatesManager().remove_plate(plate) + response_data = json.dumps({"code": 0, "data": {}}) + elif url.path == "/get_market_sift_plate_stock_dict": + # 鑾峰彇寮�鐩樺暒鏉垮潡绮鹃�夋祦鍏� + data = data_cache.market_sift_plates + response_data = json.dumps({"code": 0, "data": data}) self.send_response(200) # 鍙戠粰璇锋眰瀹㈡埛绔殑鍝嶅簲鏁版嵁 @@ -264,6 +295,23 @@ else: huaxin_trade_api.add_trade_callback_data(body) result_str = json.dumps({"code": 0}) + elif url.path == "/set_trade_settings": + params = self.__parse_request() + if not self.__is_sign_right(params): + result_str = json.dumps({"code": 1001, "msg": "绛惧悕閿欒"}) + return + logger_debug.info(f"set_trade_settings: {params}") + running = params.get("running") + auto_sell = params.get("auto_sell") + auto_buy = params.get("auto_buy") + if running is not None: + TradeSetting().set_running(int(running)) + if auto_sell is not None: + TradeSetting().set_auto_sell(int(auto_sell)) + if auto_buy is not None: + TradeSetting().set_auto_buy(int(auto_buy)) + result_str = json.dumps({"code": 0, "data": {}}) + elif url.path == "/buy": # 绛惧悕楠岃瘉 params = self.__parse_request() @@ -387,8 +435,8 @@ code, data = d[0], d[2] if code not in data_cache.big_order_deal_dict: data_cache.big_order_deal_dict[code] = [] - data_cache.big_order_deal_dict[code].append(data) - # TODO 鑾峰彇涔板ぇ鍗曟暟閲� + data_cache.big_order_deal_dict[code].append(d) + # 鑾峰彇涔板ぇ鍗曟暟閲� len(data_cache.big_order_deal_dict.get(code, [])) hx_logger_l2_transaction.info(_str) # 璁板綍鏃ュ織 @@ -428,7 +476,7 @@ print("HTTP server is at: http://%s:%d/" % (addr, port)) httpd.serve_forever() except Exception as e: - pass + logger_system.exception(e) if __name__ == "__main__": -- Gitblit v1.8.0