来自一个 "傻瓜 "的问题 - 页 263

 
Contender:

试着用StringConcatenate()将字符串 "粘 "在一起

被取代的是

StringConcatenate(nTL,"nTL_",IntegerToString(MathRand()));
并没有帮助。
 
Silent:
我又要绞尽脑汁想一个星期了。你能给我一些更多的细节吗?(可以是粗糙的:)

对于几百个具有独特名称的对象,是否有其他选择?

(一组对象的名称中必须有相同部分的字符串,才能删除该组)。

计数器
 
TheXpert:

那么,从逻辑上讲,如果该函数根本就设置了最后一个错误,那么在成功完成该函数时,应该有一个零的错误值或文档中描述的值。没有其他办法。

也就是说,如果调用成功且错误非零,这种情况应该在文档中描述。

我也是这么想的,直到我被说服了。向SD写了一个请求,我得到了像上面那样的答复:)
 
220Volt:

你是否因为Get Last Errors的打印结果不是零而担心?如果是这样,你应该只在函数报告失败的情况下询问错误。而且,你不应该在情节的最后要求出错,你可能会得到一个垃圾值。在MT4中是这样的,也许在这里是不同的。

伪代码。

这个错误应该由ResetLastError() 清除,但如果有一个赋值正在进行,则是等价的。
 
Silent:

我的建议是:根据我上面描述的原则,重新做Get LastError的工作。只有这样,你才会得到所发生的错误,也许你会得到其他的东西。

 
220Volt:
我也这么想,直到我被说服了。我给SD写了一个请求,我得到了和上面一样的答案:)
布拉伊德。
 

复位是在打电话之前复位。

这就是导致错误的原因

void  CreateTL(string name,datetime time1,double price1,datetime time2,double price2,bool ray_left,bool ray_right,color color_TL)
  {
//------------ nTL,nTLh,nTLl,nTLe
   nTL="nTL_"+IntegerToString(MathRand());
   nTLh="nTLh_"+IntegerToString(MathRand());
   nTLl="nTLl_"+IntegerToString(MathRand());
   nTLe="nTLe_"+IntegerToString(MathRand());
//------------
   ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2);
  };

这个变体没有错误

void  CreateTL(string name,datetime time1,double price1,datetime time2,double price2,bool ray_left,bool ray_right,color color_TL)
  {
//------------ nTL,nTLh,nTLl,nTLe
   //nTL="nTL_"+IntegerToString(MathRand());
   //nTLh="nTLh_"+IntegerToString(MathRand());
   //nTLl="nTLl_"+IntegerToString(MathRand());
   //nTLe="nTLe_"+IntegerToString(MathRand());
//------------
   ObjectCreate(0,nTL="nTL_"+IntegerToString(MathRand());,OBJ_TREND,0,time1,price1,time2,price2);
  };
 
zfs:
计数器
这有什么区别? 同样的数字在一个字符串中。
 
Silent:
这有什么区别呢? 线上的数字是一样的。
不能保证这些数字不会匹配。潜在的错误。
 
zfs:
不能保证数字会不匹配。潜在的错误。

首先,没有任何机会(Urain的代码从来没有失败过)

x=0;  MathSrand(x);
   for(i=0;i<MathRand();i++)MathRand();
   MathSrand((int)TimeLocal()*MathRand());

其次,我在第一次调用时就出现了错误(而且没有创建对象)。

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5