[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 6 12345678910111213...652 新评论 Anton80 2011.07.24 14:45 #51 DhP: 每一个刻度都会重新计算挂单的数量。如果数量较少,说明有一个挂单变成了市价单。 所有剩余的(已经变得不必要的)可以被删除。 在删除时,两个订单都是市场订单。但即使最后一个挂单 被删除或触发,其票据仍被触发并产生错误。而倒数第二项仍在等待。 Роман 2011.07.24 14:46 #52 Andreev: 谢谢你的链接!!。将会研究一下 :)随着时间的推移,以及神奇的数字和按订单类型(bylimit或selllimit)是一个好主意。但你可能没有完全理解我。我的问题不是在订单上做标记,而是如何删除它。无论我如何定义倒数第二个订单,我都只能删除最后一个挂单。 // ------------------------------------------------Ищете Ваши отложенники--------------------------------- int orderType; for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--) { if (!OrderSelect(orderIndex, SELECT_BY_POS)) { continue; } if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber)) { continue; } orderType = OrderType(); if ((orderType == OP_BUY) || (orderType == OP_SELL)) { continue; } ticket = OrderTicket( ); // Номер ордера orderLots = OrderLots(); // Lots SL = OrderStopLoss(); // Значение StopLoss ордера TP = OrderTakeProfit(); // Значение TakeProfit ордера if (ticket>0) // { while(OrderSelect(ticket,SELECT_BY_TICKET)==false) // Если ордер выбран { Sleep(100); } OrderDelete(ticket,CLR_NONE); // и удаляете их } return (0); } 正如我从你的第一个帖子中理解的那样,"我使用下面的例子来定义,但它只关闭了最后一个挂单,而不是第一个挂单,尽管第一个挂单的所有条件都满足了。帮助我找到错误!!!!!!!!!!!!!" - 你需要删除所有剩余的挂单,在把其中一些变成市场订单后 - 这个代码应该写在你的交易条件中,然后继续... Anton80 2011.07.24 14:51 #53 Roman.: 我从你的第一篇帖子中了解到 "我使用下面的例子来定义,但它只关闭了最后一个挂单,而不是第一个挂单,尽管第一个挂单的所有条件都满足了。帮助我找到错误!!!!!!!!!!!!!" - 你需要删除所有剩余的挂单,在把其中一些变成市场订单后 - 这个代码应该被输入到你的交易条件中并继续进行... 谢谢!!!。没想到会这么复杂:))))。 Anton80 2011.07.24 14:52 #54 Roman.: 我从你的第一篇帖子中了解到 "我使用下面的例子来定义,但它只关闭了最后一个挂单,而不是第一个挂单,尽管第一个挂单的所有条件都满足了。帮助我找到错误!!!!!!!!!!!!!" - 你需要删除所有剩余的挂单,在把其中一些变成市场订单后 - 这个代码应该被输入到你的交易条件中并继续进行... 我想这可能需要几行字 ...:) BBC 2011.07.24 14:55 #55 Andreev: 在删除的那一刻,这两个订单都是可以销售的。但即使最后一个挂单被删除或触发,触发它的票据仍会显示错误。倒数第二位仍将在那里。 我甚至无法想象这怎么可能。 如果在重新计算挂单 后,专家顾问未能找到一个订单,它会立即发出命令,删除其余的订单。 删除不需要的挂单的操作一定要在任何开仓操作之前(先于)。 Artyom Trishkin 2011.07.24 16:01 #56 Roman.: 我从你的第一篇帖子中了解到 "我使用下面的例子来定义,但它只关闭了最后一个挂单,而不是第一个挂单,尽管第一个挂单的所有条件都满足了。帮助我找到错误!!!!!!!!!!!!!" - 你需要删除所有剩余的挂单,在把其中一些变成市场订单后 - 这个代码应该写在你的交易条件中,然后继续... // ------------------------------------------------Ищете Ваши отложенники--------------------------------- int orderType; for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--) { if (!OrderSelect(orderIndex, SELECT_BY_POS)) { continue; } if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber)) { continue; } orderType = OrderType(); if ((orderType == OP_BUY) || (orderType == OP_SELL)) { continue; } ticket = OrderTicket( ); // Номер ордера orderLots = OrderLots(); // Lots SL = OrderStopLoss(); // Значение StopLoss ордера TP = OrderTakeProfit(); // Значение TakeProfit ордера if (ticket>0) // { while(OrderSelect(ticket,SELECT_BY_TICKET)==false) // Если ордер выбран { Sleep(100); } OrderDelete(ticket,CLR_NONE); // и удаляете их } return (0); } 你有没有试过把代码写得紧凑? 这是你的代码。 // ------------------------------------------------Ищете Ваши отложенники--------------------------------- int orderType; for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--) { if (!OrderSelect(orderIndex, SELECT_BY_POS)) continue; if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber)) continue; orderType = OrderType(); if ((orderType == OP_BUY) || (orderType == OP_SELL)) continue; ticket = OrderTicket( ); // Номер ордера orderLots = OrderLots(); // Lots SL = OrderStopLoss(); // Значение StopLoss ордера TP = OrderTakeProfit(); // Значение TakeProfit ордера if (ticket>0) { while(OrderSelect(ticket,SELECT_BY_TICKET)==false) // Если ордер выбран Sleep(100); OrderDelete(ticket,CLR_NONE); // и удаляете их } return (0); } Anatoli Kazharski 2011.07.24 16:07 #57 Andreev: 我想可能会有几行字......。:) 嗯。artmedia70(24.07.2011 20:01) 将所有东西都装进了差不多两行。正如你所希望的那样)))。 Denis Lazarev 2011.07.24 16:30 #58 请帮助我,我在哪里犯了错误?我们的想法是,在订单被关闭的酒吧里,订单不应该打开。 OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY); if ((условие 1)&&(условие 2)&&(OrderCloseTime()!=Time[0])) { OrderSend...; } 但在测试器中,在订单关闭后,条件仍然得到满足,并且在同一方向上又开了一个订单。 Роман 2011.07.24 16:38 #59 artmedia70: 没试过把代码写得紧凑吗? 这里是你自己的代码。 我有...:-)))这是帕斯卡尔的一个习惯...可读性更差...特别是对于那些不太 "入门 "的人来说...:-)))在嵌套循环和条件的操作中,你需要按制表符宽度缩进,或3个空格--作为最后的手段... :-)) Роман 2011.07.24 16:42 #60 LazarevDenis: 请帮助我,我在哪里犯了错误?我们的想法是,在订单被关闭的酒吧里,订单不应该打开。 但在测试器中,在订单关闭后,条件仍然得到满足,并且在同一方向上又开了一个订单。 为了帮助,谷歌 这个 ,并搜索类似:在一个酒吧打开和关闭一个订单 site:mql4.com - 你将会很幸运。 12345678910111213...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
每一个刻度都会重新计算挂单的数量。
如果数量较少,说明有一个挂单变成了市价单。
所有剩余的(已经变得不必要的)可以被删除。
在删除时,两个订单都是市场订单。但即使最后一个挂单 被删除或触发,其票据仍被触发并产生错误。而倒数第二项仍在等待。
谢谢你的链接!!。将会研究一下 :)随着时间的推移,以及神奇的数字和按订单类型(bylimit或selllimit)是一个好主意。但你可能没有完全理解我。我的问题不是在订单上做标记,而是如何删除它。无论我如何定义倒数第二个订单,我都只能删除最后一个挂单。
我从你的第一篇帖子中了解到 "我使用下面的例子来定义,但它只关闭了最后一个挂单,而不是第一个挂单,尽管第一个挂单的所有条件都满足了。帮助我找到错误!!!!!!!!!!!!!" - 你需要删除所有剩余的挂单,在把其中一些变成市场订单后 - 这个代码应该被输入到你的交易条件中并继续进行...
谢谢!!!。没想到会这么复杂:))))。
我从你的第一篇帖子中了解到 "我使用下面的例子来定义,但它只关闭了最后一个挂单,而不是第一个挂单,尽管第一个挂单的所有条件都满足了。帮助我找到错误!!!!!!!!!!!!!" - 你需要删除所有剩余的挂单,在把其中一些变成市场订单后 - 这个代码应该被输入到你的交易条件中并继续进行...
我想这可能需要几行字 ...:)
在删除的那一刻,这两个订单都是可以销售的。但即使最后一个挂单被删除或触发,触发它的票据仍会显示错误。倒数第二位仍将在那里。
我甚至无法想象这怎么可能。
如果在重新计算挂单 后,专家顾问未能找到一个订单,它会立即发出命令,删除其余的订单。
删除不需要的挂单的操作一定要在任何开仓操作之前(先于)。
我从你的第一篇帖子中了解到 "我使用下面的例子来定义,但它只关闭了最后一个挂单,而不是第一个挂单,尽管第一个挂单的所有条件都满足了。帮助我找到错误!!!!!!!!!!!!!" - 你需要删除所有剩余的挂单,在把其中一些变成市场订单后 - 这个代码应该写在你的交易条件中,然后继续...
这是你的代码。
我想可能会有几行字......。:)
嗯。artmedia70(24.07.2011 20:01) 将所有东西都装进了差不多两行。正如你所希望的那样)))。
请帮助我,我在哪里犯了错误?我们的想法是,在订单被关闭的酒吧里,订单不应该打开。
但在测试器中,在订单关闭后,条件仍然得到满足,并且在同一方向上又开了一个订单。
没试过把代码写得紧凑吗?
这里是你自己的代码。
请帮助我,我在哪里犯了错误?我们的想法是,在订单被关闭的酒吧里,订单不应该打开。
但在测试器中,在订单关闭后,条件仍然得到满足,并且在同一方向上又开了一个订单。
为了帮助,谷歌 这个 ,并搜索类似:在一个酒吧打开和关闭一个订单 site:mql4.com - 你将会很幸运。