log_module/log.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
strategy/account_management.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
strategy/buying_strategy.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
strategy/kpl_api.py | ●●●●● 补丁 | 查看 | 原始文档 | 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