以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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), 这样的话可不可以建一个自定义函数,比如:

 


Function QT_BUY(Formula,Type,Vol,Price,StoplmtPrice,Code,Market,AccountID,Valid)
    QT_BUY=0
    QT_BUY=Buy(Type,Vol,Price,StoplmtPrice,Code,Market,AccountID,Valid)

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
--  
这个是不需要你来做的,你就尽管放心使用即可