Commit 79792651 authored by Dr.李's avatar Dr.李

fixed bug for cross section analysis

parent eedad6e6
...@@ -21,6 +21,12 @@ def cs_impl(ref_date, ...@@ -21,6 +21,12 @@ def cs_impl(ref_date,
dx_returns): dx_returns):
total_data = pd.merge(factor_data, risk_exposure, on='code') total_data = pd.merge(factor_data, risk_exposure, on='code')
total_data = pd.merge(total_data, industry_matrix, on='code').dropna() total_data = pd.merge(total_data, industry_matrix, on='code').dropna()
if len(total_data) < 0.33 * len(factor_data):
alpha_logger.warning(f"valid data point({len(total_data)}) "
f"is less than 33% of the total sample ({len(factor_data)}). Omit this run")
return np.nan, np.nan, np.nan
total_risk_exp = total_data[constraint_risk] total_risk_exp = total_data[constraint_risk]
er = total_data[factor_name].values.astype(float) er = total_data[factor_name].values.astype(float)
...@@ -54,7 +60,6 @@ def cross_section_analysis(ref_date, ...@@ -54,7 +60,6 @@ def cross_section_analysis(ref_date,
horizon, horizon,
constraint_risk, constraint_risk,
engine): engine):
codes = engine.fetch_codes(ref_date, universe) codes = engine.fetch_codes(ref_date, universe)
risk_exposure = engine.fetch_risk_model(ref_date, codes)[1][['code'] + constraint_risk] risk_exposure = engine.fetch_risk_model(ref_date, codes)[1][['code'] + constraint_risk]
...@@ -81,9 +86,9 @@ if __name__ == '__main__': ...@@ -81,9 +86,9 @@ if __name__ == '__main__':
horizon = 9 horizon = 9
x = cross_section_analysis('2018-02-08', x = cross_section_analysis('2018-02-08',
factor_name, factor_name,
universe, universe,
horizon, horizon,
constraint_risk, constraint_risk,
engine=engine) engine=engine)
print(x) print(x)
\ No newline at end of file
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