最近有个同事离职了,刚想感慨一下大环境真差,不景气,结果该同事买了奶茶和小甜点来跟我们告别了,他说是因为最近股票赚翻了,所以直接辞职回家休息一阵了,真的羡慕死我们了。。。
想了想,是不是我们可以写一段代码分析下呢。。。
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
# 获取南京红宝丽公司股票数据,股票代码为 002165.SZ
def get_stock_data():
try:
stock = yf.Ticker("002165.SZ")
data = stock.history(period="5y")
return data
except Exception as e:
print(f"获取股票数据时出错: {e}")
return None
# 计算简单移动平均线
def calculate_sma(data, window):
return data['Close'].rolling(window=window).mean()
# 分析股价走势
def analyze_stock_trend(data):
if data is not None:
# 计算 50 日和 200 日简单移动平均线
sma_50 = calculate_sma(data, 50)
sma_200 = calculate_sma(data, 200)
# 绘制股价和移动平均线
plt.figure(figsize=(12, 6))
plt.plot(data['Close'], label='Close Price')
plt.plot(sma_50, label='50-Day SMA')
plt.plot(sma_200, label='200-Day SMA')
plt.title('南京红宝丽股价走势及移动平均线')
plt.xlabel('日期')
plt.ylabel('股价')
plt.legend()
plt.show()
# 简单的趋势判断
if sma_50.iloc[-1] > sma_200.iloc[-1]:
print("短期均线在长期均线上方,股价短期趋势向好。")
else:
print("短期均线在长期均线下方,股价短期趋势有待观察。")
# 分析成交量变化
def analyze_volume(data):
if data is not None:
plt.figure(figsize=(12, 6))
plt.bar(data.index, data['Volume'])
plt.title('南京红宝丽成交量变化')
plt.xlabel('日期')
plt.ylabel('成交量')
plt.show()
# 计算成交量均值
volume_mean = data['Volume'].mean()
recent_volume = data['Volume'].iloc[-1]
if recent_volume > volume_mean:
print("近期成交量高于均值,市场关注度可能提升。")
else:
print("近期成交量低于均值,市场关注度可能较低。")
if __name__ == "__main__":
stock_data = get_stock_data()
analyze_stock_trend(stock_data)
analyze_volume(stock_data)