平均分散を最適化して12ヶ月間(1年間)ポートフォリオのバランスを調整するコードを書く必要があります。唯一のことは、各リバランスの後に自分の資産の数をどのように丸めるかを決定する必要があることです。私がラウンドすると、新しいポートフォリオ価値(取引コストを差し引いた後)と私の古いポートフォリオ価値との差額が正の値であるかどうか、約3000.00ドルの上限に達しているかどうかを確認する必要があります。MATLAB:ベクトルをループして上または下に丸める方法
例えば、資産の私の最初の数だった:最初の期間のための資産の
x_int = [4500, 6000, 0, 0, 0, 500, 1550, 0, 1000, 0];
私の新しいリバランス数はでしたが:
x_new = [2490.67, 4401.78, 1502.30, 0, 1010.45, 2803.85, 3489.77, 0, 650.98, 1001.87];
私の最初のポートフォリオ価値は$ 1,897,560.30
ました私のバランスのとれたポートフォリオの価値は、最初の期間では1,658,923.76ドル(私の資産総数を丸めた後)、2,001,876.95ドル(私の資産総数を四捨五入した後sアップ)。
私のx_new
値をループして、個々の資産数を切り上げたり下げたりする方法はありますか?丸めた資産が私に新しいポートフォリオ価値を与えるかどうかをチェックします。値は私の基準を満たすでしょう
ありがとう!
丸みはどうやって大きな違いになりますか? 'round(2490.67)= 2491'なので、あなたはこの' round'(https://www.mathworks.com/help/matlab/ref/round.html)関数について話していないと思います。 –
はい、丸めは株式の価格によって大きな違いを生むことがあります。株式が250.00ドルの株式に相当する場合は、1000株または1001株の株式が重要な価格差になります。私はceilとfloor関数を使用しました。なぜなら、丸め関数は10進数値に応じて丸めたり下がったりするからです。 –
あなたは何を探しているのか分かりません: 'sum(round(x_new)) - sum (x_new) '? –