主要内容

price2ret

转换价格回报

描述

例子

(返回,时间间隔)= price2ret (价格)返回的矩阵numVars不断加剧返回系列返回和相应的时间间隔时间间隔矩阵的numVars价格系列价格

例子

ReturnTbl= price2ret (PriceTbl)返回不断加剧的表或时间表返回系列ReturnTbl每个变量的价格系列的表或时间表PriceTbl。选择不同的变量资源描述的计算回报,使用DataVariables名称-值参数。

例子

(___)= price2ret (___,名称=值)指定选项使用一个或多个名称参数除了任何输入参数组合在以前的语法。price2ret返回输出参数组合对应的输入参数。例如,price2ret(资源、方法=“周期”,DataVariables = 1:5)计算前五个变量的简单的周期性返回在输入表中资源描述

例子

全部折叠

加载Schwert股票数据集Data_SchwertStock.mat,其中包含每天的价格标普指数从1930年到2008年,在其他变量(输入描述更多的细节)。

负载Data_SchwertStocknumObs =身高(DataTableDly)
numObs = 20838
日期= datetime (datesDly ConvertFrom =“datenum”);

标普系列价格转换为回报。

价格= DataTableDly.SP;回报= price2ret(价格);

返回20837 - 1的向量的日常标准普尔收益不断加剧。

r9机型=回报(9)
r9机型= 0.0033
p9_10 =(价格(9)价格(10))
p9_10 =1×221.4500 - 21.5200

返回(9)= 0.0033每日返回的价格区间[21.45,21.52]。

情节(日期、DataTableDly.SP) ylabel (“价格”)yyaxis正确的情节(日期(1:end-1),返回)ylabel (“回归”)标题(“标普指数价格和回报”)

图包含一个坐标轴对象。坐标轴对象标题标普指数价格并返回,ylabel返回包含2线类型的对象。

表中的价格系列转换为简单的周期性返回系列。

载入美国股票指数的数据集,其中包含表数据表每天的收盘价的纽交所和纳斯达克综合指数从1990年到2011年。

负载Data_EquityIdx

从表中创建一个时间表。

日期= datetime(日期、ConvertFrom =“datenum”);TT = table2timetable (DataTable, RowTimes =日期);numObs =身高(TT);

纳斯达克和纽约证券交易所的价格转换成简单的周期性和不断加剧的回报。

varnames = [“纳斯达克”“纽约”];DataVariables = varnames TTRetC = price2ret (TT);TTRetP = price2ret (TT, DataVariables = varnames方法=“周期”);

因为TT是一个时间表,TTRetCTTRetP时间表。

情节返回系列相应的价格过去50观察。

