English Русский 中文 Español Deutsch 日本語
preview
Introdução ao MQL5 (Parte 2): Variáveis pré-definidas, funções gerais e operadores de fluxo de controle

Introdução ao MQL5 (Parte 2): Variáveis pré-definidas, funções gerais e operadores de fluxo de controle

MetaTrader 5Exemplos | 19 junho 2024, 14:05
204 0
Israel Pelumi Abioye
Israel Pelumi Abioye

Introdução

Este é o segundo artigo da série destinada aos iniciantes. Na primeira parte, discutimos os fundamentos da negociação algorítmica e os conceitos básicos do MQL5. Na segunda parte desta série, vamos explorar mais detalhadamente algumas dessas ideias, avançando gradualmente do simples ao complexo, para que tudo fique claro mesmo para aqueles que estão dando os primeiros passos na programação. Se algo parecer complicado ou confuso, deixe seus comentários e faça perguntas. Vamos garantir que todas as vozes e opiniões sejam ouvidas.

O público-alvo principal desses artigos é os programadores iniciantes. Portanto, vamos juntos desvendar todas as nuances das bases do MQL5, garantindo que todas as explicações sejam acessíveis e compreensíveis para todos. Além disso, espero que esses materiais incentivem um estudo mais aprofundado e uma imersão na programação em MQL5. No entanto, é importante entender que apenas ler esses artigos não será suficiente, pois a programação é prática.

Hoje, vamos estudar variáveis pré-definidas, funções gerais, operadores de fluxo de controle, operações aritméticas e lógicas, e operações de comparação. À medida que avançamos na compreensão desses conceitos, abordaremos o tema principal: a criação de EAs, a força motriz do trading automatizado. Você aprenderá a dar vida às suas estratégias de negociação, permitindo que programas automáticos tomem decisões em seu nome. 

E, claro, de que vale uma estratégia se não for testada? Portanto, também conheceremos o testador de estratégias, que permite avaliar a confiabilidade dos algoritmos com dados históricos. Aqui, a teoria encontra a realidade, e certamente chegaremos a esse aspecto crucial do trading algorítmico. Então, prepare-se para mergulhar em novos conteúdos sobre a linguagem MQL5. E lembre-se, você não está apenas aprendendo a programar; está adquirindo a capacidade de levar sua negociação a um novo patamar com a ajuda de algoritmos.

Neste artigo, examinaremos os seguintes tópicos:

  • Variáveis pré-definidas
  • Funções gerais
  • Operações aritméticas e lógicas, operações de comparação
  • Operadores de fluxo de controle

Antes de nos aprofundarmos nos detalhes da segunda parte, sugiro que assista a um vídeo em que descrevo brevemente os conceitos-chave discutidos no primeiro artigo. Este vídeo ajudará a refrescar sua memória e nos alinhará, antes de seguirmos para os tópicos mais complexos do MQL5. Então, vamos relembrar o que já vimos.




1. Variáveis pré-definidas

O que são variáveis pré-definidas?

Em programação, as variáveis são como recipientes que armazenam informações. As variáveis pré-definidas, como o nome sugere, são recipientes especiais que já vêm definidos pela própria linguagem de programação. Esses recipientes contêm informações específicas sobre o estado atual do programa, do ambiente de negociação ou das condições do mercado.

Por que são chamadas de pré-definidas?

Porque a linguagem de programação (neste caso, MQL5) já as definiu com valores específicos. Você não precisa criar ou declarar essas variáveis; elas já estão prontas para uso a qualquer momento. Quando um programa MQL5 (como um Expert Advisor, script ou indicador personalizado) é executado, um conjunto especial de variáveis pré-definidas é iniciado. Elas já contêm informações sobre o estado do mercado naquele momento, como preços, instrumentos e tempo. Elas fornecem uma visão instantânea das condições de mercado no início da execução do programa, oferecendo os dados necessários para a tomada de decisões dentro do programa.

Analogia

Podemos imaginar as variáveis pré-definidas como gavetas em uma oficina. Cada uma tem uma função específica e o mestre as nomeia para facilitar a compreensão do que cada gaveta faz. Imagine que existe uma gaveta chamada "_Symbol". Ela sabe os nomes dos símbolos financeiros (EURUSD, GBPUSD).

