请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

cum_profit修改后loc是有问题的

老师只是看了profit 对比,但是cum_profit是有问题的

before:
data = data[data['signal'] != 0]
data['profit_pct'] = (data['close'] - data['close'].shift(1)) / data['close'].shift(1)
After:
data.loc[data['signal'] != 0, 'profit_pct'] = (data['close'] - data['close'].shift(1)) / data['close'].shift(1)

正在回答 回答被采纳积分+3

2回答

lanceshao 2021-10-20 14:06:24
def calculate_prof_pct(data):
    """
    计算收益率
    :param data:
    :return:
    """
    # 筛选信号不为0的,并且计算涨跌
    data = data.loc[data['signal'] != 0]
    data['profit_pct'] = data['close'].pct_change()

    # 筛选平仓后的数据:单次收益
    data = data[data['signal'] == -1]

    return data
  
  
  这样写也是报错,但是cum_profit对,视频里改完确实累计收益不对
0 回复 有任何疑惑可以回复我~
DeltaF 2021-07-16 01:18:04

我来看一下

0 回复 有任何疑惑可以回复我~
  • 我觉得是data.loc[data['signal'] != 0, 'profit_pct'],这行代码可能只是选出来 在singal不等于0的地方填写后面算的值,这个data本生还是有singal等于0这些行的,所以后面算出来的值都是错的才对。
    感觉是得先选出来没有0的行,更新data,然后再计算profit_pct。
    回复 有任何疑惑可以回复我~ 2021-07-18 23:09:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信