大家好,我是船长。
今天富瀚微涨停、芯片股集体躁动,让我想到一个问题:能不能用Python来分析芯片股的投资机会?
这篇文章,我会用一个完整的代码示例,演示如何用Python抓取股票数据、做技术指标分析、生成可视化图表。
一、环境准备
需要的Python库:
pip install akshare pandas matplotlib mplfinance
或者一行安装:
pip install akshare pandas matplotlib mplfinance
二、获取股票数据
使用akshare获取芯片股数据:
import akshare as ak
import pandas as pd
# 获取富瀚微日线数据
stock_df = ak.stock_zh_a_hist(symbol="300613", period="daily",
start_date="20250101", end_date="20260424")
# 格式化日期列
stock_df['日期'] = pd.to_datetime(stock_df['日期'])
stock_df.set_index('日期', inplace=True)
print(f"获取数据 {len(stock_df)} 条")
print(stock_df.tail())
三、计算技术指标
import numpy as np
# 简单移动平均线 SMA
stock_df['SMA5'] = stock_df['收盘'].rolling(window=5).mean()
stock_df['SMA20'] = stock_df['收盘'].rolling(window=20).mean()
# MACD指标
exp12 = stock_df['收盘'].ewm(span=12, adjust=False).mean()
exp26 = stock_df['收盘'].ewm(span=26, adjust=False).mean()
stock_df['MACD'] = exp12 - exp26
stock_df['Signal'] = stock_df['MACD'].ewm(span=9, adjust=False).mean()
stock_df['Histogram'] = stock_df['MACD'] - stock_df['Signal']
# RSI指标
delta = stock_df['收盘'].diff()
gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()
loss = (-delta.where(delta = 0, 'red', 'green'),
alpha=0.5, label='MACD直方图')
ax2.plot(stock_df.index, stock_df['MACD'], label='MACD', linewidth=1)
ax2.plot(stock_df.index, stock_df['Signal'], label='Signal', linewidth=1)
ax2.axhline(y=0, color='black', linestyle='-', linewidth=0.5)
ax2.set_title('MACD指标', fontsize=12)
ax2.legend(loc='upper left')
ax2.grid(True, alpha=0.3)
# RSI
ax3 = axes[2]
ax3.plot(stock_df.index, stock_df['RSI'], label='RSI(14)',
color='purple', linewidth=1)
ax3.axhline(y=70, color='red', linestyle='--', linewidth=0.8, label='超买线70')
ax3.axhline(y=30, color='green', linestyle='--', linewidth=0.8, label='超卖线30')
ax3.fill_between(stock_df.index, 30, 70, alpha=0.1, color='gray')
ax3.set_title('RSI指标', fontsize=12)
ax3.set_ylim(0, 100)
ax3.legend(loc='upper left')
ax3.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('fuhanwei_analysis.png', dpi=150, bbox_inches='tight')
print("图表已保存: fuhanwei_analysis.png")
plt.show()
五、投资分析逻辑
技术指标只是工具,关键看如何使用:
1. 均线金叉/死叉
-
金叉:SMA5上穿SMA20 → 买入信号
-
死叉:SMA5下穿SMA20 → 卖出信号
2. MACD背离
-
价格创新低但MACD没创新低 → 底背离,可能反弹
-
价格创新高但MACD没创新高 → 顶背离,可能回调
3. RSI超买超卖
-
RSI > 70 → 超买,可能回调
-
RSI < 30 → 超卖,可能反弹
六、注意事项
-
数据准确性:akshare数据来自公开渠道,仅供参考
-
风险控制:技术指标不能预测未来,需要结合基本面
-
回测验证:策略需要历史数据回测验证有效性
总结
这篇文章演示了如何用Python分析股票数据:
-
获取数据:akshare库
-
技术指标:SMA、MACD、RSI
-
可视化:matplotlib绑制K线图
代码可以直接复用,换个股票代码就能分析其他股票。
提醒:本文不构成投资建议,股市有风险,入市需谨慎。
如果觉得有用,欢迎点赞、收藏、转发。
有问题欢迎评论区交流~