Skip to main content

Descubra Como Obter Preços Históricos de Criptomoedas na Binance Usando JavaScript

No mundo das criptomoedas, o acompanhamento de preços históricos é crucial, principalmente para investidores que desejam tomar decisões embasadas e cumprir com a documentação necessária para o Imposto de Renda. Neste guia, vamos explorar como você pode utilizar a API da Binance para acessar e recuperar esses dados utilizando JavaScript. Vamos começar!

Introdução

As plataformas de negociação de criptomoedas, como a Binance, oferecem uma vasta gama de ferramentas que facilitam a automação de operações. Contudo, para aqueles que operam com robôs de criptomoedas, é fundamental ter acesso a cotações históricas, que podem afetar não apenas as estratégias de compra e venda, mas também as obrigações fiscais. Aqui, você aprenderá a configurar um projeto em Node.js e a utilizar a API da Binance para obter preços históricos de criptomoedas.

Descubra Como Obter Preços Históricos de Criptomoedas na Binance Usando JavaScript

1. Configurando o Projeto

Antes de começarmos a codificação, é importante preparar o ambiente. Neste tutorial, utilizaremos o Node.js, que deve ser instalado em sua máquina. Se você ainda não tem o Node.js configurado, verifique tutoriais disponíveis para instalação.

Passos para Inicialização

  1. Crie uma Pasta: Nomeie-a como binance-historic-price.
  2. Inicialize o Projeto: Navegue até a pasta pelo terminal e execute o seguinte comando:
    npm init -y
  3. Instale Axios: Este pacote facilitará a realização de chamadas HTTP para a API. Execute:
    npm install axios
  4. Crie o Arquivo Principal: Insira um arquivo chamado index.js e prepare seu projeto para execução.
const axios = require("axios");
const readline = require("readline/promises");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    terminal: false
});

Com isso, seu projeto está inicializado, e você já pode interagir com ele via terminal.

2. Coletando Informações Essenciais

Agora, vamos criar uma função que permitirá ao usuário inserir dados necessários para a consulta de preços históricos. Precisaremos do par de criptomoedas, da moeda fiduciária e da data.

Exemplo de Código para Coleta de Dados

async function start() {
    console.clear();

    let symbol = await rl.question("Informe o par de moeda (Ex: BTCUSDT): ");
    symbol = symbol.toUpperCase();

    let fiat = await rl.question("Informe sua moeda fiat (Ex: BRL): ");
    fiat = fiat.toUpperCase();

    let date = await rl.question("Informe a data (yyyy-mm-dd): ");
    if (!/\d{4}-\d{2}-\d{2}/.test(date)) {
        console.error("Data inválida, o formato é yyyy-mm-dd!");
        process.exit(0);
    }

    const timestamp = Date.parse(date);
    console.clear();
    console.log(`Preço para ${symbol} em ${new Date(timestamp)}: `);
}

Com essa função, o usuário será convidado a inserir os dados necessários. Agora, precisamos acessar os pares de moedas disponíveis na Binance.

Coletando Todos os Símbolos

let allSymbols = {};

async function loadAllSymbols() {
    const { data } = await axios.get(`https://api.binance.com/api/v3/exchangeInfo`);
    for (let i = 0; i < data.symbols.length; i++) {
        const symbolObj = data.symbols[i];
        allSymbols[symbolObj.symbol] = { base: symbolObj.baseAsset, quote: symbolObj.quoteAsset };
    }
}

Esta função acessa a API da Binance para coletar informações sobre todos os pares de moedas.

3. Obtendo o Preço Original

Para cumprir com a necessidade de análise de preços, precisamos acessar os dados históricos e obter tanto o preço original quanto o preço convertido em moeda fiduciária.

Exemplo de Função para Obter Preço

async function getSymbolQuotation(symbol, timestamp) {
    console.log("Carregando cotação para " + symbol);
    const { data } = await axios.get(`https://api.binance.com/api/v3/klines?symbol=${symbol}&interval=1d&limit=1&startTime=${timestamp}`);
    return {
        time: data[0][0],
        price: parseFloat(data[0][4])
    };
}

Esta função retorna o preço de fechamento do par de moedas no dia específico solicitado.

Implementação na Função Principal

Após carregar os símbolos, podemos chamar a função para obter a cotação.

try {
    await loadAllSymbols();
    const symbolObj = allSymbols[symbol];
    const cryptoQuotation = await getSymbolQuotation(symbol, timestamp);
    console.log(`${symbolObj.quote} ${cryptoQuotation.price}`);
} catch (err) {
    console.error(err.response ? err.response.data : err);
}

Conclusão

Agora você possui um projeto funcional que permite acessar os preços históricos de criptomoedas na Binance utilizando JavaScript. Este conhecimento pode ser expandido e adaptado para diversas funções e aplicações, como robôs de trading e relatórios financeiros. Não deixe de comentar abaixo suas experiências ou dúvidas, e compartilhe este tutorial com outros entusiastas de criptomoedas!

Deixe uma Resposta