哪种设计是正确的? - 页 7 12345678 新评论 Sergey Guliaev 2010.06.16 11:59 #61 Vladon: 我曾经一度在代码库中发布自己的一套关于关闭不同类型的代码。 在这种情况下,你给出的是已编译的文件,这在这个分支中没有任何用处。 弗拉登。 https://www.mql5.com/ru/code/mt4 还有这里,对不起,走错论坛了。 无意冒犯。 Vladislav Andruschenko 2010.06.16 12:07 #62 哦,这不是它:-),现在。 https://www.mql5.com/ru/code/9052 Sergey Guliaev 2010.08.02 04:20 #63 int Close_This_Symbol_All() { //---- string a = "Всего ордеров = " + DoubleToStr(OrdersTotal(),0)+ "\n"; for (int Cnt = OrdersTotal(); Cnt >= 0; Cnt--) { if(!OrderSelect(Cnt, SELECT_BY_POS, MODE_TRADES)) break; while (!IsTradeAllowed()) Sleep(1000); RefreshRates(); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), slip, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), slip, CLR_NONE); Comment(a+ GetLastError()); } //---- return(0); } 那么这样的设计在理论上应该是完全关闭所有的订单,但它只关闭了当前窗口的一对,错误在哪里? Sergey Guliaev 2010.08.02 05:08 #64 Vladon: 哦,这不是它:-),现在。 https://www.mql5.com/ru/code/9052 是的,你的工具包很好,然而我无法弄清楚我的代码中的错误在哪里。 Vladyslav Goshkov 2010.08.02 05:14 #65 valenok2003: 是的,你的工具包很好,然而我无法弄清楚我的代码中的错误在哪里。int Close_This_Symbol_All() { //---- string a = "Всего ордеров = " + DoubleToStr(OrdersTotal(),0)+ "\n"; for (int Cnt = OrdersTotal(); Cnt >= 0; Cnt--) { if(!OrderSelect(Cnt, SELECT_BY_POS, MODE_TRADES)) break; while (!IsTradeAllowed()) Sleep(1000); RefreshRates(); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), slip, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), slip, CLR_NONE); Comment(a+ GetLastError()); } //---- return(0); } for (int Cnt = OrdersTotal(); Cnt >= 0; Cnt--) 有时,这种固执的态度令人吃惊。在本主题的第3页和更远的地方,你看到了一个关于推翻命令的正确例子。在一天结束时,RTFM。我得告诉你多少次:退出阵列之外。编号为 的订单 OrdersTotal()不存在!然后,它将发挥作用。if(!OrderSelect(Cnt, SELECT_BY_POS, MODE_TRADES)) break; Sergey Guliaev 2010.08.02 05:35 #66 VladislavVG: 有时,这种固执的态度实在令人震惊。在本主题的第3页和更远的地方,你看到了正确的订单超限的例子。在一天结束时,RTFM。我得告诉你多少次:退出阵列。有编号的订单 不存在!然后,它将发挥作用。 弗拉迪斯拉夫,我道歉,这不是固执,而是不注意。我在做实验,没有纠正代码。 当然是这样。 for (int Cnt = OrdersTotal()-1; Cnt >= 0; Cnt--) 然而,这似乎并不是原因,因为修正后的设计 int Close_This_Symbol_All() { //---- string a = "Всего ордеров = " + DoubleToStr(OrdersTotal(),0)+ "\n"; for (int Cnt = OrdersTotal()-1; Cnt >= 0; Cnt--) { if(!OrderSelect(Cnt, SELECT_BY_POS, MODE_TRADES)) break; while (!IsTradeAllowed()) Sleep(1000); RefreshRates(); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), slip, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), slip, CLR_NONE); Comment(a+ GetLastError()); } //---- return(0); } 仍然只关闭你抛出脚本的窗口中的一对订单,而不是所有的一对。 [删除] 2010.08.02 05:38 #67 从启动者的简介中,"我用MQL4写作,包括定制。" - 一个典型的过度热心的例子。 我理解程序员可能很普通。你会习惯的。而我自己有时也会写出糟糕的代码,尽管我在努力。但什么会是... 我证实了某人的老假设,启动者的脑子里有羊毛。 Vladyslav Goshkov 2010.08.02 05:47 #68 valenok2003: 弗拉迪斯拉夫,我道歉,这不是固执,而是不注意。我在做实验,没有纠正代码。 当然是这样。 然而,这似乎并不是原因,因为修正后的设计 仍然只对抛出脚本的窗口中的一对订单进行关闭,而不是所有的一对。 如果是所有的交易对,那么你没有正确使用Ask,Bid - 你是从当前的图表中获取的。如果你在关闭订单时处理错误 - 你会看到这些信息。 而不是Ask - MarketInfo(OrderSymbol(),MODE_ASK); 而不是Bid - MarketInfo(OrderSymbol(),MODE_BID)。 好运。 ZS并改变脚本的名称,因为根据名称它可以正常工作;)。 Sergey Guliaev 2010.08.02 05:49 #69 gip: 从启动者的简介中,"我用MQL4写作,包括定制。" - 一个典型的过度热心的例子。 我理解程序员可能很普通。你会习惯的。而我自己有时也会写出糟糕的代码,尽管我在努力。但什么会是... 我证实了某人的老假设,话题发起人的脑子里有羊毛。 当然,听到这个消息是很遗憾的。然而,我从不接受我无法完成的订单。而且,我希望你能理解,订单水平也会有所不同。而且,正如有人所说--不知道并不可耻。不问可耻....而根据我的理解,这个论坛的存在正是为了提供一个学习的机会。因此,你的,势利眼对我来说并不清楚,你的批评,我不接受。虽然我承认你是这个论坛上最聪明的。 P.S. 编程的艺术不在于写代码的能力,而在于做出正确算法的能力。这就像如果你一生都在开拉达车,然后你搬到了奔驰车,不知道所有的旋钮和按钮在哪里,你并没有因此而成为一个坏司机。 Sergey Guliaev 2010.08.02 05:50 #70 VladislavVG:如果是所有的货币对,你没有正确使用Ask,Bid--你是从当前的图表中抽取。如果你在关闭订单时处理错误,你会看到消息。而不是Ask - MarketInfo(OrderSymbol(),MODE_ASK); 而不是Bid - MarketInfo(OrderSymbol(),MODE_BID)。好运。 非常感谢,我正在处理错误,信息回来了--错误的价格,但我搞不清楚哪里出了问题。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我曾经一度在代码库中发布自己的一套关于关闭不同类型的代码。
https://www.mql5.com/ru/code/mt4
还有这里,对不起,走错论坛了。
无意冒犯。
哦,这不是它:-),现在。
https://www.mql5.com/ru/code/9052
哦,这不是它:-),现在。
https://www.mql5.com/ru/code/9052
是的,你的工具包很好,然而我无法弄清楚我的代码中的错误在哪里。
是的,你的工具包很好,然而我无法弄清楚我的代码中的错误在哪里。
的订单
OrdersTotal()
不存在!然后,它将发挥作用。
有时,这种固执的态度实在令人震惊。在本主题的第3页和更远的地方,你看到了正确的订单超限的例子。在一天结束时,RTFM。我得告诉你多少次:退出阵列。有编号的订单
不存在!然后,它将发挥作用。
弗拉迪斯拉夫,我道歉,这不是固执,而是不注意。我在做实验,没有纠正代码。
当然是这样。
然而,这似乎并不是原因,因为修正后的设计
仍然只关闭你抛出脚本的窗口中的一对订单,而不是所有的一对。
从启动者的简介中,"我用MQL4写作,包括定制。" - 一个典型的过度热心的例子。
我理解程序员可能很普通。你会习惯的。而我自己有时也会写出糟糕的代码,尽管我在努力。但什么会是...
我证实了某人的老假设,启动者的脑子里有羊毛。
弗拉迪斯拉夫,我道歉,这不是固执,而是不注意。我在做实验,没有纠正代码。
当然是这样。
然而,这似乎并不是原因,因为修正后的设计
仍然只对抛出脚本的窗口中的一对订单进行关闭,而不是所有的一对。
如果是所有的交易对,那么你没有正确使用Ask,Bid - 你是从当前的图表中获取的。如果你在关闭订单时处理错误 - 你会看到这些信息。
而不是Ask - MarketInfo(OrderSymbol(),MODE_ASK); 而不是Bid - MarketInfo(OrderSymbol(),MODE_BID)。
好运。
ZS并改变脚本的名称,因为根据名称它可以正常工作;)。
从启动者的简介中,"我用MQL4写作,包括定制。" - 一个典型的过度热心的例子。
我理解程序员可能很普通。你会习惯的。而我自己有时也会写出糟糕的代码,尽管我在努力。但什么会是...
我证实了某人的老假设,话题发起人的脑子里有羊毛。
当然,听到这个消息是很遗憾的。然而,我从不接受我无法完成的订单。而且,我希望你能理解,订单水平也会有所不同。而且,正如有人所说--不知道并不可耻。不问可耻....而根据我的理解,这个论坛的存在正是为了提供一个学习的机会。因此,你的,势利眼对我来说并不清楚,你的批评,我不接受。虽然我承认你是这个论坛上最聪明的。
P.S. 编程的艺术不在于写代码的能力,而在于做出正确算法的能力。这就像如果你一生都在开拉达车,然后你搬到了奔驰车,不知道所有的旋钮和按钮在哪里,你并没有因此而成为一个坏司机。
如果是所有的货币对,你没有正确使用Ask,Bid--你是从当前的图表中抽取。如果你在关闭订单时处理错误,你会看到消息。
而不是Ask - MarketInfo(OrderSymbol(),MODE_ASK); 而不是Bid - MarketInfo(OrderSymbol(),MODE_BID)。
好运。
非常感谢,我正在处理错误,信息回来了--错误的价格,但我搞不清楚哪里出了问题。