主要内容

优化贸易安排篮子的交易策略

这个例子展示了如何优化策略,通过最小化一篮子交易成本从Kissell研究小组利用交易成本分析。使用这种优化,确定最优顺序篮子切片战略基于交易成本之间的权衡,风险,并指定级别的风险规避。优化减少交易成本与贸易安排交易策略和相关参数指定的风险厌恶λ。表示为交易费用最小化

最小值 ( ( + P 一个 ) + l 一个 b d 一个 T R ] ,

交易成本是市场的影响在哪里心肌梗死,价格升值巴勒斯坦权力机构和时间风险TR

访问示例代码,回车编辑KRGTradeOptimizationExample.m在命令行中。在这个示例中,您可以运行这段代码使用贸易安排交易策略或比例的交易策略。这个例子显示了贸易安排交易策略。一个指数函数确定最优贸易安排。

执行这个例子中的代码后,您可以提交订单执行使用彭博®为例。

这个示例需要一个优化工具箱™许可证。背景信息,请参阅最优化理论概述(优化工具箱)

检索市场影响参数和加载数据

获取市场影响Kissell研究小组FTP站点的数据。连接到FTP站点使用ftp函数与一个用户名和密码。导航到MI_Parameters文件夹和检索数据的市场影响MI_Encrypted_Parameters.csv文件。miData包含加密的市场影响日期、代码和参数。

f = ftp (“ftp.kissellresearch.com”,“用户名”,“pwd”);mget (f,“MI_Encrypted_Parameters.csv”);关闭(f) miData = readtable (“MI_Encrypted_Parameters.csv”,“分隔符”,”、“,“ReadRowNames”假的,“ReadVariableNames”,真正的);

创建一个Kissell研究集团交易成本分析对象k。指定初始设置的日期、市场影响代码,数量的交易日。

k =库尔德斯坦地区政府(miData datetime (“今天”),1250);

加载示例数据TradeDataTradeOpt和协方差数据CovarianceTradeOpt从文件KRGExampleData.mat这是包含在数据处理工具箱™。

负载KRGExampleDataTradeDataTradeOptCovarianceTradeOpt

示例数据的描述,请参阅Kissell研究小组的数据集

定义优化参数

指定初始值对风险、交易周期,投资组合的价值,和协方差矩阵。转换为一个只买的问题。设置初始贸易安排。

%表转换为数组CovarianceTradeOpt = table2array (CovarianceTradeOpt);%使用总交易时间1天13交易时间totalDays = 1;periodsPerDay = 13;%制定风险规避水平λ= 0.5;%设置最小和最大体积的百分比minPOV = 0.00;maxPOV = 0.60;%的交易总数totalNumberPeriods = totalDays * periodsPerDay;%的投资组合价值PortfolioValue = TradeDataTradeOpt.Price ' * TradeDataTradeOpt.Shares;%的股票数量numberStocks =身高(TradeDataTradeOpt);%的协方差矩阵是折合成年率小数的协方差矩阵。%转换为(美元/股)^ 2单位的贸易时期;这个矩阵是一个%的双面组合,买卖或长时间运行和短。CC =诊断接头(TradeDataTradeOpt.Price) * CovarianceTradeOpt *诊断接头(TradeDataTradeOpt.Price);%一个交易规模CC = CC / periodsPerDay / k.TradeDaysInYear;%转换为只购买问题(例如,片面的问题)CC = TradeDataTradeOpt。SideIndicator * TradeDataTradeOpt。SideIndicator”。* CC;%将Alpha_bp从基点每天每段美分/股TradeDataTradeOpt。一个lpha_bp = TradeDataTradeOpt.Alpha_bp / 1000 .*TradeDataTradeOpt。Price / totalNumberPeriods;%设置初始贸易计划或观点的价值theta0 =兰德(numberStocks, 1);

定义优化选择使用optimset函数。这些选项的详细信息,请参阅优化选择参考(优化工具箱)

optionsold = optimset;选择= optimset (optionsold,“大规模”,“上”,“GradObj”,“关闭”,“DerivativeCheck”,“关闭”,“FinDiffType”,“中央”,“FinDiffRelStep”1 e-12“TolFun”,10 e-5,“TolX”,10 e-12,“TolCon”,10 e-12,“TolPCG”,10 e-12,“MaxFunEvals”,20000,“麦克斯特”,20000,“DiffMinChange”10 e-04);

定义每个时间间隔内的上下边界的股票交易量的优化。

