# Calculate New Portfolio Weights Given Today's Returns

I'm looking for a formula to recalculate my portfolio's weights at the end of time $$T$$, given a vector of the asset weights at $$T$$ and a vector of returns at $$T$$.

For example:

weights = 0.2, 0.3, 0.5
returns = 0.05, -0.05, 0.10


I'd like to calculate the new weighting going into $$T_{t+1}$$ to be based on this information.

Multiply the weight of the assets times the 1 + returns of the corresponding asset.

This will give you the value of each asset at the end of your horizon.

(0.2)(1+0.05) = 0.21;
(0.3)(1+-0.05) = 0.285;
(0.5)(1+0.10) = 0.55;


Now add all of these values to get Total Assets:

(0.2)(1.05) + (0.3)(0.95) + (0.5)(1.10) = 1.045


Finally take each of the asset values and divide it by the Total Asset Value.

This will give you the weight of each asset at end of the horizon.

Weight A = 0.21/1.045 = 0.200957;
Weight B = 0.285/1.045 = 0.272727;
Weight C = 0.55/1.045 = 0.526316;

Weight(0) * return / Sum(weight * return) = Weight(t);