以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 高级功能研发区 (http://222.73.7.161/bbs/list.asp?boardid=5) ---- 关于VB编程的两个问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=65144) |
-- 作者:leonxu -- 发布时间:2014/5/18 17:07:54 -- 关于VB编程的两个问题 1。用金字塔的图表交易,如果设定每秒轮询一次,但是执行的程序用时超过一秒会出现怎么情况, 具体例子,10:00:00的时候, 第一次轮询,但是执行的程序10:00:02秒的时候还没结束, 还在执行,那么10:00:01秒的时候,系统还会重新激发一次程序吗? 金字塔用多线程来执行吗? 线程之间会共享什么资源? 金字塔的图表交易是 线程安全的吗(thread safe)
2。用金字塔的VB后台交易,一定要有窗体吗? 能够解释一下,后台交易和当前展示的图表有联系吗?比如,我可以打开一个品种的日线图,但是交易另外一个品种的5分钟K线吗 (只是一个虚构的例子) [此贴子已经被作者于2014/5/18 17:08:35编辑过]
|
-- 作者:admin -- 发布时间:2014/5/18 18:55:11 -- 图表交易是排队执行触发,即如果图表数据若未计算完毕,则会影响到分笔数据的接收处理。如果你的公式计算复杂不能在下一个分笔数据到来,会导致软件K住,如果长时间这样,整个软件会卡住并且死机。 后台程序化逻辑跟图表不一样,是异步进行的,如果上一笔未计算完毕,那么会丢掉下一笔的分笔数据处理。保证分笔数据的接收与后台程序异步进行,就算是后台程序化无论多复杂,也不会导致软件卡死。
VBA的交易与图表和后台是没有关系的,无法与他们联系在一起,VBA是个独立的工作模块 |
-- 作者:carpediem -- 发布时间:2014/5/19 21:24:06 -- 以下是引用admin在2014/5/18 18:55:11的发言:
图表交易是排队执行触发,即如果图表数据若未计算完毕,则会影响到分笔数据的接收处理。如果你的公式计算复杂不能在下一个分笔数据到来,会导致软件K住,如果长时间这样,整个软件会卡住并且死机。 后台程序化逻辑跟图表不一样,是异步进行的,如果上一笔未计算完毕,那么会丢掉下一笔的分笔数据处理。保证分笔数据的接收与后台程序异步进行,就算是后台程序化无论多复杂,也不会导致软件卡死。
VBA的交易与图表和后台是没有关系的,无法与他们联系在一起,VBA是个独立的工作模块
如果VBA和图表/后台完全没有关系,但是在自定义的函数例子里面,如果自定义了一个 Function CU_MA1(Formula,CLOSE,Cyc) 公式系统就可以直接引用 MA1:CU_MA1(CLOSE,5);
后台交易的时候,下单以后无法知道订单号码(orderId), 这样的话可不可以建一个自定义函数,比如:
End Function
然后在公式系统里面直接调用QT_BUY去获得orderId呢?
如果以上方法不可以,那么在后台交易里面,怎么样才能获得刚下的订单号码 谢谢 |
-- 作者:王锋 -- 发布时间:2014/5/19 21:36:08 -- 你的做法是可以的,即使用VBA自己去处理下单动作。 但是你返回了订单ID后,后台程序也无法去处理的,建议你还要在VBA中处理下单回报信息,确认订单是否成交,然后再使用VBA撤单函数撤单 |
-- 作者:carpediem -- 发布时间:2014/5/20 7:41:24 -- 谢谢回复, 有一个Order对象的问题, Order.buy(..), Order.sell(..), Order.BuyShort(...), Order.sellShort() 这几个方法, 是thread safe的吗? 比如上面我写的这个自定义函数, 怎么样才能保证同一时间, 只有一个线程去调用这个函数? 因为里面准备对未处理的单子处理去解决重复下单的问题, 或者怎么样才能避免重复下单呢? 你有什么建议?
|
-- 作者:王锋 -- 发布时间:2014/5/20 9:11:08 -- 是thread safe的,金字塔已经内部做过线程同步处理 |
-- 作者:carpediem -- 发布时间:2014/5/20 11:07:08 -- 谢谢, 请问, 我怎么样才能对VB的自定义函数做线程的同步处理? |
-- 作者:王锋 -- 发布时间:2014/5/20 16:02:20 -- 这个是不需要你来做的,你就尽管放心使用即可 |