Pular para o conteúdo principal

Como usar a API do MercadoBitcoin dentro do Google Sheets

Na primeira parte da série, mostrei como acessar o Script editor e como criar um log para verificar o resultado das operações.

Bom, para começar abra o Google Sheets e acesse o Script editor, clicando em "Tools" > "Script editor" e acesse o site da API do MercadoBitcoin, clique aqui para facilitar.

Recapitulando o que teremos que fazer, vamos fazer primeiramente uma chamada a API da exchange para acessar o ultimo preço de cotação da moeda na exchange, para isso teremos que informar a criptomoeda que estamos requisitando e qual informação queremos acessar.

O formato básico de chamada da API é a seguinte URL:

 https://www.mercadobitcoin.net/api/<coin>/<method>/
 
Onde "coin" no caso do MercadoBitcoin, pode ser BTC, LTC, BCH ou XRP. E "method" pode ser do tipo "ticker", "orderbook" e "trades"

Como nosso objetivo é o preço, vamos precisar acessar o método "ticker".

Para isso vamos associar esta URL a uma variável que chamaremos de "url". Se você acompanhou a primeira parte da série, já deve ter essa linha abaixo em seu editor de script:

 var url = "https://www.mercadobitcoin.net/api/BTC/ticker"; 

E também esta aqui para exibir o conteúdo da variável:

 Logger.log(url); 

O seu editor deve estar como a imagem abaixo:


Agora vamos usar a função (comando) "UrlFetchApp" do Google Apps Script para coletar as informações da nossa variável "url".

Meus termos de computação estão meio enferrujados, não vou me detalhar muito em como cada uma desses códigos funcionam, mas basicamente, para nós entendermos um pouco, precisamos coletar e agrupar essas informações de forma que nos possibilite utilizar as mesmas de forma a retornar o valor desejado em uma célula na planilha do Google Sheets.

Continuando, após coletar os dados da API e associar a variável "url" vamos utilizar o "JSON.parse()" para reorganizar estes dados em uma array de dados para podermos especificar o que queremos utilizar.

Portanto, adicione abaixo da linha "var url = https://www.merc..." as seguintes linhas:

 var fetch = UrlFetchApp.fetch(url);
 var jsonFetch = JSON.parse(fetch);

E adicione abaixo da linha "Logger.log(url);" a comando:

 Logger.log(jsonFetch); 

Então o seu código ficará como na imagem abaixo:


Para testar o código devemos primeiramente salvar com um "Ctrl+ S" e clicar no botão "Play", indicado na figura acima, o editor de script vai pedir sua permissão para acessar o arquivo em sua conta Google, aceite, então clique no menu "View > "Log", a seguinte tela irá aparecer:

Na segunda linha do log temos o resultado do método "ticker" da API. Temos o preço de alta, baixa, preço de compra e de venda atual e o ultimo preço. Como pode ver o ultimo preço é identificado como "last=24012.000002000. Agora podemos visualizar um dado especifico da variável jsonFetch utilizando o formato "jsonFetch.ticker.last" irá retornar o ultimo preço, "jsonFetch.ticker.vol", vai retornar o volume transacionado e assim por diante.

Para isso basta alterarmos a linha:

 Logger.log(jsonFetch);
 
Por esta aqui, e teremos o ultimo preço:

 Logger.log(jsonFetch.ticker.last);

Não esqueça de salvar cada alteração e clicar no botão "Play", antes de abir o log.

Para esta função ser útil dentro do Googles Sheets devemos retornar a informação a ser exibida quando utilizamos a mesma. Adicione a esta linha ao final, antes do fecha chaves }:

 return(jsonFetch.ticker.last);

Salve e clique no "Play", vá ao Google Sheets e podemos testar a função myFunction() agora, para isso clique em uma célula qualquer e escreva "=myFunction()" sem as aspas é claro:


Agora conseguimos extrair informações da API do MercadoBitcoin com esta função, mas precisamos também ter a possibilidade de enviar um parâmetro para esta função para podermos especificar qual a moeda que queremos visualizar o preço.

Para isso vamos adicionar um parâmetro e chamaremos ele de "coin" e que servirá para especificarmos qual moeda queremos saber o preço.

