错误、漏洞、问题 - 页 2400

 
Slava:

如果OnTimer没有被循环,就不应该有异常终止。

你能给你的专家检查一下客户终端的行为吗?

那里有很多垃圾,代码不是最优的,是建立在7000行模板的基础上。我自己会试着弄清楚并告诉你。顺便说一下,这是一个图形对象的构建者,它不是贸易。

谢谢你!

 
Vitaly Muzichenko:

顺便说一下,这是一个建筑商,他不是一个商人。

明白了。在OnDeinit()中移除图形对象

这已经被修复了

[删除]  
Slava:

明白了。在OnDeinit()中移除图形对象

它已经被修复了。

你能告诉我什么时候会有一个带有修复功能的新版本吗?

[删除]  
uint lev[1] = {};
ArrayInitialize(lev, UINT_MAX);  // warring: truncation of constant value
Alert(lev[0] == UINT_MAX);       // Alert: true
 

我不得不在MQL5中创建一个新的页面来注册信号,但它没有被启用。

https://www.mql5.com/ru/signals/new

 

你能告诉我如何正确形成日经指数CFD订单的价格吗(其他CFD由机器人打开)?

假设我们有19661.15的要求,ticksize = 1。

我们需要绕过它,但向什么方向绕?例如,代码MathRound(price / tickSize) * tickSize;给出了价格19661,即比市场好。这就出现了一个错误。

从上面增加一个tickSize也会出现错误。

如果我试图按原样发送请求,也是同样的错误。

测试人员在日志中写道。

failed market buy 1.00 NI225 [Invalid price] // стандартный вывод
OrderSend failed NI225 0 1.0 19662.0 0.0 0.0 with error 4756 // бот выводит параметры ордера и код ошибки
 
Stanislav Korotky:

什么样的服务器有这些设置?

 
fxsaber:

采用这些设置的服务器是什么?

利特外汇投资公司-MT5.com


 
Stanislav Korotky:

你能告诉我如何正确形成日经指数CFD订单的价格吗(其他CFD由机器人打开)?

我们的要求是19661.15,ticksize = 1。

我们需要绕过它,但向什么方向绕?例如,代码MathRound(price / tickSize) * tickSize; 给出了价格19661,即比市场好。这就出现了一个错误。

从上面增加一个tickSize也会出现错误。

如果我试图按原样发送请求,也是同样的错误。

在日志中测试者说。

使用此功能(将点数转移到仪器价格)。

//+------------------------------------------------------------------+
//| Expert Points to price function                                  |
//+------------------------------------------------------------------+
double PointsToPrice(const long a_points)
{
  double step_price = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_SIZE);
  double a_price = (double(a_points) * Point() ) / step_price;
  if(a_points < 0)
  {
    a_price = MathFloor(a_price) * step_price;
  }
  else
  {
    a_price = MathCeil(a_price) * step_price;
  }
  return(NormalizeDouble(a_price, Digits()));
}

然后,你只需将PointsToPrice() 函数返回的内容加(减)到价格中去。

由以下人员添加

如果它不能正确工作,那么这个符号

是由SYMBOL_TRADE_TICK_SIZE 翻译的。

 
Stanislav Korotky:

利特外汇投资公司-MT5.com

因此,这是服务器的歪手,测试者现在无法拉直。同时,在终端中,一切都会打开,因为那里不考虑TickSize。