New file |
| | |
| | | import threading |
| | | |
| | | from code_attribute.code_data_util import ZYLTGBUtil |
| | | from huaxin_client import l1_subscript_codes_manager |
| | | from third_data import history_k_data_util, kpl_api |
| | | from utils import tool |
| | | |
| | | |
| | | def update_all_zylt_volumes(): |
| | | """ |
| | | 更新所有目标代码的自由流通股本 |
| | | @return: |
| | | """ |
| | | # 判断当前是否是交易日 |
| | | previous_trading_date = history_k_data_util.JueJinApi.get_previous_trading_date(tool.get_now_date_str()) |
| | | if history_k_data_util.JueJinApi.get_next_trading_date(previous_trading_date) != tool.get_now_date_str(): |
| | | # 非交易日 |
| | | return 0 |
| | | |
| | | def update_zylt_volume(codes): |
| | | # 获取最近的价格 |
| | | price_datas = history_k_data_util.JueJinApi.get_gp_current_info(codes, "symbol, price") |
| | | price_dict = {x['symbol'].split(".")[1]: x['price'] for x in price_datas} |
| | | for code in price_dict: |
| | | try: |
| | | zylt = kpl_api.getZYLTAmount(code) |
| | | ZYLTGBUtil.save_volume(code, int(zylt / price_dict[code])) |
| | | except: |
| | | pass |
| | | |
| | | # 刷新目标代码的自由流通量 |
| | | codes_sh, codes_sz = l1_subscript_codes_manager.get_codes(False) |
| | | codes = set() |
| | | if codes_sh: |
| | | for code_byte in codes_sh: |
| | | codes.add(code_byte.decode()) |
| | | for code_byte in codes_sz: |
| | | codes.add(code_byte.decode()) |
| | | |
| | | updated_codes = ZYLTGBUtil.get_today_updated_volume_codes() |
| | | codes = codes - set(updated_codes) |
| | | threading.Thread(target=lambda: update_zylt_volume(codes), daemon=True).start() |
| | | return len(codes) |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | previous_trading_date = history_k_data_util.JueJinApi.get_previous_trading_date(tool.get_now_date_str()) |
| | | if history_k_data_util.JueJinApi.get_next_trading_date(previous_trading_date) != tool.get_now_date_str(): |
| | | print("非交易日") |
| | | else: |
| | | print("交易日") |