IBOV

106.927,79 pts

+1,32%

SP500

4.670,53 pts

+0,16%

DJIA

35.958,92 pts

+0,13%

NASDAQ

15.624,55 pts

+0,08%

IFIX

2.782,90 pts

+0,66%

BRENT

US$ 85,68

-0,44%

IO62

¥ 705,00

-2,35%

TRAD3

R$ 4,60

+3,37%

ABEV3

R$ 15,10

+0,73%

AMER3

R$ 30,31

+2,43%

ASAI3

R$ 12,13

+0,91%

AZUL4

R$ 26,33

+1,07%

B3SA3

R$ 12,22

+5,43%

BIDI11

R$ 23,85

+7,91%

BBSE3

R$ 19,45

+1,40%

BRML3

R$ 8,40

+7,00%

BBDC3

R$ 17,44

+1,51%

BBDC4

R$ 20,87

+1,60%

BRAP4

R$ 27,52

+0,51%

BBAS3

R$ 30,41

+2,56%

BRKM5

R$ 52,16

+0,21%

BRFS3

R$ 24,30

+1,20%

BPAC11

R$ 19,83

+2,95%

CRFB3

R$ 14,40

+1,40%

CCRO3

R$ 11,39

-0,08%

CMIG4

R$ 12,73

+0,23%

HGTX3

R$ 37,51

+0,00%

CIEL3

R$ 2,01

-0,49%

COGN3

R$ 2,16

+3,84%

CPLE6

R$ 6,34

+1,76%

CSAN3

R$ 21,22

+0,80%

CPFE3

R$ 25,95

+0,38%

CVCB3

R$ 11,71

-2,00%

CYRE3

R$ 14,14

-0,35%

ECOR3

R$ 7,18

-0,27%

ELET3

R$ 31,61

+0,60%

ELET6

R$ 31,09

+0,09%

EMBR3

R$ 22,01

-0,58%

ENBR3

R$ 20,80

+1,56%

ENGI11

R$ 40,97

+0,44%

ENEV3

R$ 12,64

+3,86%

EGIE3

R$ 38,39

+0,26%

EQTL3

R$ 22,62

+0,13%

EZTC3

R$ 18,61

+1,63%

FLRY3

R$ 17,93

+2,45%

GGBR4

R$ 28,28

+0,03%

GOAU4

R$ 11,73

-0,08%

GOLL4

R$ 16,93

+1,07%

NTCO3

R$ 21,80

-0,09%

HAPV3

R$ 10,31

+1,37%

HYPE3

R$ 28,00

+3,35%

IGTA3

R$ 33,24

+0,00%

GNDI3

R$ 60,47

+1,59%

IRBR3

R$ 3,54

+0,28%

ITSA4

R$ 9,67

+1,15%

ITUB4

R$ 23,50

-0,76%

JBSS3

R$ 37,39

+0,89%

JHSF3

R$ 4,85

+2,32%

KLBN11

R$ 25,32

-0,66%

RENT3

R$ 51,27

+3,68%

LCAM3

R$ 22,88

+3,43%

LWSA3

R$ 8,39

-4,11%

LAME4

R$ 5,68

+1,97%

LREN3

R$ 23,97

-3,19%

MGLU3

R$ 6,33

+3,94%

MRFG3

R$ 23,51

+3,38%

BEEF3

R$ 10,27

+1,68%

MRVE3

R$ 11,09

+1,37%

MULT3

R$ 18,49

+2,04%

PCAR3

R$ 19,91

+1,47%

PETR3

R$ 34,56

+2,09%

PETR4

R$ 31,45

+3,72%

VBBR3

19,83

-1,49%

PRIO3

R$ 22,90

+3,99%

QUAL3

R$ 15,93

+2,64%

RADL3

R$ 21,04

+0,19%

RAIL3

R$ 16,31

+0,30%

SBSP3

R$ 35,11

-0,39%

SANB11

R$ 31,86

+1,14%

CSNA3

R$ 25,72

-1,75%

SULA11

R$ 23,03

-1,03%

SUZB3

R$ 62,77

+0,38%

TAEE11

R$ 36,06

+0,05%

VIVT3

R$ 46,88

-0,34%

TIMS3

R$ 12,63

-0,62%

TOTS3

R$ 25,20

-0,07%

UGPA3

R$ 13,16

-1,64%

USIM5

R$ 16,45

+0,48%

VALE3

R$ 84,69

+0,58%

VIIA3

R$ 3,97

-0,50%

WEGE3

R$ 30,70

+6,04%

YDUQ3

R$ 18,90

+1,66%

IBOV

106.927,79 pts

+1,32%

SP500

4.670,53 pts

+0,16%

DJIA

35.958,92 pts

+0,13%

NASDAQ

15.624,55 pts

+0,08%

IFIX

2.782,90 pts

+0,66%

BRENT

US$ 85,68

-0,44%

