Building & Deploying a Neural Network for Trading - Blankly Webinar

Building & Deploying a Neural Network for Trading - Blankly Webinar

Criação de Arrays e Inicialização da Rede Neural

Visão Geral da Seção: Nesta seção, o palestrante explica como criar arrays usando a biblioteca numpy e por que é conveniente usá-los para manipulação de dados. Ele também discute a importância da inicialização da rede neural.

Criação de Arrays

  • O uso de arrays numpy é conveniente para manipulação e processamento de dados.
  • As técnicas de álgebra linear podem ser aplicadas aos arrays numpy, tornando as operações mais rápidas do que com listas padrão.

Inicialização da Rede Neural

  • A estratégia Blankly funciona criando uma estratégia e adicionando eventos de preço a ela com certas inicializações.
  • Para que o evento de preço funcione corretamente, é necessário criar e treinar uma rede neural para fornecer informações sobre o que fazer em cada ponto dos dados.
  • Os pacotes utilizados na criação da rede neural são PyTorch e NumPy.

Executando o código

Visão geral da seção: Nesta seção, o palestrante explica como executar o código e instalar as bibliotecas necessárias.

Instalando bibliotecas

  • Para obter os dados, é necessário baixar um arquivo JSON em branco e um arquivo de requisitos de símbolo.
  • É preciso instalar algumas bibliotecas usando pip install, incluindo numpy e pytorch.
  • As bibliotecas necessárias podem ser instaladas automaticamente a partir do requirements.txt.

Importando indicadores

  • Os indicadores são importados para o código. O RSI é usado como exemplo.
  • PyTorch é a biblioteca usada para construir o modelo.

Construindo o modelo

  • O modelo é construído usando os dados de preços e os indicadores importados anteriormente.
  • Depois que todos esses passos são concluídos, todos os pontos de preço no intervalo serão obtidos e será possível entrar na fase real de construção do modelo.

Construindo um modelo

Visão geral da seção: Nesta seção, o palestrante fala sobre a construção de um modelo e a importância do processamento de dados antes de começar.

Definindo variáveis

  • O objetivo é definir as variáveis para processar os dados antes de começar.
  • A ideia por trás da rede neural é combinar informações em uma tomada de decisão lógica.
  • Os parâmetros devem ser atualizados toda vez que ocorrer uma mudança.
  • A partir daqui, eles começam a trabalhar na engenharia de recursos real.

Engenharia de recursos

  • O objetivo é fornecer ao modelo indicadores diferentes para ajudá-lo a tomar decisões melhores.
  • Eles usarão RSI, MACD, volume e preço como indicadores.
  • É importante ter variáveis escalonadas para que o modelo possa combiná-las adequadamente.
  • Você precisa treinar redes neurais em um conjunto anterior de dados discretos.

Técnica "Sliding Windows"

  • Eles usam uma técnica chamada "sliding windows" para gerar mais pontos de dados e evitar overfitting.
  • O objetivo é prever o próximo nível fino e os resultados dos próximos dias.
  • Eles terão uma janela total de oito dias e a dividirão em etapas para obter cinco dias.

Transformando dados

  • Eles farão uma transformação nos dados de preços para gerar mais pontos de dados.
  • O objetivo é mudar os preços brutos para aumentos percentuais.
  • Isso evita overfitting aos dados específicos do dia.

Título Descritivo

Visão geral da seção: ...

Bibliotecas de Aprendizado de Máquina

Visão geral da seção: Nesta seção, o palestrante discute as bibliotecas que serão usadas no projeto.

PyTorch e NumPy

  • PyTorch é uma biblioteca de aprendizado de máquina.
  • NumPy é usado para processamento de dados.
  • PyTorch tem várias saídas diferentes para construir o modelo.

MACD

  • MACD é um indicador interessante que será usado no projeto.
  • É calculado subtraindo a média móvel exponencial (MME) de 26 dias da MME de 12 dias.
  • O sinal é a MME de 9 dias do MACD.
  • Blankly será usado para calcular os valores do MACD.

Instalação das Bibliotecas

  • No Google Colab, PyTorch e NumPy já estão instalados.
  • Para instalar Blankly, use "pip install blankly".
  • Se outras bibliotecas forem necessárias, elas podem ser adicionadas ao arquivo requirements.txt e instaladas com "pip install -r requirements.txt".

Volume e Preço

Visão geral da seção: Nesta seção, o palestrante discute como obter dados sobre volume e preço.

Obtendo Dados

  • Os dados são obtidos usando a API Alpha Vantage.
  • Os dados são armazenados em um DataFrame do Pandas.

