Administrator
2025-08-29 6bbfbbb16d792f7737ec86cabdba5c0e98dcf4b4
utils/init_data_util.py
@@ -14,18 +14,20 @@
def re_set_price_pres(codes, force=False):
    # 通过历史数据缓存获取
    result = HistoryKDatasUtils.get_gp_latest_info(codes)
    for item in result:
        symbol = item['symbol']
        symbol = symbol.split(".")[1]
        pre_close = tool.to_price(decimal.Decimal(str(item['pre_close'])))
        gpcode_manager.CodePrePriceManager.set_price_pre(symbol, pre_close, force)
    for code in codes:
        result = HistoryKDatasUtils.get_history_tick_n(code, 1)
        for item in result:
            symbol = item['symbol']
            symbol = symbol.split(".")[1]
            pre_close = tool.to_price(decimal.Decimal(str(item['close'])))
            gpcode_manager.CodePrePriceManager().set_price_pre(symbol, pre_close, force)
# 获取近90天的最大量与最近的量
# 获取最近一次涨停/涨停下一个交易日的最大值
def get_volumns_by_code(code, count=60):
    datas = HistoryKDatasUtils.get_history_tick_n(code, count, "open,high,low,close,volume,pre_close,bob,amount")
def get_volumns_by_code(code, count=60, juejin=False):
    datas = HistoryKDatasUtils.get_history_tick_n(code, count, "open,high,low,close,volume,pre_close,bob,amount",
                                                  juejin=juejin)
    if not datas:
        return None
    # 计算
@@ -81,9 +83,11 @@
    # 判断是否涨停过
    target_index = None
    has_limited_up = False
    for i in range(len(datas)):
        data = datas[i]
        if __is_limited_up(data):
            has_limited_up = True
            next_data = None
            if i > 0:
                next_data = datas[i - 1]
@@ -101,7 +105,9 @@
                target_index = i
            if data['volume'] > datas[target_index]['volume']:
                target_index = i
    return datas[target_index]['volume'], datas[target_index]['volume'], datas[target_index]['bob'].strftime(
    # 如果60个交易日没涨停,需要在最高量的基础上x2
    return datas[target_index]['volume'] * (2 if not has_limited_up else 1), datas[target_index]['volume'] * (
        2 if not has_limited_up else 1), datas[target_index]['bob'].strftime(
        "%Y-%m-%d"), target_index
@@ -121,8 +127,8 @@
        if d["volume"] > max_volume_info[0]:
            max_volume_info = (d["volume"], d)
    if max_volume_info:
        return max_volume_info[0]
    return None
        return max_volume_info[0], max_volume_info[1]['bob'].strftime("%Y-%m-%d")
    return None, None
# 返回:(60天最大量,昨日量,量参考日期,参考量据今交易日数)