vnpy遇到的问题

in #cn6 years ago

1,python相对包导入,ImportError: attempted relative import with no known parent package
future包没什么用的,即使是在同一文件夹下,即使编译器都能识别相关包,但是运行还是报错
解决方法:用绝对路径,从最顶层一路一层层导入即可,比如导入api里面fcoin的vnfcoin.py里面的class:from api.fcoin.vnfcoin import class

2,在一些文件中有常量的调用,但是却没有加载常量的包,导致变量没有识别,疑惑为什么作者没有调用包,应该不会是py2和py3不同原因吧
解决方法:直接导入定义常量变量的包

3,有些加载包根本就没有,比如VtLogData,是从trader.vtGateway那里import来的,可是在vtGateway里就没有这个命名,在vtEngine里可以看到VtLogData,VtOrderData的实例化,但是没有找到从哪里import的这个类。
除了VtLogData之外,还需要在trader.vtGateway实现VtSubscribeReg,VtOrderReg,VtCancelOrderReg。
解决方法:那些类在vtObject.py里面。。。我真是服了。。。

4,缺少trader.app 的AppEngine的包,该包在ctaStrategy里的ctaEngine.py调用,但是并没有该文件。

5,vnpy把常量命名放在language的text.py和constant.py中,其他地方调用并不直接调用该包,而是通过trader.vtConstant包import text.py和constant.py,vtConstant.py是一个循环读取text.py和constant.py里面的变量并判断是否有违规命名,比如__开头的变量。
然而在其他程序中调用vtConstant.py,编译器不能加载出text.py和constant.py里的变量。(这个问题和2类似)

6,火币API:AttributeError: 'NoneType' object has no attribute 'send'
line 566, in sendReq self.ws.send(stream)

7,同样是火币API,py3中for循环内部变量是局部作用于域,在class DataApi的run的expect中stream没有定义的,用py2应该是没问题

8,疑惑:在examples的CoinapiDataService中,是下载币安的k线数据,它自己都没有调用自己的币安API层。。。。

9,币安API函数返回的都是第几个任务数。。。。

10,在vtObject.py中,VtBarData中,成交量和持仓量是int类型,但实际上在数字货币交易中成交量和持仓量为float,因为你可以买0.几个数字货币,类似冻结量也是同样问题。