搜索订单的任务 - 页 13 1...67891011121314 新评论 Dmitry Fedoseev 2015.08.16 18:57 #121 Vladimir Pastushak: 是的,我想也许有人知道更多....。 double Max1=0; double Max2=0; int Ticket1=0; int Ticket2=0; int t=OrdersTotal(); for(int i=0;i<t;i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){ if(OrderType()==OP_BUY){ if(OrderOpenPrice()>Max1){ Max2=Max1; Ticket2=Ticket1; Max1=OrderOpenPrice(); Ticket1=OrderTicket(); } else if(OrderOpenPrice()>Max2){ Max2=OrderOpenPrice(); Ticket2=OrderTicket(); } } } } else{ return(false); } } 没有更快捷的方法。如果你想更快,你需要考虑整个EA算法,也许你可以摆脱在每个tick 上寻找两个底部、两个顶部的需要。 Vladimir Pastushak 2015.08.16 18:59 #122 Dmitry Fedoseev: 没有更快捷的方法。如果你需要更快,你应该考虑整个EA的算法,也许你可以摆脱在每个tick上搜索两个低点和两个高点的必要性。在你的变体中,数据将是相等的,即第一个和第二个最高订单将有相同的票。很抱歉... Vladimir Pastushak 2015.08.16 19:02 #123 我是这样做的 void OrdersInfo :: SearchTicketPriceType() { double price_max=0,price_min=0,price_max2=0,price_min2=0,op=0; int tc=-1; m_tick_upper = 0; m_tick_upper_ = 0; m_tick_lower = 0; m_tick_lower_ = 0; Counter=0; for(int i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==m_magic || m_magic==-1) if(OrderSymbol ()==m_symbol || m_symbol==NULL) if(OrderType()==m_type_order) { Counter++; op=OrderOpenPrice(); tc=OrderTicket (); //--- if(op>price_max) // Самый верхний ордер { price_max=op; m_tick_upper=tc; } if(op<price_min || price_min==0) // Самый нижний ордер { price_min=op; m_tick_lower=tc; } if(tc!=m_tick_upper) // Предпоследний верхний ордер if(op>price_max2) { price_max2=op; m_tick_upper_=tc; } if(tc!=m_tick_lower) if(op<price_min2 || price_min2==0) // Предпоследний нижний ордер { price_min2=op; m_tick_lower_=tc; } //--- } } Alexander Puzanov 2015.08.16 19:07 #124 Dmitry Fedoseev:最好是简单地将不同任务的功能组合起来,专门为这些任务磨刀霍霍,而不是试图使一些东西通用。 100%如果你做了一个可移植的解决方案,当应用于一个特定的任务时,它的某些部分必然是多余的。你越是想让它普及,冗余的尾巴就越长。值得及时停止,以便这种冗余不会使编码者和产品的生活变得复杂。 Dmitry Fedoseev 2015.08.16 19:08 #125 Vladimir Pastushak:我是这样做的 它是否正常工作,你检查过吗? Vladimir Pastushak 2015.08.16 19:08 #126 Dmitry Fedoseev: 它是否正常工作,你检查过吗? 我想是的))) ... Vladimir Pastushak 2015.08.16 19:12 #127 Alexander Puzanov: 100%如果你做出一个可转移的解决方案,当应用于某项特定任务时,它的某些部分必然是多余的。你试图让它变得越普遍,冗余的尾巴就越长。值得及时停止,以便这种冗余不会使编码者和产品的生活变得复杂。由于某种原因,我想改用OOP。 有人赞美OOP,说它允许你收集和编排大量的函数,我以前的文件有大量的函数...我想把所有东西都归档,但如果在任何情况下都需要有一个单独的变体,那么图书馆目录的意义就消失了......。 事实证明,为了在99%的情况下避免冗余,我们仍然需要手工编写所有的代码...我是说从头开始... Dmitry Fedoseev 2015.08.16 19:16 #128 Vladimir Pastushak: 我想是的))) ... 是的。 Vladimir Pastushak 2015.08.16 19:17 #129 Dmitry Fedoseev: 是的,好的。 这正是我创建这个主题时想要的,谢谢大家!"。 Dmitry Fedoseev 2015.08.16 19:18 #130 Vladimir Pastushak: 这就是我创建这个主题想得到的东西,谢谢大家 !我不是OTK:)在测试器中或在模拟账户中测试订单。你可以在第一眼看到的时候就错了。 1...67891011121314 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,我想也许有人知道更多....。
没有更快捷的方法。如果你想更快,你需要考虑整个EA算法,也许你可以摆脱在每个tick 上寻找两个底部、两个顶部的需要。
没有更快捷的方法。如果你需要更快,你应该考虑整个EA的算法,也许你可以摆脱在每个tick上搜索两个低点和两个高点的必要性。
在你的变体中,数据将是相等的,即第一个和第二个最高订单将有相同的票。
很抱歉...
我是这样做的
最好是简单地将不同任务的功能组合起来,专门为这些任务磨刀霍霍,而不是试图使一些东西通用。
100%
如果你做了一个可移植的解决方案,当应用于一个特定的任务时,它的某些部分必然是多余的。你越是想让它普及,冗余的尾巴就越长。值得及时停止,以便这种冗余不会使编码者和产品的生活变得复杂。
我是这样做的
它是否正常工作,你检查过吗?
100%
如果你做出一个可转移的解决方案,当应用于某项特定任务时,它的某些部分必然是多余的。你试图让它变得越普遍,冗余的尾巴就越长。值得及时停止,以便这种冗余不会使编码者和产品的生活变得复杂。
由于某种原因,我想改用OOP。 有人赞美OOP,说它允许你收集和编排大量的函数,我以前的文件有大量的函数...我想把所有东西都归档,但如果在任何情况下都需要有一个单独的变体,那么图书馆目录的意义就消失了......。
事实证明,为了在99%的情况下避免冗余,我们仍然需要手工编写所有的代码...我是说从头开始...
我想是的))) ...
是的,好的。
这就是我创建这个主题想得到的东西,谢谢大家 !
我不是OTK:)在测试器中或在模拟账户中测试订单。你可以在第一眼看到的时候就错了。