从tushare获取任意股票数据,计算出某天已连板次数
时间: 2023-08-16 11:09:11 浏览: 94
可以使用循环来计算连续涨停板的次数。以下是一个示例代码,其中假设我们要计算股票代码为"000001"的股票在2021年5月27日这一天的连板次数:
```python
import tushare as ts
# 获取股票数据
df = ts.get_hist_data('000001')
# 获取2021年5月27日的数据
today_data = df.loc['2021-05-27']
# 计算连续涨停板的次数
count = 0
flag = True
for i in range(len(today_data)):
if today_data.iloc[i]['p_change'] >= 9.9 and flag:
count += 1
else:
flag = False
print(count)
```
这个代码会输出股票代码为"000001"在2021年5月27日的连板次数。请注意,这个代码使用了一个布尔变量 flag 来判断是否已经出现过一次涨停板,如果出现了第二次涨停板,就不再计数。如果需要计算连续跌停板的次数,只需要将 `today_data.iloc[i]['p_change'] >= 9.9` 改为 `today_data.iloc[i]['p_change'] <= -9.9` 即可。这个代码使用了循环,时间复杂度为 $O(n)$,其中 $n$ 表示当天交易的股票数目,因此可以保证高效率。
相关问题
从tushare获取任意股票数据,计算出某天已连板次数,代码高效率
可以使用tushare库获取股票数据,然后计算连续涨停板的次数。以下是一个示例代码,其中假设我们要计算股票代码为"000001"的股票在2021年5月27日这一天的连板次数:
```python
import tushare as ts
# 获取股票数据
df = ts.get_hist_data('000001')
# 获取2021年5月27日的数据
today_data = df.loc['2021-05-27']
# 计算连续涨停板的次数
count = 0
for i in range(len(today_data)):
if today_data.iloc[i]['p_change'] >= 9.9:
count += 1
else:
break
print(count)
```
这个代码会输出股票代码为"000001"在2021年5月27日的连板次数。请注意,这个代码只计算了连续涨停板的次数,如果你需要计算连续跌停板的次数,只需要将 `today_data.iloc[i]['p_change'] >= 9.9` 改为 `today_data.iloc[i]['p_change'] <= -9.9` 即可。这个代码的时间复杂度为 $O(n)$,其中 $n$ 表示当天交易的股票数目,因此可以保证高效率。
从tushare获取任意股票数据,计算出某天已连板次数,间隔一天连板也算
可以使用循环来计算连续涨停板的次数,其中需要加入一个判断,如果两次涨停板之间间隔一天也算连板。以下是一个示例代码,其中假设我们要计算股票代码为"000001"的股票在2021年5月27日这一天的连板次数:
```python
import tushare as ts
# 获取股票数据
df = ts.get_hist_data('000001')
# 获取2021年5月27日的数据
today_data = df.loc['2021-05-27']
# 计算连续涨停板的次数
count = 0
prev = -1
for i in range(len(today_data)):
if today_data.iloc[i]['p_change'] >= 9.9:
if prev != -1 and i - prev <= 2:
count += 1
prev = i
else:
prev = -1
print(count)
```
这个代码会输出股票代码为"000001"在2021年5月27日的连板次数,其中两次涨停板之间间隔一天也会被算作连板。请注意,这个代码使用了一个变量 prev 来记录前一个涨停板的位置,如果当前位置与前一个位置间隔不超过两天,就算作连板。如果需要计算连续跌停板的次数,只需要将 `today_data.iloc[i]['p_change'] >= 9.9` 改为 `today_data.iloc[i]['p_change'] <= -9.9` 即可。这个代码使用了循环,时间复杂度为 $O(n)$,其中 $n$ 表示当天交易的股票数目,因此可以保证高效率。
阅读全文