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
46e8a56c
Commit
46e8a56c
authored
Feb 06, 2021
by
赵杰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rank_df
parent
b0bbed02
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
6 deletions
+9
-6
fund_service.py
app/service/fund_service.py
+9
-6
No files found.
app/service/fund_service.py
View file @
46e8a56c
...
@@ -77,8 +77,11 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
...
@@ -77,8 +77,11 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
end_date
=
datetime
.
datetime
(
datetime
.
date
.
today
()
.
year
,
end_date
=
datetime
.
datetime
(
datetime
.
date
.
today
()
.
year
,
datetime
.
date
.
today
()
.
month
,
1
)
-
datetime
.
timedelta
(
1
)
datetime
.
date
.
today
()
.
month
,
1
)
-
datetime
.
timedelta
(
1
)
start_date
=
cal_date
(
end_date
,
'Y'
,
1
)
start_date
=
cal_date
(
end_date
,
'Y'
,
1
)
if
invest_type
==
0
:
z_score
=
search_rank
(
fund_rank
,
fund_id
,
metric
=
'z_score'
)
rank_df
=
tx_fund_rank
else
:
rank_df
=
fund_rank
z_score
=
search_rank
(
rank_df
,
fund_id
,
metric
=
'z_score'
)
total_level
=
np
.
select
([
z_score
>=
80
,
total_level
=
np
.
select
([
z_score
>=
80
,
70
<=
z_score
<
80
,
70
<=
z_score
<
80
,
z_score
<
70
],
[
0
,
1
,
2
])
.
item
()
z_score
<
70
],
[
0
,
1
,
2
])
.
item
()
...
@@ -93,7 +96,7 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
...
@@ -93,7 +96,7 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
compare
=
pd
.
merge
(
index_return_monthly
,
fund_return_monthly
,
how
=
'inner'
,
left_index
=
True
,
right_index
=
True
)
compare
=
pd
.
merge
(
index_return_monthly
,
fund_return_monthly
,
how
=
'inner'
,
left_index
=
True
,
right_index
=
True
)
fund_win_rate
=
((
compare
[
fund_id
]
-
compare
[
'pct_chg'
])
>
0
)
.
sum
()
/
compare
[
fund_id
]
.
count
()
fund_win_rate
=
((
compare
[
fund_id
]
-
compare
[
'pct_chg'
])
>
0
)
.
sum
()
/
compare
[
fund_id
]
.
count
()
return_rank
=
search_rank
(
fund_rank
,
fund_id
,
metric
=
'annual_return_rank'
)
return_rank
=
search_rank
(
rank_df
,
fund_id
,
metric
=
'annual_return_rank'
)
return_level
=
np
.
select
([
return_rank
>=
0.8
,
return_level
=
np
.
select
([
return_rank
>=
0.8
,
0.7
<=
return_rank
<
0.8
,
0.7
<=
return_rank
<
0.8
,
0.6
<=
return_rank
<
0.7
,
0.6
<=
return_rank
<
0.7
,
...
@@ -101,8 +104,8 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
...
@@ -101,8 +104,8 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
return_bool
=
1
if
return_level
>
2
else
0
return_bool
=
1
if
return_level
>
2
else
0
return_triple
=
return_level
-
1
if
return_level
>=
2
else
return_level
return_triple
=
return_level
-
1
if
return_level
>=
2
else
return_level
drawdown_rank
=
search_rank
(
fund_rank
,
fund_id
,
metric
=
'max_drawdown_rank'
)
drawdown_rank
=
search_rank
(
rank_df
,
fund_id
,
metric
=
'max_drawdown_rank'
)
drawdown_value
=
search_rank
(
fund_rank
,
fund_id
,
metric
=
'max_drawdown'
)
drawdown_value
=
search_rank
(
rank_df
,
fund_id
,
metric
=
'max_drawdown'
)
drawdown_level
=
np
.
select
([
drawdown_rank
>=
0.8
,
drawdown_level
=
np
.
select
([
drawdown_rank
>=
0.8
,
0.7
<=
drawdown_rank
<
0.8
,
0.7
<=
drawdown_rank
<
0.8
,
0.6
<=
drawdown_rank
<
0.7
,
0.6
<=
drawdown_rank
<
0.7
,
...
@@ -110,7 +113,7 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
...
@@ -110,7 +113,7 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
drawdown_bool
=
1
if
drawdown_level
>
2
else
0
drawdown_bool
=
1
if
drawdown_level
>
2
else
0
drawdown_triple
=
drawdown_level
-
1
if
drawdown_level
>=
2
else
drawdown_level
drawdown_triple
=
drawdown_level
-
1
if
drawdown_level
>=
2
else
drawdown_level
sharp_rank
=
search_rank
(
fund_rank
,
fund_id
,
metric
=
'sharp_ratio_rank'
)
sharp_rank
=
search_rank
(
rank_df
,
fund_id
,
metric
=
'sharp_ratio_rank'
)
sharp_level
=
np
.
select
([
sharp_rank
>=
0.8
,
sharp_level
=
np
.
select
([
sharp_rank
>=
0.8
,
0.6
<=
sharp_rank
<
0.8
,
0.6
<=
sharp_rank
<
0.8
,
sharp_rank
<
0.6
],
[
0
,
1
,
2
])
.
item
()
sharp_rank
<
0.6
],
[
0
,
1
,
2
])
.
item
()
...
...
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