Vídeos

Como criar bot que compra e vende Bitcoin em Node.js

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

ATENÇÃO: comprar e vender criptomoedas é um investimento de risco e eu não me responsabilizo por perdas financeiras ocasionadas pelo uso deste robô experimental. Siga este tutorial por conta e risco!

— Olá, tudo bem? O vídeo de hoje é um aulão de 50 minutos onde te ensinarei a construir do zero um robô trader que compra e vende criptomoedas na Mercado Bitcoin. A ideia é que além de você construi-lo, poderá configurá-lo para comprar em baixa e vender em alta, ganhando dinheiro ao mesmo tempo em que aprende como utilizar Node.js, Axios, Orientação à Objetos, DotEnv e muitos outros conceitos de programação de crawlers. Tenho certeza que vai gostar, então já deixe o seu like e se inscreva no canal se ainda não for inscrito.

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

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

– Me siga nas redes sociais: https://about.me/luiztools

– Para baixar os fontes, visite o tutorial em texto: https://www.luiztools.com.br/post/como-criar-um-bot-de-compra-e-venda-de-bitcoin-usando-node-js/

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

– Documentação da API de dados: https://www.mercadobitcoin.com.br/api-doc/

– Documentação da API Trade: https://www.mercadobitcoin.com.br/trade-api/

Um abraço e sucesso.

Prof. Luiz

