Last active
August 25, 2023 00:59
-
-
Save jonaslsl/4d78e636101c53f7041d to your computer and use it in GitHub Desktop.
Conversor BDI Bovespa em script AWK
This file contains 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
#!/usr/bin/awk -f | |
#Autor: Jonas Scherer | |
#Data: Jan/2016 | |
#Uso: ./conversor_bdi.awk COTAHIST_A2015.TXT | |
#Detalhes: Conversor do formato de cotacoes historicas disponiveis no site da Bovespa. | |
#O conversor podera ser usado para exportar os dados para excel para serem trabalhados de uma forma mais simples. | |
#Util para quem faz day-trades e deseja criar seus proprios dashboards ou fazer backtests. | |
#OBS: Remover a primeira e ultima linha para remover o cabecalho e o rodape que vem da Bovespa | |
#O script esta filtrando CODBDI 01 (LOTE PADRAO) e o TIPO DE MERCADO 01 (VISTA) | |
#Link Cotacoess historicas: http://www.bmfbovespa.com.br/pt-br/cotacoes-historicas/FormSeriesHistoricasArq.asp | |
#Link Layout de dados das cotacoes Bovespa: http://www.bmfbovespa.com.br/pt-br/download/SeriesHistoricas_Layout.pdf | |
BEGIN{ | |
#HEADER | |
print("TIPREG;DATA;CODBDI;CODNEG;TPMERC;NOMRES;ESPECI;PRAZOT;MODREF;PREABRE;PREMAX;PREMIN;PREMED;PREULT;PREOFC;PREOFV;TOTNET;QUATOT;VOLTOT;PREEXE;INDOPC ;DATVEN;FATCOT;PTOEXE;CODISI;DISMES"); | |
while(( getline l < ARGV[1]) > 0 ) { | |
#print l | |
CODBDI = substr(l,11,2); | |
TPMERC = substr(l,25,2); | |
if(CODBDI ~ "02" && TPMERC ~ "01"){ | |
#VARS | |
TIPREG = substr(l,1,2) | |
DATA = substr(l,3,4)"-"substr(l,7,2)"-"substr(l,9,2); | |
CODNEG = substr(l,13,12); | |
NOMRES = substr(l,28,12); | |
ESPECI = substr(l,40,10); | |
PRAZOT = substr(l,50,3); | |
MODREF = substr(l,53,4); | |
PREAB = substr(l,57,11)","substr(l,68,2); | |
PREMAX = substr(l,70,11)","substr(l,81,2); | |
PREMIN = substr(l,83,11)","substr(l,94,2); | |
PREMED = substr(l,96,11)","substr(l,107,2); | |
PREULT = substr(l,109,11)","substr(l,120,2); | |
PREOFC = substr(l,122,11)","substr(l,133,2); | |
PREOFV = substr(l,135,11)","substr(l,146,2); | |
TOTNET = substr(l,148,5); | |
QUATOT = substr(l,153,18); | |
VOLTOT = substr(l,171,18); | |
PREEXE = substr(l,189,13); | |
INDOPC = substr(l,202,1); | |
DATVEN = substr(l,203,8); | |
FATCOT = substr(l,211,7); | |
PTOEXE = substr(l,218,13); | |
CODISI = substr(l,231,12); | |
DISMES = substr(l,243,3); | |
#VALIDATION | |
#print TIPREG; | |
#print DATA; | |
#print CODBDI; | |
#print CODNEG; | |
#print TPMERC; | |
#print NOMRES; | |
#print ESPECI; | |
#print PRAZOT; | |
#print MODREF; | |
#print PREAB; | |
#print PREMAX; | |
#print PREMIN; | |
#print PREMED; | |
#print PREULT; | |
#print PREOFC; | |
#print PREOFV; | |
#print TOTNET; | |
#print QUATOT; | |
#print VOLTOT; | |
#print PREEXE; | |
#print INDOPC; | |
#print DATVEN; | |
#print FATCOT; | |
#print PTOEXE; | |
#print CODISI; | |
#print DISMES; | |
#ALL FIELDS | |
#print (TIPREG ";" DATA ";" CODBDI ";" CODNEG ";" TPMERC ";" NOMRES ";" ESPECI ";" PRAZOT ";" MODREF ";" PREAB ";" PREMAX ";" PREMIN ";" PREMED ";" PREULT ";" PREOFC ";" PREOFV ";" TOTNET ";" QUATOT ";" VOLTOT ";" PREEXE ";" INDOPC ";" DATVEN ";" FATCOT ";" PTOEXE ";" CODISI ";" DISMES) | |
#AMIBROKER IMPORT | |
print( CODNEG ";" DATA ";" PREAB ";" PREMAX ";" PREMIN ";" PREULT ";" QUATOT) | |
#OLD | |
#print( substr(l,0,2) ";" substr(l,3,4)"-"substr(l,7,2)"-"substr(l,9,2) ";" substr(l,11,2) ";" substr(l,13,11) ";" substr(l,25,2) ";" substr(l,28,11) ";" substr(l,40,9) ";" substr(l,50,2) ";" substr(l,53,3) ";" substr(l,57,10)","substr(l,67,2) ";" substr(l,70,10)","substr(l,80,2) ";" substr(l,83,10)","substr(l,93,2) ";" substr(l,96,10)","substr(l,106,2) ";" substr(l,109,10)","substr(l,119,2) ";" substr(l,122,10)","substr(l,132,2) ";" substr(l,135,10)","substr(l,145,2) ";" substr(l,148,4) ";" substr(l,153,17) ";" substr(l,171,17) ";" substr(l,189,12) ";" substr(l,202,1) ";" substr(l,203,7) ";" substr(l,211,6) ";" substr(l,218,12) ";" substr(l,231,11) ";" substr(l,243,2) ) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Ola, como faço para usar esse conversor de BDI no windows ?