Skip to content

Instantly share code, notes, and snippets.

@danperrout
Last active February 2, 2024 10:59
Show Gist options
  • Star 31 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save danperrout/b27197056fa38d0d669332647ab89d7a to your computer and use it in GitHub Desktop.
Save danperrout/b27197056fa38d0d669332647ab89d7a to your computer and use it in GitHub Desktop.
API Função TESOURODIRETO Google Sheets
/*
* @return Retorna a cotação atual de um título específico do Tesouro Direto.
* Fonte: https://www.tesourodireto.com.br/titulos/precos-e-taxas.htm
**/
function TESOURODIRETO(bondName, argumento="r") {
let srcURL = "https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json";
let jsondata = UrlFetchApp.fetch(srcURL);
let parsedData = JSON.parse(jsondata.getContentText()).response;
for(let bond of parsedData.TrsrBdTradgList) {
let currBondName = bond.TrsrBd.nm;
if (currBondName.toLowerCase() === bondName.toLowerCase())
if(argumento == "r")
return bond.TrsrBd.untrRedVal;
else
return bond.TrsrBd.untrInvstmtVal;
}
throw new Error("Título não encontrado.");
}
@dzambelle
Copy link

Seguem as imagens, inclusive a proposta de solução (não sei se esta correto, mas o valor veio certo)

AnaliseJson
FormulaGoogleSheets
SiteTesouroAtual
SolucaoDoProblema-Proposta

@danperrout
Copy link
Author

danperrout commented Nov 25, 2020

Existem duas abas no site do Tesouro Direto.
Meu código já prevê isso e vc pode usar um argumento na sua função pra trazer o valor da aba "INVESTIR" ou o valor da aba "RESGATAR". Por padrão ele traz o valor da aba resgatar. Caso queira o outro valor, usando meu código, é só colocar na sua célula =TESOURODIRETO("nome do título","i")

@dzambelle
Copy link

Perfeito, obrigado

@JFARod
Copy link

JFARod commented Dec 29, 2020

Ótima API, amigo!
Uma sugestão/dúvida: algum argumento para colocar o valor do investimento mínimo de cada aplicação pode ser vantajoso também

@danperrout
Copy link
Author

Ótima API, amigo!
Uma sugestão/dúvida: algum argumento para colocar o valor do investimento mínimo de cada aplicação pode ser vantajoso também

Olá, tem como colocar sim. Verificando no JSON do site o argumento se chama "minInvstmtAmt"

Pode-se acrescentar algo como entre as linhas 12 e 13:


if(argumento == "m")
                return bond.TrsrBd.minInvstmtAmt;

Mas o ideal mesmo seria um refactor e uma pequena documentação pra deixar que o script percorra o nome dos argumentos com base no nome que já existe no próprio JSON.

@rafalimaz
Copy link

rafalimaz commented Dec 30, 2020

Olá,

Estive usando esse script na minha planilha, porém hoje me deparei com um erro. O problema é que eu tenho um investimento com o nome
"Tesouro Prefixado 2025", porém a api https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json
não está retornando informações desse título.

  1. Sabe de algum lugar que possa ver a cotação desses títulos que não estão mais listados?

  2. Sabe onde eu encontro a documentação dessa api do tesouro direto? Não encontrei em lugar nenhum.

@eudesdionatas
Copy link

Estou com o mesmo problema de rafalimaz. Poderia passa essa informação pra gente?

@eudesdionatas
Copy link

Voltou!! =)

@danperrout
Copy link
Author

danperrout commented Jan 6, 2021

  • Sabe de algum lugar que possa ver a cotação desses títulos que não estão mais listados?

Infelizmente não sei te falar se há outro lugar. Mas como lá é o site oficial do TD, acredito que lá seja a melhor fonte. Se você possui o título em sua corretora/banco ele tem que estar listado. Falo isso pois é possível resgatar seu título logando por lá.

Pode ser que seu título não esteja mais disponível na aba "INVESTIR", apenas na "RESGATAR".

  • Sabe onde eu encontro a documentação dessa api do tesouro direto? Não encontrei em lugar nenhum.

