English Русский Deutsch 日本語
preview
Adicionando um LLM personalizado a um robô investidor (Parte 2): Exemplo de implementação de ambiente

Adicionando um LLM personalizado a um robô investidor (Parte 2): Exemplo de implementação de ambiente

MetaTrader 5Negociação | 26 março 2024, 14:56
233 0
Yuqiang Pan
Yuqiang Pan

Introdução

No artigo anterior, foram apresentados conhecimentos básicos sobre o hardware necessário para a execução local de LLMs, bem como as diferenças entre os ambientes, seus benefícios e limitações. Neste artigo, não vamos estudar a configuração do ambiente de outros sistemas operacionais, como Windows, Linux e MacOS. Em vez disso, focaremos apenas na configuração passo a passo do Windows+WSL.

Conteúdo:

  1. Introdução
  2. WSL2
  3. Instalação do WSL2
  4. Configuração
  5. Comandos gerais para o WSL
  6. Configuração do software
  7. Considerações finais

WSL2

1. Sobre o WSL2

O WSL2 é uma atualização significativa da versão original do WSL, lançada pela Microsoft em 2017. WSL2 não é apenas uma atualização. Este subsistema é mais rápido, mais versátil e utiliza um kernel real do Linux. Até hoje, muitas pessoas, incluindo alguns especialistas em TI, não sabem da existência do WSL. Eles ainda continuam a usar a combinação Windows + máquina virtual ou adotam o modo de sistema duplo, alternando do Windows quando precisam usar Linux.

Claro, para algumas tarefas, pode ser necessário um ambiente Linux completo, que o WSL não pode substituir, por esse motivo, esses métodos têm sua razão de ser.

2. Para que serve o WSL2?

Ao trabalhar com inteligência artificial, usamos principalmente ferramentas de linha de comando Linux e computação acelerada por GPU, por isso sistemas duplos ou a combinação Windows + máquina virtual parecem desnecessários. O próprio WSL2 tem um kernel Linux completo, que é mais próximo de um ambiente Linux real. O WSL2 pode se integrar facilmente ao sistema de arquivos do Windows. Você pode gerenciar seu sistema de arquivos como uma pasta no Windows. Em menos de um segundo, você pode executar a linha de comando do Linux a partir do Windows. Por isso, se você deseja usar eficaz e confortavelmente as funções e ferramentas Linux no ambiente Windows, o WSL2 é um recurso inestimável.


Instalação do WSL2

1. Requisitos de instalação:

1). Windows 10 versão 2004 ou superior (build interno 19041 ou superior) ou Windows 11. A atualização KB4566116 também deve estar instalada. Pode funcionar em uma versão mais antiga, mas será necessária uma operação manual. Falaremos sobre isso mais tarde.

2). Para o WSL2, pode ser necessário ativar a opção "plataforma de máquina virtual" (Virtual Machine Platform). Por que "pode"? Porque não verifiquei se a instalação é possível sem essa opção no Windows 10. No entanto, instalei o WSL2 no meu computador (Win11-22H2) sem ativar essa opção. Por isso, se a instalação falhar, acesse "Componentes do Windows" através do menu "Iniciar" e ative o Hyper-V, conforme mostrado na imagem abaixo.

hyper

3). O espaço reservado deve ser de no mínimo 1 GB. Estes requisitos são a base para o funcionamento normal. O WSL2 será instalado no disco C. Também é possível instalá-lo em outras partições.

2. Instalação

1). Se você não tem requisitos específicos para a versão da distribuição Linux, simplesmente abra o PowerShell como administrador e digite wsl --install.

install

2). Se você deseja especificar a versão da distribuição Linux, abra o PowerShell como administrador e então execute o seguinte comando para instalar o WSL2 com uma distribuição Linux específica:

wsl --install -d <NomeDaDistribuição> (por exemplo: Ubuntu-20.04).

Se você precisa de uma escolha mais ampla, use wsl --list --online (ou wsl -l -o) para ver as distribuições Linux disponíveis. A boa notícia é que você pode instalar várias versões diferentes de Linux, entre as quais pode alternar durante o uso.

