@Channelchan
2017-03-08T03:32:51.000000Z
字数 1189
阅读 25805
未分类
import numpy as npimport pandas as pdimport statsmodels.api as smfrom statsmodels import regressionimport matplotlib.pyplot as pltimport tushare as ts
asset1 = ts.get_k_data('000001', start='2016-01-01', end='2016-12-31', ktype='D',autype='qfq')asset1.index = pd.to_datetime(asset1['date'], format='%Y-%m-%d')asset1 = asset1['close']asset2 = ts.get_k_data('000005', start='2016-01-01', end='2016-12-31', ktype='D',autype='qfq')asset2.index = pd.to_datetime(asset2['date'], format='%Y-%m-%d')asset2 = asset2['close']benchmark = ts.get_hist_data('sh', start='2016-01-01', end='2016-12-31', ktype='D')[::-1]benchmark = benchmark['close']new = pd.concat([asset1, asset2, benchmark],join='inner', axis=1)new.columns = ['asset1', 'asset2', 'benchmark']
# Run multiple linear regression using asset2 and SPY as independent variablesmlr = regression.linear_model.OLS(new['asset1'], sm.add_constant(np.column_stack((new['asset2'], new['benchmark'])))).fit()prediction = mlr.params[0] + mlr.params[1]*asset2 + mlr.params[2]*new['benchmark']prediction.name = 'Prediction'print 'MLR beta of asset2:', mlr.params[1], '\nMLR beta of sz:', mlr.params[2]
new['asset1'].plot()prediction.plot(color='y')plt.xlabel('Price')plt.legend()plt.show()
策略多元回归
不用品种的MA策略多元回归
BrenchMark = MA200
