提示词
1
| 一个以日期为index的DataFrame,包含一列股票的收盘价,现在需要用TA-Lib计算其均线指标并可视化,请给出示例代码。
|
答案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| import pandas as pd import talib import matplotlib.pyplot as plt # import yfinance as yf # 获取股票数据(示例使用苹果公司2024年数据) # data = yf.download("AAPL", start="2024-01-01", end="2025-06-23") # data = data[['Close']].rename(columns={'Close': 'close'})
# Python代码 #准备数据的代码,已经用过多次 #这里不再逐行注释 df = pd.read_excel('../数据/历史行情数据.xlsx') df = df[['日期', '收盘']] df['日期'] = pd.to_datetime(df['日期']) df.set_index('日期', inplace = True)
# 使用TA-Lib计算均线 df['SMA_20'] = talib.SMA(df['收盘'], timeperiod=20) # 20日简单均线 df['EMA_12'] = talib.EMA(df['收盘'], timeperiod=12) # 12日指数均线 df['EMA_26'] = talib.EMA(df['收盘'], timeperiod=26) # 26日指数均线[1,3](@ref)
# 过滤掉前25天的无效数据(EMA26需要至少26个数据点) valid_data = df.dropna()
plt.figure(figsize=(14, 7)) plt.title('均线指标图', fontsize=14) plt.xlabel('Date', fontsize=12) plt.ylabel('Price (USD)', fontsize=12)
# 绘制价格曲线 plt.plot(valid_data['收盘'], label='Close Price', color='#1f77b4', linewidth=1.5)
# 绘制均线系统 plt.plot(valid_data['SMA_20'], label='20-Day SMA', color='orange', linestyle='--', linewidth=1.2) plt.plot(valid_data['EMA_12'], label='12-Day EMA', color='red', linewidth=1.2) plt.plot(valid_data['EMA_26'], label='26-Day EMA', color='purple', linewidth=1.2)
# 添加辅助元素 plt.grid(True, alpha=0.3) plt.legend(loc='upper left', fontsize=10) plt.tight_layout() plt.show()
|
我增加了自己的数据和修改了图标题和表格列名,避免中文乱码的代码,其余都是ai写的。
图像:
