import akshare as ak
import pandas as pd
stock_code = "600519"
df = ak.stock_zh_a_hist(
symbol=stock_code,
period="daily",
start_date="20250101",
end_date="20260120",
adjust="qfq"
)
df.to_csv(f"{stock_code}_history.csv", index=False)
print(df.head())
import pandas_ta as ta
import matplotlib.pyplot as plt
df = df.rename(columns={'开盘':'open','收盘':'close','最高':'high','最低':'low','成交量':'volume'})
df['date'] = pd.to_datetime(df['日期'])
df.set_index('date', inplace=True)
df['ma5'] = ta.sma(df['close'], length=5)
df['ma20'] = ta.sma(df['close'], length=20)
df['rsi'] = ta.rsi(df['close'], length=14)
macd = ta.macd(df['close'], fast=12, slow=26, signal=9)
df = pd.concat([df, macd], axis=1)
print(df[['close','ma5','ma20','rsi','MACD_12_26_9']].tail())
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(12, 8), sharex=True)
ax1.plot(df.index, df['close'], label='Close', color='blue')
ax1.plot(df.index, df['ma5'], label='MA5', color='orange')
ax1.plot(df.index, df['ma20'], label='MA20', color='green')
ax1.set_title('Stock Price with MA')
ax1.legend()
ax2.plot(df.index, df['rsi'], label='RSI', color='purple')
ax2.axhline(70, color='red', linestyle='--')
ax2.axhline(30, color='green', linestyle='--')
ax2.set_title('RSI')
ax2.legend()
ax3.plot(df.index, df['MACD_12_26_9'], label='MACD', color='blue')
ax3.plot(df.index, df['MACDs_12_26_9'], label='Signal', color='red')
ax3.bar(df.index, df['MACDh_12_26_9'], label='Histogram', color='gray', alpha=0.5)
ax3.set_title('MACD')
ax3.legend()
plt.tight_layout()
plt.show()