把订单分摊到时间上
线性规划在线性约束 与 下最小化线性目标 。可行集是多面体,一种有平面和角点的形状,由于目标是线性的,最优点总在该形状的角点(顶点)上。这里没有下坡行走:单纯形法从顶点跳到顶点,内点法则从内部穿过,两者都能在极短时间内求出含数千变量问题的精确最优解。
(1)
执行计划是天然的线性规划。要在 个时段卖出 股,设 为时段 的卖出量, 为该时段每股预期成本(价差加冲击,单位基点), 为容量,例如预期成交量 10% 的参与率上限。只有一个预算约束时,解是贪心的:先把最便宜的时段填到上限,再填次便宜的,直到完成 。线性规划免费给出的预算约束乘子,就是多卖一股的边际成本,即仍有余量的最便宜时段的成本。
四个时段卖出 股。时段 1 至 4 的成本为 基点,上限为 股。贪心填充:时段 2(成本 1)取满其上限 ,时段 3(成本 2)取 ,时段 1(成本 3)取剩下的 。总额为 基点·股,平均 基点。边际成本是时段 1 的 基点,因为它是仍有余量的最便宜时段。总容量为 ,所以 股的订单根本没有可行计划。
容量可以来自数据。在本课程数据集最近 250 个交易日中,AAPL 的日成交量中位数约为 4550 万股,因此 10% 的参与率上限约为每天 455 万股,卖出 2000 万股至少需要 ,也就是五个交易日。每股成本恒定只是一阶近似。真实的冲击会随该时段成交量增大,使成本关于 为凸,计划就变成二次规划,这也是综合项目的模型。
- 顶点解:线性规划的最优解位于可行多面体的角点上。
- 贪心计划:只有一个预算约束时,先填最便宜的容量。
- 影子价格:预算乘子是多一股的边际成本。
先检查可行性面对不可能的请求,求解器会回答“不可行”,而不是给出近似的计划。优化之前先把订单规模与总容量比较,若放不下就要决定让步的方向:更长的时间窗口、更高的参与率上限,或更小的订单。成本和容量都是预测,所以要随一天的进展重新运行程序。
实验:评分内容
- 总成本15 分
- 平均成本10 分
- 最贵被用时段的股数15 分
- 边际成本15 分
- 过大的订单15 分
- 线性规划最优解的位置15 分
- 为计划建模15 分