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
88a49650
Commit
88a49650
authored
Sep 19, 2017
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update strategy part
parent
8c1e9cab
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
9 deletions
+23
-9
sample_strategy.json
alphamind/strategy/sample_strategy.json
+9
-3
strategy.py
alphamind/strategy/strategy.py
+14
-6
No files found.
alphamind/strategy/sample_strategy.json
View file @
88a49650
...
@@ -4,12 +4,12 @@
...
@@ -4,12 +4,12 @@
"data_process"
:
"data_process"
:
{
{
"pre_process"
:
[
"winsorize"
,
"standardize"
],
"pre_process"
:
[
"winsorize"
,
"standardize"
],
"neutralize_risk"
:
[
"SIZE"
],
"neutralize_risk"
:
[
"SIZE"
,
"industry_styles"
],
"post_process"
:
[
"winsorize"
,
"standardize"
]
"post_process"
:
[
"winsorize"
,
"standardize"
]
},
},
"risk_model"
:
"short"
,
"risk_model"
:
"short"
,
"model"
:
"LinearRegression"
,
"
alpha_
model"
:
"LinearRegression"
,
"features"
:
[
"EPS"
,
"ROEDiluted"
],
"features"
:
[
"EPS"
,
"ROEDiluted"
],
"parameters"
:
"parameters"
:
...
@@ -21,5 +21,11 @@
...
@@ -21,5 +21,11 @@
"batch"
:
4
,
"batch"
:
4
,
"warm_start"
:
0
,
"warm_start"
:
0
,
"universe"
:
[
"zz500"
,
[
"zz500"
]],
"universe"
:
[
"zz500"
,
[
"zz500"
]],
"benchmark"
:
905
"benchmark"
:
905
,
"optimizer"
:
{
"build_type"
:
"risk_neutral"
,
"neutralize_risk"
:
[
"SIZE"
,
"industry_styles"
]
}
}
}
\ No newline at end of file
alphamind/strategy/strategy.py
View file @
88a49650
...
@@ -60,7 +60,7 @@ class Strategy(object):
...
@@ -60,7 +60,7 @@ class Strategy(object):
self
.
neutralize_risk
=
load_neutralize_risks
(
strategy_desc
[
'data_process'
][
'neutralize_risk'
])
self
.
neutralize_risk
=
load_neutralize_risks
(
strategy_desc
[
'data_process'
][
'neutralize_risk'
])
self
.
risk_model
=
strategy_desc
[
'risk_model'
]
self
.
risk_model
=
strategy_desc
[
'risk_model'
]
self
.
model_type
=
load_model_meta
(
strategy_desc
[
'model'
])
self
.
model_type
=
load_model_meta
(
strategy_desc
[
'
alpha_
model'
])
self
.
parameters
=
strategy_desc
[
'parameters'
]
self
.
parameters
=
strategy_desc
[
'parameters'
]
self
.
features
=
strategy_desc
[
'features'
]
self
.
features
=
strategy_desc
[
'features'
]
self
.
model
=
self
.
model_type
(
features
=
self
.
features
,
**
self
.
parameters
)
self
.
model
=
self
.
model_type
(
features
=
self
.
features
,
**
self
.
parameters
)
...
@@ -91,6 +91,11 @@ class Strategy(object):
...
@@ -91,6 +91,11 @@ class Strategy(object):
self
.
risk_model
,
self
.
risk_model
,
self
.
pre_process
,
self
.
pre_process
,
self
.
post_process
)
self
.
post_process
)
# some cached data to fast processing
settlement_data
=
self
.
cached_data
[
'settlement'
]
self
.
settle_dfs
=
settlement_data
.
set_index
(
'code'
)
.
groupby
(
'trade_date'
)
self
.
scheduled_dates
=
set
(
k
.
strftime
(
'
%
Y-
%
m-
%
d'
)
for
k
in
self
.
cached_data
[
'train'
][
'x'
]
.
keys
())
self
.
scheduled_dates
=
set
(
k
.
strftime
(
'
%
Y-
%
m-
%
d'
)
for
k
in
self
.
cached_data
[
'train'
][
'x'
]
.
keys
())
else
:
else
:
self
.
cached_data
=
None
self
.
cached_data
=
None
...
@@ -149,6 +154,9 @@ class Strategy(object):
...
@@ -149,6 +154,9 @@ class Strategy(object):
return
pd
.
DataFrame
({
'prediction'
:
prediction
,
return
pd
.
DataFrame
({
'prediction'
:
prediction
,
'code'
:
codes
})
'code'
:
codes
})
def
settlement
(
self
,
ref_date
:
str
,
prediction
:
pd
.
DataFrame
)
->
float
:
settlement_data
=
self
.
settle_dfs
.
get_group
(
ref_date
)[[
'dx'
,
'weight'
]]
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
import
json
import
json
...
@@ -158,7 +166,7 @@ if __name__ == '__main__':
...
@@ -158,7 +166,7 @@ if __name__ == '__main__':
engine
=
SqlEngine
()
engine
=
SqlEngine
()
start_date
=
'201
2-01
-01'
start_date
=
'201
7-06
-01'
end_date
=
'2017-09-14'
end_date
=
'2017-09-14'
with
open
(
"sample_strategy.json"
,
'r'
)
as
fp
:
with
open
(
"sample_strategy.json"
,
'r'
)
as
fp
:
...
@@ -168,7 +176,7 @@ if __name__ == '__main__':
...
@@ -168,7 +176,7 @@ if __name__ == '__main__':
dates
=
strategy
.
cached_dates
()
dates
=
strategy
.
cached_dates
()
print
(
dates
)
print
(
dates
)
#
for date in dates:
for
date
in
dates
:
#
strategy.model_train(date)
strategy
.
model_train
(
date
)
#
prediction = strategy.model_predict(date)
prediction
=
strategy
.
model_predict
(
date
)
# print(date
)
strategy
.
settlement
(
date
,
prediction
)
\ No newline at end of file
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