VeighNa量化社区
你的开源社区量化交易平台
Member
加入于:
帖子: 67
声望: 1

有两个同一个策略在不同合约上的策略,建了一个self.malist=[]来记录最近的行情
奇怪的是,当我算 np.mean(self.malist)才发现,输出的是一个根本不可能的数,最后查估计是两个合约都记录在了一起,求了平均
回测的时候没有问题,实盘有这个共用了self.malist的问题,请问是为啥呢?

Member
avatar
加入于:
帖子: 726
声望: 38

self.malist这种创建操作,要放到init函数下,否则就可能出现多个策略类实例出来的对象公用的情况。

这块源于Python的可变对象实例化直接引用特征,在《30天解锁Python量化开发》课程中有讲

Member
加入于:
帖子: 67
声望: 1

MTF wrote:

self.malist这种创建操作,要放到init函数下,否则就可能出现多个策略类实例出来的对象公用的情况。

这块源于Python的可变对象实例化直接引用特征,在《30天解锁Python量化开发》课程中有讲

谢谢,为啥我之前创建其他的单个指标就不会出现问题呢?

Member
avatar
加入于:
帖子: 122
声望: 4

arnego wrote:

MTF wrote:

self.malist这种创建操作,要放到init函数下,否则就可能出现多个策略类实例出来的对象公用的情况。

这块源于Python的可变对象实例化直接引用特征,在《30天解锁Python量化开发》课程中有讲

谢谢,为啥我之前创建其他的单个指标就不会出现问题呢?
你的属性如果在类级别上定义的,就会出现这种情况,如果在类下面的具体方法里面生成self.abc,就不会出现这样的问题

Member
加入于:
帖子: 67
声望: 1

七月雪 wrote:

arnego wrote:

MTF wrote:

self.malist这种创建操作,要放到init函数下,否则就可能出现多个策略类实例出来的对象公用的情况。

这块源于Python的可变对象实例化直接引用特征,在《30天解锁Python量化开发》课程中有讲

谢谢,为啥我之前创建其他的单个指标就不会出现问题呢?
你的属性如果在类级别上定义的,就会出现这种情况,如果在类下面的具体方法里面生成self.abc,就不会出现这样的问题
谢谢

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】