1.学计量经济学源于对数学感兴趣,也源于对一些未知的东西进行预测,比如股市,而中国股市在2005年已经达到了弱式有效(本人通过谱分布检验股市收益率是否为鞅过程得到的结论),再运用模型进行预测好比预测彩票,于是学习计量更多的是数学的因素,而非应用的驱使。不再迷信小波分析、神经网络、ARIMA等一些线性的非线性的预测模型,逐渐的转向对宏观经济学的学习中去,同时,也渐渐的喜欢上了经济史,因为每一部历史都是事物相互作用的结果,去研究这个世界发展的规律,这才是走好经济学的根本,而不是计量经济学。

2.重申我的格言“计量仅仅是工具,代替不了思考”

3.注重思考,阅读一本书能吸收20%已较为不错了,不要往脑袋里装书,即使将一本书搬进脑袋,充其量也就一本书的价值,几十块钱罢了!

4.入门很难,真的很难,想起当年做一个东西时,没师傅指导,从零开始,没有休息,做不出来,躺地上,绝望,哭,站起来,继续……,最终解决。于是,总结出来,入门很难,只要能挺过来,你就算成功了!

Matlatb金融时间序列工具箱(Financial Time Series Toolbox)

建立金融时间序列

金融时间序列是一个结构变量,有五个属性:描述(description)、频率(frequency)、日期(dates)、显示(display)和至少一个数据列向量名(dataname),前三个属性的名字是固定的,分别为desc、freq和dates,时间序列的名字用户可以自行规定,如不更改的话,matlab默认为series1、series2、……、seriesN。

一、利用函数fints来创建金触时间序列对象

根据输入参数的类型,可分为五种形式:

(1)简单的矩阵输入

格式:ftsdata=fints(dates_data)

输入:dates_data是一个矩阵,第一列是时间,从第二列开始是时间序列的样本数据。

(2)向量输入

格式:ftsdata=fints(dates,data)

输入:dates是时间列向量,或者是元包列(非数据型,即文本型日期); data是时间序列的样本数据。

(3)自定义时间序列名

格式:ftsdata=fints(dates,data,dataNames)

输入:dates是时间列向量,或者是元包列(非数据型,即文本型日期); data是时间序列的样本数据,dataNames是变量名,如果是多个,应该用元包{’name1’,’name2’,……,’nameN’}的形式输入。

(4)输入频率

格式:ftsdata=fints(dates,data,datanames,freq)

输入:dates是时间列向量,或者是元包列(非数据型,即文本型日期); data是时间序列的样本数据。Freq有固定的格式:

1.UNKNOWN,Unknown ,unknown,U,u

2.DAILY,Daily,daily,D,d,1

3.WEEKLY,Weekly ,weekly,W,w,2

4.MONTHLY,Monthly,monthly,M,m,3

5.QUARTERLY,Quarterly, quarterly,Q,q,4

6.SEMIANNUAL,Semiannual,semiannual,S,s,5

7.ANNUAL,Annual,annua,A,a,6

5.输入变量描述

格式:ftsdata=fints(dates,data,datanames,freq,desc)

输入:dates是时间列向量,或者是元包列(非数据型,即文本型日期); data是时间序列的样本数据。Desc的形式是单个的字符型变量。

注意:1.第一种矩阵输入的方式,日期必须是数值型,其余的四种日期可以是数值型也可以是字符型。

2.所有的数据输入必须放在矩阵里,不能一个一个输入。

3.变量名由于是字符型,所有要用到元包。

4.描述性变量是单变量的字符型。

例子 创建日度数据(frequency=daily),变量名分别为data1、data2,描述字段为“实验数据”(desc=‘实验数据’).

5. datanames的列要与时间序列的个数即data的列相同。

例子,创建二元时间序列,第一个变量命名为data1,第二个变量命名为data2,数据的频率是日度数据,并给时间序列描述为“实验数据”

输入以下代码:

ftsdata=fints(dates,[data y],{'data1','data2'},1,'实验数据');

查看其第一行数据:

ftsdata(1)

则显示:

desc:  实验数据

freq:  Daily (1)

'dates:  (1)'    'data1:  (1)'    'data2:  (1)'

'03-Apr-1991'    [     727291]    [     988.05]

二、文本文件的转换方式(ascii2fts)(略)

三、调用金触时间序列对象(假设已经创建二维时间序列ftsdata)

(1)查看整个时间序列对象

在命令窗口中输入时间序列对象的名字即可

(2)查看部分行数据

