普通人从零开始做A股量化:权限、回测与实盘避坑指南
最近,越来越多的程序员和普通投资者开始对量化交易产生浓厚兴趣。用代码进行股票交易听起来非常有吸引力:无需时刻盯盘、摒弃主观情绪、支持策略回测以及交易自动化,甚至能实现自动风控。然而,真正上手后你会发现,量化交易绝非“写个脚本就能稳定盈利”,它本质上是一项庞大的软件工程。从数据获取、策略编写、历史回测、风险控制到交易接口和异常监控,任何一个环节出差错,都会导致实际结果与预期大相径庭。
本文主要面向初学者,旨在梳理量化炒股的基础概念、所需工具、回测验证方法、实盘权限开通,以及 PTrade 和 QMT 平台的差异与实盘注意事项。
> **声明**:本文不构成任何投资建议,仅为技术与流程的入门整理。股市有风险,实盘需谨慎。
### 一、 什么是量化炒股?
简而言之,量化炒股就是**将交易逻辑转化为明确的规则,并利用程序完成选股、择时、下单、风控和复盘**。
传统人工炒股往往依赖看新闻、K线、研报、小道消息以及个人经验来判断买卖点。而量化交易则高度强调规则化。例如:
**买入条件:**
1. 市值大于 50 亿;
2. 最近 20 日均线向上;
3. 当前价格突破最近 60 日高点;
4. 成交额大于过去 20 日均值;
5. 未被 ST 且未停牌。
**卖出条件:**
1. 跌破 20 日均线;
2. 或亏损超过 8%;
3. 或持仓超过 20 天。
上述条件均可编写为代码,程序每日自动扫描全市场股票,生成交易信号甚至直接执行下单。
因此,量化交易并不神秘,其核心流程为:`数据 → 规则 → 验证 → 执行 → 复盘`。
### 二、 量化交易系统的构成
一个完整的量化交易系统通常包含以下五个层级:
#### 1. 数据层
数据是量化的基础。常见数据包括:股票日线/分钟线数据、实时行情、财务数据、指数成分股、行业分类、涨跌停与停牌数据、复权分红数据、ST 状态,以及北向资金等扩展数据。
* **免费/开源数据**:`AkShare`、`TuShare`、`Baostock`
* **商业数据**:Wind、Choice、同花顺 iFinD
* **平台内置数据**:聚宽、米筐、掘金量化、BigQuant
* **券商终端**:PTrade、QMT 等
*入门建议优先使用 `AkShare`、`TuShare` 或聚宽等工具,不建议一开始就自建庞大的数据系统。*
#### 2. 策略层
策略即买卖规则,常见的类型包括:趋势策略(均线突破、动量)、均值回归、多因子选股、ETF 轮动、网格策略、统计套利,以及对延迟要求极高的高频/日内策略。
*新手切勿一开始就盲目追求深度学习或复杂的机器学习模型,因为金融数据噪声大且样本少,极易造成过拟合。简单、可解释且能长期坚持的策略往往更适合普通人。*
#### 3. 回测层
回测是指让策略在历史数据中运行,以评估其过往表现。一个有效的回测至少需要解答:历史收益率、最大回撤、胜率、盈亏比、换手率是否合理;扣除手续费和滑点后是否依然盈利;以及在牛熊不同市场环境下的表现。
*注意:回测的目的是验证交易假设的合理性,而非单纯为了追求漂亮的收益曲线。*
#### 4. 交易执行层
若策略通过了回测和模拟盘验证,便可进入实盘阶段。执行层负责获取实时行情、判断信号、下单/撤单、查询成交、管理持仓与仓位,并记录日志和处理异常。
常见实盘工具包括:券商 PTrade、券商 QMT/MiniQMT、`vn.py`、掘金量化,或自建交易系统。
#### 5. 风控层
**风控的重要性甚至凌驾于策略之上**,它决定了你能否在市场中长久生存。常见风控指标包括:单票/单行业最大仓位、单日最大亏损、总账户最大回撤限制,以及对涨跌停、停牌、ST 股票、低流动性股票的过滤与异常保护。
### 三、 量化交易的优势
1. **纪律性强**:程序不受恐惧与贪婪等情绪干扰,严格执行既定规则。
2. **处理能力强**:可以每天自动扫描并分析全市场几千只股票。
3. **可历史回测**:通过历史数据验证逻辑,而非仅凭模糊的主观经验。
4. **执行迅速**:满足条件时自动毫秒级下单,无需人工盯盘。
5. **易于复盘**:每笔交易均有日志记录,方便分析执行偏差并持续迭代。
### 四、 常用工具与平台
#### 1. 编程语言
主流语言为 Python,这得益于其成熟的数据科学生态,如 `pandas`、`numpy`、`scikit-learn`、`statsmodels`、`TA-Lib`、`backtrader`、`qlib`、`akshare` 等。
#### 2. 回测平台
* **新手友好型**:聚宽、米筐、掘金量化、BigQuant 等。这些平台提供了完整的数据、回测环境和丰富的示例,能帮助新手避开诸多数据坑。
* **自建框架型**:`Backtrader`、`RQAlpha`、Microsoft `Qlib`。若搭配 `AkShare`/`TuShare` 获取数据,适合喜欢掌控底层细节的程序员。
#### 3. 实盘交易平台
目前 A 股个人量化实盘最常见的是 PTrade 和 QMT。
**PTrade(平台托管):**
* **特点**:策略上传至券商服务器运行,适合日频或分钟级策略。
* **优点**:免去了维护本地服务器、网络断线和重启的烦恼,对新手极为友好,参考代码和教程较多。
* **缺点**:代码需上传至平台侧,存在一定的隐私/安全边界,灵活性不及自建系统。
**QMT(迅投 QMT / 本地执行):**
* **特点**:支持 Python,策略在本地客户端运行,可通过 `XtQuant` 接口进行行情和交易。
* **优点**:策略源码、模型和参数完全保留在本地机器,安全性高,可扩展性强,方便对接自身的数据库和监控环境。
* **缺点**:需自行维护运行环境的稳定性(如网络波动、断电重启),部署和异常处理的工程量较大,实盘参考资料相对较少。
### 五、 实盘权限怎么开?
实盘开户必须区分两个概念:**交易品种权限** 与 **量化交易工具权限**。
#### 1. 交易品种权限
这属于交易所的适当性要求:
* **创业板/可转债**:通常要求前 20 个交易日日均资产不低于 10 万,且参与证券交易满 24 个月。
* **科创板/北交所/港股通**:通常要求前 20 个交易日日均资产不低于 50 万,且参与证券交易满 24 个月。
* **融资融券**:交易经验满半年,且近 20 个交易日日均证券类资产不低于 50 万。
#### 2. 量化交易工具权限(PTrade / QMT)
这是券商自身的业务政策,**门槛因券商、营业部甚至客户经理而异**。并非所有的股票账户都能直接调用 API 自动下单。
*实际情况:*
* 部分券商要求 30 万、50 万甚至 100 万以上的资金门槛。
* 国金证券目前是 QMT 开通门槛相对较低的券商之一。例如,作者本人的实盘账号是在国金证券放入 10 万资金,留存 20 个交易日后成功开通 QMT 权限。(注:政策随时可能变动,具体请咨询客户经理)。
### 六、 历史回测的关键步骤
1. **明确策略规则**:切勿先调参数,应先梳理好进出场逻辑、股票池剔除规则及仓位管理限制。
2. **准备历史数据**:包含日线行情、复权价格、涨跌停/停牌信息等。
3. **设置交易成本**:必须加入佣金、印花税、过户费、滑点及冲击成本,否则结果会严重失真。
4. **运行回测并分析结果**:不要只看总收益率。应重点关注:年化收益、最大回撤、夏普比率、胜率、盈亏比、换手率,以及在不同市场风格下的表现。
### 七、 如何验证策略的有效性?
量化无法绝对保证策略未来有效,但能通过科学验证降低失效和过拟合的概率:
1. **样本内外测试**:将历史数据分为开发集和验证集(如用 2015-2020 开发,2021-2023 验证)。
2. **滚动回测**:测试多个时间窗口,观察策略的跨周期稳定性。
3. **参数敏感性测试**:好的策略在参数微调时依然有效。如果只有某个“神奇参数”收益极高,大概率是过拟合。
4. **多市场环境验证**:确保策略经历过牛市、熊市、大盘/小盘风格、宽松/紧缩流动性的洗礼。
5. **模拟盘验证**:严格按照“回测 → 模拟盘 → 小资金实盘 → 逐步加资金”的路径执行。
### 八、 回测中的常见陷阱
1. **未来函数**:例如在当天的决策中使用了当晚或次日才公布的财报数据,或使用了未来才知道的指数成分股。
2. **幸存者偏差**:股票池若只保留现有存续股票,会忽略已退市或暴雷的股票,导致回测收益虚高。
3. **忽略涨跌停与流动性**:实盘中涨停板往往买不进,跌停板卖不出;低流动性股票若下大单会产生严重的冲击成本。
4. **过度优化**:若为了追求完美的历史收益曲线而不断强行拟合参数,策略在实盘中必然崩溃。
### 九、 回测与实盘为何存在巨大差异?
1. **成交价格**:回测多以固定价格成交,而实盘面临排队、滑点、部分成交和网络延迟。
2. **数据差异**:实盘可能遇到行情数据缺失、跳点及除权除息处理不一致的情况。
3. **心理心态**:实盘出现 20% 的浮亏时,绝大多数人会手抖甚至违背纪律手动止损。
4. **市场环境与资金容量变化**:过去的拥挤赛道可能失效;随着资金量增大,对市场流动性的冲击也会放大。
### 十、 实盘交易的注意事项
1. **必须小资金起步**:不要一开始就重仓。
2. **严控风险**:设定绝对止损线、最大仓位限制,并具备一键停止和重复下单保护机制。
3. **异常处理**:实盘中会遇到断网、掉线、接口异常、股票停牌等意外,必须做好程序的容错处理。
4. **记录日志**:妥善记录信号、委托、资金及风控触发原因,以备排查。
5. **减少手动干预**:频繁的人为介入会破坏量化的纪律性。
6. **遵守监管合规**:2024 年起,证监会及交易所加强了对程序化交易的管理(先报告,后交易)。严禁高频报撤单扰乱市场或使用非法接口。使用券商官方的 PTrade 或 QMT 是最合规的做法。
### 十一、 给新手的入门路线建议
1. **阶段一**:掌握 Python 数据分析及股票基础规则(手续费、涨跌停机制)。
2. **阶段二**:在平台上编写一个简单的策略(如双均线交叉、ETF 轮动)。
3. **阶段三**:进行多维度历史回测。
4. **阶段四**:投入模拟盘运行。
5. **阶段五**:开启小资金实盘,检验执行与心理承受力。
6. **阶段六**:持续复盘、优化策略并严格执行风控。
量化炒股本质上是**用数据和程序,将交易规则标准化、自动化和可验证化**。它的优势在于纪律、高效与科学验证,但依然存在过拟合、市场失效等风险。
请牢记:**回测不等于未来收益,量化也不等于稳赚不赔**。对于普通人而言,先保住本金,再去追求收益。
本文主要面向初学者,旨在梳理量化炒股的基础概念、所需工具、回测验证方法、实盘权限开通,以及 PTrade 和 QMT 平台的差异与实盘注意事项。
> **声明**:本文不构成任何投资建议,仅为技术与流程的入门整理。股市有风险,实盘需谨慎。
### 一、 什么是量化炒股?
简而言之,量化炒股就是**将交易逻辑转化为明确的规则,并利用程序完成选股、择时、下单、风控和复盘**。
传统人工炒股往往依赖看新闻、K线、研报、小道消息以及个人经验来判断买卖点。而量化交易则高度强调规则化。例如:
**买入条件:**
1. 市值大于 50 亿;
2. 最近 20 日均线向上;
3. 当前价格突破最近 60 日高点;
4. 成交额大于过去 20 日均值;
5. 未被 ST 且未停牌。
**卖出条件:**
1. 跌破 20 日均线;
2. 或亏损超过 8%;
3. 或持仓超过 20 天。
上述条件均可编写为代码,程序每日自动扫描全市场股票,生成交易信号甚至直接执行下单。
因此,量化交易并不神秘,其核心流程为:`数据 → 规则 → 验证 → 执行 → 复盘`。
### 二、 量化交易系统的构成
一个完整的量化交易系统通常包含以下五个层级:
#### 1. 数据层
数据是量化的基础。常见数据包括:股票日线/分钟线数据、实时行情、财务数据、指数成分股、行业分类、涨跌停与停牌数据、复权分红数据、ST 状态,以及北向资金等扩展数据。
* **免费/开源数据**:`AkShare`、`TuShare`、`Baostock`
* **商业数据**:Wind、Choice、同花顺 iFinD
* **平台内置数据**:聚宽、米筐、掘金量化、BigQuant
* **券商终端**:PTrade、QMT 等
*入门建议优先使用 `AkShare`、`TuShare` 或聚宽等工具,不建议一开始就自建庞大的数据系统。*
#### 2. 策略层
策略即买卖规则,常见的类型包括:趋势策略(均线突破、动量)、均值回归、多因子选股、ETF 轮动、网格策略、统计套利,以及对延迟要求极高的高频/日内策略。
*新手切勿一开始就盲目追求深度学习或复杂的机器学习模型,因为金融数据噪声大且样本少,极易造成过拟合。简单、可解释且能长期坚持的策略往往更适合普通人。*
#### 3. 回测层
回测是指让策略在历史数据中运行,以评估其过往表现。一个有效的回测至少需要解答:历史收益率、最大回撤、胜率、盈亏比、换手率是否合理;扣除手续费和滑点后是否依然盈利;以及在牛熊不同市场环境下的表现。
*注意:回测的目的是验证交易假设的合理性,而非单纯为了追求漂亮的收益曲线。*
#### 4. 交易执行层
若策略通过了回测和模拟盘验证,便可进入实盘阶段。执行层负责获取实时行情、判断信号、下单/撤单、查询成交、管理持仓与仓位,并记录日志和处理异常。
常见实盘工具包括:券商 PTrade、券商 QMT/MiniQMT、`vn.py`、掘金量化,或自建交易系统。
#### 5. 风控层
**风控的重要性甚至凌驾于策略之上**,它决定了你能否在市场中长久生存。常见风控指标包括:单票/单行业最大仓位、单日最大亏损、总账户最大回撤限制,以及对涨跌停、停牌、ST 股票、低流动性股票的过滤与异常保护。
### 三、 量化交易的优势
1. **纪律性强**:程序不受恐惧与贪婪等情绪干扰,严格执行既定规则。
2. **处理能力强**:可以每天自动扫描并分析全市场几千只股票。
3. **可历史回测**:通过历史数据验证逻辑,而非仅凭模糊的主观经验。
4. **执行迅速**:满足条件时自动毫秒级下单,无需人工盯盘。
5. **易于复盘**:每笔交易均有日志记录,方便分析执行偏差并持续迭代。
### 四、 常用工具与平台
#### 1. 编程语言
主流语言为 Python,这得益于其成熟的数据科学生态,如 `pandas`、`numpy`、`scikit-learn`、`statsmodels`、`TA-Lib`、`backtrader`、`qlib`、`akshare` 等。
#### 2. 回测平台
* **新手友好型**:聚宽、米筐、掘金量化、BigQuant 等。这些平台提供了完整的数据、回测环境和丰富的示例,能帮助新手避开诸多数据坑。
* **自建框架型**:`Backtrader`、`RQAlpha`、Microsoft `Qlib`。若搭配 `AkShare`/`TuShare` 获取数据,适合喜欢掌控底层细节的程序员。
#### 3. 实盘交易平台
目前 A 股个人量化实盘最常见的是 PTrade 和 QMT。
**PTrade(平台托管):**
* **特点**:策略上传至券商服务器运行,适合日频或分钟级策略。
* **优点**:免去了维护本地服务器、网络断线和重启的烦恼,对新手极为友好,参考代码和教程较多。
* **缺点**:代码需上传至平台侧,存在一定的隐私/安全边界,灵活性不及自建系统。
**QMT(迅投 QMT / 本地执行):**
* **特点**:支持 Python,策略在本地客户端运行,可通过 `XtQuant` 接口进行行情和交易。
* **优点**:策略源码、模型和参数完全保留在本地机器,安全性高,可扩展性强,方便对接自身的数据库和监控环境。
* **缺点**:需自行维护运行环境的稳定性(如网络波动、断电重启),部署和异常处理的工程量较大,实盘参考资料相对较少。
### 五、 实盘权限怎么开?
实盘开户必须区分两个概念:**交易品种权限** 与 **量化交易工具权限**。
#### 1. 交易品种权限
这属于交易所的适当性要求:
* **创业板/可转债**:通常要求前 20 个交易日日均资产不低于 10 万,且参与证券交易满 24 个月。
* **科创板/北交所/港股通**:通常要求前 20 个交易日日均资产不低于 50 万,且参与证券交易满 24 个月。
* **融资融券**:交易经验满半年,且近 20 个交易日日均证券类资产不低于 50 万。
#### 2. 量化交易工具权限(PTrade / QMT)
这是券商自身的业务政策,**门槛因券商、营业部甚至客户经理而异**。并非所有的股票账户都能直接调用 API 自动下单。
*实际情况:*
* 部分券商要求 30 万、50 万甚至 100 万以上的资金门槛。
* 国金证券目前是 QMT 开通门槛相对较低的券商之一。例如,作者本人的实盘账号是在国金证券放入 10 万资金,留存 20 个交易日后成功开通 QMT 权限。(注:政策随时可能变动,具体请咨询客户经理)。
### 六、 历史回测的关键步骤
1. **明确策略规则**:切勿先调参数,应先梳理好进出场逻辑、股票池剔除规则及仓位管理限制。
2. **准备历史数据**:包含日线行情、复权价格、涨跌停/停牌信息等。
3. **设置交易成本**:必须加入佣金、印花税、过户费、滑点及冲击成本,否则结果会严重失真。
4. **运行回测并分析结果**:不要只看总收益率。应重点关注:年化收益、最大回撤、夏普比率、胜率、盈亏比、换手率,以及在不同市场风格下的表现。
### 七、 如何验证策略的有效性?
量化无法绝对保证策略未来有效,但能通过科学验证降低失效和过拟合的概率:
1. **样本内外测试**:将历史数据分为开发集和验证集(如用 2015-2020 开发,2021-2023 验证)。
2. **滚动回测**:测试多个时间窗口,观察策略的跨周期稳定性。
3. **参数敏感性测试**:好的策略在参数微调时依然有效。如果只有某个“神奇参数”收益极高,大概率是过拟合。
4. **多市场环境验证**:确保策略经历过牛市、熊市、大盘/小盘风格、宽松/紧缩流动性的洗礼。
5. **模拟盘验证**:严格按照“回测 → 模拟盘 → 小资金实盘 → 逐步加资金”的路径执行。
### 八、 回测中的常见陷阱
1. **未来函数**:例如在当天的决策中使用了当晚或次日才公布的财报数据,或使用了未来才知道的指数成分股。
2. **幸存者偏差**:股票池若只保留现有存续股票,会忽略已退市或暴雷的股票,导致回测收益虚高。
3. **忽略涨跌停与流动性**:实盘中涨停板往往买不进,跌停板卖不出;低流动性股票若下大单会产生严重的冲击成本。
4. **过度优化**:若为了追求完美的历史收益曲线而不断强行拟合参数,策略在实盘中必然崩溃。
### 九、 回测与实盘为何存在巨大差异?
1. **成交价格**:回测多以固定价格成交,而实盘面临排队、滑点、部分成交和网络延迟。
2. **数据差异**:实盘可能遇到行情数据缺失、跳点及除权除息处理不一致的情况。
3. **心理心态**:实盘出现 20% 的浮亏时,绝大多数人会手抖甚至违背纪律手动止损。
4. **市场环境与资金容量变化**:过去的拥挤赛道可能失效;随着资金量增大,对市场流动性的冲击也会放大。
### 十、 实盘交易的注意事项
1. **必须小资金起步**:不要一开始就重仓。
2. **严控风险**:设定绝对止损线、最大仓位限制,并具备一键停止和重复下单保护机制。
3. **异常处理**:实盘中会遇到断网、掉线、接口异常、股票停牌等意外,必须做好程序的容错处理。
4. **记录日志**:妥善记录信号、委托、资金及风控触发原因,以备排查。
5. **减少手动干预**:频繁的人为介入会破坏量化的纪律性。
6. **遵守监管合规**:2024 年起,证监会及交易所加强了对程序化交易的管理(先报告,后交易)。严禁高频报撤单扰乱市场或使用非法接口。使用券商官方的 PTrade 或 QMT 是最合规的做法。
### 十一、 给新手的入门路线建议
1. **阶段一**:掌握 Python 数据分析及股票基础规则(手续费、涨跌停机制)。
2. **阶段二**:在平台上编写一个简单的策略(如双均线交叉、ETF 轮动)。
3. **阶段三**:进行多维度历史回测。
4. **阶段四**:投入模拟盘运行。
5. **阶段五**:开启小资金实盘,检验执行与心理承受力。
6. **阶段六**:持续复盘、优化策略并严格执行风控。
量化炒股本质上是**用数据和程序,将交易规则标准化、自动化和可验证化**。它的优势在于纪律、高效与科学验证,但依然存在过拟合、市场失效等风险。
请牢记:**回测不等于未来收益,量化也不等于稳赚不赔**。对于普通人而言,先保住本金,再去追求收益。
评论
暂无评论。