1. 先聊清楚:为什么做量化交易要把“交易产品”单独拎出来讲
我见过太多刚接触量化的人,上来就找策略代码,python量化交易策略代码一抓一大把,回测曲线漂亮得吓人,结果一上实盘就水土不服。问题往往不在策略逻辑本身,而是从一开始就没想清楚自己做的是哪个市场的量化。股票、期货、期权、外汇、加密货币,虽然都叫量化交易,但底层机制、数据特征、交易规则完全是另一套逻辑。用做股票的思路去做期货,或者拿期货的杠杆逻辑去套期权,基本是开局就输了一半。
量化交易入门到进阶这条路上,最容易被忽略但又最关键的一步,就是“交易产品”的分类认知。交易产品决定了你能用什么策略、承担什么风险、需要多少资金、回测要处理什么细节,甚至决定了你一天盯盘的时间。
这篇文章就专门拆解量化交易分类中最基础的维度——交易产品。我会把主流交易产品的特性、适合的策略类型、实操中绕不开的坑全部过一遍,并结合常见的热门方向(股票、期货、期权、加密货币、指数、债券)给出选择建议。适合所有刚入门量化、或者已经写了几个策略但对产品选择没体系认知的朋友,把这部分补上,你后面写代码、调参数、上实盘都会少踩很多坑。
2. 交易产品分类的核心逻辑:先看机制,再看收益
2.1 为什么按“交易机制”分类比按“资产类别”分类更重要
大多数人习惯把交易产品分成股票、期货、期权、外汇、加密货币这种资产类别,这本身没错,但对量化交易来说,更重要的是交易机制层面的差异。因为在量化系统里,策略信号只是其中一环,信号的执行、仓位管理、风险控制,全部要建立在交易机制之上。
我建议从五个维度拆解任何一个交易产品:
- 多空机制:能不能做空。做空是融券还是直接卖出,这对策略的对称性影响巨大。股票在A股做空成本高、门槛高,期货天然多空对等,期权更是有四种基础头寸。
- 杠杆与保证金:杠杆是双刃剑。期货和外汇自带杠杆,股票融资融券杠杆有限,现货加密货币基本没有杠杆(合约才有)。杠杆决定了资金利用率和爆仓风险。
- 交易时间:连续交易还是分时段竞价,隔夜跳空的风险有多大,全球市场联动如何。加密货币7x24小时交易,对程序化系统的时间处理要求完全不同。
- 流动性结构:是订单簿驱动还是做市商报价驱动,盘口深度如何,大单冲击成本大不大。高频策略和低频策略对流动性的敏感度完全不一样。
- 结算与交割规则:有没有涨跌停,是T+0还是T+1,有没有到期日(期货、期权),结算价怎么算。这些规则直接决定策略的可行性。
拿A股股票来说,T+1和涨跌停限制意味着你没法做高频日内反转,隔夜风险也必须重视。而加密货币现货是T+0、无涨跌停、7x24小时,策略逻辑和风控止损频率就必须完全换一套。这不是哪个产品更好,而是机制决定了你能玩什么、不能玩什么。
2.2 分类的另一个角度:你赚的是什么钱
交易产品分类还有一种很实用的方法,就是按策略挣钱的来源分。说白了,量化策略在任何一个产品上,赚的都是三类钱:
- 趋势的钱:靠价格趋势方向获利,典型的是CTA(商品交易顾问)趋势策略,在期货、加密货币上很常见。
- 波动率的钱:靠波动率变化和波动率定价偏差获利,典型的是期权波动率交易、跨式组合(Straddle),也可以在股票上做波动率选股。
- 微观结构的钱:靠盘口挂单、订单流、价格微小错位获利,典型的是高频做市、跨所套利、期现套利。
当你把产品分类和赚钱来源分类结合起来,选择就会清晰很多:你想做趋势,期货和加密货币是主战场,因为可以做空且波动大,趋势够长;你想做波动率,期权和可转债有天然的波动率属性;你想做微观结构,流动性好的期货主力合约、加密货币永续合约、美股的中大盘股票更合适,A股因为T+1和印花税,高频微观结构策略空间很小。
这个角度很重要,因为它决定了你学什么、开发什么样的python量化交易策略代码,而不仅仅是选一个“看起来热门的市场”。
3. 主流交易产品逐个拆解:特性、玩法与避坑点
3.1 股票:容量大、门槛低,但规则限制最多
股票量化是大部分人入门的第一个选择,原因是数据公开、资料多、券商接口相对成熟,A股经历这么多年发展,个人量化研究环境也好了很多。
A股股票量化的核心特性可以概括为:单边做多为主,做空受限,T+1交易,有涨跌停。这意味着选股类策略(多因子选股、行业轮动)是主流,量化对冲则需要依赖股指期货。对于个人玩家,股票量化的大部分精力要花在因子研究、组合优化和防止过拟合上,交易执行端的可操作性反而不大。
实操中必须注意几点:
- 前复权与后复权数据:分红送股会导致价格跳变,如果不复权直接算收益,回测结果会严重失真。一般用后复权做回测,用前复权看实时信号,两者的换算逻辑要搞清楚。
- 停牌与涨跌停:回测时如果不处理停牌,策略可能在你根本买不到的日子里“买到了”。涨跌停同理,一字板买不进也卖不掉,这个撮合约束必须加进回测引擎。
- T+1约束:当天买入的仓位当天不能卖,很多回测框架默认T+0,A股策略必须强制加入“当日买入不可卖出”的约束,否则回测收益会虚高。
- 手续费与印花税:A股卖出收印花税(目前是0.05%),加上佣金、过户费,对高频调仓策略影响非常大。年换手率10倍以上的策略,交易成本能吃掉好几个点的收益。
股票量化适合资金量不大或刚入门的玩家,因为单笔交易金额小、风险相对可控,而且可以慢慢积累因子研究经验。但要把预期放低,A股主观和量化玩家都很多,超额收益越来越难做。
3.2 期货:多空对等、自带杠杆,趋势和套利的好战场
期货是我个人非常推荐研究量子化的产品,因为它的规则设计非常“干净”:多空完全对等,T+0交易,保证金制度带来天然杠杆,没有涨跌停(部分品种有涨跌停板但有扩板机制),交易品种覆盖商品和金融期货,数据频率从tick到分钟、日线都很完整。
期货量化的主流方向集中在两块:
- 趋势跟踪(CTA):用均线、通道突破、波动率突破等策略,吃单边行情。期货的趋势比股票长,因为市场参与者中有大量套保盘,他们的交易目的不是投机,这也给趋势策略提供了对手盘。
- 套利策略:跨期套利、跨品种套利、期现套利。这类策略收益稳定、回撤小,但对执行速度、价差数据质量要求高。期现套利需要同时处理期货和现货两条腿,还要考虑交割月、资金成本。
期货实操中最大的坑是主力合约换月。同一品种在不同月份有不同合约,流动性集中在主力合约上,换月时价格可能跳变。回测时如果用不复权的主力连续数据,跳空和移仓成本会被忽略。正确的做法是用“红绿K线”或者自定义的换月续接规则处理主力连续数据,并且在回测中模拟移仓成本。
另一个坑是保证金与强平。杠杆会让回撤被放大,4倍杠杆就是4倍波动,10倍杠杆一个反向涨停你就没了。设计仓位时一定要把保证金占用和强平线算进去,而不是只看盈亏百分比。我见过太多人回测年化50%,实盘加了五倍杠杆后一个月就爆仓,根子不在策略,在仓位管理。
3.3 期权:非线性收益、波动率交易,门槛高但值得啃
期权是交易产品分类里最特别的一个。股票和期货是线性收益,价格的涨跌直接对应盈亏;期权是非线性收益,权利金价格受标的资产价格、行权价、剩余时间、隐含波动率、利率等多个因素影响。这意味着期权的定价模型、风险参数(希腊字母)本身就是量化交易的一个独立研究方向。
期权量化主要有几种玩法:
- 波动率交易:卖出高波动率、买入低波动率,做波动率回归。这是机构比较主流的玩法,需要实时计算隐含波动率和历史波动率。
- 组合策略:备兑(Covered Call)、保护性看跌(Protective Put)、跨式/宽跨式(Straddle/Strangle)、牛市/熊市价差(Bull/Bear Spread)等,通过组合构建特定风险收益结构。
- 套利策略:期权的平价公式(Put-Call Parity)、盒式价差(Box Spread)、波动率曲面套利等,这类策略对执行速度和定价精度要求极高。
期权实操中最大的问题是数据复杂。每一个行权价、每一个到期日都是一条独立的数据序列,整个期权链数据量巨大,而且期权数据的历史质量普遍比股票、期货差。如果你没有干净的期权链数据,回测结果很难可信。另一个问题是流动性分化严重:平值附近的期权流动性好,深度实值或虚值期权买卖价差极大,回测时如果用中间价成交,实盘一算滑点亏到哭。
我的建议是:期权适合有一定期货或股票量化基础后再进入。它不是“更快亏钱”的工具,而是一个需要更精细风控的产品。但如果能啃下来,期权策略的容量和Alpha来源会宽很多。
3.4 加密货币:7x24小时、高波动,量化练习的“极限训练场”
加密货币是近年很热门的方向,特别是永续合约和现货,对个人量化玩家非常友好:API开放程度高、数据免费、7x24小时交易、没有涨跌停、T+0,甚至可以做高频。很多python量化交易策略代码的开源项目都是基于加密货币市场的,比如freqtrade、ccxt这类框架。
加密货币量化的优点是迭代速度快、数据丰富(从tick到资金费率、未平仓量都有),新手可以快速跑通一个完整的研究->回测->模拟->实盘链路。缺点是市场深度不稳定、极端行情多、交易所之间价格差异大,而且加密市场7x24小时交易,意味着你的程序必须处理跨时区的连续运行和异常恢复。
实操中要特别注意的问题:
- 资金费率与永续合约:永续合约没有到期日,但通过资金费率锚定现货价格。资金费率可能是正的、负的、高企的,持仓成本不可忽略。策略如果长期持仓,资金费率必须算进总成本。
- 滑点模型:加密市场的盘口深度变化极快,回测时要用tick级数据或者至少考虑盘口深度,否则实盘成交价会远差于回测。
- 交易所安全与API限制:每个交易所的下单频率、额度限制不同,密钥权限要最小化,避免API密钥泄露导致资金损失。
加密货币适合作为量化技术的“训练场”,因为你想试的很多先进策略(高频做市、跨所套利、资金费率套利)都能在这里跑通,而且成本低、速度快。但它不适合作为唯一的收入来源,毕竟市场波动剧烈、规则还经常变(比如极端行情下交易所暂停提现),风控和资本保全的优先级永远最高。
3.5 指数与ETF:省心之选,适合长期趋势和组合策略
指数本身不是一个可以直接交易的“产品”,但跟踪指数的ETF、指数期货、指数期权是可以交易的。之所以单独提出来,是因为很多人忽视了指数的量化价值。
指数和ETF做量化的优势:
- 无个股雷:不用怕黑天鹅事件,比如财务造假、突然停牌。
- 流动性好:主流指数的ETF(沪深300ETF、中证500ETF、创业板ETF)成交量大,冲击成本低。
- T+0或T+1结合:A股ETF部分品种可以T+0(跨境ETF、债券ETF),但大部分股票ETF还是T+1,需要留意规则。
- 天然适合轮动策略:行业ETF轮动、宽基指数择时、大小盘风格轮动,这些都是经典的量化策略。
指数ETF的行情数据干净、连续,没有股票那种复杂的复权问题(ETF分红也有,但处理简单得多),非常适合新手跑通一个完整的量化流程。而且资金门槛低,几百块就能买一手,不像期货期权几十万才能开仓。
3.6 债券与可转债:低波动、容量大,容易被忽略的另类产品
债券量化在国内个人玩家中很小众,但可转债这两年的关注度明显上升。可转债有一个极好的特性:下有保底、上不封顶(在正股不违约的前提下),而且T+0交易、没有涨跌停幅度限制(但有临时停牌机制),对量化策略来说是一个很灵活的工具。
可转债的量化玩法主要有两类:
- 双低策略:同时考虑转债价格和转股溢价率,选出“价格低、溢价低”的转债,做组合轮动。这个策略在A股历史上表现非常稳,容量也不小。
- 套利策略:转股套利、回售套利、下修博弈等。这类策略对规则细节要求极高,需要仔细研究可转债的条款。
债券(纯债)量化在国内更适合机构玩家,因为银行间市场的数据和个人可交易标的都有限。个人如果想把债券纳入量化,通常是通过债券ETF或者国债期货来实现。国债期货属于金融期货,与商品期货在交易机制上类似,但受利率和宏观经济数据影响较大,需要额外的宏观因子模型。
4. 怎么选出属于你的“第一战场”:资金、性格、时间三要素
4.1 按资金量和个人条件对号入座
很多人问我:“我是新手,只有几万块,适合做什么?”我的回答通常是:A股股票、可转债、加密货币现货最适合起步;期货和期权因为杠杆和保证金规则,资金量太少反而容易爆仓,建议先模拟盘。
不同资金量下的选择建议:
- 5万以下:A股股票/ETF、可转债、加密货币现货。这个量级最重要的是“活下来”和“学东西”,不要加杠杆,不要碰期权卖方(保证金要求高、风险巨大)。
- 5万到50万:可以尝试期货趋势策略(选保证金低的品种,如螺纹钢、甲醇、豆粕等),也可以做ETF轮动、股指期货模拟盘。加密货币可以开始研究永续合约,但仓位控制要严格。
- 50万以上:可以开股指期货(一手上证50股指期货保证金大概十几万)、做期权组合策略、做期货跨期套利。这个资金量,策略容错空间会大很多,但相应的,风控和回撤管理变得更重要。
4.2 按你每天能投入的时间选品
量化交易不是说写了策略就完事,实盘后还要监控、调参、处理异常。你每天能花多少时间,直接决定了适合哪个市场:
- 每天只有半小时到一小时:适合A股日线级别策略,每天收盘后跑一次信号,挂单第二天执行。加密货币可以用限价单和条件单自动执行,减少盯盘。
- 每天有两三个小时:可以考虑期货和加密货币,策略周期可以缩短到分钟级,也能有时间做复盘和优化。
- 几乎全天都能盯(或服务器自动运行):可以考虑高频、套利、做市类策略,但这些对系统稳定性要求高,开发工作量也大。
我自己踩过的一个坑:一开始看加密货币7x24小时交易,觉得“随时都能赚钱”,结果每天睡觉前都要看一次行情,生活节奏完全被打乱。后来我强制自己只跑固定周期的策略,把“随时看盘”这只手砍掉,收益反而更稳了。量化交易的核心是让系统替你工作,而不是把你变成盯盘机器。
5. 实操过程:从选定产品到跑通一条完整回测链路
5.1 数据准备:不同产品的数据源和清洗要点
选定交易产品之后,第一件事就是搞定数据。不同的产品,数据源和数据清洗的复杂度差异很大。
- 股票:用akshare、tushare、baostock都能拿到A股数据,注意区分未复权、前复权、后复权,考虑分红送转对回测的影响。
- 期货:常用天勤、掘金、聚宽等平台,或者自己对接CTP获取实时行情。历史数据要注意主力连续合约的处理,一般用成交量或持仓量最大的合约作为主力,换月时要做拼接处理。
- 期权:数据源比较少,可用券商接口或Level2数据服务商(如恒生、宽睿)。期权数据必须有完整的合约信息表(行权价、到期日、合约乘数、保证金率),否则无法回测。
- 加密货币:ccxt可以直接拉币安、OKX的历史K线和tick数据,也可以下载Binance官方提供的公开数据集,数据量大,本地存储和网络带宽要有准备。
提示:数据清洗中有一个通用原则——宁可少一个数据点,不能用错一个数据点。错误数据进入回测,会给你一个“假Alpha”,实盘会让你毫无防备地亏钱。
5.2 回测环境搭建:撮合模型、滑点、手续费一个都不能少
很多开源框架(backtrader、vectorbt、zipline)都能跑回测,但框架只是工具,真正决定回测可信度的是你对市场机制的处理。以期货趋势策略为例,要正确设置:
- 开平仓方向:期货可以双向开仓,成交价格用的是对手价还是排队价,对回测结果影响很大。保守起见,回测中用对手价并加固定滑点,比如每跳1个tick。
- 手续费:期货手续费按手数或比例收,不同品种不一样。螺纹钢是万分之几,但平今仓免收或翻倍,规则完全不同。建议按真实手续费表逐品种配置。
- 保证金比例:回测中要把保证金占用算进资金曲线,否则资金使用率会失真。默认用交易所保证金率即可,实盘券商会加收一定比例。
- 涨跌停和停牌:股票回测必须处理涨跌停无法成交;期货要注意涨跌停板次日可能出现连续停板,无法平仓的极端风险。
5.3 从回测到模拟盘:先让策略“空跑”两周
回测通过只是第一步,我强烈建议所有策略在上实盘以前,先跑至少两周模拟盘(paper trading)。模拟盘的价值不是检验收益,而是检验两件事:
- 程序的稳定性:是否会断线、重连、重复下单、数据延迟。
- 信号的实时性:实盘行情下信号生成是否及时,是否会因为数据差异导致信号偏移。
模拟盘如果两周下来没有系统性错误,再考虑用最小仓位上实盘。不要一上来就重仓,先用总资金的5%到10%跑一周,确认实际滑点和成交结果与回测没有巨大偏离,再逐步加仓。
6. 常见问题与排查技巧实录
6.1 期货主力连续合约的“换月跳价”问题
表现:策略回测中某一日期净值突然大幅跳变,但当天没有任何开平仓信号。
原因分析:主力合约换月时,新旧合约价格之间存在价差,如果不做连续性处理,收益率计算会错误吸收这个价差。
排查与解决:检查换月日期附近的数据是否包含两个合约的价格跳跃;处理方式有两种,一是用“指数”数据(比如文华财经、Wind的期货指数),二是自己按成交量切换主力合约,并在换月日强制平仓或做移仓换月成本模拟。
6.2 期权回测中隐含波动率数据缺失或明显异常
表现:期权Chain中部分行权价在某个时段的隐含波动率是0或负值。
原因分析:流动性很差或者数据商没有计算该合约的隐含波动率。
排查与解决:不要直接用缺失数据,用相邻行权价、相邻到期日的隐含波动率做插值,或者用该合约最近一周的隐含波动率均值填补。另外要剔除距离到期日小于5天的数据,此时时间价值衰减极快,任何微小价格误差都会导致IV计算严重失真。
6.3 加密货币策略在实盘中的滑点远大于回测
表现:回测中每笔交易亏损0.1%,实盘同样的策略每笔亏损0.3%。
原因分析:回测时用的是K线收盘价或者简单中间价,而实盘盘口较薄,大单直接吃掉多个档位。另外加密货币流动性存在明显的“时段效应”,亚洲凌晨盘口深度远低于欧美时段。
排查与解决:回测时使用对手价+固定滑点(比如永续合约每笔加0.02%到0.05%),或者在tick数据上做真实模拟撮合。实盘下单时设置最大滑点保护,超过预设值立即撤单。
6.4 A股股票回测收益高,实盘却亏损
表现:回测年化30%,实盘一个季度亏5%。
原因分析:这是最高频的“新人病”。常见原因包括:未考虑T+1约束、未处理跌停无法卖出、因子未来函数(用了当天收盘后的信息去做当天买入决策的路标)、手续费印花税设置过低。还有一个隐蔽原因是用前复权数据回测但策略依赖股价绝对值判断买卖点。
排查与解决:逐项核对回测假设,特别是“信号产生时间”和“成交时间”的先后关系。用延迟一个周期的方式(今天收盘算信号,明天开盘成交)重新回测,如果收益大幅下降,说明策略可能存在前视偏差。
6.5 多产品同时跑策略的系统资源占用过高
表现:同时跑股票、期货、加密货币三个策略,服务器内存和带宽吃紧,行情偶尔断流。
原因分析:行情数据订阅重复、数据库写入频繁、回测和实盘共用资源。
排查与解决:架构上把数据采集、信号计算、交易执行分成独立进程;用消息队列(如ZeroMQ、Kafka)解耦;历史数据入库用列式存储(如ClickHouse、DuckDB)提高查询效率。先解决“数据不丢、信号不断”的问题,再去优化策略参数。
7. 一点个人体会:产品选择比你想象中更重要
做量化这几年,我越来越觉得,大部分人亏钱不是因为策略不够聪明,而是从一开始就选错了“战场”。在一个规则限制过多的市场里硬做高频,在一个流动性极差的产品里做套利,在一个自己每天根本没时间盯的市场里做短线,都相当于逆风打牌。反过来,选一个符合自己资金量、时间、性格、风险偏好的交易产品,哪怕策略简单一点,长期坚持下去,效果往往比东一榔头西一棒子好得多。
我个人实际操作的体会是:先花两周时间把不同产品的交易规则、数据源、回测注意事项整理清楚,再动手写代码,这个时间投入会换来后面数倍的回报。千万别嫌这些“分类知识”枯燥,它是你从入门走向成熟的必修课。真到了写python量化交易策略代码的那一步,你会发现,策略逻辑反而是最简单的一环,最难的全都在产品细节和风控纪律上。
最后再分享一个我自己的习惯:每个季度都会重新审视一次“交易产品”的适配性。市场在变,规则在变,资金量在变,去年适合你的产品,今年可能已经不合适了。保持对产品分类的敏感度,比盲目追求新策略、新指标更重要。这篇量化交易产品分类的内容就写到这里,如果你正准备把某个策略落地到实盘,建议先把上面第5章的检查清单过一遍再动手。