| | |
| | | |
| | | from huaxin_client import l1_api_client |
| | | from log_module.log import logger_debug |
| | | from strategy import data_cache |
| | | from utils import tool |
| | | |
| | | __response_data = {} |
| | |
| | | @param end_date: |
| | | @return: |
| | | """ |
| | | if not end_date: |
| | | end_date = tool.get_now_date_str() |
| | | load_latest_trade_calendar() |
| | | _count = -1 |
| | | start_date = None |
| | |
| | | end_date = tool.get_now_date_str() |
| | | end_date = tool.date_sub(end_date, -30) |
| | | days = get_trade_calendar(tool.date_sub(end_date, 365), end_date) |
| | | logger_debug.info(f"华鑫API获取交易日历结果:{days}") |
| | | for i in range(0, len(days)): |
| | | if 0 < i < len(days) - 1: |
| | | __trade_calendar_dict[days[i]] = (days[i - 1], days[i + 1]) |
| | |
| | | return None |
| | | |
| | | |
| | | def __read_callback_data(data_callback_queue: multiprocessing.Queue): |
| | | """ |
| | | 读取数据回调 |
| | | :param data_callback_queue: |
| | | :return: |
| | | """ |
| | | while True: |
| | | try: |
| | | data = data_callback_queue.get() |
| | | type_ = data[0] |
| | | data = data[1] |
| | | if type_ == "stock_index_datas": |
| | | for k in data: |
| | | """ |
| | | 值的格式为: |
| | | { |
| | | "PreClosePrice":pStockIndexData, |
| | | "LastPrice": pStockIndexData.LastPrice, |
| | | "SecurityID": pStockIndexData.SecurityID, |
| | | "UpdateTime": pStockIndexData.UpdateTime, |
| | | "Volume": pStockIndexData.Volume, |
| | | "Turnover": pStockIndexData.Turnover, |
| | | "LXLastPrice": pStockIndexData.LXLastPrice, |
| | | } |
| | | """ |
| | | d = data[k] |
| | | data_cache.stock_index_dict[k] = (round(d["LastPrice"], 2), d["Volume"], d["Turnover"], d["PreClosePrice"]) |
| | | except: |
| | | pass |
| | | |
| | | |
| | | def run(): |
| | | global request_queue |
| | | request_queue, response_queue = multiprocessing.Queue(), multiprocessing.Queue() |
| | | request_queue, response_queue, data_callback_queue = multiprocessing.Queue(), multiprocessing.Queue(), multiprocessing.Queue() |
| | | # 启动增值服务进程 |
| | | process = multiprocessing.Process(target=l1_api_client.run, args=(request_queue, response_queue,), daemon=True) |
| | | process = multiprocessing.Process(target=l1_api_client.run, |
| | | args=(request_queue, response_queue, data_callback_queue,), daemon=True) |
| | | process.start() |
| | | |
| | | # 读取数据回调 |
| | | threading.Thread(target=__read_callback_data, args=(data_callback_queue,), daemon=True).start() |
| | | |
| | | __set_response(response_queue) |
| | | |
| | | |