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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 关于VB编程的两个问题

   

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


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

主题:关于VB编程的两个问题

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


加好友 发短信
等级:新手上路 帖子:27 积分:116 威望:0 精华:0 注册:2012/2/26 19:34:07
  发帖心情 Post By: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呢?

 

如果以上方法不可以,那么在后台交易里面,怎么样才能获得刚下的订单号码

谢谢


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


加好友 发短信
等级:新手上路 帖子:27 积分:116 威望:0 精华:0 注册:2012/2/26 19:34:07
  发帖心情 Post By:2014/5/20 7:41:24 [显示全部帖子]

谢谢回复, 

有一个Order对象的问题, Order.buy(..), Order.sell(..), Order.BuyShort(...), Order.sellShort() 这几个方法, 是thread safe的吗? 

比如上面我写的这个自定义函数, 怎么样才能保证同一时间, 只有一个线程去调用这个函数? 因为里面准备对未处理的单子处理去解决重复下单的问题, 或者怎么样才能避免重复下单呢? 你有什么建议?

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


加好友 发短信
等级:新手上路 帖子:27 积分:116 威望:0 精华:0 注册:2012/2/26 19:34:07
  发帖心情 Post By:2014/5/20 11:07:08 [显示全部帖子]

谢谢, 请问, 我怎么样才能对VB的自定义函数做线程的同步处理?

 回到顶部