Nunca encontrei.
O que eu fiz para pegar os valores foi bater o JSON com as colunas no site.

@lauragontijo
Copy link

Será que você poderia fazer um API com Função do IPCA (https://www.ibge.gov.br/explica/inflacao.php) no google Sheets, por gentileza?

@danperrout
Copy link
Author

danperrout commented Aug 17, 2021

Será que você poderia fazer um API com Função do IPCA (https://www.ibge.gov.br/explica/inflacao.php) no google Sheets, por gentileza?

Infelizmente estou sem tempo no momento, mas a URL que fornece os dados é a seguinte:
https://servicodados.ibge.gov.br/api/v1/conjunturais?&d=s&user=ibge&t=1737&v=2266&p=202106,202107&ng=1(1)&c=

No parâmetro "p" estão os argumentos que devem ser modificados para o cálculo do IPCA mensal, sendo eles:
<ano><mes-1>,<ano><mes>

O resultado dessa consulta é um JSON que possui o valor do índice no mês consultado.

Para obter o percentual deve-se retornar o resultado da seguinte fórmula:
((v_<ano><mes>/v_<ano><mes-1>) - 1

@eliezerlribeiro
Copy link

eliezerlribeiro commented Aug 21, 2021

Olá, fiz uma alteração para dar suporte a qualquer argumento.


        if(argumento == "r")
          return bond.TrsrBd.untrRedVal;
        else if(argumento == "i")
          return bond.TrsrBd.untrInvstmtVal;
        else 
          return bond.TrsrBd[argumento];

@eliezerlribeiro
Copy link

eliezerlribeiro commented Aug 21, 2021

Aqui está a função do IPCA para quem quisar utilizar.

function IPCA(strBegin, strEnd){
    let srcURL = "https://servicodados.ibge.gov.br/api/v1/conjunturais?&d=s&user=ibge&t=1737&v=2266&p="+ strBegin + "," + strEnd+"&ng=1(1)&c=";    
    let jsondata = UrlFetchApp.fetch(srcURL);
    let parsedData = JSON.parse(jsondata)
    
    let dDiv = 1;
    let dDiv2 = 1;
    for (let tag of parsedData){
      if (tag["p_cod"] == strBegin) {
        dDiv = tag["v"];        
      }else
        dDiv2 = tag["v"]; 
    }
   return (dDiv2/dDiv) - 1;
}

@danperrout
Copy link
Author

Aqui está a função do IPCA para quem quisar utilizar.

function IPCA(strBegin, strEnd){
    let srcURL = "https://servicodados.ibge.gov.br/api/v1/conjunturais?&d=s&user=ibge&t=1737&v=2266&p="+ strBegin + "," + strEnd+"&ng=1(1)&c=";    
    let jsondata = UrlFetchApp.fetch(srcURL);
    let parsedData = JSON.parse(jsondata)
    
    let dDiv = 1;
    let dDiv2 = 1;
    for (let tag of parsedData){
      if (tag["p_cod"] == strBegin) {
        dDiv = tag["v"];        
      }else
        dDiv2 = tag["v"]; 
    }
   return (dDiv2/dDiv) - 1;
}

Muito bom, eu só faria duas alterações:

  1. tratamento para a entrada das datas caso também seja enviado o dia do mês
  2. strBegin opcional, se não for enviado pelo usuário utiliza o mês anterior do strEnd para retornar o valor do IPCA do mês que o usuário enviou

@victormiya1
Copy link

ótimas informações! Alguém saberia dizer se conseguimos uma mesma API para dados históricos?

@adonaistudios2
Copy link

adonaistudios2 commented Jul 19, 2022

Olá, como eu faço pra obter, também, a coluna "rentabilidade anual" na cotação do tesouro direto?

Grato

@RadiusDetail
Copy link

Primeiramente parabéns pela API.
A formula está retornando o valor do fechamento do dia anterior que está contido na string "untrRedVal".
Mudei a ordem dos return e agora ele pega o valor atual contido na string "untrInvstmtVal".

        if(argumento == "r")
            return bond.TrsrBd.untrInvstmtVal;
        else
            return bond.TrsrBd.untrRedVal;

@danperrout
Copy link
Author

Primeiramente parabéns pela API. A formula está retornando o valor do fechamento do dia anterior que está contido na string "untrRedVal". Mudei a ordem dos return e agora ele pega o valor atual contido na string "untrInvstmtVal".

        if(argumento == "r")
            return bond.TrsrBd.untrInvstmtVal;
        else
            return bond.TrsrBd.untrRedVal;

https://gist.github.com/danperrout/b27197056fa38d0d669332647ab89d7a?permalink_comment_id=3540066#gistcomment-3540066

@danperrout
Copy link
Author

Olá, como eu faço pra obter, também, a coluna "rentabilidade anual" na cotação do tesouro direto?

Grato

https://gist.github.com/danperrout/b27197056fa38d0d669332647ab89d7a?permalink_comment_id=3867594#gistcomment-3867594

Vc pode ver os nomes dos argumentos e bater com o do site aqui: https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json

@levycarneiro
Copy link

Olá amigo, obrigado pelo código!

Uma dúvida, por que "Tesouro Prefixado 2025" não aparece na API? As vezes aparece, as vezes não. Neste exato momento não aparece.

https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json

Retorno da URL acima:

{
	"responseStatus": 200,
	"responseStatusText": "success",
	"statusInfo": "OK",
	"response": {
		"BdTxTp": {
			"cd": 0
		},
		"TrsrBondMkt": {
			"opngDtTm": "2022-11-23T09:25:00",
			"clsgDtTm": "2022-11-24T05:00:00",
			"qtnDtTm": "2022-11-23T13:08:40.893",
			"stsCd": 1,
			"sts": "Aberto"
		},
		"TrsrBdTradgList": [
			{
				"TrsrBd": {
					"cd": 159,
					"nm": "Tesouro Selic 2023",
					"featrs": "Título com rentabilidade diária vinculada à taxa de juros da economia (taxa Selic). Isso significa que se a taxa Selic aumentar a sua rentabilidade aumenta e se a taxa Selic diminuir, sua rentabilidade diminui.",
					"mtrtyDt": "2023-03-01T00:00:00",
					"minInvstmtAmt": 0.0,
					"untrInvstmtVal": 0.0,
					"invstmtStbl": "Esse investimento garante que, mesmo em caso de resgate antecipado, o montante do dinheiro resgatado será superior ao inicialmente investido.  Como não paga juros semestrais, é mais interessante para quem pode deixar o dinheiro render até o vencimento do investimento.",
					"semiAnulIntrstInd": false,
					"rcvgIncm": "Indicado para aqueles que querem realizar investimentos de curto prazo.",
					"anulInvstmtRate": 0.0,
					"anulRedRate": 0.0273,
					"minRedQty": 0.01,
					"untrRedVal": 12456.21,
					"minRedVal": 124.56,
					"isinCd": "BRSTNCLF1R82",
					"FinIndxs": {
						"cd": 17,
						"nm": "SELIC"
					},
					"wdwlDt": "2019-02-01T00:00:00"
				},
				"TrsrBdType": {
					"cd": 4,
					"nm": "LFT",
					"ctdyRate": 10000.0,
					"grPr": 0
				}
			},
			{
				"TrsrBd": {
					"cd": 171,
					"nm": "Tesouro Selic 2024",
					"featrs": "Título com rentabilidade diária vinculada à taxa de juros da economia (taxa Selic). Isso significa que se a taxa Selic aumentar a sua rentabilidade aumenta e se a taxa Selic diminuir, sua rentabilidade diminui.\r\n",
					"mtrtyDt": "2024-09-01T00:00:00",
					"minInvstmtAmt": 0.0,
					"untrInvstmtVal": 0.0,
					"invstmtStbl": "Como não paga juros semestrais, é mais interessante para quem pode deixar o dinheiro render até o vencimento do investimento\r\n",
					"semiAnulIntrstInd": false,
					"rcvgIncm": "Indicado para aqueles que querem realizar investimentos de curto prazo\r\n",
					"anulInvstmtRate": 0.0,
					"anulRedRate": 0.0294,
					"minRedQty": 0.01,
					"untrRedVal": 12450.66,
					"minRedVal": 124.51,
					"isinCd": "BRSTNCLF0008",
					"FinIndxs": {
						"cd": 17,
						"nm": "SELIC"
					},
					"wdwlDt": "2022-02-24T00:00:00"
				},
				"TrsrBdType": {
					"cd": 4,
					"nm": "LFT",
					"ctdyRate": 10000.0,
					"grPr": 0
				}
			},
			{
				"TrsrBd": {
					"cd": 164,
					"nm": "Tesouro Selic 2025",
					"featrs": "Título com rentabilidade diária vinculada à taxa de juros da economia (taxa Selic). Isso significa que se a taxa Selic aumentar a sua rentabilidade aumenta e se a taxa Selic diminuir, sua rentabilidade diminui.",
					"mtrtyDt": "2025-03-01T00:00:00",
					"minInvstmtAmt": 124.46,
					"untrInvstmtVal": 12446.57,
					"invstmtStbl": "Como não paga juros semestrais, é mais interessante para quem pode deixar o dinheiro render até o vencimento do investimento",
					"semiAnulIntrstInd": false,
					"rcvgIncm": "Indicado para aqueles que querem realizar investimentos de curto prazo",
					"anulInvstmtRate": 0.0373,
					"anulRedRate": 0.0473,
					"minRedQty": 0.01,
					"untrRedVal": 12443.75,
					"minRedVal": 124.44,
					"isinCd": "BRSTNCLF1RC4",
					"FinIndxs": {
						"cd": 17,
						"nm": "SELIC"
					}
				},
				"TrsrBdType": {
					"cd": 4,
					"nm": "LFT",
					"ctdyRate": 10000.0,
					"grPr": 0
				}
			},
			{
				"TrsrBd": {
					"cd": 172,
					"nm": "Tesouro Selic 2027",
					"featrs": "Título com rentabilidade diária vinculada à taxa de juros da economia (taxa Selic). Isso significa que se a taxa Selic aumentar a sua rentabilidade aumenta e se a taxa Selic diminuir, sua rentabilidade diminui.\r\n",
					"mtrtyDt": "2027-03-01T00:00:00",
					"minInvstmtAmt": 123.8,
					"untrInvstmtVal": 12380.75,
					"invstmtStbl": "Como não paga juros semestrais, é mais interessante para quem pode deixar o dinheiro render até o vencimento do investimento\r\n",
					"semiAnulIntrstInd": false,
					"rcvgIncm": "Indicado para aqueles que querem realizar investimentos de curto prazo\r\n",
					"anulInvstmtRate": 0.1448,
					"anulRedRate": 0.1548,
					"minRedQty": 0.01,
					"untrRedVal": 12375.49,
					"minRedVal": 123.75,
					"isinCd": "BRSTNCLF1RG5",
					"FinIndxs": {
						"cd": 17,
						"nm": "SELIC"
					}
				},
				"TrsrBdType": {
					"cd": 4,
					"nm": "LFT",
					"ctdyRate": 10000.0,
					"grPr": 0
				}
			}
		],
		"BizSts": {
			"cd": "0",
			"dtTm": "2022-11-23T14:14:30"
		}
	}
}

@blechner
Copy link

Olá amigo, obrigado pelo código!

Uma dúvida, por que "Tesouro Prefixado 2025" não aparece na API? As vezes aparece, as vezes não. Neste exato momento não aparece.

https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json

Retorno da URL acima:

{
	"responseStatus": 200,
	"responseStatusText": "success",
	"statusInfo": "OK",
	"response": {
		"BdTxTp": {
			"cd": 0
		},
		"TrsrBondMkt": {
			"opngDtTm": "2022-11-23T09:25:00",
			"clsgDtTm": "2022-11-24T05:00:00",
			"qtnDtTm": "2022-11-23T13:08:40.893",
			"stsCd": 1,
			"sts": "Aberto"
		},
		"TrsrBdTradgList": [
			{
				"TrsrBd": {
					"cd": 159,
					"nm": "Tesouro Selic 2023",
					"featrs": "Título com rentabilidade diária vinculada à taxa de juros da economia (taxa Selic). Isso significa que se a taxa Selic aumentar a sua rentabilidade aumenta e se a taxa Selic diminuir, sua rentabilidade diminui.",
					"mtrtyDt": "2023-03-01T00:00:00",
					"minInvstmtAmt": 0.0,
					"untrInvstmtVal": 0.0,
					"invstmtStbl": "Esse investimento garante que, mesmo em caso de resgate antecipado, o montante do dinheiro resgatado será superior ao inicialmente investido.  Como não paga juros semestrais, é mais interessante para quem pode deixar o dinheiro render até o vencimento do investimento.",
					"semiAnulIntrstInd": false,
					"rcvgIncm": "Indicado para aqueles que querem realizar investimentos de curto prazo.",
					"anulInvstmtRate": 0.0,
					"anulRedRate": 0.0273,
					"minRedQty": 0.01,
					"untrRedVal": 12456.21,
					"minRedVal": 124.56,
					"isinCd": "BRSTNCLF1R82",
					"FinIndxs": {
						"cd": 17,
						"nm": "SELIC"
					},
					"wdwlDt": "2019-02-01T00:00:00"
				},
				"TrsrBdType": {
					"cd": 4,
					"nm": "LFT",
					"ctdyRate": 10000.0,
					"grPr": 0
				}
			},
			{
				"TrsrBd": {
					"cd": 171,
					"nm": "Tesouro Selic 2024",
					"featrs": "Título com rentabilidade diária vinculada à taxa de juros da economia (taxa Selic). Isso significa que se a taxa Selic aumentar a sua rentabilidade aumenta e se a taxa Selic diminuir, sua rentabilidade diminui.\r\n",
					"mtrtyDt": "2024-09-01T00:00:00",
					"minInvstmtAmt": 0.0,
					"untrInvstmtVal": 0.0,
					"invstmtStbl": "Como não paga juros semestrais, é mais interessante para quem pode deixar o dinheiro render até o vencimento do investimento\r\n",
					"semiAnulIntrstInd": false,
					"rcvgIncm": "Indicado para aqueles que querem realizar investimentos de curto prazo\r\n",
					"anulInvstmtRate": 0.0,
					"anulRedRate": 0.0294,
					"minRedQty": 0.01,
					"untrRedVal": 12450.66,
					"minRedVal": 124.51,
					"isinCd": "BRSTNCLF0008",
					"FinIndxs": {
						"cd": 17,
						"nm": "SELIC"
					},
					"wdwlDt": "2022-02-24T00:00:00"
				},
				"TrsrBdType": {
					"cd": 4,
					"nm": "LFT",
					"ctdyRate": 10000.0,
					"grPr": 0
				}
			},
			{
				"TrsrBd": {
					"cd": 164,
					"nm": "Tesouro Selic 2025",
					"featrs": "Título com rentabilidade diária vinculada à taxa de juros da economia (taxa Selic). Isso significa que se a taxa Selic aumentar a sua rentabilidade aumenta e se a taxa Selic diminuir, sua rentabilidade diminui.",
					"mtrtyDt": "2025-03-01T00:00:00",
					"minInvstmtAmt": 124.46,
					"untrInvstmtVal": 12446.57,
					"invstmtStbl": "Como não paga juros semestrais, é mais interessante para quem pode deixar o dinheiro render até o vencimento do investimento",
					"semiAnulIntrstInd": false,
					"rcvgIncm": "Indicado para aqueles que querem realizar investimentos de curto prazo",
					"anulInvstmtRate": 0.0373,
					"anulRedRate": 0.0473,
					"minRedQty": 0.01,
					"untrRedVal": 12443.75,
					"minRedVal": 124.44,
					"isinCd": "BRSTNCLF1RC4",
					"FinIndxs": {
						"cd": 17,
						"nm": "SELIC"
					}
				},
				"TrsrBdType": {
					"cd": 4,
					"nm": "LFT",
					"ctdyRate": 10000.0,
					"grPr": 0
				}
			},
			{
				"TrsrBd": {
					"cd": 172,
					"nm": "Tesouro Selic 2027",
					"featrs": "Título com rentabilidade diária vinculada à taxa de juros da economia (taxa Selic). Isso significa que se a taxa Selic aumentar a sua rentabilidade aumenta e se a taxa Selic diminuir, sua rentabilidade diminui.\r\n",
					"mtrtyDt": "2027-03-01T00:00:00",
					"minInvstmtAmt": 123.8,
					"untrInvstmtVal": 12380.75,
					"invstmtStbl": "Como não paga juros semestrais, é mais interessante para quem pode deixar o dinheiro render até o vencimento do investimento\r\n",
					"semiAnulIntrstInd": false,
					"rcvgIncm": "Indicado para aqueles que querem realizar investimentos de curto prazo\r\n",
					"anulInvstmtRate": 0.1448,
					"anulRedRate": 0.1548,
					"minRedQty": 0.01,
					"untrRedVal": 12375.49,
					"minRedVal": 123.75,
					"isinCd": "BRSTNCLF1RG5",
					"FinIndxs": {
						"cd": 17,
						"nm": "SELIC"
					}
				},
				"TrsrBdType": {
					"cd": 4,
					"nm": "LFT",
					"ctdyRate": 10000.0,
					"grPr": 0
				}
			}
		],
		"BizSts": {
			"cd": "0",
			"dtTm": "2022-11-23T14:14:30"
		}
	}
}

Isso é porque a negociação dos títulos está sendo suspensa a todo momento nesses dias, com o risco brasil nas alturas graças à tragédia que ocorreu no dia 30/10/2022. Então o Tesouro Nacional suspende as negociações para acalmar o "animo" dos investidores. Mas agora já voltou, pode testar que todos os títulos estão sendo incluídos no resultado.

@LuizHDev
Copy link

Olá amigo, seria muito trabalhoso fazer essa função para o excel no VBA?

@Octandrade
Copy link

Uso sua API, como faço para buscar o valor de um tesouro que não está mais à venda, mais tenho dinheiro aplicado, como o Tesouro Selic 2024

@joaopedrosusselbertogna

Gente, eu sou meio animal com programação, como eu faço para adicionar essa API no Google Planilhas? Sou professor e estou desenvolvendo um projeto de educação financeira, posso melhorar muito minha planilha com esse API

@danperrout
Copy link
Author

danperrout commented Feb 11, 2023 via email

@danperrout
Copy link
Author

Uso sua API, como faço para buscar o valor de um tesouro que não está mais à venda, mais tenho dinheiro aplicado, como o Tesouro Selic 2024

Meu código já prevê isso e vc pode usar um argumento na sua função pra trazer o valor da aba "INVESTIR" ou o valor da aba "RESGATAR". Por padrão ele traz o valor da aba resgatar. Caso queira o outro valor, usando meu código, é só colocar na sua célula =TESOURODIRETO("nome do título","i")

@johnt1000
Copy link

Boa noite @danperrout, obrigado por compartilhar seu código.

@klausbegnis
Copy link

klausbegnis commented Sep 4, 2023

Então, não estava mais funcionando, pois não comparava certo os valores de ano, adicionei isso daqui:
resolvou para os casos do prefixado e selic que são os do meu interesse

Coloquei uns logs pra debug assim consegue ver no histório de execuções as comparações entre o json e o que você informou de input

/** @return Retorna a cotação atual de um título específico do Tesouro Direto. 
* Fonte: https://www.tesourodireto.com.br/titulos/precos-e-taxas.htm
**/
function TESOURODIRETO2(bondName, argumento="r") {
    let srcURL = "https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json";
    let jsondata = UrlFetchApp.fetch(srcURL);
    let parsedData = JSON.parse(jsondata.getContentText()).response;
    for(let bond of parsedData.TrsrBdTradgList) {
        let currBondName = bond.TrsrBd.nm;
        console.log(currBondName, bondName)
        if (currBondName === bondName)
          var thenum1 = currBondName.replace(/^\D+/g, '');
          var thenum2 = bondName.replace(/^\D+/g, '');
          if (thenum1 === thenum2)
              if(argumento == "r")
                  return bond.TrsrBd.untrRedVal;
              else
                  return bond.TrsrBd.untrInvstmtVal;
    }
    throw new Error("Título não encontrado.", bondName);
}

@wroliveira1
Copy link

Ha alguns dias parou de funcionar. Colocando o codigo do klausbegnis consegui fazer o tesouro selic 2029 funcionar com argumento i, ja os demais titulos nao sao encontrados. Com argumento r ele retorna 0. Alguma ideia ?

@danperrout
Copy link
Author

Ha alguns dias parou de funcionar. Colocando o codigo do klausbegnis consegui fazer o tesouro selic 2029 funcionar com argumento i, ja os demais titulos nao sao encontrados. Com argumento r ele retorna 0. Alguma ideia ?

No dia de hoje, esse são os 53 títulos que retornam valor:
[
"Tesouro Selic 2024",
"Tesouro Selic 2025",
"Tesouro Selic 2026",
"Tesouro Selic 2027",
"Tesouro Selic 2029",
"Tesouro Prefixado 2024",
"Tesouro Prefixado 2025",
"Tesouro Prefixado com Juros Semestrais 2025",
"Tesouro Prefixado 2026",
"Tesouro Prefixado com Juros Semestrais 2027",
"Tesouro Prefixado 2029",
"Tesouro Prefixado com Juros Semestrais 2029",
"Tesouro Prefixado com Juros Semestrais 2031",
"Tesouro Prefixado com Juros Semestrais 2033",
"Tesouro IPCA+ 2024",
"Tesouro IPCA+ com Juros Semestrais 2024",
"Tesouro IPCA+ 2026",
"Tesouro IPCA+ com Juros Semestrais 2026",
"Tesouro IPCA+ 2029",
"Tesouro IPCA+ com Juros Semestrais 2030",
"Tesouro Educa+ 2026",
"Tesouro Educa+ 2027",
"Tesouro IPCA+ com Juros Semestrais 2032",
"Tesouro Educa+ 2028",
"Tesouro Educa+ 2029",
"Tesouro Educa+ 2030",
"Tesouro IPCA+ 2035",
"Tesouro IPCA+ com Juros Semestrais 2035",
"Tesouro Educa+ 2031",
"Tesouro Educa+ 2032",
"Tesouro Educa+ 2033",
"Tesouro Educa+ 2034",
"Tesouro Educa+ 2035",
"Tesouro IPCA+ com Juros Semestrais 2040",
"Tesouro Educa+ 2036",
"Tesouro Educa+ 2037",
"Tesouro Educa+ 2038",
"Tesouro Educa+ 2039",
"Tesouro Educa+ 2040",
"Tesouro IPCA+ 2045",
"Tesouro IPCA+ com Juros Semestrais 2045",
"Tesouro Educa+ 2041",
"Tesouro Renda+ Aposentadoria Extra 2030",
"Tesouro IPCA+ com Juros Semestrais 2050",
"Tesouro Renda+ Aposentadoria Extra 2035",
"Tesouro IPCA+ com Juros Semestrais 2055",
"Tesouro Renda+ Aposentadoria Extra 2040",
"Tesouro Renda+ Aposentadoria Extra 2045",
"Tesouro Renda+ Aposentadoria Extra 2050",
"Tesouro Renda+ Aposentadoria Extra 2055",
"Tesouro Renda+ Aposentadoria Extra 2060",
"Tesouro Renda+ Aposentadoria Extra 2065",
"Tesouro IGPM+ com Juros Semestrais 2031"
]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment