modify scripts
This commit is contained in:
@ -395,7 +395,7 @@ def code_id_map_em_older() -> dict:
|
|||||||
@lru_cache()
|
@lru_cache()
|
||||||
def code_id_map_em() -> dict:
|
def code_id_map_em() -> dict:
|
||||||
url = "http://80.push2.eastmoney.com/api/qt/clist/get"
|
url = "http://80.push2.eastmoney.com/api/qt/clist/get"
|
||||||
pz = 200 # 固定每页 200 条
|
pz = 100 # 固定每页 200 条
|
||||||
pn = 1 # 初始页码
|
pn = 1 # 初始页码
|
||||||
pn_max = 10000 # 预设一个较大的初始值
|
pn_max = 10000 # 预设一个较大的初始值
|
||||||
|
|
||||||
|
|||||||
@ -199,6 +199,13 @@ def calculate_stock_statistics(market, code, code_name):
|
|||||||
logging.warning(f"{code}, {code_name} 未找到1008的数据, 以 {defaut_row['日期']} 的数据来代替")
|
logging.warning(f"{code}, {code_name} 未找到1008的数据, 以 {defaut_row['日期']} 的数据来代替")
|
||||||
row_1008 = defaut_row
|
row_1008 = defaut_row
|
||||||
|
|
||||||
|
# 获取0403收盘价
|
||||||
|
try:
|
||||||
|
row_0403 = data[data['日期'] == '2025-04-03'].iloc[0]
|
||||||
|
except IndexError:
|
||||||
|
logging.warning(f"{code}, {code_name} 未找到0403的数据, 以 {defaut_row['日期']} 的数据来代替")
|
||||||
|
row_0403 = defaut_row
|
||||||
|
|
||||||
# 获取2021年以来的最高价
|
# 获取2021年以来的最高价
|
||||||
max_close_row = data.loc[data['收盘'].idxmax()]
|
max_close_row = data.loc[data['收盘'].idxmax()]
|
||||||
# 获取2021年以来的最低价
|
# 获取2021年以来的最低价
|
||||||
@ -221,6 +228,7 @@ def calculate_stock_statistics(market, code, code_name):
|
|||||||
growth_0930 = (current_row['收盘'] / row_0930['收盘'] - 1)
|
growth_0930 = (current_row['收盘'] / row_0930['收盘'] - 1)
|
||||||
growth_1008 = (current_row['收盘'] / row_1008['收盘'] - 1)
|
growth_1008 = (current_row['收盘'] / row_1008['收盘'] - 1)
|
||||||
growth_1008_open = (current_row['收盘'] / row_1008['开盘'] - 1)
|
growth_1008_open = (current_row['收盘'] / row_1008['开盘'] - 1)
|
||||||
|
growth_0403 = (current_row['收盘'] / row_0403['收盘'] - 1)
|
||||||
year_amplitude = (year_max_row['收盘'] / year_min_row['收盘'] - 1)
|
year_amplitude = (year_max_row['收盘'] / year_min_row['收盘'] - 1)
|
||||||
max_amplitude = (max_close_row['收盘'] / min_close_row['收盘'] - 1)
|
max_amplitude = (max_close_row['收盘'] / min_close_row['收盘'] - 1)
|
||||||
stock_recovery = (current_row['收盘'] / max_close_row['收盘'] - 1)
|
stock_recovery = (current_row['收盘'] / max_close_row['收盘'] - 1)
|
||||||
@ -238,6 +246,7 @@ def calculate_stock_statistics(market, code, code_name):
|
|||||||
row_0923['日期'], row_0923['收盘'] ,
|
row_0923['日期'], row_0923['收盘'] ,
|
||||||
row_0930['日期'], row_0930['收盘'] ,
|
row_0930['日期'], row_0930['收盘'] ,
|
||||||
row_1008['日期'], row_1008['开盘'] ,row_1008['收盘'] ,
|
row_1008['日期'], row_1008['开盘'] ,row_1008['收盘'] ,
|
||||||
|
row_0403['日期'], row_0403['收盘'] ,
|
||||||
max_close_row['日期'], max_close_row['收盘'],
|
max_close_row['日期'], max_close_row['收盘'],
|
||||||
min_close_row['日期'], min_close_row['收盘'],
|
min_close_row['日期'], min_close_row['收盘'],
|
||||||
year_max_row['日期'], year_max_row['收盘'],
|
year_max_row['日期'], year_max_row['收盘'],
|
||||||
@ -247,6 +256,7 @@ def calculate_stock_statistics(market, code, code_name):
|
|||||||
growth_0930 if growth_0930 is not None else 'N/A',
|
growth_0930 if growth_0930 is not None else 'N/A',
|
||||||
growth_1008 if growth_1008 is not None else 'N/A',
|
growth_1008 if growth_1008 is not None else 'N/A',
|
||||||
growth_1008_open if growth_1008_open is not None else 'N/A',
|
growth_1008_open if growth_1008_open is not None else 'N/A',
|
||||||
|
growth_0403 if growth_0403 is not None else 'N/A',
|
||||||
year_amplitude,
|
year_amplitude,
|
||||||
max_amplitude,
|
max_amplitude,
|
||||||
stock_recovery
|
stock_recovery
|
||||||
@ -266,9 +276,9 @@ def write_to_csv(results, filename):
|
|||||||
# 写入表头
|
# 写入表头
|
||||||
writer.writerow([
|
writer.writerow([
|
||||||
"股市", "股票代码", "股票名称", "当前日期", "当前收盘", "年初日期", "年初收盘",
|
"股市", "股票代码", "股票名称", "当前日期", "当前收盘", "年初日期", "年初收盘",
|
||||||
"0923日期", "0923收盘", "0930日期", "0930收盘", "1008日期", "1008开盘", "1008收盘",
|
"0923日期", "0923收盘", "0930日期", "0930收盘", "1008日期", "1008开盘", "1008收盘", "0403日期", "0403收盘",
|
||||||
"最高日期", "最高收盘", "最低日期", "最低收盘", "年内最高日期", "年内最高收盘", "年内最低日期", "年内最低收盘", "年内涨幅",
|
"最高日期", "最高收盘", "最低日期", "最低收盘", "年内最高日期", "年内最高收盘", "年内最低日期", "年内最低收盘", "年内涨幅",
|
||||||
"相比0923收盘价涨幅", "相比0930收盘价涨幅", "相比1008收盘价涨幅", "相比1008开盘价涨幅",
|
"相比0923收盘价涨幅", "相比0930收盘价涨幅", "相比1008收盘价涨幅", "相比1008开盘价涨幅", "相比0403收盘价涨幅",
|
||||||
"年内振幅", "最大振幅", "股价自最高点恢复", "市盈率TTM", "市净率", "总市值"
|
"年内振幅", "最大振幅", "股价自最高点恢复", "市盈率TTM", "市净率", "总市值"
|
||||||
])
|
])
|
||||||
# 写入每行数据
|
# 写入每行数据
|
||||||
@ -341,7 +351,7 @@ def main(list, debug):
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# 命令行参数处理
|
# 命令行参数处理
|
||||||
parser = argparse.ArgumentParser(description='计算指定股票的区间收益率')
|
parser = argparse.ArgumentParser(description='计算指定股票的区间收益率')
|
||||||
parser.add_argument('--list', type=str, default='futu', help='Stocklist to process (futu , index, all)')
|
parser.add_argument('--list', type=str, default='all', help='Stocklist to process (futu , index, all)')
|
||||||
parser.add_argument('--debug', action='store_true', help='Enable debug mode (limit records)')
|
parser.add_argument('--debug', action='store_true', help='Enable debug mode (limit records)')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user