最初の列の要素が秒数 (午前 0 時から) で、2 番目の列がその秒に関連付けられた株式リターンである行列 (NX2) があるとします。関数 geomean を使用して、特定の時間間隔の幾何学的リターンを計算するにはどうすればよいですか? 地理平均が毎分間隔で戻るとしますか? 問題は、特定の 1 分間隔で 4 つの株の返品が発生し、別の間隔で 10 回の返品が発生した可能性があることです。すべての取引を分単位で抽出すると、1 分間隔ごとに登録されたリターンの数は同じではありません。
ありがとうございました!
質問する
1297 次
2 に答える
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
于 2012-06-01T14:57:20.300 に答える