哪种设计是正确的? - 页 4 12345678 新评论 Sergey Guliaev 2010.06.16 09:57 #31 Martingeil: 要像这样做。 if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) 就是这句话让人困惑。我认为这里根本就不需要它。还是我错了? [Deleted] 2010.06.16 10:06 #32 valenok2003: 就是这句话让人困惑。我认为这里根本就不需要它。还是我错了? 这是要切断神奇的符号 当搜索时,它首先搜索简单的没有magik的符号的订单,如果没有这样的订单,该函数停止工作.........,如果它发现有这样的符号的订单,那么它在其中搜索magik,并关闭那些符合magik的订单,如果交易流是自由的。 techno 2010.06.16 10:09 #33 valenok2003: 就是这句话让人困惑。我认为这里根本就不需要它。还是我错了? 如果我们说的是删除所有的订单,那么这一行就没有必要了,至于规范化,你凭什么认为内置的脚本是这样的,应该把它们作为一个例子? Sergey Guliaev 2010.06.16 10:16 #34 Martingeil: 需要砍掉那个特定角色的雄性。 当搜索时,它首先通过符号搜索没有大写字母的订单,如果没有这样的订单,则停止该功能,如果有带有这样符号的订单,则浏览它们,并找到那些与大写字母相匹配的订单,如果交易流是自由的,则关闭它们。 而我们怎么能事先知道MagicNumber,因为我们是用OrderMagicNumber()得到的。而除了这句话OrderSymbol() == Symbol() 是重复的。 还有这句话 Print ("close ALL orders Type : order : Bid "+OrderType()+" : "+OrderOpenPrice()+" : "+Bid); 如果没有这样的majik,函数就停止工作,如果有这样的majik,就搜索它们。 Sergey Guliaev 2010.06.16 10:25 #35 Techno: 如果我们说的是删除所有的订单,那么这一行就没有必要了,至于规范化,你凭什么认为内置的脚本是这样的,应该把它们作为一个例子? 嗯,马克思,毕竟。 Sergey Guliaev 2010.06.16 10:29 #36 Martingeil: 需要切断这个特殊符号的魔力 当搜索一个订单时,它首先搜索一个没有神奇数字的订单;如果没有这样的订单,该函数将停止工作.........,如果它找到一个有这样数字的订单,那么它将通过所有的订单来寻找一个神奇的数字,如果交易流是自由的,它将关闭所有与神奇数字匹配的订单。 我明白了,我只是在说关闭所有的订单,这就是为什么我一开始没有理解。 我冒昧地把你的例子重新安排成这样。 for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderMagicNumber() == MagicNumber) { while (!IsTradeAllowed()) Sleep(1000); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 5, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 5, CLR_NONE); } } } 但要关闭所有订单 for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { while (!IsTradeAllowed()) Sleep(1000); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 5, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 5, CLR_NONE); } } techno 2010.06.16 10:32 #37 valenok2003: 嗯,马克思,毕竟。 甚至恩格斯)不需要人格崇拜,根据自己的知识来写)。 Vladyslav Goshkov 2010.06.16 10:56 #38 valenok2003: 如果你是指这个 那么这里就有一个额外的变量,用于代码透明。或者你说的是别的东西?void Close_All() { int Total = OrdersTotal(); for (int i=Total; i >=1; i--) { if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true) { switch(OrderType()) { case OP_BUY : OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5); break; case OP_SELL: OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),5); break; default : break; } } } } 在这种情况下,它是这样的。 C/C++的 "通用标准 "是。 void Close_All() { int Total = OrdersTotal(); for (int i=Total-1; i >=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { switch(OrderType()) { case OP_BUY : OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5); break; case OP_SELL: OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),5); break; default : break; } } } } 操作次数的差异。如果在这种情况下影响不大,比如说测试人员的风格不同,就会对优化时间产生明显的影响。对于现实世界来说,它影响到速度,这有时是很关键的。 特别是制动是这样的设计(我没有在你的网站上看到,但由于某些原因,大多数人喜欢它? for (int i=0; i<OrdersTotal(); i++) 这里,在循环的每一次传递中都会调用一个函数。就计算成本而言,它是最 "昂贵 "的操作。 好运。 我看到你已经在这个意义上修复了代码。 Sergey Guliaev 2010.06.16 11:20 #39 其结果是这个脚本 //+------------------------------------------------------------------+ //| CloseThisSymbolAll.mq4 | //+------------------------------------------------------------------+ int start() { //---- for (int trade = OrdersTotal()-1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { while (!IsTradeAllowed()) Sleep(1000); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 5, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 5, CLR_NONE); } } //---- return(0); } //+------------------------------------------------------------------+ 问题--为什么它不总是关闭所有的订单?例如,我连续开了三个卖出订单,然后试图用脚本关闭它们,它可能会关闭一个或两个或所有的订单。原因是什么呢? TheXpert 2010.06.16 11:25 #40 伙计,在所有的选项中选错了,这可真是个好办法。孩子,你不应该是打码的。 它不是因为重新引用 而关闭的。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
要像这样做。
就是这句话让人困惑。我认为这里根本就不需要它。还是我错了?
就是这句话让人困惑。我认为这里根本就不需要它。还是我错了?
这是要切断神奇的符号
当搜索时,它首先搜索简单的没有magik的符号的订单,如果没有这样的订单,该函数停止工作.........,如果它发现有这样的符号的订单,那么它在其中搜索magik,并关闭那些符合magik的订单,如果交易流是自由的。
就是这句话让人困惑。我认为这里根本就不需要它。还是我错了?
需要砍掉那个特定角色的雄性。
当搜索时,它首先通过符号搜索没有大写字母的订单,如果没有这样的订单,则停止该功能,如果有带有这样符号的订单,则浏览它们,并找到那些与大写字母相匹配的订单,如果交易流是自由的,则关闭它们。
OrderSymbol() == Symbol()
是重复的。
还有这句话
如果没有这样的majik,函数就停止工作,如果有这样的majik,就搜索它们。
如果我们说的是删除所有的订单,那么这一行就没有必要了,至于规范化,你凭什么认为内置的脚本是这样的,应该把它们作为一个例子?
嗯,马克思,毕竟。
需要切断这个特殊符号的魔力
当搜索一个订单时,它首先搜索一个没有神奇数字的订单;如果没有这样的订单,该函数将停止工作.........,如果它找到一个有这样数字的订单,那么它将通过所有的订单来寻找一个神奇的数字,如果交易流是自由的,它将关闭所有与神奇数字匹配的订单。
我明白了,我只是在说关闭所有的订单,这就是为什么我一开始没有理解。
我冒昧地把你的例子重新安排成这样。
但要关闭所有订单
嗯,马克思,毕竟。
如果你是指这个
那么这里就有一个额外的变量,用于代码透明。
或者你说的是别的东西?
在这种情况下,它是这样的。
C/C++的 "通用标准 "是。
操作次数的差异。如果在这种情况下影响不大,比如说测试人员的风格不同,就会对优化时间产生明显的影响。对于现实世界来说,它影响到速度,这有时是很关键的。
特别是制动是这样的设计(我没有在你的网站上看到,但由于某些原因,大多数人喜欢它?
这里,在循环的每一次传递中都会调用一个函数。就计算成本而言,它是最 "昂贵 "的操作。
好运。
我看到你已经在这个意义上修复了代码。
其结果是这个脚本
问题--为什么它不总是关闭所有的订单?例如,我连续开了三个卖出订单,然后试图用脚本关闭它们,它可能会关闭一个或两个或所有的订单。原因是什么呢?伙计,在所有的选项中选错了,这可真是个好办法。孩子,你不应该是打码的。
它不是因为重新引用 而关闭的。