请稍等 ...
×

采纳答案成功!

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

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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号