Creación de un robot - página 6

 
SanAlex:

para borrar - la función es más complicada allí

hay indicadores que también tienen números.

aquí hay una imagen de los nombres de los indicadores

Archivos adjuntos:
vn0wia.PNG  16 kb
 
SanAlex:

para el borrado - hay una función más complicada

Entonces, ¿cómo puedo utilizar el manual de MQL5 si todo está claramente explicado allí?

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().

Примечание

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

Borro por el prefijo. ¿O tal vez no entiendo algo?

Sinceramente, Vladimir.

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

Entonces, ¿cómo puedo utilizar el manual MQL5 si todo está claramente explicado allí?

Borro por el prefijo. ¿O tal vez no entiendo algo?

Sinceramente, Vladimir.

Nunca he utilizado el Manual - sólo lo hago pinchando hasta que funciona.

Aquí hay un guión que hice.

Archivos adjuntos:
 

Estimados profesionales del foro

¿Puede alguien aconsejarme si he entendido mal el significado de la palabra prefijo en programación?

Respetuosamente, Vladimir.

 
MrBrooklin:

Estimados profesionales del foro

¿Puede alguien aconsejarme si he entendido mal el significado de la palabra prefijo en programación?

Sinceramente, Vladimir.

Lo mismo que en rusohttps://www.linguee.com/english-russian/translation/code+prefix.html

Por ejemplo: ENUM_ORDER_TYPE_FILLING -> El prefijo en este caso es enumeración, luego _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:

Entonces, ¿cómo puedo utilizar el manual MQL5 si todo está claramente explicado allí?

Borro por el prefijo. ¿O tal vez no entiendo algo?

Sinceramente, Vladimir.

Creo que no tiene un índice de ventana.

 
Valeriy Yastremskiy:

Parece que no tiene un índice de ventana.

¡Hola Valery!

En la línea de código escribí el chart_id de la ventana "0", es decir, el gráfico actual

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

¿o quieres decir "-1" después del prefijo? ¿Es así?

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

Si es así, yo también lo he probado, sigue sin borrarlo.

Sinceramente, Vladimir.

 
MrBrooklin:

¡Hola Valery!

En la línea de código, pongo el chart_id de la ventana "0", es decir, la ventana del gráfico principal

¿o quiere decir que todavía hay un "-1" después del prefijo? ¿Es así?

Si es así, yo también lo he probado y sigue sin borrarse.

Saludos, Vladimir.

Yo suelo utilizar print o alertas, después de obtener un handle, mostrarlo en la alerta, y si se puede, el nombre del indicador y el índice de la ventana y el identificador del gráfico, después de la eliminación, mostrar el retorno de la función de eliminación en la alerta. El primer cero es el identificador del gráfico y después del prefijo el índice de la ventana.

int DelObjV=ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1,-1);
Alert ("DelObjV= " DelObjV);
 
Suelo borrar la parte de la manija y el cálculo en OnDeinit y todo se borra. El objeto no es un indicador.
   IndicatorRelease(h_zz);
   ArrayFree(zz_buf);

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

"Eliminar un indicador de un gráfico no significa que la parte de cálculo del indicador también se elimine de la memoria del terminal. Para liberar el mango del indicador, utilice la función 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:

Normalmente paso por la impresión o las alertas, después de obtener un apretón de manos la salida a la alerta, y si puede nombrar el indicador y el índice de la ventana y el identificador del gráfico, después de la eliminación de la salida a la alerta el retorno de la función de eliminación. El primer cero es el identificador del gráfico y después del prefijo el índice de la ventana.

Quitamos el indicador del gráfico utilizando el botón


ChartIndicatorDelete(

long chart_id, // identificador del gráfico

int sub_window // número de la subventana

const string nombre_del_indicador // nombre corto del indicador

);