来自一个 "傻瓜 "的问题 - 页 166 1...159160161162163164165166167168169170171172173...277 新评论 --- 2012.06.29 14:49 #1651 Alphazavr: 这个代码有什么问题。为什么一直出现"取消订单失败#0在市场上购买0.00[无效请求]"的错误?位置选择 在哪里?订单与交易有什么关系?你想做什么?"平仓"?而order_remove_mql_trade_request 的名字是一个恶梦。 Alphazavr 2012.06.29 16:28 #1652 sergeev:位置选择 在哪里?订单与交易有什么关系?你到底想做什么?而order_remove_mql_trade_request 这个名字则是一个恶梦。是的,我需要澄清一下。代码的目的 -- 如果有一个未结头寸,那么取消所有与该头寸相同方向的限价单。 例如,如果一个位置是开放的BAY.然后取消所有订单,如买入限制我忘了选择位置=)。嗯,错误不是来自于此(已检查)。 --- 2012.06.29 16:33 #1653 Alphazavr: 这个代码有什么问题。为什么"失败的取消订单#0在市场上买入0.00[无效的请求]"的错误不断出现? MqlTradeRequest order_remove_mql_trade_request = {0}; order_remove_mql_trade_request.action = TRADE_ACTION_REMOVE; i = OrdersTotal(); if(i > 0){ if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){ for(i2 = 0;i2 <= i;i2++){ ul = OrderGetTicket(i2); OrderSelect(ul); if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){ order_remove_mql_trade_request.order = ul; OrderSend(order_remove_mql_trade_request,mql_trade_result);}}} if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){ for(i2 = 0;i2 <= i;i2++){ ul = OrderGetTicket(i2); OrderSelect(ul); if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){ order_remove_mql_trade_request.order = ul; OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}} 删除这些等价物。 Alphazavr 2012.06.29 16:47 #1654 sergeev: 删除这些等号。 我已经这么做了,没有用。我不知道错误在哪里。另外,我不明白为什么这些错误只出现在BAY LIMIT订单上,卖出限制没有错误。 --- 2012.06.29 16:50 #1655 Alphazavr: 我已经做了,它没有用。 欺骗你的长辈是不好的。 Alphazavr 2012.06.29 16:55 #1656 sergeev: 欺骗你的长辈是不好的。欺骗是不好的,我不这么做。我刚刚用这个代码仔细检查了一切。 i = OrdersTotal(); if(i > 0){ PositionSelect(_Symbol); if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){ for(i2 = 0;i2 < i;i2++){ ul = OrderGetTicket(i2); OrderSelect(ul); if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){ order_remove_mql_trade_request.order = ul; OrderSend(order_remove_mql_trade_request,mql_trade_result);}}} if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){ for(i2 = 0;i2 < i;i2++){ ul = OrderGetTicket(i2); OrderSelect(ul); if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){ order_remove_mql_trade_request.order = ul; OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}结果是一样的。上述的错误经常发生 --- 2012.06.29 17:20 #1657 Alphazavr:结果是一样的。错误经常发生"经常 "是一个空话。你认为2+2经常等于4吗?不要偷懒--做一个发送分析和一个返回错误的分析。检查你要移除的是什么?关闭时是否有任何订单?也许你正试图删除一个已经被删除的订单。第三,谁教你关闭订单,让你以为可以关闭所有的订单? 你认为在你每一次关闭后,OrdersTotal会减少1.而你仍然打你的i2++,直到你赢,直到主i。你甚至懒得检查OrderGetTicket 或OrderSelect是否返回错误。不好,非常不好。正是因为这样的笔,我们的卫星离开了轨道。 Alphazavr 2012.06.29 17:53 #1658 sergeev:"经常 "是一个空话。你认为2+2经常等于4吗?不要偷懒--做一个发送分析和一个返回错误分析。检查你要删除的内容?关闭时是否有任何订单?也许你正试图删除一个已经被删除的订单。第三,谁教你以这样的方式平仓? 你认为你通过了所有的订单,但你没有。 在你每次平仓后,OrdersTotal减少了1.而你仍然击败你的i2++,直到你获胜,直到主要的i。你甚至懒得检查OrderGetTicket或OrderSelect是否返回错误。这很糟糕,非常糟糕。 正是因为这样的笔,我们的卫星离开了轨道。我确信不是这样的,否则在测试中不仅会出现bylimits的错误,而且还会出现selllimits的错误。谢谢你试图帮助和指导我。 [删除] 2012.07.04 11:45 #1659 先生们,你们好。这是一个模拟击键的windows函数的原型。VOID WINAPI keybd_event(__in BYTE bVk, // Тип BYTE, занимает 1 байт __in BYTE bScan, // Тип BYTE, занимает 1 байт __in DWORD dwFlags, __in ULONG_PTR dwExtraInfo );问题是,这个函数在MT4中是用int而不是byte来调用的。它看起来像这样。void keybd_event(int bVk, // Тип int, занимает 4 байта int bScan, // Тип int, занимает 4 байта int dwFlags, int dwExtraInfo); 问题是什么?它是否至少传输了4个字节?这是否取决于硬件? Slava 2012.07.04 12:05 #1660 220Volt:先生们,你们好。这是一个模拟击键的windows函数的原型。问题是,这个函数在MT4中是用int而不是byte来调用的。它看起来像这样。 问题是什么?它是否至少传输了4个字节?这是否取决于硬件?当向一个函数传递参数 时,最小量值是一个32位的整数。也就是说,在你的例子中,bVk和bScan在被传入函数之前将被转换为int类型。 这就是为什么上面给出的函数原型不会相互矛盾的原因 Документация по MQL5: Основы языка / Функции / Передача параметров www.mql5.com Основы языка / Функции / Передача параметров - Документация по MQL5 1...159160161162163164165166167168169170171172173...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这个代码有什么问题。为什么一直出现"取消订单失败#0在市场上购买0.00[无效请求]"的错误?
位置选择 在哪里?
订单与交易有什么关系?
你想做什么?"平仓"?
而order_remove_mql_trade_request 的名字是一个恶梦。
位置选择 在哪里?
订单与交易有什么关系?
你到底想做什么?
而order_remove_mql_trade_request 这个名字则是一个恶梦。
是的,我需要澄清一下。
代码的目的 -- 如果有一个未结头寸,那么取消所有与该头寸相同方向的限价单。
例如,如果一个位置是开放的BAY.然后取消所有订单,如买入限制
我忘了选择位置=)。嗯,错误不是来自于此(已检查)。
这个代码有什么问题。为什么"失败的取消订单#0在市场上买入0.00[无效的请求]"的错误不断出现?
MqlTradeRequest order_remove_mql_trade_request = {0};
order_remove_mql_trade_request.action = TRADE_ACTION_REMOVE;
i = OrdersTotal();
if(i > 0){
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
for(i2 = 0;i2 <= i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
for(i2 = 0;i2 <= i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}
删除这些等号。
我已经做了,它没有用。
欺骗你的长辈是不好的。
欺骗是不好的,我不这么做。
我刚刚用这个代码仔细检查了一切。
i = OrdersTotal();
if(i > 0){
PositionSelect(_Symbol);
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
for(i2 = 0;i2 < i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
for(i2 = 0;i2 < i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}
结果是一样的。上述的错误经常发生
结果是一样的。错误经常发生
"经常 "是一个空话。
你认为2+2经常等于4吗?
不要偷懒--做一个发送分析和一个返回错误的分析。
检查你要移除的是什么?
关闭时是否有任何订单?
也许你正试图删除一个已经被删除的订单。
第三,谁教你关闭订单,让你以为可以关闭所有的订单? 你认为在你每一次关闭后,OrdersTotal会减少1.而你仍然打你的i2++,直到你赢,直到主i。
你甚至懒得检查OrderGetTicket 或OrderSelect是否返回错误。
不好,非常不好。
正是因为这样的笔,我们的卫星离开了轨道。
"经常 "是一个空话。
你认为2+2经常等于4吗?
不要偷懒--做一个发送分析和一个返回错误分析。
检查你要删除的内容?
关闭时是否有任何订单?
也许你正试图删除一个已经被删除的订单。
第三,谁教你以这样的方式平仓? 你认为你通过了所有的订单,但你没有。 在你每次平仓后,OrdersTotal减少了1.而你仍然击败你的i2++,直到你获胜,直到主要的i。
你甚至懒得检查OrderGetTicket或OrderSelect是否返回错误。
这很糟糕,非常糟糕。
正是因为这样的笔,我们的卫星离开了轨道。
我确信不是这样的,否则在测试中不仅会出现bylimits的错误,而且还会出现selllimits的错误。谢谢你试图帮助和指导我。
先生们,你们好。
这是一个模拟击键的windows函数的原型。
问题是,这个函数在MT4中是用int而不是byte来调用的。它看起来像这样。
问题是什么?它是否至少传输了4个字节?这是否取决于硬件?先生们,你们好。
这是一个模拟击键的windows函数的原型。
问题是,这个函数在MT4中是用int而不是byte来调用的。它看起来像这样。
问题是什么?它是否至少传输了4个字节?这是否取决于硬件?当向一个函数传递参数 时,最小量值是一个32位的整数。也就是说,在你的例子中,bVk和bScan在被传入函数之前将被转换为int类型。
这就是为什么上面给出的函数原型不会相互矛盾的原因