深证成指(399001.XSHE),'2008-06-30'和'2008-08-31'返回的买入信号异常,求助
来源:5-6 动量策略:计算组合收益率(等权重)

探寻神性的汪星人
2021-07-18
用下面的代码跑,测得最后没搞明白,返回的买入信号超过设置的 前N个收益率
def get_top_stocks(data, top_n=4):
'''
找到n个的极值,并转换为交易信号
:param data:
:param top_n:最佳 和 最差 组合分别的个数
:return: 买入卖出信号的整合表
'''
# 交易信号容器
buy_signal = pd.DataFrame(index=data.index, columns=data.columns)
sell_signal = pd.DataFrame(index=data.index, columns=data.columns)
for index, row in data.iterrows(): # 遍历每行数据
buy_signal.loc[index] = row.isin(row.nlargest(top_n)).astype(int) # 形成并合并买入信号
# 查找出错日期
if index in pd.to_datetime(['2008-06-30', '2008-08-31']):
for i in row.nlargest(top_n):
# 打印前N 收益率
a = row.nlargest(top_n)
print(a)
# 大于前n 买入信号
a = row.isin(row.nlargest(top_n))[row.isin(row.nlargest(top_n)) != 0]
print(a)
exit()
写回答
1回答
-
DeltaF
2021-07-20
有点没太看懂?要么贴一下结果?和你觉得应该正确的结果?可以开一个新的问题
012021-07-24
相似问题