σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Optimization 学习路线›模块 4 · 约束与正则化›主题 4.4·~55分钟高级

用于执行计划的线性规划

路线进度模块 4/5 · 主题 4/4
4.4 用于执行计划的线性规划
—实验得分— / 100总 XP—连续天数—

把订单分摊到时间上

线性规划在线性约束 Ax≤bA\mathbf x\le\mathbf bAx≤b 与 x≥0\mathbf x\ge0x≥0 下最小化线性目标 cTx\mathbf c^{T}\mathbf xcTx。可行集是多面体,一种有平面和角点的形状,由于目标是线性的,最优点总在该形状的角点(顶点)上。这里没有下坡行走:单纯形法从顶点跳到顶点,内点法则从内部穿过,两者都能在极短时间内求出含数千变量问题的精确最优解。

min⁡x ∑t=1Tctxt ;∑t=1Txt=Q,0≤xt≤ut\min_{\mathbf x}\ \sum_{t=1}^{T}c_t x_t\ ;\quad \sum_{t=1}^{T}x_t=Q,\qquad 0\le x_t\le u_txmin​ t=1∑T​ct​xt​ ;t=1∑T​xt​=Q,0≤xt​≤ut​(1)

执行计划是天然的线性规划。要在 TTT 个时段卖出 QQQ 股,设 xtx_txt​ 为时段 ttt 的卖出量,ctc_tct​ 为该时段每股预期成本(价差加冲击,单位基点),utu_tut​ 为容量,例如预期成交量 10% 的参与率上限。只有一个预算约束时,解是贪心的:先把最便宜的时段填到上限,再填次便宜的,直到完成 QQQ。线性规划免费给出的预算约束乘子,就是多卖一股的边际成本,即仍有余量的最便宜时段的成本。

四个时段卖出 Q=10,000Q=10{,}000Q=10,000 股。时段 1 至 4 的成本为 3,1,2,43,1,2,43,1,2,4 基点,上限为 4000,3000,5000,60004000,3000,5000,60004000,3000,5000,6000 股。贪心填充:时段 2(成本 1)取满其上限 300030003000,时段 3(成本 2)取 500050005000,时段 1(成本 3)取剩下的 200020002000。总额为 3000⋅1+5000⋅2+2000⋅3=19,0003000\cdot1+5000\cdot2+2000\cdot3=19{,}0003000⋅1+5000⋅2+2000⋅3=19,000 基点·股,平均 1.91.91.9 基点。边际成本是时段 1 的 333 基点,因为它是仍有余量的最便宜时段。总容量为 18,00018{,}00018,000,所以 20,00020{,}00020,000 股的订单根本没有可行计划。

容量可以来自数据。在本课程数据集最近 250 个交易日中,AAPL 的日成交量中位数约为 4550 万股,因此 10% 的参与率上限约为每天 455 万股,卖出 2000 万股至少需要 20/4.55=4.420/4.55=4.420/4.55=4.4,也就是五个交易日。每股成本恒定只是一阶近似。真实的冲击会随该时段成交量增大,使成本关于 xtx_txt​ 为凸,计划就变成二次规划,这也是综合项目的模型。

  • 顶点解:线性规划的最优解位于可行多面体的角点上。
  • 贪心计划:只有一个预算约束时,先填最便宜的容量。
  • 影子价格:预算乘子是多一股的边际成本。
先检查可行性面对不可能的请求,求解器会回答“不可行”,而不是给出近似的计划。优化之前先把订单规模与总容量比较,若放不下就要决定让步的方向:更长的时间窗口、更高的参与率上限,或更小的订单。成本和容量都是预测,所以要随一天的进展重新运行程序。

实验:评分内容

  • 总成本15 分
  • 平均成本10 分
  • 最贵被用时段的股数15 分
  • 边际成本15 分
  • 过大的订单15 分
  • 线性规划最优解的位置15 分
  • 为计划建模15 分
0/ 已答 7 题
任务
1数值作答15 分未作答

在四个时段卖出 10,000 股,成本分别为 3、1、2、4 基点,上限分别为 4000、3000、5000、6000 股。最小总成本是多少基点·股?

total=total =total=允许误差:± 1
2数值作答10 分未作答

该计划每股的平均成本是多少基点?

avg=avg =avg=允许误差:± 0.01
3数值作答15 分未作答

最优计划在时段 1(成本 3 基点)卖出多少股?

slot1=slot1 =slot1=允许误差:± 1
4数值作答15 分未作答

如果订单多一股且仍然可行,总成本会增加多少基点?换句话说,预算约束的影子价格是多少?

shadow=shadow =shadow=允许误差:± 0.01
5选择15 分未作答

要求同样四个时段执行 20,000 股。线性规划求解器会报告什么?

6选择15 分未作答

可行集有界且非空的线性规划,其最优解位于……

7排列步骤15 分未作答

把建立并求解执行线性规划的步骤按顺序排列。

拖动以重新排序;也可聚焦某项,按空格抬起,用方向键移动,再按空格放下。

  1. 1写出约束:总量等于 QQQ 且 0≤xt≤ut0\le x_t\le u_t0≤xt​≤ut​
  2. 2求解并读出预算约束的影子价格
  3. 3选择变量:每个时段卖出的股数 xtx_txt​
  4. 4写出目标:总成本 ∑tctxt\sum_t c_t x_t∑t​ct​xt​
数学模式键盘或 LaTeX 输入第 1/7 题 · Ctrl ⏎ 检查

登录后即可运行你的代码。

所有讲解均可免费阅读。创建账户或登录后,即可运行代码、运行测试并提交此实验。

  • 浏览器内 IDE 与 bash 终端,无需安装
  • 即时评分、XP 以及你在学习路线中的位置
创建账户登录
或
使用 GitHub 继续