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.5.tar.gz (46.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mercadobitcoinbalance-1.5-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mercadobitcoinbalance-1.5.tar.gz
  • Upload date:
  • Size: 46.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.9

File hashes

Hashes for mercadobitcoinbalance-1.5.tar.gz
Algorithm Hash digest
SHA256 3315195be1279ccb615562d1b8534dd5abab6b07401834f9c3bcd36362ea9f20
MD5 597ea12df6f236d98888747c4f396c80
BLAKE2b-256 e80cf63b08ef90df38047edbb1cdb09b30466c16316da69687b283d13e51b637

See more details on using hashes here.

File details

Details for the file mercadobitcoinbalance-1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for mercadobitcoinbalance-1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6df5ecf0c9a860e9abbe591a71f75585e4b01bae9e34396ea63f4c728e49d3c9
MD5 cb23ba0796f8ab823d6e0626cdca5bed
BLAKE2b-256 d67a96fbc9585cf4039a726835926ddacb0df82e3ced23f4f62355c788a5e4f7

See more details on using hashes here.

Supported by

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