![Avaliação visual de resultados de otimização](https://c.mql5.com/2/49/visual_evaluation_of_optimization_results_600x314.jpg)
Avaliação visual de resultados de otimização
Neste artigo discutiremos como plotar todas passagens das otimizações e como selecionar o critério ótimo personalizado. Além disso, falaremos sobre como programarmos o que quisermos, simplesmente recorrendo a um conhecimento mínimo em MQL5, a uma grande vontade, ao uso dos artigos do site e aos comentários do fórum.
![Indicadores múltiplos em um gráfico (Parte 06): Transformando o MetaTrader 5 em um sistema RAD (II)](https://c.mql5.com/2/49/Multiple-indicators-on-one-chart-mPart-06d-Turning-MetaTrader-5-into-a-RAD-system-2IIi_600x314.jpg)
Indicadores múltiplos em um gráfico (Parte 06): Transformando o MetaTrader 5 em um sistema RAD (II)
No artigo anterior mostrei como criar um Chart Trade usando os objetos do MetaTrader 5, transformando a plataforma em um sistema RAD, o sistema funciona muito bem, e acredito que muitos tenham pensado em criar uma biblioteca para ter cada vez mais funcionalidade no sistema proposto, e assim conseguir desenvolver um EA que seja mais intuitivo ao mesmo tempo que tenha uma interface mais agradável e simples de usar.
![Indicadores múltiplos em um gráfico (Parte 05): Transformando o MetaTrader 5 em um sistema RAD (I)](https://c.mql5.com/2/49/Multiple-indicators-on-one-chart-9Part-05a-Turning-MetaTrader-5-into-a-RAD-system-yI6_600x314.jpg)
Indicadores múltiplos em um gráfico (Parte 05): Transformando o MetaTrader 5 em um sistema RAD (I)
Muita gente não sabe de fato como programar, mas são bem criativas, tendo excelentes ideias, mas a falta de conhecimento ou entendimento sobre programação as proíbe de fazer algumas coisas. Aprenda com criar um Chart Trade, mas usando a própria plataforma MT5, como se fosse uma IDE.
![Gráficos na biblioteca DoEasy (Parte 91): eventos de objetos gráficos padrão no programa Histórico de alterações de nome do objeto](https://c.mql5.com/2/44/MQL5-avatar-doeasy-library3-2__3.png)
![Gráficos na biblioteca DoEasy (Parte 91): eventos de objetos gráficos padrão no programa Histórico de alterações de nome do objeto](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 91): eventos de objetos gráficos padrão no programa Histórico de alterações de nome do objeto
No artigo, modificaremos a funcionalidade básica para fornecer controle de eventos de objetos gráficos a partir de um programa baseado na biblioteca. Vamos começar criando uma funcionalidade para armazenar o histórico de alterações das propriedades dos objetos gráficos usando a propriedade "Nome do objeto" como exemplo.
![Gráficos na biblioteca DoEasy (Parte 90): eventos de objetos gráficos padrão Funcionalidade básica](https://c.mql5.com/2/44/MQL5-avatar-doeasy-library3-2__2.png)
![Gráficos na biblioteca DoEasy (Parte 90): eventos de objetos gráficos padrão Funcionalidade básica](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 90): eventos de objetos gráficos padrão Funcionalidade básica
No artigo de hoje criaremos a funcionalidade base para rastrear eventos de eventos de objetos gráficos padrão. Vamos começar com o clique duplo do mouse sobre o objeto gráfico.
![Matrizes e vetores em MQL5](https://c.mql5.com/2/49/matrix_vectors_mql5_600x314.jpg)
Matrizes e vetores em MQL5
Os tipos de dados especiais matrix e vector permitem escrever um código que se aproxima da notação matemática. Isto poupa o trabalho de criar laços aninhados e de lembrar de indexar corretamente as matrizes que estão envolvidas no cálculo. Isto aumenta a confiabilidade e a velocidade de desenvolvimento de programas complexos.
![Usando o AutoIt com MQL5](https://c.mql5.com/2/49/autoit_mql5_600x314.jpg)
Usando o AutoIt com MQL5
Este artigo descreve como criar scripts para o terminal MetraTrader 5, integrando MQL5 com AutoIt. Vou mostrar como automatizar várias tarefas usando a interface do usuário do terminal e apresentar uma classe que usa a biblioteca AutoItX.
![Melhorando o reconhecimento de padrões de velas por meio de velas Doji](https://c.mql5.com/2/44/doji.png)
![Melhorando o reconhecimento de padrões de velas por meio de velas Doji](https://c.mql5.com/i/articles/overlay.png)
Melhorando o reconhecimento de padrões de velas por meio de velas Doji
Como encontrar padrões de velas com mais frequência do que o habitual. Por trás da simplicidade dos padrões de velas, há também uma séria desvantagem que pode ser evitada usando os abundantes recursos das modernas ferramentas de automação de negociação.
![Indicadores múltiplos em um gráfico (Parte 03): Desenvolvendo definições para usuários](https://c.mql5.com/2/49/Multiple-indicators-on-one-chart-bPart-03n-Developing-definitions-for-users_600x314.jpg)
Indicadores múltiplos em um gráfico (Parte 03): Desenvolvendo definições para usuários
Primeira atualização nas funcionalidades no sistema indicador. No artigo anterior Indicadores múltiplos em um gráfico eu expliquei o código base para poder usar mais de um indicador dentro de uma sub janela, mas aquilo que foi apresentado foi apenas a base inicial de um sistema muito maior.
![Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA](https://c.mql5.com/2/49/Multiple-indicators-on-one-chart-lPart-04j-Advancing-to-an-Expert-Advisor_600x314.jpg)
Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA
Em artigos anteriores, eu expliquei como criar um indicador com múltiplas sub janela, mas apesar de ser interessante de se fazer, quando usamos um indicador personalizado. Aqui vamos entender como adicionar múltiplas janelas em um EA.
![Stop-loss fixo com base na ação do preço e RSI (stop-loss "inteligente")](https://c.mql5.com/2/49/smart_stop_loss_600x314.jpg)
Stop-loss fixo com base na ação do preço e RSI (stop-loss "inteligente")
O Stop-loss é a principal ferramenta de gerenciamento de dinheiro na negociação. O uso eficaz do stop-loss, take-profit e tamanho do lote pode tornar a negociação mais consistente e, em geral, mais lucrativa. No entanto, fazer uso disto tem suas próprias dificuldades. A principal delas é a caça ao stop-loss. Neste artigo analisaremos como minimizar o efeito da caça ao stop-loss e compararemos isto com o uso clássico de stop loss para determinar lucratividade.
![Combinatória e teoria da probabilidade para negociação (Parte V): análise de curva](https://c.mql5.com/2/49/Combinatorics_probability-for-trading_05_600x314.jpg)
Combinatória e teoria da probabilidade para negociação (Parte V): análise de curva
Neste artigo, explorei as possibilidades de reduzir amostras multiestado complexas a amostras simples de estado duplo. O objetivo principal é obter uma análise e umas conclusões que possam ajudar no desenvolvimento de algoritmos de negociação escaláveis baseados na teoria da probabilidade. Naturalmente, a matemática também está envolvida, mas dada a experiência de artigos anteriores, vejo que informações mais gerais são muito mais úteis do que detalhes.
![Desenvolvimento de robôs de negociação usando programação visual](https://c.mql5.com/2/43/avatar.png)
![Desenvolvimento de robôs de negociação usando programação visual](https://c.mql5.com/i/articles/overlay.png)
Desenvolvimento de robôs de negociação usando programação visual
Este artigo demonstra as capacidades do editor botbrains.app, uma plataforma no-code para o desenvolvimento de robôs de negociação. Para criar um robô de negociação você não precisa programar, basta arrastar os blocos necessários para o esquema, definir seus parâmetros e estabelecer as ligações entre eles.
![Combinatória e teoria da probabilidade para negociação (Parte IV): lógica de Bernoulli](https://c.mql5.com/2/44/ieu9.png)
![Combinatória e teoria da probabilidade para negociação (Parte IV): lógica de Bernoulli](https://c.mql5.com/i/articles/overlay.png)
Combinatória e teoria da probabilidade para negociação (Parte IV): lógica de Bernoulli
Neste artigo decidi destacar o conhecido esquema Bernoulli e mostrar como este pode ser usado ao descrever uma matriz de dados relacionados ao trading, para uso posterior no caminho à criação de um sistema de negociação auto-adaptável. Também manusearemos um algoritmo mais geral, nomeadamente a fórmula de Bernoulli e encontraremos sua aplicação.
![Indicadores múltiplos em um gráfico (Parte 02): Primeiros experimentos](https://c.mql5.com/2/49/Multiple-indicators-on-one-chart-6Part-027-First-experiments_600x314.jpg)
Indicadores múltiplos em um gráfico (Parte 02): Primeiros experimentos
No artigo anterior, múltiplos indicadores em um gráfico , apresentei os conceitos e bases para você usar múltiplos indicadores em um gráfico. Aqui irei apresentar e dissecar o código fonte.
![Modelo de regressão universal para previsão de preços do mercado (Parte 2): funções de processos transitórios naturais, sociais e de origem tecnológica](https://c.mql5.com/2/43/universal_regression__1.png)
![Modelo de regressão universal para previsão de preços do mercado (Parte 2): funções de processos transitórios naturais, sociais e de origem tecnológica](https://c.mql5.com/i/articles/overlay.png)
Modelo de regressão universal para previsão de preços do mercado (Parte 2): funções de processos transitórios naturais, sociais e de origem tecnológica
Este artigo é uma continuação lógica do anterior e é escrito para destacar suas conclusões ao longo da década seguinte à sua publicação, no que diz respeito às três funções de processos dinâmicos transitórios que descrevem os padrões de mudança de preços de mercado.
![Como se tornar um bom programador (Parte 7): como se tornar um desenvolvedor freelancer de sucesso](https://c.mql5.com/2/43/How-to-Become-a-Freelancer-in-the-Hospitality-Industry.png)
![Como se tornar um bom programador (Parte 7): como se tornar um desenvolvedor freelancer de sucesso](https://c.mql5.com/i/articles/overlay.png)
Como se tornar um bom programador (Parte 7): como se tornar um desenvolvedor freelancer de sucesso
Quer se tornar um desenvolvedor de sucesso no Freelance da MQL5.Community? Então recomendo a leitura das dicas deste artigo.
![Indicadores múltiplos em um gráfico (Parte 01): Entendendo os conceitos](https://c.mql5.com/2/49/Multiple-indicators-on-one-chart-oPart-013-Understanding-the-concepts_600x314.jpg)
Indicadores múltiplos em um gráfico (Parte 01): Entendendo os conceitos
Entenda como é possível adicionar vários indicadores ao mesmo tempo sem ocupar muda área do seu gráfico. Muita gente gosta e se sente mais segura operando quando observa diversos indicadores ao mesmo tempo, por exemplo RSI, ESTOCÁSTICO, MACD, ADX entre outros, e em alguns casos até mesmo ativos distintos que compõem um determinado índice.
![Gráficos na biblioteca DoEasy (Parte 89): programando objetos gráficos padrão Funcionalidade básica](https://c.mql5.com/2/44/MQL5-avatar-doeasy-library3-2__1.png)
![Gráficos na biblioteca DoEasy (Parte 89): programando objetos gráficos padrão Funcionalidade básica](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 89): programando objetos gráficos padrão Funcionalidade básica
Agora nossa biblioteca pode rastrear a remoção, modificação de parâmetros e o surgimento de objetos gráficos padrão no gráfico do terminal do cliente. Mas para ter um "jogo" completo, certamente nos falta a capacidade de criar objetos gráficos padrão a partir de nossos programas.
![Deixando o gráfico mais interessante — Adicionando uma tela de fundo](https://c.mql5.com/2/49/Making-charts-more-interesting-Adding-a-background_600x314.jpg)
Deixando o gráfico mais interessante — Adicionando uma tela de fundo
Muitas estações de trabalho contém alguma imagem representativa e que mostra algo sobre o usuário, estas imagens deixam o ambiente de trabalho mais bonito e animador,. Aprenda como deixar o gráfico mais interessante colocando um papel de parede nele.
![Construindo uma rede neural profunda do zero em linguagem MQL](https://c.mql5.com/2/49/Programming-a-Deep-Neural-Network-from-Scratch-using-MQL-Language_600x314.jpg)
Construindo uma rede neural profunda do zero em linguagem MQL
Neste artigo, vou apresentar a vocês uma rede neural profunda implementada em linguagem MQL com suas diferentes funções de ativação, entre elas estão a função tangente hiperbólica para as camadas ocultas e a função Softmax para a camada de saída. Avançaremos do primeiro passo até o final para formar completamente a rede neural profunda.
![Trabalhando com o tempo (Parte 2): funções](https://c.mql5.com/2/49/Dealing-with-Time-bPart-2g-The-Functions_600x314.jpg)
Trabalhando com o tempo (Parte 2): funções
Vamos aprender a reconhecer automaticamente as diferenças de tempo junto à corretora, bem como o Tempo Médio de Greenwich. Em vez de preguntar à corretora, que provavelmente dará uma resposta imprecisa (e quem quer explicar onde está o horário de negociação?), seremos nós mesmos a ver a que horas ela recebe as cotações nas semanas em que os fusos horários são trocados. Mas é claro que não vamos fazer isso manualmente, deixaremos o software fazer o trabalho por nós.
![Como se tornar um bom programador (Parte 6): 9 hábitos para desenvolver de maneira produtiva](https://c.mql5.com/2/43/coding_pro.png)
![Como se tornar um bom programador (Parte 6): 9 hábitos para desenvolver de maneira produtiva](https://c.mql5.com/i/articles/overlay.png)
Como se tornar um bom programador (Parte 6): 9 hábitos para desenvolver de maneira produtiva
O resultado final do projeto não tem a ver apenas com a escrita de código. A minha experiência me ensinou a identificar certos hábitos que ajudam a melhorar a produtividade na hora de desenvolver. Mais tarde, falaremos sobre alguns deles neste artigo. Este artigo é uma leitura obrigatória destinada a todos que desejam melhorar suas habilidades na escrita de algoritmos complexos.
![Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte III). Otimização e novas ferramentas](https://c.mql5.com/2/49/9914_manual_charting_trading_toolkit_003_600x314.jpg)
Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte III). Otimização e novas ferramentas
Desenvolveremos o tema do desenho de objetos gráficos em gráficos usando atalhos de teclado. Foram acrescentadas novas ferramentas à biblioteca, em particular uma linha reta, que atravessa máximos arbitrários, e um conjunto de retângulos que permitem estimar tanto o nível quanto o tempo de reversão. Também veremos a possibilidade de otimizar o código para melhorar o desempenho. O exemplo de implementação será reescrito como um indicador, o que tornará possível definir Shortcuts junto com outros programas de negociação. O nível de proficiência do código está um pouco acima do nível de iniciante.
![Receitas MQL5: Calendário Econômico](https://c.mql5.com/2/51/mql5-recepies-nalendar_600x314.jpg)
Receitas MQL5: Calendário Econômico
Este artigo se trata das funcionalidades programáticas usadas ao trabalhar usando o calendário econômico. Para implementá-las, criaremos uma classe para facilitar o acesso às propriedades do calendário e receber valores de eventos. Como exemplo prático, programaremos um indicador que utiliza dados da CFTC sobre as posições líquidas de especuladores.
![Quase-construtor para criar um Expert Advisor](https://c.mql5.com/2/49/An-attempt-at-developing-an-EA-constructor_600x314.jpg)
Quase-construtor para criar um Expert Advisor
Disponibilizo meu próprio conjunto de funções de negociação na forma de um Expert Advisor pronto para uso. O método agora proposto permite gerar diversas estratégias de negociação simplesmente adicionando indicadores e mudando os parâmetros de entrada.
![Trabalhando com o tempo (Parte 1): princípios básicos](https://c.mql5.com/2/49/Dealing-with-Time-hPart-1q-The-Basics_600x314.jpg)
Trabalhando com o tempo (Parte 1): princípios básicos
As funções e o código discutidos no artigo o ajudarão a entender melhor os princípios de processamento de tempo, de mudança de horário da corretora e de horário de verão ou de inverno. O uso adequado do tempo é um aspecto muito importante do trading. Este nos permite saber, por exemplo, se a Bolsa de Londres ou Nova Iorque já abriu ou ainda não ou a que horas começa/termina o pregão no mercado de moedas.
![Gráficos na biblioteca DoEasy (Parte 88): coleção de objetos gráficos, matriz dinâmica bidimensional para armazenar propriedades de objetos que mudam dinamicamente](https://c.mql5.com/2/44/MQL5-avatar-doeasy-library3-2.png)
![Gráficos na biblioteca DoEasy (Parte 88): coleção de objetos gráficos, matriz dinâmica bidimensional para armazenar propriedades de objetos que mudam dinamicamente](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 88): coleção de objetos gráficos, matriz dinâmica bidimensional para armazenar propriedades de objetos que mudam dinamicamente
Neste artigo, criaremos uma classe de matriz multidimensional dinâmica com a capacidade de alterar a quantidade de dados em qualquer dimensão. Com base na classe criada, criaremos uma matriz dinâmica bidimensional para armazenar algumas propriedades alteradas dinamicamente de objetos gráficos.
![Gráficos na biblioteca DoEasy (Parte 87): coleção de objetos gráficos, controlamos a modificação de propriedades de objetos em todos os gráficos abertos](https://c.mql5.com/2/43/MQL5-avatar-doeasy-library3-2__6.png)
![Gráficos na biblioteca DoEasy (Parte 87): coleção de objetos gráficos, controlamos a modificação de propriedades de objetos em todos os gráficos abertos](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 87): coleção de objetos gráficos, controlamos a modificação de propriedades de objetos em todos os gráficos abertos
No artigo, continuaremos a trabalhar no rastreamento dos eventos de objetos gráficos padrão e na criação de funcionalidades que permitem controlar as alterações nas propriedades dos objetos gráficos localizados em qualquer gráfico aberto no terminal.
![Desenvolvendo um EA de negociação do zero](https://c.mql5.com/2/44/Robozinho.png)
![Desenvolvendo um EA de negociação do zero](https://c.mql5.com/i/articles/overlay.png)
Desenvolvendo um EA de negociação do zero
Entenda como se dá o desenvolvimento de um EA para negociação programando o mínimo possível.
![Gráficos na biblioteca DoEasy (Parte 86): coleção de objetos gráficos, controlamos a modificação de propriedades](https://c.mql5.com/2/43/MQL5-avatar-doeasy-library3-2__5.png)
![Gráficos na biblioteca DoEasy (Parte 86): coleção de objetos gráficos, controlamos a modificação de propriedades](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 86): coleção de objetos gráficos, controlamos a modificação de propriedades
Este artigo analisa o rastreamento de modificações nos valores de propriedades, remoção e renomeação de objetos gráficos dentro da biblioteca.
![Use canais e bate-papos em grupo da MQL5.community](https://c.mql5.com/2/43/chats.png)
![Use canais e bate-papos em grupo da MQL5.community](https://c.mql5.com/i/articles/overlay.png)
Use canais e bate-papos em grupo da MQL5.community
O site MQL5.com reúne traders de todo o mundo que publicam artigos, códigos e produtos gratuitos no Mercado, desenvolvem projetos para outros usuários no serviço Freelance e copiam sinais de negociação. Você pode se comunicar com eles no fórum, nos bate-papos para traders e nos canais MetaTrader.
![Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação](https://c.mql5.com/2/43/speed__1.png)
![Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação](https://c.mql5.com/i/articles/overlay.png)
Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação
Suponho que todo desenvolvedor quer escrever código mais rapidamente. Porém, a habilidade de escrever código de forma rápida e produtiva não é uma característica inata que apenas uns poucos trazem consigo. Trata-se de uma habilidade que qualquer programador pode desenvolver e que será o tópico deste artigo.
![Gráficos na biblioteca DoEasy (Parte 85): coleção de objetos gráficos, adicionamos recém-criados](https://c.mql5.com/2/43/MQL5-avatar-doeasy-library3-2__4.png)
![Gráficos na biblioteca DoEasy (Parte 85): coleção de objetos gráficos, adicionamos recém-criados](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 85): coleção de objetos gráficos, adicionamos recém-criados
Neste artigo, finalizaremos a criação das classes herdeiras da classe abstrata do objeto gráfico e iniciaremos a implementação do armazenamento desses objetos na classe-coleção. Em particular, criaremos a funcionalidade para adicionar à classe-coleção objetos gráficos padrão recém-criados.
![Gráficos na biblioteca DoEasy (Parte 84): classes herdeiras do objeto gráfico abstrato padrão](https://c.mql5.com/2/43/MQL5-avatar-doeasy-library3-2__3.png)
![Gráficos na biblioteca DoEasy (Parte 84): classes herdeiras do objeto gráfico abstrato padrão](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 84): classes herdeiras do objeto gráfico abstrato padrão
Neste artigo, veremos como se criam classes herdeiras do objeto gráfico abstrato padrão do terminal. O objeto deste tipo de classe descreve propriedades comuns a todos os objetos gráficos, isto é, ele é apenas um tipo de objeto gráfico. Para entender se pertence a um objeto gráfico real, precisamos gerar herança a partir dele, já na classe do objeto herdeiro precisamos escrever as propriedades que são específicas do objeto gráfico em particular.
![Explorando as possibilidades de criar gráficos de velas multicoloridas](https://c.mql5.com/2/49/Exploring-options-for-creating-multicolored-candlesticks_600x314.jpg)
Explorando as possibilidades de criar gráficos de velas multicoloridas
Neste artigo, veremos as possibilidades de criação de indicadores de velas personalizados, e falaremos sobre suas vantagens e desvantagens.
![Analisando o spread para preços de Bid e Ask no MetaTrader 5](https://c.mql5.com/2/49/Bid_Ask_spread_analysis_in_MetaTrader-5_600x314.jpg)
Analisando o spread para preços de Bid e Ask no MetaTrader 5
Neste artigo falo de uma ferramenta capaz de ver os spreads, isto é, as diferenças entre os valores Bid e Ask da sua corretora. Os dados de ticks presentes no MetaTrader 5 possibilitam analisar quais valores históricos de spreads existiam de fato entre os valores Bid e Ask. Contudo, não há razão para procurar o valor atual do spread, pois ele pode ser obtido por meio da visualização das linhas Bid e Ask.
![Gráficos na biblioteca DoEasy (Parte 83): classe abstrata de objetos gráficos padrão](https://c.mql5.com/2/43/MQL5-avatar-doeasy-library3-2__2.png)
![Gráficos na biblioteca DoEasy (Parte 83): classe abstrata de objetos gráficos padrão](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 83): classe abstrata de objetos gráficos padrão
Neste artigo, criaremos uma classe para um objeto gráfico abstrato. Este objeto será a base para a criação de classes de objetos gráficos padrão. Os objetos gráficos têm muitas propriedades, e hoje, antes de criarmos uma classe de objetos gráficos abstratos, precisamos realizar um intenso trabalho preliminar, especificando ditas propriedades nas enumerações da biblioteca.
![Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação](https://c.mql5.com/2/43/speed.png)
![Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação](https://c.mql5.com/i/articles/overlay.png)
Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação
Suponho que todo desenvolvedor quer escrever código mais rapidamente. Porém, a habilidade de escrever código de forma rápida e produtiva não é uma característica inata que apenas uns poucos trazem consigo. Trata-se de uma habilidade que qualquer programador pode desenvolver, independentemente da experiência prévia ou da quantidade de texto digitado com o teclado.
![Gráficos na biblioteca DoEasy (Parte 82): refatoração dos objetos da biblioteca e da coleção de objetos gráficos](https://c.mql5.com/2/43/MQL5-avatar-doeasy-library3-2__1.png)
![Gráficos na biblioteca DoEasy (Parte 82): refatoração dos objetos da biblioteca e da coleção de objetos gráficos](https://c.mql5.com/i/articles/overlay.png)
Gráficos na biblioteca DoEasy (Parte 82): refatoração dos objetos da biblioteca e da coleção de objetos gráficos
Neste artigo modificaremos todos os objetos da biblioteca. Para isso, atribuiremos um tipo único a cada objeto e continuaremos desenvolvendo a classe-coleção de objetos gráficos da biblioteca.