主要内容

金融时间序列操作

几个MATLAB®函数已重载以处理财务时间序列对象。重载函数包括基本的算术函数,如加法、减法、乘法和除法,以及其他函数,如算术平均、过滤器和差分。此外,还设计了具体的方法来处理财务时间序列对象。如需按类型分组的函数列表,请输入

帮助ftseries

在MATLAB命令提示符。

基本的算术

金融时间序列对象允许您对整个对象或特定对象字段进行加、减、乘和除操作。这是MATLAB结构不允许的特性。不能对整个MATLAB结构进行算术运算,只能对结构的特定字段进行算术运算。

只要两个金融时间序列对象兼容,就可以对它们进行算术运算。(除了描述和与数据系列相关的值外,所有内容都相同。)

请注意

兼容的时间序列不一样平等的时间序列。当两个时间序列对象除描述字段外的所有内容都相同时,则两个时间序列对象相等。

下面是一些金融时间序列对象的算术运算示例。

加载一个mat文件,其中包含一些金融时间序列对象示例:

负载dji30short

其中一个对象dji30short被称为myfts1

myfts1 = desc: DJI30MAR94.dat频率:每日(1)日期:(20)的开放:(20)的高:(20)的低:(20)的近:(20)的“04 - mar - 1994”[3830.90][3868.04][3800.50][3832.30]' 07 - 3月- 1994 '[3851.72][3882.40][3824.71][3856.22]“08 - mar - 1994”[3858.48][3881.55][3822.45][3851.72]' 09 - 3月- 1994 '[3853.97][3874.52][3817.95][3853.41]“10 - 3月- 1994”(3852.57)(3865.51)(3801.63)(3830.62)…

创建与相同的另一个金融时间序列对象myfts1

Newfts = fints(myfts1。日期,fts2mat (myfts1) / 100,...“开放”“高”“低”“关闭”} 1“新FTS”
警告:FINTS将在未来的版本中删除。用“时间表”代替。>在fints/subsref(第106行)警告:fints将在未来的版本中删除。用“时间表”代替。>在fints/fts2mat(第29行)警告:fints将在未来的版本中删除。用“时间表”代替。>在fints(第165行)警告:fints将在未来的版本中删除。用“时间表”代替。>在fints/display(第66行)newfts = desc:新FTS频率:每日(1)日期:(20)的开放:(20)的高:(20)的低:(20)的近:(20)的“04 - mar - 1994”[38.31][38.68][38.01][38.32]' 07 - 3月- 1994 '[38.52][38.82][38.25][38.56]“08 - mar - 1994”[38.58][38.82][38.22][38.52]' 09 - 3月- 1994 '[38.54][38.75][38.18][38.53]“10 - 3月- 1994”(38.53)(38.66)(38.02)(38.31)…

对两个时间序列对象进行加法操作:

Addup = myfts1 + newfts
警告:FINTS将在未来的版本中删除。用“时间表”代替。> In +(第22行)警告:FINTS将在未来的版本中删除。用“时间表”代替。> In fints/display(第66行)addup = desc: DJI30MAR94.dat freq: Daily (1)日期:(20)的开放:(20)的高:(20)的低:(20)的近:(20)的“04 - mar - 1994”[3869.21][3906.72][3838.51][3870.62]' 07 - 3月- 1994 '[3890.24][3921.22][3862.96][3894.78]“08 - mar - 1994”[3897.06][3920.37][3860.67][3890.24]' 09 - 3月- 1994 '[3892.51][3913.27][3856.13][3891.94]“10 - 3月- 1994”(3891.10)(3904.17)(3839.65)(3868.93)…

现在,对两个时间序列对象执行减法操作:

Subout = myfts1 - newfts
警告:FINTS将在未来的版本中删除。用“时间表”代替。> In -(第23行)警告:FINTS将在未来的版本中删除。用“时间表”代替。> In fints/display(第66行)subout = desc: DJI30MAR94.dat freq: Daily (1)日期:(20)的开放:(20)的高:(20)的低:(20)的近:(20)的“04 - mar - 1994”[3792.59][3829.36][3762.49][3793.98]' 07 - 3月- 1994 '[3813.20][3843.58][3786.46][3817.66]“08 - mar - 1994”[3819.90][3842.73][3784.23][3813.20]' 09 - 3月- 1994 '[3815.43][3835.77][3779.77][3814.88]“10 - 3月- 1994”(3814.04)(3826.85)(3763.61)(3792.31)…

对象和矩阵的操作

您还可以执行涉及金融时间序列对象和矩阵或标量的操作:

Addscalar = myfts1 + 10000
警告:FINTS将在未来的版本中删除。用“时间表”代替。> In +(第22行)警告:FINTS将在未来的版本中删除。用“时间表”代替。> In fints/display(第66行)addscalar = desc: DJI30MAR94.dat freq: Daily (1)'日期:(20)' '打开:(20)' '高:(20)' '低:(20)' '关闭:(20)' ' 1994年3月04日'[13830.90][13868.04][13800.50][13832.30]' 1994年3月07日'[13851.72][13882.40][13824.71][13856.22]' 1994年3月08日'[13858.48][13881.55][13822.45][13851.72]' 1994年3月09日'[13853.97][13874.52][13817.95][13853.41]' 1994年3月10日'[13852.57][13865.51][13801.63][13862.70]…

