跳转至

第一次选量化平台,该看什么

平台把数据、编程环境和回测工具放到了同一个入口里。它能省下准备工具的时间,研究中的每一个判断仍然要由人说清楚。

适合谁听过 SuperMind、聚宽、米筐、BigQuant、PandaAI,却不知道它们分别能做什么的读者
前置知识知道数据、信号、订单、成交和回测账本的含义
建议用时约 70 分钟,另留一小时观察一个平台
读完所得选定一个适合当前阶段的入口,写完第一张平台核对卡

小岚第一次打开量化网站

小岚已经在纸上算过均线,也能看懂几行 pandas 代码。她想找一个网页,把历史行情放进去,再看看策略怎样下单。搜索结果却比预想中复杂。一个网站强调因子研究,另一个提供 Python 回测,还有的平台把智能助手放在首页。每家都能展示一条净值曲线,菜单名字却不一样。

她最初想比较哪家“最强”。这个问题很快卡住了。有人只想在浏览器里跑一段教学代码,有人已经有本地数据,需要自由修改回测器;还有人想观察 AI 怎样把一句想法整理成研究步骤。三个人需要的工具不同,放在一张总榜上没有多少意义。

选平台要从眼前的任务开始。第一次体验的任务可以很小,只验证一条五日均线与二十日均线的关系,并打印信号、订单和成交时间。任务写清以后,平台提供了什么、缺了什么,反而容易看见。

先选一件准备亲手核对的小事,再选能够完成这件事的工具。平台名称排在任务后面。

平台替研究者准备了哪些东西

日常所说的“量化平台”,通常把几种工具放在一起。初学者容易被菜单数量吓住,其实每个菜单都能放回量化流程中的一个位置。

数据服务负责提供价格、成交、财务、指数成分等资料。数据表能打开,只说明文件到了手中。分红和拆股会改变名义价格,为了让前后价格保持可比而作的调整叫作复权。收盘价采用哪种复权、成交量使用什么单位、财报何时对市场公开,还要查看字段说明。

研究环境是写代码、查看表格和画图的地方。很多平台提供 Jupyter Notebook。Notebook 可以把代码分成一小格一小格运行,每格下方立即显示表格或图形,很适合探索数据。它的方便也带来一个小麻烦。若代码格没有按顺序运行,屏幕上的变量可能来自较早的一次操作,所以保存研究时还要从头顺序运行一遍。

回测引擎负责让策略沿历史日期向前走。它在每天或每根 K 线到来时调用策略,接收订单,按照设定规则模拟成交,再更新现金和持仓。引擎判断订单能否成交、使用什么价格成交,这一步叫作撮合。回测还常在参考价与成交价之间预留一段差异,用它近似价差、排队和价格移动造成的损耗,这段差异叫作滑点。平台中的“回测成功”表示这套程序完成了运行,不等于交易假设已经合理。

模拟交易让策略跟随正在发生的市场,但订单进入的是模拟账户。它能检查数据能否按时到达、任务会不会中断、订单状态能否正确更新。模拟成交仍可能比真实市场简单,尤其是在排队、冲击成本和大额成交方面。

平台文档里还会看到因子、API 和 SDK。因子是按照同一规则为资产计算的可比较数值,例如过去二十日收益或盈利收益率。API 可以理解为一组约定好的调用方法,例如“取最近二十日收盘价”或“提交一笔目标仓位订单”。SDK 是平台提供的一套本地开发工具,通常包含 API、安装包和示例,让代码可以在自己的电脑或服务器中使用。记住它们的工作即可,不必背英文全称。

flowchart LR
    accTitle: 量化平台在一次研究中承担的工作
    accDescr: 研究者提出问题,平台提供数据和研究环境,回测引擎处理订单与账本,模拟交易继续检查实时运行;每一步都要留下可以人工核对的证据

    question["写清研究问题"] --> data["数据服务<br/>价格、财务、股票池"]
    data --> notebook["研究环境<br/>代码、表格、图形"]
    notebook --> engine["回测引擎<br/>事件、订单、成交、账本"]
    engine --> report["结果明细<br/>持仓、费用、净值"]
    report --> paper["模拟交易<br/>跟随真实市场时钟"]
    data -.字段说明.-> audit["人工核对"]
    engine -.成交规则.-> audit
    report -.逐日证据.-> audit
    paper -.日志与对账.-> audit

图中几项能力可以出现在同一个网站,也可以由不同工具完成。网页平台省去了安装和数据接入,本地 Python 则给研究者更多控制。学习初期不必两边一起搭,先在一个入口里把数据、信号、订单、成交和账本走通。

五个常见平台分别适合观察什么

下面列出的功能来自各平台当前公开的官方主页或文档。产品会调整菜单、权限和收费方式,注册或付费以前仍要打开链接核对。Easy Quant 与这些平台没有商业合作,也不依据平台展示的策略成绩作推荐。

平台 公开资料中的主要能力 第一次进去可以做什么 最容易漏看的说明
同花顺 SuperMind 策略研究、因子研究、回测、模拟、研究环境与本地工具 找一段最小 Python 策略,标出取数、形成信号和下单发生的位置 实时查询与历史回测接口的差别,撮合、费用和可用权限
聚宽 JoinQuant 数据、研究、回测和模拟交易环境 阅读新手示例,找出初始化函数、定时调用、历史取数和订单函数 研究环境与回测环境可用接口,价格口径和成交条件
米筐 Ricequant 网页研究、策略回测、模拟交易、因子研究与 RQAlpha 等本地工具 对照在线平台与本地框架,查看交易明细和每日持仓 动态复权、撮合方式、滑点模型与不同账户规则
BigQuant 数据、因子、机器学习和交易模块 跟着一个教学任务观察数据怎样进入因子,再进入模型或策略 字段可得时间、训练切分、表达式含义和交易引擎假设
PandaAI 数据、AI 研究流程、策略模板、图表和执行衔接 输入一张已经写好的研究卡,观察系统补了哪些字段和参数 自动选定的股票池、窗口、标签、费用、测试期和成交规则

这张表只回答“在哪里开始看”。平台真正是否适合自己,还要走一遍具体任务。下面把每个入口展开一点。

SuperMind

SuperMind 的公开页面把策略研究、因子研究、回测、模拟交易、研究环境和本地 SDK 放在同一套产品中。它的 AI Lab 文档还介绍了因子研究助手、策略代码生成和平台交互。对初学者来说,这些功能最有价值的地方,是能在同一个页面里看见一段策略从代码走到回测报告。

第一次使用时可以暂时绕开复杂策略库,找一个只交易教学标的的均线例子。先找到初始化位置,看看程序何时取历史数据,再找到下单函数。回测完成后打开成交明细,检查信号形成的日期是否早于成交日期。官方 AI Lab 文档也提醒生成代码可能出错,因此助手给出的源码仍要逐行读,回测参数仍要人工确认。SuperMind AI Lab 说明可以用来核对当前入口和功能。

聚宽

聚宽常见示例采用事件驱动写法。所谓事件驱动,是指程序在“开始运行”“新的交易日到来”“固定时间到了”等事件发生时调用对应函数。它很像一份值班表,开盘前做准备,交易时段检查信号,收盘后记录结果。

读聚宽示例时,不要急着背函数名。把代码分成四栏更有用,哪一段只运行一次,哪一段按日或按分钟运行,历史数据取到了哪个时点,订单进入市场以后怎样处理。平台接口会更新,部分页面在某些地区也可能无法直接访问;遇到这种情况,应回到聚宽官方 API 文档核对当前说明,不用依靠多年前的转载代码猜测。

米筐

米筐公开文档同时介绍网页量化平台和 RQAlpha 等本地工具。网页入口适合先看完整流程,本地工具适合以后固定环境、编写测试或处理私有数据。两条路线共用很多研究概念,却不一定使用完全相同的配置和数据权限。

米筐的回测结果页面会展示交易详情、每日持仓、账户信息和日志。这些明细比总收益更适合学习。任意挑一笔交易,沿着信号、订单、成交、费用和日末持仓向前核对。官方回测文档还分别说明股票、期货、期权等品种的账户和下单规则,说明“同一个回测按钮”背后可以有不同市场机制。米筐回测说明是这项练习的入口。

BigQuant

BigQuant 把数据、因子、机器学习和交易模块放在一套研究路径里。它适合已经读到本手册机器学习部分的读者,用来观察一张原始表怎样变成特征,再怎样交给模型。模块连得很顺时,人容易忘记中间每一步仍然有时间边界。

使用现成因子时,应打开字段说明,查清它在历史哪个时点可见。使用模型模板时,应找到训练、验证和测试的日期边界。平台生成的模块图可以帮助理解数据流,研究记录仍要写下每项输入的含义与版本。BigQuant 官方文档列出了当前公开模块。

PandaAI

PandaAI 官方页面把产品称为一站式 AI 量化研究平台,公开介绍中包括数据服务、AI 研究流程、策略模板、图表和执行衔接。它适合用来观察 AI 怎样拆解任务。这里的前提是研究者手中已经有一个写得足够清楚的问题。

