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
93d382eb
Commit
93d382eb
authored
Oct 17, 2020
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FEATURE: use global statistics
parent
b0dbb3ea
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
6 deletions
+9
-6
sqlengine_rl.py
alphamind/data/engines/sqlengine_rl.py
+9
-6
No files found.
alphamind/data/engines/sqlengine_rl.py
View file @
93d382eb
...
...
@@ -62,6 +62,12 @@ class SqlEngine:
db_session
=
orm
.
sessionmaker
(
bind
=
self
.
_engine
)
return
db_session
()
def
_create_stats
(
self
,
df
,
horizon
,
offset
):
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
()
return
df
def
fetch_dx_return
(
self
,
ref_date
:
str
,
codes
:
Iterable
[
int
],
...
...
@@ -81,7 +87,6 @@ class SqlEngine:
else
:
end_date
=
expiry_date
query
=
select
([
Market
.
trade_date
,
Market
.
code
.
label
(
"code"
),
Market
.
chgPct
.
label
(
"chgPct"
)])
.
where
(
and_
(
Market
.
trade_date
.
between
(
start_date
,
end_date
),
...
...
@@ -91,9 +96,7 @@ class SqlEngine:
)
.
order_by
(
Market
.
trade_date
,
Market
.
code
)
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
=
self
.
_create_stats
(
df
,
horizon
,
offset
)
df
=
df
[
df
.
trade_date
==
ref_date
]
if
neutralized_risks
:
...
...
@@ -121,6 +124,6 @@ if __name__ == "__main__":
db_url
=
"mysql+mysqldb://reader:Reader#2020@121.37.138.1:13317/vision?charset=utf8"
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"])
#
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-10
"
,
codes
=
[
"2010000001"
])
print
(
df
)
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