什么量化回测产品能自动计算手续费和滑点并支持多品种

企业微信

哪些量化回测产品能自动计算手续费和滑点

做量化回测,最怕回测赚钱实盘亏钱。很多新手第一次跑回测,看到年化收益50%就兴奋得不行,结果一上实盘,手续费和滑点直接把利润吃光。问题出在哪?回测时没把交易成本算进去。

手续费和滑点是两个隐形杀手。手续费是交易所和券商收的过路费,股票有印花税、过户费、佣金,期货有交易所手续费和期货公司加收部分。滑点是下单价格和实际成交价格的差距,流动性差的品种滑点能大到离谱。回测产品如果不支持这两项,回测结果就是自欺欺人。

能自动计算手续费和滑点的产品,市面上主流的有几类。

Backtrader

开源Python框架,股票期货都能回测。手续费通过setcommission设置,支持按比例、按固定金额、按百分比加固定值等多种模式。滑点通过slippage参数控制,可以按百分比或固定值设置。

什么量化回测产品能自动计算手续费和滑点并支持多品种


import backtrader as bt

cerebro = bt.Cerebro()

cerebro.broker.setcommission(commission=0.001)  # 0.1%手续费

cerebro.broker.set_slippage_perc(0.0005)  # 0.05%滑点

股票和期货的区别在于手续费结构不同,Backtrader允许自定义CommissionInfo类,期货可以按手数收固定手续费,股票按成交金额比例收。

vn.py

国内开源量化平台,对接国内期货公司CTP接口和股票接口。回测模块支持手续费和滑点设置,期货按手数收手续费,股票按金额比例收。滑点可以按固定跳数设置,比如设置1跳滑点,螺纹钢一跳10元,回测时每笔成交自动加减1跳。

vn.py的回测引擎会记录每笔交易的详细成本,回测结束后能看到总手续费和总滑点对收益的侵蚀程度。这对期货策略尤其重要,日内高频策略手续费占比可能超过30%。

Zipline

Quantopian开源的回测框架,股票回测为主,支持手续费和滑点模型。通过set_commission和set_slippage设置。Zipline的滑点模型有固定滑点、成交量比例滑点等,比较贴近真实市场。期货支持较弱,国内品种需要自己对接数据。

QuantConnect本地模式

支持股票、期货、外汇、期权多品种回测。手续费模型内置了多家券商和交易所的费率表,滑点模型支持固定值、百分比、成交量加权等多种方式。回测结果会单独列出总手续费和总滑点金额。

支持多品种回测的产品怎么选

多品种回测的核心难点在于不同品种的交易规则不同。股票T+1、期货T+0,股票有涨跌停限制、期货有保证金和强平机制,手续费结构也不一样。回测产品要能分别处理这些规则。

Backtrader通过不同的数据源和CommissionInfo类来区分品种。给每个数据源单独设置手续费模型,股票用按比例收费的CommissionInfo,期货用按手数收费的CommissionInfo。滑点也可以针对不同品种单独设置。

vn.py在国内期货多品种回测上更有优势。螺纹钢、铁矿石、豆粕、白糖这些品种的手续费和保证金参数可以直接从CTP接口读取,回测时自动应用。股票回测需要额外配置,但基本框架是通的。

QuantConnect的多品种支持最全面,股票、期货、期权、外汇都能放在同一个回测里跑,组合策略回测很方便。缺点是国内品种数据需要自己导入,手续费模型也要自己按国内规则调整。

本地运行和结果可复现为什么重要

云端回测平台方便,但有两个硬伤。第一是数据安全,策略逻辑上传到别人服务器,总归不放心。第二是结果可复现性,平台更新一次回测引擎,同样的策略跑出来的结果可能就变了。

本地运行的产品里,Backtrader和vn.py都是纯本地框架,数据在自己电脑上,回测引擎版本自己控制,结果可复现。QuantConnect有本地模式,装个LEAN引擎就能在本地跑,但配置稍复杂。

结果可复现还依赖随机种子固定。Backtrader的滑点模型如果有随机成分,需要设置随机种子。vn.py的回测引擎默认是确定性的,同样参数跑两次结果一致。

回测报告里必须看的三项成本数据

回测跑完,别只看年化收益和最大回撤。翻到交易明细,看三个数:总手续费、总滑点、成本占利润比例。

总手续费除以总交易次数,得到平均每笔手续费。股票万三佣金加千一印花税,一笔十万的交易成本约130元。期货螺纹钢一手手续费约4元,日内平仓免收平今仓手续费的话成本减半。

总滑点金额除以总成交金额,得到平均滑点率。流动性好的品种滑点率在0.01%以内,小品种能到0.1%以上。

成本占利润比例超过30%的策略要警惕。回测利润100万,手续费滑点吃掉30万,实盘稍微有点偏差就变亏损。日内策略这个比例更高,必须把成本算准。

选哪个产品看你的实际需求

纯股票策略、Python熟手,Backtrader够用,社区大、教程多、坑都被人踩过了。

国内期货为主、想对接实盘,vn.py更顺手,CTP接口现成的,回测完直接切实盘模拟。

多品种组合、有海外品种需求,QuantConnect本地模式功能最全,但要接受配置复杂度。

只做股票、想要简单上手,Zipline的API设计干净,pip install就能跑,缺点是维护不活跃。

没有哪个产品是完美的。Backtrader期货细节要自己调,vn.py股票支持弱一些,QuantConnect国内数据要自己搞。先把一个产品跑通,把手续费和滑点算准,比换来换去强。回测成本算不准,换十个平台也没用。

转载请注明出处:https://www.lianghuajiaoyi.top/wenzhang/lianghua-huice-shouxufei-huadian-1208.html