例如,不要只输入“帮我做动量策略”。可以先写明研究 A 股日频数据,二十日收益只使用当日收盘以前的信息,信号在下一交易日可成交时段执行,同时设置费用、股票池和独立测试期。系统返回结果以后,把新出现的每个选择圈出来。某个窗口、过滤条件或回测区间若不是自己写入的,就要查明它从哪里来。首页中的策略模板和历史指标适合用来学习页面结构,不能充当未来效果的证据。

用同一条小规则比较平台

随意打开几个复杂模板,最后只能比较页面长什么样。使用同一条简单规则,才能看到数据和回测定义的差异。

这次规则只用两条移动平均线。每天收盘后,计算最近五个交易日与最近二十个交易日的平均收盘价。五日均线高于二十日均线,说明近期价格平均水平高于较长时期,程序在下一个允许成交的时点尝试持有;反过来则退出。移动平均只能描述过去价格的相对位置,这里不讨论它是否赚钱。

为什么要等下一个时点?因为当日收盘价完全确定时,收盘交易已经结束。若回测一边用完整收盘价判断,一边又按同一个收盘价买入,就把先后顺序倒过来了。不同平台可能允许选择下一日开盘、下一根 K 线或其他撮合方式。只要规则写明并与程序一致,就能继续比较。

完成回测后,先填写下面七项。每一项都可能让相同代码得到不同结果。

要核对的地方 具体查看什么 它为什么会改变结果
价格 收盘价是否复权,复权方式是什么 分红送转附近的价格路径和均线会变化
股票池 历史每天有哪些资产可以被选 用今天名单回填过去会漏掉退市公司
时间 信号使用到哪一刻,订单最早何时进入市场 时间颠倒会让策略提前获得价格
撮合 订单按哪个价格成交,无法成交怎样处理 参考价碰到过,不代表订单一定成交
费用 佣金、税费、价差、滑点和最低费用怎样设置 换手较高时,小成本会不断累积
证据 能否导出特征、信号、订单、成交和每日持仓 只有净值曲线时,很难找到错误发生在哪天
版本 数据更新时间、引擎版本和策略版本能否保存 平台升级后,相同代码可能读到不同数据或规则

撮合、滑点和手续费会从不同位置改变账本。手续费通常按照成交金额或笔数收取,撮合先决定订单有没有成交,滑点再让模拟成交价离开理想参考价。把三者分别记录,成本变化才容易追到具体交易。

两个平台跑出不同结果时怎样查

假设平台甲把周三收盘信号安排到周四开盘成交,平台乙允许在周三收盘成交。平台乙会多拿到周三收盘到周四开盘这一段变化。若这段恰好经常上涨,它的曲线自然更高。差异来自成交时间,暂时还不能判断哪段代码写错了。

再看价格。平台甲使用随着回测日期逐步调整的复权口径,平台乙使用今天下载后一次处理的前复权价格。两边在公司分红、拆股附近可能出现不同均线。此时要把同一股票的原始价格、复权因子和均线逐日导出,从第一处不同的日期开始查。

比较顺序很重要。先对数据和时间,再对订单和费用,最后才对总收益。直接盯着两条净值曲线,很容易在几千行策略代码里找一个根本不存在的错误。

一条实用的排查顺序

先找两边第一天出现差异的位置。对照那一天的原始价格、均线、信号、订单、成交、费用和日末持仓。第一处差异解释清楚以后,再继续看后面的日期。

第一次平台体验怎样安排

给这次体验留一小时就够。前二十分钟只读官方文档,找到数据字段、回测事件顺序、成交规则、费用设置和结果明细。看到不懂的函数名先记下来,不复制社区里的长策略。

中间二十分钟运行一条最小规则。可以只用一个教学标的和很短的日期区间,计算三日与五日均线,再打印每天的价格、均线、信号、订单时点和模拟成交。日期短一点,反而方便拿纸笔核对第一条信号。

最后二十分钟只改一个条件。把成交推迟一个时点,或把费用从零改成一个明显值,观察第一笔交易和最终账本怎样变化。若页面只有总指标,试着寻找成交明细和每日持仓;确实无法导出,也要把这个限制写进平台卡。

平台名称
今天完成的小任务
读过的官方说明链接
使用的数据与价格口径
信号形成时间
订单与成交时间
费用和无法成交的处理
能够导出的明细
仍然没有查清的问题

这张卡不需要写得漂亮。它的用途是让下次打开平台时,还能说清上次的数字从哪里来。

