机构订单成本估算#
某对冲基金计划交易微软(MSFT)股票,已知参数:
-
当前股价:$320
-
年化波动率:28%
-
日均成交量(ADV):8,000,000股
-
订单规模:250,000股
-
目标执行时间:4小时
请基于Almgren-Chriss模型完成:
-
计算订单占ADV的比例
-
估算市场冲击成本(单位:bps)
-
转换为美元成本金额
code
import numpy as np
def almgren_impact(order_pct_adv, annual_vol, days=1):
gamma = 0.314
eta = 0.142
permanent = gamma * annual_vol * np.sqrt(order_pct_adv)
temporary = eta * annual_vol * (order_pct_adv/days)**0.6
return (permanent + temporary) * 10000
# 参数设置
order_size = 250000
adv = 8e6
price = 320
annual_vol = 0.28
hours = 4
# 请在此处补充计算代码多维度流动性分析#
获取阿里巴巴(BABA)过去60个交易日的分钟级数据:
code
import yfinance as yf
import matplotlib.pyplot as plt
baba = yf.download('BABA', period='60d', interval='60m')-
绘制成交量日内分布曲线(纽约时间)
-
计算每小时平均价格波动范围:OpenHigh−Low
High−LowOpen\frac{High - Low}{Open}
-
使用订单执行时间公式,估算不同参与率下的执行时长:
-
订单量:500,000股
-
参与率梯度:[5%, 10%, 15%, 20%]
-
展示结果采用折线图形式
-
code
# 成交量分析代码框架
baba['hour'] = baba.index.hour
hourly_vol = baba.groupby('hour')['Volume'].mean()
# 波动范围计算代码框架
baba['price_range'] = (baba['High'] - baba['Low']) / baba['Open']
# 执行时间计算函数
def execution_time(order_size, participation_rates, adv):
daily_volume = adv
return [order_size / (p_rate * daily_volume) * 6.5 for p_rate in participation_rates]
# 请在此处补充可视化代码