Manipulação dos Dados

  • O DataFrame é convertido em uma lista Python para facilitar a manipulação dos dados.
  • O preço pode ser facilmente acessado usando o índice 1 da lista.
  • O volume pode ser acessado usando o índice 5 da lista.

Cálculo do Volume

  • O volume é calculado usando a fórmula "volume = preço x quantidade".
  • A quantidade é obtida dividindo o volume pelo preço.

Problemas com Blankly

Visão geral da seção: Nesta seção, o palestrante discute problemas que surgiram ao tentar instalar a biblioteca Blankly.

Instalação de Blankly

  • A instalação de Blankly pode ser problemática.
  • Às vezes, a biblioteca não pode ser encontrada na versão especificada.
  • Verifique se a versão correta está sendo instalada e tente novamente.

Erros Comuns

  • Um erro comum é digitar "blen kalai" em vez de "blankly".
  • Outro erro comum é esquecer de adicionar um ponto de exclamação antes do comando pip install.

Normalização de Dados

Visão geral da seção: Nesta seção, o palestrante discute a importância da normalização de dados em redes neurais e como isso ajuda no treinamento.

Normalização de Dados

  • A normalização é importante para ajudar na precisão do treinamento em redes neurais.
  • O último valor deve ser um valor lógico entre zero e um.
  • Para normalizar os dados, é necessário transformá-los em tensores do PyTorch.

Variáveis Escalonadas

Visão geral da seção: Nesta seção, o palestrante discute a importância de ter variáveis escalonadas ao trabalhar com redes neurais.

Variáveis Escalonadas

  • É importante ter variáveis escalonadas ao trabalhar com redes neurais.
  • As variáveis devem estar dentro de uma faixa razoável para evitar problemas durante o treinamento.

Treinando Redes Neurais

Visão geral da seção: Nesta seção, o palestrante discute como treinar redes neurais e as etapas envolvidas nesse processo.

Treinando Redes Neurais

  • O objetivo é mudar os preços brutos para aumentos percentuais.
  • É necessário definir um número adequado de épocas e taxas de aprendizado para obter resultados precisos.
  • É importante verificar a estabilização da função de perda para evitar o overfitting.

Otimização de Rede Neural

Visão geral da seção: Nesta seção, o palestrante discute a otimização de redes neurais e como ela é usada para prever preços.

Redes Neurais

  • Duas matrizes são quadradas e serão úteis posteriormente na função de perda.
  • Otimizador faz com que as dimensões das matrizes se alinhem.
  • Uma maneira de pensar em uma rede neural é como um conjunto de neurônios conectados.
  • RSI é calculado em 14 períodos, mas cada entrada é ponderada por um valor diferente antes de ser passada para o próximo neurônio.

Propagação traseira

  • A propagação traseira ajuda a calcular a derivada com relação a cada peso da saída real.
  • Os pesos são alterados ligeiramente e o processo é repetido até que a perda seja minimizada.

MACD

  • MACD tem dois valores importantes - os próprios valores do MACD e os sinais do MACD.
  • Se aumentarmos um peso, o valor do MACD pode aumentar ou diminuir dependendo da direção lógica.

Redução de Max e Parâmetros

Visão geral da seção: Nesta seção, o palestrante discute a redução do valor máximo e a definição dos parâmetros que precisam ser minimizados. Ele também menciona a geração típica de episódios.

Redução de Max

  • O valor máximo é reduzido para diminuir o volume.
  • Os parâmetros que precisam ser minimizados são definidos como o volume visto nos dados de treinamento.

Geração de Episódios

  • A geração típica de episódios envolve a geração de parâmetros.
  • Os parâmetros incluem comprimento da sequência LSTM e tamanho da saída.

Treinamento Linear

  • Depois que todos os dados são processados, os pesos são alterados para o treinamento linear.
  • O treinamento começa com a entrada dos dados no modelo.

Especificação do Volume Mínimo e Taxa de Aprendizado

Visão geral da seção: Nesta seção, o palestrante discute a especificação do volume mínimo e taxa de aprendizado necessários para melhorar a normalização.

Volume Mínimo e Taxa de Aprendizado

  • É necessário especificar um volume mínimo para melhorar a normalização.
  • A taxa de aprendizado é definida como lr.

Loop de Treinamento

Visão geral da seção: Nesta seção, o palestrante discute o loop de treinamento e a execução do modelo LSTM nos dados.

Modelo LSTM

  • O modelo LSTM é executado nos dados.
  • Os resultados são alimentados em um loop para multiplicação por pesos.

Linear Layer

  • Uma camada linear é executada no estado oculto.
  • O resultado final é obtido concatenando todos os estados ocultos.

Música entre zero e um

Visão geral da seção: Nesta seção, é mencionado que a música será tocada entre zero e um.

