这个例子展示了如何通过使用Kissell Research Group的交易成本分析最小化交易成本来优化单个股票的策略。该优化最小化了与批量交易策略的百分比和指定的风险规避参数相关的交易成本λ.交易成本最小化表示为
交易成本对市场的影响在哪里心肌梗死,价格升值巴勒斯坦权力机构,以及时机风险TR.详细信息请参见marketImpact
,priceAppreciation
,timingRisk
.这个例子为这个表达式找到一个局部最小值。有关搜索全局最小值的详细信息,请参见优化故障排除和提示(MATLAB)。
在这里,您可以优化百分比交易量的交易策略。要优化交易时间和交易计划策略,请参见优化交易时间交易策略而且优化交易计划.
要访问示例代码,请输入编辑KRGSingleStockOptimizationExample.m
在命令行。
从Kissell Research Group FTP站点检索市场影响数据。连接到FTP站点ftp
函数使用用户名和密码。导航到MI_Parameters
文件夹中的市场影响数据并检索MI_Encrypted_Parameters.csv
文件。miData
包含加密的市场影响日期、代码和参数。
F = ftp(“ftp.kissellresearch.com”,“用户名”,“pwd”);mget (f,“MI_Encrypted_Parameters.csv”);close(f) miData = readtable(“MI_Encrypted_Parameters.csv”,“分隔符”,...”、“,“ReadRowNames”假的,“ReadVariableNames”,真正的);
创建Kissell Research Group交易成本分析对象k
.
k = krg(miData);
结构tradeData
包含单个股票的数据。使用结构或表来定义此数据。字段为:
股份数量
平均日成交量
波动
股票价格
交易量策略的初始百分比
α估计
tradeData。股份= 100000;tradeData。一个DV = 1000000; tradeData.Volatility = 0.25; tradeData.Price = 35; tradeData.POV = 0.5; tradeData.Alpha_bp = 50;
定义风险规避水平λ
.集λ
从0到正
.
Lambda = 1;
定义低磅
和上乌兰巴托
优化策略输入的边界。
Lb = 0;Ub = 1;
定义函数句柄有趣的
对于目标函数。要访问此函数的代码,请输入编辑krgSingleStockOptimizer.m
.
fun = @(pov)krgSingleStockOptimizer(pov,k,tradeData,Lambda);
最小化交易成本的百分比的批量交易策略。fminbnd
根据下限和上限值,找出交易量交易策略百分比的最优值。fminbnd
为交易成本最小化表达式找到一个局部最小值。
[tradeData。观点,totalcost] = fminbnd(fun,LB,UB);
展示优化的贸易策略tradeData。观点
.
tradeData。观点
Ans = 0.35
估算交易成本povCosts
采用优化的贸易策略。
mi = marketImpact(k,tradeData);pa = priceAppreciation(k,tradeData);tr = timingisk (k,tradeData);povCosts = [totalcost mi pa tr];
显示交易成本。
povCosts
100.04 56.15 4.63 39.27
交易成本为:
总成本
市场影响
价格上涨
时间风险
有关上述计算的详细信息,请联系Kissell Research Group。
罗伯特,基塞尔。“算法交易策略”博士论文。福特汉姆大学,2006年5月。
罗伯特,基塞尔。算法交易和投资组合管理的科学.马萨诸塞州剑桥:爱思唯尔/学术出版社,2013年。
Glantz, Morton和Robert Kissell。多资产风险建模.马萨诸塞州剑桥:爱思唯尔/学术出版社,2013年。
基塞尔,罗伯特和莫顿·格兰茨。最优交易策略.纽约,纽约州:AMACOM, Inc., 2003。
fminbnd
|库尔德斯坦地区政府
|marketImpact
|priceAppreciation
|timingRisk