新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1724 1...171717181719172017211722172317241725172617271728172917301731...1953 新评论 Alexey Viktorov 2021.11.07 07:54 #17231 EVGENII SHELIPOV #:各位程序员,你们好!!!!!我将再次尝试提出我的问题,但我把它重新表述了一下。在一个网格EA中,我们需要找到倒数第二个订单的票。我认为,最大订单票中的解决方案-1在策略测试器中不起作用,但在模拟和真实账户中可能是这样,很难看出原因。我已经写好了确定倒数第二张订单票的函数的代码。这个逻辑如下:如果我们翻阅网格中所有未平仓的订单,我们将找到紧随其后的最大订单,它将是必要的订单票。然而,我的编程水平还不够高,代码中存在一些错误。这个函数的结果是最小票数。这两个函数是最大票和倒数第二票。定义最大票数的函数工作起来没有问题。请告知错误是什么。谢谢你。 这第二张图片显示,你不需要最大票数或最大开仓时间,但你需要为买入订单选择一个最低开仓价,为卖出订单选择一个最高开仓价。 EVGENII SHELIPOV 2021.11.07 08:05 #17232 Alexey Viktorov #: 这是第二张图片告诉你,你不是在寻找最大票数或最大开仓时间,但你需要选择买入订单的最小开仓价和卖出订单的最大开仓价。 阿列克谢 我有决定这些价格的功能,你能解释一下如何达到你要找的票吗? EVGENII SHELIPOV 2021.11.07 08:06 #17233 Alexey Viktorov #: 第二个快照显示,你不需要最大票数或最大开仓时间,但买入订单的最低开仓价和卖出订单的最高开仓价。 //+----------------------------------------------------------------------------+ //| Определение цены открытия макс лота | //+----------------------------------------------------------------------------+ double PriceMaxOrder() { double max_price = 0 ; max_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() > max_ticket) { max_ticket = OrderTicket(); max_price = OrderOpenPrice(); } } } } } } return(max_price); } Alexey Viktorov 2021.11.07 08:13 #17234 EVGENII SHELIPOV #:阿列克谢 我有决定这些价格的功能,你能解释一下如何达到你要找的票吗? 像这样。 //+------------------------------------------------------------------+ //| Расчет тикета нижнего ордера BUY в сетке | //+------------------------------------------------------------------+ int GetTicketMaxOrder(int Magic)// int Magic вставлен только для компиляции без ошибок. { int total = OrdersTotal(), my_ticket = 0; double minPrice = DBL_MAX; for(int cnt = total; cnt-- > 0;) { if(OrderSelect(cnt, SELECT_BY_POS) && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY) { if(OrderOpenPrice() < minPrice) my_ticket = OrderTicket(); } } } return(my_ticket); } /*****************************End program****************************/ EVGENII SHELIPOV 2021.11.07 08:22 #17235 Alexey Viktorov #:像这样 阿列克谢!!但在进入函数的要点之前,我想澄清一下:这个函数是用来选择倒数第二个 订单的票吗? Alexey Viktorov 2021.11.07 08:31 #17236 EVGENII SHELIPOV #:Alexey谢谢你!!但在进入函数的要点之前,我想澄清一下:这个函数是用来选择倒数第二个 订单的票吗? 不,它找到价格最低的BUY订单票。从现在开始,由我或马卡尔让我练习。 EVGENII SHELIPOV 2021.11.07 08:39 #17237 Alexey Viktorov #:不,它找到价格最低的BUY订单票。从这里开始,就看你或马卡尔如何练习了。 第二天,我在你的公司里感到不足。我有计算最小/最大票数的功能,它们像卡拉什尼科夫的机器一样毫无问题地工作,我还没有问它们,但第二天它们就把我变成了一个发情的人!"。 //+----------------------------------------------------------------------------+ //| Расчет тикета максимального ордера в сетке | //+----------------------------------------------------------------------------+ int GetTicketMaxOrder() { max_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() > max_ticket) max_ticket = OrderTicket(); } } } } } return(max_ticket); } //+----------------------------------------------------------------------------+ //| Расчет тикета минимального ордера в сетке | //+----------------------------------------------------------------------------+ int GetTicketMinOrder() { min_ticket=INT_MAX; { 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() < min_ticket) min_ticket = OrderTicket(); } } } } } return(min_ticket); } 好吧,无论如何,谢谢你的提醒 Alexey Viktorov 2021.11.07 08:46 #17238 EVGENII SHELIPOV #:是的,阿列克谢,我觉得第二天在你中间的人不太合适。计算最低/最高票价的功能工作顺利,因为卡拉什尼科夫的机器我没有向任何人询问他们,但第二天我被打开了一个障碍!!。好吧,无论如何,谢谢你的提示。这张照片不就是 关于交易、自动交易系统和测试交易策略的论坛 新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 evgenii shelipov, 2021.11.07 06:43 各位程序员,你们好!!!!! 我将再次尝试提出我的问题,但要稍微改一下说法。 在一个网格EA中,我需要找到倒数第二个订单的票。最大订单的解决方案-1在策略测试器中不起作用,也许,但在模拟或真实账户中不起作用,我附上一张图片,就会明白原因。 我已经写好了确定倒数第二张订单票的函数的代码。这个逻辑如下:如果我们翻阅网格中所有未平仓的订单,我们将找到紧随其后的最大订单,它将是必要的订单票。 然而,我的编程水平还不够高,代码中存在一些错误。这个函数的结果是最小票数。这两个函数是最大票和倒数第二票。定义最大票数的函数工作起来没有问题。 //+----------------------------------------------------------------------------+ //| Расчет тикета предпоследнего ордера в сетке | //+----------------------------------------------------------------------------+ 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); } //+----------------------------------------------------------------------------+ //| Расчет тикета максимального ордера в сетке | //+----------------------------------------------------------------------------+ int GetTicketMaxOrder() { max_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() > max_ticket) max_ticket = OrderTicket(); } } } } } return(max_ticket); } 请告知错误是什么。谢谢你。 箭头显示的是最高票价吗?我看到这里的箭头指向了第二低的订单价格。有什么问题吗? EVGENII SHELIPOV 2021.11.07 08:48 #17239 Alexey Viktorov #:这张照片是 箭头显示的是最高票价?我看到这里的箭头指向了第二低的订单价格。有什么问题吗? 阿列克谢,你能放大图片吗? EVGENII SHELIPOV 2021.11.07 08:50 #17240 EVGENII SHELIPOV #:阿列克谢,你能放大图片吗? 这就是预测 的顺序 1...171717181719172017211722172317241725172617271728172917301731...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
各位程序员,你们好!!!!!
我将再次尝试提出我的问题,但我把它重新表述了一下。
在一个网格EA中,我们需要找到倒数第二个订单的票。我认为,最大订单票中的解决方案-1在策略测试器中不起作用,但在模拟和真实账户中可能是这样,很难看出原因。
我已经写好了确定倒数第二张订单票的函数的代码。这个逻辑如下:如果我们翻阅网格中所有未平仓的订单,我们将找到紧随其后的最大订单,它将是必要的订单票。
然而,我的编程水平还不够高,代码中存在一些错误。这个函数的结果是最小票数。这两个函数是最大票和倒数第二票。定义最大票数的函数工作起来没有问题。
请告知错误是什么。谢谢你。
这是第二张图片告诉你,你不是在寻找最大票数或最大开仓时间,但你需要选择买入订单的最小开仓价和卖出订单的最大开仓价。
阿列克谢 我有决定这些价格的功能,你能解释一下如何达到你要找的票吗?
第二个快照显示,你不需要最大票数或最大开仓时间,但买入订单的最低开仓价和卖出订单的最高开仓价。
阿列克谢 我有决定这些价格的功能,你能解释一下如何达到你要找的票吗?
像这样。
像这样
阿列克谢!!但在进入函数的要点之前,我想澄清一下:这个函数是用来选择倒数第二个 订单的票吗?
Alexey谢谢你!!但在进入函数的要点之前,我想澄清一下:这个函数是用来选择倒数第二个 订单的票吗?
不,它找到价格最低的BUY订单票。从现在开始,由我或马卡尔让我练习。
不,它找到价格最低的BUY订单票。从这里开始,就看你或马卡尔如何练习了。
第二天,我在你的公司里感到不足。我有计算最小/最大票数的功能,它们像卡拉什尼科夫的机器一样毫无问题地工作,我还没有问它们,但第二天它们就把我变成了一个发情的人!"。
好吧,无论如何,谢谢你的提醒
是的,阿列克谢,我觉得第二天在你中间的人不太合适。计算最低/最高票价的功能工作顺利,因为卡拉什尼科夫的机器我没有向任何人询问他们,但第二天我被打开了一个障碍!!。
好吧,无论如何,谢谢你的提示。
这张照片不就是
关于交易、自动交易系统和测试交易策略的论坛
新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论
evgenii shelipov, 2021.11.07 06:43
各位程序员,你们好!!!!!
我将再次尝试提出我的问题,但要稍微改一下说法。
在一个网格EA中,我需要找到倒数第二个订单的票。最大订单的解决方案-1在策略测试器中不起作用,也许,但在模拟或真实账户中不起作用,我附上一张图片,就会明白原因。
我已经写好了确定倒数第二张订单票的函数的代码。这个逻辑如下:如果我们翻阅网格中所有未平仓的订单,我们将找到紧随其后的最大订单,它将是必要的订单票。
然而,我的编程水平还不够高,代码中存在一些错误。这个函数的结果是最小票数。这两个函数是最大票和倒数第二票。定义最大票数的函数工作起来没有问题。
请告知错误是什么。谢谢你。
这张照片是
阿列克谢,你能放大图片吗?
阿列克谢,你能放大图片吗?
这就是预测 的顺序