Monitorando o modelo

  • A cada 500 épocas, o modelo imprimirá a perda para ajudar na monitoração do aprendizado.
  • O objetivo é verificar se o modelo está aprendendo de forma precisa.
  • Serão definidas 15.000 épocas para treinar o modelo.

Salvando os pesos do modelo

  • Os números usados para salvar os pesos são arbitrários e podem ser ajustados dependendo do desempenho do modelo.
  • É importante salvar os pesos quando o modelo apresenta bom desempenho antes que comece a perder precisão.

Treinamento do LSTM

  • O LSTM será treinado com cinco características.
  • Antes de implantar o LSTM, ele será pré-treinado e ajustado com uma taxa de aprendizado menor.

Estado oculto do LSTM

  • O estado oculto do LSTM mudará ao longo do tempo e será usado como saída.

Esta seção aborda a monitoração do aprendizado, salvando os pesos do modelo, treinamento do LSTM e estado oculto.

Processo de backpropagation

Visão geral da seção: Nesta seção, o palestrante explica o processo de backpropagation em uma rede neural.

Conversão de entrada para um array numpy

  • Os dados de entrada são convertidos em um array numpy antes de serem passados para o próximo neurônio.

Relacionando pesos com saídas

  • O objetivo é relacionar os pesos com as saídas.
  • O processo de backpropagation calcula sinais e propaga esses sinais através dos pesos até a saída.
  • Em seguida, é necessário alimentar esses valores em relação a cada peso da rede neural.

Minimização da função de perda

  • O objetivo final do processo é minimizar a função de perda.
  • Para isso, é executado um ciclo que altera os pesos e recalcula a função de perda até que ela seja suficientemente baixa.

Função Sigmoid e Back Propagation

Visão geral da seção: Nesta seção, o palestrante discute a função sigmoid e back propagation.

Função Sigmoid

  • A função sigmoid é usada para obter probabilidades centradas em torno de 0,5.
  • A função sigmoid é útil para construir modelos complexos e testá-los.
  • É possível adicionar 0,5 à função sigmoid para centralizar os valores em torno de 0,5.

Back Propagation

  • O back propagation envolve a mudança dos pesos na rede neural.
  • O comando "optimizer.step" muda todos os pesos na rede neural.
  • A plataforma Blankly pode ser usada para executar back tests.

Construindo uma Rede Neural LSTM com PyTorch e Backtesting com Blankly

Visão geral da seção: Nesta seção, o palestrante apresenta a estrutura do tutorial e explica que construirá uma rede neural LSTM usando o pacote PyTorch e backtesting com Blankly.

Introdução

  • O tutorial é sobre como construir uma rede neural LSTM usando o pacote PyTorch e backtesting com Blankly.
  • A rede neural LSTM é útil para dados financeiros ou qualquer outro tipo de dados sequenciais, pois pode armazenar informações sobre entradas anteriores.
  • O palestrante irá mostrar como construir um modelo básico de LSTM e otimizá-lo para melhor desempenho.

Configurando o ambiente

  • O código será escrito no Google Colab porque permite executar código em trechos e exibir saída facilmente.
  • Para usar o pacote Blankly Slate, é necessário baixá-lo offline após a criação do modelo no Google Colab.
  • As bibliotecas necessárias já estão instaladas no Google Colab, mas se estivessem sendo executadas em outro lugar, seria necessário instalar as bibliotecas manualmente.

Construindo o modelo

  • Serão importados os pacotes necessários: Blankly, NumPy, Pandas e PyTorch.
  • A rede neural pode levar vários indicadores diferentes (RSI, MACD etc.) para tomar decisões de negociação mais informadas.
  • O palestrante usará RSI, MACD, volume e preço para este modelo específico.

Conclusão

O tutorial mostra como construir uma rede neural LSTM usando PyTorch e backtesting com Blankly. O palestrante explica como configurar o ambiente e construir o modelo.

Janelas Deslizantes

Visão geral da seção: Nesta seção, o palestrante fala sobre janelas deslizantes.

Janelas Deslizantes

  • As janelas deslizantes são mencionadas como uma técnica para análise de dados.
  • Para obter os dados de preço e volume, é utilizado o comando "interface.history".
  • Os preços são armazenados em uma variável chamada "base.history".
  • É definido um tamanho de sequência de 8 e um tamanho de saída de 3 para a geração dos episódios.
  • O preço é transformado em porcentagem diária usando list comprehension no Python.

Instalação do Blankly

Visão geral da seção: Nesta seção, o palestrante fala sobre a instalação do Blankly.

Instalação do Blankly

  • O palestrante menciona que houve problemas na instalação do Blankly no Google Colab.
  • É perguntado qual versão do Python está sendo usada.
  • O problema é resolvido ao corrigir um erro na digitação do nome "Blankly".
  • São criadas variáveis para armazenar os dados de preço e volume.

Inicialização

Visão geral da seção: Nesta seção, o palestrante fala sobre a inicialização do modelo.

Inicialização

  • O palestrante começa a falar sobre a inicialização do modelo.
  • É mencionado que o estado da estratégia é central para o modelo.
  • É explicado como obter os dados de preço e volume usando "interface.history".
  • Os preços são armazenados em uma variável chamada "bars".
  • São adicionados indicadores RSI e MACD ao modelo.
  • São definidos os parâmetros de geração dos episódios.

Engenharia de Recursos

Visão geral da seção: Nesta seção, o palestrante fala sobre engenharia de recursos.

Engenharia de Recursos

  • É explicado por que é importante escalar as variáveis em um modelo neural.
  • O preço é transformado em porcentagem diária usando list comprehension no Python.

Desculpe, mas não recebi o arquivo de transcrição para criar as notas. Por favor, envie o arquivo de transcrição para que eu possa começar a trabalhar nas notas.

Sinais e Previsões

Visão Geral da Seção: Nesta seção, o palestrante explica como obter sinais de previsão para negociação.

Obtendo Volume

  • Para obter volume, é necessário chamar as variáveis de estado do modelo.
  • Os dados são coletados nos últimos cinco dias.
  • Os dados são alimentados em um sensor Pythor para executar o modelo.

Lógica de Compra e Venda

  • A lógica de compra e venda é baseada na previsão média dos próximos três dias.
  • Se a previsão média for superior a 1, a compra é recomendada. O valor da compra é proporcional à diferença entre a previsão média e 1.
  • Se a previsão média for inferior a 1, uma venda é recomendada. O valor da venda é proporcional à diferença entre 1 e a previsão média.

Backtesting

  • É possível adicionar eventos usando FTX para backtesting.
  • O backtesting mostra que os valores obtidos foram bons o suficiente para serem lucrativos.
  • É possível replicar os resultados carregando os pesos em outro modelo com arquitetura idêntica.

Upload para Blankly Slate

  • O processo de upload pode ser feito usando a interface de linha de comando.

Introdução

Visão geral da seção: Nesta seção, o palestrante introduz o que será abordado no vídeo.

  • O palestrante explica que o vídeo é sobre como criar um site usando HTML e CSS.

Configurando o ambiente de desenvolvimento

  • O palestrante recomenda usar Visual Studio Code como editor de código.
  • Ele também sugere instalar a extensão Live Server para visualizar as alterações em tempo real.

Criando a estrutura básica do site

  • O palestrante começa criando um arquivo HTML vazio e adiciona as tags básicas, como <!DOCTYPE html> e <html>.
  • Em seguida, ele adiciona as tags <head> e <body>, explicando suas funções.
  • Ele também adiciona uma tag <title> para definir o título da página na guia do navegador.

Adicionando conteúdo ao site

  • O palestrante começa adicionando um cabeçalho à página usando a tag <h1>.
  • Em seguida, ele adiciona um parágrafo usando a tag <p>.
  • Ele também mostra como adicionar imagens usando a tag <img>.

Estilizando o site com CSS

  • O palestrante explica como vincular um arquivo CSS externo ao arquivo HTML usando a tag <link>.
  • Ele mostra como usar a propriedade CSS "background-color" para alterar a cor de fundo da página.
  • O palestrante também explica como usar a propriedade "color" para alterar a cor do texto.

Adicionando estilos ao cabeçalho

  • O palestrante adiciona uma classe ao cabeçalho usando o atributo "class".
  • Em seguida, ele cria um seletor de classe no arquivo CSS e adiciona estilos personalizados ao cabeçalho.

Adicionando estilos ao parágrafo

  • O palestrante adiciona uma classe ao parágrafo e cria um seletor de classe no arquivo CSS.
  • Ele mostra como usar as propriedades "font-size" e "line-height" para alterar o tamanho da fonte e o espaçamento entre linhas do parágrafo.

Conclusão

  • O palestrante conclui mostrando como adicionar mais conteúdo à página, incluindo links e listas.
Video description

Neural networks and AI have taken the world by storm. Here we see how to utilize technical indicators combined with LSTMs to make better predictions for trading algorithms. This webinar was done in our discord! Check out our docs: https://docs.blankly.finance/ Join our Discord: https://discord.gg/kS7Rk6knzU Check us out on twitter: https://twitter.com/blanklyfinance Our Website: https://blankly.finance/ If you have any questions, suggestions, or concerns, feel free to reach us at hello@blankly.finance!

Building & Deploying a Neural Network for Trading - Blankly Webinar | YouTube Video Summary | Video Highlight