3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
您好!您的代码本身没有写错,导致价格与您在东方财富、新浪等平台上看到的不一致的原因,在于复权方式(fq 参数)的设置以及分红派息的影响。
在您的代码中,设置了 fq='pre',这表示获取的是前复权价格。
如果您希望获取 2023-12-28 和 2023-12-29 当天真实的收盘价(即不复权价格),只需要将 fq 参数设置为 None 即可。
修改后的代码:
price_choose = get_price(
target_list,
end_date=today,
frequency='1d',
fields=['close'],
count=2,
panel=False,
fq=None # 将 'pre' 改为 None,获取不复权的真实价格
).pivot(index='time', columns='code', values='close')
print(f"price_choose is {price_choose}")
fq='pre'(前复权):适合用于计算收益率、计算技术指标(如均线、MACD),因为它保证了价格的连续性,避免了除权除息带来的指标失真。fq=None(不复权):适合用于查看历史真实成交价格、计算真实的成交金额或进行撮合逻辑的核对。set_option('use_real_price', True)),get_price 获取的前复权价格是基于回测当前逻辑日期的,这有效避免了未来函数。而在研究环境中,前复权通常是基于今天的。