按当前学习阶段选择入口

完全不想安装软件,可以先选一个网页平台。第一周只完成均线小实验,不同时学习五套接口。等事件顺序和账本能够讲清,再去看因子库与机器学习模板。

已经学完 Python 入门,希望控制每一步,可以在本地用 pandas 制作一份小账本,再把网页平台当作对照。本地代码方便打印中间变量,平台方便观察事件驱动接口。两边不一致时,前面的七项核对表会给出排查方向。

准备使用 AI 研究功能,可以选择 SuperMind AI Lab、PandaAI 或其他能展示生成过程的工具。先交给它一张研究卡,请它列出自己补充的默认条件,再让它一次只完成一个小任务。数据来源、市场规则和成交假设都要回到官方资料与程序输出核验。

容易弄错的地方

常见判断 漏掉了什么 可以怎样改
代码运行完成,策略就没有问题 程序可能按错误时间顺利运行 打印信号、订单和成交时间线
模板曲线很好,可以直接复制 数据范围、尝试次数和交易成本没有交代 把模板当阅读材料,从小样本重新核对
功能越多,越适合第一次学习 新菜单会遮住数据到订单的主线 只完成一个小任务,再增加下一项能力
换个平台,结果理应完全一样 数据口径、股票池和撮合规则可能不同 从第一处不同日期开始逐项对照
AI 已经生成完整策略,参数就有依据 系统可能替人补了窗口、市场和测试期 圈出所有新增决定,逐项确认来源

一分钟自测

一条均线策略在平台中运行成功,并画出向上的净值曲线。此时至少还要打开哪些明细,才能检查它有没有使用收盘后才知道的信号按同一收盘价成交?

查看答案 至少需要逐日价格、均线或信号、订单时间、成交时间和成交价。把第一条信号所在日期单独展开,确认信号形成以后,订单才进入市场。每日持仓和现金账本还能检查成交以前账户是否已经提前获得收益。

本页术语

词语 可以先这样理解
研究环境 写代码、看表格和画图的工作区
Jupyter Notebook 把代码分格运行并在下方显示结果的交互文档
API 程序向平台取数据或提交操作时遵守的调用约定
SDK 平台为本地开发提供的一套安装包、接口和示例
回测引擎 按历史时间处理事件、订单、成交和账本的程序
事件驱动 交易日、K 线或固定时点到来时调用对应函数的运行方式
撮合 按订单条件和市场信息判断能否成交、以何种价格成交
平台迁移 把同一研究规则搬到另一套数据和回测环境

课后小练习

1 认清功能

研究环境和回测引擎分别负责什么?

提示一个地方用来写和观察,另一个程序负责让历史事件逐步发生。
答案研究环境用于编写代码、查看数据和画图。回测引擎按历史时间调用策略,处理订单、成交、现金和持仓。两者可以放在同一平台,职责仍然不同。

2 检查时间

周三收盘后才得到完整均线信号,平台却按周三收盘价买入。问题出在哪里?

提示把“价格确定”和“订单进入市场”排成先后顺序。
答案完整收盘价确定时,当天收盘交易已经结束。若策略此前没有提交有效订单,就不能倒回同一个收盘价成交。教学回测可以安排到周四开盘或下一个明确可成交时点。

3 寻找证据

两个平台的总收益不同,第一步应比较哪些内容?

提示先找第一处出现差异的日期。
答案从第一处差异日期开始,对照原始价格与复权、股票池、信号、订单、成交、费用和日末持仓。先解释底层记录,暂时不要围绕最终净值猜原因。

4 动手观察

任选一个平台,用一个教学标的运行三日与五日均线规则,填写本页的平台卡。

提示日期区间可以很短。先确保自己能用纸笔核对第一条信号和第一笔订单。
答案这道题没有统一平台答案。合格记录应包含官方说明链接、价格口径、信号时间、成交时间、费用、可导出的明细和至少一项仍未确认的问题。

5 开放思考

网页平台替你准备好数据以后,为什么仍然值得保留一份自己的小样本账本?

评价要点可以讨论人工手算、第一处差异、平台版本变化、接口迁移与中间证据。回答不必排斥平台,重点是说明小账本怎样帮助核对平台结果。
读完以后
现在可以先按任务筛选平台,再用价格、股票池、时间、撮合、费用、证据和版本七项核对结果。准备开始主线课程,可返回[第 0 课](../handbook/00-how-to-use.md);已经读到 AI 研究部分,可继续看[第 31 课](../handbook/12-ai-first-strategy.md)。