Dica: Se a distribuição Linux desejada não estiver na lista disponível, você pode usar arquivos TAR para importar qualquer distribuição Linux.

3). Existem várias maneiras de iniciar o subsistema:

  •  Abra a distribuição a partir do menu "Iniciar" (por padrão Ubuntu).
  •  Digite 'wsl' no prompt de comando do Windows ou no PowerShell e pressione Enter.
  •  Digite o nome da distribuição instalada no prompt de comando do Windows ou no PowerShell. Por exemplo: ubuntu.
  •  Se você instalou várias versões do Linux, você pode usar o comando wsl -l -v para visualizar as informações necessárias e então usar o comando wsl [nome] para escolher a versão para iniciar. Por exemplo: wsl ubuntu.

4). Na primeira inicialização, será solicitado que você configure um nome de usuário e senha. Note que ao digitar a senha, ela não será exibida e o cursor não se moverá. Você precisa lembrar a senha e então pressionar a tecla Enter. O sistema pedirá que você insira-a quando precisar de direitos de administrador (por exemplo, ao executar operações sudo). Se você esquecer a senha, existe uma maneira de resolver esse problema sem reinstalar o subsistema.

ins

5). Para sair do subsistema, simplesmente digite "exit" no prompt de comando. Se você não tem certeza se o subsistema está rodando, digite 'wsl -l -v' no prompt de comando ou PowerShell para ver as informações relevantes, bem como 'wsl --shutdown' para finalizar todas as instâncias do subsistema.

Dica: Se você quiser usar o subsistema gráfico, pode consultar a seção relevante no site oficial da Microsoft para implementá-lo, mas o autor desaconselha!


Configuração

1. Migração para outras partições

Se os recursos do seu disco do sistema são relativamente limitados, você pode transferir o subsistema para outros discos ou partições. Procedimento:

1). Digite no prompt de comando do Windows ou no PowerShell 'wsl -l -v --all' para visualizar o subsistema que precisa ser transferido.

2). Digite no prompt de comando do Windows ou no PowerShell 'wsl --shutdown' para garantir que todos os subsistemas estão fechados.

3). Digite no prompt de comando do Windows ou no PowerShell 'wsl --export <Nome do Subsistema> <Caminho onde o pacote comprimido do subsistema será armazenado>', por exemplo: 'wsl --export ubuntu f:\wsl-ubuntu.tar'.

4). Digite no prompt de comando do Windows ou PowerShell: 'wsl --unregister <Nome do Subsistema>', por exemplo: 'wsl --unregister ubuntu'.

5). Digite no prompt de comando do Windows ou PowerShell: 'wsl --import <Nome do Subsistema> <Caminho para migração do subsistema> <Caminho onde está armazenado o pacote comprimido original exportado do subsistema> --version 2', por exemplo: 'wsl --import new_ubuntu F:\wsl\ubuntu_wsl f:\wsl-ubuntu.tar --version 2'.

6). O pacote comprimido original exportado do subsistema pode ser deletado ou usado como um arquivo de backup.

2. Configuração dos arquivos de configuração

Existem dois tipos de arquivos de configuração para o subsistema WSL2: um é a configuração global no Windows, o outro é o arquivo de configuração local no subsistema. Basicamente, estamos ajustando o arquivo de configuração global, cujo caminho é: 'C:\Users\<NomeDoUsuário>\.wslconfig'. Você precisa abri-lo em um editor de texto para editar. Os principais parâmetros que precisamos configurar são memory (memória), swap (área de troca) e swapfile (arquivo de troca). Antes de configurar, certifique-se de que o subsistema esteja fechado, isso é muito importante!

  • -memory: a quantidade máxima de memória alocada para o subsistema.
  • -swap: a quantidade de espaço de troca adicionado à máquina virtual WSL 2, onde 0 significa que não há arquivo de troca. O armazenamento de troca é a RAM do disco usada quando a necessidade de memória excede as limitações do hardware.
  • -swapfile: o caminho absoluto do Windows para o disco rígido virtual de troca. Este caminho pode ser definido de acordo com suas preferências.

Vá para o arquivo de configuração, abra-o com o Bloco de Notas, adicione as seguintes 4 linhas de conteúdo. Observe que não há pontuação no final:

[wsl2]

memory=8GB

swap=60GB

swapfile=G:\\wsl\\swap\\wsl-swap.vhdx

Substitua 'G:\\wsl\\swap\\wsl-swap.vhdx' pelo seu caminho.

Nota: Ao executar LLM, tente garantir que o valor da sua memória + o valor de troca seja maior do que o tamanho do modelo, caso contrário, você poderá ter problemas ao carregar o modelo.

3. Instalação do WSL2 em versões antigas do Windows 10

1). Certifique-se de que a versão do sistema é 1903 ou superior, e a build é 18362.1049 ou superior.

2). Abra o PowerShell como administrador e execute o comando: 'dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart', em seguida, reinicie o computador.

3). Baixe o pacote do kernel Linux, link para download: 'https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi'.

4). Clique duas vezes para executar o pacote do kernel baixado e completar a instalação.

5). Abra o PowerShell como administrador e execute o comando 'wsl --set-default-version 2'.

6). Abra a Microsoft Store e selecione a distribuição Linux de sua preferência, clicando no ícone para instalar.

store

Nota: Após usar o subsistema por algum tempo, você pode deletar conteúdo desnecessário (como cache) para liberar espaço. Embora o conteúdo seja deletado, você perceberá que o espaço ocupado pelo disco rígido virtual do subsistema não diminuiu. Execute o prompt de comando ou PowerShell com direitos de administrador e use o comando de gerenciamento de disco virtual 'vdisk' no Disk Part para compactar o disco rígido virtual.


Comandos gerais para o WSL

Uso: wsl.exe [Argumento] [Opções...] [LinhaDeComando]

1. Argumentos para executar arquivos binários Linux

    Se a linha de comando não for especificada, wsl.exe iniciará o shell padrão.

    --exec, -e <LinhaDeComando>

        Executar o comando especificado sem usar o shell padrão do Linux.

    --shell-type <Tipo>

        Executar o comando especificado usando o tipo de shell fornecido.

        Tipos:

    • standard

                Executar o comando especificado usando o shell Linux padrão.

    • login

                Executar o comando especificado usando o shell Linux padrão como processador de comandos de login (login shell).

  • none

                Executar o comando especificado sem usar o shell padrão do Linux.

    --

        Passar o restante da linha de comando como está.

2. Configurações

    --cd <Diretório>

        Definir o diretório especificado como o diretório de trabalho atual.

        Ao usar ~, será utilizado o caminho principal do usuário Linux. Se o caminho começar com /, será interpretado como um caminho absoluto Linux.

        Caso contrário, esse valor deve ser um caminho absoluto do Windows.

    --distribution, -d <Distro>

        Iniciar o distribuição especificada.

    --user, -u <NomeDoUsuário>

        Iniciar como o usuário especificado.

    --system

        Iniciar um shell para o distribuição do sistema.

3. Argumentos para gerenciar o subsistema Windows para Linux

    --help

        Exibir informações de uso.

    --debug-shell

        Abrir um shell de depuração do WSL2 para diagnóstico.

    --event-viewer

        Abrir a visualização de eventos do Windows Event Viewer.

    --install [Distro] [Opções...]

        Instalar uma distribuição do Subsistema Windows para Linux.

        Para ver a lista de distribuições disponíveis, use 'wsl.exe --list --online'.

        Opções:

            --no-launch, -n

                Não iniciar a distribuição após a instalação.

            --web-download

                Baixar a distribuição da internet em vez da Microsoft Store.

    --mount <Disco>

        Conectar e montar discos físicos ou virtuais em todas as distribuições do WSL 2.

        Opções:

            --vhd

                Especificar que <Disk> é um disco rígido virtual.

            --bare

                Conectar o disco ao WSL2, mas não montá-lo.

            --name <Nome>

                Montar o disco usando um nome personalizado para o ponto de montagem.

            --type <Tipo>

                Sistema de arquivos usado ao montar o disco, se não especificado, por padrão é ext4.

            --options <Opções>

                Outras opções de montagem.

            --partition <Índice>

                Índice da partição a ser montada, se não especificado, por padrão corresponde a todo o disco.

    --release-notes

        Abrir o navegador web para visualizar as notas de lançamento do WSL.

    --set-default-version <Versão>

        Alterar a versão padrão de instalação para novas distribuições.

    --shutdown

        Encerrar imediatamente todos os distribuições em execução e a máquina virtual leve do WSL 2.

    --status

        Exibir o status do Subsistema Windows para Linux.

    --unmount [Disk]

        Desmontar e desconectar o disco de todas as distribuições do WSL2. Se chamado sem argumentos, desmontar e desconectar todos os discos.

    --update

        Atualizar o pacote do Subsistema Windows para Linux.

        Opções:

            --web-download

                Baixar atualizações da internet em vez da Microsoft Store.

            --pre-release

                Baixar a pré-versão, se disponível. Indica o uso de --web-download.

    --version, -v

        Exibir informações sobre a versão.

