admin
2025-03-21 5964226bc37de47919515fec5763ffb625015de6
交易设置及接口
4个文件已修改
58 ■■■■ 已修改文件
log_module/log.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/account_management.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/buying_strategy.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/kpl_api.py 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log_module/log.py
@@ -315,6 +315,10 @@
                   filter=lambda record: record["extra"].get("name") == "Overall_market_strength_score",
                   rotation="00:00", compression="zip", enqueue=True)
        logger.add(self.get_path("kpl", "stock_of_markets_plate"),
                   filter=lambda record: record["extra"].get("name") == "stock_of_markets_plate",
                   rotation="00:00", compression="zip", enqueue=True)
    def get_path(self, dir_name, log_name):
        path_str = "{}/{}/gp/{}/{}".format(constant.get_path_prefix(), constant.LOG_DIR, dir_name,
                                           log_name) + ".{time:YYYY-MM-DD}.log"
@@ -441,6 +445,7 @@
# -------------------------------开盘啦日志---------------------------------
logger_kpl_jingxuan_in = __mylogger.get_logger("kpl_jingxuan_in")
logger_Overall_market_strength_score = __mylogger.get_logger("Overall_market_strength_score")
logger_stock_of_markets_plate = __mylogger.get_logger("stock_of_markets_plate")
logger_common = __mylogger.get_logger("common")
strategy/account_management.py
@@ -84,10 +84,13 @@
            if currentPosition != 0:
                # 当前持仓
                # print(f"当前持仓=={securityName}")
                if availablePosition != 0:  # 如果可用资金不等于0  昨日收盘价获取到非0值时(不知名原因导致有些票会获取到0值导致后续公式报错,阻止intraday_growth函数正常运行)
                    # print(f"持仓可用股{symbol}")
                    logger.info(f"今日持仓可用==={securityName}")
                if availablePosition != 0 and historyPosFrozen != 0:  # 如果 可用资金 和 昨仓冻结 都不等于0  昨日收盘价获取到非0值时(不知名原因导致有些票会获取到0值导致后续公式报错,阻止intraday_growth函数正常运行)
                    data_cache.available_symbols_set.add(securityID)
                    if historyPosFrozen != 0:
                        logger.info(f"昨日持仓==={securityName}==挂单中》》挂单数量:{historyPosFrozen}")
                    else:
                        logger.info(f"昨日持仓==={securityName}===持仓可用:{availablePosition}")
                else:
                    # 新增持仓
                    logger.info(f"今日新增持仓==={securityName}")
strategy/buying_strategy.py
@@ -522,8 +522,8 @@
                                            f"【{k_line_data[0]['sec_name']}】--------------------------------------------------------------------------------------------------------[小量大涨幅视界]")
                                        logger.info(
                                            f"【无概念 无强度】未出现在板块强度大于2的列表中!瞬时量幅比:{round(last_volume_to_growth_ratio, 2)}%,最新价: {current_price},瞬时涨幅:{round(tick_growth, 2)}%,当日当时涨幅:{today_growth}%。")
                                        logger.info(
                                            f"【强度数据】  ==  {data_cache.market_sift_plate_stock_dict}")
                                        # logger.info(
                                        #     f"【强度数据】  ==  {data_cache.market_sift_plate_stock_dict}")
                                        if last_volume_to_growth_ratio < 0.8:
                                            logger.info(
                                                f"【无概念 无强度 有小量换大涨幅】瞬时量幅比< 0.8 !瞬时量幅比:{round(last_volume_to_growth_ratio, 2)}%。")
@@ -537,8 +537,8 @@
                                                    'volume'] * ratios and now_time > data_cache.MORN_MARKET_TIME:
                                                    logger.info(
                                                        f"【不利】买一量小于卖一量 且 挂买总量小于挂卖总量 且 当日量不足 (9:35后实施)!不买!!公司名称:{k_line_data[0]['sec_name']},自由市值:{free_market_value} 亿,最新价: {current_price}")
                                                    logger.info(
                                                        f"目前获取的精选板块股票强度数据  ==  {data_cache.market_sift_plate_stock_dict}")
                                                    # logger.info(
                                                    #     f"目前获取的精选板块股票强度数据  ==  {data_cache.market_sift_plate_stock_dict}")
                                                elif current_high - current_price > 0.05:
                                                    logger.info(
                                                        f"【不利】当前最新价小于今日最高价!不买!!公司名称:{k_line_data[0]['sec_name']},,最新价: {current_price},,当日最高价:{current_high}")
