Criando um robô - página 6

 
SanAlex:

para apagar - a função é mais complicada lá

há alguns indicadores que também têm números.

aqui está uma imagem de nomes indicadores

Arquivos anexados:
vn0wia.PNG  16 kb
 
SanAlex:

para eliminação - há uma função mais complicada

Então como posso usar o manual MQL5 se tudo está claramente escrito lá fora?

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

Примечание

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

Eu apago pelo prefixo. Ou talvez eu não entenda alguma coisa?

Atenciosamente, Vladimir.

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

Então como posso usar o manual MQL5 se está tudo claramente escrito lá fora?

Eu apago pelo prefixo. Ou talvez eu não entenda alguma coisa?

Atenciosamente, Vladimir.

Eu nunca usei o Manual - eu só faço isso cutucando até que ele funcione.

Aqui está um roteiro que eu fiz.

Arquivos anexados:
 

Prezados profissionais do fórum!

Alguém pode me dizer se eu entendi mal o significado da palavra prefixo na programação?

Com todo o respeito, Vladimir.

 
MrBrooklin:

Prezados profissionais do fórum!

Alguém pode me aconselhar se eu entender mal o significado da palavra prefixo na programação?

Atenciosamente, Vladimir.

O mesmo que em russohttps://www.linguee.com/english-russian/translation/code+prefix.html

Por exemplo: ENUM_ORDER_TYPE_FILLING -> O prefixo neste caso é enumeração, depois _ordem_tipo_função
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:

Então como posso usar o manual MQL5 se está tudo claramente escrito lá fora?

Eu apago pelo prefixo. Ou talvez eu não entenda alguma coisa?

Atenciosamente, Vladimir.

Eu acho que você não tem um índice de janela.

 
Valeriy Yastremskiy:

Você não parece ter um índice de janela.

Olá Valery!

Na linha de código eu escrevi o chart_id da janela "0", ou seja, o gráfico atual

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

ou você quer dizer "-1" após o prefixo? É assim?

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

Eu também tentei dessa forma, mas de qualquer forma não o apagava.

Atenciosamente, Vladimir.

 
MrBrooklin:

Olá Valery!

Na linha de código, coloco o chart_id da janela "0", ou seja, a janela principal do chart

ou você quer dizer que ainda existe um "-1" após o prefixo? É assim?

Se assim for, eu também tentei - ainda não exclui.

Cumprimentos, Vladimir.

Normalmente uso a impressão ou alertas, após obter uma alça, exibi-la no alerta, e se você puder, o nome do indicador e o índice da janela e identificador do gráfico, após a exclusão, exibir o retorno da função de exclusão no alerta. O primeiro zero é o identificador do gráfico e após o prefixo o índice da janela.

int DelObjV=ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1,-1);
Alert ("DelObjV= " DelObjV);
 
Normalmente eu limpo o cabo e a parte de cálculo no OnDeinit e tudo é excluído. O objeto não é um indicador.
   IndicatorRelease(h_zz);
   ArrayFree(zz_buf);

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

"Remover um indicador de um gráfico não significa que a parte de cálculo do indicador também será removida da memória do terminal. Para soltar o cabo indicador, use a função 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 passo pela impressão ou alertas, depois de receber um aperto de mão, o envio para o alerta, e se você puder nomear o indicador e o índice da janela e o identificador do gráfico, depois da saída de exclusão o retorno da função de exclusão para o alerta. O primeiro zero é o identificador do gráfico e após o prefixo o índice da janela.

Eliminar o indicador do gráfico usando o


GráficoIndicadorDelete(

long chart_id, // identificador do gráfico

int sub_janela // número da subjanela

const string indicator_shortname // nome do indicador curto

);