fints储存金融时间序列

处理一分钟沪深高频数据,填补空缺数据。

step1:用excel中的vlookup函数生成一个时间序列完整的表格(缺失的数据为空)
step2:

>>DataSet=importdata('dataa.xlsx'); %导入excel表格数据 用xlsread应该也可以

>> myFTS=fints(DataSet(:,1),DataSet(:,2:7),{'a','b','c','d','e','f'}); %返回金融时间序列对象

1、访问fints对象的数据

 >>myFTS(7:8) %第7行到第8行的数据
>>myFTS([1 3 4]) %第1、3、4行的数据
(index只能是行)
>>myFTS.close   %名为“close”列的数据
(DOT indexing,列)
>>myFTS.close(1:3) %名为“close”列 从第一行到第三行的数据
(两者结合)
注意,无论使用什么方式访问,最后得到的,仍旧是一个 FINTS 对象

2、fints对象的运算
和矩阵的运算基本相同
>> myFTS.close+1; % 名为“close”一列数据 加一 >> myFTS.close - myFTS.open; %列相减 >> myFTS.high ./ myFTS.low; %列相除
 
 

不能直接做的运算,可以用 fts2mat 方法,把 FINTS 对象的数据先转换成矩阵,再进行运算,如:

 
 
>>sum( fts2mat(myFTS.close) )   %fts2mat 转化为矩阵   http://cn.mathworks.com/help/finance/fts2mat.html



参考:https://zhuanlan.zhihu.com/p/21409091

isnan 判断是否为NAN
isempty 判断矩阵(向量)是否为空

for i=1:270:811   #测试前三天数据 以270为跨度进行循环 判断每天第一个数据是否缺失
if isnan(DataSet(i,2))==1 #判断每天第一个数据是否缺失
j=i; 
while isnan(DataSet(j,2))==1  #前j个数据缺失
j=j+1;
end
DataSet(i,2:7)=DataSet(j+1,2:7); #讲第j+1行数据赋值给第j行
end
for k=i+1:1:i+269  #处理中间诗句缺失
if isnan(DataSet(k,2))==1
DataSet(k,2:7)=DataSet(k-1,2:7);
end
end
end

 

转载于:https://www.cnblogs.com/amanon/p/6361135.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值