strategy/kpl_api.py
@@ -11,7 +11,8 @@
import constant
from log_module import async_log_util
from log_module.log import logger_common, logger_kpl_jingxuan_in, logger_Overall_market_strength_score
from log_module.log import logger_common, logger_kpl_jingxuan_in, logger_Overall_market_strength_score, \
    logger_stock_of_markets_plate
# import requests
from strategy import data_cache
from strategy import basic_methods
@@ -225,6 +226,9 @@
    @dask.delayed
    def request_plate_codes(i):
        # 只在盘中时间获取
        now_time = tool.get_now_time_str()
        if data_cache.L1_DATA_START_TIME < now_time < data_cache.CLOSING_TIME:
        plate_name = i[1]
        # 尝试过滤掉无意义的概念板块(plate_name not in ['科创板', '北交所', '次新股', '无', 'ST板块', 'ST摘帽', '并购重组', '国企改革','超跌', '壳资源', '股权转让', '送转填权']) and '增长' in plate_name
        if (plate_name not in ['科创板', '北交所', '次新股', '无', 'ST板块', 'ST摘帽', '并购重组', '国企改革', '超跌',
@@ -232,12 +236,12 @@
            # print(f"{i[1]} 强度:{i[2]}")
            # 通过板块ID获取其下面的个股强度列表
            # print(f"======={i[0]}=======")
            its_stock = json.loads(getCodesByPlate(i[0]))
            # print(f"its_stock['list']  ===  {its_stock['list']}")
            # print(f"its_stock['list'][0]  ===  {its_stock['list'][0]}")
            logger.info(f"its_stock['list']  ===》》  {its_stock['list']}")
            # logger.info(f"its_stock['list'][0]  ===  {its_stock['list'][0]}")
                async_log_util.info(logger_stock_of_markets_plate, f"{its_stock['list']}")
            its_stock_list_info = its_stock['list']
            logger.info(f"its_stock_list_info==={its_stock_list_info}")
            # 将板块强度下面对应的个股列表打印到日志中
@@ -256,14 +260,6 @@
            #             f"41未知1值:{i[41]},第三季度机构持仓【str数据勿用运算符】:{i[42]}万,?年预测净利润:{i[43]},上年预测净利润:{i[44]},年内预测净利润:{i[45]}"
            #         )
            # 获取该概念板块的的子版块
            # its_son_plate = json.loads(getSonPlate(i[0]))
            # logger.info(f"its_son_plate=={its_son_plate['List']}")
            # if its_son_plate['List'][0][2] > 0:
            #     print(f"its_son_plate=={its_son_plate['List'][0]}")
            # for son in its_son_plate['List']:
            #     if son[2] > 0:
            #         print(f"son===={son}")
            # 初始化股票强度列表
            stock_power_list = []
            for s in its_stock['list']:
@@ -293,15 +289,15 @@
    # logger.info(f"market_sift_plate['list'][0]  ======{market_sift_plate['list'][0]}")
    # 初始化精选板块对应个股字典
    market_sift_plate_stock_dict = {}
    if 'list' in market_sift_plate:
        ds = []
        for d in market_sift_plate['list']:
            ds.append(request_plate_codes(d))
        dask_result = batch_get_plate_codes(ds)
        dask_result.compute()
        now_time = tool.get_now_time_str()
        if data_cache.L1_DATA_START_TIME < now_time < data_cache.CLOSING_TIME:
            logger.info(f"精选板块股票强度数据更新 == {market_sift_plate_stock_dict}")
    # if 'list' in market_sift_plate:
    #     ds = []
    #     for d in market_sift_plate['list']:
    #         ds.append(request_plate_codes(d))
    #     dask_result = batch_get_plate_codes(ds)
    #     dask_result.compute()
    #     now_time = tool.get_now_time_str()
    #     if data_cache.L1_DATA_START_TIME < now_time < data_cache.CLOSING_TIME:
    #         logger.info(f"精选板块股票强度数据更新 == {market_sift_plate_stock_dict}")
    return market_sift_plate_stock_dict