diff --git a/stockapp/src/stat_growth_em.py b/stockapp/src/stat_growth_em.py index 74a6fa2..136fd99 100644 --- a/stockapp/src/stat_growth_em.py +++ b/stockapp/src/stat_growth_em.py @@ -102,8 +102,13 @@ def load_index_codes(): #cursor.execute("SELECT code, code_name FROM hs_index where index_code='000300' ") #中证A500 #cursor.execute("SELECT code, code_name FROM hs_index where index_code='000510' ") - #沪深300和中证A500的并集 - cursor.execute("SELECT DISTINCT code, code_name FROM hs_index where index_code IN ('000300', '000510') ") + #沪深300和中证A500的并集,去重 + #cursor.execute("SELECT DISTINCT CONCAT('index-', code) as code, code_name FROM hs_index where index_code IN ('000300', '000510') ") + #沪深300和中证A500的合并,不去重 + #cursor.execute("SELECT DISTINCT CONCAT(index_code , '-', code) as code, code_name FROM hs_index where index_code IN ('000300', '000510') ") + #沪深300、中证A500、中证A50、科创芯片、科创创业50,不去重 + cursor.execute("SELECT DISTINCT CONCAT(index_code , '-', code) as code, code_name FROM hs_index where index_code IN ('000300', '000510', '930050', '000685', '931643') ") + hs300_data = cursor.fetchall() cursor.close() conn.close() @@ -249,10 +254,18 @@ def write_to_csv(results, filename='../stock_statistics.csv'): # 主函数,执行逻辑 def main(list, debug): + futu_codes = [] + index_codes = [] + if list == 'futu': - codes = load_futu_all_codes() + futu_codes = load_futu_all_codes() + elif list == 'all': + futu_codes = load_futu_all_codes() + index_codes = load_index_codes() else: - codes = load_index_codes() + index_codes = load_index_codes() + codes = futu_codes + index_codes + all_results = [] # 获取快照数据,并保存到文件 @@ -260,7 +273,9 @@ def main(list, debug): if snap_data.empty: logging.error(f"fetching snapshot data error!") return - snap_data.to_csv(f'../result/snapshot_em_{current_date}.csv', index=False, encoding='utf-8') + file_name = f'../result/snapshot_em_{current_date}.csv' + snap_data.to_csv(file_name, index=False, encoding='utf-8') + logging.info(f"市场快照数据已经写入 CSV 文件 {file_name}\n\n") for item in codes: code = item['code'] @@ -289,7 +304,10 @@ def main(list, debug): break if all_results: - file_name = f'../result/stock_statistics_{list}_{current_date}.csv' + file_name = f'../result/stock_statistics_{list}_{current_date}' + if debug: + file_name = f'{file_name}_debug' + file_name = f'{file_name}.csv' write_to_csv(all_results, f'{file_name}') logging.info(f"统计结果已写入 CSV 文件 {file_name}") else: @@ -298,7 +316,7 @@ def main(list, debug): if __name__ == "__main__": # 命令行参数处理 parser = argparse.ArgumentParser(description='计算指定股票的区间收益率') - parser.add_argument('--list', type=str, default='futu', help='Stocklist to process (futu or index)') + parser.add_argument('--list', type=str, default='futu', help='Stocklist to process (futu , index, all)') parser.add_argument('--debug', action='store_true', help='Enable debug mode (limit records)') args = parser.parse_args()