def compute(self, today, assets, out, volume, close, open):
v0 = np.full(out.shape[0], -1.0)
v10 = np.empty((6, out.shape[0]))
for i0 in range(1, 7):
v1000 = np.empty((3, out.shape[0]))
for i1 in range(1, 4):
v10000 = volume[- i0 -i1]
v1000[-i1] = np.log(v10000)
v100 = v1000[-1] - v1000[-3]
v10[-i0] = stats.rankdata(v100)
v11 = np.empty((6, out.shape[0]))
for i0 in range(1, 7):
v11000 = close[-i0]
v11001 = open[-i0]
v1100 = v11000 - v11001
v1101 = open[-i0]
v110 = v1100 / v1101
v11[-i0] = stats.rankdata(v110)
v1 = pd.DataFrame(v10).rolling(window=6).corr(pd.DataFrame(v11)).tail(1).as_matrix()[-1]
out[:] = v0 * v1
# (-1 * correlation(rank(open), rank(volume), 10))
评论列表
文章目录