跟查看矩阵的元素一样,查看第一行,就输入ftsdata(1)

(3)查看时间序列中的时间变量

法一:对象名.变量名

如    ftsdata.dates1

year(ftsdata.dates1) %查看时间序列的日期中的年份

month(ftsdata.dates1) %查看时间序列的日期中的月份

day(ftsdata.dates1) %查看时间序列的日期中的天

法二:ftse = extfiield(tsobj,fieldnames)

输入参数:

tsobj:对象名称

fieldnames:变量名称

例 ftse = extfiield(ftsdata,‘data1’)

其效果与ftsdata.data1相同。

(4)用时间标签提取数据

格式:newtsobj= tsobj(时间标签/整数标签)

1.时间标签引用:

时间标签的格式可以是文本格式,也可以是数值型的时间序列,可以是单个的也可以是多个的。

如:

ftsdata(‘3/4/2008’)

ftsdata({‘3/4/2008’, ‘10/4/2008’})

如果是连续日期则用双冒号隔开:

ftsdata({‘3/4/2008’ ::‘10/4/2008’})

这种引用方式,如果时间区间内有一个时间不在时间序列的中,则会提示出错。

2.整数标签引用:

整数标签引用与引用向量的元素一样。

演示生成金融时间序列数据

%% 生成一列时间序列

format short g  %设置数据精度

load szchengzhi.mat

dates=datenum(textdata);  %将字符型日期转化为数值型

ftsdata=fints([dates data]);

ftsdata.series1

ftsdata.dates %查看时间序列的日期

year(ftsdata.dates) %查看时间序列的日期中的年份

month(ftsdata.dates) %查看时间序列的日期中的月份

day(ftsdata.dates) %查看时间序列的日期中的天

%% 生成多列时间序列,以两列为例

x = randn(5341,1);y = filter([1 -1 1],1,x); %生成一个ma(2)过程ftsdata=fints([dates data y]);%生成两个时间序列,默认命名series1、series2

ftsdata       %查看整个时间序列

ftsdata.series1 %查看时间序列1

ftsdata.series2  %查看时间序列2

ftsdata(1)  %查看第1行时间序列

ftsdata=fints(dates,[data y],{'data1','data2'},1,'实验数据')

四、金融时间序列的使用和修改

(1)查看金融时间序列的属性

fnames=fieldnames(tsobj,srsnameonly)

显示金融时间序列的五个属性,由于'desc'、 'freq'、 'dates',描述性属性、频率属性和日期属性是不能自命名的,fnames的前三个变量分别是上述三个,接下来就是变量的名字了,以列数组的形式储存在fnames中。

Srsnameonly默认为0,表示列出所有属性,为1表示只列出变量名。

例  fnames = fieldnames(ftsdata)

fnames =

'desc'

'freq'

'dates'

'data1'

'data2'

例  fnames = fieldnames(ftsdata,1)

fnames =

'data1'

'data2'

(2)时间序列重命名

Newfts = chfield(oldfts,oldname,newname)

输入参数意义:

Oldfts:时间序列结构变量名

Oldname:时间序列中变量名称

Newname:时间序列中变量的新名称

例 对时间序列对象ftsdata中的变量data2命名为series2,新的时间序列对象命名Newfts

Newfts = chfield(ftsdata, ‘data2’, ‘series2’)

注意:字符型的输入都要加单引号’’,包括其他函数。

(3)对时间序列进行排序

Sfts = Sortfts(tsobj,seriesnames,flag)

输入参数为:

tsobj :时间序列对象

seriesnames:排序的变量名(字符型),即按哪一个变量进行排序,若不输入,则默认按第一个变量排序。

flag:排序方式(升序or降序),flag=1(默认),升序;flag=0,降序。

例子

Sfts1 = sortfts(ftsdata)

Sfts2 = sortfts(ftsdata,’data2’)

Sfts3 = sortfts(ftsdata,’data2’,-1)

Sfts4 = sortfts(ftsdata,-1)

(4)时间序列起始时间点

Datesbound=ftsbound(tsobj)

(5)删除时间序列的一列数据

Newobj = rmfield(oldtsobj,’fields’)

输入参数:fields是时间序列的名字,可以是单个也可以是多个,多个时是字符型数组。

例 ftsdata=fints(dates,[dates,data y],{'data1','data2','data3',},1,'实验数据')

删除data1

Nodata1=rmfield(ftsdata,’data1’);

删除data1和data2

Nodata2==rmfield(ftsdata,{'data1','data2'});

