新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1793

 
Nerd Trader #:
是的,确实有8件之多,但图表没有显示,价格是0也没关系,线仍然紧贴光标(跟着它走)。

不要使用ObjectDelete,因为每次都会跑到 "0"

更好的
      ObjectSetString(0,"line 1",OBJPROP_NAME,line_name);
      ObjectSetInteger(0,line_name,OBJPROP_COLOR,clrRed);
 
MakarFX #:

不要使用ObjectDelete,因为每次都会跑到 "0"

更好的
我有重命名的选项,是的,它起作用。在ObjectDelete()的情况下,为什么绿线和红线是在一个实例中产生的,而且没有闪烁?而黄线(止损)如果已经存在,为什么在低于买入价的时候会无限地增加?
 

0表示虚假。任何不为0的都是真的但是,有没有人考虑过这样的代码的可读性,其中各种条件混合在一起?

if(!ObjectFind("Buy Stop"))

它不是一个布尔值。但它可以很容易地变成一个布尔值。

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!
if (!objectExist(0, "Buy stop"))
  Print("Error! Object not found.")

因此,最主要的是要有正确的方法来写代码。那么你将永远不会 有这样的问题。

 
Nerd Trader #:
我有重命名的选项,是的,它起作用。在ObjectDelete()的情况下,为什么绿线和红线在一个实例中被创建,而且不闪烁?而黄线,如果它已经有了,为什么还要继续无限地乘以?

这些线在你的控制之下。

if(id==CHARTEVENT_OBJECT_CLICK){

而那些闪烁的线条对任何OnChartEvent都有反应,因为

if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE))
 
Mihail Matkovskij #:

0表示虚假。任何不为0的都是真的但是有没有人想过这样的代码的可读性,其中各种条件混杂在一起?

它不是一个布尔值。但它可以很容易地变成一个布尔值。

因此,最主要的是要有正确的方法来写代码。那么你将永远不会 有这样的问题。

return(ObjectFind(_chartID, _name) >= 0)

如果该对象在主窗口中是 "0",它将返回false?

 
MakarFX #:

而那些闪烁的线条对任何OnChartEvent都有反应,因为。

我告诉他:按下按钮--创建行,松开按钮--删除(与其他类型的可以链接的对象相同)。但他说:这没什么,我会 "正常 "地做一切。:)

 
Nerd Trader #:

如果该对象在主窗口中是 "0",它将返回false?

这就是能打败你不愿意阅读文档的原因!。

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

返回值

如果成功,该函数返回找到的对象所在的子窗口0 表示主图表窗口)的编号。如果没有找到对象,该函数返回一个负数。要获得更多的错误信息,请调用GetLastError()函数

Документация по MQL5: Графические объекты / ObjectFind
Документация по MQL5: Графические объекты / ObjectFind
  • www.mql5.com
ObjectFind - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
MakarFX #:

这些线在你的控制之下。

而那些闪烁的线条对任何OnChartEvent都有反应,因为

以及绿线,一般来说,所有的线都会对光标的移动做出反应。我刚刚意识到,这三条线都是在价差区域创建的,因为黄线 "卖出止损 "的条件是如果(价格 > 报价),而绿线 "买入止损"(价格<买入)和灰线 "不允许"(价格 > 买入 & 价格 < 报价)
 
Nerd Trader #:

如果该对象在主窗口中是 "0",会不会返回错误?

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }
 
Mihail Matkovskij #:

我告诉他:按下按钮--创建线,松开按钮--删除(与其他类型的可以附加的对象相同)。但他说:这没什么,我会好好做的。:)

你是指通过属性改变颜色吗? 我有这样的选项,我需要了解为什么它不起作用。

Mihail Matkovskij#:

这里有一些东西可能会打败你不愿意阅读的文件?

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

那么,当主窗口中的对象为 "0 "时,你的函数将返回false,这有什么问题?解释一下有>= 0的点...或等于零
原因: