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
5bcbf4c8
Commit
5bcbf4c8
authored
Jan 18, 2021
by
pengxiong
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/manage' into manage
parents
caa8801e
184b3a5d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
16 deletions
+20
-16
fund_service.py
app/service/fund_service.py
+17
-13
portfolio_diagnose.py
app/service/portfolio_diagnose.py
+3
-3
No files found.
app/service/fund_service.py
View file @
5bcbf4c8
# -*- coding: UTF-8 -*-
"""
@author:Zongxi.Li
@file:test.py
@time:2021/01/15
"""
# -*- encoding: utf-8 -*-
# -----------------------------------------------------------------------------
# @File Name : fund_service.py
...
...
@@ -71,10 +65,9 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
3、在风险方面,该基金抵御风险能力优秀/良好/一般,在同类基金中处于高/中/低等水平,最大回撤为x
%
,高于/持平/低于同类基金平均水平;
4、该基金收益较好/较差的同时回撤较大/较小,也就是说,该基金在用较大/较小风险换取较大/较小收益,存在较高/较低风险;
5、基金经理,投资年限5.23年,经验丰富;投资能力较强,生涯中共管理过X只基金,历任的X只基金平均业绩在同类中处于上游水平,其中x只排名在前x
%
;生涯年化回报率x
%
,同期大盘只有x
%
;
Args:
fund_id:
Returns:
:param fund_id: 基金ID
:param index_id: 指数ID
:param invest_type: 投资类型:0:公募 1:私募 2:探普优选
"""
end_date
=
datetime
.
datetime
(
datetime
.
date
.
today
()
.
year
,
datetime
.
date
.
today
()
.
month
,
1
)
-
datetime
.
timedelta
(
1
)
...
...
@@ -171,14 +164,25 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
return
evaluation_dict
def
fund_index_compare
(
fund_id
,
invest_type
=
2
,
index_id
=
'000905.SH'
):
start_date
=
datetime
.
datetime
(
2000
,
1
,
1
)
index_daily
=
get_index_daily
(
index_id
,
start_date
)
fund_nav
=
get_tamp_nav
(
fund_id
,
start_date
,
invest_type
=
invest_type
)
fund_nav
=
rename_col
(
fund_nav
,
fund_id
)
compare
=
pd
.
merge
(
index_daily
,
fund_nav
,
how
=
'inner'
,
left_index
=
True
,
right_index
=
True
)
compare
[
index_id
+
'_return_ratio'
]
=
(
compare
[
index_id
]
/
compare
[
index_id
]
.
iloc
[
0
]
-
1
)
*
100
compare
[
fund_id
+
'_return_ratio'
]
=
(
compare
[
fund_id
]
/
compare
[
fund_id
]
.
iloc
[
0
]
-
1
)
*
100
return
compare
def
get_fund_evaluation
(
args
):
"""返回个基点评和雷达图"""
fund_id
=
args
.
get
(
'fund_id'
)
invest_type
=
args
.
get
(
'invest_type'
)
print
(
single_evaluation
(
fund_id
=
'HF00005AFK'
))
print
(
get_radar_data
(
'HF00005AFK'
))
if
__name__
==
'__main__'
:
print
(
single_evaluation
(
fund_id
=
'HF00005AFK'
))
print
(
get_radar_data
(
'HF00005AFK'
))
\ No newline at end of file
# print(single_evaluation(fund_id='HF00005AFK'))
# print(get_radar_data('HF00005AFK'))
test
=
fund_index_compare
(
fund_id
=
"HF00005AFK"
)
\ No newline at end of file
app/service/portfolio_diagnose.py
View file @
5bcbf4c8
...
...
@@ -194,7 +194,7 @@ def get_index_daily(index_id, start_date):
cur
=
tamp_product_session
.
execute
(
sql
)
data
=
cur
.
fetchall
()
df
=
pd
.
DataFrame
(
list
(
data
),
columns
=
[
'ts_code'
,
'trade_date'
,
'
close'
])
df
=
pd
.
DataFrame
(
list
(
data
),
columns
=
[
'ts_code'
,
'trade_date'
,
'close'
])
df
.
rename
({
'ts_code'
:
'fund_id'
,
'trade_date'
:
'end_date'
,
'close'
:
'adj_nav'
},
axis
=
1
,
inplace
=
True
)
df
[
'end_date'
]
=
pd
.
to_datetime
(
df
[
'end_date'
])
df
.
set_index
(
'end_date'
,
drop
=
True
,
inplace
=
True
)
...
...
@@ -1019,8 +1019,8 @@ class PortfolioDiagnose(object):
# 指数收益
index_return
=
index_return
[
index_return
.
index
>=
group_order_start_date
]
start_index_return
=
index_return
[
" close"
]
.
values
[
0
]
index_return
[
"new_index_return"
]
=
(
index_return
[
" close"
]
-
start_index_return
)
/
(
1
+
start_index_return
)
start_index_return
=
index_return
[
self
.
index_id
]
.
values
[
0
]
index_return
[
"new_index_return"
]
=
(
index_return
[
self
.
index_id
]
-
start_index_return
)
/
(
1
+
start_index_return
)
index_return_ratio
=
index_return
[
"new_index_return"
]
.
values
[
-
1
]
index_return_ratio_year
=
annual_return
(
index_return
[
"new_index_return"
]
.
values
[
-
1
],
index_return
[
"new_index_return"
],
n_freq
)
index_volatility
=
volatility
(
index_return
[
"new_index_return"
]
+
1
,
n_freq
)
...
...
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