A gaveta "_Period" conhece os períodos de tempo (timeframes), como relógios especiais. Essas gavetas são pré-definidas porque já possuem as capacidades necessárias antes mesmo de você começar a trabalhar. E quando precisar dessas informações durante o desenvolvimento do programa, pode usar esses campos pré-definidos para obter rapidamente as informações necessárias.

Isso economiza tempo, pois não é preciso criar tudo do zero. Esse conjunto pronto de ferramentas acelera o desenvolvimento do programa, já que grande parte do trabalho básico já está feito.

1.1. Exemplos de variáveis pré-definidas no MQL5

1.1.1. _Symbol

Na programação relacionada ao trading nos mercados financeiros, a variável _Symbol permite que o programa saiba exatamente com qual instrumento financeiro está lidando. O símbolo de negociação é uma das variáveis principais em nossos programas. Exemplos de símbolos de negociação incluem EURUSD, GBPJPY, entre outros. A variável _Symbol indica ao nosso programa com qual símbolo ele está lidando, e não precisamos mencioná-lo manualmente toda vez que o programa encontra esses dados.

É importante notar que o programa encontra esses dados com bastante frequência, pois todas as decisões de negociação são tomadas pelo programa para um símbolo específico, indicado pela variável _Symbol. Portanto, podemos dizer que a variável pré-definida _Symbol é fundamental para o funcionamento de qualquer programa. Sempre utilize-a para criar um código inteligente e flexível, capaz de navegar facilmente no mundo dinâmico dos símbolos de negociação.

Exemplo:

void OnStart()
  {

   Alert(_Symbol);

  }

Neste exemplo, a função Alert usa a variável pré-definida _Symbol para obter o símbolo de negociação atual e exibir um alerta no gráfico. Ao executar este código na plataforma MetaTrader, ele mostrará o símbolo de negociação atual.

1.1.2. _Period

A variável pré-definida _Period no MQL5 fornece informações sobre o timeframe ou período do gráfico atualmente em consideração. Ela serve como uma referência incorporada ao timeframe em que o algoritmo de negociação está operando.

Exemplo:

void OnStart()
  {

// a sample Script that prints the current timeframe to the user
   Print(_Period);

  }

Assim como _Symbol, _Period contribui para a adaptabilidade dos algoritmos de negociação, permitindo que eles reajam especificamente ao timeframe no qual estão sendo aplicados. É como um relógio que, a qualquer momento, informa ao programa em qual intervalo de tempo ele está operando.

Então, temos _Symbol para indicar o símbolo de negociação e _Period para indicar o timeframe negociado ou analisado. Mas essas não são as únicas variáveis principais. Existem outras que são muito úteis no desenvolvimento do código.

1.1.3. _Digits

No contexto do MQL5, a variável pré-definida _Digits fornece informações práticas sobre o número de casas decimais no preço do instrumento de negociação atual. Esse pequeno detalhe é de grande importância quando falamos de pontos e pips no trading de moedas. Um pip, ou "ponto percentual", representa o menor movimento de preço na cotação de um par de moedas. O número de casas decimais afeta a precisão da avaliação do movimento do preço. A variável _Digits permite que os traders acessem rapidamente essa informação.

Saber o valor exato do número de casas decimais do preço do instrumento influencia a precisão de todos os cálculos. Por exemplo, se o valor de _Digits for 4, isso significa uma precisão de até quatro casas decimais, o que é típico para muitos pares de moedas.

Exemplo:

void OnStart()
  {

// Use the "_Digits" predefined variable to get the number of decimal places
   int decimalPlaces = _Digits;
// Print the result to the console
   Print("Number of Decimal Places: ", decimalPlaces, " (Each movement is a pip!)")

  }

1.1.4. _Point

Outra variável pré-definida importante no MQL5, aplicada ao trading, é a _Point. Ela fornece uma noção do menor movimento de preço do instrumento de negociação atual. Essencialmente, isso representa a menor variação mensurável no preço — o ponto. As mudanças de preço do instrumento são medidas em pontos. O valor da variável _Point varia para diferentes instrumentos financeiros e oferece aos traders uma compreensão precisa de quanto o preço pode mudar a cada movimento. Conhecer os pontos, por exemplo, é crucial para configurar os níveis de stop-loss e take-profit nos programas. Este é apenas um exemplo para esclarecer o conceito. Veremos mais usos posteriormente.

Exemplo:

