Commit 7475a98e authored by 赵杰's avatar 赵杰

净值百分比

parent f12cdea4
...@@ -341,29 +341,55 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor): ...@@ -341,29 +341,55 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
for index, row in p_order_df.iterrows(): for index, row in p_order_df.iterrows():
cur_fund_id = str(row["fund_id"]) cur_fund_id = str(row["fund_id"])
cur_fund_performance = self.all_fund_performance[cur_fund_id] cur_fund_performance = self.all_fund_performance[cur_fund_id]
cur_fund_info_series = cur_fund_performance.iloc[-1] if len(cur_fund_performance) <=0:
# 基金净值数据 fund_basic_info = {"fund_name": row["fund_name"], "confirm_nav": round(row["nav"], 4)}
fund_basic_info = {"fund_name": row["fund_name"], "confirm_nav": round(row["nav"],4)} fund_basic_info["cur_nav"] = round(float(self.fund_nav_total[cur_fund_id].dropna().values[-1]), 4)
fund_basic_info["cur_nav"] = round(float(self.fund_nav_total[cur_fund_id].dropna().values[-1]), 4) fund_basic_info["cur_cnav"] = round(float(self.fund_cnav_total[cur_fund_id].dropna().values[-1]), 4)
fund_basic_info["cur_cnav"] = round(float(self.fund_cnav_total[cur_fund_id].dropna().values[-1]), 4) fund_basic_info["ret_1w"] = "-" # 上周
fund_basic_info["ret_1w"] = round(cur_fund_info_series["ret_1w"]*100, 2) if cur_fund_info_series["ret_1w"] is not None else "-" # 上周 fund_basic_info["ret_cum_1m"] = "-" # 最近一个月
fund_basic_info["ret_cum_1m"] = round(cur_fund_info_series["ret_cum_1m"]*100, 2) if cur_fund_info_series["ret_cum_1m"] is not None else "-" # 最近一个月 fund_basic_info["ret_cum_6m"] = "-" # 最近半年
fund_basic_info["ret_cum_6m"] = round(cur_fund_info_series["ret_cum_6m"]*100, 2) if cur_fund_info_series["ret_cum_6m"] is not None else "-" # 最近半年 fund_basic_info["ret_cum_1y"] = "-" # 最近一年
fund_basic_info["ret_cum_1y"] = round(cur_fund_info_series["ret_cum_1y"]*100, 2) if cur_fund_info_series["ret_cum_1y"] is not None else "-" # 最近一年 fund_basic_info["ret_cum_ytd"] = "-" # 今年以来
fund_basic_info["ret_cum_ytd"] = round(cur_fund_info_series["ret_cum_ytd"]*100, 2) if cur_fund_info_series["ret_cum_ytd"] is not None else "-" # 今年以来 fund_basic_info["ret_cum_incep"] = "-" # 成立以来
fund_basic_info["ret_cum_incep"] = round(cur_fund_info_series["ret_cum_incep"]*100, 2) if cur_fund_info_series["ret_cum_incep"] is not None else "-" # 成立以来
# 申购以来 # 申购以来
confirm_date = pd.to_datetime(row["confirm_share_date"]) confirm_date = pd.to_datetime(row["confirm_share_date"])
confirm_cnav = float(p_result_cnav_data.loc[confirm_date, cur_fund_id]) confirm_cnav = float(p_result_cnav_data.loc[confirm_date, cur_fund_id])
fund_basic_info["ret_after_confirm"] = round((fund_basic_info["cur_cnav"] - confirm_cnav)/confirm_cnav*100, 2) fund_basic_info["ret_after_confirm"] = round(
# 分红 (fund_basic_info["cur_cnav"] - confirm_cnav) / confirm_cnav * 100, 2)
distribution_df = self.all_fund_distribution[cur_fund_id] # 分红
if distribution_df.empty: distribution_df = self.all_fund_distribution[cur_fund_id]
fund_basic_info["distribution"] = "-" if distribution_df.empty:
fund_basic_info["distribution"] = "-"
else:
distribution_df["price_date"] = pd.to_datetime(distribution_df["price_date"])
distribution = float(
distribution_df[distribution_df["price_date"] > confirm_date]["distribution"].sum())
fund_basic_info["distribution"] = round(distribution, 4) if distribution != 0 else "-"
else: else:
distribution_df["price_date"] = pd.to_datetime(distribution_df["price_date"]) cur_fund_info_series = cur_fund_performance.iloc[-1]
distribution = float(distribution_df[distribution_df["price_date"] > confirm_date]["distribution"].sum()) # 基金净值数据
fund_basic_info["distribution"] = round(distribution, 4) if distribution != 0 else "-" fund_basic_info = {"fund_name": row["fund_name"], "confirm_nav": round(row["nav"],4)}
fund_basic_info["cur_nav"] = round(float(self.fund_nav_total[cur_fund_id].dropna().values[-1]), 4)
fund_basic_info["cur_cnav"] = round(float(self.fund_cnav_total[cur_fund_id].dropna().values[-1]), 4)
fund_basic_info["ret_1w"] = str(round(cur_fund_info_series["ret_1w"]*100, 2)) + "%" if cur_fund_info_series["ret_1w"] is not None else "-" # 上周
fund_basic_info["ret_cum_1m"] = str(round(cur_fund_info_series["ret_cum_1m"]*100, 2)) + "%" if cur_fund_info_series["ret_cum_1m"] is not None else "-" # 最近一个月
fund_basic_info["ret_cum_6m"] = str(round(cur_fund_info_series["ret_cum_6m"]*100, 2)) + "%" if cur_fund_info_series["ret_cum_6m"] is not None else "-" # 最近半年
fund_basic_info["ret_cum_1y"] = str(round(cur_fund_info_series["ret_cum_1y"]*100, 2)) + "%" if cur_fund_info_series["ret_cum_1y"] is not None else "-" # 最近一年
fund_basic_info["ret_cum_ytd"] = str(round(cur_fund_info_series["ret_cum_ytd"]*100, 2)) + "%" if cur_fund_info_series["ret_cum_ytd"] is not None else "-" # 今年以来
fund_basic_info["ret_cum_incep"] = str(round(cur_fund_info_series["ret_cum_incep"]*100, 2)) + "%" if cur_fund_info_series["ret_cum_incep"] is not None else "-" # 成立以来
# 申购以来
confirm_date = pd.to_datetime(row["confirm_share_date"])
confirm_cnav = float(p_result_cnav_data.loc[confirm_date, cur_fund_id])
fund_basic_info["ret_after_confirm"] = str(round((fund_basic_info["cur_cnav"] - confirm_cnav)/confirm_cnav*100, 2)) + "%"
# 分红
distribution_df = self.all_fund_distribution[cur_fund_id]
if distribution_df.empty:
fund_basic_info["distribution"] = "-"
else:
distribution_df["price_date"] = pd.to_datetime(distribution_df["price_date"])
distribution = float(distribution_df[distribution_df["price_date"] > confirm_date]["distribution"].sum())
fund_basic_info["distribution"] = round(distribution, 4) if distribution != 0 else "-"
group_fund_basic_info.append(fund_basic_info) group_fund_basic_info.append(fund_basic_info)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment