Created
August 23, 2023 17:16
-
-
Save rmff/d77c96110b09ba1caed6c39373f405cf to your computer and use it in GitHub Desktop.
Extrator e formatador de séries históricas B3 (Brasil, Bolsa, Balcão) para CVS padrão pt_BR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
#Arquivos de dados | |
#https://www.b3.com.br/pt_br/market-data-e-indices/servicos-de-dados/market-data/historico/mercado-a-vista/series-historicas/ | |
#Salvar este script dentro da mesma pasta dos arquivos anuais de dados | |
echo "\nRaiz do ativo. ex: Petrobrás use apenas as 4 primeiras letras 'PETR'" | |
raiz=$1 | |
arqs=`ls COTAHIST*.TXT` | |
echo "\nUtilizando os arquivos: \n${arqs}" | |
echo "\nFiltrando ativo ${raiz}..." | |
grep -hi -E "^[0-9]+${raiz}" ./COTAHIST* > $raiz.txt | |
echo "\nOrdernando dados..." | |
sort -k1.13,1.24 -k1.2,1.10nr $raiz.txt > $raiz.sorted.txt | |
echo "\nCriando CSV..." | |
echo "Formatando números com a vírgula..." | |
echo "Formatando datas AAAAMMDD para DD/MM/AAAA..." | |
awk -v \ | |
FIELDWIDTHS="2 8 2 12 3 12 10 3 4 13 13 13 13 13 13 13 5 18 18 13 1 8 7 13 12 3" \ | |
'BEGIN{print "TIPREG;DTPREGAO;CODBDI;CODNEG;TPMERC;NOMRES;ESPECI;PRAZOT;MODREF;PREABE;PREMAX;PREMIN;PREMED;PREULT;PREOFC;PREOFV;TOTNEG;QUATOT;VOLTOT;PREEXE;INDOPC;DATVEN;FATCOT;PTOEXE;CODISI;DISMES"} \ | |
{DTPREGAO=substr($2,7,2)"/"substr($2,5,2)"/"substr($2,1,4); DATVEN=substr($22,7,2)"/"substr($22,5,2)"/"substr($22,1,4); \ | |
f=sprintf("%s;%s;%s;%s;%s;%s;%s;%s;%s;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%s;%s;%.2f;%.2f;%s;%s;%s;%.2f;%s;%s",\ | |
$1,DTPREGAO,$3,$4,$5,$6,$7,$8,$9,$10/100,$11/100,$12/100,$13/100,$14/100,$15/100,$16/100,$17,$18,$19/100,$20/100,$21,DATVEN,$23,$24/100,$25,$26); gsub(/\./,",",f); print f;}' \ | |
./$raiz.sorted.txt > ./$raiz.csv | |
echo "\nRemovendo arquivos temporários..." | |
rm $raiz.sorted.txt $raiz.txt | |
echo "\nFim." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment