有持仓但是使用A_GetOrderIDs获取ID返回0

老师新年好,我帐户里面是有持仓的,但是我使用如下代码获取ID的时候,发现返回0

order-Id:0


代码如下:

Array<Integer> orderIds;

A_GetOrderIDs(acct_symbols[j], orderIds, "", i);

Print("order-Id:" + Text(orderIds[0));


我持仓里面有两个,另外一个就可以正常返回,好奇怪的。

order-Id:1727144113012

MaxContracts返回当前持仓的最大持仓合约数总是0
成功调用Sell(0,c),但是没有卖出持仓。
为什么有持仓但MarketPosition却为0呢
废单消息类型有编号ID吗
为什么净持仓是3,但是可平多可平空是0呢
模拟测试获取净持仓
怎么获取持仓手数
A_BuyPosition返回正常手数,A_GetPosition返回0
实时行情,A函数撤单成功,却返回false
映射功能下如何获取持仓

order-Id:1727144113012

我怎么觉得你这个id不是获取成功了而是无效值啊

你关联账户了吗

关联账号了,我帐户有两个合约持仓,一个查询出来了,一个没查询出来,内容就是我下面贴的那两个。

虽然贴了很多内容,但是感觉对解决问题没什么帮助。

这种代码问题,最基本的要求是提供能复现运行的代码和环境,否则没办法找到问题。

另外一个正常的返回是这样的:

createSource = gsf_2500@gsf2500@gsf_2500@hc888_M3, createId = 4, brokerId = 482, accountId = 66115937, accountIndex = 0, tradingDay = 20250210.000000, symbol = hc2505.SHFE, orderId = 1727144113012, userNote = , exchOrderId = 100001, localDateTime = 20250207.215104, createDateTime = 20250207.215104, cancelDateTime = 0.000000, volume = 30, price = 3473.000000, theoryPrice = 3471.000000, fillVolume = 30.000000, fillAmount = 1041600.000000, side = 1, combOffset = 1, priceType = 1, hedge = 1, status = 5, note = , cancelSource = , commission = 156.240000, flag = 4

返回的结果是这样的:


createSource = , createId = 0, brokerId = 0, accountId = , accountIndex = -1, tradingDay = 0.000000, symbol = , orderId = 0, userNote = , exchOrderId = , localDateTime = 0.000000, createDateTime = 0.000000, cancelDateTime = 0.000000, volume = 0, price = 0.000000, theoryPrice = 0.000000, fillVolume = 0.000000, fillAmount = 0.000000, side = 0, combOffset = 0, priceType = 0, hedge = 0, status = 0, note = , cancelSource = , commission = 0.000000, flag = 0

复制粘贴的时候有点小错误,修改一下:

Array<Integer> orderIds;

A_GetOrderIDs(acct_symbols[j], orderIds, "", i);

Print("order-Id:" + Text(orderIds[0]));