Se esse indicador não funcionar para você. E o MetaEditor de seu terminal de negociação mostrar essas mensagens de erro ao compilar um arquivo com esse indicador (pode ser, por exemplo, ao compilá-lo para a 1150ª versão do MetaTrader5):
Para compilar e executar esse indicador:
1. Copie essa função e adicione-a ao final do código do indicador:
//+------------------------------------------------------------------+ //| Exclusão de objetos por prefixo comum em nomes de objetos //||(e tipo de objeto, se necessário):| //| 2014 (última modificação: 14.07.2015), Dina Paches | //| https://login.mql5.com/ru/users/dipach | //+------------------------------------------------------------------+ //| string prefix_obj = prefixo comum em nomes de objetos //| long chart_ID = identificador do gráfico //| int sub_window=-1 = índice da janela| //| int type=-1 = tipo de objeto (ou em vez de int - tipo de objeto por | //| enumeração ENUM_OBJECT)| //| int start_pos=-1 = posição inicial da substring do prefixo comum em | //| o nome dos objetos| //+------------------------------------------------------------------+ void ObDeleteN(string prefix_obj,int chart_ID=0,int sub_window=-1, int type=-1,int start_pos=0) { int quantObj=ObjectsTotal(chart_ID,sub_window,type); if(quantObj>0) { int count=0; int prefixLen=StringLen(prefix_obj); string name[]; ArrayResize(name,quantObj,quantObj+1); ArraySetAsSeries(name,true); for(int i=quantObj;i>=0;i--) { string objNameX=ObjectName(chart_ID,i,sub_window,type); string findValue=StringSubstr(objNameX,start_pos,prefixLen); if(StringCompare(findValue,prefix_obj,true)==0) { count=count+1; name[count-1]=objNameX; } } if(count>0) { ArrayResize(name,count,count+1); for(int i=count-1;i>=0; i--) { ObjectDelete(chart_ID,name[i]); } } } else return; } //+------------------------------------------------------------------+
2. Coloque uma barra dupla "//" logo antes dessa linha nas seções OnDeinit() e OnChartEvent() do código:
ObjectsDeleteAll(0,prefixObj,0,-1);
3. Copie e coloque essa linha no código do indicador (coloque-a sob a linha acima e, como a linha acima ocorre duas vezes no código, você deve colocar essa linha em dois lugares):
ObDeleteN(prefixObj,0,0);
4. Como resultado, as seções de código com a variante de função que não funciona, por exemplo, na compilação 1150, terão a seguinte aparência no código:
//ObjectsDeleteAll(0,prefixObj,0,-1); ObDeleteN(prefixObj,0,0);
5. Depois disso, compile o código. As mensagens de erro desaparecerão e o indicador estará pronto para funcionar nos gráficos do build 1150 do MetaTrader5.
P./S.: Se tiver alguma dúvida, escreva aqui na discussão ou em uma mensagem privada.
Ugh... é como se uma pedra tivesse caído de minha alma. "Aquele que procura sempre encontra" (c) funcionou, felizmente, desta vez.
Afinal, encontrei os protótipos da variante de função acima.
E agora posso dizer muito obrigado pelo esquema detalhado a Kovalyov, o autor do livro-texto, Artyom e o desconhecido para mim pelo nome 7777877.
P./S.: Ao mesmo tempo, enquanto analisava os protótipos dessa função para mim mesmo, entendendo seu significado e conduzindo experimentos, consegui não salvar (não de propósito!) suas fontes do MQL4, com base nas quais foi eventualmente compilado e usado em diferentes formas para meus códigos em MQL4 e MQL5. Eu não publiquei o código dessa função (ou de suas outras variantes) publicamente ou abertamente antes.
Lembro-me de que, por infelizes coincidências, me deparei com trabalhos no site/pesquisa que não funcionavam (ou que eu pesquisava, como agora percebo, incorretamente), quando minha consciência me lembrou de encontrar fontes. Em particular, lembrando que vi informações sobre o esquema no fórum, não me lembrei do livro didático. Por isso, deixei para "depois".
Portanto, tratando com respeito o trabalho dos outros, tento, se possível, copiar imediatamente as informações, de onde / de quem tirei o quê.
Portanto, estou sinceramente feliz pelo fato de que, sem nenhuma dica ou lembrete externo, encontrei as fontes primárias-protótipos dessa função para mim mesmo.
Por favor, publique o código do indicador com as alterações feitas, pois é uma floresta escura para mim, mas preciso muito dele! Não consigo obtê-lo sozinho. Se não for difícil, o arquivo compilado para o mt5!!!!
A versão do indicador no Kodobase foi alterada para a versão 1.01, com as alterações já feitas, e agora está disponível para download diretamente na página desse indicador.
Enquanto pensava em substituir o código, consegui excluir minha explicação sobre isso:
A função ObjectsDeleteAll(), que foi substituída por outra na versão 1.01, para excluir objetos pelo prefixo do nome, funciona mais rápido, o que contribui para um desempenho mais rápido do código.
Portanto, após a transição oficial da versão 1150 (que foi lançada no momento em que a capacidade da função ObjectsDeleteAll() de excluir objetos pelo prefixo do nome ainda não havia sido corrigida na documentação) para outra versão, será melhor alterar a versão do código do indicador para aquela com o uso de ObjectsDeleteAll():
Atualizei o código desse indicador. Inclusive, depois de detectar e corrigir erros na ativação/desativação da exibição das linhas do indicador no gráfico (havia um problema quando a ativação da exibição das linhas após a desativação não funcionava).
Versão atual: 1.39
Descobri que no código desse indicador para o MT5 (versão 1.39), não adicionei um recálculo adicional de valores em prev_calculated=0, semelhante ao que está no código desse indicador para o MT4. Ou seja, ao trabalhar com a versão 1.39, existe a possibilidade de situações em que valores zero podem aparecer na tabela do indicador em prev_calculated=0.
Desculpe-me.
Agora enviei uma nova versão(1.42) para publicação
Como os moderadores do CodeBase são pessoas ocupadas e a atualização pode não ser publicada em breve, anexarei a versão corrigida aqui por enquanto.
Muito obrigado ao moderador do CodeBase.
Código atualizado esta tarde para a versão 1.42
P./S.: Excluí o arquivo anexado acima.
Ontem foi lançada a atualização para a versão 1.45 (acabei de fazer o login agora)
O principal: substituí a função de remoção de um indicador do gráfico - corrigi o valor de um de seus parâmetros de entrada.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso


ID Lite Info MA:
Os indicador mostra os valores das médias móveis (MA), a diferença entre os valores e a diferença entre as MA.
Autor: Dina Paches