def removeBondsToBalance(self, security_dict, bonds_alloc, recommended_bonds_alloc, exposure=True): recommendations = recom.rank_etfs() pop = recom.reversed_recommend_etf(recommendations) while (bonds_alloc > recommended_bonds_alloc): security = next(pop) while (not self.check_security_in_portfolio( self.portfolio, security)): security = next(pop) security_exposure = self.portfolio[security] if (exposure): fit_exposure = min(security_exposure, bonds_alloc - recommended_bonds_alloc) else: fit_exposure = bonds_alloc - recommended_bonds_alloc if (fit_exposure <= security_exposure): # delete dictionary entry self.deleteSecurity(security, security_dict) bonds_alloc -= security_exposure elif (fit_exposure < security_exposure): # delete some of the shares self.setExposure(security, security_exposure - fit_exposure) bonds_alloc -= fit_exposure
def removeBondsToBalance(self, security_dict, bonds_alloc, recommended_bonds_alloc, bonds_preferences, exposure=True): pop = recom.reversed_recommend_etf(bonds_preferences) while (bonds_alloc > recommended_bonds_alloc): security = next(pop) while (not self.security_exists_in_portfolio( self.portfolio, security)): security = next(pop) security_exposure = self.portfolio[security] fit_exposure = min(security_exposure, bonds_alloc - recommended_bonds_alloc) if (fit_exposure <= security_exposure): self.deleteSecurity(security, security_dict) bonds_alloc -= security_exposure elif (fit_exposure < security_exposure): self.setExposure(security, security_exposure - fit_exposure) bonds_alloc -= fit_exposure
def removeBondsToBalance(self, security_dict, bonds_alloc, recommended_bonds_alloc): recommendations = recom.rank_etfs('Mid') pop = recom.reversed_recommend_etf(recommendations) while (bonds_alloc > recommended_bonds_alloc): security = next(pop) while (not ut.check_security_in_portfolio(self.portfolio, security)): security = next(pop) security_exposure = self.portfolio[security] * security_dict[ security]['Price'] / self.client['Capital'] * 100 fit_exposure = min(security_exposure, bonds_alloc - recommended_bonds_alloc) if (fit_exposure == security_exposure): # delete dictionary entry self.deteleSecurity(security) bonds_alloc -= fit_exposure elif (fit_exposure < security_exposure): # delete some of the shares shares_to_delete = fit_exposure / 100 * self.client[ 'Capital'] / security_dict[security]['Price'] self.deleteSharesFromSecurity(shares_to_delete, security) bonds_alloc -= fit_exposure