五.时间序列转化为矩阵数据、文本文件

(1)转化为矩阵

格式:data=fts2mat(ftsobj,IncludeDates,seriesnames)

输入参数:

fts2mat将时间对象ftsobj中的全部或部分时间序列转化为矩阵。

IncludeDates:是否将日期导出。

IncludeDates=0,或不输入,默认只对时间序列转化,不转化时间。IncludeDates=1,则把时间和时间序列数据转化在一个矩阵中。

Seriesnames:需要导出的时间序列名称,如果不输入默认为全部时间序列。

注意:1.第一个参数必须有,第二和第三个参数如果不输入,则取默认。

2.由于时间序列对象的引用后也是时间序列对象,因此,ftsobj

可以直接是引用后的时间对象,比如fts2mat (ftsdata.data1);

(2)转化为文本文件

格式:

Stat=fts2ascii(filename,tsobj,exttext)

Stat= fts2ascii(filename,dates,data,colheads,desc,exttext)

输入参数:

Filename:ASCII文件名称

Tsobj:需要转换的fints型格式的金融时间序列数据

Exttext:不需要的描述项的行数

Dates:包含日起的列向量,日期格式必须是序数型

Data:列转置矩阵,每一列是一个数据序列

Dcolheads:列标题的单元数组,第一个单元列一定是日期列

Desc:描述性字符串,是文件的第一行

输出:stat:转换成功标志,成功为1,否则为0.

例 fints1 = fts2ascii(‘aa.txt’,ftsdata)

六、时间序列的缺失值补齐

格式:fillts(oldfts,fill_method,‘增加新日期’)

fill_method:处理缺失值的方法,常用的有以下五种。

1.线性插值方法  ‘linear’、‘l’、‘le’

2.3次多项式插值‘cubic’、‘c’、‘ce’

3.样条插值‘spline’、‘s’、‘se’

4.最近插值法‘nearest‘、‘n’、‘ne‘

5.逐段光滑的三次Hemite多项式法‘pchip‘、‘p’、‘pe’

6. 常数插值。用固定的常数代替缺失值。

7. ‘增加新日期’表示增加时间序列的长度,增加一个日期。以后探索。

七、时间序列频率的转换

格式:newfts=convertto(oldfts,newfreq)

八、价格与收益率相互转换

(1)价格转化为收益率

格式[RetSeries,RetIntervals]=price2ret(TickSeries,TickTimes,Method)

输入参数

TickSeries:价格列向量或矩阵,如果是矩阵的话,则每一列是一个时间序列。

TickTimes:单调递增的时间向量,长度与价格序列长度一致,如果不输入,或者为‘[]’,则默认样本点从1,2……,length(时间序列)

Method:计算收益率的方法,menthd不输入或者输入‘Continuous’ /[]时,默认为连续复利的形式。输入‘periodic’表示单利。

输出:

RetSeries:资产收益率矩阵,行数比价格矩阵少一行

RetIntervals:相邻的时间差。RetIntervals(i)=TickTimes(i+1)-TickTime(i)

注:

Method=‘continuous’时,第i期的收益率计算公式如下:

RetSeries(i)=log[TickTimes(i+1)/TickTimes(i+1)]/ RetIntervals(i).

Method=‘periodic’时, 第i期的收益率计算公式如下:

RetSeries(i)= [TickTimes(i+1)/TickTimes(i+1)-1]/ RetIntervals(i).

如果没有后面两个参数,则直接公式log[TickTimes(i+1)/TickTimes(i+1)]计算。

(2)收益率转化为价格

格式:

[TickSeries,TickTimes]=ret2price(RetSeries,StartPrice,,retinterval,starttime,method)

输入参数:

Retseries:收益率数据列向量/矩阵

StartPrice:资产的初试价格向量,元素个数为收益率矩阵的列数。默认值为1.

Retinterval:时间区间,默认值为1

Starttime:初试时间,标量,默认值为0

Method:与(1)相同。

输出:

TickSeries:资产价格矩阵

Starttime:时间向量。

