相关性分析

parent 159d5ea8
...@@ -747,9 +747,14 @@ portfolio_diagnose = PortfolioDiagnose(client_type=1, portfolio=portfolio, inves ...@@ -747,9 +747,14 @@ portfolio_diagnose = PortfolioDiagnose(client_type=1, portfolio=portfolio, inves
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) old_correlation = portfolio_diagnose.old_correlation
old_correlation_columns = old_correlation.columns.tolist()
old_correlation_values = old_correlation.values.tolist()
old_correlation = zip(range(1, len(old_correlation_columns) + 1), old_correlation.columns.tolist(),
old_correlation.values.tolist())
print('旧组合相关性:', list(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())
...@@ -3123,124 +3123,49 @@ ...@@ -3123,124 +3123,49 @@
<div class="rc_chart clearfix"> <div class="rc_chart clearfix">
<div class="rcc_left fl"> <div class="rcc_left fl">
<table border="1" style="border-color: transparent;margin-right: 20px;"> <table border="1" style="border-color: transparent;margin-right: 20px;">
{% for correlation in old_correlation %}
<tr> <tr>
<td> <td>
<span class="rcc_index">1</span> <span class="rcc_index">{{correlation[0]}}</span>
</td>
</tr>
<tr>
<td>
<span class="rcc_index">2</span>
</td>
</tr>
<tr>
<td>
<span class="rcc_index">3</span>
</td>
</tr>
<tr>
<td>
<span class="rcc_index">4</span>
</td>
</tr>
<tr>
<td>
<span class="rcc_index">5</span>
</td>
</tr>
<tr>
<td>
<span class="rcc_index">6</span>
</td>
</tr>
<tr>
<td>
<span class="rcc_index">7</span>
</td> </td>
</tr> </tr>
{% endfor %}
</table> </table>
</div> </div>
<div class="rcc_right fr"> <div class="rcc_right fr">
<table border="1"> <table border="1">
{% for correlation in old_correlation %}
<tr> <tr>
{% for i in range(correlation[2]|length) %}
{% if i == correlation[0] - 1 %}
<td> <td>
<span class="rcc_index">1</span> <span class="rcc_index">{{correlation[0]}}</span>
</td>
<td class="level_color1">0.56</td>
<td class="level_color2">0.56</td>
<td class="level_color3">0.56</td>
<td class="level_color4">0.56</td>
<td class="level_color5">0.56</td>
<td class="level_color6">0.56</td>
</tr>
<tr>
<td>0.56</td>
<td>
<span class="rcc_index">2</span>
</td>
<td class="level_color1">0.56</td>
<td class="level_color2">0.56</td>
<td class="level_color3">0.56</td>
<td class="level_color4">0.56</td>
<td class="level_color5">0.56</td>
</tr>
<tr>
<td>0.56</td>
<td>0.56</td>
<td>
<span class="rcc_index">3</span>
</td>
<td class="level_color1">0.56</td>
<td class="level_color2">0.56</td>
<td class="level_color3">0.56</td>
<td class="level_color4">0.56</td>
</tr>
<tr>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>
<span class="rcc_index">4</span>
</td>
<td class="level_color1">0.56</td>
<td class="level_color2">0.56</td>
<td class="level_color3">0.56</td>
</tr>
<tr>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>
<span class="rcc_index">5</span>
</td>
<td class="level_color1">0.56</td>
<td class="level_color2">0.56</td>
</tr>
<tr>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>
<span class="rcc_index">6</span>
</td>
<td class="level_color1">0.56</td>
</tr>
<tr>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>0.56</td>
<td>
<span class="rcc_index">7</span>
</td> </td>
{% elif -1 <= correlation[2][i] < -0.5 %}
<td class="level_color6">{{correlation[2][i]}}</td>
{% elif -0.5 <= correlation[2][i] < -0.25 %}
<td class="level_color6">{{correlation[2][i]}}</td>
{% elif -0.25 <= correlation[2][i] < 0 %}
<td class="level_color5">{{correlation[2][i]}}</td>
{% elif 0 <= correlation[2][i] < 0.25 %}
<td class="level_color4">{{correlation[2][i]}}</td>
{% elif 0.25 <= correlation[2][i] < 0.5 %}
<td class="level_color3">{{correlation[2][i]}}</td>
{% elif 0.5 <= correlation[2][i] < 0.75 %}
<td class="level_color2">{{correlation[2][i]}}</td>
{% elif 0.75 <= correlation[2][i] <= 1 %}
<td class="level_color1">{{correlation[2][i]}}</td>
{% endif %}
{% endfor %}
</tr> </tr>
{% endfor %}
</table> </table>
</div> </div>
...@@ -3265,67 +3190,20 @@ ...@@ -3265,67 +3190,20 @@
</div> </div>
</div> </div>
<div class="rc_label clearfix"> <div class="rc_label clearfix">
{% for correlation in old_correlation %}
<div class="rcl_item fl"> <div class="rcl_item fl">
<div class="rcl_item_number"> <div class="rcl_item_number">
1 {{correlation[0]}}
</div>
<div class="rcl_item_name">
基金名称1
</div>
</div>
<div class="rcl_item fl">
<div class="rcl_item_number">
2
</div>
<div class="rcl_item_name">
基金名称2
</div>
</div>
<div class="rcl_item fl">
<div class="rcl_item_number">
3
</div>
<div class="rcl_item_name">
基金名称3
</div>
</div>
<div class="rcl_item fl">
<div class="rcl_item_number">
4
</div>
<div class="rcl_item_name">
基金名称4
</div>
</div>
<div class="rcl_item fl">
<div class="rcl_item_number">
5
</div>
<div class="rcl_item_name">
基金名称5
</div>
</div>
<div class="rcl_item fl">
<div class="rcl_item_number">
6
</div>
<div class="rcl_item_name">
基金名称6
</div>
</div>
<div class="rcl_item fl">
<div class="rcl_item_number">
7
</div> </div>
<div class="rcl_item_name"> <div class="rcl_item_name">
基金名称7 {{correlation[1]}}
</div> </div>
</div> </div>
{% endfor %}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="aim_table"> <div class="aim_table">
<div class="aim_head clearfix"> <div class="aim_head clearfix">
<div class="aim_title fl"> <div class="aim_title fl">
......
...@@ -54,6 +54,17 @@ for i in range(len(portfolio_evaluation)): ...@@ -54,6 +54,17 @@ for i in range(len(portfolio_evaluation)):
'radar_chart_path': gen_radar_chart(radar_chart_data[i]) 'radar_chart_path': gen_radar_chart(radar_chart_data[i])
}) })
# 调仓建议
# 收益比较
# 旧相关性分析
old_correlation = portfolio_diagnose.old_correlation
old_correlation_columns = old_correlation.columns.tolist()
old_correlation_values = old_correlation.values.tolist()
old_correlation = list(zip(range(1, len(old_correlation_columns)+1), old_correlation_columns, old_correlation_values))
print(old_correlation)
# 优化组合建议1 -- 新增基金 # 优化组合建议1 -- 新增基金
propose_fund_data_list = [] propose_fund_data_list = []
propose_fund_evaluation = portfolio_diagnose.propose_fund_evaluation() propose_fund_evaluation = portfolio_diagnose.propose_fund_evaluation()
...@@ -65,8 +76,6 @@ for i in range(len(propose_fund_evaluation)): ...@@ -65,8 +76,6 @@ for i in range(len(propose_fund_evaluation)):
'evaluation': propose_fund_evaluation[i]['data'], 'evaluation': propose_fund_evaluation[i]['data'],
'radar_chart_path': gen_radar_chart(propose_radar_chart_data[i]) 'radar_chart_path': gen_radar_chart(propose_radar_chart_data[i])
}) })
print(propose_fund_data_list)
print(len(propose_fund_data_list))
now_month_income = int(group_result["cur_month_profit"]) # 本月收益 now_month_income = int(group_result["cur_month_profit"]) # 本月收益
now_year_income = int(group_result["cur_year_profit"]) # 今年累计收益 now_year_income = int(group_result["cur_year_profit"]) # 今年累计收益
...@@ -114,6 +123,7 @@ data = {'customer_name':'成龙', 'customer_gender':'女', ...@@ -114,6 +123,7 @@ data = {'customer_name':'成龙', 'customer_gender':'女',
'old_evaluation': old_evaluation, 'old_evaluation': old_evaluation,
'contribution_decomposition': contribution_decomposition, 'contribution_decomposition': contribution_decomposition,
'single_fund_data_list': single_fund_data_list, 'single_fund_data_list': single_fund_data_list,
'old_correlation': old_correlation,
'propose_fund_data_list': propose_fund_data_list 'propose_fund_data_list': propose_fund_data_list
} }
......
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