新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1682 1...167516761677167816791680168116821683168416851686168716881689...1953 新评论 Nerd Trader 2021.10.18 20:25 #16811 重做了一下,现在做while而不是主for循环,但在第二个嵌套循环中仍然没有出现第一个条件! int GetMagic(Order &order) { int magic = 0; int unique = 0; if(order.cmd == OP_SELLSTOP || order.cmd == OP_BUYSTOP){ if(OrdersTotal()){ do{ magic++; for(int i = OrdersTotal(); i > 0 ; i --){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ Print( "!!!!!!!!!!!!!!!!!!!");//<----------НЕ ПРИНТУЕТСЯ if(magic != OrderMagicNumber()) unique ++; } } }while(unique < OrdersTotal()); }else return (magic + 1); } return magic; } Vitaly Muzichenko 2021.10.18 20:49 #16812 MakarFX #:真的吗?)你试过吗? 我有一个颜色变化的工作方式,已经有很长一段时间了,但不是在生产线上,尽管它应该没有什么区别。 if(SymOpen < SymClose) { CColor=Mirroring?BearBarColor:BullBarColor; SetIndexStyle(32+(num*8),DRAW_HISTOGRAM,STYLE_SOLID,Mirroring?1:WidthOC,CColor); SetIndexLabel(32+(num*8), SubSymbol); SetIndexStyle(33+(num*8),DRAW_HISTOGRAM,STYLE_SOLID,Mirroring?WidthOC:1,CColor); SetIndexLabel(33+(num*8), SubSymbol); SetIndexStyle(34+(num*8),DRAW_HISTOGRAM,STYLE_SOLID,Mirroring?WidthOC:1,CColor); SetIndexLabel(34+(num*8), SubSymbol); SetIndexStyle(35+(num*8),DRAW_HISTOGRAM,STYLE_SOLID,Mirroring?1:WidthOC,CColor); SetIndexLabel(35+(num*8), SubSymbol); PS。看了我的其他代码,它改变了那里的线的颜色 SetIndexStyle(num,DRAW_LINE,STYLE_SOLID,1,BullColor); Tretyakov Rostyslav 2021.10.18 21:01 #16813 Vitaly Muzichenko #:我已经让颜色变化以这种方式工作了很长时间,但不是在生产线上,尽管它应该没有什么区别。PS。看了看我的其他代码,它改变了行的颜色 SetIndexStyle(num,DRAW_LINE,STYLE_SOLID,1,BullColor); 改变整行,而不是所需的部分 Vitaly Muzichenko 2021.10.18 21:02 #16814 MakarFX #:改变整条线,而不是右边的部分 好吧,他写道,你必须改变整个线条 Nerd Trader 2021.10.18 21:06 #16815 因此,我改编了测试的代码,试着运行它,你会在第二阶上得到一个无限循环:( 附加的文件: endless_cycle.mq4 2 kb Vitaly Muzichenko 2021.10.18 21:13 #16816 Nerd Trader #: 因此,我改编了测试的代码,试着运行它,你会在第二阶上得到一个无限循环:( 我想知道!为什么? 为什么是这样,它有什么神圣的意义? int GetMagic(Order &order) { int magic = 0; int unique = 0; if(order.cmd == OP_SELLSTOP || order.cmd == OP_BUYSTOP){ if(OrdersTotal()){ do{ magic++; for(int i = OrdersTotal(); i > 0 ; i --){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ Print( "!!!!!!!!!!!!!!!!!!!");//<----------НЕ ПРИНТУЕТСЯ if(magic != OrderMagicNumber()) unique ++; } } }while(unique < OrdersTotal()); }else return (magic + 1); } return magic; } --- 你是按数字搜索的,所以按数字搜索。 如果你有两张逮捕令,他会去看,但他找不到第三张,或第23张。 --- 你似乎对任务不太清楚,所以这就是解决办法。 Aleksei Stepanenko 2021.10.18 21:18 #16817 Nerd Trader #: 循环的设置不正确。 for(int i = OrdersTotal(); i > 0 ; i --){ 它应该是这样的。 for(int i = OrdersTotal()-1; i >= 0 ; i --){ Nerd Trader 2021.10.18 21:42 #16818 Aleksei Stepanenko #:循环的设置不正确。它应该是这样的。 是的!它是有效的。但为什么早些时候仍然进入了第二个for循环,而且如果我插入下一行Print() - 它将被执行(无限地),但不会进一步发展?无论如何,谢谢你,现在我至少可以去睡觉了。 Nerd Trader 2021.10.18 21:44 #16819 Vitaly Muzichenko #:我想知道!为什么?为什么是这样,它有什么神圣的意义?---你是按数字搜索的,所以按数字搜索。如果你有两张逮捕令,他会去看,但他找不到第三张,或第23张。---你似乎对任务不太清楚,所以这就是解决办法。 只是这个马吉克必须是独一无二的,也就是说,它必须与其他的马吉克没有匹配。 Valeriy Yastremskiy 2021.10.19 06:23 #16820 Aleksei Stepanenko #:循环的设置不正确。它应该是这样的。 有什么区别?而且订单编号不是从零开始而不是从一开始吗? 1...167516761677167816791680168116821683168416851686168716881689...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
真的吗?)
你试过吗?
我有一个颜色变化的工作方式,已经有很长一段时间了,但不是在生产线上,尽管它应该没有什么区别。
PS。看了我的其他代码,它改变了那里的线的颜色
我已经让颜色变化以这种方式工作了很长时间,但不是在生产线上,尽管它应该没有什么区别。
PS。看了看我的其他代码,它改变了行的颜色
改变整行,而不是所需的部分
改变整条线,而不是右边的部分
好吧,他写道,你必须改变整个线条
因此,我改编了测试的代码,试着运行它,你会在第二阶上得到一个无限循环:(
我想知道!为什么?
为什么是这样,它有什么神圣的意义?
---
你是按数字搜索的,所以按数字搜索。
如果你有两张逮捕令,他会去看,但他找不到第三张,或第23张。
---
你似乎对任务不太清楚,所以这就是解决办法。
循环的设置不正确。
它应该是这样的。
循环的设置不正确。
它应该是这样的。
我想知道!为什么?
为什么是这样,它有什么神圣的意义?
---
你是按数字搜索的,所以按数字搜索。
如果你有两张逮捕令,他会去看,但他找不到第三张,或第23张。
---
你似乎对任务不太清楚,所以这就是解决办法。
循环的设置不正确。
它应该是这样的。
有什么区别?而且订单编号不是从零开始而不是从一开始吗?