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
5de3e515
Commit
5de3e515
authored
Nov 28, 2020
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FEATURE: added 2 more factor tables
parent
d966ef69
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
142 additions
and
44 deletions
+142
-44
__init__.py
alphamind/data/dbmodel/models/__init__.py
+3
-1
models_rl.py
alphamind/data/dbmodel/models/models_rl.py
+107
-11
sqlengine_rl.py
alphamind/data/engines/sqlengine/sqlengine_rl.py
+32
-32
No files found.
alphamind/data/dbmodel/models/__init__.py
View file @
5de3e515
...
...
@@ -22,8 +22,10 @@ if "DB_VENDOR" in os.environ and os.environ["DB_VENDOR"].lower() == "rl":
from
alphamind.data.dbmodel.models.models_rl
import
IndexWeight
from
alphamind.data.dbmodel.models.models_rl
import
FactorMomentum
from
alphamind.data.dbmodel.models.models_rl
import
FactorValuationEstimation
from
alphamind.data.dbmodel.models.models_rl
import
FactorVolatilityValue
factor_tables
=
[
Market
,
RiskExposure
,
FactorMomentum
]
factor_tables
=
[
Market
,
RiskExposure
,
FactorMomentum
,
FactorValuationEstimation
,
FactorVolatilityValue
]
else
:
from
alphamind.data.dbmodel.models.models
import
Market
from
alphamind.data.dbmodel.models.models
import
IndexMarket
...
...
alphamind/data/dbmodel/models/models_rl.py
View file @
5de3e515
...
...
@@ -31,8 +31,8 @@ class _StkDailyPricePro(Base):
chgPct
=
Column
(
"change_pct"
,
FLOAT
)
secShortName
=
Column
(
"name"
,
Text
)
is_valid
=
Column
(
INT
,
nullable
=
False
)
flag
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'1'"
)
)
is_verify
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'0'"
)
)
flag
=
Column
(
INT
)
is_verify
=
Column
(
INT
)
class
_IndexDailyPrice
(
Base
):
...
...
@@ -47,8 +47,8 @@ class _IndexDailyPrice(Base):
chgPct
=
Column
(
"change_pct"
,
FLOAT
)
secShortName
=
Column
(
"name"
,
Text
)
is_valid
=
Column
(
INT
,
nullable
=
False
)
flag
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'1'"
)
)
is_verify
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'0'"
)
)
flag
=
Column
(
INT
)
is_verify
=
Column
(
INT
)
class
_Index
(
Base
):
...
...
@@ -62,7 +62,7 @@ class _Index(Base):
indexSymbol
=
Column
(
"isymbol"
,
Text
)
symbol
=
Column
(
Text
)
weight
=
Column
(
"weighing"
,
FLOAT
)
flag
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'1'"
)
)
flag
=
Column
(
INT
)
class
_IndexComponent
(
Base
):
...
...
@@ -76,7 +76,7 @@ class _IndexComponent(Base):
symbol
=
Column
(
Text
)
indexCode
=
Column
(
"isecurity_code"
,
Text
)
code
=
Column
(
"security_code"
,
Text
)
flag
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'1'"
)
)
flag
=
Column
(
INT
)
class
_StkUniverse
(
Base
):
...
...
@@ -125,8 +125,8 @@ class _StkUniverse(Base):
zz1000
=
Column
(
INT
,
server_default
=
text
(
"'0'"
))
zz500
=
Column
(
INT
,
server_default
=
text
(
"'0'"
))
zz800
=
Column
(
INT
,
server_default
=
text
(
"'0'"
))
flag
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'1'"
)
)
is_verify
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'0'"
)
)
flag
=
Column
(
INT
)
is_verify
=
Column
(
INT
)
class
_SwIndustryDaily
(
Base
):
...
...
@@ -149,7 +149,7 @@ class _SwIndustryDaily(Base):
industry_name3
=
Column
(
Text
)
Industry_code4
=
Column
(
Text
)
Industry_name4
=
Column
(
Text
)
flag
=
Column
(
INT
,
server_default
=
text
(
"'1'"
)
)
flag
=
Column
(
INT
)
is_verify
=
Column
(
INT
)
...
...
@@ -201,7 +201,7 @@ class _RiskExposure(Base):
AERODEF
=
Column
(
INT
)
Conglomerates
=
Column
(
INT
)
COUNTRY
=
Column
(
INT
)
flag
=
Column
(
INT
,
index
=
True
,
server_default
=
text
(
"'1'"
)
)
flag
=
Column
(
INT
)
class
_RiskCovDay
(
Base
):
...
...
@@ -477,7 +477,101 @@ class _FactorMomentum(Base):
TRIX5D
=
Column
(
FLOAT
)
UOS7D14D28D
=
Column
(
FLOAT
)
WMA10D
=
Column
(
FLOAT
)
flag
=
Column
(
INT
,
server_default
=
text
(
"'1'"
))
flag
=
Column
(
INT
)
class
_FactorValuationEstimation
(
Base
):
__tablename__
=
'factor_valuation_estimation'
id
=
Column
(
INT
,
primary_key
=
True
)
code
=
Column
(
"security_code"
,
Text
,
nullable
=
False
)
trade_date
=
Column
(
Date
,
nullable
=
False
)
BMInduAvgOnSW1
=
Column
(
FLOAT
)
BMInduSTDOnSW1
=
Column
(
FLOAT
)
BookValueToIndu
=
Column
(
FLOAT
)
CEToPTTM
=
Column
(
FLOAT
)
DivYieldTTM
=
Column
(
FLOAT
)
EPTTM
=
Column
(
FLOAT
)
LogTotalAssets
=
Column
(
FLOAT
)
LogofMktValue
=
Column
(
FLOAT
)
LogofNegMktValue
=
Column
(
FLOAT
)
MktValue
=
Column
(
FLOAT
)
MrktCapToCorFreeCashFlow
=
Column
(
FLOAT
)
OptIncToEnterpriseValueTTM
=
Column
(
FLOAT
)
PBAvgOnSW1
=
Column
(
FLOAT
)
PBIndu
=
Column
(
FLOAT
)
PBStdOnSW1
=
Column
(
FLOAT
)
PCFAvgOnSW1
=
Column
(
FLOAT
)
PCFIndu
=
Column
(
FLOAT
)
PCFStdOnSW1
=
Column
(
FLOAT
)
PCFToNetCashflowTTM
=
Column
(
FLOAT
)
PCFToOptCashflowTTM
=
Column
(
FLOAT
)
PEAvgOnSW1
=
Column
(
FLOAT
)
PECutTTM
=
Column
(
FLOAT
)
PEG3YTTM
=
Column
(
FLOAT
)
PEG5YTTM
=
Column
(
FLOAT
)
PEIndu
=
Column
(
FLOAT
)
PEStdOnSW1
=
Column
(
FLOAT
)
PETTM
=
Column
(
FLOAT
)
PEToAvg1M
=
Column
(
FLOAT
)
PEToAvg1Y
=
Column
(
FLOAT
)
PEToAvg3M
=
Column
(
FLOAT
)
PEToAvg6M
=
Column
(
FLOAT
)
PSAvgOnSW1
=
Column
(
FLOAT
)
PSIndu
=
Column
(
FLOAT
)
PSStdOnSW1
=
Column
(
FLOAT
)
PSTTM
=
Column
(
FLOAT
)
RevToMrktRatioTTM
=
Column
(
FLOAT
)
TotalAssetsToEnterpriseValue
=
Column
(
FLOAT
)
TotalMrktToEBIDAOnSW1
=
Column
(
FLOAT
)
TotalMrktToEBIDAOnSW1TTM
=
Column
(
FLOAT
)
TotalMrktToEBIDATTM
=
Column
(
FLOAT
)
TotalMrktToEBIDATTMRev
=
Column
(
FLOAT
)
flag
=
Column
(
INT
)
class
_FactorVolatilityValue
(
Base
):
__tablename__
=
'factor_volatility_value'
id
=
Column
(
INT
,
primary_key
=
True
)
code
=
Column
(
"security_code"
,
Text
,
nullable
=
False
)
trade_date
=
Column
(
Date
,
nullable
=
False
)
Alpha120D
=
Column
(
FLOAT
)
Alpha20D
=
Column
(
FLOAT
)
Alpha60D
=
Column
(
FLOAT
)
Beta120D
=
Column
(
FLOAT
)
Beta20D
=
Column
(
FLOAT
)
Beta252D
=
Column
(
FLOAT
)
Beta60D
=
Column
(
FLOAT
)
DDNCR12M
=
Column
(
FLOAT
)
DDNSR12M
=
Column
(
FLOAT
)
DVRAT
=
Column
(
FLOAT
)
DailyReturnSTD252D
=
Column
(
FLOAT
)
GainLossVarianceRatio120D
=
Column
(
FLOAT
)
GainLossVarianceRatio20D
=
Column
(
FLOAT
)
GainLossVarianceRatio60D
=
Column
(
FLOAT
)
GainVariance120D
=
Column
(
FLOAT
)
GainVariance20D
=
Column
(
FLOAT
)
GainVariance60D
=
Column
(
FLOAT
)
IR120D
=
Column
(
FLOAT
)
IR20D
=
Column
(
FLOAT
)
IR60D
=
Column
(
FLOAT
)
Kurtosis120D
=
Column
(
FLOAT
)
Kurtosis20D
=
Column
(
FLOAT
)
Kurtosis60D
=
Column
(
FLOAT
)
LossVariance120D
=
Column
(
FLOAT
)
LossVariance20D
=
Column
(
FLOAT
)
LossVariance60D
=
Column
(
FLOAT
)
Sharpe120D
=
Column
(
FLOAT
)
Sharpe20D
=
Column
(
FLOAT
)
Sharpe60D
=
Column
(
FLOAT
)
TreynorRatio120D
=
Column
(
FLOAT
)
TreynorRatio20D
=
Column
(
FLOAT
)
TreynorRatio60D
=
Column
(
FLOAT
)
Variance120D
=
Column
(
FLOAT
)
Variance20D
=
Column
(
FLOAT
)
Variance60D
=
Column
(
FLOAT
)
flag
=
Column
(
INT
)
Market
=
_StkDailyPricePro
...
...
@@ -495,3 +589,5 @@ IndexComponent = _IndexComponent
IndexWeight
=
_Index
FactorMomentum
=
_FactorMomentum
FactorValuationEstimation
=
_FactorValuationEstimation
FactorVolatilityValue
=
_FactorVolatilityValue
alphamind/data/engines/sqlengine/sqlengine_rl.py
View file @
5de3e515
...
...
@@ -856,38 +856,38 @@ if __name__ == "__main__":
factors
=
[
"EMA5D"
,
"EMV6D"
]
ref_dates
=
makeSchedule
(
start_date
,
end_date
,
frequency
,
'china.sse'
)
print
(
ref_dates
)
#
df = sql_engine.fetch_factor("2020-02-21", factors=factors, codes=["2010031963"])
#
print(df)
#
df = sql_engine.fetch_factor_range(universe=universe, dates=ref_dates, factors=factors)
#
print(df)
#
df = sql_engine.fetch_codes_range(start_date=start_date, end_date=end_date, universe=Universe("hs300"))
#
print(df)
#
df = sql_engine.fetch_dx_return("2020-10-09", codes=["2010031963"], benchmark=benchmark)
#
print(df)
#
df = sql_engine.fetch_dx_return_range(universe, dates=ref_dates, horizon=9, offset=1, benchmark=benchmark)
#
print(df)
#
df = sql_engine.fetch_dx_return_index("2020-10-09", index_code=benchmark)
#
print(df)
#
df = sql_engine.fetch_dx_return_index_range(start_date=start_date, end_date=end_date, index_code=benchmark, horizon=9, offset=1)
#
print(df)
#
df = sql_engine.fetch_benchmark("2020-10-09", benchmark=benchmark)
#
print(df)
#
df = sql_engine.fetch_benchmark_range(start_date=start_date, end_date=end_date, benchmark=benchmark)
#
print(df)
#
df = sql_engine.fetch_industry(ref_date="2020-10-09", codes=["2010031963"])
#
print(df)
#
df = sql_engine.fetch_industry_matrix(ref_date="2020-10-09", codes=["2010031963"])
#
print(df)
#
df = sql_engine.fetch_industry_matrix_range(universe=universe,
#
start_date=start_date,
#
end_date=end_date)
#
print(df)
#
df = sql_engine.fetch_industry_range(start_date=start_date, end_date=end_date, universe=Universe("hs300"))
#
print(df)
#
df = sql_engine.fetch_risk_model("2020-02-21", codes=["2010031963"])
#
print(df)
#
df = sql_engine.fetch_risk_model("2020-02-21", codes=["2010031963"], model_type="factor")
#
print(df)
df
=
sql_engine
.
fetch_factor
(
"2020-02-21"
,
factors
=
factors
,
codes
=
[
"2010031963"
])
print
(
df
)
df
=
sql_engine
.
fetch_factor_range
(
universe
=
universe
,
dates
=
ref_dates
,
factors
=
factors
)
print
(
df
)
df
=
sql_engine
.
fetch_codes_range
(
start_date
=
start_date
,
end_date
=
end_date
,
universe
=
Universe
(
"hs300"
))
print
(
df
)
df
=
sql_engine
.
fetch_dx_return
(
"2020-10-09"
,
codes
=
[
"2010031963"
],
benchmark
=
benchmark
)
print
(
df
)
df
=
sql_engine
.
fetch_dx_return_range
(
universe
,
dates
=
ref_dates
,
horizon
=
9
,
offset
=
1
,
benchmark
=
benchmark
)
print
(
df
)
df
=
sql_engine
.
fetch_dx_return_index
(
"2020-10-09"
,
index_code
=
benchmark
)
print
(
df
)
df
=
sql_engine
.
fetch_dx_return_index_range
(
start_date
=
start_date
,
end_date
=
end_date
,
index_code
=
benchmark
,
horizon
=
9
,
offset
=
1
)
print
(
df
)
df
=
sql_engine
.
fetch_benchmark
(
"2020-10-09"
,
benchmark
=
benchmark
)
print
(
df
)
df
=
sql_engine
.
fetch_benchmark_range
(
start_date
=
start_date
,
end_date
=
end_date
,
benchmark
=
benchmark
)
print
(
df
)
df
=
sql_engine
.
fetch_industry
(
ref_date
=
"2020-10-09"
,
codes
=
[
"2010031963"
])
print
(
df
)
df
=
sql_engine
.
fetch_industry_matrix
(
ref_date
=
"2020-10-09"
,
codes
=
[
"2010031963"
])
print
(
df
)
df
=
sql_engine
.
fetch_industry_matrix_range
(
universe
=
universe
,
start_date
=
start_date
,
end_date
=
end_date
)
print
(
df
)
df
=
sql_engine
.
fetch_industry_range
(
start_date
=
start_date
,
end_date
=
end_date
,
universe
=
Universe
(
"hs300"
))
print
(
df
)
df
=
sql_engine
.
fetch_risk_model
(
"2020-02-21"
,
codes
=
[
"2010031963"
])
print
(
df
)
df
=
sql_engine
.
fetch_risk_model
(
"2020-02-21"
,
codes
=
[
"2010031963"
],
model_type
=
"factor"
)
print
(
df
)
df
=
sql_engine
.
fetch_risk_model_range
(
universe
=
universe
,
start_date
=
start_date
,
end_date
=
end_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