新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 805 1...798799800801802803804805806807808809810811812...1953 新评论 Vitaly Muzichenko 2019.04.08 12:07 #8041 Sfinks35: 下午好! 我现在似乎已经得到了它。但在编译时,它给出了一个警告:由于类型转换在行,可能会丢失数据。 index = GetPatt5barsDN(index); 在编译过程中,函数头(或函数本身)中没有错误。double low3 = 0; int index = 0; low3 = GetPatt5barsDN(index); // Здесь передача значения по ссылке Print("low3= ", low3); Print("index= ", index); Roman Sharanov 2019.04.08 13:04 #8042 你好,我有一个问题,在优化过程中,我是否有办法跳过某一个环节。 例如,我正在用2个MA优化我的机器人--快速和慢速,从10个开始,最后每个都是1000个。 当慢速段的周期小于快速段的周期时,我怎样才能跳过该段? Igor Zakharov 2019.04.08 13:07 #8043 Roman Sharanov:你好,我有一个问题,在优化过程中,我是否有办法跳过某一个环节。 例如,我正在用2个MA优化我的机器人--快速和慢速,从10个开始,最后每个都是1000个。 当慢速通道的周期小于快速通道的周期时,我如何才能跳过通道?在这种情况下,在初始化过程中要返回(INIT_PARAMETERS_INCORRECT)。 Roman Sharanov 2019.04.08 13:27 #8044 Igor Zakharov:在这种情况下,在初始化过程中使return(INIT_PARAMETERS_INCORRECT)。谢谢 Youri Lazurenko 2019.04.08 15:31 #8045 你好。谁能告诉我。三个不同的TS,三个不同的EA,有三个不同的魔法数字,在不同的对子上。但它们有一个共同的特点--当达到某些条件(订单数量 和少量利润)时,订单关闭(使用OrderClose()函数)。在测试器中,没有任何问题,但在实践中,人们的印象是,当订单平仓()函数在其中一个对上触发时,这个函数(OrderClose())也在其他对上触发,无论条件是否满足。这可能是什么原因? 可能是一个用户定义的Close()函数? 下面是关闭条件和自定义的Close()函数。 if(CountBuy() >= 1 && CountSell() >= 1 && CountSymbolTotal() >= NumberOrder) { int i; int total = OrdersTotal(); double accruals = CalculateCommission() + CalculateSwapBuy() + CalculateSwapSell(); if((CountProfitBuy() + CountProfitSell()) >= (MaxOrderProfit*GetLots()+ accruals)) { for(i = total-1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY) OrderCloseX(); } } } for(i = total-1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_SELL) OrderCloseX(); } } } } } //--------------------- void OrderCloseX() { int i; int ticket = -1; int k = OrdersTotal(); for(i = k - 1; i >= 0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if((OrderType() == OP_BUY || OrderType() == OP_SELL) ) { ticket = OrderTicket(); } } } if(OrderTicket() != ticket) if(!OrderSelect(ticket, SELECT_BY_TICKET)) Print("Ошибка в выборе ордеров!"); while(true) { int error; bool result = true; if (OrderType()==OP_BUY) result = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, 0); if (OrderType()==OP_SELL) result = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, 0); if(result != TRUE) { error = GetLastError(); Print("LastError = ", error); } else { error = 0; } if(error == 135) RefreshRates(); else break; } } Igor Makanu 2019.04.08 16:28 #8046 Youri Lazurenko:你好。谁能告诉我。三个不同的TS,三个不同的EA,有三个不同的魔法数字,在不同的对子上。但它们有一个共同的特点--当达到某些条件(订单数量 和少量利润)时,订单关闭(使用OrderClose()函数)。在测试器中,没有任何问题,但在实践中,人们的印象是,当订单平仓()函数在其中一个对上触发时,这个函数(OrderClose())也在其他对上触发,无论条件是否满足。这可能是什么原因? 也许是在用户定义的Close()函数中? 下面是关闭条件和用户定义的Close()函数。 首先,你使用OrderSelect()来检查订单,因为它应该是这样的--你控制符号和订单主编号,然后你使用OrderCloseX()关闭订单,再次搜索订单,但你在OrderSelect()中没有控制符号和主编号,因为某些原因 我认为我们应该添加OrderCloseX()以避免重写整个代码。 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) Youri Lazurenko 2019.04.08 19:15 #8047 Igor Makanu:首先你通过OrderSelect()检查订单,因为它应该是--控制符号和订单主编号,然后你在OrderCloseX()中关闭订单,再次搜索订单,但由于某些原因,你在OrderSelect()中没有控制符号和主编号。 我想我应该添加OrderCloseX(),以避免重写所有代码。 谢谢你。我会纠正它。已经纠正了。也许这就是原因:OrderCloseX()函数在其中一个配对上被调用,然后对所有其他配对和魔法数字起作用。可能是这样,可能是这样。再次感谢。 Seric29 2019.04.09 04:33 #8048 Igor Makanu:数字 - 预定义变量我也决定使用这个函数,我读到,如果办公室的数字是5,例如1.00000,而最后的数值是零,它可能不会返回5位数字,而是0,或者例如数字看起来像1.24700,会返回3位小数,尽管应该有5位小数,这是真的吗? Igor Makanu 2019.04.09 06:31 #8049 Seric29:我也决定使用这个函数,我读到,如果一个稳定的5个字符的数字,例如1.00000和最后一个值为0,它可能不会返回5个字符,而是0,或者例如这个数字看起来像1.24700会返回3个小数位,尽管应该有5个小数位,这是真的吗?数字与NormalizeDouble一起使用 https://docs.mql4.com/ru/convert/normalizedouble NormalizeDouble - Преобразование данных - Справочник MQL4 docs.mql4.com Рассчитываемые значения StopLoss, TakeProfit, а также значения цены открытия отложенных ордеров, должны быть нормализованы с точностью, значение которой можно получить функцией Digits(). Нужно... Roman Sharanov 2019.04.09 13:56 #8050 突然间,所有的终端都与经纪商失去了联系。到处都是连接失败的错误。在登录窗口中,服务器不允许我选择服务器,它是空的。我之前没有改变任何东西,我没有安装任何东西或删除任何东西。原因是什么? 1...798799800801802803804805806807808809810811812...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
下午好!
我现在似乎已经得到了它。
但在编译时,它给出了一个警告:由于类型转换在行,可能会丢失数据。
index = GetPatt5barsDN(index);
在编译过程中,函数头(或函数本身)中没有错误。
你好,我有一个问题,在优化过程中,我是否有办法跳过某一个环节。
例如,我正在用2个MA优化我的机器人--快速和慢速,从10个开始,最后每个都是1000个。
当慢速段的周期小于快速段的周期时,我怎样才能跳过该段?
你好,我有一个问题,在优化过程中,我是否有办法跳过某一个环节。
例如,我正在用2个MA优化我的机器人--快速和慢速,从10个开始,最后每个都是1000个。
当慢速通道的周期小于快速通道的周期时,我如何才能跳过通道?
在这种情况下,在初始化过程中要返回(INIT_PARAMETERS_INCORRECT)。
在这种情况下,在初始化过程中使return(INIT_PARAMETERS_INCORRECT)。
谢谢
你好。谁能告诉我。三个不同的TS,三个不同的EA,有三个不同的魔法数字,在不同的对子上。但它们有一个共同的特点--当达到某些条件(订单数量 和少量利润)时,订单关闭(使用OrderClose()函数)。在测试器中,没有任何问题,但在实践中,人们的印象是,当订单平仓()函数在其中一个对上触发时,这个函数(OrderClose())也在其他对上触发,无论条件是否满足。这可能是什么原因? 可能是一个用户定义的Close()函数?
下面是关闭条件和自定义的Close()函数。
你好。谁能告诉我。三个不同的TS,三个不同的EA,有三个不同的魔法数字,在不同的对子上。但它们有一个共同的特点--当达到某些条件(订单数量 和少量利润)时,订单关闭(使用OrderClose()函数)。在测试器中,没有任何问题,但在实践中,人们的印象是,当订单平仓()函数在其中一个对上触发时,这个函数(OrderClose())也在其他对上触发,无论条件是否满足。这可能是什么原因? 也许是在用户定义的Close()函数中?
下面是关闭条件和用户定义的Close()函数。
首先,你使用OrderSelect()来检查订单,因为它应该是这样的--你控制符号和订单主编号,然后你使用OrderCloseX()关闭订单,再次搜索订单,但你在OrderSelect()中没有控制符号和主编号,因为某些原因
我认为我们应该添加OrderCloseX()以避免重写整个代码。
首先你通过OrderSelect()检查订单,因为它应该是--控制符号和订单主编号,然后你在OrderCloseX()中关闭订单,再次搜索订单,但由于某些原因,你在OrderSelect()中没有控制符号和主编号。
我想我应该添加OrderCloseX(),以避免重写所有代码。
谢谢你。我会纠正它。已经纠正了。也许这就是原因:OrderCloseX()函数在其中一个配对上被调用,然后对所有其他配对和魔法数字起作用。可能是这样,可能是这样。再次感谢。
数字 - 预定义变量
我也决定使用这个函数,我读到,如果办公室的数字是5,例如1.00000,而最后的数值是零,它可能不会返回5位数字,而是0,或者例如数字看起来像1.24700,会返回3位小数,尽管应该有5位小数,这是真的吗?
我也决定使用这个函数,我读到,如果一个稳定的5个字符的数字,例如1.00000和最后一个值为0,它可能不会返回5个字符,而是0,或者例如这个数字看起来像1.24700会返回3个小数位,尽管应该有5个小数位,这是真的吗?
数字与NormalizeDouble一起使用
https://docs.mql4.com/ru/convert/normalizedouble