楼主: 风早07
5545 2

[问答] MATLAB怎么定义延迟函数lag1 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
1 小时
注册时间
2014-12-17
最后登录
2017-9-1

楼主
风早07 发表于 2014-12-17 21:47:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
例如求收益率时 dailyret=(cl-lag1(cl))./lag1(cl),万分感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB atlab matla lag Lab 收益率

沙发
magicsun 发表于 2014-12-18 16:58:43
mlag函数,和r为时间序列,[0;r]也可以做出来

藤椅
guouoo 在职认证  发表于 2016-11-7 20:35:47
你这个收益率的计算应该是量化交易 欧内斯特陈 写的那本书里面提到的吧。
lag1这个函数在matlab里面可以另外开一个 .m 为后缀的文件来写,然后文件里面写以下code:

function y = lag1(x)
if (isnumeric(x))
y = [NaN(1, size(x,2)) ; x(1:end-1, :) ]; elseif(ischar(x))
y = [repmat('''', [1 size(x,2)]) ; x(1:end-1, :) ]; else error('Can only be numeric or char array');
End

这code是2014东北财大出版社的版本,p52提供的。意思就是把一列数或字符串 往后挪一下,如果是数字的话第一行数就用NaN代替,如果是字符串的话第一行就用 '' 代替。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-15 05:03