1磅= 0 (numberStocks);乌兰巴托= 100 * 1 (numberStocks, 1);

贸易交易成本最小化的策略

贸易的交易成本最小化调度策略。fmincon发现贸易安排贸易策略的最优值基于较低和上界值。它通过找到一个当地最低的交易成本。使用目标函数optimizeTradingSchedule。要访问这个函数的代码,回车编辑KRGTradeOptimizationExample.m

(θ,fval、exitflag、输出)= fmincon (@optimizeTradingSchedule theta0, [],[]、[][],磅,乌兰巴托,[],选项,totalNumberPeriods, numberStocks, periodsPerDay,TradeDataTradeOpt CC,λ,k);

检查是否fmincon发现一个局部最小值,显示函数停止的原因。

exitflag
exitflag = 1.00

fmincon返回1当它发现一个局部最小值。有关详细信息,请参见exitflag(优化工具箱)

计算股票交易,剩余股份,价格升值,和时间的风险。然后,计算容积率的平均百分比和贸易。

numPeriods = 1: totalNumberPeriods;K_Matrix = repmat (numPeriods numberStocks 1);Theta_Matrix = repmat(θ1 totalNumberPeriods);Volume_Matrix = repmat (TradeDataTradeOpt.ADV / periodsPerDay 1totalNumberPeriods);TradeDataTradeOpt。VolumeProfile = Volume_Matrix;Shares_Matrix = repmat (TradeDataTradeOpt.Shares 1 totalNumberPeriods);我% X =股票贸易时期Xpct = (exp (-K_Matrix * Theta_Matrix)。* (exp (Theta_Matrix) 1))。/(1 - exp (-totalNumberPeriods * Theta_Matrix));X = repmat (TradeDataTradeOpt.Shares 1 totalNumberPeriods)。* Xpct;TradeDataTradeOpt。TradeSchedule = X;%在期初我R =剩余股份Rpct = (exp (- (K_Matrix-1)。* Theta_Matrix)——exp (-totalNumberPeriods * Theta_Matrix))。/(1-exp (-totalNumberPeriods。* Theta_Matrix));R = repmat (TradeDataTradeOpt.Shares 1 totalNumberPeriods)。* Rpct;%的价格以美元升值PA = (R, 2)。* TradeDataTradeOpt.Alpha_bp总和;%在美元市场影响MI = marketImpact (k, TradeDataTradeOpt)。* TradeDataTradeOpt。股票。*TradeDataTradeOpt。价格/ 10000;%时机风险美元TR =√总和(r ^ 2, 2)。*诊断接头(CC));/ (TradeDataTradeOpt TR_bp = TR。股票。*TradeDataTradeOpt.Price) * 10000;% Avg观点率kTR = ((TR_bp / 10000 * 1. / TradeDataTradeOpt.Volatility)。^ 2) * (k。TradeDaysInYear * 3。/(TradeDataTradeOpt.Shares. / TradeDataTradeOpt.ADV));观点= 1. / (1 + kTR);观点= max(观点、TradeDataTradeOpt.Shares. / (TradeDataTradeOpt。股票+ totalDays。*TradeDataTradeOpt.ADV));% TradeTimeTradeDataTradeOpt。TradeTime = TradeDataTradeOpt.Shares./TradeDataTradeOpt.ADV .*(1-POV)。/观点;

估计总交易成本使用优化的贸易战略。

TotMI = (MI) / (TradeDataTradeOpt求和。股票的* TradeDataTradeOpt.Price)* 10000;%英国石油公司TotPA = (PA) / (TradeDataTradeOpt求和。股票的* TradeDataTradeOpt.Price)* 10000;%英国石油公司TotTR = sqrt (trace (R ' * CC * R)) / (TradeDataTradeOpt。股票的*TradeDataTradeOpt.Price) * 10000;

显示市场影响总成本、价格升值和时间风险。

totalcosts = [TotMI TotPA TotTR]
totalcosts 26.5900 = 38.2902 0

关于前面的计算,详情请联系Kissell研究小组。

引用

[1]Kissell,罗伯特。算法交易和投资组合管理的科学。剑桥,麻州:爱思唯尔/学术出版社,2013年。

[2]Malamut,罗伯特。“多阶段优化技术贸易调度。“在QWAFAFEW纽约会议上表示,2002年4月。

[3]Kissell,罗伯特,和莫顿Glantz。最优交易策略。纽约,纽约州:AMACOM, Inc ., 2003。

另请参阅

||(优化工具箱)|(优化工具箱)||

相关的话题