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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 订单ID重复

   

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


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

主题:订单ID重复

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


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
订单ID重复  发帖心情 Post By:2017/6/8 14:11:36 [显示全部帖子]

因为4.1存在软件崩溃的问题,我把软件升级到4.2,但是却出现了下套利对订单ID重复的问题,输出的消息窗口显示cu跟ni订单ID都是705873434,但是从交易日志来看却不是这样的。请问这是什么问题?代码如下:

dim sendOrder1,sendOrder2,NewPrice1,NewPrice2,Report_CU,Report_NI
Sub TLStart()
    '"""注册品种"""
    call marketdata.RegReportNotify("CU08", "SQ")
    call marketdata.RegReportNotify("NI09", "SQ")
End Sub

Sub MARKETDATA_ReportNotify(ReportData)
  '"""处理行情推送"""
    set Report_CU = marketdata.GetReportData("CU08", "SQ") 
 set Report_NI = marketdata.GetReportData("NI09", "SQ")
 if ReportData.Label = "CU08" then
  NewPrice1 = Report_CU.NewPrice '最新价          
  NewPrice2 = Report_NI.NewPrice
  if time = "14:01:00" then
         sendOrder1 = order.Buy(0,1,NewPrice1,0,"CU08", "SQ","",0)     
         sendOrder2 = order.Buyshort(0,1,NewPrice2,0,"NI09", "SQ","",0)
     end if
    end if
    application.MsgOut time&" ID1:"&sendOrder1&"   ID2:"&sendOrder2
end sub


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170608140328.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170608140432.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
  发帖心情 Post By:2017/6/8 14:48:28 [显示全部帖子]

一定要这样写?那么为什么我在4.2版本以前这样写就没有问题?

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


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
  发帖心情 Post By:2017/6/8 15:09:11 [显示全部帖子]

因为我需要保存订单ID与策略的映射关系,所以不能放到orderstatusex事件里。这个BUG是不是需要等到下个版本才能修复?


Function sendOrder(Market, vtSymbol, orderType, Price, Volume, name)
         '"""发单"""
        application.MsgOut "调用trade函数"&OrderType
Select Case OrderType
Case 0 '开多
    sendOrder = order.Buy(0,Volume,Price,0,vtSymbol,Market,"",0)  
    Case 1 '平多
    sendOrder = order.Sell(0,Volume,Price,0,vtSymbol,Market,"",0)
    Case 2 '开空
        sendOrder = order.Buyshort(0,Volume,Price,0,vtSymbol,Market,"",0)  
    Case 3 '平空
        sendOrder = order.Sellshort(0,Volume,Price,0,vtSymbol,Market,"",0)
    end Select
    application.MsgOut "开仓方向:"&OrderType&" ID:"&sendOrder
    orderStrategyDict.Add sendOrder, strategyDict.Item(name) '保存vtOrderID和策略的映射关系
        For Each key In orderStrategyDict '循环遍历Dictionary键,并输出键值
            application.MsgOut key&":"&orderStrategyDict.Item(key).name_get&" "&name
        Next
End Function

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


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
  发帖心情 Post By:2017/7/7 15:21:16 [显示全部帖子]

这个订单号的bug在下个版本修复,大概什么时候会出来呢?


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


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
  发帖心情 Post By:2017/7/7 16:29:51 [显示全部帖子]

官网上还没看见4.21正式版,是不是还没发布呢?

 回到顶部