此示例显示如何通过从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.adv = 1000000;TradeData.volatility = 0.25;tradedata.price = 35;tradedata.traDeTime = 0.5;tradedata.alpha_bp = 50;
定义风险厌恶水平lambda.
。组lambda.
从0到INF.
。
lambda = 1;
定义下面磅
和上面UB.
优化战略输入的界限。
lb = 0;UB = 1;
定义功能句柄乐趣
对于目标函数。要访问此功能的代码,请输入编辑krgsinglestockoptimizer.m.
。
fun = @(tradetime)krgsinglestockoptimizer(TradeTime,K,TradeData,Lambda);
尽量减少交易时间贸易战略的交易费用。FMINBND
根据较低和上限值查找交易时间贸易策略的最佳价值。FMINBND
找到交易成本最小化表达式的本地最低限度。
[trydata.traDetime,totalcost] = fminbnd(乐趣,lb,ub);
显示优化的贸易策略TradeData.TraDetime.
。
TradeData.TraDetime.
ans = 0.19
估计交易费用TradetImecosts.
使用优化的贸易策略。
mi = marketimpact(k,商品);tr = timingrisk(k,商品数据);pa = priceappreciation(k,商标);tradetimecosts = [totalcost mi pa tr];
显示交易费用。
TradetImecosts.
Tradetimecosts = 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.
|时序可以