Vídeos

Como criar bot para Binance em Node.js (comprar e vender Bitcoin)

Thamyres Nunes
Escrito por Thamyres Nunes em 06/05/2021

Olá, tudo bem? No vídeo de hoje eu vou te ensinar a criar um robô (bot) trader de criptomoedas (Bitcoin, etc) que vai operar sobre a exchange Binance, a maior do mundo e com as melhores taxas. E vou te ensinar do completo zero, então não se preocupe se nunca utilizou Node.js antes! Se gostou do vídeo, não esqueça de deixar o seu like e se inscrever no canal.

Referências:

– Cadastre-se na Binance: https://www.luiztools.com.br/binance

– Texto e Fontes: https://www.luiztools.com.br/post/como-criar-robo-trader-da-binance-em-nodejs/

– Como obter as chaves: https://binance.zendesk.com/hc/en-us/articles/360002502072-How-to-create-API

– Documentação oficial da API: https://developers.binance.com/

– Envio de emails em Node.js: https://www.luiztools.com.br/post/como-enviar-emails-em-node-js-usando-sendgrid/

– Meus cursos: https://www.luiztools.com.br/meus-cursos?utm_source=youtube&utm_medium=link&utm_campaign=meus-cursos&utm_content=binance

– Meus livros: https://www.luiztools.com.br/meus-cursos?utm_source=youtube&utm_medium=link&utm_campaign=meus-livros&utm_content=binance

– Minhas redes sociais: https://about.me/luiztools

Vídeo da parte 2: https://youtu.be/0VLNqY3T7nI

Um abraço e sucesso.

Prof. Luiz

