tushare通过pro_bar获取的收盘价为啥和同花顺的收盘价不一致
时间: 2023-11-22 16:02:35 浏览: 28
tushare和同花顺获取的收盘价不一致可能有以下几个原因:
1. 数据源不同:tushare和同花顺可能使用不同的数据源获取股票收盘价,导致数据存在差异。
2. 数据处理方式不同:tushare和同花顺可能对获取的股票收盘价进行不同的处理和计算,例如可能存在不同的调整因素或计算公式,导致最终的收盘价不一致。
3. 数据同步时间不同:tushare和同花顺可能对股票收盘价的更新时间存在差异,导致用户在不同时间点获取的收盘价数据有所不同。
因此,当使用tushare通过pro_bar获取的收盘价与同花顺的收盘价不一致时,需要考虑以上几个可能的原因,并对比两个数据源的具体情况来分析差异的原因。另外,还可以考虑使用其他数据源进行对比,以验证数据的准确性。
相关问题
通过tushare获取数据,使用上述数据绘制浦发银行股票收盘价和成交量的综合时间序列的南丁格尔玫瑰图
首先需要安装tushare和matplotlib库。可以使用以下命令进行安装:
```
pip install tushare matplotlib
```
然后使用以下代码获取浦发银行的股票数据:
```python
import tushare as ts
# 设置tushare token,需要在tushare官网申请
ts.set_token('your_token_here')
# 初始化pro接口
pro = ts.pro_api()
# 获取浦发银行股票数据
df = pro.daily(ts_code='600000.SH', start_date='20200101', end_date='20201231')
```
接着,我们需要对数据进行处理,计算每个月的平均股票收盘价和成交量:
```python
import pandas as pd
# 将交易日期转换为datetime类型
df['trade_date'] = pd.to_datetime(df['trade_date'], format='%Y%m%d')
# 按月份进行分组,计算平均收盘价和成交量
df_monthly = df.groupby(pd.Grouper(key='trade_date', freq='M')).agg({'close': 'mean', 'vol': 'mean'}).reset_index()
# 将月份转换为字符串类型
df_monthly['trade_date'] = df_monthly['trade_date'].dt.strftime('%Y-%m')
```
最后,我们可以使用matplotlib库绘制南丁格尔玫瑰图:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建绘图窗口
fig, ax = plt.subplots(figsize=(10, 10), subplot_kw=dict(projection='polar'))
# 计算每个月份的收盘价和成交量所占比例
close_ratio = df_monthly['close'] / df_monthly['close'].sum()
vol_ratio = df_monthly['vol'] / df_monthly['vol'].sum()
# 计算每个月份的起始角度和极径
theta = 2 * np.pi * np.arange(len(df_monthly)) / len(df_monthly)
radii = close_ratio + vol_ratio
# 绘制南丁格尔玫瑰图
bars = ax.bar(theta, radii, width=2 * np.pi / len(df_monthly), bottom=0.0)
# 设置每个月份的颜色和标签
month_labels = df_monthly['trade_date'].tolist()
month_colors = plt.cm.viridis(np.linspace(0, 1, len(df_monthly)))
for i, bar in enumerate(bars):
bar.set_facecolor(month_colors[i])
bar.set_label(month_labels[i])
# 添加图例
ax.legend(loc='upper right')
# 显示图形
plt.show()
```
运行以上代码即可得到浦发银行股票收盘价和成交量的综合时间序列南丁格尔玫瑰图。
python爬取股票日线_python 通过tushare.pro获取股票日线数据并写入mysql数据库
以下是通过tushare.pro获取股票日线数据并写入MySQL数据库的Python代码:
```python
import tushare as ts
import pymysql
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', user='root', password='your_password', database='your_database', charset='utf8')
# 获取股票列表
stock_list = ['000001.SZ', '600000.SH'] # 这里以深证成指和浦发银行为例
# 遍历股票列表,获取每只股票的日线数据
for stock_code in stock_list:
# 获取股票日线数据
df = ts.pro_bar(ts_code=stock_code, adj='qfq', start_date='20210101', end_date='20211231')
# 将股票日线数据写入MySQL数据库
for index, row in df.iterrows():
cursor = conn.cursor()
sql = "INSERT INTO stock_daily_data (stock_code, trade_date, open, high, low, close, pre_close, change, pct_chg, vol, amount) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
cursor.execute(sql, (stock_code, row['trade_date'], row['open'], row['high'], row['low'], row['close'], row['pre_close'], row['change'], row['pct_chg'], row['vol'], row['amount']))
conn.commit()
# 关闭数据库连接
conn.close()
```
在这段代码中,我们首先通过```ts.pro_bar()```函数获取股票日线数据,然后使用```iterrows()```函数遍历每一行数据,并通过```INSERT INTO```语句将数据插入到MySQL数据库中。需要注意的是,我们需要自己创建好MySQL数据库,并且需要根据实际情况修改MySQL数据库的连接信息和股票代码列表。