Commit 7c1787a7 authored by 赵杰's avatar 赵杰

修改写死的评价数据

parent fc4a1165
...@@ -940,14 +940,14 @@ class PortfolioDiagnose(object): ...@@ -940,14 +940,14 @@ class PortfolioDiagnose(object):
return radar_data return radar_data
portfolio = ['HF00002JJ2', 'HF00005DBQ', 'HF0000681Q', 'HF00006693', 'HF00006AZF', 'HF00006BGS'] # portfolio = ['HF00002JJ2', 'HF00005DBQ', 'HF0000681Q', 'HF00006693', 'HF00006AZF', 'HF00006BGS']
portfolio_diagnose = PortfolioDiagnose(client_type=1, portfolio=portfolio, invest_amount=10000000) # portfolio_diagnose = PortfolioDiagnose(client_type=1, portfolio=portfolio, invest_amount=10000000)
portfolio_diagnose.optimize() # portfolio_diagnose.optimize()
if __name__ == '__main__': # if __name__ == '__main__':
print(portfolio_diagnose.single_fund_radar()) # print(portfolio_diagnose.single_fund_radar())
print(portfolio_diagnose.propose_fund_radar()) # print(portfolio_diagnose.propose_fund_radar())
print(portfolio_diagnose.old_portfolio_evaluation()) # print(portfolio_diagnose.old_portfolio_evaluation())
print('旧组合相关性:', portfolio_diagnose.old_correlation) # print('旧组合相关性:', portfolio_diagnose.old_correlation)
print('新组合相关性:', portfolio_diagnose.new_correlation) # print('新组合相关性:', portfolio_diagnose.new_correlation)
print('旧组合个基评价:', portfolio_diagnose.old_portfolio_evaluation()) # print('旧组合个基评价:', portfolio_diagnose.old_portfolio_evaluation())
print('新组合个基评价:', portfolio_diagnose.propose_fund_evaluation()) # print('新组合个基评价:', portfolio_diagnose.propose_fund_evaluation())
\ No newline at end of file \ No newline at end of file
...@@ -36,6 +36,7 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor): ...@@ -36,6 +36,7 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
fund_id_list_earn = [i + "_earn" for i in fund_id_list] fund_id_list_earn = [i + "_earn" for i in fund_id_list]
# fund_id_list_amount = [i + "_amount" for i in fund_id_list] # fund_id_list_amount = [i + "_amount" for i in fund_id_list]
profit_df = cur_folio_result_cnav_data[fund_id_list_earn] profit_df = cur_folio_result_cnav_data[fund_id_list_earn]
folio_report_data["fund_id_list"] = fund_id_list
# 组合收益率数组 # 组合收益率数组
# return_ratio_df, contribution_decomposition= self.combination_yield(cur_folio_result_cnav_data, fund_id_list) # return_ratio_df, contribution_decomposition= self.combination_yield(cur_folio_result_cnav_data, fund_id_list)
...@@ -296,7 +297,7 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor): ...@@ -296,7 +297,7 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
now_year = datetime.datetime.now().year now_year = datetime.datetime.now().year
month_return_data_dict = {} month_return_data_dict = {}
for i in range(now_year-start_year+1): for i in range(now_year-start_year+1):
month_return_data_dict[start_year+i] = {j+1: {"profit": 0, "net_amount": 0} for j in range(12)} month_return_data_dict[start_year+i] = {j+1: {"profit": "-", "net_amount": "-"} for j in range(12)}
for d_index, d_row in month_sum.items(): for d_index, d_row in month_sum.items():
cur_year = int(d_index[:4]) cur_year = int(d_index[:4])
cur_month = int(d_index[5:]) cur_month = int(d_index[5:])
......
...@@ -4,7 +4,7 @@ import uuid ...@@ -4,7 +4,7 @@ import uuid
from jinja2 import PackageLoader, Environment from jinja2 import PackageLoader, Environment
from app.api.engine import work_dir, pdf_folder, template_folder from app.api.engine import work_dir, pdf_folder, template_folder
from app.service.portfolio_diagnose import portfolio_diagnose from app.service.portfolio_diagnose import PortfolioDiagnose
from app.service.result_service_v2 import UserCustomerResultAdaptor from app.service.result_service_v2 import UserCustomerResultAdaptor
import numpy as np import numpy as np
...@@ -23,6 +23,7 @@ class DataIntegrate: ...@@ -23,6 +23,7 @@ class DataIntegrate:
self.d = self.user_customer.calculate_group_result_data() self.d = self.user_customer.calculate_group_result_data()
# 组合数据 # 组合数据
self.group_result = self.d["default"] self.group_result = self.d["default"]
self.get_portfolio_diagnose(self.group_result["fund_id_list"])
# 几月综述部分 # 几月综述部分
self.get_summarize() self.get_summarize()
# 月度回报 # 月度回报
...@@ -50,6 +51,9 @@ class DataIntegrate: ...@@ -50,6 +51,9 @@ class DataIntegrate:
# 渲染模版 # 渲染模版
self.render_data() self.render_data()
def get_portfolio_diagnose(self, portfolio, client_type=1, invest_amount=10000000):
self.portfolio_diagnose = PortfolioDiagnose(client_type=client_type, portfolio=portfolio, invest_amount=invest_amount)
self.portfolio_diagnose.optimize()
def get_summarize(self): def get_summarize(self):
"""几月综述部分.""" """几月综述部分."""
...@@ -69,7 +73,7 @@ class DataIntegrate: ...@@ -69,7 +73,7 @@ class DataIntegrate:
def comments_on_position_portfolio(self): def comments_on_position_portfolio(self):
"""旧持仓组合点评.""" """旧持仓组合点评."""
self.old_evaluation = portfolio_diagnose.old_evaluation('default', self.d, self.user_customer) self.old_evaluation = self.portfolio_diagnose.old_evaluation('default', self.d, self.user_customer)
def contribution_deco(self): def contribution_deco(self):
"""贡献分解.""" """贡献分解."""
...@@ -79,8 +83,8 @@ class DataIntegrate: ...@@ -79,8 +83,8 @@ class DataIntegrate:
def single_fund_comment(self): def single_fund_comment(self):
"""个基点评.""" """个基点评."""
self.single_fund_data_list = [] self.single_fund_data_list = []
portfolio_evaluation = portfolio_diagnose.old_portfolio_evaluation() portfolio_evaluation = self.portfolio_diagnose.old_portfolio_evaluation()
radar_chart_data = portfolio_diagnose.single_fund_radar() radar_chart_data = self.portfolio_diagnose.single_fund_radar()
for i in range(len(portfolio_evaluation)): for i in range(len(portfolio_evaluation)):
if portfolio_evaluation[i]['status'] == '保留': if portfolio_evaluation[i]['status'] == '保留':
portfolio_evaluation[i]['status'] = '<div class="self_type fl">保留</div>' portfolio_evaluation[i]['status'] = '<div class="self_type fl">保留</div>'
...@@ -100,7 +104,7 @@ class DataIntegrate: ...@@ -100,7 +104,7 @@ class DataIntegrate:
def get_old_compare_pic(self): def get_old_compare_pic(self):
"""旧收益比较""" """旧收益比较"""
self.suggestions_result, self.suggestions_result_asset, self.return_compare_data,\ self.suggestions_result, self.suggestions_result_asset, self.return_compare_data,\
self.indicator_compare, self.new_group_evaluation = portfolio_diagnose.new_evaluation("default", self.d, self.user_customer) self.indicator_compare, self.new_group_evaluation = self.portfolio_diagnose.new_evaluation("default", self.d, self.user_customer)
self.old_return_compare_pic = draw_old_combination_chart(self.return_compare_data["xlabels"], self.return_compare_data["origin_combination"], self.return_compare_data["index"]) self.old_return_compare_pic = draw_old_combination_chart(self.return_compare_data["xlabels"], self.return_compare_data["origin_combination"], self.return_compare_data["index"])
def get_transfer_suggestions(self): def get_transfer_suggestions(self):
...@@ -111,7 +115,7 @@ class DataIntegrate: ...@@ -111,7 +115,7 @@ class DataIntegrate:
def get_old_correlation(self): def get_old_correlation(self):
"""旧相关性分析.""" """旧相关性分析."""
old_correlation = portfolio_diagnose.old_correlation old_correlation = self.portfolio_diagnose.old_correlation
old_correlation_columns = old_correlation.columns.tolist() old_correlation_columns = old_correlation.columns.tolist()
old_correlation_values = old_correlation.values.tolist() old_correlation_values = old_correlation.values.tolist()
self.old_correlation = list(zip(range(1, len(old_correlation_columns)+1), old_correlation_columns, old_correlation_values)) self.old_correlation = list(zip(range(1, len(old_correlation_columns)+1), old_correlation_columns, old_correlation_values))
...@@ -119,7 +123,7 @@ class DataIntegrate: ...@@ -119,7 +123,7 @@ class DataIntegrate:
def get_new_correlation(self): def get_new_correlation(self):
"""新相关性分析.""" """新相关性分析."""
new_correlation = portfolio_diagnose.new_correlation new_correlation = self.portfolio_diagnose.new_correlation
new_correlation_columns = new_correlation.columns.tolist() new_correlation_columns = new_correlation.columns.tolist()
new_correlation_values = new_correlation.values.tolist() new_correlation_values = new_correlation.values.tolist()
self.new_correlation = list(zip(range(1, len(new_correlation_columns)+1), new_correlation_columns, new_correlation_values)) self.new_correlation = list(zip(range(1, len(new_correlation_columns)+1), new_correlation_columns, new_correlation_values))
...@@ -129,8 +133,8 @@ class DataIntegrate: ...@@ -129,8 +133,8 @@ class DataIntegrate:
"""新增基金""" """新增基金"""
# 优化组合建议1 -- 新增基金 # 优化组合建议1 -- 新增基金
self.propose_fund_data_list = [] self.propose_fund_data_list = []
propose_fund_evaluation = portfolio_diagnose.propose_fund_evaluation() propose_fund_evaluation = self.portfolio_diagnose.propose_fund_evaluation()
propose_radar_chart_data = portfolio_diagnose.propose_fund_radar() propose_radar_chart_data = self.portfolio_diagnose.propose_fund_radar()
for i in range(len(propose_fund_evaluation)): for i in range(len(propose_fund_evaluation)):
self.propose_fund_data_list.append({ self.propose_fund_data_list.append({
'fund_name': propose_fund_evaluation[i]['name'], 'fund_name': propose_fund_evaluation[i]['name'],
......
...@@ -38,7 +38,7 @@ class Customer(Base): ...@@ -38,7 +38,7 @@ class Customer(Base):
def call_month_report(ifauser_id, ifauser_name, customer_id, customer_name): def call_month_report(ifauser_id, ifauser_name, customer_id, customer_name):
print('开始制作IFA: {}, 客户: {}的基金月报'.format(ifauser_name, customer_name)) print('开始制作IFA: {}, 客户: {}的基金月报'.format(ifauser_name, customer_name))
try: try:
DataIntegrate(ifauser_id, customer_id, customer_name) DataIntegrate(ifauser_id, customer_id)
except: except:
print("发生异常,下一个走起!") print("发生异常,下一个走起!")
......
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