错误、漏洞、问题 - 页 624

 
ivandurak:

在专家顾问中加载文件出错。 找到10个不同点。第一个代码指的是脚本,第二个指的是专家顾问,它们是相同的Ctrl-C Ctrl-V。该代码在脚本中起作用,在专家顾问中不起作用。

要找到10个差异,你需要看一下文件打开的代码。(并在这个开放代码中加入失败情况下的错误代码输出)

第二,如果你想用这个文件来测试EA,在EA代码中添加一行#属性tester_file "KitMaRsi.csv"。

 
你好。在MQL4中,执行程序时可能会出现ERR_HISTORY_WILL_UPDATED(4066)错误。 GetLastError()函数返回错误代码。你在MQL5中是否有类似的错误?我在这里搜索了https://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes,但没有找到类似的东西。
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения - Документация по MQL5
 
Druide:
你好。在MQL4中,当执行程序时,可能会发生ERR_HISTORY_WILL_UPDATED(4066)错误,其代码由GetLastError()函数返回。你在MQL5中是否有类似的错误?我在这里搜索了https://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes,但没有找到类似的东西。

我不会对这个错误说什么。终端本身确保了数据的同步,你可以同步(加载)数据并检查历史记录是否同步。

这里 描述了数据访问的组织(有一个历史加载脚本的例子)。

可能需要的函数:SeriesInfoIntegerSymbolIsSynchronized

 
awkozlov:

带字符变量的开关似乎不起作用......。

而不是。

'类型' - 非法的开关表达式类型
'买'--常量表达不是积分


使用标识符而不是文本。这将是更简单和更符合逻辑的...

//Что-то типа такого (или свои идентификаторы). Написать функцию конвертирующую текст в идентификатор и обратно (при необходимости) достаточно просто.
//Да и выглядит это более профессионально в конечном итоге.
  switch(type)
  {
  case ORDER_TYPE_BUY: {direction = type;  price = SymbolInfoDouble(zSymbol,SYMBOL_ASK); break;}
  case ORDER_TYPE_SELL: {direction = type; price = SymbolInfoDouble(zSymbol,SYMBOL_BID); break;}
  default: {return(lot_value);}
  }

  switch(type)
  {
  case OP_BUY: {direction = ORDER_TYPE_BUY;  price = SymbolInfoDouble(zSymbol,SYMBOL_ASK); break;}
  case OP_SELL: {direction = RDER_TYPE_SELL; price = SymbolInfoDouble(zSymbol,SYMBOL_BID); break;}
  default: {return(lot_value);}
  }
 
awkozlov:

带字符变量的开关似乎不起作用......。

而不是。

'type' - 非法开关表达式类型
'买'--常量表达不是积分

我必须这样画。

它不是那么清晰,而且是歪的。

它在其他语言中的效果也很好。

我应该用另一种方式来写吗?

我这样做了。

#define  OP_BUY               0
#define  OP_SELL              1
#define  OP_BUYLIMIT          2
 
Interesting:

我不会对这个错误说什么。终端本身确保了数据的同步,你可以同步(加载)数据并检查历史记录是否同步。

这里 描述了对数据访问的组织(有一个历史加载脚本的例子)。

可能需要的函数:SeriesInfoIntegerSymbolIsSynchronized

谢谢你!明白了。
 

在MQL5中是否有类似于stdlib.mqh、WinUser32.mqh、stderror.mqh这样的库,特别是,我对PostMessageA函数感兴趣?

 

当用多个代理进行优化时,结果会按照处理的顺序显示在图表上,即交替进行。是否可以像在MT4中那样,根据参数的选择,使结果显示的顺序?也就是说,后来的结果会按适当的顺序插入。我只是说,在优化过程中不方便跟踪趋势和规律,只有在计算完成后才能分析结果。

++:这都是用完全的蛮力进行优化--在遗传学上自然没有意义。

 
Konstantin83:

手册中的描述

事实上

bool ObjectCreate(
long chart_id, //图表识别码
string name, // object name
ENUM_OBJECT type, // 对象类型
intn win, // 窗口索引)。


谢谢你,更正了。
 
x100intraday 写道:"https://www.mql5.com/ru/forum/1111/page610#comment_130250。

让我们运行M1 帮助中的iFractals 示例代码,它使用OnCalculate() 函数调用的第二种--完整形式。但在这之前,在这个函数中,让我们纠正一下

为了不失去对输出的单行的关注(如果我们让它保持原样,在视觉上1将总是可见的,因为其他值是罕见的,并立即被1所取代,所以似乎1总是被显示的)运行后,我们看到非单位值每分钟都会出现,即在每一个新的条形图上,这明确表明指标每分钟都会重新绘制。充分 尽管代码中使用了经济的算法.怀疑者可以添加几行代码,比如说在每个分形上画上竖线,然后在第一次画完后将其删除,等待一分钟后出现全套的相同线条,并出现新的条形。任何关于只完成最后一个分形或线条的事情,由于某种原因都是不可能的。

是的,的确,iFractals() 函数处的例子中的指标 用内置指标的值刷新 其指标缓冲区。这一行中的第二个条件(用黄色标出)对此 "负有责任"。

//--- если это первый запуск вычислений нашего индикатора или изменилось количество значений в индикаторе iFractals
//--- или если необходимо рассчитать индикатор для двух или более баров (значит что-то изменилось в истории)
   if(prev_calculated==0 || calculated!=bars_calculated || rates_total>prev_calculated+1)
     {

解释:在每次打勾时,这两个值被比较,在函数的最后有一个赋值。

//--- запомним количество значений в индикаторе Fractals
   bars_calculated=calculated;

而他们之间的差异会在精神上产生。

  1. 计算分形指标的历史本身发生了变化(用户对历史的分页)。
  2. 发生一个新的酒吧事件

在这种情况下,两个事件的分离没有完成,你已经发现了。我还不能说我们是否要修正这个例子,以便我们不会有这样的问题。