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
b0dbb3ea
Commit
b0dbb3ea
authored
Oct 17, 2020
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FIX: use universal names
parent
4e3a67a9
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
9 deletions
+18
-9
sqlengine_rl.py
alphamind/data/engines/sqlengine_rl.py
+17
-8
universe.py
alphamind/data/engines/universe.py
+1
-1
No files found.
alphamind/data/engines/sqlengine_rl.py
View file @
b0dbb3ea
...
...
@@ -12,6 +12,7 @@ from typing import Tuple
from
typing
import
Union
import
numpy
as
np
import
pandas
as
pd
import
sqlalchemy
as
sa
import
sqlalchemy.orm
as
orm
...
...
@@ -53,6 +54,10 @@ class SqlEngine:
def
engine
(
self
):
return
self
.
_engine
@
property
def
session
(
self
):
return
self
.
_session
def
create_session
(
self
):
db_session
=
orm
.
sessionmaker
(
bind
=
self
.
_engine
)
return
db_session
()
...
...
@@ -76,14 +81,19 @@ class SqlEngine:
else
:
end_date
=
expiry_date
query
=
select
([
Market
.
trade_date
,
Market
.
code
,
Market
.
chgPct
])
.
where
(
query
=
select
([
Market
.
trade_date
,
Market
.
code
.
label
(
"code"
),
Market
.
chgPct
.
label
(
"chgPct"
)])
.
where
(
and_
(
Market
.
trade_date
.
between
(
start_date
,
end_date
),
Market
.
code
.
in_
(
codes
)
)
Market
.
code
.
in_
(
codes
)
,
Market
.
flag
==
1
)
)
.
order_by
(
Market
.
trade_date
,
Market
.
code
)
df
=
pd
.
read_sql
(
query
,
self
.
_session
.
bind
)
.
dropna
()
df
=
pd
.
read_sql
(
query
,
self
.
session
.
bind
)
.
dropna
()
df
.
set_index
(
"trade_date"
,
inplace
=
True
)
df
[
"dx"
]
=
np
.
log
(
1.
+
df
[
"chgPct"
])
df
=
df
.
groupby
(
"code"
)
.
rolling
(
window
=
horizon
+
1
)[
'dx'
]
.
sum
()
.
shift
(
-
(
offset
+
1
))
.
dropna
()
.
reset_index
()
df
=
df
[
df
.
trade_date
==
ref_date
]
if
neutralized_risks
:
...
...
@@ -93,12 +103,10 @@ class SqlEngine:
pre_process
=
pre_process
,
risk_factors
=
df
[
neutralized_risks
]
.
values
,
post_process
=
post_process
)
df
.
rename
(
columns
=
{
"security_code"
:
"code"
,
"change_pct"
:
"dx"
},
inplace
=
True
)
return
df
[[
'code'
,
'dx'
]]
def
fetch_codes
(
self
,
ref_date
:
str
,
universe
:
Universe
)
->
List
[
int
]:
df
=
universe
.
query
(
self
,
ref_date
,
ref_date
)
.
rename
(
columns
=
{
"security_code"
:
"code"
})
df
=
universe
.
query
(
self
,
ref_date
,
ref_date
)
return
sorted
(
df
.
code
.
tolist
())
def
fetch_codes_range
(
self
,
...
...
@@ -106,7 +114,7 @@ class SqlEngine:
start_date
:
str
=
None
,
end_date
:
str
=
None
,
dates
:
Iterable
[
str
]
=
None
)
->
pd
.
DataFrame
:
return
universe
.
query
(
self
,
start_date
,
end_date
,
dates
)
.
rename
(
columns
=
{
"security_code"
:
"code"
})
return
universe
.
query
(
self
,
start_date
,
end_date
,
dates
)
if
__name__
==
"__main__"
:
...
...
@@ -114,4 +122,5 @@ if __name__ == "__main__":
sql_engine
=
SqlEngine
(
db_url
=
db_url
)
df
=
sql_engine
.
fetch_codes_range
(
start_date
=
'2020-09-29'
,
end_date
=
'2020-10-10'
,
universe
=
Universe
(
"hs300"
))
# df = sql_engine.fetch_dx_return("2020-09-25", codes=["2010000001"])
print
(
df
)
alphamind/data/engines/universe.py
View file @
b0dbb3ea
...
...
@@ -56,7 +56,7 @@ class BaseUniverse(metaclass=abc.ABCMeta):
more_conditions
=
[
UniverseTable
.
flag
==
1
]
else
:
more_conditions
=
[]
query
=
select
([
UniverseTable
.
trade_date
,
UniverseTable
.
code
])
.
where
(
query
=
select
([
UniverseTable
.
trade_date
,
UniverseTable
.
code
.
label
(
"code"
)
])
.
where
(
and_
(
self
.
_query_statements
(
start_date
,
end_date
,
dates
),
*
more_conditions
...
...
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