update em stat scripts.

This commit is contained in:
2025-01-06 09:19:21 +08:00
parent e94ec5d35c
commit 2cab12ea34

View File

@ -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()