o Olá tudo bem Aqui é o Luiz e no vídeo
de hoje eu vou lhe mostrar como fazer um
robô Trader em cima da estante balança
sim a maior assistente do mundo e com as
melhores taxas onde é mais interessante
fazer esse tipo de robô para comprar e
vender que estão elas no Bitcoin e
outras estão sendo assim tu interessa
fica aí no vídeo com esse bem legal né
é o primeiro passo é você acessar a luz
toolz.com.br Bárbara né é de Nancy e
criar a sua conta uma vez uma conta
criada você vai Ativar todos os
mecanismos de segurança isso não é por
causa do tutorial é porque isso é
importante realmente para você para sua
segurança e uma vez com todos mecanismos
ativados né quando ele meio validade SMS
validado coisa do tipo você vai criar
uma chave de api se você não achar isso
no painel dá uma olhada descrição do
vídeo que eu coloquei ali o link na
distro ções E como você cria a chave de
api agora são duas informações a chave
da p i e os Secret dapei essas duas
informações são extremamente necessárias
para você utilizar qualquer roubou de
trade na base incluindo o que a gente
vai construir juntos aqui
o próximo passo Você vai no js.org e Vai
em baixar a versão LTS do node para o
seu sistema operacional só avança até o
final e conclua a instalação quer saber
se fala corretamente Abra o terminal
dinheiro comando seja do hino do Linux
não importa e roda o comando no outro
espaço menos ver ele tem que imprimir a
versão do novo falar da nossa marca
próximo passo baixar e instalar o visual
Studio code acessando code.do. Com você
tem um botão azul bem grande aqui para
baixar para o seu sistema operacional
apenas baixa instala avançando até o
final no menu iniciar uma [ __ ] de
aplicativos você vai conseguir executar
e abrir ele vendo uma tela parecida com
esta que se tudo correu bem agora crie
uma pasta no projeto na sua máquina eu
costumo criar dentro de novo projeto
ainda não ceder não deu por hoje
e quem me kadir balance vamos entrar
dentro da pasta banho e vamos fazer a
criança comando ele PM que aumentou de
pacotes not init para inicializar os
projeto menos Y para dar um viés para
todas as configurações padrões o que que
nós vamos precisar de dependências aqui
Neto no projeto no GPS né e utiliza
muito as dependências muitos pacotes de
terceiros mas não precisar aqui do axios
e do Dote and apenas pelo menos etapa
Inicial Então como é que a gente tá os
pacotes npm instal isso na página do
projeto Buzz é
O axios que é um cliente http que ele
vai usar para fazer chamadas até up da
balança e Dotz envie tão pacote que a
gente utilizar para carregar as
configurações do nosso projeto
Se você dá um enter ele vai baixar e
instalar Esse pacote uma pasta no de
modo dentro do seu projeto vamos usar To
The Code
a opção Open folder procura onde é que
tá a pássaros são projeto meu caso no
olho pro balance Abrir isso aqui
primeira coisa mas como é que você faça
que é para não esquecer é criar um novo
arquivo que você pode fazer clicando
aqui no botão de mais do que vem e o
nome desse arquivo é ponto envie só isso
e esse ponto em é o arquivo de variáveis
de ambiente a gente vai colocar as
configurações a nossa aplicação e com
frações são essas que a pessoa uma
configuração api underline URL e
maiúsculo vai precisar de uma
configuração Troller underline interval
também maiúsculo uma API underline aqui
outras Secret underline aqui e uma
última profitability Beleza o que que
são essas variáveis aqui a play URL você
vai botar o caminho até a perda abana a
base possui várias apis a que a gente
vai utilizar aqui é a padrão que é a
https://ap. Bairros.com/up Esse é o
endereço base vai ser utilizado para
nossas chamadas do nosso robô a partir
dele não vai necessitar outros pedaços
de endereço conforme a ação que a gente
quiser fazer lá na barra app que explica
de quem és
em ações ou se obtém quando você gera a
sua chave de api no seu painel
administrativo na sua conta mas não
informe não divulgue essa informação
para ninguém se alguém tiver acesso as
duas Chaves essa pessoa vai poder fazer
compra venda etc na sua carteira da
banana em seu nome então se você
pretende por exemplo versão mais projeto
no Beach ou algo do tipo além de colocar
esse como privado que eu recomendo você
deve também criar aqui na raiz um ponto
kit e de Nori e minúsculo preferência né
E dentro dele vai colocar as pastas ou
arquivos que você não quer que se tornem
públicos que vão selecionados então
ponto ainda eu não quero ser acionado EA
nude models também a gente não costuma
funcionar né que os pacotes aí ficam só
nossa marca local mesmo fica um
repositório beleza por questão de
segurança ao Realmente você não vai ver
né A minha aqui na minha assim que eu
fiquei Cola interval é o espaço de tempo
Entre
a consulta Se o Cláudio vai fazer queria
ficar rodando lá né gente 417 mas depois
de quanto tempo que ele vai bater nessa
presa balance para monitorar o mercado
eu vou fazer alguma outra ação
e esse valor aqui tem que ser em
milissegundos onde mil é um segundo eu
não recomendo você colocar menos de mil
para você não bater demais na pele deles
eles daqui a pouco te bloquear e eu acho
que 3 mil um tempo bom só cara três
segundos meu Cláudio vai fazer alguma
coisa e profitability seria margem de
lucro se você quer que seu Troller
quando ele compre uma criptomoeda por
exemplo o Bitcoin que automaticamente já
coloque para vender com o ágio Não era
com o lucro esperado você pode
configurar isso aqui então por exemplo
se eu quiser aquele ganho sempre 10 por
cento acima do que eu paguei eu posso
colocar um ponto um aqui por exemplo a
Então esse valor decimal um ponto mangás
por cento 1.055 por cento fazer o tiro
eu tô aqui só as configurações que vai
precisar Beleza se você não tem essas
duas Chaves aqui até agora neste momento
não tem problema segue comigo depois
pertencia isso próximo passo Vamos criar
o arquivo principal coração do robô que
na raiz nosso projeto vou clicar aqui no
botão de carga aqui novamente vou criar
um index. JS então ele falou que ia te
dar é para arquivos de inicialização da
aplicação
e como é que eu queria um robô que de
tempos em tempos fazer alguma coisa em
Jesus Christ eu posso usar o set
interval tem que ser the interval faço
e ele vai executar uma função certo aqui
a fazer uma função em x tempo onde é que
tá a minha configuração do tempo tá lá
na verdade ambiente como é que o acesso
ela comprou essas é o processo tá
rodando aplicação. Em ficar um ambiente.
O nome da variável flower underline
intervalo
Ah beleza então Esta função aqui vai ser
executada a cada este o tempo vamos está
funcionando para dar um console logo
aqui teste certo então a cada esse tempo
a falar como três segundos eu vou
imprimir teste no console beleza antes a
gente testar para que esta configuração
esteja acertada corretamente ela fala
nosso arquivo com doente
é aquela venha parar aqui corretamente o
que carregar aquele ponto and da
inicialização de um projeto tão aqui
vamos configurar o script de
inicialização vamos o pack.de assunto
arquivo de configuração Geral do projeto
e dentro dessa são scripts vamos
adicionar um script com o nome de estar
o que ele vai executar as seguintes
instruções mas é node index-tan vai usar
o executável do Norte para inicializar
só fica só a partir daqui vindo aqui JS
mas ele vai passar vai ter a Flag – r a
configuração – r
e você paga como.ar/config O que quer
dizer isso – R é de Rick Fire são modos
que ele precisa carregar antes do seu
projeto começar tô aqui tá dizendo que
ela carrega na nossa nosso pacote Dote
em a parte de configuração dele antes do
meu endereço inicializar o que que já
tinha vá configurar fazer vai ler esse
ponto em aqui e vai sentar suas
variáveis na memória da minha aplicação
que a Justamente que eu preciso tá aqui
só que funciona agora voltando ao
terminal na pasta baiana seu rodar npm
start Eles é que tá aqueles que os parte
do pack de Jason para botar nosso amor
para funcionar
é a cara três segundos ele vai imprimir
teste Beleza então nós robô tá
funcionando né
Ah tá gostando do vídeo Então já deixe
seu like aí me ajuda a divulgar esse
vídeo divulgar o meu trabalho meu canal
é bastante trabalho fazer vídeos como
esse de programação e configuração esse
tipo de projeto e o seu like Pode
parecer algo super bobo super simples
mas me ajuda muito com o trabalho que eu
faço aqui no canal então quando com sua
ajuda mas que a gente quer que ele faça
o primeiro passo como você criar um robô
de trade ele tem que analisam de cada
tem que monitorar o mercado para poder
fazer uma análise em cima das raízes ele
fazer uma tomada de decisão ou não nós
tem começar pelo monitoramento do
mercado
e para mim separar as responsabilidades
ficar um código mais fácil dar uma
atenção evolução depois vamos criar um
novo arquivo aqui com o nome de ap. JS
aqui vai colocar as funções que vão
fazer as chamadas a PM da Bahia é o que
a gente chama de vaper né Ele é um rolo
com um PA cotamento da p i w não lembro
que a gente falou um pacote chamado
axios e vai usar o Asus aqui já começar
importando aqui um axios é com shakes
recebe o rei Fire jacchus e com esse
objeto aqui se eu consigo fazer chamadas
http aqui é o protocolo de comunicação a
internet vamos começar a criar uma
função a sempre pano chão Publique col
e o que que essa função a que a
e as chamadas a api da Balancear com
todas muito parecidas mudam os
parâmetros mas estrutura dela é a mesma
então você sempre URL base vou ter lá
onde Point e botou os parâmetros
passados na Ford Ranger que aquela parte
da url que vai depois do ponto de
interrogação então como isso tudo é
sempre a mesma eu vou ter uma função
genérica que eu chamar de público e col
e ela vai montar a requisição conforme
os padrões da balança baseado nos
paramos para passar para ela eu coloquei
como e sinto aqui no início porque ela
vai ser assim colar certo se você não
entende programação assíncrona ainda eu
vou deixar aqui um card recomendando um
outro vídeo aqui do meu canal porque a
base de formação de JS é a sigla o que
que eu vou precisar aqui vou fazer um
parâmetro pef e não parâmetro deita que
é o caminho e os dados da minha
requisição vou começar aqui criando um
parquete né que a caso de erro
e eu tenho para onde correr eu vou
simplesmente logar que no console causa
de erro pra gente o que aconteceu e como
fazer aqui em const result recebe um
await the axios abre parentes vamos ao
aqui Como ter uma função e o aço como
função ele espera um objeto de
configuração por parâmetro primeiro
obter furar é um metade né que é o verbo
http que ele vai utilizar na aquisição
até pode colocar esse como parâmetro não
é com o valor de fogo aqui ó de Kate
certo então se não for passar disparamos
ele vai ser Vert beleza que é para gente
gasta para Obter dados da Play segundo
parâmetro a gente passa aqui para
configurar laxus é a URL e aqui vão ter
pegar o que pegar o próximo. Em ponto Up
a ver lá no RL vou quando pegar também o
POF é qual caminho da requisição e o que
vem depois do caminho de aquisição são
os parâmetros da requisição que ele deve
ir na cor
e nem sempre eu vou ter parâmetros tava
quando eu tiver ele vai na quarta então
mas a oração depois do caminho da
requisição eu vou pegar os parâmetros na
querystring a partir dos objeto deita
aqui só que eu tenho que arrumar esse
objeto no padrão da Policlínica
interrogação parâmetro igual valor &
parâmetro o valor e assim por diante
para converter um objeto para este
formato de caratingui a gente vai usar
um pacote do próprio molde chamado
carstream vou fazer aqui um corte cores
Pink e Quai
E aí quase Tang daí com esse objeto aqui
eu vou pegar uma linha antes e vou dar
aqui um conste que é essa recebe se veio
deita então foi isso ing.es with the
deita
se você não tem que fazer além de sítio
Onde fica aqui eu tenho que colocar um
ponto de interrogação no início para
começar a correr sangue tá então eu vou
usar Contemple triste no curso swing.com
Fire deita bota uma interrogação aqui
por quê que eu usei aqui essa
interrogação esse dois pontos tá depois
ele ter feito isso normal aqui é
operador ternário ele é o wi-fi e uma
linha só é pode ser utilizado quando tem
muitos muito simples começa aqui por
exemplo a então ele faz o wi-fi né ser
isso então isso se não aquilo Beleza
então agora com esse objeto que é esse
que nada mais é do que é o meu deitar no
formato de Cruz fim eu vou concatenar
ele aqui também na minha URL é minha
chamada cê tudo deu certo o meu result
né vai ter uma resposta válida da minha
querida da Barra
E aí dentro do campo deita ele vai ter o
que me importa da Inquisição que são os
dados de retorno dela tá pronta que que
eu usei uma Leite né que é para somente
retorne depois que termine a chamada né
do axas a api da Barra beleza essa
função pública Call a gente não vai
exportar ela para uso lá pelo robô ela
vai ter os internos aqui desse modo lá
para ir em cima dela já construir Outras
funções que estas sim são as que fazem
alguma coisa de útil na baiana se essa
aqui é genérica ela serve como base para
as outras então sopra fim de teste eu
vou criar aqui uma função esse link
function time beleza que que esse time
vai fazer ele vai dar um retorno em em
pão e Coca para nós para o genérico ele
de tema vem passar o pé se deita e o
método eu vou passar nesse caso aqui só
o pé tá Qual foi o nosso PF vai ser/V3
que a versão da Pele que a gente vai
utilizar/time
e é de tempo
Oi e aí no final do módulo de um áudio
ponta esportes de time então
transportando para fora desse módulo
somente a função timer função publicou é
de uso interno que que você vai fazer
ele vai passar para publicou só é assim
de ponte que vai ser concatenado com
apei URL festa aqui perto e esse time
aqui dispara balance né Pergunta para
ela qual é o horário aí não tô servidor
e ela vai me retornar é só útil para
gente fazer um teste talvez você pensa
depois algum uso mais interessante da
time foi lá só pra gente fazer um teste
aqui nos comunicar corretamente com a
perda da mãe pois a visão ping também tá
ele tem uma função de pedir para isso
também eu não vou passar linda e também
método tá Então deita que vai ficar
vazio logo não vai ter que ir junto e o
método de por favor vai ficar Grete
vamos voltar para o CNPJ essa agora
o universo primeiro teste quatro
segundos o que queria fazer que nem ter
que importar apê estão com chapei
percebe o rei Fire que ponto o barraco
aí quando somos pacotes na instalados no
load mod usar não preciso botar o
caminho daqui vai botar o nome do pacote
mas aqui com a Feia um modo o nosso que
passar o caminho até ela tem um ponto
baixo na pasta atual né
bom então aqui a cara até segundo queria
fazer agora ele vai chamar uma pele
ponto time olha um ponto importante aqui
esse aquele pos time ele retorna na dica
do do do qual Dilma promete uma prova
Esse é algo que vai acontecer no futuro
então se eu quiser né que Imprima
Somente depois de retornar lá da pele
uma resposta eu uso ao leite aqui antes
do time e para poder usar hoje que
dentro a função na qual eu estou ela tem
que ser assim Aí tu bota assim que aqui
ao leite aqui e tudo vai funcionar como
deveria vamos voltar para o terminal npm
start e agora a cada 3 segundos ele tem
que imprimir a hora no Servidor da Bahia
Olha aí tá implemento aquilo ali talvez
não seja uma hora para você mas não uso
dor é que somos timestamp número de
milissegundos desde 1º de Janeiro de 970
que eles chamam de uni que você toques
time então ele serve como uma hora tá
bom
a parte de transformar isso aqui depois
para lá usando acidente a beleza é só
botar funcionando agora ele não apenas
neve que para mim de mensagem no console
mas imprimi a hora do Servidor da baiana
no consultório borra claro que a gente
quer fazer uma coisa mais de útil com
ele a gente quer monitorar o mercado
Então vamos ver agora a função de
monitoramento do mercado vamos voltar
para Nossa Felipão Já parece buscar uma
outra função Aí sim function that a
Oi e essa função que vai fazer ela vai
dar um return the Public Call passando o
quê Qual é o end Point para para olhar
como é que tá o mercado Tá eu vou ler o
mercado sobre a ótica do livro de ordens
né do Order book para olhar o Order book
eu uso um app chamado déficit da balança
tá isso que eu tô falando tá não vou
comentar ação oficial da perda baiana eu
vou deixar aqui na descrição também
então ela o caminho para essa p a barra
ver 3/7 e para esta aí eu tenho que
passar parâmetros ao menos um mas é que
eu vou passar dois quais são os dois
parâmetros
Qual é o símbolo que já vou explicar o
que que é e o limite que eu também vou
explicar o que é esperamos aqui a gente
vai esperar eles na função theft
bom então um parâmetro Symbol por padrão
eu vou colocar btc BRL tudo e músculo
que que é btcbrl então símbolo o símbolo
é o par de moedas que você quer saber
informações o que você quer transacionar
então eu quero saber né bitcoins em
Reais brasileiros tá então esse amor de
força passar ali um outro a configuração
não é de outra que tem uma olhada e
outra unidade monetária comum eu vou
trocar ali ele vai fazer nós vamos
trazer o livro de ordens daquela moeda
naquela unidade Humaitá i
Oi e o segundo parâmetro o limite é
quantas ordens eu quero que sejam
retornados imagina que eu vou consultar
o livro de ordem ainda bem não fica
maior Exchange do mundo aliás Olha
quando a gente vai fazer a construir um
bote de trave em cima da maior Exchange
do mundo tem isso não vai no Haiti eu
não sei o que vale então dá uma força aí
já deixa o like aí se você não é
inscrito no canal mas eu tô escrevendo
acabou de bater quatro mil inscritos
recentemente Me ajuda aí a buscar a
próxima marca é de cinco mil inscritos
por exemplo eu publicar mais vídeos com
você no canal causa a gente continuar
crescendo Então imagina que eu vou
consultar o livro de ordens da maior
Exchange do mundo você vai fazer todas
as ordens da loucura é que limitar o
número de ônibus que eu vou trazer o
mínimo é cinco a botar Tem um limite de
é esse deve tá aqui eu vou exportar aqui
através do módulo conta que partes
Beleza então os outros a nossa que já tá
é se vamos tirar aquela aquele time e
agora nós vamos utilizar Odete então nós
robôs a cada 3 segundos ele vai
consultar o livro de ordens de Bitcoin
né me fazendo os preços em Reais então
eu não passou nenhum parâmetro para
pegar os valores de fouquet a btcbrl M5
vamos voltar para o terminal npm start
agora cara até segunda eu bater no livro
de ordem e trazer as informações
me derrubar aqui para não não nos
atrapalhar ok que nos trouxe ele me traz
um Array de bits né que seriam os lances
as ofertas o quantas pessoas estão
querendo pagar por Bitcoin a empresa que
são as ordens de compra da maior para
baixo mas de forma decrescente então
maior preço porque ele pagar agora neste
momento o Bitcoin é 300 22508 então
querendo comprar 0.33 bitcoins a esse
valor e do outro lado os testes
E essas são as ofertas de vendas ordens
de venda o que que as pessoas estão
querendo vender a conta ficando vender
os seus bitcoins Então nesse momento o
valor de venda mais barato então tem
ordem crescente olhando a mais barato de
Bitcoin é 322 1623 reais e tem um volume
de 0.017 bitcoins a este valor
disponíveis no mercado da Bahia estão
com base nessas informações de Billy e
de esc você consegue criar toda a
inteligência do seu robô E aí não sou eu
o programador que vou conseguir te
ensinar alguma coisa nesse sentido aí
você vai te dar uma saudável te dar uma
olhada no mercado o que que é barato que
é caro quando é que eu vejo tendências
coisa do tipo mas
E se eu pegar aqui eu invejo imprimir
isso vai pegar um conste result vai
receber este ao leite aqui da pele. Deve
e eu imprimi aqui ó vou tá aqui Highest
vai é o maior preço de compra vai ser o
resulte na posição zero grade Bis na
posição zero né result. Dele na zero e o
primeiro valor é uma rede a Reis né A
primeira porção do rei é o valor você
então na zero a zero não é uma matriz aí
Quem viu uma três na na faculdade ou no
técnico a matriz né E aqui o lowest Hell
é uma menor preço de vendas da invés de
bits esc00 também é o menor preço de
venda você pode por exemplo vai fazer um
teste vou precisar aqui carregar aqui o
preço do céu e converter ele
e para um número né fazer com parse.int
no preço de venda Ainda posta sala se o
valor de venda tá menor do que x de você
vai pensar o valor aí que seria um
indicativo de que tá barato comprar né
quando Tô vendendo esse preço tá barato
que comprar Osasco tiver menor do que
comprar eu falo tá morto teste eu posso
pegar aqui converter o valor de compra
fazer a mesma coisa só que no vídeo é
E se o by tá maior do que sei lá 230 mil
para você vai pedir para o robô e avisar
a hora de vender né tá em alta a gente
compra baixa bem de na alta né você não
botar aqui esperando mercado se mexer
Beleza vou mandar rodar agora
e ele não vai mais me permitiu aquele
livro de compras e vai imprimir uma
inteligência então mais alto de venda e
compra mais baixo de venda é uma hora de
vender segundo na formação do meu robô
miserável é um gênio Claro qualidade
apenas informar você aqui você pode
programar esse robô para lhe enviar um
e-mail como namorada descrição tem o
link lá no Play All meu de como você
pode enviar e-mail via node.js é bem
tranquilo de fazer ou você pode
programar este robô para fazer a compra
ou fazer a venda em seu nome aí entra
com as configurações de app que ia tem
cerca de que a gente nem utilizou aqui
mas que você vai querer se você quiser
fazer compra e venda Você vai precisar
utilizar Você quer que eu te ensine a
fazer compra e venda via o robô também é
um novo vídeo no YouTube com uma parte 2
esse vídeo então definitivamente você
precisa me ajudar a tornar esse vídeo
Popular deixe o seu like no vídeo
comenta se você quer uma
e compartilha nos grupos do WhatsApp de
você participa com outros deve grupo de
serviço etc se inscreve no canal o
sucesso que esse vídeo tiver no meu
canal vai determinar se eu vou fazer uma
parte 2 ou não dele tá sentindo para
você na descrição do vídeo também você
encontra o link para baixar os Fontes
causa também que você acompanhar aqui
porque o vídeo é tudo muito rápido você
pode baixar depois dos Fundos também tem
um link na descrição um tutorial um
texto desse vídeo onde você é o final
dele tem um formulário para baixar os
homens gosto da didática do outro
projeto do Ritmo da aula então considere
também a possibilidade de dar uma olhada
nos meus cursos os meus livros que você
encontra os links na descrição aqui do
vídeo o JS da diferente não fazer apenas
esse tipo de projeto como inúmeros
outros interessantíssimos ou até mesmo
se qualificar melhor para o mercado de
programação Beleza qualquer dúvida que
você tiver deixa aí nos comentários
também tem uma hora prazer em responder
Combinado então abraço até a próxima
e com a sua ajuda divulgando esse vídeo
seja a parte 2 da construção do nosso
robô até lá

Olá, tudo bem?

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

Assista também

#5 - Bot para Binance em Node.js

Persistência Poliglota - Usando vários bancos em uma aplicação!

Gestão de Projetos com Scrum: Como Começar? (Aulão)

O que é MongoDB? E para que serve?

#4 - Bot para Binance em Node.js

O que é Node.js? E para que serve?