vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 17
声望: 0

在vnpy\app\cta_strategy\engine.py中的_init_strategy函数中,调用
self.call_strategy_func(strategy, strategy.on_init)
假设stratgy是双均线策略DoubleMaStrategy的类,那么strategy.onit应该是使用DoubleMaStrategy.on_init()函数,作为参数传递进去
但是实际上
在 call_strategy_func( self, strategy: CtaTemplate, func: Callable, params: Any = None )中,打印参数
print("func是:",func)
print("params是:",params)
try:
if params:
func(params)
else:
func()

后面的结果正常,on_init()能够正常调用。但是参数params打印出来是None,怎么回事呢?

Administrator
avatar
加入于:
帖子: 5100
声望: 295

params是可选参数,不传即为None,Python的基本语法

Member
avatar
加入于:
帖子: 17
声望: 0

用Python的交易员 wrote:

params是可选参数,不传即为None,Python的基本语法

但是传了呀。把strategy.on_init传进去了

Administrator
avatar
加入于:
帖子: 5100
声望: 295

on_init是func这个参数...

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

沪公网安备 31011502017034号