量化最重要的一课卖飞

问题形式化

  • 状态变量:库存 q(t)
  • 控制变量:卖出速度 v(t)=−dtdq​
  • 价格动态: dSt​=μdt+σdWt​−ηv(t)dt(含永久冲击)
  • 目标:最大化期望收益: v(t)max​E[∫0T​(St​−ηq(t))v(t)dt]

2. 无漂移情况(μ=0 )

  • HJB 方程解出:v∗(t)=Tq0​​=常数
  • 直观:无趋势时,拖延无收益,冲击成本最小化 → 匀速。

3. 有漂移情况(μ=0 )

  • 最优速度:

v∗(t)=Tq0​​+2ημ​(T−2t)

  • 解读
    • 若 μ>0 (上涨趋势):
      • 早期 v∗<Tq0​​ (慢卖,搭顺风车);
      • 后期 v∗>Tq0​​ (加速清仓);
    • 若 μ<0 (下跌趋势):
      • 全程加速卖出,越早越好。

from future import print_function
import numpy as np
import matplotlib.pyplot as plt

DisplayPlots = True
NIter = 100000
s0 = 20.
q0 = 10000
T = 1.
nt = 1000
delta_t = T/nt
sigma = s0 * 0.05
beta = 1e-6
mu0 = 4 * q0 * beta
nq = 5
np.random.seed(10)

q = np.zeros((nt+1,nq))
for t in range(nt+1):
q[t,0] = q0 * (1. – t/nt)
q[t,1] = np.maximum(q0 * (1. – 5. * t / nt ),0.)
q[t,2] = q0 * (1. – 0.5 * t / nt)
q[t,3] = np.maximum((T – t/nt) * (q0/T – (mu0 / (4 * beta)) * t/nt),0.)
q[t,4] = (T – t/nt) * (q0/T + (mu0 / (4 * beta)) * t/nt)
q[-1,2] = 0
q_labels = [‘linear ‘,’fast linear ‘,’slow linear ‘,’fast quadratic’,’slow quadratic’]
if DisplayPlots:
plt.figure()
plt.plot((1./nt)*np.arange(0.,nt+1),q)
plt.legend(q_labels)
plt.xlabel(‘time’)
plt.ylabel(‘# shares’)
plt.title(‘inventory q(t)’)
plt.show()

for mu in [0, mu0, -mu0]:
print(“\nCASE mu=%1.2f ===================================================================”%(mu))
Pnl = np.zeros((NIter,nq))
for q_ind in range(nq):
Lambda = np.zeros(nt+1)
Lambda[1:] = -(q[1:,q_ind] – q[:-1,q_ind]) / delta_t
for n in range(NIter):
eps = np.random.normal(0, 1, nt + 1)
# mid price
s = s0 + mu * delta_t * np.array(range(0,nt+1)) + sigma * np.sqrt(delta_t) * np.cumsum(eps)
s[0] = s0
p = s – beta * Lambda # best bid price
x = np.cumsum(Lambda * p * delta_t)
Pnl[n,q_ind] = x[-1] + q[-1,q_ind] * s[-1] – (x[0] + q[0,q_ind] * s[0])

AvPnl = np.zeros(nq)
print(“Average Pnl”)
print(“———————————————————-“)
for q_ind in range(nq):
AvPnl[q_ind] = np.mean(Pnl[:,q_ind])
print(“%s\t\t\t%1.2f \t\t\t%1.1f”
%(q_labels[q_ind],AvPnl[q_ind],1e4 * AvPnl[q_ind] / (s0 * q0)))
print(“=============================================================================”)

发布者:archimedesspx

cycle expert

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注