算法不够准确 存在问题
1. 没有计算手续费
2. 权重不应该相同
3. 持有20天的股票收益不应看作在当天就实现。
stock_list = ts.get_sz50s().code
print(stock_list.head())
输出:
0 600000
1 600016
2 600019
3 600028
4 600029
Name: code, dtype: object
决定每只股票收益率的决定方法:
red_3_s = list()
for stock in stock_list:
data = daily_data[stock]
red3s = pd.Series(0.0, index=range(len(data)))
for i in range(len(data)):
if is_red_3_soldier(data, i, 3, 0.01, 0.8):
red3s[i] = 0.01
else:
red3s[i] = 0.00
red_3_s.append(red3s)
优化该算法:
rtn = list()
for stock in stock_list:
data = daily_data[stock]
r = pd.Series(0.0, index=range(len(data)))
for i in range(20, len(data)):
if data.close[i] > 0: r[i] = data.close[i - 20] / data.close[i] - 1
rtn.append(r)