错误、漏洞、问题 - 页 1914 1...190719081909191019111912191319141915191619171918191919201921...3184 新评论 Aleksei Beliakov 2017.06.23 19:20 #19131 nys2000: 你能不能说得更具体一点?白手起家 Vladimir 2017.06.23 19:24 #19132 nys2000: 你能不能说得更具体一点?for(i=1; i <=OrdersTotal(); i++) 这个列表中的订单编号从零到OrdersTotal()-1,包括在内(让Artem Trishkin原谅我,只是缩短了对nys2000的等待)。 Yaroslav Nakonechnyi 2017.06.23 19:26 #19133 Aleksei Beliakov: 白手起家这是两个相当的选择。如果对于(i=1...),那么OrderSelect(i-1,...),如果对于(i=0,...) - OrderSelect(i,...) Yaroslav Nakonechnyi 2017.06.23 19:30 #19134 Vladimir: for(i=1; i <=OrdersTotal(); i++) 这个列表中的订单编号从零到OrdersTotal()-1,包括在内(让Artem Trishkin原谅我,只是缩短了对nys2000的等待)。谢谢,但在OrderSelect(i-1,...)中考虑到了从0到OrdersTotal()-1的订单编号。 Aleksei Beliakov 2017.06.23 19:33 #19135 int OrdersTotalT(int _type) { int _total=0; for(int cnt=OrdersTotal()-1;cnt>=0;cnt--) { bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==_type) { _total++; } } return(_total); } Vladimir Pastushak 2017.06.23 21:09 #19136 nys2000: 谢谢你,但是从0到OrdersTotal()-1的订单编号在OrderSelect(i-1,...)中已经说明了。做到搜索的反向顺序 ... Kirill Belousov 2017.06.23 22:34 #19137 nys2000:这里有一个这样的简单代码。 在功能启动的那一刻,有两个购买位置是开放的。该函数将两个订单的存在打印了两次:通道1,通道2。我们删除注释并再次运行该函数。它大力拿下一个买单,宣布 "通过#1 "并离开循环。没有出现 "通道#2 "的信息。魔法是什么? 1. i=1,我们计算了订单......检查了条件1<=2 ? 是的。选择并关闭了该订单。2. i++ (i=2)3.OrdersTotal()=1<---------- 通过关闭循环内的订单,实际上改变了退出循环的条件4.2<=1 ? 没有<-----------,这里是你的 "魔法",因此从循环中退出。void CloseAllOrders() { bool Ans; int total=OrdersTotal(); for(int i=1; i <=total; i++) { Print("Проход № ", i); if (OrderSelect(i-1,SELECT_BY_POS)==true) { if (OrderSymbol() != Symbol()) continue; if (OrderType()==0) { // Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Bid,Digits),25); } if (OrderType()==1) { // Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Ask,Digits),25); } } } return; } Konstantin 2017.06.26 18:06 #19138 为什么会有一个额外的CHART_WINDOW_HANDLE 图表ID,它的作用是什么? [删除] 2017.06.26 20:14 #19139 Konstantin:为什么会有一个额外的CHART_WINDOW_HANDLE 图表ID,它的作用是什么? 我将假设图表ID是针对mql环境的,HWND是针对winapi的。 A100 2017.06.27 00:39 #19140 执行过程中出错int f( int t ) { union U { U( int t ) : t1( t ) {} int t2; int t1; }; U u( t ); return u.t2; } void OnStart() { Print( f( 3 )); } 结果:随机数(肯定不是3)。 1...190719081909191019111912191319141915191619171918191919201921...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能不能说得更具体一点?
白手起家
你能不能说得更具体一点?
白手起家
这是两个相当的选择。如果对于(i=1...),那么OrderSelect(i-1,...),如果对于(i=0,...) - OrderSelect(i,...)
for(i=1; i <=OrdersTotal(); i++) 这个列表中的订单编号从零到OrdersTotal()-1,包括在内(让Artem Trishkin原谅我,只是缩短了对nys2000的等待)。
谢谢,但在OrderSelect(i-1,...)中考虑到了从0到OrdersTotal()-1的订单编号。
谢谢你,但是从0到OrdersTotal()-1的订单编号在OrderSelect(i-1,...)中已经说明了。
做到搜索的反向顺序 ...
这里有一个这样的简单代码。
在功能启动的那一刻,有两个购买位置是开放的。该函数将两个订单的存在打印了两次:通道1,通道2。
我们删除注释并再次运行该函数。它大力拿下一个买单,宣布 "通过#1 "并离开循环。没有出现 "通道#2 "的信息。
魔法是什么?
1. i=1,我们计算了订单......检查了条件1<=2 ? 是的。选择并关闭了该订单。
2. i++ (i=2)
3.OrdersTotal()=1<---------- 通过关闭循环内的订单,实际上改变了退出循环的条件
4.2<=1 ? 没有<-----------,这里是你的 "魔法",因此从循环中退出。
为什么会有一个额外的CHART_WINDOW_HANDLE 图表ID,它的作用是什么?
为什么会有一个额外的CHART_WINDOW_HANDLE 图表ID,它的作用是什么?
执行过程中出错
结果:随机数(肯定不是3)。