Python 分析 A 股基础入门:从零开始的量化投资之旅
前言:为什么用 Python 分析 A 股?
在数字化时代,传统的股票分析方法已经无法满足投资者的需求。Python 作为一门强大的编程语言,正在改变着金融投资的方式。
为什么选择 Python?
-
简单易学:语法简洁,适合编程初学者
-
丰富的库:拥有 Pandas、NumPy、Matplotlib 等强大的数据分析库
-
开源免费:无需昂贵的软件费用
-
社区活跃:大量的学习资源和解决方案
本文将带领您从零开始,学习如何使用 Python 进行 A 股分析,为您打开量化投资的大门。
第一章:环境搭建 – 准备您的分析工具
1.1 安装 Python
首先,您需要安装 Python 环境:
访问 Python 官方网站:https://www.python.org/
下载最新版本的 Python(建议 3.8 以上)
安装时勾选 “Add Python to PATH”
1.2 安装必要的库
打开命令提示符(Windows)或终端(Mac/Linux),输入以下命令:
pip install pandas numpy matplotlib tushare yfinance
库功能说明:
| pandas | 数据处理与分析 | 股票数据清洗、指标计算 |
| numpy | 数值计算 | 复杂数学运算、统计分析 |
| matplotlib | 数据可视化 | K 线图绘制、指标展示 |
| tushare | A 股数据接口 | 获取 A 股历史行情数据 |
| yfinance | 全球金融数据接口 | 补充 A 股数据、获取美股数据 |
1.3 获取 Tushare Token
Tushare 是一个免费的 A 股数据接口,需要注册账号获取 Token:
访问 Tushare 官网:https://tushare.pro/
注册账号并登录
在个人中心获取 Token
第二章:数据获取 – 从市场获取第一手资料
2.1 获取单只股票数据
让我们从获取贵州茅台(600519)的历史数据开始:
import tushare as ts
import pandas as pd
from datetime import datetime
\\# 设置Tushare Token
ts.set\\_token(\’your\\_tushare\\_token\\_here\’)
pro = ts.pro\\_api()
\\# 获取贵州茅台数据
def get\\_stock\\_data(stock\\_code, start\\_date, end\\_date):
  \”\”\”
  获取股票历史数据
  :param stock\\_code: 股票代码(如\’600519\’)
  :param start\\_date: 开始日期(格式\’YYYYMMDD\’)
  :param end\\_date: 结束日期(格式\’YYYYMMDD\’)
  :return: DataFrame格式的股票数据
  \”\”\”
  \\# 转换为Tushare格式
  ts\\_code = f\”{stock\\_code}.SH\” if stock\\_code.startswith(\’6\’) else f\”{stock\\_code}.SZ\”
   
  try:
  df = pro.daily(ts\\_code=ts\\_code, start\\_date=start\\_date, end\\_date=end\\_date)
   
  \\# 数据预处理
  df\\[\’trade\\_date\’] = pd.to\\_datetime(df\\[\’trade\\_date\’])
  df.set\\_index(\’trade\\_date\’, inplace=True)
  df = df.sort\\_index()
   
  \\# 重命名列名
  df.rename(columns={
  \’open\’: \’开盘价\’,
  \’high\’: \’最高价\’,
  \’low\’: \’最低价\’,
  \’close\’: \’收盘价\’,
  \’vol\’: \’成交量\’,
  \’amount\’: \’成交额\’
  }, inplace=True)
   
  return df\\[\\[\’开盘价\’, \’最高价\’, \’最低价\’, \’收盘价\’, \’成交量\’, \’成交额\’]]
   
  except Exception as e:
  print(f\”获取数据失败: {e}\”)
  return None
\\# 获取贵州茅台2023-2025年数据
df = get\\_stock\\_data(\’600519\’, \’20230101\’, \’20251231\’)
if df is not None:
  print(\”数据获取成功!\”)
  print(df.head()) # 显示前5行数据
2.2 数据结构解析
获取的数据包含以下字段:
| 开盘价 | 当日开盘价格 | 元 |
| 最高价 | 当日最高价格 |


