Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
F
fund_report
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
彭熊
fund_report
Commits
c025702d
Commit
c025702d
authored
Dec 01, 2020
by
赵杰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
组合分解收益图数据
parent
2826bea6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
4 deletions
+31
-4
result_service.py
app/service/result_service.py
+31
-4
No files found.
app/service/result_service.py
View file @
c025702d
...
@@ -41,14 +41,22 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
...
@@ -41,14 +41,22 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
# 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)
# resample_df = resample(return_ratio_df, self.trade_cal_date, freq_max)
# resample_df = resample(return_ratio_df, self.trade_cal_date, freq_max)
resample_cur_folio_result_cnav_data
=
resample
(
cur_folio_result_cnav_data
,
self
.
trade_cal_date
,
freq_max
)
resample_cur_folio_result_cnav_data
=
resample
(
cur_folio_result_cnav_data
,
self
.
trade_cal_date
,
freq_max
)
return_ratio_df
,
contribution_decomposition
=
self
.
combination_yield
(
resample_cur_folio_result_cnav_data
,
return_ratio_df
,
month_return_ratio_df
,
contribution_decomposition
=
self
.
combination_yield
(
resample_cur_folio_result_cnav_data
,
fund_id_list
)
fund_id_list
)
resample_df
=
resample
(
return_ratio_df
,
self
.
trade_cal_date
,
freq_max
)
resample_df
=
resample
(
return_ratio_df
,
self
.
trade_cal_date
,
freq_max
)
# 收益分解df
# 收益分解df
contribution_decomposition_df
=
contribution_decomposition
.
fillna
(
0
)
*
100
contribution_decomposition_df
=
contribution_decomposition
.
fillna
(
0
)
*
100
folio_report_data
[
"contribution_decomposition"
]
=
contribution_decomposition_df
p_plot_data
=
[]
for
a_fund_id
in
list
(
contribution_decomposition_df
.
columns
):
a_name
=
cur_folio_order_data
[
cur_folio_order_data
[
"fund_id"
]
==
a_fund_id
][
"fund_name"
]
.
values
[
0
]
plot_data
=
{
'name'
:
a_name
,
'data'
:
contribution_decomposition_df
[
a_fund_id
]
.
astype
(
np
.
float64
)
.
values
}
p_plot_data
.
append
(
plot_data
)
x_lables_data
=
list
(
contribution_decomposition_df
.
index
)
cumulative_data
=
{
'name'
:
'总收益'
,
'data'
:
((
month_return_ratio_df
[
"cum_return_ratio"
]
-
1
)
*
100
)
.
values
}
folio_report_data
[
"contribution_decomposition"
]
=
{
"xlabels"
:
x_lables_data
,
"product_list"
:
p_plot_data
,
"cumulative"
:
cumulative_data
}
# 总成本
# 总成本
total_cost
=
float
(
cur_folio_order_data
[
cur_folio_order_data
[
"order_type"
]
==
1
][
"confirm_amount"
]
.
sum
()
-
\
total_cost
=
float
(
cur_folio_order_data
[
cur_folio_order_data
[
"order_type"
]
==
1
][
"confirm_amount"
]
.
sum
()
-
\
...
@@ -176,7 +184,7 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
...
@@ -176,7 +184,7 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
# resample_df = resample(return_ratio_df, self.trade_cal_date, freq_max)
# resample_df = resample(return_ratio_df, self.trade_cal_date, freq_max)
resample_cur_folio_result_cnav_data
=
resample
(
cur_folio_result_cnav_data
,
self
.
trade_cal_date
,
freq_max
)
resample_cur_folio_result_cnav_data
=
resample
(
cur_folio_result_cnav_data
,
self
.
trade_cal_date
,
freq_max
)
return_ratio_df
,
contribution_decomposition
=
self
.
combination_yield
(
resample_cur_folio_result_cnav_data
,
fund_id_list
)
return_ratio_df
,
month_return_ratio_df
,
contribution_decomposition
=
self
.
combination_yield
(
resample_cur_folio_result_cnav_data
,
fund_id_list
)
resample_df
=
resample
(
return_ratio_df
,
self
.
trade_cal_date
,
freq_max
)
resample_df
=
resample
(
return_ratio_df
,
self
.
trade_cal_date
,
freq_max
)
# 总成本
# 总成本
...
@@ -363,7 +371,26 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
...
@@ -363,7 +371,26 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
signal_fund_cum_weight
=
nav_net_amount_df
[
weight_name_list
]
signal_fund_cum_weight
=
nav_net_amount_df
[
weight_name_list
]
re_name
=
{
x
:
x
.
replace
(
"_profit_cum_ratio_weight"
,
""
)
for
x
in
weight_name_list
}
re_name
=
{
x
:
x
.
replace
(
"_profit_cum_ratio_weight"
,
""
)
for
x
in
weight_name_list
}
signal_fund_cum_weight
.
rename
(
columns
=
re_name
,
inplace
=
True
)
signal_fund_cum_weight
.
rename
(
columns
=
re_name
,
inplace
=
True
)
return
cum_return_ratio_df
,
signal_fund_cum_weight
# 月度分组
def
year_month
(
x
):
a
=
x
.
year
b
=
x
.
month
return
str
(
a
)
+
"/"
+
str
(
b
)
profit_df_cp
=
signal_fund_cum_weight
.
copy
()
profit_df_cp
[
"date"
]
=
profit_df_cp
.
index
grouped
=
profit_df_cp
.
groupby
(
profit_df_cp
[
"date"
]
.
apply
(
year_month
))
month_signal_fund_cum
=
grouped
.
last
()
.
sort_values
(
by
=
"date"
)
del
month_signal_fund_cum
[
"date"
]
p_cum_df
=
cum_return_ratio_df
.
copy
()
p_cum_df
[
"date"
]
=
p_cum_df
.
index
cum_grouped
=
p_cum_df
.
groupby
(
p_cum_df
[
"date"
]
.
apply
(
year_month
))
month_fund_cum
=
cum_grouped
.
last
()
.
sort_values
(
by
=
"date"
)
del
month_fund_cum
[
"date"
]
return
cum_return_ratio_df
,
month_fund_cum
,
month_signal_fund_cum
@
staticmethod
@
staticmethod
def
signal_fund_profit_result
(
p_fund_nav_df
,
cur_fund_id
):
def
signal_fund_profit_result
(
p_fund_nav_df
,
cur_fund_id
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment