Skip to main content

Calcula, salva e reporta seu saldo do Mercado Bitcoin

Project description

Calcula, salva e reporta seu saldo do Mercado Bitcoin

Este programa:

  • Busca saldo em BRL de todos os seus tokens no Mercado Bitcoin
  • Calcula saldo consolidado
  • Atualiza um CSV caso o saldo tenha mudado
  • Manda o saldo atual por e-mail ou Telegram junto com algumas estatísticas

É necessário Python 3, Pandas e nada mais para rodar este programa.

Para conseguir enviar e-mails, seu sistema (Linux, obviamente) de forma geral precisa estar configurado como cliente de mail. Eis um exemplo para configurar o postfix do Fedora.

Depois, eu uso o CSV junto com o investorzilla para acompanhar performance.

Como usar a API

import MercadoBitcoinBalance

# Suas credenciais obtidas em https://www.MercadoBitcoin.com.br/plataforma/chaves-api
MP_API_ID='06…05'
MP_API_SECRET='10…19'

mb=MercadoBitcoinBalance.MercadoBitcoinAPI(MP_API_ID,MP_API_SECRET)

balances=mb.get_BRL_balances()

Como usar na linha de comando

Instale:

pip install MercadoBitcoinBalance --user

Use:

balancemb \
    --mb-id 06…05 \
    --mb-secret 10…19 \
    --csv-threshold 1 \
    --csv balances.txt \
    --csv-fund-name 'Nome arbitrário do fundo' \
    --report-threshold 20 \
    --mail seu_email@mail.net \
    --telegram-chat-id 12345678 \
    --telegram-bot-id '13…Wk'

Sendo:

  • mb-id e mb-secret: suas credenciais obtidas em https://www.MercadoBitcoin.com.br/plataforma/chaves-api
  • csv-threshold: só atualiza CSV se variação do saldo é maior do que este valor
  • csv: nome do arquivo CSV para registrar o saldo
  • csv-fund-name: um nome qualquer para etiquetar o saldo no CSV
  • report-threshold: só manda relatório se variação do saldo, desde último relatório, é maior do que este valor
  • mail: endereço para enviar pequeno relatório por e-mail; não manda se omitido
  • telegram-chat-id: o ID do seu usuário Telegram; não manda se omitido
  • telegram-bot-id: o ID do bot que você deve criar em https://t.me/BotFather

O CSV acumula os valores como uma série temoral. Registra a hora UTC (UTC, sempre UTC, sempre), o nome do fundo (passado em csv-fund-name) e o saldo consolidado em BRL. Assim:

time|fund|BRL|reported
2023-05-31T19:30:47.407006+00:00|Nome arbitrário do fundo|36595.57|1
2023-05-31T20:50:14.708121+00:00|Nome arbitrário do fundo|36576.22|0

O e-mail e mensagem de Telegram enviados tem esta cara:

Current balance: 36,576.22 BRL.

Previous balance: 34,595.72 BRL.

Variation: 1,980.50 BRL.

Percent change: 5.72%.

Historycal growth: 4% in 0m2d.

Brakedown by tokens and coins:

Total (BRL)
brl 36,229.86 BRL
abfy 336.42 BRL
psgft 9.40 BRL
wemix 0.54 BRL

Eu rodo isso a cada meia hora via crontab, assim:

*/30 * * * * ~/.local/bin/balancemb --mb-id 06…05 --mb-secret 10…19 --csv-threshold 2 --csv ~/investorzilla-my/mercadobitcoin-balances.txt --csv-fund-name 'Nome arbitrário do fundo' --report-threshold 20 --telegram-chat-id 12345678 --telegram-bot-id '11223344::A…k'

Adicionalmente, rodo todos os dias às 20:15 e forço envio de relatório (--report-threshold -1) por Telegram:

15 20 * * * ~/.local/bin/balancemb --mb-id 06…05 --mb-secret 10…19 --csv-threshold 5 --csv ~/investorzilla-my/mercadobitcoin-balances.txt --csv-fund-name 'Nome arbitrário do fundo' --report-threshold -1 --telegram-chat-id 12345678 --telegram-bot-id '11223344::A…k'

Ou seja, atualizo saldo consolidado em balances.txt a cada meia hora, não mando relatório mas mando saldos por Telegram caso houver variação de mais de 20 BRL. Além do mais, todo dia às 20:15 manda o saldo atual, mesmo que não houve variação.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mercadobitcoinbalance-1.4.tar.gz (46.4 kB view details)

Uploaded Source

Built Distribution

MercadoBitcoinBalance-1.4-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

File details

Details for the file mercadobitcoinbalance-1.4.tar.gz.

File metadata

  • Download URL: mercadobitcoinbalance-1.4.tar.gz
  • Upload date:
  • Size: 46.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for mercadobitcoinbalance-1.4.tar.gz
Algorithm Hash digest
SHA256 de87515198ddf0745d1b3b61ea18fbdb540c33b537e0d65866c32f58ec147b31
MD5 d56745624f162450956f36cf97fe3c1e
BLAKE2b-256 4761cf1a3be0cf74b4b1fea74aa05ceae39aed013a412316f6488ad78b65256d

See more details on using hashes here.

File details

Details for the file MercadoBitcoinBalance-1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for MercadoBitcoinBalance-1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b721f75fe79703581ee744e9e5ddc86a44e811f5a78c257ed3df79d5f332b967
MD5 04e8b211b18ccc37d84f762059df5642
BLAKE2b-256 59f75e21f19d959db642da5d15ed2ed43f83dd709014b7e9acb9982630377b99

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page