void OnStart()
  {

// setting sl by subtracting 15 pips from a ask price of 1.2222
   double Ask = 1.2222; // current market price
   double sl = Ask - (_Point * 15);
   Alert(sl); // Result will be 1.2207

  }

Portanto, revisamos as variáveis pré-definidas fundamentais no MQL5, a saber, _Symbol, _Digits, _Point e _Period. Elas servem como elementos essenciais, fornecendo uma visão do instrumento de negociação atual, precisão do seu preço, menor movimento e intervalo de tempo considerado. Claro, no MQL5 existem mais variáveis pré-definidas, mas nos concentramos apenas em algumas que são extremamente importantes nos estágios iniciais do aprendizado da linguagem. Para evitar complicações, avançaremos gradualmente do simples ao complexo em todos os artigos desta série. Então, fique atento às publicações. 


2. Funções gerais

O que são funções gerais?

No MQL5, as funções gerais são ferramentas que traders e desenvolvedores usam para automatizar vários aspectos da negociação algorítmica. Essas funções servem a propósitos específicos: desde exibir alertas e imprimir mensagens para depuração, até gerenciar ordens, fechar posições e obter informações sobre a conta de negociação. As funções podem ser vistas como blocos de construção que permitem a implementação eficiente de estratégias e a tomada de decisões. Elas facilitam o processo de escrita do código, melhoram a implementação da estratégia e contribuem para um processo de negociação mais dinâmico e ágil.

Analogia

As funções podem ser vistas como instruções específicas escritas em uma linguagem que o programa entende. Usando funções, você comunica ao seu programa o que deseja que ele faça. Dessa forma, você pode alcançar a solução de diversas tarefas.

2.1. Exemplos de funções gerais no MQL5

2.1.1. Alert

Alert é um sinal que rapidamente informa quando algo interessante ou importante acontece. É a maneira mais rápida e eficiente de chamar sua atenção para algo necessário. Para configurar o recebimento de notificações, use a função Alert, que enviará mensagens diretamente no gráfico enquanto o seu programa estiver em execução, ao ocorrer uma determinada condição.

Exemplos:

void OnStart()
  {

   Alert("Discoveries Await!");

  }

Figura 1: Resultado após a execução no MetaTrader5


De uma forma geral, programar é como se comunicar em uma linguagem próxima da expressão humana. O que isso significa em relação à nossa função Alert? Quando usamos a função Alert em um programa MQL5, é como dizer ao programa: "Envie um sinal quando algo interessante acontecer!" É semelhante a conversar com um assistente de negociação em uma linguagem que parece intuitiva e familiar, tornando o processo de programação acessível e envolvente.

2.1.2. Print

A função Print, como o nome sugere, imprime mensagens. Quando chamamos a função Print, estamos explicitamente instruindo o programa sobre o que deve ser impresso e relatado. É como uma pena mágica que narra e registra as aventuras no diário. Com a função Print, as ações do programa se transformam em palavras e criam uma narrativa sobre um evento.

Exemplo:

void OnStart()
  {

   Print("Discoveries Await!");

  }

Figura 2: Resultado após a execução no MetaTrader5

2.1.3. Comment

A função Comment é uma ferramenta mágica que adiciona anotações vibrantes ao nosso campo de negociação. Com esse "encantamento" Comment, é como se deixássemos dicas que nos ajudariam, bem como a outros usuários. Este "encantamento" permite escrever notas e símbolos diretamente em nossos gráficos, transformando-os em pergaminhos que contam a história de nossas estratégias de negociação. Graças à função Comment, nossos gráficos se tornam informativos, ajudando a entender o que está acontecendo, acompanhando os momentos importantes com comentários valiosos. Em resumo, a função Comment serve para exibir uma mensagem no gráfico do instrumento de negociação.

Exemplo:

 {

  Comment("I love MQL5!");

 }

Figura 3: Resultado após a execução no MetaTrader5

2.1.4. PlaySound

A função PlaySound no MQL5 é uma ferramenta útil que permite aos traders incorporar sinais de áudio em seus scripts e Expert Advisors. Esta função pode ser usada para reproduzir arquivos de som em várias situações, fornecendo alertas ou avisos adicionais além dos elementos visuais. Se você tiver um arquivo de som chamado alert.wav no diretório Sounds, poderá reproduzir esse som ao ocorrer uma determinada condição em seu script de negociação.

Exemplo:

void OnStart()
  {

// Check a condition
   if(5>4)
     {
      // Play the sound
      PlaySound("alert.wav");
     }
  }

alert.wav — o nome do arquivo de som que será reproduzido. O arquivo deve estar localizado no diretório Sounds do terminal.

Com isso, concluímos a seção dedicada às funções gerais no MQL5. No entanto, é importante entender que o que abordamos aqui é apenas uma visão geral do vasto conjunto de ferramentas disponíveis para negociação algorítmica. Discutimos as funções Alert, Print, Comment e PlaySound — apenas algumas das muitas possibilidades.


3. Operações aritméticas e lógicas, operações de comparação

3.1. Operações aritméticas

As operações aritméticas são operações matemáticas fundamentais que desempenham um papel importante na programação, incluindo MQL5 para trading algorítmico. Essas operações incluem adição (+), subtração (-), multiplicação (*), divisão (/), módulo (%), operador de incremento (++) e operador de decremento (--). Elas permitem aos desenvolvedores realizar cálculos matemáticos no código.

Adição (+) e subtração (-)

 A adição e a subtração são operações aritméticas básicas que permitem somar ou subtrair valores.

Exemplo:

void OnStart()
  {

   int num1 = 8;
   int num2 = 5;

//addition of values
   int sum = num1 + num2;
//subtraction of values
   int minus = num1 - num2;

   Alert("Sum = ",sum,", minus = ",minus);

  }


Multiplicação (*) e divisão (/)

Exemplo:

void OnStart()
  {
   double price = 50.25;
   int quantity = 10;
   double totalCost = price * quantity; // Multiplication
   double averagePrice = totalCost / quantity; // Division

   Alert("totalCost = ",totalCost,", averagePrice = ",averagePrice);
  }


Módulo

O operador módulo, representado pelo símbolo “%”, é uma operação matemática que retorna o resto da divisão de um número por outro. O operador módulo é especialmente útil na programação para tarefas como percorrer um número específico de elementos, verificar se números são pares ou ímpares ou garantir que os valores permaneçam dentro de um intervalo determinado.

Exemplo:

void OnStart()
  {
  
   int num1 = 10;
   int num2 = 3;
   int remainder = num1 % num2; // The variable 'remainder' now holds the value 1

  }


Incremento e decremento

Os operadores “++” e “--” são conhecidos como operadores de incremento e decremento, respectivamente. São operadores unários, ou seja, trabalham com um único operando.

Exemplo:

void OnStart()
  {
  
   int x = 5;
   int y = 8;
   x++; // After this line, the value of 'x' is 6
   y--; // After this line, the value of 'y' is 7

  }

Nota: Esses operadores são frequentemente usados para atualizar valores de variáveis em loops, contadores ou outros cenários onde se deseja aumentar ou diminuir um valor por uma quantidade fixa.


3.2. Operações lógicas

As operações lógicas na programação envolvem a avaliação de condições ou expressões que resultam em um valor lógico (verdadeiro ou falso). Essas operações são fundamentais para a tomada de decisões e controle do fluxo do programa. Os operadores lógicos são frequentemente usados em declarações condicionais (if, else, switch), loops e outras situações em que é necessário tomar decisões com base em determinadas condições. Eles são essenciais para criar lógica expressiva e flexível na programação. 

Em muitas linguagens de programação, incluindo MQL5, considera-se que "1" geralmente representa verdadeiro e "0" representa falso no contexto da lógica booleana.

Os operadores lógicos comuns incluem:

Símbolo Operação Exemplo Descrição
|| lógico OU 
y > 2 || y < 7
O valor de y é maior que 2 ou menor que 7
! lógico NÃO
!y Se o operando for verdadeiro, o operador NOT o torna falso.
&& lógico E
y > 2 && y < 7 O valor de y é maior que 2 e menor que 7


3.3. Operações de comparação

Essas operações na programação comparam valores para determinar a relação entre eles. Normalmente, resultam em um valor lógico (verdadeiro ou falso).

Os operadores de comparação comuns incluem:

Símbolo Operação Exemplo
> Verifica se o valor à esquerda é maior que o valor à direita.
x > y
< Verifica se o valor à esquerda é menor que o valor à direita.
x < y
!= Verifica se dois valores são diferentes.
x != y
== Verifica se dois valores são iguais.
x == y
>= Verifica se o valor à esquerda é maior ou igual ao valor à direita.
x >= y
<= Verifica se o valor à esquerda é menor ou igual ao valor à direita.
x <= y