4. Argumentos para gerenciar distribuições no subsistema Windows para Linux

    --export <Distro> <FileName> [Opções]

        Exportar a distribuição como um arquivo tar.

        Para saída padrão, o nome do arquivo pode ser "-".

        Opções:

            --vhd

                Especificar a distribuição para exportação como um arquivo .vhdx.                

    --import <Distro> <LocalDeInstalação> <FileName> [Opções]

        Importar o tar especificado como uma nova distribuição. Para entrada padrão, o nome do arquivo pode ser "-".

        Opções:

            --version <Versão>

                Especificar a versão da nova distribuição.                

            --vhd

                Indicar que o arquivo fornecido é um .vhdx, não um tar.

                A operação criará uma cópia do arquivo .vhdx no local de instalação especificado.                

    --import-in-place <Distro> <FileName>

        Importar o .vhdx especificado como uma nova distribuição.

        Este disco rígido virtual deve ser formatado com o sistema de arquivos ext4.        

    --list, -l [Options]

        Lista de distribuições.        

        Opções:

            --all

                Listar todas as distribuições, incluindo aquelas que estão sendo instaladas ou removidas no momento.                

            --running

                Listar apenas as distribuições que estão rodando no momento.                

            --quiet, -q

                Mostrar apenas os nomes das distribuições.                

            --verbose, -v

                Mostrar informações detalhadas sobre todas as distribuições.                

            --online, -o

                Usar 'wsl.exe --install' para mostrar a lista de distribuições disponíveis que podem ser instaladas.                

    --set-default, -s <Distro>

         Definir a distribuição como a distribuição padrão.         

     --set-version <Distro> <Version>

         Alterar a versão da distribuição especificada.         

     --terminate, -t <Distro>

         Parar a distribuição especificada.         

     --unregister <Distro>

         Cancelar o registro da distribuição e remover o sistema de arquivos raiz.


Configuração do software

Agora, vamos implementar o software apropriado no WSL, incluindo software para gerenciamento do ambiente, software para edição de código, etc., e mostrar um exemplo demonstrando como executar LLM no WSL2.

1. Gerenciamento da biblioteca Python

Geralmente, usamos miniconda para gerenciar as bibliotecas Python.

  1. Vamos iniciar o terminal do WSL e digitar: wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh.
  2. Após o término do download, precisamos dar a este arquivo permissões elevadas: sudo chmod 777 Miniconda3-latest-Linux-x86_64.sh, o sistema pedirá que você insira a senha, que é a senha que inserimos ao criar o WSL2.
  3. Digite no terminal: ./Miniconda3-latest-Linux-x86_64.sh, após a conclusão da instalação, você verá mais (base) palavras no início do seu terminal, como mostrado na figura:

base

2. Editor de código

  • Se você já instalou editores de código, como Pycharm ou vscode no ambiente Windows, você pode encontrar o ambiente Python do WSL2 através das configurações.
  • Se não, digite 'code .' no terminal do WSL2 e aguarde sua instalação automática. O vscode será iniciado. Após o lançamento, você verá a inscrição WSL no canto inferior esquerdo, indicando que o vscode está conectado ao WSL, como mostrado na figura:
