diff --git a/bt/algos.py b/bt/algos.py index d66eb27..878dfb5 100644 --- a/bt/algos.py +++ b/bt/algos.py @@ -1492,11 +1492,13 @@ def __call__(self, target): vol = np.sqrt(np.matmul(weights.values.T, np.matmul(covar.values, weights.values)) * self.annualization_factor) if isinstance(self.target_volatility, (float, int)): - self.target_volatility = {k: self.target_volatility for k in target.temp["weights"]} + target_volatility = {k: self.target_volatility for k in target.temp["weights"]} + else: + target_volatility = self.target_volatility for k in target.temp["weights"]: - if k in self.target_volatility: - target.temp["weights"][k] = target.temp["weights"][k] * self.target_volatility[k] / vol + if k in target_volatility: + target.temp["weights"][k] = target.temp["weights"][k] * target_volatility[k] / vol return True