主要内容

equityCurve

绘制股票策略曲线

描述

例子

equityCurve (val绘制你使用的每个策略的权益曲线backtestStrategy.创建后台测试引擎后使用backtestEngine然后用runBacktest,使用equityCurve制定策略并比较他们的表现。

例子

h= equityCurve (斧头val另外返回图形句柄h

例子

全部折叠

MATLAB®回溯测试引擎根据资产价格数据的时间序列对组合投资策略进行回溯测试。创建一组后测策略使用backtestStrategy和回溯测试引擎使用backtestEngine,runBacktest函数执行回溯测试。在使用了runBacktest函数来测试投资策略,可以运行equityCurve函数来绘制策略的权益曲线。

加载数据

加载一年的股票价格数据。为便于阅读,本例仅使用DJIA股票的一个子集。

%阅读2006年道琼斯工业平均指数股票的每日调整收盘价表T = readtable (“dowPortfolio.xlsx”);%修剪表,只保存日期和选定的股票timeColumn =“日期”;assetSymbols = [“BA”“猫”“说”“通用电气”“IBM”“力”“微软”];T = T(:,[timeColumn assetSymbols]);%转换为时间表pricesTT = table2timetable (T)“RowTimes”“日期”);%查看最终资产价格时间表头(pricesTT)
ans =8×7时间表IBM MCD microsoft日期英航猫说通用电气  ___________ _____ _____ _____ _____ _____ _____ _____ 03 - 1月- 2006 68.63 55.86 24.18 33.6 80.13 32.72 26.19 04 -简- 2006 69.34 57.29 23.77 33.56 80.03 33.01 26.32 05 - 1月- 2006 68.53 57.29 24.19 33.47 80.56 33.05 26.34 06 - 1月- 2006 67.57 58.43 24.52 33.7 82.96 33.25 26.26 09 - 1月- 2006 67.01 59.49 24.78 33.61 81.76 - 33.8826.21 2006年1月10日67.33 59.25 25.09 33.43 82.1 33.91 26.35 2006年1月11日68.3 59.28 25.33 33.66 82.19 34.5 26.63 2006年1月12日67.9 60.13 25.41 33.25 81.61 33.96 26.48

创建策略

检验一种等权重投资策略。这种策略将同等比例的可用资本投资于每项资产。本示例没有描述如何创建回溯测试策略。有关创建回溯测试策略的更多信息,请参见backtestStrategy

“RebalanceFrequency”每60天重新调整一次投资组合。这个例子没有使用回看窗口来重新平衡。

%制定策略numAssets =大小(pricesTT, 2);equals weightsvector = ones(1,numAssets) / numAssets;@(~,~) equalWeightsVector;ewStrategy = backtestStrategy (“EqualWeighted”equalWeightsRebalanceFcn,...“RebalanceFrequency”现年60岁的...“LookbackWindow”0,...“TransactionCosts”, 0.005,...“InitialWeights”equalWeightsVector)
ewStrategy = backtestStrategy with properties: Name: "EqualWeighted" RebalanceFcn: @(~,~)equalWeightsVector rebalanceffrequency: 60 TransactionCosts: 0.0050 LookbackWindow: 0 InitialWeights: [0.1429 0.1429 0.1429 0.1429 0.1429 0.1429 0.1429

运行,val

创建一个回溯测试引擎,并对一年的股票数据进行回溯测试。有关创建后台测试引擎的更多信息,请参见backtestEngine

%创建后台测试引擎。回溯测试引擎的属性%结果被初始化为空。val = backtestEngine (ewStrategy)
backtester = backtestEngine with properties: Strategies: [1x1 backtestStrategy] RiskFreeRate: 0 CashBorrowRate: 0 RatesConvention: "Annualized" Basis: 0 InitialPortfolioValue: 10000 NumAssets: [] Returns: [] Positions: [] Turnover: [] BuyCost: [] SellCost: []
%运行backtest。空属性现在被填充%详细的回测结果时间表。pricesTT val = runBacktest (val)
backtester = backtestEngine with properties: Strategies: [1x1 backtestStrategy] RiskFreeRate: 0 CashBorrowRate: 0 rate convention:“Annualized”Basis: 0 InitialPortfolioValue: 10000 NumAssets: 7 Returns: [250x1时间表]position: [1x1 struct] Turnover: [250x1时间表]BuyCost: [250x1时间表]SellCost: [250x1时间表]

生成资产曲线

使用equityCurve绘制等权重策略的权益曲线。

equityCurve (val)

图中包含一个轴对象。标题为Equity Curve的axis对象包含一个类型为line的对象。该对象表示EqualWeighted。

输入参数

全部折叠

回溯测试引擎,指定为backtestEngine对象。使用backtestEngine创建val对象。

请注意

val参数必须使用backtestEngine已使用runBacktest

数据类型:对象

(可选)有效的轴对象,指定为斧头使用创建的.在可选参数指定的轴线上创建绘图斧头参数而不是当前轴(gca)。可选参数斧头可以放在任何输入参数组合的前面。

数据类型:对象

输出参数

全部折叠

权益曲线图的句柄,返回为句柄对象。

介绍了R2021a