SettingWithWarning报警引起的收益计算错误问题

来源:3-7 模拟股票交易:计算累计收益率

autista

2021-03-30

视频中计算单次收益率函数写法导致SettingWithWarning警告,可能会有N次的单次计算结果没有写入data,按照官方文档应该用.loc方法,应该是:

def calculate_prof_pct(data):
    data.loc[data['signal'] != 0, 'profit_pct'] = (data['close'] - data['close'].shift(1)) / data['close'].shift(1)
    # 视频写法是
    # data = data[data['signal'] != 0]
    # data['profit_pct'] = (data['close'] - data['close'].shift(1)) / data['close'].shift(1)
    # ----这样会引起SettingWithWarning
    data = data[data['signal'] == -1]
    return data

这样就不会报SettingWithWarning,最终计算结果是:
图片描述
图片描述

收益与视频写法数据相差较大

写回答

3回答

wangjian6

2021-04-21

我也出现了两种写法最后的结果不一样的问题

0
0

simon_wyk

2021-04-07

你有发现是为什么吗?我也发现确实两个方法出来的结果不同的

0
1
autista
具体你可以搜索一下原理,反正按照官方文档给的方法写,避免这个错误就行
2021-04-19
共1条回复

DeltaF

2021-03-30

好的,我来看下,有问题就改,感谢提示

0
1
Frontend_清流
为什么两种写法 结果差异那么多
2021-07-13
共1条回复

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

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

1986 学习 · 405 问题

查看课程