m一个in Content

Optimize Trade Schedule Trading Strategy

此示例显示了如何使用Kissell Research Group的交易成本分析来最大程度地降低交易成本,以优化单个股票的策略。优化可最大程度地减少与贸易计划交易策略相关的交易成本和指定的风险规避参数兰姆达。交易成本最小化表示为

最小 [[ (( m + p 一个 + l 一个 m b d 一个 Å t r 这是给予的 ,,,,

交易成本是市场影响的地方m我,价格赞赏p一个和时机风险tr。有关详细信息,请参阅市场影响力,,,,定价,,,,一个ndTimingRisk

this example requires an Optimization Toolbox™ license. For background information, seeOptimization Theory Overview((Optimization Toolbox)

在这里,您可以优化贸易计划贸易策略。优化为该表达式找到了局部最小值。有关搜索全球最小值的方法,请参阅local vs. Global Optima((Optimization Toolbox)。要优化数量和交易时间策略的百分比,请参见Optimize Percentage of Volume Trading Strategy一个nd优化贸易时间交易策略

要访问示例代码,请输入编辑krgsinglestockoptimizationexample.m在命令行。

检索市场影响参数

从Kissell Research Group FTP站点中检索市场影响数据。使用该网站连接到FTP网站ftpfunction with a user name and password. Navigate to themi_parameters文件夹和检索市场影响数据mi_encrypted_pa​​rameters.csvfile.Midatacontains the encrypted market-impact date, code, and parameters.

f = ftp('ftp.kissellresearch.com',,,,'username',,,,'pwd');mget(f,'mi_encrypted_pa​​rameters.csv');close(f) miData = readtable('mi_encrypted_pa​​rameters.csv',,,,'delimiter',,,,...',',,,,“ readlownames',,,,false,“ ReadVariablenames”,真的);

Create a Kissell Research Group transaction cost analysis objectk

k= krg(miData);

创建单股票数据

the structuretradeData包含单个股票的数据。使用结构或表定义此数据。这些字段是:

  • Number of shares

  • 一个verage daily volume

  • 挥发性

  • Stock price

  • alpha估计

tradeData。股票= 100000;tradeData。一个DV = 1000000; tradeData.Volatility = 0.25; tradeData.Price = 35; tradeData.Alpha_bp = 50;

定义最初策略的交易数量和每笔交易的数量。田野大量驱动器一个ndtradeScheduledefine the initial trade schedule trade strategy.

numIntervals = 26;tradeData.volumeprofile =一个(1,numIntervals) *...TradeData.Adv/numIntervals;TradeData.TradesChedule =一个(1,NumIntervals)。...(TradeData.shares./numintervals);

Define Optimization Parameters

Define risk aversion level兰姆达。放兰姆达从0到我nf

兰姆达= 1;

Define lowerlB和上部UBbounds of shares traded per interval for optimization.

lb =零(1,numIntervals);ub =一个(1,numIntervals)。* TradeData.Shares;

Specify constraintsAEQ一个ndbeq要表示贸易计划中交易的股票必须与股票总数相匹配。

aeq =一个(1,numIntervals);beq = tradeData.shares;

定义最大数量的功能评估和优化迭代次数。放'MaxFunEvals'一个nd'Maxiter'对于大量值,因此优化可以迭代多次找到局部最小值。

options = optimoptions('fmincon',,,,'MaxFunEvals',100000,'Maxiter',,,,100000);

定义功能句柄fun对于目标函数。要访问此功能的代码,请输入edit krgSingleStockOptimizer.m

fun = @(tradeschedule)krgsinglestockoptimizer(Tradeschedule,k,...TradeData,Lambda);

minimize Trading Costs for Trade Strategy

minimize the trading costs for the trade schedule trade strategy.Fmincon根据下限和上限值找到贸易计划贸易策略的最佳价值。它通过找到交易成本的当地最低限度来做到这一点。

[tradedata.tradeschedule,totalcost,entitflag] = fmincon(娱乐,...TradeData.TradesChedule,,,,[[这是给予的,,,,[[这是给予的,,,,一个eq,Beq,LB,UB,[],options);

to check whetherFmincon找到局部最小值,显示该功能停止的原因。

出口
出口= 1.00

Fmincon返回1当它找到当地的最低限度时。有关详细信息,请参阅出口((Optimization Toolbox)

Display the optimized trade strategyTradeData.TradesChedule

TradeData.TradesChedule
ANS =列1至5 35563.33 18220.14 11688.59 8256.81 6057.39 ...

Estimate Trading Costs for Optimized Strategy

Estimate trading costs交易使用优化的贸易策略。

mi = marketImpact(k,tradeData); pa = priceAppreciation(k,tradeData); tr = timingRisk(k,tradeData); tradeScheduleCosts = [totalcost mi pa tr];

显示交易成本。

交易
TradescheduleCosts = 97.32 47.66 6.75 42.91

the trading costs are:

  • 总消耗

  • 市场影响

  • 价格欣赏

  • 时机风险

有关上述计算的详细信息,请联系Kissell研究小组。

references

[1]基尔,罗伯特。“算法交易策略。”博士论文。福特汉姆大学,2006年5月。

[[2] Kissell, Robert.the Science of Algorithmic Trading and Portfolio Management。Cambridge, MA: Elsevier/Academic Press, 2013.

[3] Glantz,Morton和Robert Kissell。multi-Asset Risk Modeling。Cambridge, MA: Elsevier/Academic Press, 2013.

[[4] Kissell, Robert, and Morton Glantz.最佳交易策略。New York, NY: AMACOM, Inc., 2003.

也可以看看

((Optimization Toolbox)|((Optimization Toolbox)||||

related Topics