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

我现在在用易盛的模拟盘,易盛的人跟我说需要做一个测试才能连入实盘。
具体是把ClientID的值改为我现在的模拟账号。
我在C:\vnstudio\Lib\site-packages\vnpy\api\tap\vntap\include\iTapTradeAPIDataType.h里找到了这个ClientID:
description

description

但问题是这个ClientID是定义在struct里面的,我并不知道怎么改变它的值。
请问它的值可以在哪个文件里更改呢?

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

直接在VN Trader图形界面上,连接易盛接口的时候对话框填上你的用户号就行,不用修改任何代码

Member
加入于:
帖子: 116
声望: 2

不是,用户账号修改的是AccountNo的字段:
description
我现在需要修改的是ClientID,这个字段是用户自由填写的,并不会对交易造成影响。需要修改的原因是CME填报tag的要求。
这个在哪里可以改呢?

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

哦哦,那么在vnpy/gateway/tap/tap_gateway里,找到TapAPINewOrder对象的创建调用代码,然后把这个字段的赋值加上去就行

Member
加入于:
帖子: 116
声望: 2

嗯,我加上了一段 order_req.ClientID = "#APICS106#":
description
但是这样改过以后就没法下单了:
description
状态变成了提交中。
是不是还有什么其他位置也需要相应更改代码?

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

在cmd中用python -m vnstation来启动VN Station,做了下单操作后,看下cmd中是否有报错输出

Member
加入于:
帖子: 116
声望: 2

下单本身没有报错,但是在下单之前进入vn station的时候报错:
description
我觉得这个应该跟不能下单关系不大,因为我即使把order_req.ClientID = "#APICS106#"删掉了也会报这个错。

Member
加入于:
帖子: 116
声望: 2

我觉得应该是self.api.InsertOrder(order_req)这个函数的问题,我看了看这个函数应该是继承ITapTradeAPINotify这个类的。但是我不知道这个类是在哪个文件里定义的。应该在vntap那个文件夹下,但是这个文件夹里都是c++代码啊。

Member
加入于:
帖子: 116
声望: 2

我在send_order这个函数里加了一个print(self.api.InsertOrder(order_req)):

description

cmd里输出了(-12046, 0, ''):
按照我的理解最后一个应该是order_id,这个不应该是空的,所以我觉得是Insertorder这个函数出问题了。
于是我在iTapTradeAPI.h下面找到了这个函数:
description
问题是我不太懂c++,这里是不是要做什么修改呢?

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

这个确实应该是委托在API层就失败了,没能发出去,但是易盛API内部的逻辑我们也无法看到,只能联系易盛官方的服务团队了

Member
加入于:
帖子: 116
声望: 2

我试了试改动iTapTradeAPIDataType.h
没有任何变化。
然后我直接把tap/vnap/include这个文件夹删了,也没有报错,也没有任何变化。
这是为什么?

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

.h这些内容,是编译pyd接口时所用的C++源代码,编译后就用不着了,所以删不删没影响

Member
加入于:
帖子: 116
声望: 2

如果我想修改C++源代码重新编译应该怎么办?

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

沪公网安备 31011502017034号

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