对于同时使用对象和矩阵的操作,矩阵的大小必须与对象的大小匹配。例如,要减去的矩阵myfts1必须20.——- - - - - -4,因为myfts1有20个日期和4个数据序列:

Submtx = myfts1 - randn(20,4)
警告:FINTS将在未来的版本中删除。用“时间表”代替。> In -(第23行)警告:FINTS将在未来的版本中删除。用“时间表”代替。> In fints/display(第66行)submtx = desc: DJI30MAR94.dat freq: Daily (1)日期:(20)的开放:(20)的高:(20)的低:(20)的近:(20)的“04 - mar - 1994”[3831.33][3867.75][3802.10][3832.63]' 07 - 3月- 1994 '[3853.39][3883.74][3824.45][3857.06]“08 - mar - 1994”[3858.35][3880.84][3823.51][3851.22]' 09 - 3月- 1994 '[3853.68][3872.90][3816.53][3851.92]“10 - 3月- 1994”(3853.72)(3866.20)(3802.44)(3831.17)…

具有不同数据序列名称的算术运算

对两个具有相同大小但包含不同数据序列名称的对象进行算术运算需要使用该函数fts2mat.这个函数提取对象中的值,并将它们放入一个矩阵或向量中。

要查看示例,请创建与的大小相同的另一个金融时间序列对象myfts1但是使用不同的值和数据序列名称:

Newfts2 = fints(myfts1。日期,fts2mat (myfts1/10000),...“Rat1”“Rat2”“Rat3”“Rat4”} 1“新FTS”
警告:FINTS将在未来的版本中删除。用“时间表”代替。>在fints/subsref(第106行)警告:fints将在未来的版本中删除。用“时间表”代替。>在/(第25行)警告:FINTS将在未来的版本中删除。用“时间表”代替。>在fints/fts2mat(第29行)警告:fints将在未来的版本中删除。用“时间表”代替。>在fints(第165行)警告:fints将在未来的版本中删除。用“时间表”代替。 > In fints/display (line 66) newfts2 = desc: New FTS freq: Daily (1) 'dates: (20)' 'Rat1: (20)' 'Rat2: (20)' 'Rat3: (20)' 'Rat4: (20)' '04-Mar-1994' [ 0.38] [ 0.39] [ 0.38] [ 0.38] '07-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '08-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '09-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '10-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.38] '11-Mar-1994' [ 0.38] [ 0.39] [ 0.38] [ 0.39] '14-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '15-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.38] '16-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.38] '17-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '18-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '21-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '22-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '23-Mar-1994' [ 0.39] [ 0.39] [ 0.38] [ 0.39] '24-Mar-1994' [ 0.38] [ 0.39] [ 0.38] [ 0.38]...

如果您试图将这个新对象添加(或减去,等等)到myfts1,则错误指示对象不相同。尽管这两个时间序列对象包含相同的日期、日期数、数据序列数和频率,但它们没有相同的数据序列名称。使用fts2mat要绕开这个问题:

Addother = myfts1 + fts2mat(newfts2)
警告:FINTS将在未来的版本中删除。用“时间表”代替。>在fints/fts2mat(第29行)警告:fints将在未来的版本中删除。用“时间表”代替。> In +(第22行)警告:FINTS将在未来的版本中删除。用“时间表”代替。> In fints/display(第66行)addother = desc: DJI30MAR94.dat freq: Daily (1)日期:(20)的开放:(20)的高:(20)的低:(20)的关闭:(20)' ' 1994年4- 3月' '[3831.28][3868.43][3800.88][3832.68]' 1994年3月' '[3852.11][3882.79][3881.94][3881.94][3822.83][3852.11][1994年3月' '[3854.36][3874.91][3818.33][3853.80][1994年3月10日' '[3852.96][3865.90][3802.01][3831.00][1994年3月11日' '[3832.96][3873.22][3807.07][3863.09]' 1994年3月14日' '[3870.68][3894.60][389.34][383.37]' 1994年3月15日' [3863.80][3888.85][3827.23][3849.97][3851.42][[3879.92][3820.32][3848.53] ' 1994年3月17日'[3854.01][3891.73][3822.04][3865.53]' 1994年3月18日'[3865.81][3912.17][3839.03][3896.04]' 1994年3月21日'[3878.77][3898.64][3839.03][3865.24]' 1994年3月22日'[3866.10][3896.62][3841.04][3862.94]…

此操作在对象中添加包含数据系列内容的矩阵newfts2myfts1.在决定以这种方式组合财务时间序列对象之前,应该仔细考虑对数据的影响。

其他算术运算

除了基本的算术运算外,还有其他几个数学函数直接作用于金融时间序列对象。这些函数包括指数函数(经验值)、自然对数(日志)、公对数(log10),以及更多。

另请参阅

|||||||||||||||||||||

相关的话题