IO62

¥ 705,00

-2,35%

TRAD3

R$ 4,60

+3,37%

ABEV3

R$ 15,10

+0,73%

AMER3

R$ 30,31

+2,43%

ASAI3

R$ 12,13

+0,91%

AZUL4

R$ 26,33

+1,07%

B3SA3

R$ 12,22

+5,43%

BIDI11

R$ 23,85

+7,91%

BBSE3

R$ 19,45

+1,40%

BRML3

R$ 8,40

+7,00%

BBDC3

R$ 17,44

+1,51%

BBDC4

R$ 20,87

+1,60%

BRAP4

R$ 27,52

+0,51%

BBAS3

R$ 30,41

+2,56%

BRKM5

R$ 52,16

+0,21%

BRFS3

R$ 24,30

+1,20%

BPAC11

R$ 19,83

+2,95%

CRFB3

R$ 14,40

+1,40%

CCRO3

R$ 11,39

-0,08%

CMIG4

R$ 12,73

+0,23%

HGTX3

R$ 37,51

+0,00%

CIEL3

R$ 2,01

-0,49%

COGN3

R$ 2,16

+3,84%

CPLE6

R$ 6,34

+1,76%

CSAN3

R$ 21,22

+0,80%

CPFE3

R$ 25,95

+0,38%

CVCB3

R$ 11,71

-2,00%

CYRE3

R$ 14,14

-0,35%

ECOR3

R$ 7,18

-0,27%

ELET3

R$ 31,61

+0,60%

ELET6

R$ 31,09

+0,09%

EMBR3

R$ 22,01

-0,58%

ENBR3

R$ 20,80

+1,56%

ENGI11

R$ 40,97

+0,44%

ENEV3

R$ 12,64

+3,86%

EGIE3

R$ 38,39

+0,26%

EQTL3

R$ 22,62

+0,13%

EZTC3

R$ 18,61

+1,63%

FLRY3

R$ 17,93

+2,45%

GGBR4

R$ 28,28

+0,03%

GOAU4

R$ 11,73

-0,08%

GOLL4

R$ 16,93

+1,07%

NTCO3

R$ 21,80

-0,09%

HAPV3

R$ 10,31

+1,37%

HYPE3

R$ 28,00

+3,35%

IGTA3

R$ 33,24

+0,00%

GNDI3

R$ 60,47

+1,59%

IRBR3

R$ 3,54

+0,28%

ITSA4

R$ 9,67

+1,15%

ITUB4

R$ 23,50

-0,76%

JBSS3

R$ 37,39

+0,89%

JHSF3

R$ 4,85

+2,32%

KLBN11

R$ 25,32

-0,66%

RENT3

R$ 51,27

+3,68%

LCAM3

R$ 22,88

+3,43%

LWSA3

R$ 8,39

-4,11%

LAME4

R$ 5,68

+1,97%

LREN3

R$ 23,97

-3,19%

MGLU3

R$ 6,33

+3,94%

MRFG3

R$ 23,51

+3,38%

BEEF3

R$ 10,27

+1,68%

MRVE3

R$ 11,09

+1,37%

MULT3

R$ 18,49

+2,04%

PCAR3

R$ 19,91

+1,47%

PETR3

R$ 34,56

+2,09%

PETR4

R$ 31,45

+3,72%

VBBR3

19,83

-1,49%

PRIO3

R$ 22,90

+3,99%

QUAL3

R$ 15,93

+2,64%

RADL3

R$ 21,04

+0,19%

RAIL3

R$ 16,31

+0,30%

SBSP3

R$ 35,11

-0,39%

SANB11

R$ 31,86

+1,14%

CSNA3

R$ 25,72

-1,75%

SULA11

R$ 23,03

-1,03%

SUZB3

R$ 62,77

+0,38%

TAEE11

R$ 36,06

+0,05%

VIVT3

R$ 46,88

-0,34%

TIMS3

R$ 12,63

-0,62%

TOTS3

R$ 25,20

-0,07%

UGPA3

R$ 13,16

-1,64%

USIM5

R$ 16,45

+0,48%

VALE3

R$ 84,69

+0,58%

VIIA3

R$ 3,97

-0,50%

WEGE3

R$ 30,70

+6,04%

YDUQ3

R$ 18,90

+1,66%

Python: condicionais e funções

filipe-duarte

02 FEV

3 MIN

Python: condicionais e funções

Olá investidor! No artigo de hoje teremos mais uma aula do curso de introdução ao Python. O texto a seguir explicará como empregar operações condicionais e como criar funções no Python. Veremos especialmente a aplicação em análise de investimentos. Para facilitar a compreensão, elencamos o tema nos seguintes tópicos:

  • Operações condicionais no Python
  • Operadores de comparação
  • Operadores lógicos
  • Funções do Python

Boa leitura!

Operações condicionais no Python

