1

次のデータ/セットがあります (例を明確にするための簡略化されたバージョン):

  • 3*10indexBest.
  • 10*10dayret という名前のユニバース (株式のユニバースは 10) の各証券の各期間のリターンのマトリックス。

理想的には、各期間の各ポートフォリオの合計リターンを 1 つのマトリックスに計算できるループを作成したいと考えています(リターン * 日付、1*10または10*1その逆)。

10*私はポートフォリオの単一期間に対してこれを行いました。以下を参照してください。ただし、各期間の各ポートフォリオに対してこれをすべて行うのではなく、このプロセスを自動化できるようにしたいと考えています。助けてください!

Portfolio_1_L= indexBest(:,1); %helps me get the portfolio constituents for period one (3 stocks basically).
Returns_1_L= dailyret(Portfolio_1(:,1));%to calculate returns of the portfolio for period 1 I have referenced  the extraction of returns to the portfolio constituents.
Sum_ret_Port_1_L=sum(Returns_1_L); %sum return of the portfolio for period one

このプロセスを他の 9 期間すべてループするにはどうすればよいですか?

4

1 に答える 1

3

ループを使用し、サンプルコードforでハードコードされている代わりにインデックス変数を使用し1ます。また、出力にインデックスを付けて、毎日の結果を保存します。

for day = 1:10
    Portfolio_1_L = indexBest(:,day);
    Returns_1_L = dailyret(Portfolio_1_L);
    Sum_ret_Port_1_L(day) = sum(Returns_1_L);
end
于 2013-02-11T15:39:53.680 に答える