o Olá tudo bem Aqui é o Luiz e o vídeo
de hoje vai ser um aulão então esteja
preparado aí para aprender muita coisa
bacana para construir algo funcional que
serve a um propósito que é basicamente
um robô em node.js que ele vai utilizar
um broker famoso chamado no mercado
Bitcoin para fazer compra de moedas em
baixa e vendas de moedas em alta tem
vários blocos no mercado MercadoLivre
foi apenas um deles eu tenho certeza que
se você quiser adaptar o código vou te
mostrar aqui para outro broker você vai
conseguir fazer notoriamente que vai tá
usando conserto bacanas aqui a gente vai
ver com a sua objetos modularização
criou então se você tá interessado em
aprender node.js typescript e se você
gosta de Crypton moedas e salão vai ser
muito legal para você tá
bom então vamos começar Você vai
precisar do node.js Paulo nossa máquina
porque o nosso roubou vai ser construído
utilizando node.js que você vai no
js.org você baixa a versão LTS instala
ela apenas avançando do início ao fim é
gratuito e tentar qualquer sistema
operacional quando terminar de falar
você vai abrir um terminal gente comando
do seu computador né o pronto dose
Windows ó o Bash Linux não é o céu você
vai digitar node faço menos ver para ver
se o pessoal da nossa marca
e falou corretamente vai aparecer a
versão aqui a próxima vermelha que elas
vão precisar também é o visual Studio
code que vai ser o editor de código que
nós vamos utilizar esse tutorial você
baixa também gratuitamente para qualquer
sistema operacional e instala apenas
avançando do início ao fim depois falado
você vai abrir ele e vai chegar em uma
tela parecida com esta que vão te ao
console e navegue até uma pasta onde
você vai criar o seu projeto por exemplo
Navegar para você top dentro dessa toque
vou criar uma pasta node.js Bitcoin vou
entrar nessa parte de dentro da pasta eu
vou rodar o comando npm init menos y o
npm gerenciador de pacotes onde initial
comando para inicializar o novo projeto
e menos y puedes realizar ele com as
configurações padrões beleza projeto
criado volte tudo Cold e os a opção Open
Folder
e navegue até a pasta onde você criou
seu projeto no meu caso da Top no gesto
Bitcoin e mande Abrir dentro dessa pasta
você vai criar um arquivo index. JS esse
ponta essa vai ser o arquivo
inicializadores do nosso robô E aí ele
que vai dar a Cadência né de consultas
EA lógica não é grosso robô só vou
começar aqui definido por exemplo nosso
timer a nosso favor de tempos em tempos
ele vai bater na parte do nosso do nosso
Trader nosso bronca no dia que eu tô
moeda para fazer alguma pegar
informações fazer alguma operação
juntamente
O que usar para isso para fazer um timer
para usar o set time-out esta morte uma
função de Jesus Cristo que permite que a
gente Defina um reler que tem um género
é uma função JavaScript que vai ser
executada que tempos em tempos que o
tempo eu vou definir aqui do lado esse
tempo em milissegundos então se eu
colocar por exemplo 3 mil eu vou tá
falando três segundos é de bom Tom que
todas as configurações do nosso robô
estejam presente no arquivo de
configurações de ambiente de variáveis
de ambiente e não são bases daquilo
código então por exemplo vamos pegar
aqui e vamos criar mais um arquivo nosso
projeto que vai ser o ponto envie
a e nesse ponto envie nós vamos definir
uma variável aqui chamada Troller online
intervalo começa a = 3 mil estão
intervalo do crawler não é o qual era
uma pessoa boa que vai buscar
informações por causa três 1000
milissegundos então aonde eu usava 3.000
eu vou usar process.env.ci Troller
underline intervalo para que esta essa
variável aqui né então se fosse uma
variável para o intervalo do ambiente do
processo do Norte para que serve que
você já é lindo carregado essa variável
para o meu processo Donald eu vou
precisar está uma dependência aqui que é
Dote Envie para quem vão pacote Donald
para carregar variável de ambiente então
aqui no meu projeto para passar um
projeto eu vou dar o comando npm instal
o dote envie eu não vou dar o sangue
normal tá eu vou usar o dote em um traço
Safe que ele me garante mais segurança
de que o sistema só vai subir meu robô
só vai analisar se ele carregar os
horários corretamente
e não entre
e ele baixa instala o pacote para mim o
do time Safe além dele precisar de um
ponto R ele precisa de um outro arquivo.
Envie ponto example esse arquivo é um
arquivo de template então nele eu coloco
na Quais as variáveis de ambiente Quais
as configurações a minha aplicação
precisa mas não coloca o valores nela os
valores vão do ponto envie
e quando aplicação subir nelas que ser
essa festa malte aqui eu vou dizer para
ela chamar um recorde de Dote envie
traço safe.com fig
eu tirei nesse exato momento o que que
vai acontecer vai ser procurado na
aplicação na raiz a medicação um
arquivo. Encontro que contou com um
template de variáveis e deve ser
procurado o ar que ele contou Envie para
achar os valores destas variáveis aqui
se alguma não bater eu vou ter um erro
de inicialização não roubou não vai
subir se não tiver devidamente
configurado ponto importante desde já.
Envie a gente jamais compartilha com as
outras pessoas porque quem vai botar
muitas configurações a com informações
inclusive as sensíveis da sua conta do
broker dica tomadas então eu já
recomendado já que você queria mais um
arquivo chamado. 20 ignore
a e nesse arquivo você coloque ponto em
vi
se você coloque node underline mode 1 e
por enquanto é isso significa agora
fácil arquivos ou pastas listadas nele
não vão ir parar no seu repositório né
no selecionador de código nós vamos
parar no seguinte Ranger por exemplo tá
então seja que você compartilhe por
engano informações da sua máquina ou
informações para um passo a passo no de
módulos é que ela não seja ver chamada
assim na Cidade dos Mortos não são
selecionados por enquanto o que começar
nossa fazer tava dar um console. Log e
vou escrever aqui ping então a cada né
três segundos ele vai escrever ping no
meu conselho
e como é que tivesse tá funcionando
volta do terminal do comando node espaço
e o nome do meu arquivo index Ele vai
esperar um tempinho até segundos ping
nota que ele quer só uma vez certo
porque você que tem mal se faz apenas
uma vez você usar o set interval Aí sim
ele vai fazer a cada intervalo de tempo
especificado aqui então vamos lá mente
aqui na hoje ainda três segundos
primeiro ping e assim por diante então
nós roubou ficar cara três segundos né
que fazendo alguma coisa certo o quê que
é a primeira coisa que ele precisa fazer
monitorar o mercado ele precisa bater na
api do nosso Block pegasse informações
na atende teacher na que a pele que dá
informações em tempo real aí como é que
tá o mercado que leva ter essa tag dica
é pegar as informações do mercado agora
e com base nas informações e vai tomar
alguma decisão ou não Ou vai só aguardar
o próximo Shake é muito
se você não bombar dei a perder ticker
não coloca aí um valor muito baixo
decola interval para você não vou
guardar para ir de xícaras você vai ser
banido da plataforma fala comenta ação
do seu Brom que você vai encontrar os
limites não é que você pode chamar de
chamadas para minutos por exemplo no meu
caso eu vou usar o broker no mercado
Bitcoin então vou procurar documentação
da pele dele
eu ia dessa forma aqui né que eu vou
construir a minha aplicação certo fazer
a nossa documentação aqui os brônquios
geralmente têm duas apis aprende dados e
aprende negociação vamos começar pela
perder dados quer que vai monitorar o
mercado vamos voltar para o projeto aqui
e vamos criar um novo arquivo chamado
ati ponta JS que hora que eu vou fazer a
configuração da nossa p i que vai ser
usada depois pelo nem responde aparece
para fazer as chamadas a api do mercado
Bitcoin eu vou usar um pacote aqui
chamado axios Então vamos instalar ele
ele pênis tá waxy Wax usa um cliente
http ele é feito para fazer chamadas
pela internet vamos começar aqui em cima
preparando ele com axios recebe o
repaire de axios eu vou declarar logo
abaixo aqui do aqui o nosso and Point
underline up quê é URL base da PM no
mercado Bitcoin essa informação é a
primeira aqui na documentação você vai
copiar daqui a hora que depois eu vou
ter que juntar isso com a moeda e com o
método que eu quero ou
e aqui no final e aqui embaixo eu vou
definir uma classe java script que eu
acho que vai encapsula melhor a lógica
não é de consumo dessa feio vamos lá
claro mercado Bitcoin toda classe tem
que ter um consultor que a função
chamada quando a gente inicializa a
classe né Sales um objeto aquela crosta
o consultor vai esperar o config e com
base nesse config eu vou inicializar uma
propriedade config da classe
mercadobitcoin vai receber
é um objeto contendo uma configuração
chamada currency vai receber config.
Corrente tá então a qual é o andar de
moeda né unidade monetária que eu vou
estar utilizando não tá marcado eu te
conto toda essa construção que eu vou
fazer aqui tá baseada na documentação lá
só vou ficar toda hora voltando a
numeração Tá bom depois do Construtor eu
vou criar uma função genérica chamada
col
e essa função vou dizer que ela é assim
que que Como ela vai fazer internamente
chamada http chamada a internet o nome
dele trata isso de maneira assíncrona
então tem que dizer que não é função é
assimque quando eu for usar essa função
eu tenho que usar o await async await
são palavras derivadas JavaScript para
tratar com programação assíncrona E você
não está habituado com programação cinco
nem mesmo com node.js eu vou deixar aqui
em cima uma recomendação do outro vídeo
aqui no canal onde eu falo bastante
sobre a programação assíncrona com Jesus
Cristo essa função Call vai esperar um
metro de e eu vou começar ela declarando
um objeto de configuração que vai ter
nascido em propriedade headers tô
configurando aqui a requisição http que
eu vou fazer vi axios tá e o cabeçalho
vai ser o accept: application/Jason
formato bem Popular para aplicação Jesus
Cristo e aqui embaixo eu vou definir um
bloco de Pet aqui com o bloco é que a
gente faz é um coloco dentro do trem
código
em caso de um erro dentro desse bloco
ele vai ser capturado esse erro pelo Pet
Eu vou poder fazer alguma coisa que eu
te amo não vai derrubar minha aplicação
vai derrubar o meu robô por exemplo é
aqui eu vou dar no caso de erro né o
console. Erro passando o erro e vou
retornar aqui um falso por exemplo como
é que não deu certo né chamada já peguei
já aqui dentro do trem eu vou dar um
contraste response vai receber um await
the Axis. Get e o primeiro parâmetro
doggett não quer que fazer uma
requisição http para pegar dados eu tava
batendo uma url da internet uma perda
internet para buscar dados primeiro
parâmetro é a URL que eu vou bater né eu
vou chamar ela vai ser endpoint ati my
vice.com filho diz eu uso não é para
chamar para pedágio Destiny objeto
eu já consigo aquela habilidade que aqui
em cima no Construtor eu pulei ponto
corrência mais uma barra mais o método
não é que veio aqui por parâmetro Tá bom
você pode cabeça que outras formas por
exemplo ter trem você pode montar cês 30
antes tanto faz o segundo parâmetro
doggett são os cabeçalhos http que esse
nós objetos confira aqui o gatilho rodar
aguardar né o retorno dele recebido o
objeto response antes de ir para minha
de baixo eu vou poder fazer um responde.
Beira mas considera ele traz o corpo da
resposta aos dados que vieram a resposta
então essa função aqui é o futuro
genérica porque eu vou usar para todas
as operações que eu quiser né de pegar
dados na pe no mercado Bitcoin por
exemplo uma chamada mais comum que já
fazer a chamada de ti quer que a gente
aprende para ver as cor
e na cotação de uma moeda quanto que é
uma outra função aqui em cima você quer
que essa dica vai fazer ela vai retornar
nesse ponto Call que ela tá funcionando
de baixo passando um método que é o
método de Titã certo vamos começar com
essa função aqui lá no final do nosso
arquivo da pergunta essa e vou mandar um
áudio ontem que esportes mais Portal
objeto Contendo a nossa classe mercado
Bitcoin voltando a nossa JS a gente vai
encontrar aqui em cima entre Chaves
mercado Bitcoin recebe repare./Up por
quê que foi entre Chaves eu posso ter
várias coisas aqui dentro Eu quero que
ele venha pegar sua mente a classe
mercadobitcoins peguei a classe com a
classe eu posso criar um objeto vai seu
info up igual New mercado Bitcoin passa
não consegui que é um objeto com apenas
uma piedade chamada que eu esse
e como moeda que eu vou estar
monitorando no caso aqui para mostrar
como tá a gente usar as letrinhas né da
moeda caso btc aqui dentro do nosso
sétimo servo eu vou tirar esse nosso
console.log eu vou fazer agora vou
deixar um corte response vai receber um
await the info up.tv ter como eu usei ao
leite aqui eu sou obrigado a usar assim
que aqui tá eu posso usar o leite dentro
de funções há cinco anos e daí aqui logo
abaixo posso dar um console Lock the
response certo então eu vou ter a cada 3
segundos como é que tá na o btc no
mercado
é você que tá novamente aplicação Lá
começa a ter segundos ó tá sem o btc no
mercado
e eu também te adoro
as informações são essas é o valor mais
alto que ele teve então 344 mil reais um
Bitcoin nas últimas 24 horas lá mais
alto valor mais baixo 33000
é o volume de bitcoins negociados com
última negociação 335 mil a maior oferta
de compra
e a menor oferta de venda número de
ofertas em aberto e o time sempre da
data que você fez essa consulta aqui ó
é baseado nessas informações que o seu
robô vai tomar as suas decisões a iva
até a sua própria inteligência e aí eu
tipo de coisa aqui eu não tenho como lhe
ensinar aqui certo eu sou um programador
eu vou ensinar como programar a lógica
de negociação de quando é melhor comprar
quando a melhor vender esse o cabo é
você estudar e ajustar no seu robô vou
dar um exemplo aqui ou por exemplo né se
a ordem mais baixas fazendo quatro horas
foi 303000 eu posso pensar por exemplo
que
É sim chegar a gente olhar aqui o mais
alto mais baixo a gente tá falando de um
spred né que a diferença do louco o raio
de 11.878 então se a jiu jitsu pela
metade por exemplo está falando é de 5 e
considerando os fazer quatro horas
estaria um volume um valor barato Claro
que eu não tô lendo todo histórico tá
você criar algo mais elaborado você vai
ter dado mais históricos né E daí você
começar a comparar com o histórico ele
tá barato tá caro nas últimas 24 horas o
valor de baixo 339.000 seria um valor
bom de compra se eu posso fazer um teste
aqui ó se response. Já tem um objeto
Chica né
Oi Chica. Aqui ele tem o valor que estão
vendendo céu
E aí que o valor de venda for maior do
que 339.000 por exemplo eu vou colocar
aqui em console.log tá caro aguardar vez
console.log eu vou dar um retorno
ou senão eu vou entregar a mensagem tá
barato comprar inclusive né esse valor
aqui você pode estar configurando ali no
seu ponto em né que nem mostrei o
exemplo do crawler interval
e você escreve aqui no código é reinicia
a aplicação ou você faz um cálculo né
Pega ali cálculos prévios com para o
raio com Louro José quatro horas bota lá
eu acho que barato é quando tá nos dez
porcento mais barato do dia sei lá
e Deus vai tirar sua lógica agora
novamente ó tá barato comprar tá jogando
que tá barato beleza se eu mexer aqui
botar não eu só quero se cair abaixo
horas ele tá fazendo já tá cara agora
ele vai ficar ali
e quando o valor baixar de 300 a 3.000
ele vai me mandar mensagem né tá barato
comprar E aí você tem duas alternativas
ou você faz o seu robô me avisar aí você
pode mandar um e-mail Vou deixar na
descrição aqui do vídeo é um tutorial
que faz para mandar um e-mail no JS ou
você pode fazer com que o próprio robô
negocinho por você e aqui muito cuidado
eu já aviso desde já que eu não me
responsabilizo né Por falha de
programação por falhas na p&id mercado
Bitcoin por alguma loja que você
implementar errada e que venha de
repente ele dá prejuízo se você não tem
estômago para perder dinheiro com o
investimento de risco porque que tomar
investimento de risco recomendo você já
abandonar esse vídeo agora e não
programar a segunda parte aqui comigo se
você continuar você vai implementar
comigo aqui na lógica de Trader via robô
e isso não restará mente Vai ligeiro
Tá certo vai depender muito da loja que
você colocar no seu robô é por sua
própria conta e risco dito isso a pele
de negociações na casa Bitcoin é outra a
eles chamam de Tap seria trade a pena
diferente da pende dados que é pública
aberta não sei passar uma credencial
aprende negociações ela é extremamente
segura Então você vai precisar ter uma
conta no mercado Bitcoin e a conta é um
processo um pouco Moroso que uma série
de dados fotos documentos você tem que
enviar para ele não eles analisam isso
para te abrir a conta depois uma vez que
você tem a conta criada você vai ter que
gerar um pin de segurança aqui tem
instruções de como é que você gera esse
pin depois de gerar o pin você tem que
gerar uma chave de Api para identificar
o seu robô a sua aplicação
é o preço que você chamar a Cleidiane
ido na casa do Bitcoin eles vão saber
que é o seu robô da sua conta chamando e
esses dados o pin que a chave de apê I
você tem que tomar muito mas muito
cuidado com eles se alguma pessoa
tivesse essa eles ela vai simplesmente
poder fazer um robô negociar em seu nome
inclusive daqui a pouco vendeu seus
criptoativos aí por aí vá Então vamos
voltar agora para os projetos Até yjs
nós vamos criar uma outra classe
específica não é para a partir do trade
ou começando agora aqui em cima um post
them the Point underline trade line-up
que vai ser o caminho da up the trade
que é isso aqui que você pega lá votação
né do próprio
o mercado da escola agora vamos criar
outra classe vai ser a Cléia mercado
Bitcoin traje Assim Começa Uma clássica
o seu consultor e se consigo já vai
esperar um config não já te configuração
Quais são as confusões que eu botei aqui
também vou ter uma única propriedade
config né que é um objeto eu vou ter o
Mack
e vai saber de config. Aqui eu vou ter
uns Secret que vai receber de config
pontos Secret essa aqui esse ciclo ti
são as suas chaves de ap com as
credenciais o seu robô que você
solicitou no Passo 3 lá na documentação
no mercado Bitcoin vou precisar de um
pin que é uma configuração que você
solicitou lá no passo 2 na documentação
e eu vou ter por último uma coisa que eu
ensinar que é qual moeda que eu vou
estar operando nesta classe também vou
criar uma função assim que col nos
mesmos moldes da outra classe né porque
ele vai esperar o methodi e os parmiters
não é que os parâmetros do método porque
a aprende trade ela recebe parâmetros de
configuração é o quanto quer comprar
coisa do tipo frente da dá para ir lá de
dados né que eu vou dar um chega lá e
pega os dados e pronto aprende trade ela
exige que você utilize um não não se é
um conceito de computação na obrigação
para Number e os bons é que é um número
único usado apenas uma vez cada
requisição atrás
e ela tem que ter um número único dia
que estão e sempre o próximo número tem
que ser maior do que o anterior vai ter
que vir aqui algum algoritmo para gerar
esse os números únicos e forma que eles
não se repitam Então vou usar aqui por
exemplo um conte Now que vai ser um meu
dente ponto get-time questão vai me dar
o número de milho segundos da data atual
como as datas são sempre em calentando
né de milho e milho segundo isso não vai
se repetir a menos que eu voltasse no
passado né ou se eu atrasar seu relógio
por exemplo a próxima morada qt precisa
são as configurações dos parâmetros da
requisição de negociação quer dizer que
enviar na URL Como declarar aqui um let
pelo Strike Raquel cursinho e aquele
pedaço para realizar depois interrogação
né para receber um objeto com as
propriedades Tap underline metade vai
receber metade
Oi Raquel método de negociação que eu
vou fazer essa vou comprar se eu vou
vender, Tap underline não se que a mãe
dele falou no coração inscrição vai ser
o nosso Now esse objeto aqui ele tem que
ser transformado em Spring e não é
qualquer estranha no formato padrão de
curso sangue então para isso eu vou
falar um novo pacote
Tu fazes paragens vou dar que estão npm
instal co-stream presa pacote instalado
nos importar ele aqui em cima pontos que
é se recebe e Quai e piercings
a ideia aqui a gente vai usar que é se
ponto Trono fará participação do objeto
estão gerar uma string no formato
esperado lado de curtir enviar agora se
vieram parâmetro para essa função eu
tenho que anexar esperamos também em
formato de curso sangue pega esse caso
cor strenger para receber ele mesmo né e
concatena com
o comercial que é o padrão de cores cmyk
para concatenar valores né daí eu vou
abrir aqui vou tentar de trilhos aqui
que é essa e ponto strength passando o
objeto para metas publicou zeleta Quina
com sua conta não vou alterar o valor da
variável uma constante e o LED quando eu
preciso alterar o próximo passo é eu
criar assinatura digital da requisição é
um resto ortográfico onde eu vou usar é
o segredo da minha da minha peikko né
que eu irei lá para o robô é que eu tô
gravando as informações com algo
específico para que seja enviado junto
com a minha aquisição isso vai estar por
exemplo aqui alguém se passa passar por
mim né você não tiver o meu ciclo de por
exemplo e outros dados não vai funcionar
para fazer essa parte fotografia eu vou
ter que usar um pacote de curativo
Donald mesmo que é o pacote Crypton um
gato acima com ç Preto você sabe o
reparo
o decreto eu vou usar esse pacote cripto
para gerar uma assinatura né então vou
deixar aqui me conte se nasher ele vai
receber cripto. Create a gamec O que é o
algoritmo de hash para o mercado Bitcoin
espera lá na play deles conforme está
documentação espaço Qual é o algoritmo
sha512 segundo parâmetro Qual é o Secret
nesse ponto config. Secret
o circo está na CPI do nosso robô se
chama a função update um ponto update e
aqui eu tenho que passar uma string
contendo o pef da minha que existam mais
a cor strang não é URL inteira é o pf em
diante Então vamos voltar aqui em cima e
vamos mexer um pouco nisso aqui que a
gente criou eu voltei o endpoint trade
hippie e o end Point trade.tf o perfil
vai ser esse pedaço aqui ó/Tap/de 3/4
colocar ali antes Porque daí o meu trade
ipe ai vai ser o domínio mais o perfil
certo voltando para o nosso
a nossa criação assinatura usar que não
tem feito stringhi né que é estranho
entre Crazy ainda de “eu tô Marques
cifrão {endpoint trade pef interrogação
eu vou abrir aqui se fala novamente para
botar variável
a string tô criptografando o pef
completo da minha inquisição com meu
Secret usando algoritmo de hash sha512 e
por fim mano gerar não é o digest Né que
o resto fotográfico formando que o
retorno tem que ser no formato
hexadecimal Agora sim eu posso criar
minha requisição http eu vou começar ela
pelos cabeçalhos http né então consegui
headers Quais são os raios que vou
precisar o Tap traço agir e falar da
Computação na casa de como ele vai
receber o desconto configure.ac Então
cinco te uso para Santana digital e o
que eu passo aqui no cabeçalho e o outro
cabeçalho é o Tap traço Mac que é a
assinatura fotográfica então passo né o
passo a chave exposta ela não passa sem
resposta ele gera uma criptografia
aquela requisição
e como dentro McQueen swing Eu tenho um
não Se é que o valor numérico segunda
conexão eu nunca vou gerar essa
assinatura digital repetida duas vezes
tarde eu tô mesmo que alguém de alguma
maneira mirabolante de captura aquela
sua requisição ele não vai poder usar de
novo porque repetiria ali o nosso canal
né E daí a servidores na casa de Pai não
vai aceitar uma representação com o nome
repetido
bom Então esse fica a prova de captura
Além disso Claro aprender em cima dessa
sielle né que a comunicação que eu tô
com a fada do seu robô para com o
servidor dele ainda assim acesso de
algum problema e capturas aquisição
mesmo assim não vão conseguir né fazer
um ataque de Replay por exemplo
tentativa de trade na sua conta tenho
config vamos fazer é o consumo
responsável um await the Axe os ponto
aqui é sempre post tá o gato quando era
Obter dados o Poxa quando eu quero
enviar dados através de pia Ah eu sempre
envio dados para ela qual é o URL é a
Indy Point trade Piauí segundo parâmetro
vai ser a Cristo link e terceiro
parâmetro não é objeto de config e são
os cabeçalhos http segundo parâmetro que
eu passei com esse trem aqui na verdade
ele é o Bari a é o Bari ao corpo na
inquisição mas os dados estão em formato
de cone stranger
é para pegar não vai saber divisão por
exemplo você já testados response
response ponto data. Error message se
vem alguma coisa aqui cadê o erro eu vou
dar um show aqui ó na Unilever
e jogando essa mensagem de erro caso
contrário mas não deu erro eu vou
retornar um response ponto data.
Response underline daqui são as
informações aquilo que tiver a resposta
lá na documentação também então com isso
Nós criamos a função Call genérica certo
agora temos de criar soluções
específicas para fazer negociação eu já
vou exportar aqui na sacola lá embaixo
né para não esquecer então que tipo de
função específica vou precisar por
exemplo uma função para fazer compra de
moeda na internet né que me roubou a
gente ficou tá barato ele tem que mandar
comprar para fazer a função fazer a
compra nome dela vai ser Place by Order
que ela vai esperar uma quantidade média
de moeda que ela vai comprar e o livro
de Freud é o preço limite que eu quero
pagar e quando entrar Essa ordem no
livro de ordens mercado Bitcoin eu
tivesse saldo para poder pagar Aquela
quantidade
o kit vela uma ordem de venda na menor
ou igual ao limite Price a ordem vai ser
executada imediatamente agora se quando
eu bater aí eu não tiver saldo
suficiente para comprar com a quantidade
vai dar erro ou se não ou senão tiver
uma ordem de venda com aquele limite
Price a minha by Order vai ficar no
livro aguardando dá um mete aí com uma
tela Order então aqui eu vou fazer vou
dar um retorno de Deus. Qual que é a
nossa função genérica tirou embaixo
primeiro parando até um método no
mercado Bitcoin o método de compra é o
Place underline vai underline Order o
segundo parâmetro da função são os
parâmetros né
e começa um objeto
e com quais parâmetros primeiro
parâmetro Cohen underline perde o par de
moedas uma by Order lá então usando Qual
moeda eu vou comprar qual moeda só que
eu vou hoje vou chumbar no código para
ser dbrl estão de reais usar que
template string porque eu vou colocar tá
na BR l com vídeos. Config.py urgência
na com a moeda foi configurada que
necessitamos objeto vai ficar tipo assim
BRL btc na comprando bitcoins com reais
próximo parâmetro quantos de quantidade
eu vou pegar naquele qty que vem aqui do
parâmetro que a minha quantidade e eu
vou dar aqui um sub stringhi de 0 a 10
tá que eu só posso ter até dez casas
nesse número aqui não vai dar erro lá na
pedir trade não tá
eu posso ter dez número ver se vai
contabilizar inclusive nos números
depois da, pode comprar Bitcoin você
compra as frações né que são os
fantoches também importante isso aqui é
a última configuração o limite Price
você vai receber uma string com o limite
Face tirei para caramba Beleza então já
temos uma função para realizar compras
na plataforma do mercado Bitcoin para
gente pode voltar aqui para ainda vamos
carregar aqui a segunda classe meu
cabelo ficar em frente
bom e vamos decorar o nosso objeto aqui
na traje em pe ai como o meu Mercado 24
frente eu preciso passar objeto de
configurações aqui primeiro configuração
de quilo ensinar qual é a moeda que eu
vou estar operando o botar aqui btc você
pode colocar em cima configuração que eu
mostrei antes segundo parâmetro mackay
eu vou colocar aqui process.env.ci qui
bom então você vai ter que ter uma
variável aqui no seu ponto aí conta
quiser um pouco e uma variável que aqui
com o valor da sua que que você gerou no
Passo 3 a documentação lá das
credenciais através do Piauí certo você
vai colocar aqui no ponto aí a sua aqui
ela vai ser carregada aqui nessa
configuração próxima Furação Secret
process.env.ci Secret também tem que
tirar outra conformação porque tá aqui
no ponto R. Example
O que que tem que estar aqui no ponto é
ver com o seu Secret Ok não compartilhem
que nesse Clean com ninguém próximo a
configuração o pin process.env.ci pin-up
novamente vou precisar aqui de um pin no
ponto conta quiser um pão e um pin
e no nosso. Envie o nosso objeto aqui
ele está configurado como ele tem a
função de compra gente já pode testar
isso então por exemplo quando está
barato aqui comprar a partir das a linha
de baixo aqui eu posso meter uma ordem
de compra eu posso chamar traje hippie.
Place by ordem Qual a quantidade aqui eu
vou colocar nosso teste uma quantidade
de um comprar um Bitcoin depois o limite
Price eu vou colocar pelo menor preço de
venda por exemplo com a que você
colocaria isso aqui por exemplo
e se você quer que seja imediatamente
agora aí eu tô dizendo eu compro um pelo
menor preço de venda que tá um livro que
é o céu se eu quiser não é que esse
número seja calculado eu vou ter que ver
quanto eu tenho saldo em conta ver
quanto que tá o preço e fazer a divisão
certo podemos fazer isso também vou
criar aqui em cima uma async function
get post para pegar pegar a quantidade
calcular a quantidade ela vai esperar
qual moeda Qual o preço da moeda se é
uma compra ou não tá aprender um cálculo
pouquinho diferente para compra para
venda como fazer um cálculo matemático
eu vou pegar esse Price e vou dar um par
floty nele que já vem com ponto
flutuante né ele virar um número que ele
vai vir para o padrão se me dando combo
Springer já ocorre se foram um baile é
uma compra ocorre vai ser sempre em.brl
Caso contrário é a moeda que veio ali
o celular Case ainda tá vendo o espaço e
agora para poder fazer o cálculo eu vou
ter que pegar a informação que eu tenho
de saldo em conta com essa hoje eu não
tenho essa função ainda criada Então
vamos criar vamos voltar com a nossa p i
na classe mercado Bitcoin trade buscar
uma nova função mas se a função guest
account info informações da conta né ela
vai ser um parâmetro tá ela vai fazer o
quê um retorno de deus.com qual é o
metade é o get underline account
underline info e os parâmetros são
vazios saco aquele me trazer lá o
balanço da minha conta tá daí volta pro
ainda levará que me consta data receb
é um ao leite
o traje hippie. Get account for agora
aqui em baixo vou decorar um conste
balance que vai ser o que um par floty G
Data. Balance o balance ele é um Array
para ter um balanço para todas as moedas
que eles são negociados na conta forma
se eu vou usar aqui um colchete e vou
passar a informação da moeda que eu
quero pegar o balance né pegar o saldo
de qual moeda
E no caso for uma compra eu quero te
pegar o balut de reais quantos reais eu
tenho minha conta né eu uso aqui um
ponto Avelar bom é que a conta tenho
disponível aí no meu saldo é maior mas
considerando a soma dos ativos né E aqui
depois do país fosse eu vou usar a
função que o fixa cinco que é para que
eu para dizer que eu quero apenas cinco
casas depois da, o máximo seu caso é
provável que eu faço um teste você é uma
compra e o meu balance é menor do que 50
um abraço que hoje esta reais o mínimo
que tu compra de livro decorre por lá
vou retornar não console. Org
o Saldo insuficiente para comprar Caso
contrário eu vou dar um console log
temos alguns ali e agora tá é melhor
desistir lá no console né E aqui daí eu
vou botar não quer que eu explique saldo
disponível de a moeda E aí o Balan e por
último se for uma compra vou deixar aqui
antes na variável quantidade não qty que
se for uma compra o meu qty vai receber
um parto e Flores G balance / Price
ponto fixados 25 até que se em casa da
Simone e daí Por fim eu vou dar um
retorno e até Y – 10.000
para tirar uma diferença que acaba você
vai Andressa arredondamento aqui quando
se faz a divisão a gente não tu fica de
cinco as casas depois da quinta casa
decimal da cama jogo do fundamento
pequeno né que acaba influenciando na
quantidade então a gente bota uma
diferença sozinha a menos a quantidade
já comprar ligeiramente menos do que a
gente pode poderia vai sobrar nenhum
centavo a sua conta depende da linguagem
formação na cruz não tem que ter para
com isso rescript ele tem tem que tomar
esse cuidado e agora para saber de conte
aqui a gente pode usar ela na hora de
comprar eu botar aqui um trickett né
porque eu tenho um bloco de código aqui
que pode dar todo tipo de genro é válido
a gente dá um pet aqui para derrubar
nosso bom né nesse daí Rua ele imprimir
o erro mas vida que segue
Bom vamos lá com kty vai saber o leite
gigante Quest passando qual moeda BRL
Qual o preço
é o menor preço de venda atualmente no
mercado tia Cris céu esse é uma compra é
truque Então esse qty lá eu posso passar
aqui preparar muito no place vai ordem e
o playboy ordem na área torna uma data
não deita sabendo ao eixo da função eu
vou comentar aqui essa linha dele para
dizer que tá só o primeiro aqui para
você ver esse cálculo
e a funcionando tá legal bater a minha
conta vai pegar o meu sala atualmente na
botei sem reais lá pra gente poder fazer
o teste aqui e daí ele vai imprimir aqui
no console tá obviamente também o ponto
em que ele já está configurado com o meu
que nos Secret e um tempinho tá que não
vou mostrar para você usar mente vou
botar para rodar no sabor de novo tá
caro aguardar né tá achando muito caro
Então não vai fazer aquela lógica da
compra Vamos alterar ele Para ele achar
barato tá então só vai chamar de cara se
for acima de 343 mil Bora como tá em a
última último valor foi 328 né ele vai
achar barato e vai tentar comprar breve
ela vai comprar aí é só pegar
informações imprimir Então tá aqui ó
quanto tem de dinheiro na minha conta e
reais e o quanto ele conseguia comprar
de bitcoins no caso né que eu fui com
furei de tecer com r$ 100 você ia
comprar isso aqui seria o Place maior
daquele falha na sequência seria dessa
quantidade
e a esse preço e aí o que eu vou fazer
aqui ó eu vou dar um console e.org
e em deita que eu retorno lado Place my
Order certo o ataque Arantes
a ordem inserida no livro tá
e depois os dados aqui para retornar com
essa lógica aqui já é o suficiente para
comprar eu vou executar aqui agora e
como botar esse valor alto aqui ele vai
botar ordem de compra imediatamente se
tiver alguém vendendo pelo preço que eu
quero comprar já vai deitar na hora já
deve estar meus reais eu vou ficar
pelado lá e voltei alguns a lista tochas
na minha carteira ele pra gente vai
botar a lógica de venda tá
e eu já vou rodar aqui então já vai
depenar minha conta nesse nosso teste
aqui novamente Não me responsabilizo
pela sua conta esse código aqui ele vai
ver a a sua conta é tudo que vai me raiz
lá ele vai gastar e vai comprar em
Bitcoin trago uma situação real né Eu
não colocaria um valor tão alto aqui
certo só compraria quando eu tiver assim
baixa agora o que que é embaixo da é o
cálculo que você vai ter que criar e no
seu robô ou dano Então já era os meus em
Reais beleza
Oi pretinha esse saldo aqui ordem
inserida no livro
e aqui o resultado da minha ordem ta BRL
comprando btc quantidade que eu comprei
preço limite que eu paguei 338 1599 com
receberam tá E aqui o estátua tem um
olhar que a documentação na casa de
banho stattus4 foi uma obra já concluída
tá já foi executada então ele bateu lá
né como eu botei o preço na alguém que
já estava querendo vender eu comprei
aquela pessoa que ela tá indo vender a
gente já foi uma hora aí para gente lá
geralmente vai ser preenchida na hora né
para o cálculo quantidade que eu faço já
em cima do preço tudo mais então
e a menos que eu tenho já querendo
comprar um volume muito grande que não
tem o cartão disponível para você tá na
hora agora não tem mais fala da minha
conta tá Eu até vou comentar essa linha
aqui porque nós ia ficar dando erro
beleza então vou pegar esse deita aqui ó
e vou deixar me fixo no meu código
é com base no que voltou aqui tá pega só
esse nível aqui entendeu porque eu não
tenho uma coisa pra ficar aqui não ficar
botando dinheiro que deve fazer quando
ele roubou né mostrar para vocês o
tutorial tá então deixar como voltar
sempre esse valor lá no nosso país que
vai ordem beleza ele é aqui embaixo eu
vou fazer a nossa lógica de venda Então
se você for fazer by Road você vai
programar o seu robô apenas para comprar
quando tá barato. Agora se você vai
fazer Day trade de Bitcoin O swing trade
de Bitcoin enfim não vai fazer um baião
Hotel Eu recomendo que você já comprou
ganha um robô para imediatamente abaixo
da compra ele já posicionar ordem de
venda o que é muito mais negócio você
ter uma ordem posicionada que depois
executada por alguém do que você se a
pessoa que executou a ordem
e a comissão que você paga da plataforma
Ela é maior quando você é o agente
causador da execução da ordem para se
você é o cara que posicionou nega a sua
hora depois executada você paga uma
comissão menor então agora vamos
programar a última função na nossa
equipe aqui né nossa classe mercado
Bitcoin trade que vai ser a place céu
Order ela vai esperar o que a quantidade
e o limite Prime na Quanto você quer
colocar para vender e a qual o prêmio
tem que dar um retorno de Dias. Qual que
a nossa contou genérica né Qual é o
método Qual é o método Place Anderlaine
Bel Anderlaine Order e quais são os
parâmetros vamos passar Obrigado
esperamos aqui primeiro o coinfer tá com
tempo de trigo vai ser BRL para Deus.
Config.py o em segundo a configuração
quantity quantidade que tem
Oi aqui é a quantidade ela não pode ter
mais do que 10 dígitos tá então ó
converter ela para a Spring e dar um sub
stringhi a posição zero da posição das é
última oração a Lilith Price vai saber
Aliexpress preparamos tomar transformada
em strenda tá está tudo estranho aqui
beleza Tem uma função para fazer a venda
só aquelas posicionar ordem de venda
logo depois da ordem de compra um conto
daí tá doido igual ao leite gente traje
hippie. Playcell ordem
e qual a quantidade eu vou posicionar
para vender a mesma quantidade que eu
acabei de comprar eu vou pegar deita
o ponto question
o Paulinho de praia aqui é por quanto
você quer vender se você quer fazer esse
valor manualmente você vai colocar ele
aqui o número certo se você quer que eu
vou botar em alguma inteligência você
vai ter que colocar aqui o cálculo da
Inteligência você pode fazer algum
cálculo mirabolante baseado no sped as
últimas 24 horas né querendo controlar o
rhay e vendendo ações quatro horas
entendendo a variação quer que foi
possível recentemente ou você pode botar
não é uma meta de lucratividade em cima
de cada compra então no meu ponto em
ponto exemplo por exemplo posso colocar
uma variável mais aqui um profitability
e seria o meu percentual de
lucratividade que eu quero ter em cada
transação essa variável só tem que criar
uma igual no celular que um ponto em vi
e lá você vai colocar o valor da sua
lucratividade em percentual tá sempre um
ponto alguma coisa certo se você quiser
deve por cento você 1.1 por exemplo
greve 100% 1.05 beleza é importante que
você leve em consideração que uma
lucratividade muito alta pode demorar
muito tempo para se concretizar certo as
é melhor você ter várias operações aí
com atividade baixa mas ao mesmo tempo
quantidade muito baixa pode levar no
prejuízo que o mercado Bitcoin ele vai
te cobrar comissão na compra na venda e
no saque de dinheiro foi interessante
você fazer um cálculo né e colocar sua
lucratividade em cima deste cálculo
certo
é só que você não tem aí prejuízo
achando que tá no lucro então o seu
preço vai ser um cálculo tá Que cálculo
é esse Eu vou pegar aqui o preço de
compra não é o baile freezer vai ser um
parça Fruit em cima nesse response ponto
fica com selfie o valor do cabelo
pagando aqui no bar né
em meio a uma pessoa eu preciso compro
eu tenho a minha lucratividade que a
minha profitability certo e vai ser um
parça flute em cima de process.env.ci
profitability
e vai todo em maiúsculo que eu coloquei
lá no no arquivo de variáveis né
e no meu caso eu coloquei lá 1.1 tá
comandado por cento chutei o pau da
barraca aqui ou não né Deus o Bitcoin dá
umas loucas aí fazer se um dia isso não
é recomendações assim não Ai velhos
passados não garantem ver no futuro
então o meu limite Price vai ser
e o meu preço de compra vezes a minha
lucratividades então a vezes um ponto 10
porcento ao mais será que estou vou
posicionar para vender tudo que eu tenho
de Bitcoin a 10 por cento mais do que eu
paguei é aqui eu vou colocar o console
Logus G ordem inserida no livro deitar
dois certo e agora eu vou executar pela
última vez que que vai acontecer né ele
vai bater lá para verificar a questão
dos preços vai vou manter esse valor
aqui fake tá
e ele vai calcular quantidade ele não
vai comprar que eu já comprei não tem
mais saldo lá faz um 10 vou deixar isso
aqui daria um erro senhor tem salto ele
vai ter esse retorno aqui feio com base
nas retorno eu vou posicionar uma ordem
de venda certo então um canário normal
eu faria compra e logo na sequência já
não daria fazer a venda essa venda não
vai se concretizar automaticamente que
eu tô botando um anjo ali né tô botando
um lucro ela se fosse nada no livro para
ser realizada mais para frente né quando
os preços subirem Bitcoin novamente
Então vamos executar novamente clamou
Que tal se sente para comprar né que o
nosso gratificante lá ele bate na conta
e tal então ele já viu que não tenho
saldo uso eu posso ajustar isso né
gratificante tia
e ele pode retornar que talvez seja para
comprar eu posso retornar um falso certo
e lá fora o texto
e se
é o que tá Y maior Face
e eu vou botar aqui um com seu blog
o saldo sente para comprar né então às
vezes consequência que executar né achou
que tá barato mas eu não tenho saudade
ontem vai enviar mensagem e vai para o
próximo momento de debater as
reclamações aumente tá eu só vou
comentar isso por enquanto
é uma lamparina que sempre dá pra ver
meu saldo as coisas importa aqui é que
deu erro né valor do qual Império
inválido olhando o código aqui ó tem que
ser maiúscula as configurações são em
maiúscula liga tá vendo só BRL para lá
fazer novamente agora deu erro saldo de
Bitcoin o suficiente para rezar operação
Isso quer dizer é que eu tentei botar a
venda mais do que eu tenho por quê que
deu isso tá bem tá. Quantity trás quando
eu comprei beleza eu comprei isso aqui
só quer eu paguei isso aqui de taxa
Então na verdade o meu saldo em conta
não é isso aqui em Bitcoin é isso aqui
menos isso aqui então de duas uma ou
você faz esse cálculo é o conte – o fim
ou você bate lá na sua conta para ver o
saldo que tem a sua carteira de fato nós
podemos usar Inclusive essa função laço
aqui de gratificante né
Oi gatinha do feita com conheciment
ainda distante como moeda
a DTC preço preço na verdade eu só afeta
né Se for uma compra né
se for um ismai aqui ó melhor calcular
baseado no preço não posso passar
qualquer coisa aqui no preço nossa
diferença
os filmes mais falsa né porque é uma
venda se eu vou botar isso aqui numa
outra variável aqui em cima mais fácil
da gente se ver né conte céu que ter
podemos esquecer aqui de botar um await
aqui né que eu já te quando tirei a
cinco lá vamos falar de novo valor de
corrente devem apresentar no desse mal
ao saldo está pegando certo né meu TCC
eu tava olhando a contação ele não
considera sócio casa depois da virgula
são oito tá vamos agitar isso aqui
e daí só que também não vai vamos
colocar 5 Casa colocar oito aqui nesse
essa remoção Dez Mandamentos certo para
evitar que de erro e além desse ajuste
aqui do do oito casa se for uma venda né
eu posso tirar trazer esse balanço aqui
como sendo a quantidade né ele vai
precisar de cripto lá que eu tenho
Eu Não Posso testar cê não é uma compra
na eu já retorno aqui o balanço para o
balão ele até esses testes mais abaixo
todos eles vão considerar que já é uma
compra né você não precisa tratar
novamente os by Aqui para baixo certo e
se pra isso aqui como é que vai ser lá
embaixo e para ficar conversando também
só lá embaixo Beleza você tá de novo foi
então inseriu a nossa olha no livro tá
aqui para não estar lá no status doido
não paga nenhuma taxa para colocar no
livro né Só vou pagar a comissão Quando
ela for executada é que tá o preço né
que eu coloquei para venda r$ 381 tem um
olhar lá o estatuto dois da contação tá
lá uma ordem aberta disponível no livro
de negociações outro nosso robô não
posso colocar o isso aqui de volta posso
colocar esse cara aqui de volta
um tiro se deita chumbado aqui
eu não vou guardar pronta posso deixar
ele rodando e mototáxi por exemplo se
tiver já espanhol apresenta 3 mil vou
dizer que tá caro eu vou mandar aguardar
Enquanto isso a minha ordem tá lá vou
botar para rodar aqui tá valeu vai
batendo atacaram ficar aguardando se
algum momento ficar barato ele vai ficar
com minha conta não tem saldo ele vai
dizer ôpa conta sem saldo e vai
continuar não seco normal
a potência na ordem de venda falar
posicionada quando a ordem de venda na
for executada eu vou ter saldo em Reais
novamente e daí no próximo momento que
chegar barato o robô vai olhar o para tá
barato vou comprar ele vai ver aqui no
saldo vai usar vai comprar e já vai
posicionar uma nova ordem de venda
novamente esse valor aqui que eu
coloquei arbitrário o ideal que você tem
algum cálculo para ele para que o rosto
roubou saiba quando tá barato ou tá caro
para que sair você vai ter que criar sua
inteligência aí tem como inteligência de
entender com a lucratividade que você
tem interessante para você em cima de
cada compra de Bitcoin que você realizar
por quanto que você quer vender
eu sou esses dois parâmetros aí mas tá
barato ou tá caro é a lucratividade que
eu quero que vai reger todo o
comportamento do robô e vai lidar
sucesso ou não com a utilização dele tem
alguém ainda aí para se você assistir o
vídeo até esse momento Meus parabéns um
aulão desse de quase uma hora e você
assistir até o final por favor deixa aí
nos comentários eu sobrevivi não é para
eu saber quem foram os campeões né o as
campeãs chegaram até o final da sala
aqui e eu espero com o seu robô
funcionando né integrado e etc tal qual
o meu aqui eu fiz fazer funcionar Você
gostou da minha didática eu lhe peço
para considerar a possibilidade de dar
uma olhada nos meus cursos os links
estão aqui na descrição Além disso me
siga nas redes sociais também vou deixar
os links aqui na sequência você não
posso conteúdo bacana vídeos tutoriais
tá os livros novos cursos e eu acho que
podem lhe interessar disso
as redes sociais como os comentários
aqui do YouTube por exemplo que você
pode mandar qualquer dúvida que você
tiver sobre os conteúdos vistos no aulão
ou em qualquer outro material que eu
tenho publicado parabenizo novamente
pela persistência pela dedicação espero
vê-lo novamente no próximo vídeo aqui no
canal um abraço e até a próxima valeu

Olá, tudo bem?

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

Assista também

WebSockets Client em 15 min! (exemplo em Node.js com Binance)

React Native CLI - Testando em smartphone Android - Aula Grátis #02

Dicas para currículo de devs

06 dicas para bots de criptomoedas

Sequelize em 15 minutos, direto ao ponto! (2021)

React Native CLI - Configurando no Windows - Aula Grátis #01