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

commit model training new example

parent 6d06e29d
......@@ -31,15 +31,16 @@ training - every 4 week
engine = SqlEngine('postgresql+psycopg2://postgres:A12345678!@10.63.6.220/alpha')
universe = Universe('zz500', ['zz500'])
neutralize_risk = ['SIZE'] + industry_styles
alpha_factors = ['RVOL', 'EPS', 'CFinc1', 'BDTO', 'VAL', 'GREV',
'ROEDiluted'] # ['BDTO', 'RVOL', 'CHV', 'VAL', 'CFinc1'] # risk_styles
neutralize_risk = industry_styles
alpha_factors = ['RVOL', 'EPS', 'CFinc1', 'BDTO', 'VAL', 'CHV', 'GREV', 'ROEDiluted'] # ['BDTO', 'RVOL', 'CHV', 'VAL', 'CFinc1'] # risk_styles
benchmark = 905
n_bins = 5
frequency = '1w'
batch = 4
start_date = '2011-01-05'
start_date = '2012-01-01'
end_date = '2017-08-31'
method = 'rank'
use_rank = 100
'''
fetch data from target data base and do the corresponding data processing
......@@ -143,16 +144,23 @@ for i, predict_date in enumerate(dates):
constraints=cons,
detail_analysis=True,
benchmark=benchmark_w,
is_tradable=is_tradable)
is_tradable=is_tradable,
method=method,
use_rank=use_rank)
model_res = pd.DataFrame({'weight': model.coef_[0],
'factor': np.array(data_package['x_names'])})
# model_res.to_csv(r'\\10.63.6.71\sharespace\personal\licheng\portfolio\zz500_model\{0}.csv'.format(predict_date.strftime('%Y-%m-%d')))
final_res[i] = analysis['er']['total'] / benchmark_w.sum()
print('trade_date: {0} predicting finished'.format(train_date))
print('trade_date: {0} predicting finished'.format(predict_date))
last_date = advanceDateByCalendar('china.sse', dates[-1], frequency)
df = pd.Series(final_res, index=dates[1:] + [last_date])
df.sort_index(inplace=True)
df.cumsum().plot()
plt.title('Risk style factors model training with Linear Regression from 2012 - 2017')
plt.title('Prod factors model Linear Regression (neutralized Industries rank 100)')
plt.show()
......@@ -180,6 +180,7 @@ def fetch_data_package(engine: SqlEngine,
alpha_logger.info("Data processing is finished")
ret = dict()
ret['x_names'] = transformer.names
ret['settlement'] = return_df
ret['train'] = {'x': train_x_buckets, 'y': train_y_buckets}
ret['predict'] = {'x': predict_x_buckets}
......
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