Criando um bot de arbitragem para corretora brasileira
Introdução
Esse projeto nasceu da necessidade de verificar se havia oportunidades de arbitragem em uma corretora brasileira, a BitPreço.
Com a publicação da API de negociação da corretora supra, disponível no link https://bitpreco.com/api, resolvi criar este robô para monitorar os preços de compra e venda do book de ofertas, a exemplo do que já acontecia com a corretora Biscoint, comprada recentemente pela corretora citada acima, e que já havia uma implementação para esse tipo de estratégia, conforme repositório do github disponivel em https://github.com/itxtoledo/biscoint-bot.
Estrutura do projeto e tecnologias
A tecnologia utilizada foi NodeJS, com algumas bibliotecas para integração com Telegram,deploy na DigitalOcean, em Docker ou usando o PM2.
Arquivos
- api.js - contem as chamadas da API.
- index.js - código principal com as funções que monitoram o book de ofertas da corretora e faz a execução de compra/venda da estratégia definida.
- .env.example - arquivo com as variáveis de configuração do robô
Como funciona?
O robô verifica a existência de oportunidades de arbitragem e tenta executá-las.
A Bitpreço conecta você a várias corretoras. É normal que durante movimentos naturais do mercado o preço de compra em uma corretora seja mais barato que o preço de venda em outra, gerando assim uma oportunidade de fazer o que chamamos de arbitragem.
Arbitragem é a ação de comprar mais barato em uma corretora e vender mais caro em outra. Descontando as taxas essa movimentação, deve resultar em lucro para o operador.
Tendo em vista a facilidade em se conectar a várias corretoras e utilizando a API de negociações da Bitpreço, escrevi esse código para exemplificar o uso em NodeJS.
Configuração das variáveis
Copiar o arquivo .env.example e gerar o .env:
- IGNATURE: gerado na corretora bitpreço
- API_KEY: gerado na corretora bitpreço
- TEST: true ou false. Modo simulação: true
- TEST_SIGNATURE: gerado na corretora bitpreço (https://simulador.bitpreco.com/)
- TEST_API_KEY: gerado na corretora bitpreço (https://simulador.bitpreco.com/)
- MARKET: Os mercados disponníveis são: BTC-BRL | ETH-BRL | USDT-BRL
- BOT_CHAT: código do chat do Telegram
- BOT_TOKEN: https://t.me/BotFather
- AMOUNT: valor em BRL
- INITIAL_DEPOSIT: depósito inicial feito na corretora
- INITIAL_DATE: data inicial de execução do bot
- INITIAL_SELL: informe true para que o robô execute primeiro venda e depois compra, false para que execute primeiro compra e depois venda. Se o seu saldo está em reais, use false, se esta em BTC ou ETH, use true.
- MIN_PROFIT_PERCENT: Informe o lucro mínimo potencial, em percentual, para que o robô tente executar a arbitragem. Valor padrão: 0.6%
- DIFFERENCE_LOGGER: exibir o log na tela
Instalação
- preencher os dados do .env
- instalar com o comando
npm i
- executar com o comando
npm start
mais informações em https://github.com/lagoanova/bitPreco-trading-arbitrage#instala%C3%A7%C3%A3o