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-idemb-secret: suas credenciais obtidas em https://www.MercadoBitcoin.com.br/plataforma/chaves-apicsv-threshold: só atualiza CSV se variação do saldo é maior do que este valorcsv: nome do arquivo CSV para registrar o saldocsv-fund-name: um nome qualquer para etiquetar o saldo no CSVreport-threshold: só manda relatório se variação do saldo, desde último relatório, é maior do que este valormail: endereço para enviar pequeno relatório por e-mail; não manda se omitidotelegram-chat-id: o ID do seu usuário Telegram; não manda se omitidotelegram-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.
Metadata
Release files for MercadoBitcoinBalance 1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mercadobitcoinbalance-1.5.tar.gz | 46.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mercadobitcoinbalance-1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.4 kB
Release files / mercadobitcoinbalance-1.5.tar.gz
| Download URL | mercadobitcoinbalance-1.5.tar.gz |
|---|---|
| Size | 46.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3315195be1279ccb615562d1b8534dd5abab6b07401834f9c3bcd36362ea9f20
|
|
BLAKE2b-256 checksum How to use checksums |
e80cf63b08ef90df38047edbb1cdb09b30466c16316da69687b283d13e51b637
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.9
|
Release files / mercadobitcoinbalance-1.5-py3-none-any.whl
| Download URL | mercadobitcoinbalance-1.5-py3-none-any.whl |
|---|---|
| Size | 33.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6df5ecf0c9a860e9abbe591a71f75585e4b01bae9e34396ea63f4c728e49d3c9
|
|
BLAKE2b-256 checksum How to use checksums |
d67a96fbc9585cf4039a726835926ddacb0df82e3ced23f4f62355c788a5e4f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.9
|