Commit 5de3e515 authored by Dr.李's avatar Dr.李

FEATURE: added 2 more factor tables

parent d966ef69
......@@ -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
......
......@@ -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
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment