ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

gs-quant量化回测交易成本模型完全指南:5分钟搞懂回测收益为什么被滑点吃掉

gs-quant量化回测交易成本模型完全指南:5分钟搞懂回测收益为什么被滑点吃掉 gs-quant量化回测交易成本模型完全指南5分钟搞懂回测收益为什么被滑点吃掉【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant回测夏普2.5实盘掉到1.1第一嫌疑通常不是策略而是交易成本。gs-quant做量化回测的完整工具链里交易成本模型就是弥合回测与实盘差距的关键一环。这篇文章带你把市场冲击、冲击系数、订单拆分、批量回测这几件事一次讲透。先把回测的钱漏在哪儿找出来想象你在小盘股上一次性砸进大买单价格被你一口气买上去成交均价自然比收盘价差。这就是市场冲击。它有两个特点冲击大小和流动性反着来。日成交几个亿的股票买十万股不痛不痒日成交几百万的你这笔就是全天成交量。冲击躲不掉但可以稀释。把一笔大单拆成几笔小单、分摊到不同时段成交均价就会贴近市场价。所以回测建模的第一步就别再拿收盘价直接当成交价。执行引擎成交价到底是谁定的回测生命周期由 gs_quant/backtests/core.py 里的Backtest类管理而每笔订单提交后如何成交则由执行引擎说了算。gs_quant/backtests/execution_engine.py 中的SimulatedExecutionEngine流程很短submit_order把订单按预期成交时间排序进队列每个时点ping检查队首订单是否到期到期就生成FillEvent价格与数量都由订单对象自己给出。这意味着所谓自定义成本模型本质就是决定成交价从哪儿来。下面几种内置订单就是不同的答案。gs-quant内置订单类型四种滑点脾气各不同gs_quant/backtests/order.py 里给了现成的几类订单看它们各自怎么定价滑点差异一目了然OrderTWAP取时间窗内价格序列的平均值成交。这是最简单的订单拆分——窗口内的均价替代单点价格天然摊薄一次性冲击。核心逻辑就两行fixings data_handler.get_data_range(window.start, window.end, instrument, ValuationFixingType.PRICE) executed_price np.mean(fixings)OrderMarketOnClose指定日收盘价成交适合收盘再调仓的策略。OrderAtMarket指定时点的市价成交最接近实盘市价单。OrderCost特殊的现金订单用来把手续费、服务费直接记进回测不需要模拟真实交易直接扣账户。新手建议先用 TWAP 成本订单搭出基线再谈精细化冲击。 冲击系数怎么设按流动性校准上图来自项目里的股票交易优化材料逻辑很直白先预测当日流动性V再推三件事——市场冲击量级与成交量成反比、参与率上限、这笔交易一天内能不能做完。冲击系数要落成数字通用做法是在中间价上加修正项成交价 中间价 × (1 冲击系数 × 订单量 / 日均成交量)冲击系数是个尺度参数越大说明大单被惩罚得越狠。常见坑有三个别全资产共用一个系数。不同股票流动性差几个量级要分资产或分桶各自校准。系数要有数据背书。拿历史成交和当日成交量回归拟合0.01 到 0.05 可以当起点但必须换成自己校准的结果。用参与率约束比拍系数更实用单笔订单不超过日均成交量5%超了就强制拆单。 批量回测参数怎么选组合历史一长一口气跑完又慢又难对比。gs_quant/markets/portfolio_manager.py 的schedule_reports支持months_per_batch按月份切批历史报告分片运行再汇总。传 0 或负数会直接抛MqValueError报错。配置项作用参考值months_per_batch历史报告按月分片运行6即半年一片冲击系数按订单量/成交量放大成交价0.01–0.05需自行校准单笔参与率上限订单量占日均量的比例不超过5%超出强拆TWAP窗口长度单笔订单分摊成交的时间跨度数小时到1天批次大小是权衡切得细颗粒度好但开销大切得粗对比顺畅但难定位某段的问题。多数场景从半年一片起步即可。️ 自定义成本模型三个扩展点和常见坑gs-quant 预留了扩展位继承引擎SimulatedExecutionEngine的基类ExecutionEngine是个空壳意味着可以写自己的引擎整体接管成交逻辑。有流动性模型的话就按资产查冲击系数再出价。继承订单照OrderTWAP抄一份覆写_execution_price冲击修正、成交量加权、买卖价差都能塞进定价函数。用OrderCost记账佣金、清算费、资金成本统统建成本订单不动价格逻辑。常见坑清单用收盘价当成交价回测与实盘差一大截还不清楚原因冲击系数全资产共用一个数只建买入冲击卖单把价格砸下去同样存在漏掉手续费拿毛收益对比策略。更多回测用法可看 官方文档入口里面有从数据到回测的完整路径。【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表