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
5bf21af5
Commit
5bf21af5
authored
Feb 09, 2018
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added universe saver and loader
parent
1d5dac73
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
4 deletions
+28
-4
universe.py
alphamind/data/engines/universe.py
+28
-4
No files found.
alphamind/data/engines/universe.py
View file @
5bf21af5
...
...
@@ -12,12 +12,13 @@ from sqlalchemy import or_
from
sqlalchemy
import
select
from
sqlalchemy
import
join
from
sqlalchemy
import
outerjoin
from
PyFin.api
import
pyFinAssert
from
alphamind.data.dbmodel.models
import
Universe
as
UniverseTable
from
alphamind.data.dbmodel.models
import
FullFactor
from
alphamind.data.engines.utilities
import
_map_factors
from
alphamind.data.engines.utilities
import
factor_tables
from
alphamind.data.transformer
import
Transformer
from
alphamind.utilities
import
encode
from
alphamind.utilities
import
decode
class
Universe
(
object
):
...
...
@@ -25,8 +26,8 @@ class Universe(object):
def
__init__
(
self
,
name
:
str
,
base_universe
:
Iterable
,
exclude_universe
:
Iterable
=
None
,
special_codes
:
Iterable
=
None
,
exclude_universe
:
Iterable
=
None
,
special_codes
:
Iterable
=
None
,
filter_cond
=
None
):
self
.
name
=
name
self
.
base_universe
=
base_universe
...
...
@@ -59,7 +60,7 @@ class Universe(object):
*
and_conditions
)
def
query
(
self
,
engine
,
start_date
:
str
=
None
,
end_date
:
str
=
None
,
dates
=
None
)
->
pd
.
DataFrame
:
def
query
(
self
,
engine
,
start_date
:
str
=
None
,
end_date
:
str
=
None
,
dates
=
None
)
->
pd
.
DataFrame
:
universe_cond
=
self
.
_query_statements
(
start_date
,
end_date
,
dates
)
...
...
@@ -103,6 +104,29 @@ class Universe(object):
df
=
df
[
df
[
filter_fields
[
0
]]
==
1
]
.
reset_index
()[[
'trade_date'
,
'code'
]]
return
df
def
save
(
self
):
return
dict
(
name
=
self
.
name
,
base_universe
=
self
.
base_universe
,
exclude_universe
=
self
.
exclude_universe
,
special_codes
=
self
.
special_codes
,
filter_cond
=
encode
(
self
.
filter_cond
)
)
@
classmethod
def
load
(
cls
,
universe_desc
):
name
=
universe_desc
[
'name'
]
base_universe
=
universe_desc
[
'base_universe'
]
exclude_universe
=
universe_desc
[
'exclude_universe'
]
special_codes
=
universe_desc
[
'special_codes'
]
filter_cond
=
decode
(
universe_desc
[
'filter_cond'
])
return
cls
(
name
=
name
,
base_universe
=
base_universe
,
exclude_universe
=
exclude_universe
,
special_codes
=
special_codes
,
filter_cond
=
filter_cond
)
if
__name__
==
'__main__'
:
from
PyFin.api
import
*
...
...
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