新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1725 1...171817191720172117221723172417251726172717281729173017311732...1953 新评论 Alexey Viktorov 2021.11.07 07:53 #17241 EVGENII SHELIPOV #:阿列克谢,请放大图片。 放大了。我看到的正是箭头显示的第二低的订单价格和不符合倒数第二个订单标准的订单票。运行我的代码,你会看到最低订单的票。如果你想得到的不是BUY订单,而是从底部开始的第二个订单,你可以完成这个功能。 EVGENII SHELIPOV 2021.11.07 08:03 #17242 Alexey Viktorov #:放大了。我看到的是指向第二低订单价格的箭头,以及不符合倒数第二订单标准的订单票。如果你运行我的代码,你会看到最低订单的票。你可以开发这个函数,得到的不是下面的BUY订单,而是第二个订单。 我只能问,在下一个订单票确定的代码中,哪里有错误。 //+----------------------------------------------------------------------------+ //| Расчет тикета предпоследнего ордера в сетке | //+----------------------------------------------------------------------------+ int GetTicketPenultimateOrder() { penultimate_ticket = 0; { for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) { if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY || OrderType() == OP_SELL) { if(OrderTicket() > penultimate_ticket && penultimate_ticket != GetTicketMaxOrder()) penultimate_ticket = OrderTicket(); } } } } } return(penultimate_ticket); } Alexey Viktorov 2021.11.07 08:26 #17243 EVGENII SHELIPOV #:我只能作为我的问题,在确定倒数第二张订单的票的代码中哪里有错误? 错误在于,订单的价格没有以任何方式被考虑在内。 在你的对话中的某个地方,有建议将整个事情放在一个数组中,并对其进行排序,以获得任何票据的数量。但作为回应,我不明白该如何做。 像这样 //+------------------------------------------------------------------+ //| Расчет тикета второго снизу ордера BUY в сетке | //+------------------------------------------------------------------+ int GetTicketMaxOrder() { int total = OrdersTotal(), arrSize = 0; double arr[][2]; for(int cnt = 0; cnt < total; cnt++) { if(OrderSelect(cnt, SELECT_BY_POS) && OrderSymbol() == Symbol())// && OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY) { arrSize = ArrayRange(arr, 0); ArrayResize(arr, arrSize+1); arr[arrSize][0] = OrderOpenPrice(); arr[arrSize][1] = OrderTicket(); } } } ArraySort(arr); return((int)arr[1][1]); } /*****************************End program****************************/ Alexey Viktorov 2021.11.07 08:31 #17244 EVGENII SHELIPOV #:我只能回答我的问题,确定倒数第二个订单的票的代码中的错误在哪里?//+----------------------------------------------------------------------------+ //| Расчет тикета предпоследнего ордера в сетке | //+----------------------------------------------------------------------------+ int GetTicketPenultimateOrder() { penultimate_ticket = 0; { for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) { if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY || OrderType() == OP_SELL) { if(OrderTicket() > penultimate_ticket && penultimate_ticket != GetTicketMaxOrder()) penultimate_ticket = OrderTicket(); } } } } } return(penultimate_ticket); } 另一个严重的错误是,当你在循环中搜索订单时,你调用了一个函数,而这个函数也在搜索订单......而当代码执行返回到函数时,另一个订单已经被选中......而OrderTicket()的返回结果与 你的预期完全不同。 EVGENII SHELIPOV 2021.11.07 09:23 #17245 Alexey Viktorov #:错误在于,订单的价格没有以任何方式被考虑在内。在你的对话中的某个地方有一个建议,就是把整个东西放到一个数组中,然后对它进行排序,以按计数获得任何票据。但作为回应,我不明白该如何做。像这样 阿列克谢,你能对日志中的错误进行评论吗? 2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: ArraySort函数的起始位置0不正确 2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: array out of range in 'eGriD2.mq4' (664,18)。 2021.11.07 12:17:40.792 2020.01.02 06:00:00 由于EA出现严重错误,测试通道停止。 Alexey Viktorov 2021.11.07 11:25 #17246 EVGENII SHELIPOV # :阿列克谢,你能对日志中的错误发表评论吗?2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: ArraySort函数的起始位置0不正确2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: array out of range in 'eGriD2.mq4' (664,18)。 2021.11.07 12:17:40.792 2020.01.02 06:00:00 由于EA出现严重错误,测试通道停止。 这些错误不是我的代码。我不精通英语,我使用的是本网站的内部翻译器。它是这样翻译的。 ArraySort函数的起始位置0不正确 - ArraySort函数的起始位置0不正确 array out of range in 'eGriD2.mq4' (664,18) - array out of range in 'eGriD2.mq4' (664,18)。 由于EA中的一个关键错误,测试通过停止了 所以工作室里的代码。 ps;尽管如此,如果你在少于两个订单时调用这个函数,会出现这些错误。我没有保护它免受.........,但我想我应该这样做。 这正是我完全不想帮助别人的原因......你指望着对我的提示进行周到的应用,但......... Snajper007 2021.11.07 14:58 #17247 下午好。你能告诉我如何实现对n条的最小/最大搜索吗? Tretyakov Rostyslav 2021.11.07 15:05 #17248 Snajper007 #: 下午好。你能告诉我如何实现n条的最小/最大搜索吗? iHighest 淘宝网 Snajper007 2021.11.07 15:14 #17249 MakarFX 这里有另一个问题。有一个指标可以画出一个分形。如何检查在N条中是否有信号? Tretyakov Rostyslav 2021.11.07 15:24 #17250 Snajper007 #:这里有另一个问题。有一个指标可以画出一个分形。如何检查在N条中是否有信号? 首先,这取决于绘制分形的指标 1...171817191720172117221723172417251726172717281729173017311732...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
阿列克谢,请放大图片。
放大了。我看到的正是箭头显示的第二低的订单价格和不符合倒数第二个订单标准的订单票。运行我的代码,你会看到最低订单的票。如果你想得到的不是BUY订单,而是从底部开始的第二个订单,你可以完成这个功能。
放大了。我看到的是指向第二低订单价格的箭头,以及不符合倒数第二订单标准的订单票。如果你运行我的代码,你会看到最低订单的票。你可以开发这个函数,得到的不是下面的BUY订单,而是第二个订单。
我只能问,在下一个订单票确定的代码中,哪里有错误。
我只能作为我的问题,在确定倒数第二张订单的票的代码中哪里有错误?
错误在于,订单的价格没有以任何方式被考虑在内。
在你的对话中的某个地方,有建议将整个事情放在一个数组中,并对其进行排序,以获得任何票据的数量。但作为回应,我不明白该如何做。
像这样
我只能回答我的问题,确定倒数第二个订单的票的代码中的错误在哪里?
另一个严重的错误是,当你在循环中搜索订单时,你调用了一个函数,而这个函数也在搜索订单......而当代码执行返回到函数时,另一个订单已经被选中......而OrderTicket()的返回结果与 你的预期完全不同。
错误在于,订单的价格没有以任何方式被考虑在内。
在你的对话中的某个地方有一个建议,就是把整个东西放到一个数组中,然后对它进行排序,以按计数获得任何票据。但作为回应,我不明白该如何做。
像这样
阿列克谢,你能对日志中的错误进行评论吗?
2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: ArraySort函数的起始位置0不正确
2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: array out of range in 'eGriD2.mq4' (664,18)。
阿列克谢,你能对日志中的错误发表评论吗?
2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: ArraySort函数的起始位置0不正确
2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: array out of range in 'eGriD2.mq4' (664,18)。
这些错误不是我的代码。我不精通英语,我使用的是本网站的内部翻译器。它是这样翻译的。
ArraySort函数的起始位置0不正确 - ArraySort函数的起始位置0不正确
array out of range in 'eGriD2.mq4' (664,18) - array out of range in 'eGriD2.mq4' (664,18)。
由于EA中的一个关键错误,测试通过停止了
所以工作室里的代码。
ps;尽管如此,如果你在少于两个订单时调用这个函数,会出现这些错误。我没有保护它免受.........,但我想我应该这样做。
这正是我完全不想帮助别人的原因......你指望着对我的提示进行周到的应用,但.........
下午好。你能告诉我如何实现n条的最小/最大搜索吗?
淘宝网
这里有另一个问题。有一个指标可以画出一个分形。如何检查在N条中是否有信号?
这里有另一个问题。有一个指标可以画出一个分形。如何检查在N条中是否有信号?