错误、漏洞、问题 - 页 930

 
kPVT
谢谢你的提示。
请分享您的经验。具体来说就是。
1.产生独特名称的机制。通过自动增量直接列举现有的名字?
2.检查对象真实性的机制。也就是说,不只是检查是否有这个名字的对象,而是检查它的所有参数,例如尺寸、类型、文本等等。以节约资源为前提。对每个对象的每个属性在每个刻度 上进行大量的检查是相当费力的。当然,如果有阻断对象从外部的任何变化(除了EA创建者),或计算对象哈希到FAST(在一个 "如果 "中)检查对象的真实性。
 

请确认再现缺乏图表重绘 的情况。

附上一个简单的专家。条件。

1.从2013.01.07到2013.02.11,很可能没有受到影响。

2.在视觉模式下测试。

3.在第一次运行时,将速度减到最低。

4.在初始化后的下一次运行中,按F12(生成一个勾)。

另一个非常重要的条件是,终端必须在离线模式下运行。为了进行清洁实验,尝试将计算机与网络断开(断开所有网络适配器)。

观察一下。

1.延迟显示图表上的价差值。

ChartRedraw函数 工作不正确还是我做错了什么?如果你用鼠标移动图表(水平移动(时间),它就会正确地重新绘制。

附加的文件:
1.mq5  4 kb
 
voix_kas:
kPVT
谢谢你的提示。
请分享您的经验。具体来说就是。
1.产生独特名称的机制。通过自动增量直接列举现有的名字?
2.检查对象真实性的机制。也就是说,不只是检查是否有这个名字的对象,而是检查它的所有参数,例如尺寸、类型、文本等等。以节约资源为前提。对每个对象的每个属性在每个刻度上进行大量的检查是相当费力的。当然,如果对象被锁定,不受外界(除了顾问-创造者)的任何变化影响,或者计算对象的哈希值以快速检查对象的真实性(在一个 "如果 "中)。

不声称是真实的或最佳的。

1.你可以使用标准库,它使用随机数+名称作为对象名称,例如。18467RadioGroupItem0Button, 06334ClientBack.而且你不需要自己删除对象。

我还没有真正与标准的Biblio交上朋友,我这样做,还没有遇到任何问题。

int nOBJ=0;//счетчик однотипных объектов
int OnInit()
  {
   //уникальное имя на основе текущего времени в момент инициализации (в 36 системе для краткости, пример: MI7E9G)
   basedName=ULongTo36Base(TimeLocal());
   leftName="LeftBorder "+basedName;//имя для единичного объекта
   ObjectCreate(0,leftName,OBJ_VLINE,0,time,0);
   for(nOBJ=1;nOBJ<=100;nOBJ++)//создание 100 однотипных объектов
    ObjectCreate(0,(string)nOBJ+basedName,OBJ_TREND,0,time,price);
   return(0);
  }
void OnDeinit(const int reason)
  {
   for(int del=1; del<=nOBJ; del++)
      ObjectDelete(0,(string)del+basedName);
   ObjectDelete(0,leftName);
   return;
  }

这里的离散性将是1秒。如果你从模板中添加几个相同的指标,就会发生碰撞。 在这种情况下,你可以将指标参数添加到basedName中,或者将毫秒添加到TimeLocal()中,随机数或其他东西。一般来说,有一些变种。

2.对象的真实性--其独特的名称。两个对象,即使是同名的不同类型,也不能出现在一个图表窗口中。为什么你要检查对象的所有属性?解释一下。

你想检查对象属性 的手动修改 情况吗?有一个CHARTEVENT_OBJECT_CHANGE 事件。

为了控制意外删除,当你访问一个对象时,你需要检查它的存在,并在必要时恢复它(顺便说一下,有一个对象删除事件--我不使用它)。


如果你仍然想使用Comment来输出格式化的信息,你可以,例如,指定字符串的所需长度,并在知道这个长度的情况下,在适当的地方插入描述和参数值(定义它们的长度)。

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
voix_kas:
kPVT
谢谢你的提示。
请分享您的经验。具体来说就是。
1.产生独特名称的机制。通过自动增量直接列举现有的名字?
2.检查对象真实性的机制。也就是说,不仅仅是检查是否有一个具有这样名字的对象,还要检查它的所有参数,例如尺寸、类型、文本等等。以节约资源为前提。对每个对象的每个属性在每个刻度上进行大量的检查是相当费力的。当然,如果对象被锁定,不受外界任何变化的影响(除了创建者EA),或者计算对象的哈希值给FAST(在一个 "如果 "中),检查对象的真实性。
也许这样做会有帮助:通过现成的类别看市场
 

kPVT

谢谢你的提示。我将尝试使用CHARTEVENT_OBJECT_CHANGE来控制它。

Dima_S

谢谢你。但我不认为有必要使用标准类。

非常感谢您,请使用我之前帖子中的一个简单的现成的专家顾问测试ChartRedraw函数。不幸的是,由于某些原因,它迟迟没有给出一个刻度。也就是说,在这个例子中,显示的是前一个tick的点差值,而处理和输出是在当前的tick。

 
voix_kas:

kPVT

谢谢你的提示。我将尝试使用CHARTEVENT_OBJECT_CHANGE来控制它。

Dima_S

谢谢你。但我不认为有必要使用标准类。

非常感谢您,请使用我之前帖子中的一个简单的现成的专家顾问测试ChartRedraw函数。不幸的是,由于某些原因,它迟迟没有给出一个刻度。也就是说,在这个例子中,显示的是前一个tick的点差值,而处理和输出是在当前的tick。

不客气。如果你读过这篇文章,你会发现这两个问题的答案))
 

大型程序不能从市场上下载和安装。请小心。原因不明。

可能有一些限制。没有关于他们的官方信息。

 

你能给我一个提示吗?

1.一个从资源中调用的指标不能接收输入参数?
2.如果没有,是否有可能以及如何绕过这个问题(用拐杖)?
 

可以,这和iCustom()一样。

handle=iCustom(_Symbol,_Period,"::Indicators\\Examples\\ZigZag.EX5",12,5,3);
 
Karlson:

可以,这和iCustom()一样。

没错,它可以。在代码中犯了一个错误。

谢谢你。