Main Content

将金融时间序列对象 fints 转换为时间表

在 R2018a 中,金融时间序列 (fints) 及其关联方法已经被 MATLAB® timetable 函数取代。如果您使用 fints 或其关联方法,您会收到警告。您可以使用 fts2timetablefints 对象转换为 timetable 对象。为了帮助您从较旧的 fints 转换为更新的 timetable 功能,请使用以下信息。

创建时间序列

I/O 相关操作

任务旧功能新功能
通过传入数据和日期来构造fints(dates,data,datanames)

timetable(rowTimes,var1,...,varN,'VariableNames',{'a','b',...})

通过转换文件来构造ascii2fts(filename,descrow,colheadrow,skiprows)

T = readtable(filename,opts,Name,Value)

TT = table2timetable(T,'RowTimes',timeVarName)

写入文件fts2ascii(filename,tsobj,exttext)writetable(TT,filename)
转换为矩阵fts2mat(tsobj)

S = vartype('numeric');

TT2 = TT(:,S)

TT2.Variables

对对象进行索引

对对象进行索引

任务旧功能新功能
使用日期进行索引myfts('05/11/99')

TT({'1999-05-11'},:)

使用日期范围进行索引myfts ('05/11/99::05/15/99')

S = timerange('1999-05-11','1999-05-15');

TT2 = TT(S,:)

使用整数进行行索引

myfts.series2(1)

myfts.series2([1, 3, 5])

myfts.series2(16:20)

TT(1,{'series2'})

TT([1, 3, 5],{'series2'})

TT(16:20,{'series2'})

特定时间字段的内容myfts.timestimeofday(TT.Properties.RowTimes)
矩阵中特定字段的内容fts2mat(myfts.series2)

TT.series2

变换时间序列

假设所有变量都是时间表中的数值,或者可以对 TT2 应用运算:

S = vartype('numeric');

TT2 = TT(:,S)

过滤时间序列

任务旧功能新功能
Boxcox 变换newfts = boxcox(oldfts)

TT.Variables = boxcox(TT.Variables)

差分diff(myfts)

TT{2:end,:} = diff(TT.Variables)

TT(1,:) = []

使用整数进行行索引

fillts(oldfts,fill_method)

fillmissing(TT,method)

(假设没有日期缺失)

线性滤波filter(B,A, myfts)

TT.Variables = filter(b,a,TT.Variables)

使时间序列对象滞后或超前

lagts(myfts,lagperiod)

leadts(myfts,leadperiod)

lag(TT,lagperiod)

lag(TT,-leadperiod)

(假设时间表有固定间隔)

定期平均peravg(myfts)

retime(TT,newTimes,'mean')

对数据进行下采样resamplets(oldfts,samplestep)

retime(TT,newTimeStep,method)

平滑处理数据smoothts(input)

smoothdata(TT)

移动平均线tsmovavg(tsobj,method,lag)

movavg(TT,type,windowSize)

转换时间序列

假设所有变量都是时间表中的数值,或者可以对 TT2 应用运算:

S = vartype('numeric');

TT2 = TT(:,S)

转换运算

任务旧功能新功能
转换为指定频率convertto(oldfts,newfreq)

retime(TT,newTimeStep,method)

转换为每年toannual(oldfts,...)

convert2annual(TT,…)

转换为每日todaily(oldfts,...)convert2daily(TT,…)
转换为每月tomonthly(oldfts,...)convert2monthly(TT,…)
转换为每季度toquarterly(oldfts,...)

convert2quarterly(TT,…)

转换为每半年tosemi(oldfts,...)

convert2semiannual(TT,…)

转换为每周toweekly(oldfts,...)

convert2weekly(TT,…)

合并时间序列

合并运算

任务旧功能新功能
合并多个时间序列对象merge(fts1,fts2)

[TT1;TT2](要求变量名称相同)

unique(TT)

将金融时间序列对象水平串联horzcat(fts1,fts2)[fts1,fts2]

horzcat[TT1,TT2](要求变量名称相同)或

synchronize(TT1,TT2)

将金融时间序列对象垂直串联vertcat(fts1,fts2)[fts1;fts2]vertcat[TT1;TT2]

分析时间序列

由于时间表具有可包含异构变量的灵活性,它不支持数学运算,也不支持描述性统计计算。如果您想要对时间表应用任何数值计算,请按照以下规范操作。

假设所有变量都是时间表中的数值,或者可以对 TT2 应用运算:

S = vartype('numeric');

TT2 = TT(:,S)

描述统计学以及算术和数学运算

任务旧功能新功能
提取数值数据srs2 = myfts.series2

TT.Variables

应用一些选项(统计量)例如:minmaxmeanmediancovstdvar

cov(TT.Variables)

应用一些选项(运算)例如:sumcumsum

TT.Variables = cumsum(TT.Variables)

数据提取

有关数据提取方法和示例,请参阅 timetable 文档。

另请参阅

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

相关主题