使用python 打印出来最近三个月出现过5连阳的个股
时间: 2024-02-22 09:00:13 浏览: 70
好的,我可以帮你解决这个问题。
首先,我们需要获取最近三个月的股票数据。可以使用 Python 中的 tushare 库来获取股票数据。假设你已经安装了 tushare 库,可以使用以下代码获取最近三个月的股票数据:
```
import tushare as ts
import datetime
# 获取当前日期
today = datetime.datetime.now().strftime('%Y-%m-%d')
# 计算三个月前的日期
three_months_ago = (datetime.datetime.now() - datetime.timedelta(days=90)).strftime('%Y-%m-%d')
# 获取股票数据
data = ts.get_hist_data('hs300', start=three_months_ago, end=today)
```
这里以沪深300指数为例,获取最近三个月的股票数据,你也可以根据需要修改其中的参数。获取到数据后,我们需要对每个股票进行分析,判断是否出现过5连阳。以下是判断5连阳的代码:
```
# 判断是否出现过5连阳
def has_five_consecutive_rises(data):
close = data['close']
# 判断前5个交易日是否涨停
if len(close) < 5 or any(close[-5:] != close.iloc[-1]):
return False
# 判断前5个交易日是否连续上涨
for i in range(1, 5):
if close.iloc[-i-1] >= close.iloc[-i]:
return False
return True
```
最后,我们可以遍历每个股票,判断是否出现过5连阳,输出出现过5连阳的股票代码。以下是完整代码:
```
import tushare as ts
import datetime
# 判断是否出现过5连阳
def has_five_consecutive_rises(data):
close = data['close']
if len(close) < 5 or any(close[-5:] != close.iloc[-1]):
return False
for i in range(1, 5):
if close.iloc[-i-1] >= close.iloc[-i]:
return False
return True
# 获取当前日期
today = datetime.datetime.now().strftime('%Y-%m-%d')
# 计算三个月前的日期
three_months_ago = (datetime.datetime.now() - datetime.timedelta(days=90)).strftime('%Y-%m-%d')
# 获取股票数据
data = ts.get_hist_data('hs300', start=three_months_ago, end=today)
# 遍历每个股票
for code in data.index:
stock_data = ts.get_hist_data(code, start=three_months_ago, end=today)
if has_five_consecutive_rises(stock_data):
print(code)
```
注意,这里只是一个简单的示例代码,可能存在一些不完善的地方,具体实现还需要根据具体需求进行调整。
阅读全文