Administrator
2024-06-13 d1526d919000b68c15e26156a35bf6bbc79037c3
每天定时更新量
1个文件已修改
1个文件已添加
56 ■■■■■ 已修改文件
code_attribute/zyltgb_util.py 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/l2_transaction_data_processor.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
code_attribute/zyltgb_util.py
New file
@@ -0,0 +1,51 @@
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("交易日")
l2/l2_transaction_data_processor.py
@@ -116,8 +116,9 @@
                                                                                            order_begin_pos)
                    # 判断时间是否与本地时间相差5s以上
                    if tool.trade_time_sub(tool.get_now_time_str(), l2_huaxin_util.convert_time(datas[-1][3])) > 10:
                        need_cancel, cancel_msg = True, f"成交时间与本地时间相差10S以上,{l2_huaxin_util.convert_time(datas[-1][3])}"
                        now_seconds = int(tool.get_now_time_str().replace(":", ""))
                        if now_seconds < int("093200") or int("130000") <= now_seconds < int("130200"):
                            need_cancel, cancel_msg = True, f"成交时间与本地时间相差10S以上,{l2_huaxin_util.convert_time(datas[-1][3])}"
                    if need_cancel:
                        L2TradeDataProcessor.cancel_buy(code, cancel_msg)