Discussão do artigo "Introdução ao MQL5 (Parte 5): Um Guia para Iniciantes sobre Funções de Array em MQL5"

 

Novo artigo Introdução ao MQL5 (Parte 5): Um Guia para Iniciantes sobre Funções de Array em MQL5 foi publicado:

Explore o mundo dos arrays em MQL5 na Parte 5, projetado para iniciantes absolutos. Simplificando conceitos complexos de codificação, este artigo foca na clareza e inclusão. Junte-se à nossa comunidade de aprendizes, onde perguntas são bem-vindas e conhecimento é compartilhado!

A Parte 5 da nossa série irá apresentá-lo ao fascinante mundo do MQL5, especialmente projetado para novatos completos que buscam uma introdução suave às complexidades das funções de array. Esta seção tem como objetivo desmantelar as concepções errôneas frequentemente associadas às funções de array, garantindo que cada linha de código seja não apenas entendida, mas compreendida minuciosamente. Independentemente da experiência anterior em codificação, acredito sinceramente que todos devem ter a oportunidade de aprender sobre a linguagem MQL5, razão pela qual estou sempre comprometido em criar um ambiente inclusivo. 

Neste artigo, simplicidade e clareza são os temas principais. Quero servir como um canal para pessoas que estão curiosas sobre codificação e o território inexplorado dela. Embora possam ser confusas no início, pretendo guiá-lo através de cada função de array linha por linha para que você tenha uma experiência de aprendizado divertida e educativa. Juntos, desvendaremos os mistérios das funções de array e lhe forneceremos o conhecimento necessário para negociar com sucesso o complexo mundo do trading algorítmico. Este não é apenas um artigo — é um convite para uma incrível jornada de transformação na codificação. 

Mas as coisas não param por aqui. Além do código, esperamos criar uma comunidade onde tanto programadores novatos quanto experientes possam se reunir para trocar ideias, fazer perguntas e promover o trabalho em equipe. Este é um convite para uma aventura de codificação transformadora, não apenas um artigo. Bem-vindo à Parte 5, onde conhecimento e acessibilidade se encontram e todos que codificam são valorizados. Divirta-se com a codificação!

Autor: Israel Pelumi Abioye

 
Obrigado por compartilhar seu conhecimento sobre a diferença entre ArrayGetAsSeries e ArrayIsSeries, que eu venho tentando entender há algum tempo. Gosto de sua abordagem para explicar tópicos complexos de uma forma amigável para iniciantes, com o apoio de analogias... Também estou um pouco confuso sobre a diferença entre ArrayCopy e ArrayInsert. Gostaria que você incluísse isso em seu próximo artigo.
 
Oluwatosin Mary Babalola #:
Obrigado por compartilhar seu conhecimento sobre a diferença entre ArrayGetAsSeries e ArrayIsSeries, que eu venho tentando descobrir há algum tempo. Gosto de sua abordagem para explicar tópicos complexos de uma forma amigável para iniciantes, com o apoio de analogias... Também estou um pouco confuso sobre a diferença entre ArrayCopy e ArrayInsert. Agradeceria se você pudesse incluir isso em seu próximo artigo.
Olá Oluwatosin, sua solicitação foi anotada
 
Oluwatosin Mary Babalola #:
Obrigado por compartilhar seu conhecimento sobre a diferença entre ArrayGetAsSeries e ArrayIsSeries, que eu venho tentando descobrir há algum tempo. Gosto de sua abordagem para explicar tópicos complexos de uma forma amigável para iniciantes, com o apoio de analogias... Também estou um pouco confuso sobre a diferença entre ArrayCopy e ArrayInsert. Agradeceria se você pudesse incluir isso em seu próximo artigo.

Você conhece o livro de programação MQL5? Especificamente, ele aborda as funções de "seriesness" (direção) de array, bem como cópias e inserções - aqui está um trecho:

Ao contrário da função ArrayInsert, a função ArrayCopynão desloca os elementos existentes da matriz receptora, mas grava novos elementos nas posições especificadas sobre os antigos.

Ambas as seções contêm programas de exemplo.

MQL5 Book: Common APIs / Working with arrays / Timeseries indexing direction in arrays
MQL5 Book: Common APIs / Working with arrays / Timeseries indexing direction in arrays
  • www.mql5.com
Common APIs - MQL5 Programming for Traders - MetaTrader 5 algorithmic/automatic trading language manual
 
Oluwatosin Mary Babalola #:
Obrigado por compartilhar seu conhecimento sobre a diferença entre ArrayGetAsSeries e ArrayIsSeries, que eu venho tentando descobrir há algum tempo. Gosto de sua abordagem para explicar tópicos complexos de uma forma amigável para iniciantes, com o apoio de analogias... Também estou um pouco confuso sobre a diferença entre ArrayCopy e ArrayInsert. Gostaria que você incluísse isso em seu próximo artigo.

Diferença entre ArrayInsert e ArrayCopy:

A principal diferença entre "ArrayInsert()" e "ArrayCopy()" é como eles lidam com elementos que já existem. "ArrayCopy()" pode modificar a matriz original substituindo elementos de outra matriz por aqueles em uma determinada posição. Por outro lado, a função "ArrayInsert()" preserva a estrutura e a sequência da matriz, movendo os elementos atuais para abrir espaço para os novos. Essencialmente, "ArrayInsert()" fornece um método versátil para manipular matrizes em MQL5, semelhante a adicionar um novo elemento a uma sequência sem fazer com que nenhuma outra peça se mova. A compreensão dessa distinção permite que você manipule com precisão as operações de matriz em suas atividades de programação.

Observe que, para matrizes estáticas, se o número de elementos a serem inseridos for igual ou superior ao tamanho da matriz, "ArrayInsert()" não adicionará elementos da matriz de origem à matriz de destino. Nessas circunstâncias, a inserção só poderá ser feita se começar no índice 0 da matriz de destino. Nesses casos, a matriz de destino é efetivamente substituída por completo pela matriz de origem.

Analogia

Imagine que você tenha dois conjuntos de blocos de construção (matrizes), cada um com sua disposição exclusiva. Agora, digamos que você queira combinar esses conjuntos sem bagunçar as estruturas existentes. "ArrayInsert()" é como uma ferramenta mágica que permite inserir suavemente novos blocos de um conjunto em um ponto específico do outro conjunto, expandindo a coleção geral.

Agora, comparando "ArrayInsert()" com "ArrayCopy()": Quando você usa "ArrayCopy()", é como se estivesse reorganizando o conjunto original, substituindo alguns blocos por novos blocos de outro conjunto. Por outro lado, "ArrayInsert()" é mais delicado. Ele garante que a ordem existente permaneça intacta, deslocando os blocos para abrir espaço para os recém-chegados. É como ter um assistente meticuloso que sabe exatamente onde colocar cada bloco, mantendo o design original do conjunto.

Para conjuntos estáticos (matrizes), há uma regra importante. Se o número de novos blocos for muito grande para o conjunto, "ArrayInsert()" não os forçará a entrar. Entretanto, iniciar o processo de inserção desde o início do conjunto (índice 0) pode efetivamente substituir todo o conjunto pelos novos blocos.