def _slope_pair(se_left, se_right, N=18, index=None):
slopes = []
R2 = []
# 计算斜率值
for i in range(len(se_left)):
if i < (N - 1):
slopes.append(np.nan)
R2.append(np.nan)
else:
x = se_right[i - N + 1:i + 1]
y = se_left[i - N + 1:i + 1]
slope, intercept = np.polyfit(x, y, 1)
#lr = LinearRegression().fit(np.array(x).reshape(-1, 1), y)
## y_pred = lr.predict(x.reshape(-1, 1))
#beta = lr.coef_[0]
# r2 = r2_score(y, y_pred)
slopes.append(slope)
# R2.append(r2)
slopes = pd.Series(slopes)
slopes.index = index
return slopes
策略的基础思路其实可以很多,现在可以做的事情是太多,而不是太少:
比如行业轮动:
策略示例采用第一种策略构建方法,利用行业动量设计策略。为了提高策略速度,以6个行业为例进行演示。
第一步:确定行业指数,获取行业指数收益率。
第二步:根据行业动量获取最佳行业指数。
第三步:在最佳行业中,选择最大市值的5支股票买入。
比如股票多因子策略:
第一步:获取股票市值以及账面市值比数据。
第二步:将股票按照各个因子进行排序分组,分组方法如上表所示。
第三步:依据式2式3,计算SMB、HML因子。
第四步:因子回归,计算alpha值。获取alpha最小并且小于0的10只的股票买入开仓。
不在浮沙筑高台,星球目前的计划是把回测引擎基础调稳定,然后把模块化算子补充完整,磨刀不误砍材功。
【实盘策略】18年至今总回报95%,最大回撤才10%,夏普比率和卡玛比率均超过1(策略代码+数据下载)