以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 关于order下单的问题 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=69131) |
-- 作者:dwjgwsm -- 发布时间:2014/8/22 14:25:48 -- 关于order下单的问题 忽然想到一个有点"杞人忧天"的想法,比如下面的语句: result=order.buy() if result=-1 then .... order下单之后,如果回报较慢,会不会出现明明下单成功了,但由于程序运行速度过快,以致于没有等到成交回报就返回,导致result错误返回-1.可能出现这种情况吗?不知道这个担心是不是很白痴 |
-- 作者:王锋 -- 发布时间:2014/8/22 15:44:44 -- 不用担心,返回值是你的报单ID,不是成交回报,报单ID不用等成交回报的 |
-- 作者:dwjgwsm -- 发布时间:2014/9/10 13:25:24 -- 这个Result=ORDER.BUY(....)我感觉肯定有问题,我今天早上,不断重复开仓,就是因为下单成功但Result错误返回0造成的.具体来说 BUYcon=Document.GetPrivateProfileString("OrderCon",tLabel & "BUYCon_" & tIndex,"","D:\\SystemSet.ini") \'本次触发条件 BUYconL=Document.GetPrivateProfileString("OrderCon",tLabel & "BUYConL_" & tIndex,"","D:\\SystemSet.ini") \'保存的上次触发条件,以便一根k线一条语句仅执行一遍 if BUYcon<>BUYconL then order.OrderQueue = 1 orderlog=Date & " " & Time & ",账户:" & tAcc & "," & tMarket & tCode & "在VBABUY中下单,手数:" & Num & ",原因:" & BUYcon & "<>" & BUYconL \'每句下单命令前都要写入下单日志便于查找原因 Document.DebugFile "D:\\OrderLog.txt",orderlog,0 Result=ORDER.BUY(1,Num,0,0,tCode,tMarket,tAcc,0) if Result=0 then orderstr="账号:" & tAcc & "," & tMarket & tCode & "," & Num & "手多开下单失败!重点检查账号是否登录" JIANGE tCode & "orderfail1",orderstr exit sub end if Document.WritePrivateProfileString "OrderCon",tLabel & "BUYConL_"& tIndex,BUYcon,"D:\\SystemSet.ini" \'我现在是把这句放在if Result=0 then前面,因为发现有时下单成功却result返回0,以致执行了exit sub,后面无法写入tLabel & "BUYConL_"& tIndex,从而不断重复开仓! ordermsg tCode,tMarket,Num,1 end if [此贴子已经被作者于2014/9/10 13:26:02编辑过]
|
-- 作者:dwjgwsm -- 发布时间:2014/9/10 13:25:44 -- 请你们再测试一下 |
-- 作者:王锋 -- 发布时间:2014/9/10 22:25:16 -- 是否方便将你记录的日志也发过来,最好是别用INI文件,我们需要是那种连续记录的日志,这样可以对历史下单记录进行分析的 |
-- 作者:王锋 -- 发布时间:2014/9/10 22:43:42 -- 还有, 下单失败明确的返回记录是 -1, 只要不是 -1值, 都是成功标志 |
-- 作者:dwjgwsm -- 发布时间:2014/9/10 23:27:40 -- 帮助上不是写着返回0才表示下单失败吗?怎么又变成-1了? 返回值: 下单失败返回0,否则返回本地订单ID(可能包含负数),通过此ID可以修改订单或者撤单等等操作 日志我明天上班再发 |
-- 作者:王锋 -- 发布时间:2014/9/11 10:16:31 -- order.OrderQueue = 1
看到你这句话了, 使用队列下单时,你将无法获得及时的成交回报的,只能是返回0, 这个我们帮助没说明清楚,后面会补上的 |