用baostock获取上证综指(代码sh.000001)从2022年1月1日至2024年11月21日的日度价格数据,用mplfinance绘制月度k线,要求: 选取从2024年10月8日至2024年11月21日数据绘制 k线红涨绿跌 添加5日和15日均线 添加成交量附图
时间: 2024-12-19 18:23:33 浏览: 18
在Python中,你可以使用`baostock`库来获取上证综指的历史数据,并结合`mplfinance`库来绘制月度K线图。首先,你需要安装这两个库:
```bash
pip install baostock mplfinance pandas
```
然后,按照以下步骤获取和处理数据:
1. **获取数据**:
使用`baostock`库的API获取指定时间段内的日度价格数据。
```python
import baostock as bs
# 创建Baostock实例
rt = bs.RT()
# 设置股票代码和起止日期
stock_code = "sh.000001"
start_date = "20220101"
end_date = "20241121"
# 获取数据
data = rt.get_k_data(stock_code, start=start_date, end=end_date)
```
2. **筛选和处理数据**:
选择2024年10月8日至2024年11月21日的数据。
```python
filtered_data = data[(data["trade_date"] >= "20241008") & (data["trade_date"] <= "20241121")]
```
3. **绘制K线图**:
使用`mplfinance`库创建月度K线图,包含涨跌情况、均线和成交量。
```python
import matplotlib.pyplot as plt
import pandas as pd
# 将Baostock DataFrame转换为pandas DataFrame
df = pd.DataFrame(filtered_data)
# 安装mplfinance并导入绘图工具
!pip install mplfinance
from mplfinance.original_flavor import candlestick_ohlc, volume, mavp
# 绘制K线图
fig, ax1 = plt.subplots()
mavp(df, ax=ax1, period=(5, 15)) # 添加5日和15日均线
candlestick_ohlc(ax1, df[['open', 'close', 'low', 'high']], width=0.6, colorup='r', colordown='g') # 红涨绿跌
volume(df, ax=ax1, style='bar', alpha=0.7) # 成交量附图
ax1.set_title('上证综指月度K线图 (2024-10-08至2024-11-21)')
plt.show()
```
记得运行上述代码前先安装了所需的库,并确认`baostock`服务可用。
阅读全文