Esempio n. 1
0
 def remove_one_item(self, recommendations, asset_type, allSecurities):
     stocks_alloc, bonds_alloc = self.current_allocation(allSecurities)
     if (asset_type == 'Equity' or asset_type == 'equity'
             or asset_type == 'stock'):
         if stocks_alloc == 0:
             print("You have no stocks to delete")
         else:
             pop = recom.reverse_recommend_stock(recommendations)
             security = next(pop)
             while not self.check_security_in_portfolio(
                     self.portfolio, security):
                 security = next(pop)
             self.deleteSecurity(security, allSecurities)
             print("You now have {} % exposure in CASH.".format(
                 self.extra_exposure))
     elif (asset_type == 'Bond' or asset_type == 'bond'):
         if bonds_alloc == 0:
             print("You have no bonds to delete")
         else:
             recommendations = recom.rank_etfs()
             pop = recom.reverse_recommend_stock(recommendations)
             security = next(pop)
             while not self.check_security_in_portfolio(
                     self.portfolio, security):
                 security = next(pop)
             self.deleteSecurity(security, allSecurities)
             print("You now have {} % exposure in CASH.".format(
                 self.extra_exposure))
 def cutExposureOnCriterion(self,
                            new_exposure,
                            region,
                            all_preferences,
                            allSecurities,
                            criterion='Sector'):
     region_dict = self.extract_securities_by_criterion(
         region, allSecurities, criterion)
     current_exposure = sum(region_dict.values())
     diff = current_exposure - new_exposure
     while (diff > 0):
         pop = recom.reverse_recommend_stock(all_preferences)
         security = next(pop)
         while (not self.security_exists_in_portfolio(
                 region_dict, security)):
             security = next(pop)
         if (diff >= region_dict[security]):
             diff = diff - region_dict[security]
             self.deleteSecurity(security, allSecurities)
             region_dict.pop(security, None)
         else:
             self.setExposure(security, region_dict[security] - diff)
             region_dict[security] = region_dict[security] - diff
             diff = 0
     return True
Esempio n. 3
0
 def removeStocksToBalance(self,
                           security_dict,
                           stocks_alloc,
                           recommended_stock_alloc,
                           recommendations,
                           exposure=True):
     pop = recom.reverse_recommend_stock(recommendations)
     while (stocks_alloc > recommended_stock_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,
                                stocks_alloc - recommended_stock_alloc)
         else:
             fit_exposure = stocks_alloc - recommended_stock_alloc
         if (fit_exposure >= security_exposure):
             # delete dictionary entry
             self.deleteSecurity(security, security_dict)
             stocks_alloc -= security_exposure
         elif (fit_exposure < security_exposure):
             # delete some of the shares
             self.setExposure(security, security_exposure - fit_exposure)
             stocks_alloc -= fit_exposure
def removeStocksToBalance(security_dict,
                          stocks_alloc,
                          recommended_stock_alloc,
                          recommendations,
                          exposure=True):
    recommendations = recom.rank_stocks('Mid')
    pop = recom.reverse_recommend_stock(recommendations)
    while (stocks_alloc > recommended_stock_alloc):
        security = next(pop)
        while (not client_portfolio.check_security_in_portfolio(
                client_portfolio.portfolio, security)):
            security = next(pop)
        security_exposure = client_portfolio.portfolio[security]
        if (exposure):
            fit_exposure = min(security_exposure,
                               stocks_alloc - recommended_stock_alloc)
        else:
            fit_exposure = stocks_alloc - recommended_stock_alloc
        if (fit_exposure == security_exposure):
            # delete dictionary entry
            client_portfolio.deteleSecurity(security)
            stocks_alloc -= fit_exposure
        elif (fit_exposure < security_exposure):
            # delete some of the shares
            client_portfolio.setExposure(security, fit_exposure)
            stocks_alloc -= fit_exposure
Esempio n. 5
0
 def removeStocksToBalance(self, security_dict, stocks_alloc,
                           recommended_stock_alloc):
     recommendations = recom.rank_stocks('Mid')
     pop = recom.reverse_recommend_stock(recommendations)
     while (stocks_alloc > recommended_stock_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,
                            stocks_alloc - recommended_stock_alloc)
         if (fit_exposure == security_exposure):
             # delete dictionary entry
             self.deteleSecurity(security)
             stocks_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)
             stocks_alloc -= fit_exposure