创建一个机器人 - 页 6

 
SanAlex:

来删除--那里的功能更复杂

有一些指标也有数字。

这里有一张指标名称的图片

附加的文件:
vn0wia.PNG  16 kb
 
SanAlex:

用于删除 - 有一个更复杂的函数

那么,如果所有的东西都在那里清楚地说明了,我怎么能使用MQL5手册 呢?

ObjectsDeleteAll

Удаляет все объекты в указанном графике, указанном подокне указанного графика, указанного типа. Существует два варианта функции:

int  ObjectsDeleteAll( 
   long  chart_id,            // идентификатор графика 
   int   sub_window=-1,       // индекс окна 
   int   type=-1              // тип объекта для удаления 
   ); 

Удаляет по префиксу имени в подокне графика все объекты указанного типа.

int  ObjectsDeleteAll( 
   long           chart_id,   // идентификатор графика 
   const string     prefix,   // префикс имени объекта 
   int       sub_window=-1,   // индекс окна 
   int      object_type=-1    // тип объекта для удаления 
   );

Параметры

chart_id

[in]  Идентификатор графика. 0 означает текущий график.

prefix

[in]  Префикс, по которому будут удалены все объекты, чьи имена начинаются с данного набора символов. 
Префикс можно указывать как 'name' или 'name*' – оба варианта работают одинаково. 
Если в качестве префикса указана пустая строка, то будут удалены объекты с любым именем.

sub_window=-1

[in]  Номер подокна графика. 0 означает главное окно графика, -1 означает все подокна графика, включая главное окно.

type=-1

[in]  Тип объекта. Значение может быть одним из значений перечисления ENUM_OBJECT. -1 означает все типы.

Возвращаемое значение

Возвращает количество удаленных объектов. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().

Примечание

Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, 
которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. 
Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.

我按前缀删除。或者,也许我不明白什么?

真诚的,弗拉基米尔。

Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
 
MrBrooklin:

那么,如果MQL5手册 上都写得很清楚,我怎么能使用呢?

我按前缀删除。或者,也许我不明白什么?

真诚的,弗拉基米尔。

我从未使用过《手册》--我只是用戳的方式来做,直到它发挥作用。

这是我做的一个脚本。

附加的文件:
 

亲爱的论坛专业人士

谁能告诉我,我是否误解了编程中前缀 一词的含义?

尊敬的弗拉基米尔。

 
MrBrooklin:

亲爱的论坛专业人士

谁能告诉我,我是否误解了编程中前缀 一词的含义?

真诚的,弗拉基米尔。

与俄语中的https://www.linguee.com/english-russian/translation/code+prefix.html 相同。

例如:ENUM_ORDER_TYPE_FILLING -- 本例中的前缀是枚举,那么_order_type_function
code prefix - Russian translation – Linguee
code prefix - Russian translation – Linguee
  • www.linguee.com
surname or family name, t h e prefix o f w hich was separated в именном указ а тел е в связи с фа ми ли ей, префикс которой Настрой к и префикса: В Ы можете создать список номер о в префиксных но ме ров и установи т ь определенные пр еф иксные имена пользователя , дл я международных к одо в доступа и ко до в города. scientific education, an eth...
 
MrBrooklin:

那么,如果MQL5手册 上都写得很清楚,我怎么能使用呢?

我按前缀删除。或者,也许我不明白什么?

真诚的,弗拉基米尔。

我认为你没有一个窗口索引。

 
Valeriy Yastremskiy:

你似乎没有一个窗口索引。

你好,瓦莱里!

在代码行中,我写了窗口的 chart_id 为 "0",即当前的图表。

   ObjectsDeleteAll(0,"Examples\\ZigzagColor");

还是指前缀后的"-1"?是这样的吗?

   ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1);

如果是这样,我也试过了,还是没有删除。

真诚的,弗拉基米尔。

 
MrBrooklin:

你好,瓦莱里!

在代码行中,我把窗口的 chart_id 设为 "0",即主图表窗口

还是你的意思是,在前缀后面还有一个"-1"?是这样的吗?

如果是这样,我也试了一下--还是没有删除。

问候,弗拉基米尔。

我通常使用打印或警报,在得到一个句柄后,在警报中显示它,如果可以的话,显示指标名称和窗口索引以及图表标识符,删除后,在警报中显示删除函数的返回。第一个零是图表标识符,前缀之后是窗口索引。

int DelObjV=ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1,-1);
Alert ("DelObjV= " DelObjV);
 
我通常在OnDeinit中清除句柄和计算部分,一切都被删除。该对象不是一个指标。
   IndicatorRelease(h_zz);
   ArrayFree(zz_buf);

https://www.mql5.com/ru/docs/chart_operations/chartindicatordelete

"从图表中删除一个指标并不意味着该指标的计算部分也将从终端内存中删除要释放指标句柄,请使用IndicatorRelease() 函数"。

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2010, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Valeriy Yastremskiy:

通常情况下,我通过打印或警报的步骤,在得到握手后输出到警报,如果你能命名指标和窗口索引和图表标识,删除后输出删除函数的返回到警报。第一个零是图表标识符,前缀之后是窗口索引。

我们使用以下方法将该指标从图表中移除


图表指标删除(ChartIndicatorDelete)

long chart_id, // 图表标识符

int sub_window // 子窗口的编号

const string indicator_shortname // 短的指标名称

);