Na linha:

 function myFunction() {

Adicionamos o parâmetro "coin" dentro dos parênteses:

 function myFunction(coin) { 

Agora dentro da planilha do Google Sheets podemos enviar este parâmetro para a função myFunction(), como o parâmetro "coin" será do tipo string, devemos adicionar ele entre aspas como mostra a figura:

 

Para testar se esse parâmetro foi enviado para a função, podemos adicionar um log para o parâmetro "coin" que agora pode ser tratado como uma variável dentro da função. Somente para testar, altere a ultima linha de retorno para:

 return(coin); 

Agora ao invés da função retornar o ultimo preço, deverá retornar a palavra "BTC", porque foi isso que enviamos como parâmetro:



Bom, como no caso do MercadoBitcoin existe uma URL para cada criptomoeda, vamos ter que dividir esta URL em três partes usando três variáveis diferentes que são a "url", "coin" e a "ticker" que teremos que concatenar em uma única variável que chamaremos de "urlCoin".

  function myFunction(coin) {
      var url = "https://www.mercadobitcoin.net/api/";
      var ticker = "/ticker/"
      var urlCoin = url+coin+ticker

Sendo que a variável "coin" será o parâmetro para a função que será escolhida pelo usuário.

A variável "urlCoin" irá juntar as variáveis "url", "coin" e "ticker" formando a URL de chamada para a API.

Segue código completo, (renomeei a função para "getMercadobitcoin") para copiar e colar:

 function getMercadobitcoin(coin) {
      var url = "https://www.mercadobitcoin.net/api/";
      var ticker = "/ticker/"
      var urlCoin = url+coin+ticker
      var fetch = UrlFetchApp.fetch(urlCoin);
      var jsonFetch = JSON.parse(fetch);
  
      Logger.log(url);
      Logger.log(jsonFetch);
      Logger.log(jsonFetch.ticker.last);
      return jsonFetch.ticker.last
 }

Acho que agora temos a função completa para acessar o ultimo preço de qualquer moeda da exchange MercadoBitcoin.

Quando você clicar no "Play" para compilar o código o editor de script vai lhe informar que existe uma chamada não definida, é a variável "coin" que precisa ser definida pelo usuário, não se preocupe que mesmo assim a função vai funcionar, segue imagem de teste:


Para usar a função, basta digitar em alguma célula da planilha a formula "=getMercadobitcoin("BTC") e substituir o "BTC" pela moeda desejada.

Com mais trabalho, podemos adicionar mais parâmetros de entrada como data e volume, para saber o preço e volume em algum dia no passado, poderíamos montar planilhas com os preços e volumes históricos e plotar gráficos como os do Tradingview (similar), calcular o desvio padrão e também plotar gráficos futuros usando o método de Monte Carlo para executarmos simulações.

Deixe seus comentários, duvidas e sugestões de artigos futuros, ficarei grato em ajudar!

Meu blog http://assuntotecnologia.com.br  

Meu Steemit https://steemit.com/@assuntotech  

Twitter https://twitter.com/AssuntoT

Minds https://www.minds.com/carlosgb

Comentários

Postagens mais visitadas deste blog

Primeira experiência com a nova moeda Bitcoin

Um pouco do que aprendi e um pouco da experiência quando usei o Bitcoin pela primeira vez.

Bom, comecei por instalar o app bitcoin para Android, neste caso esse app é como se fosse uma carteira (wallet). O app que instalei é o Bitcoin Wallet por Bitcoin Wallet developers. Tem outros disponíveis.

Link do Bitcoin Wallet no Google Play.

O Bitcoin é uma cripto-moeda, ou seja uma moeda criptografada, não quero entrar em detalhes sobre a tecnologia que está por traz disso, mas essa cripto-moeda no caso Bitcoin, é código aberto, ou seja qualquer um pode ver alterar e contribuir para o desenvolvimento dessa moeda.

Ao contrário do FED (Federal Reserve) nos Estados Unidos e do Banco Central do Brasil, o Bitcoin é uma moeda descentralizada, que funciona através de nós espalhados pela internet, onde cada nó contém todas as transações efetuadas.

Qualquer um que tenha uma conexão de internet poderá ser um nó de Bitcoin bastando instalar um software que pode ser o Bitcoin Core, que fun…

Wikileaks libera documentos onde sua TV pode ser uma escuta!

Wikileaks libera Vault 7: CIA Hacking Tools Revealed, documentos que demonstram que a CIA (Central Intelligence Agency) possui um arsenal de ciberataque que deixa qualquer organização terrorista e golpistas com inveja, como malwares, trojans, zero day exploits, controle remoto de malwares.

Resumindo, se tu for um suspeito ou inimigo do estado (terrorista, denunciante), a CIA já sabe o que tu anda planejando.


O que me chamou atenção nesta press release da Wikileaks é a capacidade da CIA de alterar estado de desligamento das TVs Samsung e transformar em escutas, quando aparentemente a tv estiver desligada, enviando os arquivos de áudio para um servidor da CIA.

Vamos acompanhar as manchetes dessa press release e falar mais a respeito.

O que é short selling e short squeeze?

Fazer um short selling em uma ação ou Bitcoin, nada mais é que uma aposta, você está apostando que o preço de um ativo caia, então você vende este ativo e quando o preço cair o suficiente você recomprar a mesma quantidade do ativo a um preço mais barato.

Simples assim, mas existe vários cenários que você pode executar o short selling:
Possuo o ativo Vamos supor que você tenha 1 Bitcoin e acredita fielmente que o preço vai para 3 mil USD, então você vende o seu Bitcoin por 6 mil USD, você terá um saldo de 6 mil USD em conta. Passado algum tempo, você estava certo e o preço caiu para os 3 mil USD então você recompra o seu 1 Bitcoin por 3 mil USD. Agora você terá 1 BTC mais 3 mil USD em conta, ou seja você obteve na operação um lucro de 50%.

Agora vamos supor que você venda 1 BTC por 6 mil USD para recomprar por 3 mil USD e o preço da uma guinada e dispara para os 7 mil, para não perder uma possessível super valorização do Bitcoin você recompra os seus 6 mil USD a 7 mil USD, antes, vo…