matlab 金融时间序列工具箱,Matlatb金融时间序列工具箱——建立金融时间序列相关推荐

  1. 金融matlab创建3x3数组,Matlatb金融时间序列工具箱——建立金融时间序列

    1.学计量经济学源于对数学感兴趣,也源于对一些未知的东西进行预测,比如股市,而中国股市在2005年已经达到了弱式有效(本人通过谱分布检验股市收益率是否为鞅过程得到的结论),再运用模型进行预测好比预测彩 ...

  2. 金融数据分析导论基于R语言 第二章 金融时间序列的线性模型课后习题答案

    1.考虑从1948年1月到2011年11月美国失业率的月数据(见文件m-unrate-4811.txt),数据来目美国圣路易斯的联邦储备银行. (a)该除非特别声明,在以下习题中都用5%的显著性水平来 ...

  3. MATLAB工具箱(功能型工具箱和领域型工具箱)

    •        MATLAB有三十多个工具箱大致可分为两类:功能型工具箱和领域型工具箱.$ B; `: L2 v, Q/ B4 Z" o            功能型工具箱主要用来扩充MA ...

  4. MATLAB应用实战系列(七十七)-基于长时间序列栅格数据的MK检验

    1 MK检验介绍 MK检验是曼-肯德尔法,又称Mann-Kenddall 检验法,是一种气候诊断与预测技术,应用Mann-Kendall检验法可以判断气候序列中是否存在气候突变,如果存在,可确定出突变 ...

  5. matlab中调用cplex 以及使用 Yalmip 工具箱

    matlab中调用cplex 以及使用 Yalmip 工具箱_天天向上的专栏-CSDN博客_matlab调用cplex CPLEX 在matlab中实现的一个例子-RCPSP_starry0001的博 ...

  6. matlab中a2qua,matlab-toolbox-forINS 惯性导航系统的 工具箱,里面包含使用说明以及各个m文件的功能 272万源代码下载- www.pudn.com...

    文件名称: matlab-toolbox-forINS下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 1021 KB 上传时间: 2015-04-02 下载 ...

  7. [Matlab科学计算] Matlab工具箱介绍和常用工具箱命令

    首先介绍一下常用工具箱的调用命令,这部分持续更新,遇到再补充,也欢迎大家在评论区补充. 1.优化工具箱:optimtool 2.系统辨识工具箱 :ident 3.数字信号处理工具箱:sptool 4. ...

  8. 时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测

    时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测 效果一览 基本 ...

  9. 关于最优化工具箱cvx和优化工具箱optimization App/Toolbox的区别(MATLAB的使用技巧系列)

    凸优化工具箱--CVX 使用 每日忠告 凸优化工具箱--CVX 下载cvx工具箱,我的电脑是win64位,所以下载cvx-w64.zip,如果是学生,可以在学术许可进行申请. 如果想要好好学的话建议按 ...

最新文章

  1. MLIR: Infrastructure架构
  2. Android开发-ADT Bundle安装
  3. Excel+DDT数据驱动实例
  4. 不确定规划及应用代码_性能测试划分之应用领域
  5. 如何备份服务器日志到其他服务器_KIWI Syslog日志服务器搭建及配置
  6. linux e1000e 网卡驱动,在centos7上安装intel e1000e 网卡驱动
  7. 使用Axis,在webservice的服务器端如何取到客户端的IP地址
  8. Python+OpenCV:尺度不变特征变换 (SIFT, Scale-Invariant Feature Transform)
  9. ADT版本查看,This Android SDK requires Andr...ate ADT to the latest问题
  10. jq 判断手机端还是PC端
  11. linux给普通用户添加管理员权限,linux 赋予普通用户管理员权限
  12. 查询域名对应的IP以及查询该IP是否已经备案开放80端口
  13. 单片机学习-利用intrins.h中的_crol_和_cror_进行流水灯位移
  14. mybatis中获取当前时间_MySQL NOW和SYSDATE函数:获取当前时间日期
  15. Scrapy报错之:Request object has no attribute dont_filter
  16. java 动态线程池_线程池的参数动态调整
  17. 石大师装机大师怎么重装系统
  18. Docker下运行Presto访问Redis及BI展示
  19. house of apple2(改进)
  20. (15)卡巴斯基防病毒软件介绍-概述

热门文章

  1. 计算机专业问题在线解答,计算机科学专业的编程问题,在线解答,有问必答
  2. 浅谈宽带卫星通信系统
  3. 如何理解WPF中的样式(Style)与模板ControlTemplate
  4. 哈尔滨市贯日儿童影楼管理系统
  5. 管家婆财贸双全删除科目提示该会计科目已经在常用凭证中使用
  6. HMS Core Discovery第15期回顾长文|构筑立体世界,共造沉浸式营销
  7. 如何利用JS加密工具来压缩体积
  8. office多级列表编号设置
  9. phpstorm 2019.1 汉化包 支持打开设置
  10. Python练习(三)