idx = ((numObs - 1) - 51): (numObs - 1);图绘制(日期(idx + 1), TT。纽交所(idx + 1)标题(“纽约证交所指数价格和回报”)ylabel (“价格”)yyaxis正确的h =情节(日期(idx), [TTRetC.NYSE (idx) TTRetP.NYSE (idx)]);h (2)。标志=“o”;h (2)。颜色=“k”;ylabel (“回归”)传说([“价格”“连续”“周期”),位置=“西北”)轴

图包含一个坐标轴对象。坐标轴对象标题纽约证交所指数价格并返回,ylabel返回包含3线类型的对象。这些对象代表价格,连续,周期。

图绘制(日期(idx + 1), TT。纳斯达克(idx + 1)标题(“纳斯达克指数价格和回报”)ylabel (“价格”)yyaxis正确的h =情节(日期(idx), [TTRetC.NASDAQ (idx) TTRetP.NASDAQ (idx)]);h (2)。标志=“o”;h (2)。颜色=“k”;ylabel (“回归”)传说([“价格”“连续”“周期”),位置=“西北”)轴

图包含一个坐标轴对象。坐标轴对象标题纳斯达克指数价格并返回,ylabel返回包含3线类型的对象。这些对象代表价格,连续,周期。

在这种情况下,简单的周期和连续计算返回的每个系列的价格是相似的。

创建两个股票价格系列不断加剧的回报,有以下特点:

  • 系列1生长以10%的速度在每个观测时间。

  • 系列2的变化以随机均匀的速度在区间[-0.1,0.1]每个观测时间。

  • 每个系列始于价格100和10个观测长度。

rng (1);%的再现性numObs = 10;p1 = 100;r1 = 0.10;r2 = [0;unifrnd (-0.10, 0.10, numObs - 1, 1)];s1 = 100 * exp (r1 * (0: (numObs - 1)));cr2 = cumsum (r2);s2 = 100 * exp (cr2);S = (s1 s2);

每个系列的价格转换为一个返回系列,并返回观察间隔。

(R,间隔)= price2ret(年代);

前置返回系列,输入和输出元素是相同的长度和对应。

[[南;间隔]的[[南南);R) r2)
ans =10×6南南南0 1.0000 110.5171 98.3541 100.0000 100.0000 0.1000 -0.0166 -0.0166 1.0000 122.1403 102.7850 0.1000 0.0441 0.0441 1.0000 134.9859 93.0058 0.1000 -0.1000 -0.1000 1.0000 149.1825 89.4007 0.1000 -0.0395 -0.0395 1.0000 164.8721 83.3026 0.1000 -0.0706 -0.0706 1.0000 182.2119 76.7803 0.1000 -0.0815 -0.0815 1.0000 201.3753 72.1105 0.1000 -0.0627 -0.0627 1.0000 222.5541 69.9172 0.1000 -0.0309 -0.0309 1.0000 245.9603 68.4885 0.1000 -0.0206 -0.0206

price2ret从模拟系列回报利率匹配率。price2ret假定价格记录在常规时间基础。因此,所有价格之间的持续时间1

把价格再次返回,但从8月1日开始,将价格与年2010。

tau1 = datetime(2010、08年01);日期= tau1 +年((0:(numObs-1)));[,intervalsy] = price2ret(年代,蜱虫=日期);[[南;intervalsy]的[[南南);一)r2)
ans =10×6南南南0 365.2425 110.5171 98.3541 100.0000 100.0000 0.0003 -0.0000 -0.0166 365.2425 122.1403 102.7850 0.0003 0.0001 0.0441 365.2425 134.9859 93.0058 0.0003 -0.0003 -0.1000 365.2425 149.1825 89.4007 0.0003 -0.0001 -0.0395 365.2425 164.8721 83.3026 0.0003 -0.0002 -0.0706 365.2425 182.2119 76.7803 0.0003 -0.0002 -0.0815 365.2425 201.3753 72.1105 0.0003 -0.0002 -0.0627 365.2425 222.5541 69.9172 0.0003 -0.0001 -0.0309 365.2425 245.9603 68.4885 0.0003 -0.0001 -0.0206

price2ret假定时间单位是天。因此,所有时间是大约365,回报是归一化的时间单位。

再次计算回报,但指定的观察时间。

[Ryy, intervalsyy] = price2ret(年代,蜱虫=日期、单位=“年”);[[南;intervalsyy]的[[南南);Ryy) r2)
ans =10×6南南南0 1.0000 110.5171 98.3541 100.0000 100.0000 0.1000 -0.0166 -0.0166 1.0000 122.1403 102.7850 0.1000 0.0441 0.0441 1.0000 134.9859 93.0058 0.1000 -0.1000 -0.1000 1.0000 149.1825 89.4007 0.1000 -0.0395 -0.0395 1.0000 164.8721 83.3026 0.1000 -0.0706 -0.0706 1.0000 182.2119 76.7803 0.1000 -0.0815 -0.0815 1.0000 201.3753 72.1105 0.1000 -0.0627 -0.0627 1.0000 222.5541 69.9172 0.1000 -0.0309 -0.0309 1.0000 245.9603 68.4885 0.1000 -0.0206 -0.0206

price2ret可实现回报相对于年,现在返回率匹配模拟利率。

输入参数

全部折叠

时间序列的价格,指定为一个numObs——- - - - - -numVars数字矩阵。每一行的价格对应于一个指定的观察时间可选的蜱虫名称-值参数。每一列的价格对应于一个单独的价格系列。

数据类型:

时间序列的价格,指定为一个表或时间表numObs行。每一行的资源描述是一个观察时间。表,可选的蜱虫名称-值参数指定了观察时间。对于一个时间表,PriceTbl.Time指定观察时间,它必须是一个datetime向量。

指定numVars的变量,计算回报,通过使用DataVariables论点。所选变量必须是一个数字。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:price2ret(资源、方法=“周期”,DataVariables = 1:5)计算前五个变量的简单的周期性返回在输入表中资源描述

观察时间τ,指定长度numObs数字或日期时间向量增加价值。

当输入价格系列矩阵或表格,默认1:numObs

当输入价格系列的时间表,price2ret使用行乘以PriceTbl.Time而忽略蜱虫PriceTbl.Time必须是一个datetime向量。

例子:蜱虫= datetime (1950:2020 12 31)指定每年从1950年到2020年年底。

例子:蜱虫= datetime (1950、03、31): calquarters (1): datetime (2020、12、31)指定每个季度末,在1950年到2020年。

数据类型:|datetime

时间单位观察时使用蜱虫日期时间,指定一个值在这个表。

价值 描述
“毫秒” 毫秒
“秒”
“分钟” 分钟
“小时” 小时
“天”
“年”

price2ret需要时间单位转换时间间隔为正常化返回数值。

当的值蜱虫名称-值参数是一个数值向量,price2ret忽略的价值单位

例子:单位= "年"

数据类型:字符|字符串

复利计算方法,在此表指定为一个值。

价值 描述
“连续” 计算不断加剧的回报
“周期” 计算简单的周期性返回

例子:方法=“周期”

数据类型:字符|字符串

变量PriceTbl,price2ret计算回报,指定为一个字符串向量或细胞特征向量的向量包含变量名称PriceTbl.Properties.VariableNames,或者一个整数或逻辑向量代表的指标名称。所选变量必须是一个数字。

例子:DataVariables = (“GDP”“CPI”)

例子:DataVariables =(真真假假)DataVariables = [1 - 2]选择第一个表和第二个表变量。

数据类型:|逻辑|字符|细胞|字符串

输出参数

全部折叠

返回系列,作为(返回numObs————- 1)numVars数字矩阵。price2ret返回返回当你提供输入价格

返回的行r与价格区间(p,p+ 1),=1:(numObs - 1)根据复合方法方法:

  • 方法“连续”,

    r = 日志 ( p + 1 / p ) τ + 1 τ

  • 方法“周期”,

    r = ( p + 1 / p ) 1 τ + 1 τ

当观察时间τ(见蜱虫日期时间,规范区间的大小τ+ 1- - - - - -τ取决于指定的时间单位(见单位)。

观察之间的时间间隔τ+ 1- - - - - -τ,返回长度numObs- 1数字向量。price2ret返回时间间隔当你提供输入价格

当观察倍(见蜱虫日期时间,在指定的时间间隔大小取决于单位(见单位)。

返回系列和时间间隔,作为一个表或时间表,返回相同的数据类型PriceTbl,numObs- 1行。price2ret返回ReturnTbl当你提供输入PriceTbl

ReturnTbl包含输出返回时间间隔

ReturnTbl同事观察时间τ+ 1与间隔结束时返回的行r

算法

考虑以下变量:

  • p是一个系列的价格(价格)。

  • r是相应的返回系列(返回)。

  • τ是一个向量的观测时间(蜱虫)。

  • δ是观察之间的一系列的长度(时间间隔)。

下图显示了输入和输出相关联。

数轴上显示输入和输出之间的关系

版本历史

之前介绍过的R2006a

全部展开

另请参阅

|