cum_profit修改后loc是有问题的

来源:3-6 Debug:解决CopyWarning问题

Frontend_清流

2021-07-13

老师只是看了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)

写回答

2回答

lanceshao

2021-10-20

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
0

DeltaF

2021-07-16

我来看一下

0
1
harry8933
我觉得是data.loc[data['signal'] != 0, 'profit_pct'],这行代码可能只是选出来 在singal不等于0的地方填写后面算的值,这个data本生还是有singal等于0这些行的,所以后面算出来的值都是错的才对。 感觉是得先选出来没有0的行,更新data,然后再计算profit_pct。
2021-07-18
共1条回复

程序员理财课 Python量化交易系统实战

打造一个自动交易平台,新手也能提升理财收益

1986 学习 · 405 问题

查看课程