ARTICLE DETAIL

资讯详情

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

量化求真06|一百万元能赚,一千万元还能赚吗?

量化求真06|一百万元能赚,一千万元还能赚吗? 前言把资金乘十之前假设一套策略用100万元回测扣完费用某年赚了12%。有人问如果拿1,000万元来做是不是就能赚120万元纸上计算只需要乘十。真实交易却要多问一步原先计划买10万元的股票现在可能需要买100万元。市场在我们想买的时间是否有人愿意卖出这么多如果只成交了其中一部分剩下的钱怎么办如果为了买到而付出更差的价格利润又会少多少第五篇讨论参数是否只在一个历史点上好看。到了第六篇我们暂时固定策略规则转而检查另一个常被净值曲线遮住的问题资金变大后策略还能否按原本的计划执行。第三篇已经给过容量审计的检查框架。这一篇把它做成一份可复核的研究方案从一笔订单开始走到多资金规模的完整重跑。文中数字均为手工教学算例不是平台实测。容量不是某个脱离成交假设的固定额度读到结论时必须能找回所用的资金规模、流动性限制和成本条件。目录前言把资金乘十之前01先看一笔买不完的订单02“有成交”不等于“买够了”03固定规则逐档放大资金04买不进去也可能让净值变好看05成交以后价格可能也变了06多大规模才算遇到边界07日频回测能证明到哪一步08写出一份读得懂的容量结论关于本文的研究口径参考资料01先看一笔买不完的订单仍以本系列的动量策略为例根据当时可得的价格和流动性信息选股按规则调仓在次日开盘附近模拟成交。股票选得对不对是一个问题计划买入的股票能否买到是另一个问题。看一笔手工算例。某股票前一日成交量和下单当日最终成交量都折算为100万股参考价格是每股10元因此全天成交额约1,000万元。策略希望买入10万股参考金额为100万元。假设本次模拟最多成交参考日成交量的1%按股数计算上限是1万股。模拟可成交股数上限 ⌊ min ⁡ ( V t − 1 , V t ) × p ⌋ \text{模拟可成交股数上限} \left\lfloor\min(V_{t-1},V_t)\times p\right\rfloor模拟可成交股数上限⌊min(Vt−1​,Vt​)×p⌋这里V t − 1 V_{t-1}Vt−1​是前一交易日成交量V t V_tVt​是下单日全天成交量p pp是参与率上限。式子先忽略此前同日同股票已成交数量、整手交易、账户现金和涨跌停等限制。平台实际执行时还会检查这些条件。按本例min ⁡ ( 100 万 , 100 万 ) × 1 % 1 万股 \min(100\text{万},100\text{万})\times1\%1\text{万股}min(100万,100万)×1%1万股。策略计划买10万股模拟成交1万股其余9万股没有按计划买到。折算到相同参考价格计划金额100万元完成金额10万元。图1手工算例。图中“全天成交量”和10元价格为教学假设不代表开盘真实可得流动性。这一笔交易还有一个时间上的限制下单开盘时我们不可能知道当天最终一共成交了多少股。模型用当天总量做事后约束不能把它解释成开盘前已经观察到的市场深度。这个边界后面还会展开。02“有成交”不等于“买够了”如果一张10万股的订单只成交1万股它仍然是一张“发生过成交”的订单。按“至少成交过一次的订单数 ÷ 总订单数”统计刚才这笔订单的订单成交率是100%。可投资者原本想完成的金额只有10%进了账户。为了把事情说清至少要并排看三个量。金额成交完成率 ∑ i q i f i l l P i r e f ∑ i q i p l a n P i r e f \text{金额成交完成率} \frac{\sum_i q^{\mathrm{fill}}_i P^{\mathrm{ref}}_i} {\sum_i q^{\mathrm{plan}}_i P^{\mathrm{ref}}_i}金额成交完成率∑i​qiplan​Piref​∑i​qifill​Piref​​其中q p l a n q^{\mathrm{plan}}qplan是原计划股数q f i l l q^{\mathrm{fill}}qfill是实际模拟成交股数P r e f P^{\mathrm{ref}}Pref是同一笔订单采用的参考价格。分子和分母用同一参考价格是为了让这个比例只衡量“买了多少”不把滑点误当成数量变化。分母为零时应该写“不适用”不能写0%或100%。第二个量是需求参与率计划金额占相应市场成交金额的比例。第三个是实际参与率真正成交的金额占相应市场成交金额的比例。两者的分母要使用同一股票、同一时间范围和一致价格口径。在上述教学例子里计划买100万元全天成交额约1,000万元所以需求参与率是10%真正只买到10万元实际参与率是1%金额成交完成率是10%。实际参与率看起来很低恰恰可能是因为订单被上限挡住了并不能单独证明流动性宽裕。图2同一手工算例。1%是实际成交占全天量10%分别是计划需求占全天量与计划完成比例三者不能互换。再看一个更极端的订单簿算例9笔小订单每笔计划1万元全部成交另外1笔大订单计划91万元只成交9.1万元。十笔订单都“有成交”按笔数算订单成交率仍是100%按参考金额算总计划100万元完成18.1万元金额成交完成率只有18.1%。图3独立手工算例。订单成交率100%并不表示资金按目标投入部分成交要按金额保留。真实报告还应单列未完成金额按流动性限制、停牌、价格限制、现金不足、交易状态不明等原因解释。把这些原因全部写成“买不进去”既不准确也会掩盖数据质量问题。平台页面给出了订单成交率与拒单数但这两项无法代替金额完成率完整金额指标需要按订单和成交记录另算。03固定规则逐档放大资金容量研究不能用一条100万元的净值曲线直接乘十。每一个资金档位都要从相同的初始条件重新运行完整回测。资金改变以后委托股数、整手取整、费用、成交限制、持仓与后续现金都会改变路径不会只是原来的放大版。可以先选100万、300万、1,000万、3,000万元四档。档位只是实验设计具体数值应结合预期资金用途和策略交易量确定不是所有策略都必须测到3,000万元。要固定的条件包括研究起止日、历史可投资范围、第五篇确认的参数选择规则、调仓频率、持股数量、风险控制、费用版本、参与率上限、冲击系数以及比较基准。每个档位都用同一版本的数据和程序保存不同的运行编号。若中途改变了参数或证券范围就不再是纯粹的资金规模比较。图4实验设计。每档独立重跑保持规则与成交假设一致再观察账户怎样变化。主要结果建议放在一张共享资金规模横轴的三联图上面是扣费后的年化收益中间是金额成交完成率下面是未完成委托的参考金额。另附最大回撤、成本占初始资金比例、平均与高分位需求参与率、拒单原因。图5正式结果图的版式示意灰色占位没有任何策略收益数据。实测完成后应以真实数值替换不可按连线推断容量。为什么一定要三张图一起看因为净收益下降可能是价格冲击变大也可能是目标股票买不进去金额完成率下降可能主要发生在收益贡献最关键的几笔买单而非均匀分布在全部订单中。单张净值曲线说不清这些差异。还要同时保留买入与卖出两面的执行情况。买入受限会留下现金卖出受限则可能把想退出的风险留在账户。只研究买单容量容易低估策略退出拥挤持仓时的困难。04买不进去也可能让净值变好看“资金越大回测收益越低”比较直观但有时大资金组的收益率或回撤反而好看一些。这未必说明容量变好了。设想市场某段时间大跌小资金组按计划买入承受了完整跌幅大资金组因为流动性限制只买到一部分更多资金暂时留在现金里。后者回撤更小甚至收益率略高。若只看总收益和最大回撤可能误以为放大资金改善了策略。反过来强势上涨时未能买入的现金又可能拖累收益。因此容量曲线不一定随资金单调下降。未成交会改变持仓本身损失不只是多付了几笔交易费用。图6机制示意没有指定真实收益率。现金既可能在下跌时减少损失也可能在上涨时错过收益。为避免把“没买到”误读成“选得更好”报告要展示各档平均和关键日期的现金比例、目标持仓与实际持仓差异并指出差异主要来自哪些股票和调仓日。如果某个资金档位表现突出只是因为几笔原计划买入没完成应把这一事实写在收益结论旁边。也不能简单把未成交订单“补在下一天”来美化结果。若实际研究要采用延迟下单、拆单或追单那是另一套执行规则需要单独实现、重新回测并承担后续价格和风险。当前模型下的未完成部分应按当前模型的真实处理方式记录。05成交以后价格可能也变了即使订单全部成交成交价也可能偏离我们读信号时想象的价格。平台的模拟执行以次日原始开盘价为参考加入固定滑点和随成交占比变化的冲击。简化写法是s s 0 k q u s e d q f i l l V r e f ss_0k\sqrt{\frac{q^{\mathrm{used}}q^{\mathrm{fill}}}{V^{\mathrm{ref}}}}ss0​kVrefqusedqfill​​s 0 s_0s0​是固定滑点率k kk是冲击系数分子包括同日同股此前已成交股数与本次成交股数V r e f V^{\mathrm{ref}}Vref是模型采用的参考成交量。买单按参考价上浮卖单按参考价下调。公式描述的是本项目的模拟假设不是从真实订单簿估计出来的普遍市场规律。Almgren与Chriss的执行研究解释了为何交易成本和市场冲击需要进入大额交易决策但不能据此把本平台系数说成经过市场校准。[1]图7两条不同路径部分成交改变持仓与现金价格偏离影响已经成交的交易成本。读账本时要避免重复扣钱如果净值已经用实际模拟成交价计算滑点和冲击已体现在买卖价中展示“滑点成本”是解释损失来源不应再从该净值里减一次。平台当前的滑点成本汇总包含冲击部分没有可靠拆分记录时不能把“固定滑点”和“冲击”分别当成两笔额外费用。金额完成率也不应直接用实际成交金额除以计划参考金额。买得更贵会抬高实际金额造成“完成更多”的错觉。图2的完成率公式已经用同一参考价格排除了这一影响。接下来可以做事先安排的情景检查例如分别在0.5%、1%、2%的参与率上限下重跑再变化冲击系数。每一组情景都需要重新运行因为成交和持仓会跟着变。不能把1%上限的账户净值拿来直接加减一项费用就当成另一个情景。这些设置不是越宽松越真实。若只有把参与率放到2%、把冲击调低策略才显得能承载大资金报告的重点应是结论对这些假设的依赖而不是挑其中最漂亮的一条线。06多大规模才算遇到边界“这套策略容量是1,000万元”听起来精确但背后常常没有写明判定标准。一个更可检验的说法是在约定的成交模型、成本、数据和时期下哪些资金档位仍达到事先的要求。例如研究前先约定两项门槛整体金额成交完成率不低于95%与最小资金档位相比净年化收益下降不超过2个百分点。两项只用于说明怎样制定标准不是行业规定。实际门槛应由投资者能够接受的执行偏差和收益要求决定并可增加卖出完成率、个别大订单完成率等限制。如果四档测试中100万与300万元满足门槛1,000万元首次不满足可以写“在已测试的离散档位和当前假设下边界出现在300万与1,000万元之间尚未定位更精确的额度。”进一步细化需要在这一区间增加档位且继续检查其他时段和成交情景。如果3,000万元仍然满足门槛写“在最高已测档位及当前假设下未观察到触发门槛”不能写“容量超过3,000万元且未来没有问题”。如果中间某档不满足、更高一档又满足先追查未成交和持仓差异不应简单取最高通过档位作单一容量数字。图8研究结论的写法示意。出现门槛、未出现门槛和结果不规则分别需要不同表述。容量最终更像一组附条件的证据而非刻在策略上的数字。市场成交量会变策略偏好的股票也会变即便同样金额一段平静时期能执行不代表波动剧烈时也能执行。07日频回测能证明到哪一步到这里还必须回头看数据的时间尺度。我们的策略按次日开盘模拟成交执行模型用前一交易日和当日最终成交量中较小的一个限制当天可成交股数。以前一日量做参考有事前依据但当日最终成交量只有收盘后才知道。模型把它当事后的保守约束是为了避免模拟成交超过全天量的一部分它并不提供开盘时实际挂单深度。[2]因此日频实验可以回答“在这些每日成交量、参与率和冲击假设下模拟账户能容纳多少资金”它不能独自回答“次日开盘那几分钟一定能按这些价格和数量完成交易。”如果要把后一个问题也做实需要集合竞价、逐笔或分钟级别的数据以及与实际下单时间、订单类型、排队顺序和拆单规则相匹配的执行模型。数据更细也不自动等于真实成交买卖盘随自己的大单变化仍需要实盘或纸面跟踪去校验。平台可信度审计可以显示参与率上限及相关拒单提醒但审计通过只说明当前规则下的回测有可追溯的执行假设。它不会把日频模拟变成真实交易承诺也不会自动给出一条容量收益曲线。还有一个容易忽略的方向当历史成交量本来就缺失拒单或运行失败并不能证明市场没有流动性。应将“数据不足以评估”和“在有效数据下触及流动性限制”分开记录。08写出一份读得懂的容量结论一份可供读者判断的容量报告应同时交代使用了哪套策略和参数测试了哪些资金档位采用了什么成交与费用假设计划订单完成了多少净收益和回撤怎样变化最难成交的买卖单发生在哪些日期。如果答案是“100万元可以1,000万元在某种假设下不行”这仍然是有价值的研究结果。它告诉我们策略的可使用范围而不是宣告选股规律突然消失。真正危险的结论是只把小资金净值乘十把新增资金最需要面对的订单缺口和价格变化全部留在图外。策略能赚多少钱最后要经过的不只是信号还有市场愿意让我们成交的那道门。关于本文的研究口径本文没有运行新的多资金回测。100万元订单、1%上限、9笔小订单与1笔大订单、300万至1,000万元边界等均为手工教学算例或条件句图5是待填的出版版式不含实测收益。读者不应把这些数字理解为本项目策略已验证的容量。第一笔订单的股数推算简化了整手取整、账户现金、涨跌停、同日已占用额度及其他拒单条件。实际实现按股数限制不直接以成交金额百分比决定是否成交。公式中的当日最终成交量属于事后模拟约束不构成未来交易信号但它也不能被表述为开盘时可观察的可成交深度。“订单成交率”按至少有一笔成交的订单数计算部分成交的订单也可计入。因此正文另外定义金额成交完成率。实际汇总应依据每笔订单的计划股数、实际成交股数与同一参考价格检查重复订单、撤单、缺失参考价、买卖方向及分母为零的情况。无法对齐的记录单列不静默剔除。平台功能依据本文整理时的本地实现核对单次回测可调初始资金展示净值、交易与成本、订单明细执行模型含参与率上限和冲击假设审计报告提示容量相关约束。当前页面没有自动生成本文的三联容量曲线或金额成交完成率需要保留多次运行数据后另行汇总。平台页面只展示订单与成交明细的尾部记录完整分析必须使用运行目录中的全量文件。配套指南列出截图和核对步骤。参考资料Almgren, R., Chriss, N. (2000/2001).Optimal execution of portfolio transactions.Journal of Risk, 3(2), 5–39. 期刊页面。本文借鉴其将执行成本与市场冲击纳入大额交易研究的基本问题意识本文示例阈值及平台模型系数均非该论文实证结论。本系列第三篇《一份回测报告凭什么值得相信》。其中的执行与容量章节说明了日频参与率约束的时间边界本篇进一步展开多资金实验与结果表述。
返回列表