以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  插件下单  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=79413)

--  作者:a809011310
--  发布时间:2015/6/5 10:22:03
--  插件下单
在函数
void CMainWindowDlg::ReportUpdate(LPARAM l)
{
OnButtonOrderin() ;//这句我加的,是点击"下单按钮"执行的下单函数。点"下单"可下单,但此句放在这,为什么下不了单?总是跳出OnButtonOrderin() 中的"下单失败!",就是ID=-1了。
}

--  作者:王锋
--  发布时间:2015/6/5 10:38:59
--  

前面已经建议过你了,增加文本日志,看看具体什么情况


--  作者:a809011310
--  发布时间:2015/6/5 10:53:12
--  
2015-06-05 10:50:20.350    【下单】IF06 价5272.000000 量1 买卖0 类型0 开平0 账户600321 Formula 1
2015-06-05 10:50:20.415    【指令】收到回报指令 ID = 156386302
2015-06-05 10:50:20.538    【回报】600321 : IF1506 - 已报单 1 价格:5272.0 开 买
2015-06-05 10:50:20.556    【指令】收到回报指令 ID = 156386302
2015-06-05 10:50:20.560    【指令】收到回报指令 ID = 156386302
2015-06-05 10:50:20.574    【指令】收到成交回报指令 ORDERID = 156386302
2015-06-05 10:50:20.602    【回报】600321 : IF1506 - 已成交 1 价格:5272.0 开 买
2015-06-05 10:50:20.604    【回报】600321 : IF1506 - 全部成交 1
2015-06-05 10:50:25.881    【下单】IF06 价5273.200195 量1 买卖1 类型0 开平1 账户600321 Formula 1
2015-06-05 10:50:25.915    【指令】收到回报指令 ID = 156386303
2015-06-05 10:50:25.939    【回报】600321 : IF1506 - 已报单 1 价格:5273.2 平 卖
2015-06-05 10:50:25.941    【指令】收到回报指令 ID = 156386303
2015-06-05 10:50:26.431    【指令】收到回报指令 ID = 156386303
2015-06-05 10:50:26.436    【指令】收到成交回报指令 ORDERID = 156386303
2015-06-05 10:50:26.462    【回报】600321 : IF1506 - 已成交 1 价格:5273.2 平 卖
2015-06-05 10:50:26.465    【回报】600321 : IF1506 - 全部成交 1

以上是手工下的2个指令,开多和平多。以下是插件下的指令。
2015-06-05 10:50:51.382    【下单】IF06 价5200.000000 量1 买卖0 类型0 开平0 账户600321 Formula 1
2015-06-05 10:50:52.391    【下单】IF06 价5200.000000 量1 买卖0 类型0 开平0 账户600321 Formula 1
2015-06-05 10:50:52.901    【下单】IF06 价5200.000000 量1 买卖0 类型0 开平0 账户600321 Formula 1

--  作者:王锋
--  发布时间:2015/6/5 11:25:28
--  
你可以将你报单的所有参数都记录下来,然后我们看一下是否有什么问题,另外你这种测试方式有问题,ReportUpdate 这个是价格回报函数,数度是很快,你这么集中报单,有可能会让交易网关认作攻击而拒绝掉
--  作者:a809011310
--  发布时间:2015/6/5 13:10:11
--  
2015-06-05 13:05:16.928    【回报】600321 : 登录成功
2015-06-05 13:07:33.920    【回报】600321 : 登录成功
2015-06-05 13:07:52.395    【下单】IF06 价5200.000000 量1 买卖0 类型0 开平0 账户600321 Formula 1//这个指令是插件下的。我限制插件只下一个指令,后面的指令是手工下的,以作比较。
2015-06-05 13:08:35.786    【下单】IF06 价5149.399902 量1 买卖0 类型0 开平0 账户600321 Formula 1
2015-06-05 13:08:35.800    【指令】收到回报指令 ID = 156386385
2015-06-05 13:08:35.840    【回报】600321 : IF1506 - 已报单 1 价格:5149.4 开 买
2015-06-05 13:08:35.843    【指令】收到回报指令 ID = 156386385
2015-06-05 13:08:38.824    【指令】收到回报指令 ID = 156386385
2015-06-05 13:08:38.828    【指令】收到成交回报指令 ORDERID = 156386385
2015-06-05 13:08:38.849    【回报】600321 : IF1506 - 已成交 1 价格:5149.2 开 买
2015-06-05 13:08:38.851    【回报】600321 : IF1506 - 全部成交 1

--  作者:王锋
--  发布时间:2015/6/5 13:23:22
--  
你确认你的代码就这一个地方 不同的么? 我怎么看2个下单的价格都不同
--  作者:a809011310
--  发布时间:2015/6/5 13:29:59
--  
2015-06-05 13:07:52.395    【下单】IF06 价5200.000000 量1 买卖0 类型0 开平0 账户600321 Formula 1//这个指令是插件下的。我限制插件只下一个指令,后面的指令是手工下的,以作比较。
2015-06-05 13:08:35.786    【下单】IF06 价5149.399902 量1 买卖0 类型0 开平0 账户600321 Formula 1//这个在金字塔里面,手工下的。
一共下了2个指令,插件下了一个,手工下了一个。

--  作者:a809011310
--  发布时间:2015/6/5 13:32:01
--  
bool isFirst = true;
void CMainWindowDlg::ReportUpdate(LPARAM l)
{
if (isFirst)
{
isFirst = false;
OnButtonOrderin();
}
return;
}插件做了限制只准下一次单。这样攻击的可能性为0


--  作者:王锋
--  发布时间:2015/6/5 14:08:04
--  
那我这里就没法继续帮你,问题是要靠调试去解决的,靠我们去猜解决不了的,如果你自己无法自行调试解决,你可以将成功压缩一下上传论坛,我们抽空帮你看看
--  作者:a809011310
--  发布时间:2015/6/5 14:20:50
--  
插件在CMainWindowDlg::ReportUpdate()中调用OnButtonOrderin()下单没有回报。插件点击“下单”按钮,调用OnButtonOrderin()下单,有回报,且正常下单了。为什么在CMainWindowDlg::ReportUpdate()中没有回报?我会压缩且上传的,请予以解决。