Appearance
量化投资工具与平台
做量化投资,工具就像厨师的刀具——好的工具不会自动做出好菜,但差的工具会让好菜也做不好。本章介绍量化投资常用工具和平台,帮你搭建一个趁手的工作环境。
编程语言:为什么首选Python
量化投资可以选择多种编程语言,但对绝大多数人来说,Python是最佳选择。
Python的优势
| 优势 | 说明 |
|---|---|
| 语法简洁 | 代码读起来接近英语,学习成本低 |
| 金融库丰富 | pandas、numpy、matplotlib等库专为数据分析设计 |
| 社区活跃 | 遇到问题搜索一下,大概率能找到解答 |
| 免费开源 | 不需要购买任何许可证 |
| 跨平台 | Windows、Mac、Linux都能用 |
其他语言对比
- C++:速度快,但开发效率低,适合高频交易机构,个人投资者没必要。
- R语言:统计分析能力强,但通用性不如Python,金融生态略逊。
- MATLAB:数学建模方便,但收费昂贵,个人使用成本高。
- Java:企业级系统常用,但数据分析领域的库不如Python丰富。
结论:如果你是量化入门者,直接学Python,不用纠结。
Python环境安装
推荐安装方式:Anaconda
Anaconda是一个Python发行版,预先打包了数据分析和科学计算常用库,省去了逐个安装的麻烦。
安装步骤:
- 访问 anaconda.com 下载对应操作系统的安装包
- 运行安装程序,一路按默认选项即可
- 安装完成后,打开"Anaconda Navigator"或命令行验证
安装完成后,打开命令行(Windows是Anaconda Prompt),输入:
bash
python --version如果显示类似 Python 3.11.x,说明安装成功。
额外安装量化相关库
Anaconda已经自带了pandas、numpy、matplotlib等常用库。你还需要安装获取股票数据的库:
bash
pip install akshare
pip install tushare- akshare:免费开源的金融数据接口库
- tushare:需要注册获取token的金融数据接口库
后续章节会详细介绍它们的用法。
开发环境选择
Jupyter Notebook(强烈推荐新手使用)
Jupyter Notebook是一个交互式的编程环境,特点是可以把代码、文字说明、图表混排在同一个页面中。
它的优势在于:
- 逐块运行:不需要一次性运行整个程序,可以一段一段地执行代码,方便调试
- 即时反馈:输入代码后立刻看到结果,学习体验好
- 可视化方便:图表直接显示在代码下方,不用弹出新窗口
- 笔记功能:可以在代码之间插入Markdown文字,记录思路
启动方式:在命令行输入 jupyter notebook,浏览器会自动打开编辑界面。
Anaconda安装后,Jupyter Notebook已经自带,不需要额外安装。
VS Code
VS Code(Visual Studio Code)是微软开发的免费代码编辑器,功能强大,插件丰富。
适合的场景:
- 写较长的Python脚本文件
- 管理多个代码文件组成的项目
- 需要版本控制(Git)功能
安装方式:从 code.visualstudio.com 下载安装,然后安装"Python"插件。
两者怎么选
- 学习阶段:用Jupyter Notebook,方便边学边试
- 正式开发阶段:用VS Code,方便管理代码和项目
- 实际工作中:两者配合使用,Notebook做实验和探索,VS Code写正式代码
数据源
数据是量化投资的"原材料"。以下是A股常用的数据获取方式。
AKShare(推荐新手)
AKShare是一个免费开源的Python金融数据接口库,由国内开发者维护。
特点:
- 完全免费,不需要注册,不需要token
- 覆盖A股行情、财务数据、基金、期货、宏观经济等
- 接口丰富,更新活跃
- 文档中文,对国内用户友好
安装:
bash
pip install akshare简单示例:
python
import akshare as ak
# 获取贵州茅台的日K线数据
df = ak.stock_zh_a_hist(symbol="600519", period="daily",
start_date="20240101", end_date="20241231")
print(df.head()) # 查看前5行Tushare
Tushare是另一个常用的金融数据接口,提供了更结构化的数据服务。
特点:
- 需要注册账号并获取token(一种身份验证凭证)
- 免费版有积分限制,高级功能需要付费或积累积分
- 数据质量较高,经过清洗和整理
- 适合需要长期稳定数据源的用户
安装:
bash
pip install tushare使用前需要设置token:
python
import tushare as ts
ts.set_token('你的token字符串')
pro = ts.pro_api()
# 获取股票日线行情
df = pro.daily(ts_code='600519.SH', start_date='20240101',
end_date='20241231')
print(df.head())Wind、Choice(付费专业工具)
- Wind(万得):国内金融数据行业的标杆,数据最全最专业,但价格昂贵,年费通常数万元以上,主要面向机构投资者。
- Choice(东方财富):性价比相对较高的付费数据终端,功能也很全面。
个人入门阶段不建议购买付费数据源,AKShare完全够用。
免费数据源 vs 付费数据源
| 对比项 | AKShare / Tushare | Wind / Choice |
|---|---|---|
| 费用 | 免费 | 数万/年 |
| 数据覆盖 | 基本面、行情为主 | 全面(含另类数据) |
| 数据质量 | 偶有缺失或延迟 | 高质量、实时 |
| 适合人群 | 个人投资者、学习者 | 专业机构 |
| 技术支持 | 社区 | 专属客服 |
入门阶段用AKShare即可,等策略成熟后再考虑付费数据源。
回测框架
回测(Backtesting)是指用历史数据来模拟策略表现,看看"如果过去按这个策略操作,结果会怎样"。
Backtrader(推荐学习使用)
Backtrader是一个开源的Python回测框架,功能完善,社区活跃。
特点:
- 完全免费开源
- 支持复杂策略的编写和回测
- 内置多种技术指标
- 可以输出详细的绩效报告
安装:
bash
pip install backtraderBacktrader的学习曲线稍陡,但掌握了之后非常灵活。适合想要深入理解回测原理的学习者。
聚宽(JoinQuant)
聚宽是一个在线量化平台,提供网页版的策略编写和回测环境。
特点:
- 在线使用,不需要安装任何软件
- 内置A股数据,不需要自己获取
- 提供图形化的回测报告
- 有活跃的策略社区可以学习
访问地址:joinquant.com
适合不想折腾本地环境的新手,直接在浏览器里就能开始写策略。
米筐(RiceQuant)
米筐是另一个在线量化平台,功能和聚宽类似。
特点:
- 界面美观,操作友好
- 支持股票、期货等品种
- 提供模拟交易功能
访问地址:ricequant.com
本地回测 vs 在线平台
| 对比项 | 本地回测(Backtrader) | 在线平台(聚宽/米筐) |
|---|---|---|
| 安装 | 需要配置本地环境 | 浏览器打开即用 |
| 数据 | 需要自己获取和管理 | 平台提供 |
| 灵活性 | 高,完全自由定制 | 受平台API限制 |
| 学习深度 | 深,理解底层原理 | 浅,快速上手 |
| 代码迁移 | 代码属于自己 | 代码在平台上 |
| 费用 | 免费 | 基础功能免费,高级功能付费 |
建议:先用在线平台快速入门,理解回测的概念和流程;然后过渡到本地环境,获得更大的灵活性。
数据可视化工具
量化分析中,图表是理解数据的重要手段。
Matplotlib
Python最基础的绑图库,几乎所有其他可视化库都基于它。
python
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4, 5], [10, 25, 15, 30, 20])
plt.title("示例图表")
plt.xlabel("日期")
plt.ylabel("价格")
plt.show()基于Matplotlib的金融图表
对于K线图等专业金融图表,可以使用 mplfinance 库:
bash
pip install mplfinance必装库清单汇总
以下是个人量化投资环境的推荐安装清单:
| 库名 | 用途 | 安装命令 |
|---|---|---|
| pandas | 表格数据处理 | Anaconda自带 |
| numpy | 数值计算 | Anaconda自带 |
| matplotlib | 基础绑图 | Anaconda自带 |
| akshare | A股数据获取 | pip install akshare |
| tushare | A股数据获取(备用) | pip install tushare |
| backtrader | 策略回测 | pip install backtrader |
| mplfinance | 金融K线图 | pip install mplfinance |
一键安装命令:
bash
pip install akshare tushare backtrader mplfinance工具选择路线图
根据你的学习阶段,推荐不同的工具组合:
第一阶段:入门探索(第1-2周)
- 环境:Jupyter Notebook
- 数据:AKShare
- 目标:学会获取数据、画图表、做简单的统计计算
第二阶段:策略学习(第3-6周)
- 环境:Jupyter Notebook + 在线平台(聚宽)
- 数据:AKShare
- 目标:学会编写简单策略,在在线平台上回测
第三阶段:独立开发(第7周以后)
- 环境:VS Code + Jupyter Notebook
- 数据:AKShare / Tushare
- 回测:Backtrader
- 目标:开发自己的策略,进行系统化回测和分析
常见问题
Q:我的电脑配置够用吗?
量化入门对电脑配置要求很低。任何一台近5年购买的电脑都可以。内存建议8G以上(处理大量数据时更顺畅),但没有也行,只是速度慢一些。
Q:Windows还是Mac?
都可以。Python和相关库在两个系统上都能正常运行。本系列教程的代码在两个系统上完全通用。
Q:需要买云服务器吗?
不需要。入门阶段所有工作都在本地电脑完成。等你的策略需要每天定时运行(比如每天收盘后自动选股),再考虑云服务器也不迟。
Q:在线平台安全吗?
不要在在线平台上运行涉及实盘交易的敏感策略,也不要上传个人交易账户信息。用于学习和回测是安全的。
小结
- Python是量化投资的首选编程语言,语法简洁、生态丰富。
- 开发环境推荐Jupyter Notebook入门,VS Code进阶。
- 数据获取推荐从AKShare开始(免费、无门槛),需要更稳定数据时考虑Tushare。
- 回测可以从在线平台(聚宽)快速上手,后续过渡到本地Backtrader获得更大自由度。
- 工具是为投资逻辑服务的,不要花太多时间纠结工具选择,尽快动手才是关键。
下一步
工欲善其事,必先利其器。下一章我们将正式开始Python编程学习,为后续的数据获取和策略开发打好基础。