Nota: o sinal de igual (=) e o sinal de igual duplo (==) servem a propósitos diferentes na programação e são usados em contextos diferentes. 

O sinal de igual único "=" é um operador de atribuição, usado para atribuir um valor a uma variável.

Exemplo:

int x = 10; // Assigns the value 10 to the variable x

O sinal de igual duplo "==" é um operador de relação usado para comparar e verificar a igualdade entre dois valores.

Exemplo:

int a = 5;
int b = 7;
bool isEqual = (a == b); // Checks if 'a' is equal to 'b'; 'isEqual' is false


4. Operadores de fluxo de controle

No mundo da programação, os operadores de fluxo de controle funcionam como uma bússola de navegação, traçando o curso de execução do programa. Imagine seu código como um navio navegando por águas complexas de comandos e lógica. Nesta jornada dinâmica, os operadores de fluxo de controle atuam como um guia, direcionando o navio através de pontos de decisão, loops e várias condições. 

Assim como o capitão de um navio navega em mares turbulentos, o programador usa operadores de fluxo de controle para indicar a direção que o código deve seguir. Seja tomando decisões com base em condições específicas, percorrendo dados ou executando determinadas ações repetidamente, esses operadores são as ferramentas do estrategista para organizar uma jornada direcionada através das complexidades da lógica algorítmica.

Como funciona?

Imagine que você tem um animal de estimação mágico que adora seguir suas instruções, mas você precisa de uma maneira de dizer a ele o que fazer em várias situações. Isso é exatamente o que você pode fazer com código e palavras especiais — os operadores de fluxo de controle.

4.1. Operador If/Else

Você diz ao seu animal de estimação: "Se (If) estiver ensolarado, voe para o céu, senão (else) fique no chão e tire uma soneca". Ou seja, "Se algo acontecer, faça isso, senão faça aquilo".

Exemplo:

 if(sun_is_shining)
     { Codey_fly_high_in_the_sky() }
 else
     { Codey_take_a_nap_on_the_ground() }

4.2. Loop While

O loop while é uma ferramenta para realizar tarefas repetitivas, percorrer sequências e dar ao seu código uma dimensão dinâmica. Ele permite que programas MQL5 se adaptem e respondam a condições mutáveis, tornando as estratégias de trading flexíveis e robustas no mundo financeiro em constante mudança. Com este loop, indicamos ao computador para continuar executando um comando enquanto uma condição for verdadeira.

Sintaxe:

