2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in] Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
/***********************OnChartEvent function************************/voidOnChartEvent(constint id, // идентификатор событияconstlong& lparam, // параметр события типа longconstdouble& dparam, // параметр события типа doubleconststring& sparam // параметр события типа string
)
{
if(id == CHARTEVENT_OBJECT_CREATE)
{
string result[]; // массив для получения строкStringSplit(sparam, ' ', result); // получим из имени созданного объекта подстрокиulong timeCreate = ObjectGetInteger(0, sparam, OBJPROP_CREATETIME); // получим время создания объектаstring newName = result[0]+" "+result[1]+" "+string(timeCreate); // сформируем новое имя объектаObjectSetString(0, sparam, OBJPROP_NAME, newName); // переименуем объект
}
}/******************************************************************/
找到了!由于名字相同,所以选择数字中最小的第一个数字,它是第4个物体,然后由于前2个物体有第4个数字,所以选择前2个物体中第4个之后的最小数字。
是的,只有逆向转换不能做。将随机数分配给对象就像调用语言MQL831而不是MQL5。
在我看来,为了手动处理对象的创建顺序,你必须在所有对象之后或在每个对象的创建过程中对名称进行编号,然后运行机器人来处理并写入数组,保持名称中的创建编号。 这将允许将来像ObjectName 函数和其他类似函数一样,按照对象的创建 顺序手动对列表中的对象进行正确排序。
在我看来,为了手动处理对象的创建顺序,我们需要在所有对象创建后或在每个对象的创建过程中对名称进行编号,然后打开机器人,它处理并写入一个数组,保持名称中的创建编号。 在未来,这将允许从列表中正确选择对象,包括通过ObjectName函数和其他类似函数,手动选择对象创建 顺序。
为什么不使用属性标识符为OBJPROP_CREATETIME的ObjectGetInteger()?
是什么阻止了我使用属性ID为OBJPROP_CREATETIME的ObjectGetInteger()?
我的想法是,我希望我在图表上画的所有东西都写在对象的名称中,包括对象创建的编号,按照创建的顺序,时间框架,费波水平类型和费波水平类型序列号,同时按照这些水平数据的顺序写成数组。 然后我们将通过这些名称和数据在与这些对象创建顺序相对应的数组中创建交易行为的标准。
到目前为止,我发现了这种方式:我们创建了4个Fibo对象
在列表中,创建的顺序被保存,根据创建的顺序对它们进行编号处理
运行专家顾问
我们按照对象的创建顺序,通过改变名称来保持列表中的创建顺序,
,并按照列表中的创建顺序将对象的特征和级别写入数组中。
第一遍代码,保持列表中对象创建的顺序,修改名称,在创建标准时,补充特征,用于定位,并保持对象列表中的顺序,以便在对象坐标改变的情况下,通过顺序进行正确的进一步选择,并按照第一次填充的顺序正确覆盖数组。
到目前为止,逻辑是在第一遍时保存的)))
重点是,我希望我在图表上画的一切都写在对象的名称中,包括列表中对象的编号,按照创建的顺序,时间框架,费波水平类型和费波水平类型序列号,在平行写数组中,这些水平的数据在图形对象列表中的顺序。 然后我们将通过这些名称创建交易行动的标准,以及与这些对象的创建顺序对应的数组中的数据。
到目前为止,我找到了以下方法。 我们在列表中按创建顺序创建4个Fibo对象,根据创建顺序对它们进行编号处理 启动专家顾问
第一遍代码,保持列表中对象的顺序,修改对象的名称,保持其创建的顺序,并按照这些对象创建的顺序在数组中记录特征和级别,因为在列表中。 第一遍代码,保持列表中对象的顺序,修改名称,在创建标准时增加特征的定位,并保持对象列表中的顺序,以便通过尝试改变对象坐标的顺序和正确地覆盖数组来进一步正确选择
虽然在第一遍时,逻辑被保存下来了)))
如果对象在对象列表中有一个与创建顺序相对应的编号,一切都会简单得多。
意识到这一点的人,已经开始使用CCanvas类画 素描了。而且我发现了一些完全未知的问题。填充背景的矩形和圆形画得很好,但我所有试图画圆的努力都以完全失败告终。在代码中,有三种圆形的变体,在图表中没有画出它们的结果。这段代码对圆圈有效吗,还是有什么遗漏?
,它总是有效。
是的,一切正常。
试试这个脚本。它以三种算法绘制随机半径、颜色和透明度的圆、CircleAA和CircleWu圆
CircleAA 最好不要使用--它是一种非常缓慢的算法。
如果这些对象在对象列表中被默许地分配一个与它们被创建的顺序相对应的编号,那就容易多了。
重点是,我希望我在图表上画的所有东西都写在对象的名称中,包括列表中对象的编号,按照创建的顺序,时间框架,费波水平的类型和费波水平类型的序列号,同时按照图形对象列表中对象的顺序写出这些水平的数据的数组。 然后我们将按照这些名称创建交易行动的标准,以及对应于这些对象创建顺序的数组的数据。
到目前为止,我找到了以下方法。 我们在列表中按创建顺序创建4个菲波对象,根据创建顺序对其进行编号处理 运行专家顾问
第一遍代码,保持列表中对象的顺序,修改对象的名称,保持其创建的顺序,并按照这些对象创建的顺序在数组中记录特征和级别,如列表中的顺序。 第一遍代码,保持列表中对象的顺序,修改名称,创建标准时增加特征的方向,并保持对象列表中的顺序,在坐标改变的情况下尝试改变对象的顺序,并按照第一遍的顺序正确覆盖数组,以便进一步正确选择
虽然在第一遍时,逻辑被保留了下来)))
你的问题在 "一次 "上得到了解决。写出创建对象的重命名就可以了。
现在,每次你在安装了专家顾问的图表上创建图形对象 时,对象名称中会有创建时间,而不是随机数字,并且会严格按照创建的顺序排序。
你的问题一下子就解决了。写出创建对象的重命名就可以了。
现在,每次你 在安装了专家顾问的图表上创建图形对象 时,对象名称中的数字不是随机的,而是有创建的时间,并将严格按照创建的顺序排序。
非常感谢!!没有完全读懂这些事件处理函数,简化了一个程序员的生活)
对象创建时间(作为ulong类型使用)OBJPROP_CREATETIME不是对象创建顺序的一个标识符吗?
是的!谢谢你!!!。