Como criar um bot para copy trade na Binance Spot com Node.js

Bot Cripto

Como criar um bot para copy trade na Binance Spot com Node.js

Luiz Duarte
Escrito por Luiz Duarte em 31/03/2026
Junte-se a mais de 34 mil devs

Entre para minha lista e receba conteúdos exclusivos e com prioridade

Copy trade, resumidamente, é o ato de um trader A autorizar ter os seus trades copiados por um trader B (ou vários outros traders). Ou seja, se A efetuar uma compra, B efetua a mesma compra. Se A vender algum ativo, B vende também. Consequentemente, se A tiver lucro, B vai lucrar também, mas o oposto também é verdadeiro.

Existem algumas exchanges que fornecem esse tipo de funcionalidade e também existem plataformas criadas especificamente para essa finalidade. Não vou citar nenhuma aqui pois não uso esse tipo de abordagem, mas conversando com alun0s de meus cursos acabou surgindo a ideia de ensinar o básico de como você pode estruturar um bot para copy trade, para uso pessoal ou de terceiros. Falo “básico” porque copy trade vai muito além de “observar e repetir” trades de alguém. Cada trader tem a sua conta, sua realidade, etc e nem sempre copiar literalmente todos trades com mesmos parâmetros é uma boa ideia e as plataformas mais profissionais dão várias ferramentas para isso.

E por fim, para alinhar expectativas e não lhe fazer perder tempo, este é um tutorial de programação recomendado para quem já possui experiência com programação. Caso não seja o seu caso, lá no meu canal você encontra uma playlist Programação para Iniciantes, recomendado para quem tem zero conhecimento. Além disso, o que vou ensinar aqui exige que você tenha as chaves de API do investidor que vai ter os trades copiados. Então não, este NÃO é um tutorial para criar bot que copia trades de desconhecidos. Acredito que ele vá ser mais útil para quem desenvolve plataformas de bots do que para traders individuais. Também faremos apenas para Binance Spot, embora possa ser adaptado para Binance Futures também.

Se preferir, você pode assistir ao vídeo abaixo ao invés de ler, o conteúdo é o mesmo.

Vamos lá!

#1 – Preparação do Ambiente

Utilizaremos a tecnologia Node.js para programar e recomendo que use o editor Visual Studio Code. Ensino a instalar ambos no vídeo abaixo, caso ainda não tenha na sua máquina.

YouTube player

Usaremos a exchange Binance para nosso bot e portanto você precisará das chaves de API de uma ou mais contas dela. Eu vou usar apenas uma conta no tutorial e, além disso, conta de teste apenas e é o que recomendo que você faça. No entanto o bot vai suportar o copy de uma conta para múltiplas outras. No vídeo abaixo eu ensino a criar contas de teste e de produção, caso ainda não tenha.

YouTube player

Com isso você tem o ambiente preparado para programar seu bot, então vamos começar o projeto.

Curso Node.js e MongoDB

#2 – Estruturando o Projeto

Comece criando uma pasta para o seu projeto. O meu eu vou chamar de binance-copytrade-spot e dentro rode os seguintes comandos para inicializar o projeto e instalar as dependências que vamos precisar.

São 3 as dependências que instalamos, a saber:

  • dotenv: para gestão das variáveis de ambiente (configurações);
  • axios: para chamadas à API da Binance;
  • ws: para conexão na stream da Binance;

Ajuste seu arquivo package.json para que nosso projeto possa usar a sintaxe mais moderna do JS.

Agora crie um arquivo .env na raiz do seu projeto para que possamos configurar as variáveis de ambiente que vamos precisar, explico elas na sequência.

As variáveis aqui são bem autoexplicativas caso já tenha feito outros bots para Binance antes, mas segue um resumo:

  • BINANCE_API_URL: a URL da API da Binance que vai usar. Neste caso estou apontando para Testnet aqui;
  • BINANCE_WS_URL: a URL da WS-API da Binance que vai usar. Neste caso estou apontando para Testnet aqui. Se a API URL estiver testnet, aqui também de estar testnet ou vai ter problemas;
  • TRADER0_API_KEY: a API key do trader que vamos copiar os trades. Se sua URL de API for Testnet, aqui deve ser api key da testnet;
  • TRADER0_API_SECRET: a API secret do trader que vamos copiar os trades. Deve ser o par da Api key da configuração anterior;

Agora as últimas duas variáveis merecem uma explicação separada. Isso porque para cada trader que for copiar os trades do primeiro, você deve adicionar um par de variáveis a mais no .env. No exemplo acima eu coloquei apenas um par, o que indica que terá apenas um trader copiando e ficou assim:

  • TRADER1_API_KEY: repare no número após a palavra trader, ele deve ser sequencial e representa neste caso a api key do copy trader 1;
  • TRADER1_API_SECRET: o secret do trader anterior;

Assim, se quiser adicionar mais um copy trader, seria TRADER2_API_KEY e TRADER2_API_SECRET, por exemplo. Lembrando que TODOS os traders estarão no mesmo ambiente: testnet ou produção.

Este arquivo de variáveis deve ser carregado na inicialização do bot, sendo que ela irá acontecer no index.js, que vamos criar agora. Crie o referido arquivo, carregue o pacote dotenv e vamos escrever o código que vai iterar pelas variáveis de ambiente procurando pelas contas dos copy traders.

Repare que carrego somente as contas dos copy traders. O esperado para esta etapa é que o bot esteja conseguindo ler as chaves dos copy traders, só isso.

Curso Web3 para Iniciantes

#3 – Conectando no Trader Mestre

Agora o próximo passo é carregarmos as configurações do trader mestre e nos conectarmos na conta dele. A Binance permite que você “escute” todas as atualizações de uma determinada conta se tiver acesso às chaves dela. Com as chaves em mão, você deve se conectar em uma WS-API que vai estabelecer a conexão em uma stream de dados que é acionada toda vez que o saldo da conta muda, toda vez que o status de um trade daquela conta muda e assim por diante. É esse recurso que usaremos para saber o que está rolando na conta mestre e, mais tarde, replicar para as cópias.

Primeiro, precisamos estabelecer a conexão antes de se autenticar na conta mestra de fato. Para isso precisamos inicializar um objeto de conexão websocket.

No exemplo acima, eu faço a conexão e, se ela der erro, é tratada pelo handler de error. Se ela tiver sucesso, é tratada pelo handler de open. No handler de open, temos de enviar um comando de autenticação em nome da conta mestra, para que a gente passe a receber as atualizações dela. Só que esse comando deve ser assinado criptograficamente com o padrão HMAC-SHA256. Por uma questão de organização vamos criar um módulo api.js e dentro vamos criar a função de assinatura criptográfica, como abaixo.

Eu comecei fazendo os imports que vamos usar ao longo deste módulo.

Com a função de criptografia preparada, vamos usá-la no handler open da conexão para montar e assinar a requisição de autenticação.

A autenticação requer o envio (send) de um comando do tipo userDataStream.subscribe.signature informando o timestamp da sua máquina e a assinatura feita com a sua chave privada, que aqui uso a função getSignature que criamos antes. Ela espera também a API Key do trader mestre, basta passar todos os parâmetros construindo a request e depois enviá-la pela mesma conexão ws.

Se der um erro nessa autenticação, o callback de erro será acionado, caso contrário, você poderá tratar as informações que o server da Binance vai te enviar com um handler de message.

Recomendo que teste esta primeira etapa para garantir que está funcionando a conexão e a autenticação. Se o subscriptId 0 aparecer, quer dizer que está tudo certo. Esse subscriptionId serve para saber de qual usuário estamos recebendo atualização, já que você pode monitorar diversos usuários através de uma mesma conexão.

O que ele vai fazer no momento é ficar monitorando e imprimindo no console as atualizações de trade na conta em questão. Como na testnet não temos interface gráfica para fazer os trades, recomendo que faça este outro tutorial de bot spot para que rode ele em paralelo e submeta alguns trades a fim de ver o monitoramente funcionando.

Na segunda parte deste tutorial, você aprenderá como replicar os trades nas contas dos copy traders configurados.

Acesse aqui

TAGS:

Olá, tudo bem?

O que você achou deste conteúdo? Conte nos comentários.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

2 Replies to “Como criar um bot para copy trade na Binance Spot com Node.js”

Ellmo - PHOENIX INVEST

NOVAMENTE! CONTEÚDO EXCELENTE “PROJETO BOT – COPY TRADE” É IMPRESCINDÍVEL! PARA SER, E TER! EM UMA ARQUITETURA, PARA UMA PLATAFORMA “SAAS” PARA BUSINESS DE BOT. UM ADENDO! “O ÁPICE” TEM QUE SER, A GESTÃO DE RISCO. “COPY TRADE” O LUCRO! É COLETIVO “MASSS” O PREJUIZO! TAMBÉM. by EllS

Luiz Duarte

Sim, bem observado. Me foquei apenas na parte técnica de programação no artigo mesmo.