vscode

Dica: Na linha de comando da subsistema wsl2, use o comando cd para ir diretamente ao local onde você precisa editar o código. Em seguida, 'code .' imediatamente iniciará o vscode e encontrará essa pasta, o que é muito conveniente.

3. Aceleração de saída usando GPU

Aqui, vou considerar apenas a aceleração com placas NVIDIA. Se você usar outras placas, procure os métodos apropriados de configuração.

1). Configuração da aceleração NVIDIA CUDA com Docker

  • Instale o suporte ao Docker: Digite 'curl https://get.docker.com | sh' na linha de comando e, em seguida, digite 'sudo service docker start'. Isso iniciará o serviço Docker.
  • Configure o repositório estável para o conjunto de ferramentas NVIDIA para contêineres: execute os seguintes comandos na linha de comando em sequência: 
    1. distribution=$(. /etc/os-release;echo $ID$VERSION_ID);
    2. curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-docker-keyring.gpg;
    3. curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-docker-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-docker.list.
  • Instale o pacote de tempo de execução NVIDIA e dependências: execute os seguintes comandos na linha de comando sequencialmente: sudo apt-get update; sudo apt-get install -y nvidia-docker2.
  • Inicie o contêiner: Execute 'docker run --gpus all -it --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/tensorflow:20.03-tf2-py3' na linha de comando. Após a conclusão, entraremos no contêiner Docker com a capacidade de aceleração CUDA, conforme mostrado na imagem:

docker

2). Instalação Manual da Aceleração NVIDIA CUDA

  • - Obtenha o pacote de instalação: execute 'wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run' na linha de comando.
  • - Execute o pacote de instalação: execute 'sudo sh cuda_12.2.2_535.104.05_linux.run' na linha de comando. Se ocorrer um erro, adicione à comando '--override', por exemplo: sudo sh cuda_12.2.2_535.104.05_linux.run --override.
  • - Adicione as variáveis de ambiente correspondentes: execute 'sudo vim ~/.bashrc' na linha de comando e adicione os seguintes caracteres no final do arquivo: 

```

export PATH=/usr/local/cuda-12.2.2/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-12.2.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

export CUDA_HOME=/usr/local/cuda-12.2.2${CUDA_HOME:+:${CUDA_HOME}}

```

  • - Atualizar variáveis de ambiente: execute no terminal 'source ~/.bashrc'.

Nota: Se você executou 'sudo vim ~/.bashrc' e encontrou problemas por não estar familiarizado com o vim, você também pode localizar este arquivo e copiá-lo para o ambiente Windows para usar um editor de texto para editar e adicionar o conteúdo apropriado, e então copiá-lo de volta após a edição. A vantagem dessa abordagem é que também cria uma cópia de segurança do '.bashrc'.

4. Início do LLM

1). Crie um ambiente virtual conda: digite no terminal 'conda create -n llm python=3.10'.

Notas:

  1. 'llm' é o nome do ambiente virtual que queremos criar, o qual pode ser alterado livremente.
  2. '-python=3.10' indica a versão do Python usada pelo ambiente virtual. Embora seja possível especificar 'conda create -n llm', é altamente recomendado especificar a versão!

2). Mude para o ambiente virtual: digite 'conda activate llm' no terminal para ativar nosso ambiente virtual.

'(base)' no início do terminal mudará para '(llm)'. Se você quiser sair do ambiente virtual, digite 'conda deactivate'.

3). Encontre o LLM que você precisa em https://huggingface.co.

Como há muitos modelos, você pode consultar este ranking de modelos de código aberto. Recomenda-se usar um formato compatível com llama.cpp. Se o HuggingFace não estiver acessível no seu país (região), use a magia para vencer a magia!

4). Baixe o modelo: primeiramente, você precisa habilitar o suporte para arquivos grandes do git, digite no terminal 'git lfs install'.

Após iniciar, digite 'git clone https://huggingface.co/<nome da biblioteca>'. Por exemplo, 'git clone https://huggingface.co/Phind/Phind-CodeLlama-34B-v2' e aguarde a conclusão do download.