while (condição) { // Código que será executado enquanto a condição for verdadeira }

Exemplo:

void OnTick()
  {
// Initialization
   int numberOfTrades = 0;
// While loop condition
   while(numberOfTrades < 5)
     {
      // Magic within the loop
      Print("You can take a trade ", numberOfTrades + 1);
      // Counter increment
      numberOfTrades ++;
     }
// Magical finale
   Print("Trade complete!");
  }

Nota: uma explicação mais detalhada sobre a função OnTick aparecerá mais tarde.

O loop while funciona como uma construção que repete um bloco de código enquanto a condição especificada for verdadeira. Ele oferece a capacidade de realizar tarefas iterativas até que uma determinada condição deixe de ser satisfeita.

Vamos dissecar os elementos do exemplo:

Inicialização: int numberOfTrades = 0;       

  • Inicializamos uma variável contadora para acompanhar nossas iterações.

Condição do loop while: while (numberOfTrades < 5)

  • O loop verifica se o valor de numberOfTrades é menor que 5. Se for verdade, o código dentro do loop é executado. Essa condição permite que o loop continue enquanto o número de negociações for menor que 5.

Ação dentro do loop:  Print("You can take a trade ", numberOfTrades + 1);

  • Dentro do loop, realizamos uma ação. Neste caso, exibimos uma mensagem enquanto numberOfTrades < 5.

Incremento do contador: numberOfTrades++

  • O número de negociações é incrementado a cada iteração, nos aproximando do nosso objetivo de 5.

Conclusão do loop:  Print("Trade complete!");

  • Assim que o loop terminar suas iterações, outra mensagem será exibida.

4.3. Loop For

O loop for oferece uma maneira concisa de realizar tarefas iterativas. É especialmente útil quando você já sabe o número de iterações que deseja executar. Você pode usar o loop for para praticamente tudo o que pode ser feito com o loop while, mas o loop for tem algumas vantagens.

Vantagens:

  • Conciso — o loop for combina operadores de inicialização, verificação de condição e iteração em uma única linha, tornando seu código mais elegante.
  • Legibilidade — melhora a clareza do código, facilitando a compreensão à primeira vista.
  • Iteração controlada — devido ao controle explícito sobre a variável de loop, você pode definir exatamente o número de iterações.

Sintaxe:

for (inicialização; condição; iteração) { // Código a ser executado em cada iteração }

Exemplo:

void OnTick()
  {
// For loop to iterate from 1 to 5

   for(int i = 1; i <= 5; i++)
     {
      // Magic within the loop
      //i represents number of trades
      Print("You can take a trade ", i);
     }
// Magical finale
   Print("Trade complete!");

  }

Explicação:

Inicialização (int i = 1;):

  • Inicializamos a variável de loop i para começar nossas iterações a partir de 1.

Condição (i <= 5;):

  • O loop continua enquanto a condição (i menor ou igual a 5) for verdadeira.

Iteração (i++):

  • Após cada iteração, a variável de loop i é incrementada em 1.

Ação dentro do loop:  Print("You can take a trade ", i);

  • Dentro do loop, realizamos uma ação. Neste caso, exibimos uma mensagem enquanto numberOfTrades < 5.

Conclusão do loop:  Print("Trade complete!");

  • Assim que o loop terminar suas iterações, outra mensagem será exibida.


Considerações finais

Neste segundo artigo da nossa série sobre os fundamentos do MQL5, exploramos conceitos essenciais. Discutimos variáveis pré-definidas, funções gerais, o ambiente complexo de operações aritméticas, relacionais e lógicas, além dos operadores de fluxo de controle. O que torna nossa jornada especial é a simplicidade e o convite à interação. Faça perguntas se algo não ficou claro. Esta etapa está concluída, é hora de nos prepararmos para a próxima. Em breve, passaremos ao desenvolvimento do nosso próprio robô de negociação. Fique conosco e vamos continuar nossa exploração do mundo do MQL5.


Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/13997

Implementação do teste aumentado de Dickey-Fuller no MQL5 Implementação do teste aumentado de Dickey-Fuller no MQL5
Neste artigo, vamos mostrar como implementar o teste aumentado de Dickey-Fuller e sua aplicação para realizar testes de cointegração usando o método de Engle-Granger.
Como ganhar dinheiro realizando pedidos de traders no serviço "Freelance" Como ganhar dinheiro realizando pedidos de traders no serviço "Freelance"
MQL5 Freelance é um serviço online onde desenvolvedores criam aplicativos de negociação para traders em troca de remuneração. O serviço funciona com sucesso desde 2010: até o momento, mais de 100.000 trabalhos foram realizados, totalizando $7 milhões. Como podemos ver, há bastante dinheiro em circulação aqui.
Rede neural na prática: Pseudo Inversa (I) Rede neural na prática: Pseudo Inversa (I)
Aqui, vamos começar a ver como podermos implementar, usando MQL5 puro, o cálculo de pseudo inversa. Apesar do código que será visto, será de fato bem mais complicado, para os iniciantes, do que eu de fato gostaria de apresentar. Ainda estou pensando em como o explicar de forma simples. Veja isto como uma oportunidade de estudar um o código pouco comum. Então vá com calma. Sem pressa e correria. Mesmo que ele não vise ser eficiente e de rápida execução. O objetivo é ser o mais didático possível.
Algoritmos de otimização populacional: sistema imune micro-artificial (Micro Artificial Immune System, Micro-AIS) Algoritmos de otimização populacional: sistema imune micro-artificial (Micro Artificial Immune System, Micro-AIS)
Este artigo fala sobre um método de otimização baseado nos princípios de funcionamento do sistema imunológico do organismo — Micro Artificial Immune System (Micro-AIS) — uma modificação do AIS. O Micro-AIS utiliza um modelo mais simples do sistema imunológico e operações mais simples de processamento de informações imunológicas. O artigo também aborda as vantagens e desvantagens do Micro-AIS em comparação com o AIS tradicional.