diff --git a/portfolios/holder.py b/portfolios/holder.py index 9c9807269f245e78271cf230ac2d0856e8f678de..13fbcfbd6647cc5ef2818000382159611a93702c 100644 --- a/portfolios/holder.py +++ b/portfolios/holder.py @@ -240,6 +240,7 @@ class InvTrustPortfoliosHolder(DividendPortfoliosHolder): if last_nav: # è‹¥éžé¦–æ¬¡é…æ¯ share = {int(x): y for x, y in json.loads(last_nav['portfolios'])['share'].items()} + share_nav = {int(x): y for x, y in json.loads(last_nav['portfolios'])['share_nav'].items()} fund_div_tuple = self.get_navs_and_div(fund_ids=tuple(set(weight) | set(share)), day=day) navs = fund_div_tuple[0] fund_dividend = fund_div_tuple[1] @@ -247,7 +248,8 @@ class InvTrustPortfoliosHolder(DividendPortfoliosHolder): map(lambda k: share[k] * fund_dividend[k], filter(lambda k: k in fund_dividend, share.keys()))) dividend_acc = last_nav['div_acc'] + fund_dividend fund_av = round(sum([navs[x] * y for x, y in share.items()]), 4) - fund_nav = fund_av + dividend_acc + fund_nav = round(sum([navs[x] * y for x, y in share_nav.items()]), 4) + fund_nav += fund_dividend asset_nav = fund_av share = {x: fund_av * w / navs[x] for x, w in weight.items()} # è‹¥è°ƒä»“å½“æ—¥ï¼Œæœ‰åŸºé‡‘äº§ç”Ÿé…æ¯ @@ -320,10 +322,8 @@ class InvTrustPortfoliosHolder(DividendPortfoliosHolder): map(lambda k: share[k] * fund_dividend[k], filter(lambda k: k in fund_dividend, share.keys()))) dividend_acc = dividend_acc + port_div + fund_dividend fund_av = round(sum([navs[x] * y for x, y in share.items()]), 4) - if fund_dividend > 0: - fund_nav = fund_av + dividend_acc - else: - fund_nav = round(sum([navs[x] * y for x, y in share_nav.items()]), 4) + fund_nav = round(sum([navs[x] * y for x, y in share_nav.items()]), 4) + fund_nav += fund_dividend weight = {x: round(y * navs[x] / fund_av, 2) for x, y in share.items()} weight_nav = {x: round(y * navs[x] / fund_av, 2) for x, y in share_nav.items()} weight = format_weight(weight)