Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
A
alpha-mind
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
Dr.李
alpha-mind
Commits
c9c2c89c
Commit
c9c2c89c
authored
May 25, 2017
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added general build portfolio interface
parent
1d36527e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
1 deletion
+25
-1
factoranalysis.py
alphamind/analysis/factoranalysis.py
+25
-1
No files found.
alphamind/analysis/factoranalysis.py
View file @
c9c2c89c
...
...
@@ -9,11 +9,15 @@ import numpy as np
from
typing
import
Optional
from
typing
import
List
from
alphamind.data.neutralize
import
neutralize
from
alphamind.portfolio.longshortbulder
import
long_short_build
from
alphamind.portfolio.rankbuilder
import
rank_build
from
alphamind.portfolio.percentbuilder
import
percent_build
from
alphamind.portfolio.linearbuilder
import
linear_build
def
factor_processing
(
raw_factor
:
np
.
ndarray
,
pre_process
:
Optional
[
List
]
=
None
,
risk_factors
:
Optional
[
np
.
ndarray
]
=
None
):
risk_factors
:
Optional
[
np
.
ndarray
]
=
None
)
->
np
.
ndarray
:
new_factor
=
raw_factor
...
...
@@ -27,6 +31,26 @@ def factor_processing(raw_factor: np.ndarray,
return
new_factor
def
build_portfolio
(
er
:
np
.
ndarray
,
builder
:
Optional
[
str
]
=
'long_short'
,
**
kwargs
)
->
np
.
ndarray
:
builder
=
builder
.
lower
()
if
builder
==
'long_short'
:
return
long_short_build
(
er
,
**
kwargs
)
elif
builder
==
'rank'
:
return
rank_build
(
er
,
**
kwargs
)
elif
builder
==
'percent_build'
:
return
percent_build
(
er
,
**
kwargs
)
elif
builder
==
'linear_prog'
:
status
,
_
,
weight
=
linear_build
(
er
,
**
kwargs
)
if
status
!=
'optimal'
:
raise
ValueError
(
'linear programming optimizer in status: {0}'
.
format
(
status
))
else
:
return
weight
if
__name__
==
'__main__'
:
from
alphamind.data.standardize
import
standardize
...
...
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