此示例显示如何通过从Kissell Research Group使用交易成本分析最小化交易成本来优化策略。优化最大限度地减少了与批量交易策略百分比相关的交易成本和指定的风险厌恶参数lambda.。交易成本最小化表示为
交易费用是市场影响MI.,价格升值pa和时序风险TR.。有关详细信息,请参阅MarketImpact.
那priCeapreciation.
, 和时序可以
。此示例查找此表达式的本地最小值。有关搜索全局最低限度的详细信息,请参阅优化疑难解答和提示。
在这里,您可以优化批量贸易策略的百分比。优化交易时间和交易时间表策略,见优化交易时间交易策略和优化交易时间表交易策略。
要访问示例代码,请输入编辑krgsinglestockoptimizationExample.m.
在命令行。
从Kissell Research Group FTP站点检索市场影响数据。使用该连接到FTP站点FTP.
使用用户名和密码功能。导航到mi_parameters.
文件夹并检索市场影响数据mi_encrypted_parameters.csv.
文件。米塔
包含加密的市场影响日期,代码和参数。
f = ftp('ftp.kissellresearch.com'那'用户名'那'pwd');mget(f,'mi_encrypted_parameters.csv');关闭(f)midata = Readtable('mi_encrypted_parameters.csv'那'delimiter'那......','那'readrownames',错误的,'readvariablenames',真的);
创建基位研究组交易成本分析对象K.
。
k = krg(midata);
结构商标
包含单个库存的数据。使用结构或表格来定义此数据。这些字段是:
股份数量
平均每日体积
挥发性
股票价格
批量贸易策略的初始百分比
alpha估计
tradedata.shares = 100000;tradedata.add = 1000000;TradeData.volatility = 0.25;tradedata.price = 35;tradedata.pov = 0.5;tradedata.alpha_bp = 50;
定义风险厌恶水平lambda.
。放lambda.
从0到INF.
。
lambda = 1;
定义下面磅
和上面UB.
优化战略输入的界限。
lb = 0;UB = 1;
定义功能句柄乐趣
对于目标函数。要访问此功能的代码,请输入编辑krgsinglestockoptimizer.m.
。
fun = @(pov)krgsinglestockoptimizer(pov,k,商品,lambda);
尽量减少批量贸易策略百分比的交易成本。FMINBND.
基于较低和上限值找到批量贸易策略百分比的最佳值。FMINBND.
找到交易成本最小化表达式的本地最低限度。
[trydata.pov,totalcost] = fminbnd(乐趣,lb,ub);
显示优化的贸易策略tradedata.pov.
。
tradedata.pov.
ans = 0.35
估计交易费用Povcosts.
使用优化的贸易策略。
mi = marketimpact(k,商品);pa = priceappreciation(k,商标);tr = timingrisk(k,商品数据);povcosts = [totalcost mi pa tr];
显示交易费用。
Povcosts.
100.04 56.15 4.63 39.27
交易费用是:
总消耗
市场影响
价格升值
时序风险
有关前面计算的详细信息,请联系Kissell研究组。
[1] Kissell,Robert。“算法交易策略。”博士论文。福特汉姆大学,2006年5月。
[2] Kissell,Robert。算法交易与投资组合管理科学。剑桥,马:elsevier /学术出版社,2013。
[3] Glantz,Morton和Robert Kissell。多资产风险建模。剑桥,马:elsevier /学术出版社,2013。
[4] Kissell,Robert和Morton Glantz。最佳交易策略。纽约,纽约:Amacom,Inc。,2003。
FMINBND.
|krg.
|MarketImpact.
|priCeapreciation.
|时序可以