企业微信

个人做量化交易,先想清楚你赚的是谁的钱

很多人一上来就问“用什么软件”“学Python要多久”,这就像还没搞清楚目的地就研究怎么踩油门。量化交易的本质是用程序把一套有正期望的规则重复执行,个人玩家最该先问自己的是:这个策略赚的是谁的钱?

市场里赚钱的路子粗分三类。赚趋势的钱,靠的是价格朝一个方向持续走,你跟着上车;赚波动的钱,靠的是价格来回晃,你高抛低吸;赚定价错误的钱,靠的是两个相关品种价差偏离太远,你做回归。期货市场里前两类最常见,尤其是商品期货的CTA策略,个人完全可以用日线级别数据跑起来。

赚趋势的钱对应的是均线突破、通道突破这类逻辑。价格创出二十日新高就做多,跌破二十日新低就做空,规则简单到用Excel都能回测。赚波动的钱对应的是布林带回归、RSI超买超卖这类逻辑,核心是赌价格不会一直单边跑。赚定价错误的钱对个人门槛最高,需要同时跟踪多个合约的价差关系,还得处理交割规则,新手容易踩坑。

个人做量化交易需要哪些硬条件才能真的赚到钱

数据关:免费数据够用,但你要会洗

个人做量化最大的误区是觉得数据越贵越好。做日线级别的期货策略,交易所每天公布的日行情数据完全够用,主力连续合约的收盘价、最高价、最低价、成交量、持仓量这五个字段就能搭出大部分趋势策略。

问题出在“主力连续”这四个字上。期货合约有到期日,不同月份合约切换时价格会跳空,直接拿主连价格算收益率会失真。正确的做法是用复权后的连续价格,或者干脆用指数合约。另一个坑是涨跌停板上的价格不能成交,回测时如果信号出现在封板价位,这笔单子要标记为无法执行。

数据清洗的活看着琐碎,但决定了回测结果可不可信。缺失值用前值填充还是直接剔除,异常值用几倍标准差过滤,这些选择会影响策略参数。个人玩家最好养成习惯:每拿到一份新数据,先画价格走势图,再算每日收益率分布,把明显不合理的点挑出来单独看。

回测关:过拟合是散户头号杀手

回测赚钱不难,难的是回测赚的钱实盘也能赚到。个人最容易犯的错是拿同一段历史数据反复调参数,调出一组“完美”数字就以为找到了圣杯。这叫曲线拟合,实盘一跑就现原形。

防过拟合有个笨办法但很管用:把历史数据切成两段,前一段用来调参数,后一段只跑一次看结果。如果后一段的表现和前一段差太多,说明参数是拟合出来的,不是真规律。更严格的做法是滚动回测,每过一段时间就用新数据重新优化参数,看策略在参数漂移下还能不能活。

另一个容易忽略的点是交易成本。回测里如果只算手续费不算滑点,结果会虚高一大截。期货品种的滑点跟流动性直接相关,螺纹钢、豆粕这种活跃品种滑点小,冷门品种挂单可能半天成交不了。个人回测时至少要把跳一跳的滑点加进去,一跳就是一个最小变动价位,算下来一年能吃掉不少利润。

执行关:程序化交易的门槛比你想的低

很多人以为量化交易必须自己写交易接口,其实现在券商和期货公司提供的程序化接口已经很成熟。CTP接口是期货市场的主流,个人通过期货公司开通程序化交易权限后,用Python的vnpy或者backtrader这类开源框架就能对接。

真正卡住人的是交易权限和资金门槛。商品期货程序化交易没有硬性的资金门槛,但期货公司会做适当性评估,要求你通过测试、有交易经验。金融期货比如股指期货的程序化交易门槛高一些,需要五十万验资和考试。个人先从商品期货入手最现实,一手螺纹钢保证金几千块,一手豆粕保证金两三千块,试错成本低。

执行环节还有个隐形门槛是稳定性。家里的网络断线、电脑死机、半夜断电,这些事在实盘里都会遇到。正规做法是租一台云服务器跑策略,配好断线重连和异常报警。策略逻辑里要写好“如果订单没成交怎么办”“如果持仓和信号对不上怎么办”,这些兜底代码比策略本身还重要。

期货CTA策略的实战框架

个人做量化从期货CTA起步最合适,品种少、数据规整、多空双向都能做。一个完整的日线趋势策略框架长这样:


# 伪代码示意,不涉及具体平台接口

for each bar:

    if close > highest(close, 20):

        target_position = 1  # 做多一手

    elif close < lowest(close, 20):

        target_position = -1 # 做空一手

    else:

        target_position = 0  # 空仓

    if target_position != current_position:

        send_order(target_position - current_position)

这个框架简单到粗糙,但包含了量化策略的全部核心要素:信号生成、仓位管理、订单执行。个人要做的不是把框架搞复杂,而是把每个环节的细节打磨到位。信号生成部分要考虑用收盘价还是盘中价触发,仓位管理部分要考虑固定手数还是按波动率调整手数,订单执行部分要考虑用市价单还是限价单。

按波动率调整仓位是个人容易忽略但效果明显的细节。同样做多一手螺纹钢,波动大的时候风险敞口比波动小的时候大得多。用ATR(平均真实波幅)来算仓位,波动大时少开几手,波动小时多开几手,资金曲线会平滑很多。

实盘之后要盯什么

策略上线只是开始,实盘跑起来之后每天要看的不是盈亏数字,而是三样东西:成交回报和信号是否一致、滑点有没有超出预期、持仓和策略逻辑是否匹配。

成交回报对不上信号,说明执行环节有问题,可能是网络延迟、可能是报单被拒、可能是价格到了但没成交。滑点超出回测假设,说明品种流动性变差了或者你的单子对市场产生了冲击。持仓和策略逻辑不匹配,说明有漏单或者重复报单,这种错误不及时发现会放大亏损。

量化交易不是一劳永逸的生意,策略会失效,市场结构会变。个人玩家要保持对策略逻辑的理解,知道它在什么行情下会亏钱、为什么亏钱。回撤超过历史最大回撤时,该停就停,别拿“策略没坏只是市场风格变了”骗自己。