说我有一个矩阵(NX2),其中第一列的元素是秒数(从午夜开始),第二列是与秒相关联的股票收益。如何使用函数geomean并计算特定时间间隔的几何返回值?假设几何在每分钟间隔返回?问题是我可能会在某个特定的分钟间隔中说4个股票回报,有时在另一个区间内有10个回报。如果我按分钟提取所有交易,则每分钟间隔中登记的退货数量将不相同 谢谢!
答案 0 :(得分:1)
只要你有几分钟的时间(从午夜开始)作为一个整数,你可以使用我的consolidator函数和几何来计算你需要的东西,它是矢量化的。只需从文件交换中下载它。
Consolidator将返回在给定分钟内找到任何数据的时间向量,以及每次返回的几何平均值。
答案 1 :(得分:1)
您可以使用简单的arrayfun
:
>> n = [15 1;25 2;67 3; 99 4;182 5] #% example data
n =
#% t(s) val
15 1
25 2
67 3
99 4
182 5
>> t1=0:60:240;
>> t2=t1+60;
>> arrayfun(@(t1,t2) geomean(n( n(:,1)>t1 & n(:,1)<=t2, 2)), t1,t2)
ans =
1.4142 3.4641 NaN 5.0000 NaN
t1
和t2
只是您感兴趣的窗口的开始和结束时间的向量。在这里,我让它们连续60秒间隔;但它们可能是你想要的任何东西。非连续的,重叠的,你可以命名。
匿名函数捕获调用n
时存在的矩阵arrayfun
,并为每个t1,t2
对的矩阵行创建逻辑索引。