欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 咨询版主 关于VBA的速度 和多品种交易时的运行机制

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3232人关注过本帖树形打印复制链接

主题:咨询版主 关于VBA的速度 和多品种交易时的运行机制

帅哥哟,离线,有人找我吗?
忘记密码
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:251 积分:0 威望:0 精华:0 注册:2014/7/8 13:40:07
咨询版主 关于VBA的速度 和多品种交易时的运行机制  发帖心情 Post By:2017/11/18 20:26:00 [只看该作者]


高级区有一个客户提到下面的情况:
后台发开平信号(放超全局变量,5分钟K末发),vba不断扫描处理,包括处理后台的信号,以及即时价的止损
扫描频率设定大概是每秒20次(全速可以6x次,不知道为什么是6x次,这个好像是系统上限,和cpu速度无关)

我做后台交易的时候(没有用VBA) 发现跟他同样的问题. 后台最快的扫描速度就是60多次/秒,也就是15-16ms一次. 所以对着对手委托价下单也经常扑空.
版主推荐我用VBA直接做交易.(我的需求就是多个品种 扫到行情盘口变化满足条件,要尽快的把单子发出去,越快越好)

咨询一: VBA直接扫描行情并直接交易的最快速度,能不能突破16ms的限制呢? 如果模型足够简单从扫到行情到发出委托是不是能低于16ms呢(后台好像是不能)?

     另外看了论坛的VBA套利模版,依葫芦画瓢同时做了几个品种
咨询二: 如果对多个品种进行交易的话.好像代码都在一个Macro里面    vba是单线程一个品种一个品种来 还是多个独立的线程各算各的 各自独立发单呢?

 回到顶部
帅哥哟,离线,有人找我吗?
无为剑
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2017/11/19 20:23:54 [只看该作者]

vba是没有像后台那样的多余的执行部分,运行效率完全取决于你的代码编写效率的,可以用定时器定时扫描,最小间隔是1毫秒


 回到顶部
帅哥哟,离线,有人找我吗?
忘记密码
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:251 积分:0 威望:0 精华:0 注册:2014/7/8 13:40:07
  发帖心情 Post By:2017/11/19 22:47:52 [只看该作者]

学习了管理员的VBA跨期套利等等好多范例. 那个CF09 CF11的.
基本流程是注册品种 获得行情 获得持仓 计算交易条件 发委托.  单腿处理再自己来.范例很好
策略简单的话,并不比学后台难太多.

但是没找到在VBA里面 同时交易多个不同品种 下单最快 最有效率的是怎么个搞法?
王锋说金字塔的VBA是单线程的  那么我应该是一个一个品种 类似的过程代码一直往后摆么?  
行情来了 就计算 达到条件就交易哪个品种?

那么同时来几个品种的行情 我得按顺序一个品种一个品种的往后算呀,也就是说有品种要排队等待.
(我也没搜到这么些品种行情是间隔500ms一起坐着大客车来 计算怕要排队等了
 还是各自骑着小摩托一个一个来 处理得过来 不用太担心排队),
有没有办法像你们的后台一样 一个品种分一个CPU的核 各干各的呢(如果行情一起来就有必要)? 
如果方便的话,还请麻烦你们给个简单策略的 3品种高效率 的范例.大概示意一下也行.




 回到顶部
帅哥哟,离线,有人找我吗?
zero
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:144 积分:0 威望:0 精华:0 注册:2016/10/29 1:47:53
  发帖心情 Post By:2017/11/20 10:24:45 [只看该作者]

多品种就通过创建多个类实例进行隔离,行情先到的先处理,这是我的处理方法

 回到顶部
帅哥哟,离线,有人找我吗?
忘记密码
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:251 积分:0 威望:0 精华:0 注册:2014/7/8 13:40:07
  发帖心情 Post By:2017/11/20 11:09:55 [只看该作者]

谢谢哥们, 
通过不同的类模块进行隔离 先来行情先运行.
可以解决多品种的问题.



 回到顶部
帅哥哟,离线,有人找我吗?
忘记密码
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:251 积分:0 威望:0 精华:0 注册:2014/7/8 13:40:07
  发帖心情 Post By:2017/11/20 23:16:51 [只看该作者]

2017-11-20 23:10:53.733    【下单】CF09 价15350.000000 量1 买卖0 类型0 开平0 账户620717 Formula 1
2017-11-20 23:10:53.733    【下单】已提交,订单ID :-1853627923
2017-11-20 23:10:53.749    【下单】CF05 价15035.000000 量1 买卖1 类型0 开平0 账户620717 Formula 1
2017-11-20 23:10:53.749    【下单】已提交,订单ID :-1853627922
2017-11-20 23:10:53.749    【指令】收到回报指令 ID = -1853627923
2017-11-20 23:10:53.764    【回报】620717 : CF09 - 已报单 1 价格:15350 开 买
2017-11-20 23:10:53.779    【指令】收到回报指令 ID = -1853627922
2017-11-20 23:10:53.797    【回报】620717 : CF05 - 已报单 1 价格:15035 开 卖

用了魏总的VBA模版, 跟后台一样的速度呢,还是间隔16ms.  试了好多次, 第二单从来没有挨着第一单下出去.
难道是我姿势不对? 还是魏总的代码效率不行? 不至于呀
说好的比后台还快呢? 又挨版主骗了,

 回到顶部
帅哥哟,离线,有人找我吗?
忘记密码
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:251 积分:0 威望:0 精华:0 注册:2014/7/8 13:40:07
  发帖心情 Post By:2017/11/20 23:23:19 [只看该作者]

难道是windows   15.6ms的时间戳在作怪?

后台有时候还能2单戳在一起呢 没有间隔
VB倒是一直有间隔
搞不懂了


 回到顶部
帅哥哟,离线,有人找我吗?
无为剑
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2017/11/20 23:39:32 [只看该作者]

不知道你是怎么测试,我们这边用了2句最简单的测试代码

 

 call order.Buy(1,1,0,0,"ag00","sq","",0)
 call order.Buy(1,1,0,0,"au00","sq","",0)

 

测试结果如下:

 

2017-11-20 23:37:55.940    【下单】AG12 价0.000000 量1 买卖0 类型1 开平0 账户1 Formula 1
2017-11-20 23:37:55.941    【下单】已提交,订单ID :-1853627955
2017-11-20 23:37:55.942    【下单】AU06 价0.000000 量1 买卖0 类型1 开平0 账户1 Formula 1
2017-11-20 23:37:55.943    【下单】已提交,订单ID :-1853627954

 

基本是记录日志延迟的1毫秒


 回到顶部
帅哥哟,离线,有人找我吗?
忘记密码
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:251 积分:0 威望:0 精华:0 注册:2014/7/8 13:40:07
  发帖心情 Post By:2017/11/20 23:59:59 [只看该作者]

2017-11-20 23:55:20.340    【下单】AG06 价0.000000 量1 买卖0 类型1 开平0 账户620717 Formula 1
2017-11-20 23:55:20.340    【下单】已提交,订单ID :-1853627925
2017-11-20 23:55:20.340    【下单】AG12 价0.000000 量1 买卖0 类型1 开平0 账户620717 Formula 1
2017-11-20 23:55:20.340    【下单】已提交,订单ID :-1853627924

我真真是日了狗啊!     你这么2句 确实快了   连记录日志的延迟都没有了

看来不是VB不快, 是范例的代码不行.  嗯
我只是把范例的CF改了月份 和价格


[此贴子已经被作者于2017/11/21 0:01:37编辑过]

 回到顶部