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

description

description

在看vnpy系统自带的策略代码时,遇到 2 个问题不太明白,特来求助一下。

  1. 技术指标的计算是基于ArrayManager()函数来的,那么同样都是求 atr,为什么不同的策略中,一个直接是 am.atr(),而另一个还要在前面加上 self. 呢?
Member
avatar
加入于:
帖子: 47
声望: 2

description

description

还有一个问题是,代码中都是将(bar)更新一下,然后传到主逻辑的时间周期内,那么为什么有的带着 self. , 而有的不带self. 呢?

而且有的代码中带着一句 am=self.am。 书中说 am=self.am ,是节省不必要的缓存,提高计算速度。 那么是不是可以在每个策略都写上一句am=self.am,这样运算速度不就都提高了吗

Administrator
avatar
加入于:
帖子: 4500
声望: 320

am = self.am的写法,是将am变量在on_bar函数内局部化,提高访问速度,这个算是Python代码速度优化的标准方案之一,代价就是多一行代码,用不用取决于策略作者了。

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

沪公网安备 31011502017034号

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