编写一个程序来找出股票在最近几天内创新高的方法如下:
确定参数
设置一个参数N,表示要比较的天数。例如,N=20表示比较最近20天内的数据。
获取数据
使用股票数据接口(如tushare)获取股票的历史数据,包括最高价(High)和当前价格(Close)。
计算创新高条件
对于每一天,检查当前价格是否等于最近N天内的最高价。
输出结果
将满足创新高条件的股票信息输出,例如股票代码、日期和价格。
```python
import tushare as ts
设置tushare token,用于获取数据
ts.set_token('your_tushare_token')
pro = ts.pro_api()
获取股票数据
stock_code = '000001.SZ' 示例股票代码
end_date = '20250102' 示例结束日期
start_date = '20241231' 示例开始日期
data = ts.pro_bar(ts_code=stock_code, adj='qfq', start_date=start_date, end_date=end_date)
计算创新高条件
N = 20
新高 = data['high'] >= ts.hhv(data['high'], N)
输出结果
for i, row in data.iterrows():
if 新高[i]:
print(f'股票代码: {stock_code}, 日期: {row["trade_date"]}, 价格: {row["high"]}')
```
代码说明:
设置tushare token
你需要先注册tushare并获取一个token,用于访问股票数据接口。
获取股票数据
使用`ts.pro_bar`函数获取指定股票在指定日期范围内的历史数据。
计算创新高条件
使用`ts.hhv`函数计算最近N天内的最高价,然后检查当前价格是否等于这个最高价。
输出结果
遍历数据,找出满足创新高条件的股票,并输出相关信息。
建议:
确保你使用的tushare token是有效的,并且有权限访问所需的数据。
根据实际需求调整参数N的值,以适应不同的分析周期。
可以结合其他技术指标(如成交量、均线等)来进一步优化选股条件。