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
3dd7d3f7
Unverified
Commit
3dd7d3f7
authored
Apr 12, 2018
by
iLampard
Committed by
GitHub
Apr 12, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6 from alpha-miner/master
merge update
parents
b7236f71
957f8a82
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
11 deletions
+11
-11
data_preparing.py
alphamind/model/data_preparing.py
+11
-11
No files found.
alphamind/model/data_preparing.py
View file @
3dd7d3f7
...
@@ -26,16 +26,16 @@ from alphamind.utilities import alpha_logger
...
@@ -26,16 +26,16 @@ from alphamind.utilities import alpha_logger
from
alphamind.utilities
import
map_freq
from
alphamind.utilities
import
map_freq
def
_merge_df
(
engine
,
names
,
factor_df
,
return
_df
,
universe
,
dates
,
risk_model
,
neutralized_risk
):
def
_merge_df
(
engine
,
names
,
factor_df
,
target
_df
,
universe
,
dates
,
risk_model
,
neutralized_risk
):
risk_df
=
engine
.
fetch_risk_model_range
(
universe
,
dates
=
dates
,
risk_model
=
risk_model
)[
1
]
risk_df
=
engine
.
fetch_risk_model_range
(
universe
,
dates
=
dates
,
risk_model
=
risk_model
)[
1
]
alpha_logger
.
info
(
"risk data loading finished"
)
alpha_logger
.
info
(
"risk data loading finished"
)
used_neutralized_risk
=
list
(
set
(
total_risk_factors
)
.
difference
(
names
))
used_neutralized_risk
=
list
(
set
(
total_risk_factors
)
.
difference
(
names
))
risk_df
=
risk_df
[[
'trade_date'
,
'code'
]
+
used_neutralized_risk
]
.
dropna
()
risk_df
=
risk_df
[[
'trade_date'
,
'code'
]
+
used_neutralized_risk
]
.
dropna
()
return_df
=
pd
.
merge
(
return
_df
,
risk_df
,
on
=
[
'trade_date'
,
'code'
])
target_df
=
pd
.
merge
(
target
_df
,
risk_df
,
on
=
[
'trade_date'
,
'code'
])
if
neutralized_risk
:
if
neutralized_risk
:
train_x
=
pd
.
merge
(
factor_df
,
risk_df
,
on
=
[
'trade_date'
,
'code'
])
train_x
=
pd
.
merge
(
factor_df
,
risk_df
,
on
=
[
'trade_date'
,
'code'
])
train_y
=
return
_df
.
copy
()
train_y
=
target
_df
.
copy
()
risk_exp
=
train_x
[
neutralized_risk
]
.
values
.
astype
(
float
)
risk_exp
=
train_x
[
neutralized_risk
]
.
values
.
astype
(
float
)
x_values
=
train_x
[
names
]
.
values
.
astype
(
float
)
x_values
=
train_x
[
names
]
.
values
.
astype
(
float
)
...
@@ -43,14 +43,14 @@ def _merge_df(engine, names, factor_df, return_df, universe, dates, risk_model,
...
@@ -43,14 +43,14 @@ def _merge_df(engine, names, factor_df, return_df, universe, dates, risk_model,
else
:
else
:
risk_exp
=
None
risk_exp
=
None
train_x
=
factor_df
.
copy
()
train_x
=
factor_df
.
copy
()
train_y
=
return
_df
.
copy
()
train_y
=
target
_df
.
copy
()
x_values
=
train_x
[
names
]
.
values
.
astype
(
float
)
x_values
=
train_x
[
names
]
.
values
.
astype
(
float
)
y_values
=
train_y
[[
'dx'
]]
.
values
y_values
=
train_y
[[
'dx'
]]
.
values
codes
=
train_x
[
'code'
]
.
values
codes
=
train_x
[
'code'
]
.
values
date_label
=
pd
.
DatetimeIndex
(
factor_df
.
trade_date
)
.
to_pydatetime
()
date_label
=
pd
.
DatetimeIndex
(
factor_df
.
trade_date
)
.
to_pydatetime
()
dates
=
np
.
unique
(
date_label
)
dates
=
np
.
unique
(
date_label
)
return
return
_df
,
dates
,
date_label
,
risk_exp
,
x_values
,
y_values
,
train_x
,
train_y
,
codes
return
target
_df
,
dates
,
date_label
,
risk_exp
,
x_values
,
y_values
,
train_x
,
train_y
,
codes
def
prepare_data
(
engine
:
SqlEngine
,
def
prepare_data
(
engine
:
SqlEngine
,
...
@@ -281,15 +281,15 @@ def fetch_train_phase(engine,
...
@@ -281,15 +281,15 @@ def fetch_train_phase(engine,
horizon
=
map_freq
(
frequency
)
horizon
=
map_freq
(
frequency
)
factor_df
=
engine
.
fetch_factor_range
(
universe
,
factors
=
transformer
,
dates
=
dates
)
factor_df
=
engine
.
fetch_factor_range
(
universe
,
factors
=
transformer
,
dates
=
dates
)
return
_df
=
engine
.
fetch_dx_return_range
(
universe
,
dates
=
dates
,
horizon
=
horizon
)
target
_df
=
engine
.
fetch_dx_return_range
(
universe
,
dates
=
dates
,
horizon
=
horizon
)
df
=
pd
.
merge
(
factor_df
,
return
_df
,
on
=
[
'trade_date'
,
'code'
])
.
dropna
()
df
=
pd
.
merge
(
factor_df
,
target
_df
,
on
=
[
'trade_date'
,
'code'
])
.
dropna
()
return
_df
,
factor_df
=
df
[[
'trade_date'
,
'code'
,
'dx'
]],
df
[
target
_df
,
factor_df
=
df
[[
'trade_date'
,
'code'
,
'dx'
]],
df
[
[
'trade_date'
,
'code'
,
'isOpen'
]
+
transformer
.
names
]
[
'trade_date'
,
'code'
,
'isOpen'
]
+
transformer
.
names
]
return
_df
,
dates
,
date_label
,
risk_exp
,
x_values
,
y_values
,
_
,
_
,
codes
=
\
target
_df
,
dates
,
date_label
,
risk_exp
,
x_values
,
y_values
,
_
,
_
,
codes
=
\
_merge_df
(
engine
,
transformer
.
names
,
factor_df
,
return
_df
,
universe
,
dates
,
risk_model
,
neutralized_risk
)
_merge_df
(
engine
,
transformer
.
names
,
factor_df
,
target
_df
,
universe
,
dates
,
risk_model
,
neutralized_risk
)
if
dates
[
-
1
]
==
dt
.
datetime
.
strptime
(
ref_date
,
'
%
Y-
%
m-
%
d'
):
if
dates
[
-
1
]
==
dt
.
datetime
.
strptime
(
ref_date
,
'
%
Y-
%
m-
%
d'
):
pyFinAssert
(
len
(
dates
)
>=
2
,
ValueError
,
"No previous data for training for the date {0}"
.
format
(
ref_date
))
pyFinAssert
(
len
(
dates
)
>=
2
,
ValueError
,
"No previous data for training for the date {0}"
.
format
(
ref_date
))
...
@@ -419,7 +419,7 @@ if __name__ == '__main__':
...
@@ -419,7 +419,7 @@ if __name__ == '__main__':
engine
=
SqlEngine
(
'postgresql+psycopg2://postgres:A12345678!@10.63.6.220/alpha'
)
engine
=
SqlEngine
(
'postgresql+psycopg2://postgres:A12345678!@10.63.6.220/alpha'
)
universe
=
Universe
(
'zz500'
,
[
'hs300'
,
'zz500'
])
universe
=
Universe
(
'zz500'
,
[
'hs300'
,
'zz500'
])
neutralized_risk
=
[
'SIZE'
]
neutralized_risk
=
[
'SIZE'
]
res
=
fetch_
predict
_phase
(
engine
,
[
'ep_q'
],
res
=
fetch_
train
_phase
(
engine
,
[
'ep_q'
],
'2012-01-05'
,
'2012-01-05'
,
'5b'
,
'5b'
,
universe
,
universe
,
...
...
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