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
95f000e7
Commit
95f000e7
authored
Aug 25, 2017
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update examples
parent
bd3c56b0
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
32 deletions
+36
-32
factor_analysis_example.py
alphamind/examples/factor_analysis_example.py
+4
-4
formula_expression.py
alphamind/examples/formula_expression.py
+12
-10
plot_quantile_res.py
alphamind/examples/plot_quantile_res.py
+11
-9
quantile_analysis_example.py
alphamind/examples/quantile_analysis_example.py
+9
-9
No files found.
alphamind/examples/factor_analysis_example.py
View file @
95f000e7
...
@@ -26,7 +26,7 @@ strategies = {
...
@@ -26,7 +26,7 @@ strategies = {
}
}
engine
=
SqlEngine
(
"mssql+pymssql://licheng:A12345678!@10.63.6.220/alpha"
)
engine
=
SqlEngine
(
'postgresql+psycopg2://postgres:A12345678!@10.63.6.220/alpha'
)
universe
=
Universe
(
'custom'
,
[
'zz500'
])
universe
=
Universe
(
'custom'
,
[
'zz500'
])
benchmark_code
=
905
benchmark_code
=
905
neutralize_risk
=
industry_styles
neutralize_risk
=
industry_styles
...
@@ -53,17 +53,17 @@ for strategy in strategies:
...
@@ -53,17 +53,17 @@ for strategy in strategies:
all_data
=
engine
.
fetch_data_range
(
universe
,
factors
,
dates
=
dates
,
benchmark
=
905
)
all_data
=
engine
.
fetch_data_range
(
universe
,
factors
,
dates
=
dates
,
benchmark
=
905
)
factor_all_data
=
all_data
[
'factor'
]
factor_all_data
=
all_data
[
'factor'
]
factor_groups
=
factor_all_data
.
groupby
(
'
D
ate'
)
factor_groups
=
factor_all_data
.
groupby
(
'
trade_d
ate'
)
rets
=
[]
rets
=
[]
for
i
,
value
in
enumerate
(
factor_groups
):
for
i
,
value
in
enumerate
(
factor_groups
):
date
=
value
[
0
]
date
=
value
[
0
]
data
=
value
[
1
]
data
=
value
[
1
]
codes
=
data
.
C
ode
.
tolist
()
codes
=
data
.
c
ode
.
tolist
()
ref_date
=
date
.
strftime
(
'
%
Y-
%
m-
%
d'
)
ref_date
=
date
.
strftime
(
'
%
Y-
%
m-
%
d'
)
returns
=
engine
.
fetch_dx_return
(
ref_date
,
codes
,
horizon
=
horizon
)
returns
=
engine
.
fetch_dx_return
(
ref_date
,
codes
,
horizon
=
horizon
)
total_data
=
pd
.
merge
(
data
,
returns
,
on
=
[
'
C
ode'
])
.
dropna
()
total_data
=
pd
.
merge
(
data
,
returns
,
on
=
[
'
c
ode'
])
.
dropna
()
print
(
date
,
': '
,
len
(
total_data
))
print
(
date
,
': '
,
len
(
total_data
))
risk_exp
=
total_data
[
neutralize_risk
]
.
values
.
astype
(
float
)
risk_exp
=
total_data
[
neutralize_risk
]
.
values
.
astype
(
float
)
industry
=
total_data
.
industry_code
.
values
industry
=
total_data
.
industry_code
.
values
...
...
alphamind/examples/formula_expression.py
View file @
95f000e7
...
@@ -13,19 +13,19 @@ from matplotlib import pyplot as plt
...
@@ -13,19 +13,19 @@ from matplotlib import pyplot as plt
# defind your alpha formula here
# defind your alpha formula here
base_factors
=
[
'EPS'
,
'ROEDiluted'
,
'VAL'
,
'CFinc1'
]
base_factors
=
[
'EPS'
,
'ROEDiluted'
,
'
BTOP'
]
#, 'ROEDiluted', '
VAL', 'CFinc1']
expression
=
0.
expression
=
0.
for
name
in
base_factors
:
for
name
in
base_factors
:
expression
=
expression
+
RSI
(
10
,
name
)
expression
=
expression
+
LAST
(
name
)
alpha_factor_name
=
'alpha_factor'
alpha_factor_name
=
'alpha_factor'
alpha_factor
=
{
alpha_factor_name
:
expression
}
alpha_factor
=
{
alpha_factor_name
:
expression
}
# end of formula definition
# end of formula definition
engine
=
SqlEngine
(
"mssql+pymssql://licheng:A12345678!@10.63.6.220/alpha"
)
engine
=
SqlEngine
(
'postgresql+psycopg2://postgres:A12345678!@10.63.6.220/alpha'
)
universe
=
Universe
(
'custom'
,
[
'zz500'
])
universe
=
Universe
(
'custom'
,
[
'zz500'
])
benchmark_code
=
905
benchmark_code
=
905
neutralize_risk
=
[
'SIZE'
]
+
industry_styles
neutralize_risk
=
[
'SIZE'
]
+
industry_styles
...
@@ -39,8 +39,8 @@ elif freq == '1w':
...
@@ -39,8 +39,8 @@ elif freq == '1w':
elif
freq
==
'1d'
:
elif
freq
==
'1d'
:
horizon
=
0
horizon
=
0
dates
=
makeSchedule
(
'201
7
-01-01'
,
dates
=
makeSchedule
(
'201
2
-01-01'
,
'201
7-08-18
'
,
'201
2-08-01
'
,
tenor
=
freq
,
tenor
=
freq
,
calendar
=
'china.sse'
)
calendar
=
'china.sse'
)
...
@@ -48,18 +48,20 @@ factor_all_data = engine.fetch_data_range(universe,
...
@@ -48,18 +48,20 @@ factor_all_data = engine.fetch_data_range(universe,
alpha_factor
,
alpha_factor
,
dates
=
dates
,
dates
=
dates
,
benchmark
=
905
)[
'factor'
]
benchmark
=
905
)[
'factor'
]
return_all_data
=
engine
.
fetch_dx_return_range
(
universe
,
dates
=
dates
,
horizon
=
horizon
)
factor_groups
=
factor_all_data
.
groupby
(
'Date'
)
factor_groups
=
factor_all_data
.
groupby
(
'trade_date'
)
return_groups
=
return_all_data
.
groupby
(
'trade_date'
)
final_res
=
np
.
zeros
((
len
(
dates
),
n_bins
))
final_res
=
np
.
zeros
((
len
(
dates
),
n_bins
))
for
i
,
value
in
enumerate
(
factor_groups
):
for
i
,
value
in
enumerate
(
factor_groups
):
date
=
value
[
0
]
date
=
value
[
0
]
data
=
value
[
1
][[
'
C
ode'
,
alpha_factor_name
,
'isOpen'
,
'weight'
]
+
neutralize_risk
]
data
=
value
[
1
][[
'
c
ode'
,
alpha_factor_name
,
'isOpen'
,
'weight'
]
+
neutralize_risk
]
codes
=
data
.
C
ode
.
tolist
()
codes
=
data
.
c
ode
.
tolist
()
ref_date
=
value
[
0
]
.
strftime
(
'
%
Y-
%
m-
%
d'
)
ref_date
=
value
[
0
]
.
strftime
(
'
%
Y-
%
m-
%
d'
)
returns
=
engine
.
fetch_dx_return
(
date
,
codes
,
horizon
=
horizon
)
returns
=
return_groups
.
get_group
(
date
)
total_data
=
pd
.
merge
(
data
,
returns
,
on
=
[
'
C
ode'
])
.
dropna
()
total_data
=
pd
.
merge
(
data
,
returns
,
on
=
[
'
c
ode'
])
.
dropna
()
risk_exp
=
total_data
[
neutralize_risk
]
.
values
.
astype
(
float
)
risk_exp
=
total_data
[
neutralize_risk
]
.
values
.
astype
(
float
)
dx_return
=
total_data
.
dx
.
values
dx_return
=
total_data
.
dx
.
values
benchmark
=
total_data
.
weight
.
values
benchmark
=
total_data
.
weight
.
values
...
...
alphamind/examples/plot_quantile_res.py
View file @
95f000e7
...
@@ -14,7 +14,7 @@ from matplotlib import pyplot as plt
...
@@ -14,7 +14,7 @@ from matplotlib import pyplot as plt
start
=
dt
.
datetime
.
now
()
start
=
dt
.
datetime
.
now
()
engine
=
SqlEngine
(
"mssql+pymssql://licheng:A12345678!@10.63.6.220/alpha"
)
engine
=
SqlEngine
(
'postgresql+psycopg2://postgres:A12345678!@10.63.6.220/alpha'
)
universe
=
Universe
(
'custom'
,
[
'zz500'
])
universe
=
Universe
(
'custom'
,
[
'zz500'
])
neutralize_risk
=
[
'SIZE'
]
+
industry_styles
neutralize_risk
=
[
'SIZE'
]
+
industry_styles
n_bins
=
5
n_bins
=
5
...
@@ -30,8 +30,8 @@ elif freq == '1w':
...
@@ -30,8 +30,8 @@ elif freq == '1w':
elif
freq
==
'1d'
:
elif
freq
==
'1d'
:
horizon
=
0
horizon
=
0
start_date
=
'201
7
-01-01'
start_date
=
'201
2
-01-01'
end_date
=
'201
7-08-22
'
end_date
=
'201
2-08-01
'
dates
=
makeSchedule
(
start_date
,
dates
=
makeSchedule
(
start_date
,
end_date
,
end_date
,
...
@@ -39,9 +39,10 @@ dates = makeSchedule(start_date,
...
@@ -39,9 +39,10 @@ dates = makeSchedule(start_date,
calendar
=
'china.sse'
,
calendar
=
'china.sse'
,
dateRule
=
BizDayConventions
.
Following
)
dateRule
=
BizDayConventions
.
Following
)
prod_factors
=
[
'
CHV
'
]
prod_factors
=
[
'
EPS
'
]
all_data
=
engine
.
fetch_data_range
(
universe
,
prod_factors
,
dates
=
dates
,
benchmark
=
905
)
all_data
=
engine
.
fetch_data_range
(
universe
,
prod_factors
,
dates
=
dates
,
benchmark
=
905
)
return_all_data
=
engine
.
fetch_dx_return_range
(
universe
,
dates
=
dates
,
horizon
=
horizon
)
factor_all_data
=
all_data
[
'factor'
]
factor_all_data
=
all_data
[
'factor'
]
total_df
=
pd
.
DataFrame
()
total_df
=
pd
.
DataFrame
()
...
@@ -51,15 +52,16 @@ for factor in prod_factors:
...
@@ -51,15 +52,16 @@ for factor in prod_factors:
factors
=
[
factor
]
factors
=
[
factor
]
final_res
=
np
.
zeros
((
len
(
dates
),
n_bins
))
final_res
=
np
.
zeros
((
len
(
dates
),
n_bins
))
factor_groups
=
factor_all_data
.
groupby
(
'Date'
)
factor_groups
=
factor_all_data
.
groupby
(
'trade_date'
)
return_groups
=
return_all_data
.
groupby
(
'trade_date'
)
for
i
,
value
in
enumerate
(
factor_groups
):
for
i
,
value
in
enumerate
(
factor_groups
):
date
=
value
[
0
]
date
=
value
[
0
]
data
=
value
[
1
][[
'
C
ode'
,
factor
,
'isOpen'
,
'weight'
]
+
neutralize_risk
]
data
=
value
[
1
][[
'
c
ode'
,
factor
,
'isOpen'
,
'weight'
]
+
neutralize_risk
]
codes
=
data
.
C
ode
.
tolist
()
codes
=
data
.
c
ode
.
tolist
()
ref_date
=
value
[
0
]
.
strftime
(
'
%
Y-
%
m-
%
d'
)
ref_date
=
value
[
0
]
.
strftime
(
'
%
Y-
%
m-
%
d'
)
returns
=
engine
.
fetch_dx_return
(
date
,
codes
,
horizon
=
horizon
)
returns
=
return_groups
.
get_group
(
date
)
total_data
=
pd
.
merge
(
data
,
returns
,
on
=
[
'
C
ode'
])
.
dropna
()
total_data
=
pd
.
merge
(
data
,
returns
,
on
=
[
'
c
ode'
])
.
dropna
()
print
(
'{0}: {1}'
.
format
(
date
,
len
(
data
)))
print
(
'{0}: {1}'
.
format
(
date
,
len
(
data
)))
risk_exp
=
total_data
[
neutralize_risk
]
.
values
.
astype
(
float
)
risk_exp
=
total_data
[
neutralize_risk
]
.
values
.
astype
(
float
)
dx_return
=
total_data
.
dx
.
values
dx_return
=
total_data
.
dx
.
values
...
...
alphamind/examples/quantile_analysis_example.py
View file @
95f000e7
...
@@ -13,7 +13,7 @@ from alphamind.data.dbmodel.models import Uqer
...
@@ -13,7 +13,7 @@ from alphamind.data.dbmodel.models import Uqer
from
alphamind.data.dbmodel.models
import
Tiny
from
alphamind.data.dbmodel.models
import
Tiny
from
alphamind.data.dbmodel.models
import
LegacyFactor
from
alphamind.data.dbmodel.models
import
LegacyFactor
engine
=
SqlEngine
(
'postgresql+psycopg2://postgres:
we083826@localhost
/alpha'
)
engine
=
SqlEngine
(
'postgresql+psycopg2://postgres:
A12345678!@10.63.6.220
/alpha'
)
universe
=
Universe
(
'custom'
,
[
'zz500'
])
universe
=
Universe
(
'custom'
,
[
'zz500'
])
neutralize_risk
=
[
'SIZE'
]
+
industry_styles
neutralize_risk
=
[
'SIZE'
]
+
industry_styles
n_bins
=
24
n_bins
=
24
...
@@ -45,7 +45,7 @@ for t in factor_tables:
...
@@ -45,7 +45,7 @@ for t in factor_tables:
for
c
in
t
.
__table__
.
columns
:
for
c
in
t
.
__table__
.
columns
:
col_names
.
add
(
c
.
name
)
col_names
.
add
(
c
.
name
)
col_names
=
col_names
.
difference
(
set
([
'
Date'
,
'C
ode'
]))
col_names
=
col_names
.
difference
(
set
([
'
trade_date'
,
'c
ode'
]))
prod_factors
=
list
(
col_names
)
prod_factors
=
list
(
col_names
)
...
@@ -54,20 +54,20 @@ return_all_data = engine.fetch_dx_return_range(universe, dates=dates, horizon=ho
...
@@ -54,20 +54,20 @@ return_all_data = engine.fetch_dx_return_range(universe, dates=dates, horizon=ho
factor_all_data
=
all_data
[
'factor'
]
factor_all_data
=
all_data
[
'factor'
]
total_df
=
pd
.
DataFrame
()
total_df
=
pd
.
DataFrame
()
factor_groups
=
factor_all_data
.
groupby
(
'
D
ate'
)
factor_groups
=
factor_all_data
.
groupby
(
'
trade_d
ate'
)
return_groups
=
return_all_data
.
groupby
(
'
D
ate'
)
return_groups
=
return_all_data
.
groupby
(
'
trade_d
ate'
)
for
date
,
factor_data
in
factor_groups
:
for
date
,
factor_data
in
factor_groups
:
ref_date
=
date
.
strftime
(
'
%
Y-
%
m-
%
d'
)
ref_date
=
date
.
strftime
(
'
%
Y-
%
m-
%
d'
)
returns
=
return_groups
.
get_group
(
date
)
returns
=
return_groups
.
get_group
(
date
)
final_res
=
np
.
zeros
((
len
(
prod_factors
),
n_bins
))
final_res
=
np
.
zeros
((
len
(
prod_factors
),
n_bins
))
this_date_data
=
factor_data
[[
'
C
ode'
,
'isOpen'
,
'weight'
]
+
prod_factors
+
neutralize_risk
]
this_date_data
=
factor_data
[[
'
c
ode'
,
'isOpen'
,
'weight'
]
+
prod_factors
+
neutralize_risk
]
this_date_data
=
pd
.
merge
(
this_date_data
,
returns
,
on
=
[
'
C
ode'
])
this_date_data
=
pd
.
merge
(
this_date_data
,
returns
,
on
=
[
'
c
ode'
])
codes
=
this_date_data
.
C
ode
.
tolist
()
codes
=
this_date_data
.
c
ode
.
tolist
()
for
i
,
factor
in
enumerate
(
prod_factors
):
for
i
,
factor
in
enumerate
(
prod_factors
):
factors
=
[
factor
]
factors
=
[
factor
]
total_data
=
this_date_data
[[
'
C
ode'
,
'isOpen'
,
'weight'
,
'dx'
]
+
factors
+
neutralize_risk
]
.
dropna
()
total_data
=
this_date_data
[[
'
c
ode'
,
'isOpen'
,
'weight'
,
'dx'
]
+
factors
+
neutralize_risk
]
.
dropna
()
risk_exp
=
total_data
[
neutralize_risk
]
.
values
.
astype
(
float
)
risk_exp
=
total_data
[
neutralize_risk
]
.
values
.
astype
(
float
)
dx_return
=
total_data
.
dx
.
values
dx_return
=
total_data
.
dx
.
values
benchmark
=
total_data
.
weight
.
values
benchmark
=
total_data
.
weight
.
values
...
@@ -87,7 +87,7 @@ for date, factor_data in factor_groups:
...
@@ -87,7 +87,7 @@ for date, factor_data in factor_groups:
df
=
pd
.
DataFrame
(
final_res
,
index
=
prod_factors
)
df
=
pd
.
DataFrame
(
final_res
,
index
=
prod_factors
)
df
.
sort_index
(
inplace
=
True
)
df
.
sort_index
(
inplace
=
True
)
df
[
'
D
ate'
]
=
date
df
[
'
trade_d
ate'
]
=
date
total_df
=
total_df
.
append
(
df
)
total_df
=
total_df
.
append
(
df
)
print
(
'{0} is finished'
.
format
(
date
))
print
(
'{0} is finished'
.
format
(
date
))
...
...
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