📑 查看全课大纲(第 17 / 38 节)
- 1.课程介绍与学习目标
- 2.量化交易的发展
- 3.主观投资与量化投资的关系
- 4.认识一个量化策略(1)
- 5.认识一个量化策略(2)
- 6.理工生做量化的优势
- 7.量化交易系统的基本架构
- 8.必要的交易基础知识及参考资料
- 9.上节课思考题及本节课内容介绍
- 10.技术指标简介
- 11.基于MACD的交易信号开发(1)
- 12.基于MACD的交易信号开发(2)
- 13.基于RSI的交易信号开发
- 14.基于BOLL的交易信号开发
- 15.基于分形的交易信号开发
- 16.总结及下节课预告
- 17.开发环境安装
- 18.获取指数和个股历史行情数据
- 19.修复行情数据中的问题
- 20.抓取财报数据、数据定时更新
- 21.实现低PE股票池(1)
- 22.实现低PE股票池(2)
- 23.实现低PE策略的回测(1)
- 24.实现低PE策略的回测(2)
- 25.风险控制综述
- 26.风险控制中的止盈止损
- 27.仓位管理的工程实现
- 28.完整策略介绍-基础策略
- 29.策略的分步优化
- 30.策略评价指标(1)
- 31.策略评价指标(2)
- 32.如何评价策略
- 33.如何优化策略
- 34.tick数据的意义
- 35.tick数据的介绍及使用
- 36.Hans123策略
- 37.经典买入三法策略
- 38.量化系统的完整研发和系统搭建
开发环境安装
约 30 分钟
📺 正在播放小象官方高清录播(支持倍速与清晰度调节)
量化回测系统全流程架构与开发环境准备
小象实战讲义 · 初阶量化交易:策略编写及系统搭建 本讲义仅用于编程与量化方法教学,不构成任何投资建议。
在完成了前两章关于量化交易基础通识与四大经典信号系统的学习后,我们正式进入从零搭建轻量级量化回测验证系统的工程实战阶段。一个工业级的量化交易系统并非简单的代码片段,而是一个涵盖数据工程(行情/财报爬取与清洗)、因子选股(低估值股票池构建)、择时信号引擎、事件驱动撮合回测以及资产净值诊断的完整软件闭环。
本讲首先系统梳理量化回测系统的标准工业架构,明确本章的核心战略目标——构建一个经典的低 PE 价值选股 + 10 日均线择时回测引擎;随后详细指导 Python 3.12 虚拟环境、MongoDB 非关系型数据库、PyMongo 驱动与 Tushare 财经数据接口的标准化搭建与环境体检。
💡 核心导读
- 量化回测系统的五大标准子系统:
- 第三章核心实战策略目标定义:
- 股票池(Stock Pool):
- 估值区间:(剔除 EPS 为负的亏损暴雷股,剔除估值泡沫股);
- 排序与容量:按 PE 升序排列,剔除停牌与退市股,选取前 100 只低估值龙头;
- 调仓周期:7 个交易日定期换仓(平衡交易摩擦成本与估值有效性);
- 择时规则(Timing Execution):
- 买入条件:候选股 K 线上穿 10 日均线(金叉入场);
- 卖出条件:K 线下穿 10 日均线(死叉离场)或该标的在定期调仓日被移出低 PE 股票池。
- 股票池(Stock Pool):
- 为什么选择 MongoDB 作为量化时序数据库?
- 金融行情与财报数据具有字段多变、动态拓展(Schema-free)的特点;
- 文档型数据库支持天然的 JSON 结构映射,高并发批量 Upsert 写入性能极高,非常适合存储海量日 K 线与财务报表。
┌─────────────────────────────────────────────────────────────┐
│ 量化交易系统全流程架构图 │
└──────────────────────────────┬──────────────────────────────┘
│
┌─────────────────────────────┼─────────────────────────────┐
▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ 1. 数据工程层 │ │ 2. 策略选股层 │ │ 3. 回测执行层 │
├──────────────────┤ ├──────────────────┤ ├──────────────────┤
│ • Tushare 行情 │ │ • 计算动态 PE │ │ • 10日均线择时 │
│ • 东财财报爬虫 │ │ • 0 < PE < 30 │ │ • 7日定期调仓 │
│ • 异常缺口修复 │ │ • 排序取前 100 只│ │ • 资金净值曲线 │
└──────────────────┘ └──────────────────┘ └──────────────────┘一、量化回测系统的核心工程链路
一个完备的量化交易系统遵循以下严密的数据流水线:
① 数据采集:通过 Tushare 获取历史日 K(不复权 daily / 后复权 daily_hfq),爬取东财财务报表
② 数据治理:处理停牌数据、修复除权除息缺口、处理缺失值与异常成交量
③ 因子选股:计算个股动态 PE,按设定阈值与排序规则生成动态候选股票池
④ 信号注入:将第二章开发的择时信号(如 MA10、MACD、RSI)接入股票池标的
⑤ 交易撮合:模拟账户现金与持仓变动,计算交易佣金、印花税与滑点
⑥ 业绩评估:生成资产净值时序(Equity Curve),计算年化收益率、最大回撤与夏普比率二、开发环境与核心组件配置
| 组件名称 | 核心用途 | 安装与配置要点 |
|---|---|---|
| Python 3.12 | 核心量化开发语言 | 推荐使用虚拟环境(venv 或 uv)保持依赖隔离 |
| MongoDB | 高性能文档型数据库 | 默认端口 27017,数据目录需配置 dbpath |
| PyMongo | Python 操作 MongoDB 官方库 | 支持 UpdateOne 批量操作与复合索引创建 |
| Tushare / Pandas | 财经数据获取与矩阵计算 | 提供专业级金融时间序列矢量化运算支持 |
📝 动手练一练
下面我们用 Python 编写一段 量化开发环境与核心依赖库健康度体检脚本,自动检测本地环境版本,并对量化数据库核心集合结构进行预热校验:
import sys
import pandas as pd
import numpy as np
def check_quant_dev_environment():
"""
量化回测系统开发环境健康度与核心依赖库检测
"""
env_info = {
"Python_Version": sys.version.split()[0],
"Pandas_Version": pd.__version__,
"NumPy_Version": np.__version__,
"OS_Platform": sys.platform
}
# 模拟数据持久化容器与核心集合结构校验
mock_db = {
"collections": ["daily", "daily_hfq", "finance_report", "stock_pool", "order_records"],
"status": "Connected (Local Ready)"
}
print("================ 量化交易系统开发环境体检报告 ================")
for k, v in env_info.items():
print(f" - {k:<18}: {v}")
print("------------------------------------------------------------")
print(f"数据库引擎状态 : {mock_db['status']}")
print(f"初始化核心集合列表 : {', '.join(mock_db['collections'])}")
print("============================================================")
if __name__ == "__main__":
check_quant_dev_environment()运行结果输出:
================ 量化交易系统开发环境体检报告 ================
- Python_Version : 3.12.10
- Pandas_Version : 3.0.3
- NumPy_Version : 2.5.1
- OS_Platform : win32
------------------------------------------------------------
数据库引擎状态 : Connected (Local Ready)
初始化核心集合列表 : daily, daily_hfq, finance_report, stock_pool, order_records
============================================================本章小结
- 清晰系统全局架构:掌握从数据采集、因子过滤、信号判定到模拟撮合与归因的全链路闭环。
- 明确低估值策略逻辑:以 锁定低估值标的,以前 100 只分散组合风险,以 7 日调仓平衡摩擦成本。
- 夯实开发环境底座:确保 Python 3.12 与 MongoDB 数据集合初始化就绪,为后续模块开发铺平道路。
📋 行动清单 (Action Checklist)
- 运行本讲环境检测脚本,核验本地 Python 与 Pandas/NumPy 运行环境正常;
- 确认 MongoDB 数据库服务在本地已正常启动(默认监听 27017 端口);
- 预习下一讲,学习如何通过 Tushare 批量抓取指数与个股历史行情,并深入理解不复权与后复权的区别。
— 小象教研组
配套学习资源与课件
🎁 免费学习资源
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问