5). Instale a versão Python de llama.cpp llama-cpp-python: Digite no terminal 'CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python' e aguarde a conclusão da instalação. Após a instalação, o llama.cpp suporta a saída tanto usando o processador quanto usando a placa gráfica. Claro, eles também suportam aceleração de placas gráficas de outras marcas (veja https://github.com/abetlen/llama-cpp-python).

Nota: Se você não tem uma placa gráfica ou não instalou suporte para aceleração da GPU, use o comando 'pip install llama-cpp-python' para instalar. Embora a saída seja mais lenta, ainda pode ser usada.

6). Execute a saída: Crie um arquivo py, chamemo-lo de test.py. Copie o seguinte conteúdo para o arquivo:

from llama_cpp import Llama

llm = Llama(model_path="./models/7B/llama-model.gguf")

output = llm("Q: Name the planets in the solar system? A: ", max_tokens=32, stop=["Q:", "\n"], echo=True)

print(output)

Em seguida, execute no terminal 'python test.py' e você verá o seguinte resultado:

{
  "id": "cmpl-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "object": "text_completion",
  "created": 1679561337,
  "model": "./models/7B/llama-model.gguf",
  "choices": [
    {
      "text": "Q: Name the planets in the solar system? A: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune and Pluto.",
      "index": 0,
      "logprobs": None,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 14,
    "completion_tokens": 28,
    "total_tokens": 42
  }
}

Notas:

1. 'model_path' é o local para onde você carregou os arquivos do modelo;

2. O conteúdo após Q em "Q: Name the planets in the solar system? A: " é a pergunta que você quer fazer. Você pode substituí-la por qualquer outra pergunta.

3. O conteúdo após A em "Q: Name the planets in the solar system? A: " contém a resposta do LLM.


Considerações finais

Neste artigo, exploramos passo a passo como criar um ambiente WSL2 no qual você pode executar LLMs, e descrevemos em detalhes várias nuances do uso do WSL2. Em seguida, apresentamos um exemplo simples de como executar o output do LLM com o mínimo de código. Estamos confiantes de que você também apreciou a simplicidade e a poder do llama.cpp. No próximo artigo, discutiremos como escolher o modelo LLM adequado dentre muitos, para adaptá-lo ao nosso objetivo de integrá-lo na negociação algorítmica.

Fique atento para atualizações!



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

Desenvolvendo um sistema de Replay (Parte 45): Projeto do Chart Trade (IV) Desenvolvendo um sistema de Replay (Parte 45): Projeto do Chart Trade (IV)
O principal neste artigo, é justamente a apresentação e explicação da classe C_ChartFloatingRAD. Temos o indicador Chart Trade, funcionando de uma maneira bastante interessante. No entanto, se você notará que ainda temos um numero bastante reduzido de objetos no gráfico. E mesmo assim temos exatamente o comportamento esperado. Podendo editar os valores presentes no indicador. A pergunta é: Como isto é possível ?!?! Neste artigo você começará a entender isto.
Permutação das barras de preços no MQL5 Permutação das barras de preços no MQL5
Neste artigo, apresentamos um algoritmo de permutação das barras de preços e detalhamos como os testes de permutação podem ser usados para identificar casos em que o desempenho de uma estratégia é inventado com o objetivo de enganar potenciais compradores de Expert Advisors.
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 07): Dendrogramas Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 07): Dendrogramas
A classificação de dados para análise e previsão é uma área muito diversificada do aprendizado de máquina, que compreende um grande número de abordagens e métodos. Neste artigo, examinaremos uma dessas abordagens, nomeadamente o agrupamento hierárquico aglomerativo (Agglomerative Hierarchical Clustering).
Preparação de indicadores com vários símbolos/períodos Preparação de indicadores com vários símbolos/períodos
Neste artigo, examinaremos os princípios para criar indicadores com vários símbolos/períodos e recuperar dados deles dentro de EAs e indicadores. Veremos as nuances mais importantes ao usar multi-indicadores em EAs e indicadores, e sua plotagem mediante buffers de indicador personalizado.