Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
R
robo-dividend
Project
Project
Details
Activity
Releases
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wenwen.tang
robo-dividend
Commits
f72a7872
Commit
f72a7872
authored
Nov 18, 2022
by
纪超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成日志、配置文件、数据库工具模块
parent
495d15b0
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
4 deletions
+10
-4
builder.py
portfolios/builder.py
+5
-2
test.py
test.py
+5
-2
No files found.
portfolios/builder.py
View file @
f72a7872
import
json
import
os
import
sys
from
logging
import
DEBUG
import
pandas
as
pd
from
dateutil.relativedelta
import
relativedelta
...
...
@@ -108,7 +109,8 @@ class MptSolver:
return
min_rtn
,
min_var
,
maxCVaR_whenMinV
def
solve_mpt
(
self
,
min_rtn
,
max_rtn
):
logger
.
debug
(
f
'...... ...... ...... ...... ...... ...... ...... ...... MPT ... sub risk : pct_value = {self.pct_value}'
)
logger
.
debug
(
f
'...... ...... ...... ...... ...... ...... ...... ...... MPT ... sub risk : pct_value = {self.pct_value}'
)
big_y
=
min_rtn
+
self
.
pct_value
*
(
max_rtn
-
min_rtn
)
logger
.
debug
(
f
'big_Y = target_Return = {big_y}'
)
model
=
self
.
create_model
()
...
...
@@ -127,7 +129,8 @@ class MptSolver:
def
solve_poem
(
self
,
min_rtn
,
max_rtn
,
base_cvar
,
max_cvar
):
k_history
=
len
(
self
.
rtn_history
)
quantile
=
self
.
pct_value
logger
.
debug
(
f
'...... ...... ...... ...... ...... ...... ...... ...... POEM With CVaR constraints ... sub risk : pct_value = {quantile}'
)
logger
.
debug
(
f
'...... ...... ...... ...... ...... ...... ...... ...... POEM With CVaR constraints ... sub risk : pct_value = {quantile}'
)
big_y
=
min_rtn
+
quantile
*
(
max_rtn
-
min_rtn
)
small_y
=
base_cvar
+
(
max_cvar
-
base_cvar
)
*
self
.
get_config
(
'poem.cvar-scale-factor'
)
*
quantile
logger
.
debug
(
f
'big_Y = target_Return = {big_y} | small_y = target_cvar = {small_y}'
)
...
...
test.py
View file @
f72a7872
...
...
@@ -7,8 +7,11 @@ logger = get_logger('test')
@
autowired
(
names
=
{
'builder'
:
'poem'
})
def
test_portfolio_builder
(
builder
:
PortfoliosBuilder
=
None
):
result
,
detail
=
builder
.
build_portfolio
(
parse_date
(
'2011-11-07'
),
PortfoliosType
.
NORMAL
)
logger
.
info
(
result
)
logger
.
info
(
detail
)
logger
.
info
(
"portfolios: "
)
for
risk
,
portfolio
in
result
.
items
():
logger
.
info
(
risk
.
name
)
logger
.
info
(
portfolio
)
logger
.
info
(
detail
[
risk
])
if
__name__
==
'__main__'
:
...
...
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