O que vamos aprender hoje ajudará na elaboração de códigos automatizados. Por exemplo, o desenvolvimento de um algoritmo de trading, ou ainda, selecionar empresas com base em indicadores financeiros.

Operadores de comparação

As operações condicionais têm como resultado um valor VERDADEIRO (1) ou FALSO (0). Sendo assim, precisamos de um operador de comparação para realizar a operação entre dois valores. Os operadores de comparação são:

  • < (menor) > (maior)
  • <= (menor ou igual) >= (maior ou igual)
  • == (igual)
  • != (diferente)

Esses operadores são vastamente utilizados na matemática e na programação. Eles são úteis quando desejamos filtrar empresas que apresentarem, por exemplo, um retorno maior do que 10%.

Operadores lógicos

Os operadores lógicos permitem que possamos elaborar duas ou mais operações condicionais. São 3 (três) os operadores lógicos:

  • and (e)
  • or (ou)
  • not (não)

O significado desses operadores é o mesmo que utilizamos na língua portuguesa. Nesse caso, podemos utilizá-los para selecionar empresas com retorno maior do que 10% e (and) volatilidade menor do que 15%.

Esses operadores são combinados com uma instrução if() para que o programa seja útil. Então como funciona essa instrução condicional? Primeiramente, o comando if() permite que avaliemos uma expressão cujo resultado será um verdadeiro ou falso.

Em seguida, podemos implementar um comportamento alternativo quando a expressão não apresentar o resultado verdadeiro.

A expressão alternativa, que surge a partir do momento em que o resultado é falso, é chamado de else e será empregado após a avaliação da instrução if(). A instrução else não precisa de uma expressão condicional para ser computada, isto é, basta que o resultado da instrução if() seja falso.

Veja a seguir um exemplo em que estamos criando um programa para avaliar se o retorno de uma ação é maior ou igual a 10%. Se for verdadeiro, o programa mostra “Investir”, caso contrário, “Não investir”.

  • Retorno de 10%

  • Retorno de 9%

Vamos aumentar a complexidade ao adicionar o critério de volatilidade. Então, se o Retorno for maior ou igual a 10% e a volatilidade for menor ou igual a 15%, o programa vai imprimir “Investir”, caso contrário, “Não investir”.

  • Retorno de 10% e Volatilidade de 12%

  • Retorno de 10% e Volatilidade de 16%

  • Retorno de 9% e Volatilidade de 12%

Perceba que o resultado verdadeiro da instrução if(retorno >= 0.1 and volatilidade <= 0.15) só acontece se ambas as operações condicionais forem verdadeiras.

Funções do Python

Uma função do Python é uma sequência de comandos que executa uma determinada operação e possui um nome. É útil na organização e na automatização dos códigos. Em Python, é possível criar uma função da seguinte maneira:

def NomeFunção(parâmetros):
comandos

É possível criar um nome qualquer para a função, exceto àqueles já reservados em Python (isso mesmo, o Python possui algumas funções nativas cujos nomes são reservados).

Criaremos uma função a seguir que avalia o retorno e a volatilidade e imprime “Investir” ou “Não investir”. Isto é, vamos implementar uma função que emprega nossa operação condicional visto anteriormente (uma função permitirá você automatizar seus códigos, utilizando-as diversas vezes).

Primeiro, vamos criar a função que será armazenada na memória. Depois, vamos testá-la.

  • Função chamada de “investir”

  • Teste da função para retorno de 10% e volatilidade de 12%

  • Outra forma (fixando os parâmetros fora da função)

  • Outra maneira de fixar parâmetros internamente

Perceba que quando criamos a função ‘investir’, fixamos os parâmetros na ordem ‘retorno’ e ‘volatilidade’. Desse modo, as variáveis ‘retorno’ e ‘volatilidade’ recebem os valores armazenados em ‘ret’ e ‘vol’.

As operações condicionais e as funções são amplamente utilizadas pelos analistas que utilizam o Python como linguagem de programação para analisar dados, em razão de permitir a automatização dos procedimentos.

Por fim, pense que você pode escrever uma função quando for empregar uma instrução repetidas vezes. A função vai padronizar o seu código, deixando-o mais enxuto e mais fácil de ser lido.

No próximo artigo da série vamos aprender a criar modelos de precificação de ativos (CAPM) no Python, a partir de bibliotecas estatísticas.

Baixe nosso aplicativo grátis! No TC você acompanha as principais notícias e cotações do mercado em tempo real, além de ter acesso a canais exclusivos para interagir com os melhores profissionais.

Colaborador do TC School

Aprenda tudo sobre contabilidade

E-BOOK

Aprenda tudo sobre contabilidade

Neste e-book — “Contabilidade”, trazemos informações e conceitos importantes sobre contabilidade financeira.

Receba todas as novidades do TC

Deixe o seu contato com a gente e saiba mais sobre nossas novidades, eventos e facilidades.