From fd088787bc52e93bbce8f6aeb080fa8f472015aa Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 09 六月 2025 18:13:07 +0800 Subject: [PATCH] 功能完善 --- api/outside_api_callback.py | 66 ++++++++++++++++++++++++++++---- 1 files changed, 57 insertions(+), 9 deletions(-) diff --git a/api/outside_api_callback.py b/api/outside_api_callback.py index fb743cf..529a7e5 100644 --- a/api/outside_api_callback.py +++ b/api/outside_api_callback.py @@ -1,10 +1,14 @@ import json import logging +import threading from api.outside_api_command_manager import ActionCallback from huaxin_client.client_network import SendResponseSkManager -from strategy import strategy_params_settings -from utils import socket_util, middle_api_protocol +from strategy import strategy_params_settings, env_info +from strategy.env_info import RealTimeEnvInfo +from strategy.strategy_variable_factory import DataLoader +from third_data.history_k_data_manager import TradeDateManager +from utils import socket_util, middle_api_protocol, tool class MyAPICallback(ActionCallback): @@ -40,21 +44,65 @@ @return: """ result = strategy_params_settings.settings.to_json_str() - return json.dumps({"code": 0, "data": result}) + return {"code": 0, "data": result} def __on_get_env(self): """ 鑾峰彇鐜淇℃伅 @return: """ - return json.dumps({"code": 0, "data": {}, "msg": "娴嬭瘯缁撴灉"}) + fdata = {} + # 瀹炴椂鏁版嵁 + fdata["real_time_data"] = RealTimeEnvInfo().to_dict() + # 鍘嗗彶鏁版嵁 + fdata["history_data"] = {} + if tool.get_now_time_str() < '16:00:00': + # 濡傛灉鍦�16:00涔嬪墠閲囩敤褰撳墠鏃ユ湡 + day = tool.get_now_date_str() + else: + # 濡傛灉鍦�16:00涔嬪悗閲囩敤涓嬩竴涓氦鏄撴棩 + day = TradeDateManager().get_next_trade_day(tool.get_now_date_str()) + fdata["history_data"]["leading_limit_up_block_codes_count"] = env_info.get_leading_limit_up_block_codes_count( + day) + + if tool.get_now_time_str() < '16:00:00': + # 濡傛灉鍦�16:00涔嬪墠閲囩敤褰撳墠鏃ユ湡 + day = TradeDateManager().get_previous_trade_day(tool.get_now_date_str()) + else: + # 濡傛灉鍦�16:00涔嬪悗閲囩敤涓嬩竴涓氦鏄撴棩 + day = tool.get_now_date_str() + fdata["history_data"]["k_bars_count"] = env_info.get_history_k_bars(day) + return {"code": 0, "data": fdata, "msg": "娴嬭瘯缁撴灉"} + + def __on_update_leading_limit_up_datas(self): + """ + 鏇存柊棰嗘定浠g爜淇℃伅 + @return: + """ + + def update(): + plates = __DataLoader.get_limit_up_reasons_with_plate_code() + for p in plates: + print(p) + __DataLoader.load_plate_codes(p[0], p[1]) + + if tool.get_now_time_str() < '16:00:00': + # 濡傛灉鍦�16:00涔嬪墠閲囩敤褰撳墠鏃ユ湡 + day = tool.get_now_date_str() + else: + # 濡傛灉鍦�16:00涔嬪悗閲囩敤涓嬩竴涓氦鏄撴棩 + day = TradeDateManager().get_next_trade_day(tool.get_now_date_str()) + __DataLoader = DataLoader(day) + threading.Thread(target=lambda: update(), daemon=True).start() + return {"code": 0} def OnCommonRequest(self, client_id, request_id, data): ctype = data["ctype"] - result_str = '' + result_json = {} if ctype == "get_settings": - result_str = self.__on_get_settings() + result_json = self.__on_get_settings() elif ctype == 'get_env': - result_str = self.__on_get_env() - - self.send_response(result_str, client_id, request_id) + result_json = self.__on_get_env() + elif ctype == 'update_leading_limit_up_datas': + result_json = self.__on_update_leading_limit_up_datas() + self.send_response(result_json, client_id, request_id) -- Gitblit v1.8.0