资料推荐:做量化这么多年,我收集、整理了大量通达信选股公式,全部源码、无加密,需要的朋友请直接购买:小红书商品页。
开源代码:https://github.com/z1041950008/deyide_quant — 张得意量化工具箱,脚本与示例随仓库更新。
01 Python 量化交易环境搭建完整教程
📖 引言
欢迎来到量化交易的世界!本文是 deyide_quant 系列教程的第一篇,将带你从零开始搭建完整的 Python 量化交易开发环境。
学习目标
- 掌握 Anaconda 的安装与配置方法
- 学会安装量化核心库(pandas/numpy/matplotlib)
- 完成第一个量化程序的编写与运行
- 解决环境搭建中的常见问题
🔧 核心概念
为什么选择 Anaconda?
Anaconda 是一个开源的 Python 发行版,专为数据科学和科学计算设计。对于量化交易者来说,Anaconda 有以下优势:
- 预装常用库:包含 180+ 数据科学包
- 环境管理:可以轻松创建隔离的虚拟环境
- 跨平台:支持 Windows、macOS、Linux
- 包管理:conda 命令简化了包的安装和管理
量化核心库介绍
库名 | 用途 | 重要性 |
pandas | 数据处理与分析 | ⭐⭐⭐⭐⭐ |
numpy | 数值计算 | ⭐⭐⭐⭐⭐ |
matplotlib | 数据可视化 | ⭐⭐⭐⭐ |
scipy | 科学计算 | ⭐⭐⭐ |
💻 代码实现
步骤 1: Anaconda 安装与配置
Windows 安装
- 访问官网:https://www.anaconda.com/products/distribution
- 下载 Windows 版本安装包
- 双击运行,按向导完成安装
- 建议勾选"Add Anaconda to PATH"
macOS 安装
# 使用 Homebrew 安装
brew install --cask anaconda
# 或下载 pkg 安装包手动安装
Linux 安装
# 下载安装脚本
wget https://repo.anaconda.com/archive/Anaconda3-2023.09-Linux-x86_64.sh
# 运行安装
bash Anaconda3-2023.09-Linux-x86_64.sh
# 验证安装
conda --version
步骤 2: 创建量化交易环境
# 创建名为 quant 的虚拟环境,指定 Python 版本
conda create -n quant python=3.9 -y
# 激活环境
conda activate quant
# 安装核心库
conda install pandas numpy matplotlib scipy -y
# 安装 Jupyter
conda install jupyter jupyterlab -y
步骤 3: 验证安装
创建测试文件test_install.py:
"""
test_install.py - 验证量化环境安装
"""
import sys
print(f"Python 版本:{sys.version}")
# 测试 pandas
import pandas as pd
print(f"pandas 版本:{pd.__version__}")
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print("pandas 测试通过:")
print(df)
# 测试 numpy
import numpy as np
print(f"\nnumpy 版本:{np.__version__}")
arr = np.array([1, 2, 3, 4, 5])
print("numpy 测试通过:")
print(f"数组:{arr}, 均值:{np.mean(arr)}")
# 测试 matplotlib
import matplotlib
print(f"\nmatplotlib 版本:{matplotlib.__version__}")
import matplotlib.pyplot as plt
plt.figure(figsize=(6, 4))
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title("Matplotlib 测试")
plt.savefig("test_plot.png")
print("matplotlib 测试通过,图表已保存为 test_plot.png")
print("\n✅ 所有库安装成功!")
运行测试:
python test_install.py
步骤 4: 获取股票数据示例
创建get_stock_data.py:
"""
get_stock_data.py - 获取股票数据示例
使用 akshare 获取 A 股历史行情
"""
import pandas as pd
import akshare as ak
from datetime import datetime
def get_stock_data(symbol: str, start_date: str, end_date: str) -> pd.DataFrame:
"""
获取 A 股历史行情数据
参数:
symbol: 股票代码,如 '000001'
start_date: 开始日期,格式 'YYYYMMDD'
end_date: 结束日期,格式 'YYYYMMDD'
返回:
DataFrame 包含股票行情数据
"""
try:
# 使用 akshare 获取个股历史行情
df = ak.stock_zh_a_hist(
symbol=symbol,
period="daily",
start_date=start_date,
end_date=end_date,
adjust="qfq" # 前复权
)
# 重命名列
df.columns = [
'date', 'open', 'close', 'high', 'low',
'volume', 'turnover', 'amplitude', 'pct_change',
'change', 'turnover_rate'
]
# 转换日期格式
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
return df
except Exception as e:
print(f"获取数据失败:{e}")
return pd.DataFrame()
if __name__ == "__main__":
# 获取平安银行 2023 年数据
print("正在获取股票数据...")
df = get_stock_data("000001", "20230101", "20231231")
if not df.empty:
print(f"\n✅ 成功获取 {len(df)} 条数据")
print("\n前 5 行数据:")
print(df.head())
print("\n数据描述:")
print(df.describe())
# 绘制收盘价图表
import matplotlib.pyplot as plt
plt.figure(figsize=(14, 7))
plt.plot(df.index, df['close'], label='收盘价')
plt.title('平安银行 2023 年收盘价走势')
plt.xlabel('日期')
plt.ylabel('价格 (元)')
plt.legend()
plt.grid(True, alpha=0.3)
plt.savefig("stock_price_2023.png")
print("\n图表已保存为 stock_price_2023.png")
else:
print("❌ 数据获取失败")
🎯 实战应用
运行结果示例
执行test_install.py后输出:
Python 版本:3.9.18 (main, Sep 11 2023, 08:38:23)
[GCC 11.4.0]
pandas 版本:2.1.0
pandas 测试通过:
A B
0 1 4
1 2 5
2 3 6
numpy 版本:1.24.3
numpy 测试通过:
数组:[1 2 3 4 5], 均值:3.0
matplotlib 版本:3.7.2
matplotlib 测试通过,图表已保存为 test_plot.png
✅ 所有库安装成功!
执行get_stock_data.py后:
正在获取股票数据...
✅ 成功获取 242 条数据
前 5 行数据:
open close high ... change turnover_rate
date ...
2023-01-03 13.05 13.15 13.18 ... 0.10 0.52
2023-01-04 13.15 13.08 13.20 ... -0.07 0.48
...
图表已保存为 stock_price_2023.png
❓ 常见问题
Q1: conda 命令无法识别
解决方案:
# Windows: 重新安装并勾选"Add to PATH"
# 或手动添加环境变量
# macOS/Linux: 编辑 ~/.bashrc 或 ~/.zshrc
export PATH="$HOME/anaconda3/bin:$PATH"
source ~/.bashrc
Q2: 安装包时出现权限错误
解决方案:
# 不要使用 sudo,创建独立环境
conda create -n quant python=3.9
conda activate quant
# 在激活的环境中安装包
Q3: 下载速度慢
解决方案:
# 使用国内镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
Q4: 导入模块失败
解决方案:
# 检查当前环境
conda env list
# 确认已激活正确环境
conda activate quant
# 重新安装缺失的包
conda install 包名
📝 总结
要点回顾
- ✅ Anaconda 是量化交易的最佳 Python 发行版选择
- ✅ 使用虚拟环境隔离项目依赖
- ✅ pandas/numpy/matplotlib 是量化核心三剑客
- ✅ akshare 是免费的 A 股数据获取工具
仓库链接:https://github.com/z1041950008/deyide_quant