@Channelchan
2017-03-08T11:32:51.000000Z
字数 1189
阅读 25607
未分类
import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels import regression
import matplotlib.pyplot as plt
import 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 variables
mlr = 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