金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2167|回复: 3

c++ PlaceOrder接口返回订单ID问题

[复制链接]

8

主题

22

帖子

22

积分

Rank: 1

等级: 新手上路

注册:
2021-5-27
曾用名:
发表于 2021-6-7 21:00 | 显示全部楼层 |阅读模式
c++调用PlaceOrder会返回一个long类型的ID,我用一个long _orderId去接收
在注册的监听回调中
ON_MESSAGE(WM_NOTIFY_UPDATE, OnNotifyUpdate)
afx_msg LRESULT OnNotifyUpdate(WPARAM w,LPARAM l);
//接收通知消息
LRESULT CMainWindowDlg::OnNotifyUpdate(WPARAM w,LPARAM l)
{
        if(w == 2)
        {
                //注册品种报价变化通知
                ReportUpdate(l);
        }
        else if(w == 3)
        {
                //订单状态变化通知
                BARGAIN_NOTIFY_KSI * pKsi = (BARGAIN_NOTIFY_KSI*)l;
                OrderStatus(pKsi);
        }
        else if(w == 4)
        {
                BARGAIN_NOTIFY_KSI * pKsi = (BARGAIN_NOTIFY_KSI*)l;
                AccountStatus(pKsi);
        }
        return 0;
}

中pKsi->m_nOrderID也是一个long类型的参数,头文件声明为 long m_nOrderID;                //订单ID

问题描述:
按照头文件声明时的注释解释
_orderId 被注释为:返回值 :     返回本次的委托编号
pKsi->m_nOrderID 被注释为:订单ID

经过我测试,这两个值并不相同,_orderId 递减,pKsi->m_nOrderID递增,如下是我测试的信息:
调用:long _orderId = g_pMainFormework->PlaceOrder(0, _sell1Price, 0, _buyCount, 0, code.c_str(), _market, false, _id.c_str(), 0, 0, 0);
输出信息:
    开仓票:SH601117,执行下单,开仓股数:28400,提交成功!委托编号(_orderId ):117835765
    [挂单情况] 系统编号:, 订单号(pKsi->m_nOrderID):117835761,品种:601117,市场:SH, 状态:委托无效,开平:0,订单类型:0,买卖方向:0,单笔成交数量:0,成交价格:0.000000


请问这两个值在非队列委托方式下,是否应该为同一个值?

回复

使用道具 举报

8

主题

22

帖子

22

积分

Rank: 1

等级: 新手上路

注册:
2021-5-27
曾用名:
 楼主| 发表于 2021-6-7 21:04 | 显示全部楼层
这里补充说明一下输出信息

输出信息:
    调用PlaceOrder时输出的调试信息: 开仓票:SH601117,执行下单,开仓股数:28400,提交成功!委托编号(_orderId ):117835765
    交易回调中输出的调试信息:[挂单情况] 系统编号:, 订单号(pKsi->m_nOrderID):117835761,品种:601117,市场:SH, 状态:委托无效,开平:0,订单类型:0,买卖方向:0,单笔成交数量:0,成交价格:0.000000
回复

使用道具 举报

1

主题

843

帖子

853

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-6-8 16:47 | 显示全部楼层
正清情况下这2个orderid应该是一致的才对,如果你发现不一样,那么一定你的代码有问题,或者你是不是多笔委托搞混了
回复

使用道具 举报

8

主题

22

帖子

22

积分

Rank: 1

等级: 新手上路

注册:
2021-5-27
曾用名:
 楼主| 发表于 2021-6-23 11:59 | 显示全部楼层
技术015 发表于 2021-6-8 16:47
正清情况下这2个orderid应该是一致的才对,如果你发现不一样,那么一定你的代码有问题,或者你是不是多笔委 ...

我在正常交易时间模拟账号调用下单得到的orderid是一致的,不知道之前在非交易时间为啥有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 04:51 , Processed in 0.200382 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表