Sunteți pe pagina 1din 95

MBA - Gesto Financeira, Controladoria e

Auditoria

Anlise de Projetos de Investimento

Autores:

Luiz Jurandir Simes de Arajo


Denise Lima Lopes

Realizao
Fundao Getulio Vargas
FGV Management
Todos os direitos em relao ao design deste material didtico so reservados
Fundao Getulio Vargas.
Todos os direitos quanto ao contedo deste material didtico so reservados ao(s)
autor(es).

Arajo, Luiz Jurandir Simes de


Anlise de projetos de investimento / Luiz Jurandir
Simes de Arajo - 1 ed. Rio de Janeiro; FGV
Management Cursos de educao continuada, 2009.
52 p.

ISBN -

1. Projetos. 2. Finanas. I. Lopes, Denise Lima


II. Ttulo
C180603

Diretor da EBAPE/FGV Prof. Bianor Scelza Cavalcanti


Diretor da EPGE/FGV Prof. Clovis de Faro
Diretor Executivo do FGV Management Prof. Ricardo Spinelli de Carvalho
Coordenador FGV Online Prof. Carlos Longo
Coordenadora Ncleo FGV - Braslia Prof. Maria do Socorro V. de Carvalho
Coordenador ISAE Amaznia Prof. Rosa Oliveira de Pontes
Coordenador ISAE Paran Prof. Norman de Paula Arruda Filho
Coordenador da Central de Qualidade Prof. Peter Elsler
Coordenadores de rea
Prof. Carlos Longo
Prof. Ernani Hickmann
Prof. Jos Carlos Sardinha
Prof. Marilson Gonalves
Prof. Pedro Carvalho de Mello
Prof. Ronaldo Andrade
Profa. Sylvia Constant Vergara.

A sua opinio muito importante para ns


Fale Conosco!
Central de Qualidade FGV Management
ouvidoria@fgv.br

ii
Sumrio
1. PROGRAMA DA DISCIPLINA 1

1.1 Ementa 1
1.2 Carga Horria Total 1
1.3 Objetivos 1
1.4 Contedo Programtico 2
1.5 Metodologia 2
1.6 Critrios de Avaliao 2
1.7 Bibliografia Recomendada 3
Currculo Resumido dos Professores 4

2. MEDIDAS DE INVESTIMENTO 5

3. RISCO E ESTATSTICA 27

4. INTERVALO DE CONFIANA 32

5 DERIVATIVOS 34

6. FERRAMENTAS DE VBA 51

6.1 Elementos Fundamentais das Linguagens de Programao 51


6.2 Requisitos para o Aprendizado 52
6.3 Variveis e Constantes 53
6.4 Tipos de Dados e Declarao de Variveis 55
6.5 Atribuio de Valores 57
6.6 Ainda sobre os Tipos de Dados 58
6.7 Expresses Aritmticas 60
6.8 Uso do If 62
6.9 Ciclos 64
6.10 Uso do While 65
6.11 Colees e Objetos 68
6.12 Leitura e Exibio de Dados 73

iii
ANEXO I 76

ANEXO II 79

ANEXO III 81

ANEXO IV 82

REFERNCIAS BIBLIOGRFICAS 91

iv
1. Programa da Disciplina

1.1 Ementa

Apresentar as principais medidas de anlis e de inves timento com e sem risco. Alg uns
conceitos de economia, estatstica, finanas e risco sero explicitados para integrar as
habilidades e competncias necessrias anlise inte grada de um projeto de
investimento, bem como ferramentas de VBA.

1.2 Carga Horria Total


24 horas/aula

1.3 Objetivos
Desenvolver a habilidade de utilizar as principais medidas de anlise de
investimento (payback, payback corridigo, VPL, TIR, TIR Modificada, IL e outras);
Integrar conceitos de outras reas (economia, estatstica, finanas e risco) na
projeo de fluxos;
Prospectar os aspectos relevantes de um projeto que exigiro tratamento
pormenorizado na projeo dos fluxos.

1 Anlise de projetos de investimento


1.4 Contedo Programtico

Medidas de . Payback simples


investimento . Payback corrigido
. Taxa Contbil
. VPL
. TIR
. TIRM
. ndice de lucratividade
. Valor anual equivalente
Risco e Estatstica . Distribuio
. Distribuio Normal
. Intervalo de Confiana
Derivativos . SWAP
. Futuro
. Opes
. Hedge
. Transformando fluxos

1.5 Metodologia
25% do curso ser expositivo conceitual com aulas tericas. 50% do curso ser
laboratorial com exerccios realistas a serem implementados. 25% do curso ter estudos
de casos especficos que sejam relevantes aos alunos.

1.6 Critrios de Avaliao


O grau total que pode s er atribudo ao aluno obedecer avaliao in dividual, sob a
forma de prova, a ser realizada aps o trmino da disciplina e um trabalho em gr upo
de no mximo 3 alunos. Os pesos sero 50% e 50% respectivamente.

2 Anlise de projetos de investimento


1.7 Bibliografia Recomendada

BRASIL, Haroldo Guimares. Avaliao moderna de investimentos. Rio de Janeiro:


Qualitymark, 2002, 1 edio.

ROSS, Stephen A., WESTERFIELD, Randolph W., JAFFE, Jeffery F.. Administrao
Financeira Corporate Finance. So Paulo: Atlas, 2002, 2 edio.

3 Anlise de projetos de investimento


Currculo Resumido dos Professores

Luiz Jurandir Simes de Arajo especi alista em finanas e precificao. Graduado


em Cincia de computao pelo IME/USP. Mestre e doutor em engenharia eltrica pela
Poli/USP. Ps-graduado em Economia pela F EA/USP. Atuou na teso uraria do B anco
Itamarati como analista quantitativo por 2 anos. Atuou como auditor es pecializado em
gerenciamento de risco e tesouraria do Bacen durante 2 anos. Foi consultor Financeiro
da Prandini e Rabbat por 3 anos. Entre 2003 e 2006 foi scio diretor da consultoria
APLC especializada em solues d e consul toria integ radas com softwares e modelos
matemticos. Gerente de investimentos da Mercer de 2006 a 2007. Consultor financeiro
de solues avanadas de ge sto e risco da FIPECAFI Consulting. Professor de
finanas dos MBAs FIPECAFI/USP e da FGV Management.

Denise Lim a Lopes graduada em Arquitetura e Urbaminsmo e Administrao de


Empresas pela Universidade Mackenzie. Mestre em Engenharia pela POLI/USP.
Consultora do Banco Mundial, trabalha com si mulaes de cenrios para avaliao de
investimentos e precificao de ativos. Professora de Logstica dos MBAs de Comrcio
Exterior e Logstica Empresaria l do INPG. Professora de Engenharia de Trfego do
ps graduao lato sensu em Gesto e Norma tizao de Trnsito do CE AT. Professora
assistente na rea de simulaes em VBA dos MBAs em Mercado de C apitais e Gesto
Atuarial e Financeira da FIPECAFI.

4 Anlise de projetos de investimento


2. Medidas de investimento
Esse captulo agrupar as principais medidas de anlise de investimento utilizadas nos
exerccios em aula e no trabalho a ser entregue.

Anlise de projetos de
investimento (API)
Professor Luiz Jurandir Simes de Arajo

Introduo : 1

5 Anlise de projetos de investimento


1 - API sem incluir risco
Basicamente investir um deciso intertemporal: investe-se
agora e espera-se um retorno no futuro acima de um
patamar de oportunidade ou adia-se o investimento deixando
o capital em outra alternativa melhor e ganha-se uma
rentabilidade benchmark por isso.

Com a hiptese de racionalidade econmica adota-se a


premissa de maximizao da potencial rentabilidade dos
acionistas que sero beneficiados pelo projeto.

Introduo : 2

Como so as informaes quando


a anlise no tem risco

Taxas de juros pre-definida


Fluxo de pagamentos deterministicos, ou
seja, nao estocasticos
Ignora-se as dinamicas/reacoes dos
agentes externos ao projeto
Ignora-se mudancas institucionais
Ignora-se custos de transacao

Introduo : 3

6 Anlise de projetos de investimento


Metodologias de seleo de
alternativas de investimento
Tcnicas mais comuns
Payback simples
Payback corrigido
Taxa contbil (ou mdia) de retorno
Valor Presente Lquido (VPL)
Taxa Interna de Retorno (TIR)
TIR modificada
ndice de lucratividade
Valor Anual Equivalente
Introduo : 4

Payback Simples
Payback (perodo de recuperao do capital):
- o mnimo perodo de tempo necessrio para
recuperar o investimento feito sem considerar o
custo de capital, ou seja, mantendo-o constante
nominalmente.

- Por exemplo, um dono de restaurante compra por


100 mil um restaurante e espera n meses para
recuperar o valor investido somando-se as
retiradas mensais possveis.

Introduo : 5

7 Anlise de projetos de investimento


Payback Simples
Vantagens e desvantagens do payback
Vantagens:
Acaba sendo um teto de tempo mximo aceitvel
empresa
H entre o tempo e o risco uma certa proporcionalidade
(no necessariamente linear), portanto acaba sendo
uma medida de risco;
Facilmente calculvel
Muito comum em alguns mercados, por exemplo, donos
de restaurante da moda.

Introduo : 6

Payback Simples
Vantagens e desvantagens do payback

Desvantagens:
Ignora as peculiaridades do fluxo de caixa
Ignora o valor do dinheiro no tempo;
uma medida simples e til para projetos igualmente
simples, mas inadequada para projetos como fluxos
mais complexos e longos

Introduo : 7

8 Anlise de projetos de investimento


Payback Simples
Critrio de seleo de altenativa de
investimento usando Payback

Se houver vrias alternativas o menor Payback


prefervel, supondo que no haja nenhuma outra
informao a ser ponderada na escolha

Introduo : 8

Exerccio : analise as 4
alternativas usando o payback
simples
Data Alternativa A Alternativa B Alternativa C Alternativa D
Investimento inicial 0 100.000 100.000 100.000 100.000
1 10.000 20.000 80.000
2 10.000 20.000
3 10.000 20.000 50.000
4 10.000 20.000 20.000 10.000
5 10.000 20.000 10.000 10.000
6 10.000 20.000 10.000 10.000
7 10.000 20.000 20.000 10.000
8 10.000 20.000 20.000 10.000
9 10.000 20.000 20.000 10.000
10 10.000 20.000 20.000 10.000

Introduo : 9

9 Anlise de projetos de investimento


Medidas de investimento
Payback corrigido (perodo de recuperao do
capital):

Ao invs de se usar os valores nominais, calcula-


se os VP (valores presentes de cada fluxo) e
soma-os da mesma forma que no Payback
simples. Embora considere o valor do dinheiro no
tempo, ignora as peculiaridades dos fluxos.

Introduo : 10

Payback Corrigido
Vantagens e desvantagens do payback
corrigido
Vantagens:
Acaba sendo um teto de tempo mximo aceitvel
empresa considerando o valor do dinheiro no tempo
H entre o tempo e o risco uma certa proporcionalidade
(no necessariamente linear), portanto acaba sendo
uma medida de risco;
Facilmente calculvel
Muito comum em alguns mercados, por exemplo, donos
de restaurante que precisam de mais tempo para
recuperar o investimento inicial.

Introduo : 11

10 Anlise de projetos de investimento


Payback Corrigido
Vantagens e desvantagens do payback
corrigido

Desvantagens:
Ignora as peculiaridades do fluxo de caixa
uma medida simples e til para projetos igualmente
simples, mas inadequada para projetos como fluxos
mais complexos e longos

Introduo : 12

Payback Corrigido
Critrio de seleo de altenativa de
investimento usando Payback corrigido

Se houver vrias alternativas o menor Payback


corrigido prefervel, supondo que no haja
nenhuma outra informao a ser ponderada na
escolha

Introduo : 13

11 Anlise de projetos de investimento


Exerccio : analise as 4
alternativas usando o payback
Corrigido
Data Alternativa A Alternativa B Alternativa C Alternativa D
Investimento inicial 0 100.000 100.000 100.000 100.000
1 10.000 20.000 80.000
2 10.000 20.000
3 10.000 20.000 50.000
4 10.000 20.000 20.000 10.000
5 10.000 20.000 10.000 10.000
6 10.000 20.000 10.000 10.000
7 10.000 20.000 20.000 10.000
8 10.000 20.000 20.000 10.000
9 10.000 20.000 20.000 10.000
10 10.000 20.000 20.000 10.000

Introduo : 14

Taxa contbil de retorno


Taxa contbil de retorno
- a porcentagem dos retornos futuros dividido
pelo investimento inicial ignorando o custo do
dinheiro e com taxa linear para encontrar a taxa
de juros no perodo mnimo do fluxo.
Exerccio : Qual seria a frmula matemtica
da Taxa contbil de retorno ?

Introduo : 15

12 Anlise de projetos de investimento


Taxa contbil de retorno : vantagens e
desvantagens
Vantagens
Similar ao ROI ou ROA

Desvantagens:
Usa o lucro contbil ao invs do fluxo de caixa
Ignora o valor do dinheiro no tempo
Ignora as pecualiridades dos fluxos

Introduo : 16

Taxa contbil de retorno


Critrio de seleo de altenativa de
investimento usando TCR

Se houver vrias alternativas a maior TCR


prefervel, supondo que no haja nenhuma outra
informao a ser ponderada na escolha

Introduo : 17

13 Anlise de projetos de investimento


Exemplos de Taxas contbeis
de retorno

Data Alternativa A Alternativa B Alternativa C Alternativa D


Investimento inicial 0 100.000 100.000 100.000 100.000
1 50.000 20.000
2 50.000 20.000
3 50.000 20.000 50.000 80.000
4 50.000 20.000 20.000 (30.000)
5 50.000 20.000 10.000 40.000
TCR 30,0% 0,0% -4,0% -2,0%

Introduo : 18

Exerccio :calcule as TCRs


Data Alternativa A Alternativa B Alternativa C Alternativa D
Investimento inicial 0 200.000 200.000 200.000 200.000
1 34.290 25.845 22.198 25.080
2 17.734 153 12.551 15.159
3 14.338 27.135 4.031 4.838
4 34.031 23.373 15.215 4.352
5 6.176 28.804 22.634 20.937
6 24.884 3.322 7.789 30.116
7 2.756 29.195 24.250 37.315
8 39.051 8.034 24.185 29.992
9 34.226 377 36.208 350
10 21.559 3.777 22.991 4.958

Introduo : 19

14 Anlise de projetos de investimento


Exerccio : calcule as TCRs

Data Alternativa A Alternativa B Alternativa C Alternativa D


Investimento inicial 0 200.000 200.000 200.000 200.000
1 35.836 8.672 28.704 38.066
2 20.603 12.814 2.972 8.891
3 25.265 28.396 8.419 31.956
4 10.296 3.493 4.072 10.550
5 7.958 11.893 2.199 26.797
6 22.857 12.069 3.038 12.970
7 13.349 22.535 13.648 16.226
8 7.525 10.355 3.776 9.865
9 18.816 28.297 303 21.597
10 8.813 34.543 21.656 25.636

Introduo : 20

Valor Presente Lquido (VPL)


Valor Presente Lquido (VPL)

- Calcula-se com o fluxo de caixa lquido descontado


pelo custo de capital da empresa ou do investidor

Exerccio : Como seria a frmula?

Introduo : 21

15 Anlise de projetos de investimento


VPL : vantagens e desvantagens

Vantagens:
Considera o valor do dinheiro no tempo
calculado no mesmo jeito do clculo do valor
adicionado do acionista
Desvantagens:
Clculo mais complexo
Exige definir uma taxa de desconto

Introduo : 22

VPL
Critrio de seleo de alternativa de
investimento usando VPL

Se houver vrias alternativas o maior VPL


prefervel, supondo que no haja nenhuma outra
informao a ser ponderada na escolha

Introduo : 23

16 Anlise de projetos de investimento


Exemplo de VPL

Data Alternativa A Alternativa B Alternativa C Alternativa D


Investimento inicial 0 100.000 100.000 100.000 100.000
1 50.000 20.000
2 50.000 20.000
3 50.000 20.000 50.000 80.000
4 50.000 20.000 20.000 (30.000)
5 50.000 20.000 10.000 40.000
i=10%ao perodo VPL 89.539 (24.184) (42.565) (35.548)

Introduo : 24

Exerccio : Calcule o VPL das


alternativa A, B, C e D usando i =
12% ao perodo

Data Alternativa A Alternativa B Alternativa C Alternativa D


Investimento inicial 0 120.000 120.000 100.000 100.000
1 - 1.000
2 30.000 50.000 1.000
3 10.000 50.000 1.000
4 50.000 10.000 1.000
5 50.000 30.000 140.000 136.000

Introduo : 25

17 Anlise de projetos de investimento


Taxa Interna de Retorno (TIR)
Taxa Interna de Retorno (TIR) : a taxa
de desconto que iguala os valores presentes
das entradas e das sadas de caixa de um
projeto.

Exerccio : Como seria a frmula?

Introduo : 26

TIR vantagens e desvantagens


Vantagens:
Considera o valor do dinheiro no tempo
Aceita-se o projeto quando a TIR for maior
que o custo de capital da empresa. Objetivo
mais facilmente comparvel e analisvel em
termos econmicos.
Desvantagens:
Clculo mais complexo
H a suposio implcita que todos as entradas
lquidas positivas so remuneradas a mesma
taxa de retorno
Introduo : 27

18 Anlise de projetos de investimento


TIR
Critrio de seleo de alternativa de
investimento usando TIR

Se houver vrias alternativas a maior TIR


prefervel, supondo que no haja nenhuma outra
informao a ser ponderada na escolha

Introduo : 28

Taxa Interna de Retorno


Modificada (TIRM)
No clculo da TIRM usa-se duas taxas:
uma para levar os fluxos positivos at o
final e outra para se descontar os
desembolsos para o incio.
Comparando-se o VF das entradas com
o VP dos desembolsos calcula-se a
TIRM
Exerccio : Como seria a frmula?
Introduo : 29

19 Anlise de projetos de investimento


TIRM vantagens e desvantagens
Vantagens:
Considera o valor do dinheiro no tempo
Aceita-se o projeto quando a TIRM for maior
que o custo de capital da empresa.
Objetivo mais facilmente comparvel e
analisvel em termos econmicos.
H a suposio realista que os recursos
disponveis so remunerados a taxas menores
que o custo de capital.
Desvantagens:
Clculo mais complexo e exige mais
estimativas.
Introduo : 30

TIRM
Critrio de seleo de alternativa de
investimento usando TIR

Se houver vrias alternativas a maior TIR


prefervel, supondo que no haja nenhuma outra
informao a ser ponderada na escolha

Introduo : 31

20 Anlise de projetos de investimento


ndice de lucratividade (IL)
IL = VPL / VP dos desembolsos

O IL representa o VPL por unidade de


investimento
IL > 0 aceita o projeto
IL <= 0 recusa

Introduo : 32

IL vantagens e desvantagens
Vantagens:
Considera o valor do dinheiro no tempo
Pondera a relao VPL com desembolsos,
oferecendo maior sensibilidade analtica nos
projetos que exigem desembolsos constantes
Desvantagens:
Clculo mais complexo
H a suposio implcita que todos as entradas
lquidas positivas so remuneradas a mesma
taxa de retorno

Introduo : 33

21 Anlise de projetos de investimento


Valor Anual Equivalente (VAE)
VAE = VPL . i / [ 1 (1+i)-n ]

VAE necessrio para comparar


projetos com vidas diferentes.

Introduo : 34

Anlise e seleo de alternativas


de investimento
Se houver vrias alternativas, calcula-se as
medidas e escolhe-se a melhor
Se houver apenas uma alternativa, calcula-se
a medida e escolhe-se a alternativa se o
nmero obtido compensar o custo de capital
da empresa ou o custo de oportunidade do
capital.
Deve-se usar as medidas de acordo com as
peculiaridades do projeto a ser selecionado
Introduo : 35

22 Anlise de projetos de investimento


Medida gerencial e instrumento
de vo

Introduo : 36

Exerccio : Explique a metfora


visual.
Dicas:
Como os instrumentos auxiliam o piloto?
Uma empresa pode ser comparada a um
avio?
O gestor pode ser comparado a um piloto?
Quais so os instrumentos de vo dos
gestores?

Introduo : 37

23 Anlise de projetos de investimento


Comparao entre TIR e VPL
Pode haver diferentes classificaes
A premissa da taxa de reinvestimento
Retornos a taxas mltiplas ocorrem,
mas no so capturados em ambos os
modelos

Introduo : 38

Decises de investimentos
( em cenrio de certeza )
Pode haver diferentes classificaes. Veja o grfico
extrado do livro Valuation do Copeland

Introduo : 39

24 Anlise de projetos de investimento


Aponte e TIR dos projetos no
grfico

Introduo : 40

Taxa de reinvestimento
VPL x TIR
Est implcito no mtodo VPL o reinvestimento
das entradas lquidas a uma taxa igual a taxa
de desconto selecionada

Est implcito no mtodo de clculo da TIR o


reinvestimento a uma taxa igual prpria TIR

Introduo : 41

25 Anlise de projetos de investimento


VPL x TIR
O princpio do valor adicionado:

O Valor de uma firma igual soma dos valores


de cada um dos seus projetos.

Temos aqui a superioridade do VPL frente TIR,


por possibilitar adio do valor de projeto ao
custo de capital ao Valor da firma.

Introduo : 42

VPL x TIR
VPL x TIR:
Retornos de taxas mltiplas:

A metodologia da TIR
pode resultar em mais
de uma taxa de retorno
se o fluxo mudar de
sinal mais de uma vez.

Introduo : 43

26 Anlise de projetos de investimento


3. Risco e estatstica
Em uma amostra suficientemente grande, extrada de uma distribuio normal,
assemelha-se curva em forma de sino que apresentamos na Figura 1. Como pode ser
percebido, essa distribuio simtrica em relao a sua mdia.
Em estatstica clssica, a distribuio normal desempenha um papel
fundamental, e o desvio-padro a maneira usual de representar a disperso de uma
distribuio normal. No caso da distribuio normal, a probabilidade de observar uma
varivel acima ou abaixo da mdia por certo montante depende somente do desvio-
padro. Por exemplo, a probabilidade de uma varivel estar no mximo um desvio-
padro acima ou abaixo da mdia aproximadamente igual a 0,68 ou 2/3, a
probabilidade de uma varivel estar a dois desvios da mdia aproximadamente igual
0,95 ou 95% e a probabilidade de estar a trs desvios-padro da mdia 99%
aproximadamente.
A distribuio apresentada na Figura 1 terica, s vezes chamada de
distribuio populacional ou distribuio verdadeira. No h garantia nenhuma de
que a distribuio efetiva de observaes em cada amostra produza uma distribuio
exatamente igual ao da distribuio terica. Isso indica que h erro de amostragem em
qualquer amostra particular. Em outras palavras, a distribuio amostral apenas se
aproxima da distribuio verdadeira: sempre medimos a verdade com algum erro. Mas
ao aumentarmos o tamanho da amostra caminhamos para distribuio normal, ou seja a
distribuio amostral converge para a distribuio normal ao aumentarmos o tamanho
da amostra.
Por exemplo, considere uma urna que contenha trs espcies de objetos,
identificados como 0, 1, 2. Suponha que existam 20 zeros, 30 uns e 50 dois. Um objeto
extrado aleatoriamente e seu valor, digamos X, registrado. Ento a probabilidade de
X igual 0 0,2 ou 20%, de X igual a 1 0,3 ou 30% e de X igual a 2 0,5 ou 50%. A
Figura 2 retrata essa distribuio.

27 Anlise de projetos de investimento


Figura 1: Distribuio normal com mdia zero e desvio-padro 11.

Distribuio Normal

-4 -2 0 2 4

Suponha agora que o objeto extrado em primeiro lugar seja reposto na urna e, a
seguir, um segundo objeto seja extrado, somamos ento a os valores do primeiro e
segundo objeto e dividimos por dois, chamaremos esse valor de Y. Desta forma a
probabilidade de Y ser 0 de 0,04 ou 4%, de Y ser 1/2 de 0,12 ou 12% , de Y ser 1
0,29 ou 29%, de Y ser 3/2 0,3 ou 30% e de ser 2 0,2 ou 20%, como apresentado na
Tabela 1:

Tabela 1: Probabilidades da varivel Y.

Y 0 1/2 1 3/2 2
Probabilidade 0,04 ou 4% 0,12 ou 12% 0,29 ou 29% 0,3 ou 30% 0,2 ou 20%.

Os valores acima foram obtidos da seguinte maneira: Y=0, a probabilidade de


tirar zero duas vezes, logo 0,2 X 0,2 = 0,04; Y=1/2 a probabilidade de tirar zero na
primeira extrao da urna e 1 na segunda extrao mais a probabilidade de tirar 1 na
primeira extrao da urna e 0 na segunda extrao, ento temos 0,2 X 0,3 + 0,3 X 0,2 =

1
H 95,44% de probabilidade de que um valor esteja entre no intervalo de dois desvios da mdia. Nesse
exemplo, isso significa que um valor entre 2 e 2 tem 95,44% de chances de ocorrer.

28 Anlise de projetos de investimento


0,12; etc. O raciocnio anlogo para os demais clculos. A distribuio de Y est
representado na Figura 3.

Figura 2: Distribuio de probabilidade da varivel X.

V a ri ve l X
60

50

40

% 30

20

10

0
0 .0 0 .5 1 .0 1 .5 2 .0

Finalmente, suponha que depois que o segundo objeto tenha sido tambm
reposto, um terceiro objeto seja extrado e seu valor seja registrado. Criamos uma
varivel chamada Z, que a soma do primeiro, segundo e terceiro objeto dividido por
trs, as probabilidades dos valores de Z so apresentadas na Tabela 2 e sua distribuio
representada na Figura 3.

29 Anlise de projetos de investimento


Tabela 2: Probabilidades da varivel Z.

Z 0 1/3 2/3 1 4/3 5/3 2


Probabilidade 0,8% 3,6% 11,4% 20,7% 28,5%. 22,5% 12,5%

As distribuies das variveis Y e Z j esto mostrando sinais de normalidade;


isto , a aparncia da curva em sino da distribuio normal est comeando a surgir.
Partindo da distribuio de X, a qual assimtrica, verificamos que a mdia de apenas
trs observaes tem uma distribuio que j est mostrando indicaes de
normalidade.
Naturalmente, o exemplo acima no demonstra coisa alguma. No entanto, ele
representa uma ilustrao numrica da afirmao feita anteriormente. Podemos
continuar o exemplo calculando a distribuio de probabilidade da mdia das quatro
observaes obtidas e veremos que ela se parece mais com a distribuio normal do que
a mdia das trs observaes. Se continuarmos esse processo chegaremos a distribuio
normal, o nome desse fenmeno : Teorema do Limite Central.

Figura 3: Distribuio de probabilidade da varivel Y.

V a ri ve l Y
32

28

24

20

% 16

12

0
0 .0 0 .5 1 .0 1 .5 2 .0

Um outro exemplo calcular a distribuio da altura dos alunos. Faa voc


mesmo esse exemplo, pegue dez colegas de turma e anote as suas alturas, depois anote

30 Anlise de projetos de investimento


as alturas de mais vinte colegas, da turma toda, de duas turmas, ......, voc vai ver que a
distribuio vai convergindo para distribuio normal. O mesmo vlido para o peso
dos alunos, para o nmero de refeies servidas em um restaurante, para as vendas
mensais de um produto e etc. Quanto maior for a sua amostra mais parecida ela ser
com a distribuio normal.

Figura 4: Distribuio de probabilidade da varivel z.

V ari vel Z
30

25

20

% 15

10

0
0 .0 0 .5 1 .0 1 .5 2 .0

31 Anlise de projetos de investimento


4. Intervalo de Confiana

O Teorema do Limite Central nos ajuda muito na prtica. Se calcularmos a


mdia e o desvio padro de uma amostra suficientemente grande (amostras com mais de
30 observaes) podemos utilizar as propriedades da distribuio normal.
Voltando ao exemplo do restaurante, aps um ms da inaugurao do seu
restaurante, voc chegou aos seguintes nmeros: a mdia diria foi de 100 refeies
com desvio-padro de 15 refeies. Na prtica isso significa que voc tem a
probabilidade de 68% de servir entre 85 (100-15) e 115 (100+15) refeies hoje. Ou
tem 95% de chances de servir entre 70 (100-30) e 130 (100+30) refeies. Podendo
assim planejar a compra de alimentos e bebidas para semana, alm de poder estimar os
seus custos futuros.
Quanto maior for sua amostra mais precisa ser sua previso, pois apesar das 30
observaes terem uma distribuio parecida com a normal, ela no a distribuio
normal. Na teoria, as suas observaes s tero distribuio normal quando o nmero de
observaes tenderem para o infinito, mas quanto maior for a amostra mais prxima a
sua distribuio estar da distribuio normal.
Mas voltando para o lado prtico, vamos rever outro exemplo utilizando esse
novo conceito. No exemplo da revendedora de carros novos a amostra contm somente
quatro observaes (199, 2000, 2001, 2002), utilizar as propriedades da normal seria
imprudente. Como solucionar tal problema? Ao invs de utilizar os valores totais das
vendas do primeiro trimestre, vamos trabalhar com as vendas semanais do primeiro
trimestre. Como cada trimestre tem aproximadamente 13 semanas, teremos 52
observaes (13 X 4), podendo assim utilizar as propriedades da normal. Ento suponha
que a mdia semanal do primeiro trimestre seja 11 carros vendidos com desvio-padro
de 2 carros. Desta forma podemos esperar com 99% de chance que iremos vender de 5
(11 [2 X 3]) a 17 (11 + [2 X 3]) por semana. O mesmo raciocnio vlido para as
vendas de aparelhos de CDs. Suponha que a mdia semanal seja 9 com desvio-padro

32 Anlise de projetos de investimento


de 1,5 CDs. Ento temos 99% de chance de vender 4,5 (9 [1,5 X 3]) a 13,5 (9 + [1,5 X
3]) aparelhos de CDs para carros novos.

33 Anlise de projetos de investimento


5 Derivativos

Hedger, Especulador e Arbitrador

Neste texto s usaremos derivativos como instrumentos de mitigao de riscos. No


entanto, eles tambm podem ser usados como instrumentos de posicionamento
direcional. Por exemplo, um agente econmico que acredite que haver aumento ou
queda na taxa de juros pode comprar ou vender um contrato de DI futuro para lucrar
com a variao. No haver neste texto a preocupao de mostrar como usar derivativos
para posicionar-se.

Em geral, podemos separar os agentes econmicos em 3 classes:


- Hedgers;
- Especuladores e
- Arbitradores.

O Hedger um agente econmico que no quer assumir o risco e acaba vendendo esse
risco para outro agente que est mais apto ou disposto a assumi-lo. O agente que assume
o risco o Especulador. Aqui importante se realar que o especular no o mesmo
que manipular ou usurpar o mercado. Especular comprar um risco por acreditar que
vale a pena. (Lembra-se da relao Risco x Retorno?). O especulador, em geral, tem um
perfil de risco mais arrojado e admite assumir riscos maiores em nome da possibilidade
de obter resultados maiores.

Por exemplo, quando um proprietrio de um automvel compra um seguro contra


roubo, ele est sendo um Hedger e a empresa seguradora a Especuladora. Ela est
assumindo o risco do roubo em troca de um prmio. Ela atua ponderando a relao
prmio recebido versus a probabilidade de ocorrer o roubo. Da mesma forma, ao
estruturarmos um projeto podemos agregar derivativos que minimizem os seus riscos e

34 Anlise de projetos de investimento


transforme um tipo de fluxo em outra tipo, por exemplo, um fluxo sensvel a variao
cambial pode ser transformado em um fluxo prefixado usando-se um swap adequado.

Um Arbitrador um agente que opera rapidamente, no assume riscos por muito tempo
e prioritariamente procura distores de preos entre os compradores e os vendedores.
O Arbitrador sobretudo, um agente econmico que d liquidez ao mercado.

Estrutura a termo da taxa de juros DI futuro e Swaps

Uma curva de taxas pr pode ser construda atravs de contratos futuros de DI


negociados na BMF. As taxas para os perodos entre os vencimentos dos contratos
podero ser encontradas atravs do mtodo pro rata.

Caractersticas gerais dos contratos futuros

- Cada um tem um objeto da negociao, por exemplo, a cotao


da soja do dia 1/dezembro/2004.
- Cotao diria
- Unidade de negociao, por exemplo, 50 sacos de soja do tipo x
- Em geral, datas de vencimento padronizadas pelas bolsas
- Um certo nmero de vencimentos em aberto
- Data da ltima negociao
- Ajustes dirios, ou seja, diferenas a serem pagas ou recebidas
geradas pelas variaes entre o preo de mercado e o preo da
posio.

Por exemplo, suponha que na data 30/05/2003 sejam divulgados as seguintes


taxas para os contratos de DI futuro, como descrito na tabela abaixo.

35 Anlise de projetos de investimento


Data do Nmero de dias teis PU equivalente implcita na taxa do DI
Vencimento Taxa at o vencimento do futuro
contrato

01/06/2003 22,65% 1 100000 / (1+22,65%)( 1/252) 99919


01/07/2003 21,91% 22 100000 / (1+21,91%)(22/252) 98285
02/08/2003 22,02% 44 100000 / (1+22,02%)(44/252) 96585
01/09/2003 22,15% 66 100000 / (1+22,15%)(66/252) 94895

Para se construir uma curva pr, a partir de 30/05/2003, para as seguintes datas:

01/06/2003 15/06/2003 01/07/2003 19/07/2003 02/08/2003 17/08/2003 01/09/2003

A estrutura de dias teis mostrada na figura abaixo.

As taxas efetivas esperadas para os perodos que coincidem com os dias de vencimentos
dos contratos so dadas por:

De 30/05/2003 at 01/06/2003:
100000
1 = 0,081%
99919
De 30/05/2003 at 01/07/2003:
100000
1 = 1,745%
98285
De 30/05/2003 at 02/08/2003:

36 Anlise de projetos de investimento


100000
1 = 3,536%
96585
De 30/05/2003 at 01/09/2003:
100000
1 = 5,380%
94895

Para as datas definidas entre os vencimentos de DI, teremos:

De 30/05/2003 at 15/06/2003:
9
1 + 1,745% 21
1,0081 1 = 0,791%
1 + 0,081%
De 30/05/2003 at 19/07/2003:
12
1 + 3,536% 22
1,01745 1 = 2,718%
1 + 1,745%

De 30/05/2003 at 17/08/2003:
11
1 + 5,380% 22
1,03536 1 = 4,454%
1 + 3,536%
Desta forma, as taxas de juros efetivas esperadas para as datas estabelecidas sero:

01/06/2003 15/06/2003 01/07/2003 19/07/2003 02/08/2003 17/08/2003 01/09/2003


0.081% 0.791% 1.745% 2.718% 3.536% 4.454% 5.380%

A curva de juros utilizando os futuros de DI poder ser construda at os vencimentos


que possuem maior liquidez. Para prazos maiores, pode-se utilizar as taxas mdias dos
contratos de swap de pr contra DI (Swap DIxPRE). Por exemplo, suponha as taxas
mdias de contratos em 31/05/2003 (taxas anuais na base 360):

37 Anlise de projetos de investimento


Prazo Pr x DI
30 21.91
60 22.57
91 22.25
120 22.67
150 23.01
184 22.89
210 23.24
240 23.76
270 24.16
301 23.2003
330 24.13
364 24.22

No caso do prazo de 184 dias, a taxa pr ser dada por


184
22,89 360
1 + 1 = 11,1099%
100
Abaixo segue uma tabela em que so calculadas as diversas taxas para os prazos que
vo de 184 at 364 dias corridos:

Taxa no
Prazo Pr x DI
perodo
184 22.89 11.11%
210 23.24 12.96%
240 23.76 15.27%
270 24.16 17.62%
301 23.99 19.70%
330 24.13 21.91%
364 24.22 24.52%

38 Anlise de projetos de investimento


Curva de Dlar Futuro

Suponha que no dia 30/05/2003, os contratos de dlar futuro tenham os seguintes


valores de fechamento:

Data do Vencimento Dlar Futuro


01/06/2003 1.721
01/07/2003 1.746
02/08/2003 1.766

Desta forma, determinar uma curva de dlar futuro para as datas descritas abaixo.

01/06/2003 15/06/2003 01/07/2003 19/07/2003 02/08/2003

Como os contratos j esto cotados em R$/US$, o valor do dlar futuro esperado para
os dias de vencimento dos contratos, sero as prprias cotaes divulgadas na tabela
acima. No caso das datas entre os vencimentos, o valor do dlar futuro ser dado por:

De 30/05/2003 para 15/06/2003


9
1,746 21
1,721 = 1,7317
1,721
De 30/05/2003 para 19/07/2003:
12
1,766 22
1,746 = 1,7569
1,746

Portanto, as estimativas de dlar futuro e as variaes associadas, supondo que no dia


30/05/2003 a taxa de cmbio seja de 1.720, sero dadas por:

39 Anlise de projetos de investimento


01/06/2003 15/06/2003 01/07/2003 19/07/2003 02/08/2003
Cmbio esperado 1.721 1.7317 1.746 1.7569 1.766
Variao esperada 0.058% 0.678% 1.512% 2.144% 2.674%

Curva de Cupom Cambial

Neste tpico sero ilustrados dois processos de construo de uma curva de cupom
cambial: utilizando uma relao entre DI Futuro e Dlar Futuro e atravs dos contratos
de swap de pr contra dlar (Swap DIxDol).

Curva de cupom cambial com futuros de DI e Dlar: podemos estimar o cupom


cambial levando em conta as expectativas sobre os juros em moeda nacional e sobre
qual vai ser a desvalorizao cambial em um perodo. Isso pode ser feito por meio da
seguinte frmula

(1 + Pr e) vt
(TaxaCupom) vt = 1 x100 ,
(1 + C) t
v

em que
(1+ Pre) vt a taxa de juros esperada de t a v;

(1 + C) vt a variao cambial esperada de t a v.

Dados as curvas de taxa pr e dlar futuro construdas anteriormente, a curva de cupom


cambial em 30/05/2003 ser dada por:

40 Anlise de projetos de investimento


01/06/2003 15/06/2003 01/07/2003 19/07/2003 02/08/2003
(1+ Pre) vt 0.081% 0.791% 1.745% 2.718% 3.536%

C vt 0.058% 0.678% 1.512% 2.144% 2.674%

Cupom cambial 0.023% 0.112% 0.230% 0.562% 0.839%

Curva de cupom cambial com swaps: podemos utilizar diretamente as taxas de cupom
cambial divulgadas nos contratos de swaps de dlar contra DI (DIxDlar). A tabela
abaixo apresenta as taxas para o dia 30/05/2003.

Prazo Dol x DI
30 9.99%
60 8.70%
91 9.02%
120 10.23%
150 11.06%
184 11.50%
210 11.90%
240 12.38%
270 12.78%
301 12.85%
330 13.07%
364 13.28%

Neste caso, as taxas so anuais, lineares e com base 360. Desta forma, a taxa
efetiva em cada perodo ser dada por

Taxalinear.Diascorridos
Taxaefetiva = .
360

A tabela abaixo apresenta o valor das taxas a partir do prazo de 120 dias corridos.

41 Anlise de projetos de investimento


Taxa efetiva
Prazo (DC) Dol x DI
no prazo
120 10.23% 3,30%
150 11.06% 4,47%
184 11.50% 5,72%
210 11.90% 6,78%
240 12.38% 8,09%
270 12.78% 9,44%
301 12.85% 10,64%
330 13.07% 11,92%
364 13.28% 13,44%

Conceito de Pro Rata

Considere a varivel Yh ,t como sendo a taxa de juros efetiva no perodo de h at


t, como lustrado pela figura abaixo.

Yh ,i
Dado que se conhea a taxa efetiva, , em apenas alguns pontos no
Y
tempo, i = 1, 21, 42 K , n , uma taxa intermediria a eles, h ,i + x , poder ser determinada
da forma

42 Anlise de projetos de investimento


x
1 + Yh ,i+ k N
Yh ,i+ x = (1 + Yh ,i )
1 + Y
h ,i

onde
h a data atual a partir da qual a curva projetada;
x o nmero de dias contados a partir de i, i x k ;

k o prximo ponto conhecido a partir de i, k = 21,42 ,K n ;


N o nmero de dias entre os vrtices i.

Valor Marcado a Mercado - Mark to Market

O valor a mercado (MTM) de um ttulo pode ser encontrado trazendo-se a valor


presente o valor de resgate, atravs de um fator de desconto obtido da curva de juros em
reais do mercado. A idia carregar o ttulo at o seu vencimento pelas taxas
negociadas na operao e trazer a valor presente pelas taxas de mercado, como ilustra a
figura abaixo.

Matematicamente teremos

Valor Re sgate
MtM t = ,
(1 + i m )

43 Anlise de projetos de investimento


em que i m a taxa de mercado efetiva no perodo entre a data atual t e o vencimento do
ttulo.

Fluxo de Caixa: Considere o fluxo abaixo.

Neste caso, o valor de mercado na data t poder ser expresso da forma

n
Pn

Ci
MTM t = + (1 + TX 0t ) ,
n
1 + yt 1 + yt
i
i =3

onde y ti a taxa de cupom de mercado entre t e i e TX 0t taxa do indexador entre as


datas t0 e t. Outra forma de expressar a equao acima

MTM t = MTM
i =3
i
t ,

sendo

Fi
MTM it = (1 + TX 0t ) ,
1 + y it

onde Fi o valor de resgate em cada pagamento i.

Com a frmula acima podemos calcular o VP do fluxo usando uma curva de juros ao
invs de usarmos uma taxa nica para todos os vencimentos do fluxo.

44 Anlise de projetos de investimento


Renda Fixa

O valor a mercado de um ttulo pr-fixado corresponde ao valor de resgate trazido a


valor presente pelo fator de desconto (referente data de vencimento do ttulo) obtido
da curva de juros de mercado em reais. O mark t o market da operao na data t ser
dado por

MtM t =
(op
) (
Valor Re sgate P0 1 + I 0,v VCt 1 + I t ,v
= =
op
)
( )
1 + I tm,v (
1 + I tm,v ) (
1 + I tm,v )
,

onde:
P0 o principal da operao;
VCt o valor na curva do ttulo na data t;
I top,v a taxa da operao, efetiva no perodo entre as datas t e v;

I tm,v a taxa de juros a mercado, efetiva no perodo entre as datas t e v;

Opes

Notao adotada nesta apostila:


S : preo spot do ativo objeto
K : preo de exerccio
T : tempo at o vencimento ( nmero de dias at o vencimento )
Rf : taxa de juros sem risco
: Volatilidade
C : Prmio para Call americana P: idem para Put
c : Prmio para Call europia p: idem para Put

Valor intrnseco de uma opo

45 Anlise de projetos de investimento


O valor intrnseco de uma opo basicamente a diferena do preo do ativo subjacente
e o preo de exerccio. Assim, o valor intrnseco numa opo in-the-money alto, out-
of-the-money praticamente nulo.

Valor intrnseco para Call : mx( 0 , S - K) para o comprador


Valor intrnseco para Put : mx( 0 , K - S) para o comprador

Valor total de uma opo = Valor intrnseco + Valor tempo*

* valor que agregado ao intrnseco em funo da dvida sobre o exerccio. O vendedor


de uma opo sempre incorrer no risco do exerccio. Esse risco gerado
prioritariamente pela volatilidade do ativo subjacente e pelo espao de tempo at o
vencimento. Essa dvida do exerccio precisa ser remunerada, caso contrrio, o
vendedor da opo no teria nenhum estmulo a assumi-lo. Portanto, o valor tempo
uma exigncia do vendedor da opo.

Paridade entre opes de venda e de compra

Sejam A e B os seguintes portflios:

A = [ +c +vp(K) ] (uma opo de compra europia e um volume em


dinheiro de vp(K) = K/( 1 + Rf) )
B = [ +p +S ] (uma opo de venda europia e uma ao)

Tabela de arbitragem dos portflios no vencimento

Portflio K<S K>S


A 0+K=K S-K+K=S
B K-S+S=K 0+S=S

No vencimento, ambos os portflios tero o mesmo valor.

Como no pode haver exerccio antecipado, temos que:

46 Anlise de projetos de investimento


Equao de paridade entre a
+c + vp(K) = +p + S
opes de venda e compra.

Para uma ao S, com opes com preo de exerccio K, conseguimos conhecer o


prmio da Put conhecendo o prmio da Call ou vice-versa.
Quando essa equao no for verificada haver oportunidade de arbitragem.

Correo na equao quando h dividendo ou aluguel da ao (D)

Quando h pagamento de dividendos ou aluguel da ao durante o perodo de


maturao, teramos a seguinte equao de paridade:

+c + vp(K) = +p + S - D

onde D representa o valor presente dos dividendos a serem pagos ou do aluguel


para manter a posio vendida a descoberto.

Observao: Motivado pelo desinteresse de exerccio antecipado* da opo de compra


americana, se substituirmos c por C teremos a mesma equao de paridade.

*vale mais a pena vender a opo americana que exerc-la. Exerc-la s se ganha o
valor intrnseco, vend-la h um prmio adicional.

Exemplo 1 : S=31 , K=30 , Rf=10% a.a. , T = 3 meses, c=3 e p=2,25.

Com esse exemplo, teramos: A: +c +vp(K) = 32,29

B: +p +S = 33,25

O portflio B est superestimado em relao ao portflio A, consequentemente


ou c est barato ou p est caro. Assim, a seguinte estratgia: comprar A e vender B
permitiria arbitragem, gerando os seguintes portflios:

A = +c +vp(K)

47 Anlise de projetos de investimento


B = -p -S
Teramos o fluxo positivo de -c +p+S = -3 + 2,25 + 31 = 30,25 (supondo que
possa ficar vendido a descoberto). Esse volume de 30,25 poder ser aplicado e no final
de T valer 30,98.
Como est comprado em uma opo de compra e vendido em uma opo de
venda, para qualquer preo da ao no vencimento poder comprar uma ao e encerrar
a posio vendida.
O lucro liquido final = 30,98 - 30 = 0,98

Exemplo 2 : S=31 , K=30 , Rf=10% a.a. , T = 3 meses, c=3 e p=1,00.

Com esse exemplo, teramos: A: +c +vp(K) = 32,29


B: +p +S = 32,00

O portflio A est superestimado em relao ao portflio B, consequentemente


ou c est caro ou p est barato. Assim, a seguinte estratgia: comprar B e vender A
permitiria arbitragem, gerando os seguintes portflios:
A = -c -financimento ( financimento < vp(K) )
B = +p +S.
Teramos o fluxo negativo de +c-p-S = +3 - 1 - 31 = -29. Esse volume de 29 poder ser
financiado e no pagamento em T dever ser saldado o montante de 29,70.
Como est comprado em uma opo de venda e vendido em uma opo de
compra, para qualquer preo da ao no vencimento, a venda da ao por 30 poder ser
efetuada.
O lucro liquido final ser = 30 - 29,70 = 0,30.

Hedge

O hedge do risco de mercado muito simples de entender e usar. Imagine uma empresa
que tenha passivos em dlar e receitas em reais. Se a empresa no conseguir repassar
aos preos de seus produtos aumentos do dlar haveria um desequilbrio patrimonial
flagrante. Com os derivativos h como compensar essa variao usando por exemplo:

Dlar futuro

48 Anlise de projetos de investimento


Ativo Passivo

Comprar dlar Futuro Passivo U$ 1 milho


U$ 1 milho

Imagine que tenha comprado o valor nocional de U$ 1 milho em contratos


futuros de dlar a uma cotao de R$ 3,20. Se o dlar subir para 3,8 o passivo passaria
de R$ 3,2 milhes para R$ 3,8 milhes, em compensao como est comprado em
dlares futuros ganharia de ajustes dirios R$ (3,8 3,2)*1 milho = R$ 600 mil que
exatamente o valor do aumento do passivo. Com esse derivativo aumentos do dlar
seriam compensados pelos ajustes obtidos nos contratos futuros.

Por outro lado, se o dlar casse para R$ 2,8 o passivo passaria de R$ 3,2
milhes para R$ 2,8 milhes, em compensao como est comprado em dlares futuros
perderia de ajustes dirios R$ (2,8 3,2)*1 milho = - R$ 400 mil que exatamente o
valor da diminuio do passivo. Com os dlares futuros, o passivo ficaria travado em
R$ 3,2 milhes independente da cotao do dlar.

49 Anlise de projetos de investimento


Opo

Ativo Passivo
Comprar call de dlar com preo de
exerccio a 3,2 Passivo U$ 1 milho
(nocional de U$ 1 milho)

Se o vencimento da call for o mesmo do passivo, se S for o preo do dlar no dia do


vencimento, se K for o preo do exerccio a estrutura financeira acima ser:
U$1milho*( max(0, S-K) S).

Se S > K ento U$1milho*( S - K - S) = U$ 1 milho*K = -R$ 3,2


milhes

Se S K ento U$1milho*( 0 - S) = U$ 1 milho*-S = -R$ 3,2 milhes

Portanto, para qualquer cenrio o resultado final ser rigorosamente o mesmo,


um dvida de R$ 3,2 milhes.

No hedge com opes h uma despesa inicial que o prmio pago na compra da opo,
mas em compensao no h perdas no vencimento. No vencimento o resultado ser ou
zero ou um nmero positivo max(0 ; S-K) para calls e max(0;K-S) para puts.

No hedge com futuros no h um desembolso inicial (exceto pequenos custos de


transao pagos a bolsa para operacionalizar a operao) para comprar os contratos
futuros. Mas em compensao, pode haver ganhos ou perdas. Se um agente econmico
comprar um contrato futuro ganhar na alta do preo e perder na baixa. Ou vice-versa
quando vender um contrato futuro.

50 Anlise de projetos de investimento


6. Ferramentas de VBA

Este captulo apresentar ferramentas de programao que em muito ajudaro os alunos


a otimizar o trabalho de anlise de projetos de investimento.

Identificou-se que profissionais de vrias reas, como aturia, finanas, administrao,


economia e contabilidade, entre outras, realizam atividades repetitivas que poderiam ser
automatizadas facilmente com o uso de pequenos algoritmos, criados com base em
noes de lgica de programao.

comum que os gestores realizem anlises que demandam simulaes de vrios


cenrios, repetio de clculos ou iteraes. Nestes casos, o uso de pequenos algoritmos
torna a tarefa simples e imediata. Ao longo do captulo se verificar que um algoritmo
de poucas linhas pode substituir uma planilha com vrias pastas e inmeras linhas,
como em clculos de valuation, nas simulaes de investimentos, etc.

Os conceitos apresentados sero firmados por meio de exerccios, cujas respostas


encontram-se no anexo IV

6.1 Elementos Fundamentais das Linguagens de


Programao

Neste captulo, voc ir aprender sobre os seguintes elementos fundamentais da lgica


de programao:

- Variveis e constantes - Tipos de dados e declarao de variveis


- Atribuio - Expresso aritmtica

51 Anlise de projetos de investimento


- Uso do If - Ciclos
- Uso do while - Colees e objetos

6.2 Requisitos para o Aprendizado

Antes de tudo conveniente entender o que programao e linguagem de


programao.

A programao nada mais que uma seqncia finita de comandos interpretados por
um computador para a execuo de um objetivo / tarefa. Os conjuntos de comando
constituem os programas (ou algoritmos).

As linguagens de programao ento so formas estruturadas e padronizadas de


transmitir ao computador as instrues desejadas. So compostas por um conjunto finito
de regras aplicadas a um conjunto finito de dados com sintaxe e semntica especficas
que so interpretadas (ou compiladas) pelo computador.

Embora os exemplos usados neste livro sejam desenvolvidos para a linguagem de


programao chamada VBA Visual Bas ic for App lications (escolhida por sua
simplicidade e pela larga disseminao dos programas que a utilizam como o pacote
MS Office), seu contedo pode ser aplicado a qualquer outra linguagem de
programao com as devidas adaptaes de linguagem.

Antes de iniciar seu aprendizado, preciso saber que macros ou sub-rotinas tambm
so conjuntos de instrues transmitidas ao computador, como qualquer outro
programa, para obter um resultado. Para que as macros criadas em VBA sejam
adequadamente identificadas, elas devem obrigatoriamente receber um nome nico que
indicado logo no incio do procedimento aps a instruo SUB. Devem ainda ser
encerradas obrigatoriamente com a instruo END SUB. Entre as duas instrues so
escritos os statements, ou grupos de instrues a serem executados pelo computador. A
sintaxe simplificada da instruo SUB pode ser vista abaixo:

52 Anlise de projetos de investimento


Sub nome da macro ()
[statements]
End Sub

onde nome da macro o nome nico escolhido para o procedimento; statements so os


grupos de instrues a serem executados por ele; e entre os parntesis pode ser digitada
uma lista opcional de argumentos que requerem conhecimento mais aprofundado de
programao e no sero abordada nesta sintaxe simplificada. Observe que os parntesis
so obrigatrios ainda que no seja especificada nenhuma lista de argumentos.

Para seguir os exemplos e fazer os exerccios propostos neste livro, ser necessrio
acessar o Editor do VBA. A descrio de como acess-lo tanto por usurios do MS
Excel 2007 como do MS Excel 2003 encontra-se no Anexo I.

DICA
A sintaxe completa de instrues do VBA pode ser vista quando voc
coloca o cursor do mouse sobre a palavra desejada e pressiona F1 para
acessar a ajuda do programa.

No Anexo I, voc encontra ainda a descrio de que fazer para que o MS Excel permita
a execuo de macros, caso esta opo no tenha ainda sido habilitada no seu
computador.

6.3 Variveis e Constantes

A memria de um computador um grande espao em que se pode guardar


temporariamente todo tipo de informaes (dados codificados) para posteriormente
recuper-los, process-los, alter-los ou descart-los. como uma grande prateleira
cheia de caixinhas em que se pode colocar quase qualquer tipo de coisa.

53 Anlise de projetos de investimento


Para que isso seja possvel, o
computador precisa conseguir
identificar de forma inequvoca cada
caixinha qual so destinados dados.
E faz isso com todo tipo de dado
necessrio para sua operao normal
(na maioria das vezes sem que o Representao da memria do computador como
espaos ou caixinhas a que se atribuem nomes e
usurio sequer perceba) seguindo caractersticas de variveis.
certas regras (linguagens de Figura 1: Representao do espao de memria
programao).

Da mesma forma que o computador, voc pode utilizar os pedaos de memria para
guardar seus prprios dados. Para isso, preciso dar-lhes nomes.

Assim, chamamos de constantes ou variveis aos espaos da memria do computador


a que damos nomes (e caractersticas) especficos, sendo que um nome deve ser nico
para que possamos encontrar exatamente o mesmo espao e manipular os dados
guardados nele quando desejado.

A diferena bsica entre as variveis e constantes em que voc vai guardar informaes
que:
- nas variveis, os dados armazenados podero variar durante o procedimento; e
- nas constantes, os dados no podero ser alterados.

Daqui por diante, quando mencionarmos variveis, voc dever considerar que o
mesmo se aplica s constantes, e caso no se aplique, voc ser alertado para isso.

Assim, por exemplo, pode-se chamar um espao de memria de N, e estabelecer que a


varivel N ir conter o nmero de aes de uma carteira, que ir variar durante a
execuo de um procedimento.

Da mesma forma, voc pode criar uma constante na qual armazenar o nome da
empresa corretora que trabalha na administrao da carteira de aes e que no tem
previso de ser alterado.

54 Anlise de projetos de investimento


6.4 Tipos de Dados e Declarao de Variveis

Antes de armazenar qualquer dado, preciso criar as variveis que sero usadas por
seus procedimentos. Para isso preciso definir para cada uma um nome nico e as
caractersticas. Somente ento ser possvel o armazenamento de dados.

O tipo de dado de uma varivel define no s o tipo de contedo que poder ser
armazenado, mas tambm outras caractersticas particulares, como a quantidade
especfica de espao reservado para armazenamento. Por isso, diferentes linguagens de
programao estabelecem diferentes tipos de variveis. Os nomes e as caractersticas
dos tipos de varivel podem divergir de uma linguagem de programao para outra e
preciso conhecer pelo menos um mnimo para poder trabalhar eficientemente com eles.

A descrio completa de tipos de dados usados pelo VBA Visual Basi c f or


Applications encontra-se no Anexo II, mas os tipos bsicos sero descritos, conforme
haja a necessidade.

No momento, voc ir precisar de variveis que possam armazenar nmeros inteiros no


muito grandes (para o nmero de aes da carteira) e valores monetrios no inteiros
(por exemplo, para armazenar o custo das aes ou o valor da carteira).

As variveis do tipo integer so usadas para armazenar nmeros inteiros entre -32768 e
+32768 e devem servir para o primeiro caso. Se o nmero de aes for superior (ou
inferior) a este, pode-se usar o tipo long, que aceita nmeros inteiros entre + e
2.147.483.648 (embora requeira o dobro do espao da memria).

Para o segundo caso, voc poder usar as variveis do tipo single, que armazenam
valores negativos de -3,402823E38 a -1,401298E-45, e positivos entre 1,401298E-45 e
3,402823E38, em ambos os casos com vrgula flutuante.

55 Anlise de projetos de investimento


Se houver necessidade do processa-mento de nmeros muito grandes como valores
monetrios, voc poder usar variveis do tipo double, que comportam valores entre -
1,79769313486232E308 e -4,94065645841247E-324 para valores negativos e de
4,94065645841247E-324 a 1,79769313486232E308 para os valores positivos (ainda
que utilize o dobro do espao das variveis dos tipos single e long).

A criao de variveis e indicao de suas caractersticas atravs da definio do tipo


chamada de declarao da varivel. O comando simplificado para a declarao de
variveis no VBA :

Dim nome da varivel as tipo

onde o termo nome da varivel deve ser substitudo pelo nome escolhido e tipo pelo
tipo apropriado.

Veja o exemplo:

Dim N as integer

Este comando interpretado pelo computador da seguinte forma: dimensionar (ou


reservar) espao de memria para a varivel de nome N que receber dados do tipo
integer e qual se aplicam todas as caractersticas deste tipo de dado.

Para a declarao simplificada de constantes, a sintaxe deve ser assim:

Const nome da constante as tipo = expresso

onde o termo nome da constante deve ser substitudo pelo nome escolhido e expresso
pelo dado a ser armazenado (por exemplo um texto ou valor). Observe que a declarao
do tipo de constante no obrigatria, podendo ser definida.

56 Anlise de projetos de investimento


EXERCCIO 1:

Para praticar, declare uma varivel de nome R na qual ser armazenado o valor dos
recursos monetrios disponibilizados pelo cliente para a compra de aes. Depois
declare uma outra, de nome C onde ser armazenado o custo individual das aes da
carteira.

Lembre que toda macro ou sub-rotina deve ser iniciada pelo comando SUB com o nome
da macro seguido de abre e fecha parntesis e encerrada pelo comando END SUB.

EXERCCIO 2:

Identifique quais as constantes e variveis declaradas nas instrues abaixo e com base
nos tipos de dados do anexo II diga se os tipos escolhidos parecem adequados:
a. Dim GNP as double
b. Const NomeCliente = Correia Ltda.
c. Dim CustoUnitarioDaAcao as long

EXERCCIO 3:

Como atividade complementar, pesquise quais as regras fundamentais que devem ser
seguidas para a criao de nomes de variveis no VBA.

6.5 Atribuio de Valores

Como vimos, para a declarao de uma varivel (ou constante), preciso definir seu
nome e suas caractersticas e seguir regras especficas para tal. Somente a partir da, o
usurio poder armazenar dados, e a esse armazenamento que chamamos de
atribuio. Assim, em linguagem de programao, a atribuio a vinculao de dados
especficos a uma varivel. A sintaxe de atribuio corresponde a:

57 Anlise de projetos de investimento


Nome da varivel = valor atribudo

No exemplo anterior foi criada a varivel N para armazenar o nmero de aes de uma
carteira. Supondo que voc guardasse nela o valor 2000, ao invs de dizer que voc
inseriu um valor 2000 na varivel N, voc deveria dizer que atribuiu o valor 2000
quela varivel.

importante compreender que, se for atribudo um novo valor mesma varivel, o


valor anterior ser sobrescrito e no poder ser recuperado.

Assim, se a aquisio ou venda de um certo nmero de aes ocorrer, digamos a


aquisio de 300 aes, voc poder atribuir o novo valor varivel N.

Mas, uma vez feito isso, o nmero anterior de aes (2000) ter sido descartado e no
haver como resgatar aquela informao.

EXERCCIO 4:

O custo unitrio das aes da carteira que est sendo trabalhada de R$5,00 e o cliente
disponibilizou R$2.000,00 para a compra de aes. Atribua os valores s respectivas
variveis.

6.6 Ainda sobre os Tipos de Dados

importante mencionar que nem todas as variveis armazenam uma nica informao
elementar que no possa ser decomposta em entidades mais simples, (como as variveis
elementares do tipo integer ou single).

H casos em que conjuntos de dados ordenados e de um mesmo tipo podem


corresponder a um nico nome de varivel. Temos ento as variveis chamadas
estruturadas, como as strings, que armazenam conjuntos de informao (conjuntos de

58 Anlise de projetos de investimento


caracteres) e que podem ser decompostas em entidades mais simples (os caracteres que
as compem).

Os tipos mais comuns de variveis estruturadas so os arrays. Eles podem ser


estruturados de forma unidimensional (os vetores), ou de forma multidimensional
(como as matrizes de linhas e colunas, que so arrays de duas dimenses). Na
declarao de um array preciso especificar quantas posies iro existir em cada uma
de suas dimenses.

Assim, um vetor de 10 posies e nome V pode ser declarado por meio do comando
DIM, seguido do nome do vetor, do ndice referente ao nmero mximo de posies
entre parntesis e do tipo dos elementos que o compe, ou seja:

Dim V(10) as single

Da mesma forma, voc pode declarar


uma matriz indicando o nmero
mximo de elementos em cada uma Figura 2: .
Representao de
de suas dimenses. Uma matriz M de V(10) ou vetor de
5 linhas por 5 colunas poderia ser 10 posies, e de
M(5, 5) ou matriz
declarada assim: de 5 por 5 posies.

Dim M(5, 5) as integer

Para atribuir valores s diversas posies de um array, deve-se indicar a qual posio se
deseja atribuir valor.

Por exemplo, a atribuio do valor 100 segunda posio do vetor que acabamos de
descrever ficaria assim:

V(2) = 100

Agora, pratique estes conceitos fazendo os exerccios a seguir.

59 Anlise de projetos de investimento


EXERCCIO 5:

Declare um vetor de oito posies do tipo single que servir para armazenar os valores
de oito tipos de aplicaes de uma carteira de investimentos de um cliente.

EXERCCIO 6:

Atribua os valores R$1.500,00, R$2.000,00, R$2.500,00, R$3.000,00, R$3.500,00,


R$4.000,00, R$4.500,00 e R$5.000,00 ao vetor do exerccio 5.

EXERCCIO 7:

Identifique quantas dimenses e nmero mximo de posies tm os arrays abaixo:


a. Dim TempoEspaco(365, 90, 90, 90) as single
b. Dim Volume(100, 100, 100) as long

6.7 Expresses Aritmticas

O uso de variveis para o armazenamento de informao no teria grande utilidade se,


alm da sua simples recuperao, no fosse possvel a manipulao desses dados.

Essa manipulao ou processamento, bem como a prpria atribuio de valores, pode


ser feita com base em expresses aritmticas. Assim, a atribuio de valor varivel N
pode ser realizada por meio de uma expresso aritmtica como esta:

N = 2000

O computador interpreta esta instruo como sendo a atribuio do valor encontrado no


segundo termo da equao (2000) ao primeiro termo da mesma equao (varivel N), ou
seja, a varivel N recebe o valor 2000 (ou o valor 2000 atribudo varivel N).

60 Anlise de projetos de investimento


Para o prximo exemplo, considere que o nmero de aes inicialmente armazenado na
varivel N era de 2000 e foram compradas mais 300. No preciso fazer os clculos
manualmente para atribuir o resultado varivel N. O VBA pode processar os dados
atravs do uso de outra expresso aritmtica que indique que o novo valor da varivel N
igual ao valor anteriormente armazenado acrescido de 300, referente s aes
adquiridas, ou seja:

N = N + 300

Da mesma forma que no exemplo anterior, o computador interpreta esta instruo como
sendo a atribuio do valor verificado no segundo termo da equao (N + 300) ao
primeiro termo (varivel N).

Ento, quando o comando processado, o valor inicialmente armazenado em N


acrescido de 300 e ento atribudo prpria varivel N. Assim, na prxima vez em que
for recuperado, o contedo da varivel exibir o nmero 2300.

No esquea de que o nmero 2000 ter sido sobrescrito, no podendo mais ser
recuperado.
Se for necessrio manter um histrico de operaes, dever ser montada uma lgica um
pouco mais complexa, conforme veremos em exerccios mais adiante, guardando em
local diverso as vrias alteraes.

Compreender a lgica do processamento deste comando de fundamental para a correta


criao de pequenos algoritmos (macros) que so de grande valia aos profissionais que
trabalham com clculos repetitivos e que querem otimizar seu esforo.

Vale lembrar que a relao de operadores permitidos nas instrues do VBA e sua
precedncia encontram-se no anexo IV.

EXERCCIO 8:

Suponha que o custo unitrio das aes da carteira que est sendo trabalhada subiu em

61 Anlise de projetos de investimento


40% do valor anteriormente estabelecido. Mostre atravs de uma expresso aritmtica
como ficaria a instruo.

6.8 Uso do If

Em atividades como a compra e venda de aes para uma carteira, bastante comum
existirem certas limitaes como, por exemplo, a disponibilidade financeira para sua
aquisio. O operador deve verificar o capital disponvel antes de executar a compra e,
somente realizar a operao se houver recursos.

Em linguagem de programao, este exemplo descreve uma verificao de condio


lgica, ou seja, se for identificada como verdadeira a condio de disponibilidade de
capital, a operao de compra ser realizada, caso contrrio, a compra no se
processar.

Para que um algoritmo possa fazer este tipo de teste condicional, usa-se a instruo IF,
palavra de origem inglesa e que quer dizer se. Ele usado juntamente com a instruo
THEN e eventualmente tambm com ELSE.

Enquanto a instruo IF seguida da condio restritiva a ser verificada, o THEN


seguido da ao a ser realizada quando for identificada como verdadeira aquela
condio. O ELSE indica o que fazer caso a condio testada no se verifique, sendo o
uso desta instruo facultativo (no obrigatrio).

Assim, a sintaxe simplificada do comando dada por:

If condio Then
[statements]
Else
[elsestatements]
End If

62 Anlise de projetos de investimento


onde statements e elsestatements so os comandos a executar caso a condio testada
seja verificada e comandos a serem executados em caso contrrio, respectivamente.

importante notar que toda instruo do tipo IF deve ser encerrada pelo comando END
IF para que o programa identifique onde parar as instrues relativas ao teste.

DICA
A endentao uma forma visual e bastante til de separar grupos de instrues em
um procedimento. Repare que entre a instruo de incio e fim do teste lgico (If e End
if) as linhas de instruo do procedimento so escritas com margem maior. Esta
endentao torna mais fcil identificar incio e fim de instrues, testes lgicos e
operaes recursivas entre outros, particularmente quando existem instrues aninhadas
(tpico a ser visto oportunamente).
A endentao largamente usada em todas as linguagens de programao.

No teste de condio lgica do exemplo abaixo, voc deseja verificar se existem


recursos suficientes para a compra de 300 aes, ou seja, se os recursos disponveis
(valor contido na varivel R) so superiores ao nmero de aes a comprar (300)
multiplicado pelo custo unitrio das aes (na varivel C). A instruo ficaria assim:

If R > C*300 Then


N = N + 300
End If

Agora, pratique o que aprendeu fazendo os exerccios de fixao.

EXERCCIO 9:

Como o custo unitrio das aes da carteira que est sendo administrada subiu para
R$7,00 antes de a compra ter sido efetivada, utilize um teste condicional e verifique se a
compra seria realizada.

63 Anlise de projetos de investimento


EXERCCIO 10:

Acrescente ao seu algoritmo (seqncia lgica de instrues) a atualizao do valor


disponibilizado pelo cliente para operaes de compra e venda no caso de ser realizada
a compra.

6.9 Ciclos

Os ciclos (ou loops) so ferramentas extremamente teis quando se utiliza


procedimentos repetitivos, pois permitem a execuo de uma seqncia de comandos
reiteradamente por um determinado nmero de vezes sem que seja necessrio reescrever
as instrues.

O nmero de repeties definido pela verificao de uma condio preestabelecida, de


forma parecida com o que foi visto no teste condicional com o uso do IF. Porm,
enquanto o IF realiza uma nica verificao de um teste condicional, com os ciclos, o
teste pode ser repetido por tantas vezes quantas for encontrada como verdadeira a
condio restritiva.

Vale dizer que os testes condicionais podem ser realizados de forma repetitiva desde
que a seqncia de instrues esteja inserida em um ciclo. A esta condio chamamos
de aninhamento.

No ambiente do VBA, os ciclos podem ser estabelecidos de vrias formas. A seguir,


ser apresentada a criao de ciclos com o comando while e, posteriormente, voc
poder compar-la com os ciclos com o uso do Do while e do For.

64 Anlise de projetos de investimento


6.10 Uso do While

A sintaxe da instruo While ... Wend dada por:

While condio
[statements]
Wend
onde condio a expresso que ser avaliada como falsa ou verdadeira; e statements
so os grupos de instrues a serem seguidas enquanto for verdadeira a condio
testada.

Imagine que a carteira de investimentos de um cliente tenha, por exemplo, oito tipos
diferentes de aplicaes. Em cada tipo de aplicao h diferentes valores monetrios
aplicados e voc precisa calcular qual o valor total desta carteira.

Considere que os valores esto armazenados em um vetor V(8) e o total ser


armazenado na varivel Total.

Seguindo a lgica que voc j conhece, sem o uso de ciclos, seria necessrio escrever
uma seqncia de instrues similar a esta para obter o total:

...
Dim V(8) as single
Dim Total as single
V(1) = 1500
V(2) = 2000
V(3) = 2500
V(4) = 3000
V(5) = 3500
V(6) = 4000
V(7) = 4500

65 Anlise de projetos de investimento


V(8) = 5000
Total = 0
Total = Total + V(1)
Total = Total + V(2)
Total = Total + V(3)
Total = Total + V(4)
Total = Total + V(5)
Total = Total + V(6)
Total = Total + V(7)
Total = Total + V(8)
...

Pode-se perceber que a varivel Total acumula gradativamente os valores de cada


aplicao, mas, para isso, uma seqncia de instrues muito parecidas repetida
muitas vezes. (Note que somente o ndice de posio do vetor diferente).

A alternativa ser montar um ciclo com o comando while em que a instruo seria
repetida, mas sem a redigitao das linhas de comando. Para isso ser criada uma nova
varivel que servir como um contador. O resultado ficar assim:

...
Dim V(8), Total as single
Dim i as byte
V(1) = 1500
V(2) = 2000
V(3) = 2500
V(4) = 3000
V(5) = 3500
V(6) = 4000
V(7) = 4500
V(8) = 5000
Total = 0

66 Anlise de projetos de investimento


i=1
While i <= 8
Total = Total + V(i)
i=i+1
Wend
...

O computador interpreta estas instrues da seguinte forma: aps a declarao das


variveis e a atribuio de valores a elas e a cada posio do vetor (antes do
processamento), o computador encontra o comando while que indica o incio do ciclo.
Ento ele vai processar a verificao da condio definida considerando os atuais
valores das variveis.

Neste caso, inicialmente testada a condio de s executar as instrues contidas no


ciclo se i for menor ou igual a 8. Como o valor inicial de i 1, a condio neste
momento satisfeita e, portanto, varivel Total ir receber o valor anteriormente
atribudo a ela (zero) acrescido do valor do investimento encontrado na posio 1 do
vetor V, ou seja, o valor de V(i) que 1500.

Em seguida o programa atribuir a i, que neste momento igual a 1, este mesmo valor
acrescido de 1, ou seja, 2. Agora o programa encontra a marca de fim do ciclo, dada
pela instruo Wend e retorna primeira linha do ciclo.

A varivel i agora vale 2, mas ainda menor ou igual a 8, por isso o programa considera
que a condio i<=8 verdadeira e volta a executar as instrues contidas no ciclo at
encontrar de novo o indicador de fim, ou seja, a instruo Wend.

Neste segundo ciclo, o valor anterior do Total que era 1500 acrescido do valor da
posio 2 do vetor, ou seja, 2000, passando a armazenar 3500. Na sequncia, o contador
i assume o valor 3.

Note que, a cada novo ciclo, o valor anterior do Total sobrescrito e perdido, sendo
substitudo pelo novo. Da mesma forma, a varivel i acrescida de 1 sobrescrevendo o

67 Anlise de projetos de investimento


valor anterior e, ento, o comando de fim do ciclo encontrado. Por isso o computador
deve voltar a processar as instrues iniciais do ciclo, testando novamente a condio
lgica.

Assim, o programa segue executando o mesmo ciclo vrias vezes, e o faz, como vimos
at que a condio no mais se verifique. Quando isso acontece, o computador ignora
todas as linhas do ciclo e prossegue executando as instrues posteriores a ele.

A compreenso da lgica deste processo fundamental para a utilizao de macros na


otimizao de trabalhos repetitivos de todas as reas.

EXERCCIO 11:

Encontre uma forma de atribuir os valores definidos para o vetor V utilizando um ciclo
com a instruo while e seguindo o exemplo deste tpico. Para isso, substitua as
instrues necessrias da macro do exerccio 10.

DICA
As primeiras tentativas de criar ciclos parecem sempre mais difceis. Para ajud-lo
no incio, sugerimos que sejam escritas as instrues que voc usaria sem a
utilizao da lgica dos ciclos. Com base nisso voc deve procurar perceber as partes
comuns (repetitivas) das instrues e as partes que se alteram nos comandos. A
seguir, procure identificar se h uma cadncia nas alteraes das instrues. Somente
ento pense em como montar o ciclo.

6.11 Colees e Objetos

No exerccio anterior, voc pde perceber que o uso do while requer um certo nvel de
compreenso de lgica e que seu uso adequado pode otimizar bastante os trabalhos
repetitivos, particularmente na rea financeira.

68 Anlise de projetos de investimento


Agora perceba que, da forma como esto estruturados os procedimentos dos exerccios
anteriores, a cada vez que houver uma alterao, seja no valor dos recursos
disponibilizados, no custo das aes, no valor das aplicaes ou em qualquer outro
dado, ser necessrio editar manualmente a macro para que voc possa obter os
resultados desejados.

Para aqueles que j utilizam as planilhas do Excel, parece natural alterar dados de uma
planilha quando ocorre alguma mudana de cenrio, mas alterar manualmente as macros
correspondentes representa uma duplicidade de trabalho. Isso no seria nada prtico, e
praticidade o grande diferencial do uso de macros.

Para evitar isso, voc pode recorrer ao recurso de leitura de dados diretamente da
planilha. Dessa forma, quando os dados forem alterados na planilha, ao processar
novamente a sua macro, sero lidos os novos dados, devolvendo assim o novo resultado
sem necessidade de redigitao (e reduzindo a possibilidade de erros nesse processo).

Para a leitura de dados a partir de planilhas, o VBA atribui os dados encontrados nelas a
variveis das macros, sem a necessidade de digitao direta.

Para isso, voc ver a seguir algumas das alternativas do VBA em termos de atribuio
de dados a variveis com base na leitura de planilhas e pastas do Excel. Isso requer
que voc conhea um pouco sobre as colees e objetos do Excel para o VBA.

Os objetos so elementos que podem ser manipulados por um programa. Eles so


fundamentalmente um tipo especial de variveis que podem conter tanto dados como
cdigos, e que podem possuir propriedades e procedimentos.

69 Anlise de projetos de investimento


Entre os objetos indispensveis do Excel temos: workbook (ou pasta), worksheet (ou
planilha), range (ou intervalo) e cells (ou clulas).

workbook atual

range de clula

range de 4 clulas

aba da worksheet

Figura 3: Objetos e colees do VBA

As colees so grupos de objetos da mesma classe. Assim, workbooks uma coleo


de objetos workbook, ou seja, um conjunto de arquivos do Excel, worksheets uma
coleo de objetos worksheet, ou seja, um conjunto de planilhas.

Usando o exemplo da figura 3, voc poderia ento se referir a uma planilha do arquivo
que se encontra aberto da seguinte forma:

Worksheets(Plan1)
ou
Worksheets(1)

A primeira linha indica a planilha chamada Plan1 no arquivo e a segunda, indica a


primeira planilha do arquivo (que no necessariamente Plan1).

70 Anlise de projetos de investimento


Se houver planilhas com o mesmo nome em diferentes arquivos e que voc deseja usar,
ser necessrio qualificar tambm os arquivos em que se encontram essas planilhas,
conforme o exemplo abaixo:

Workbooks(Pasta1).Worksheets (Plan1)
e
Workbooks(Pasta2).Worksheets (Plan1)

Perceba que, sempre que referenciados pelo nome, planilhas e arquivos devem ser
sempre descritos entre parntesis e aspas duplas. Quando a planilha referenciada pela
posio no arquivo, o nmero correspondente deve estar apenas entre parntesis.

O objeto range pode indicar uma clula, uma linha, uma coluna ou um conjunto de
clulas contendo um ou mais intervalos de clulas contguas. Veja:

Worksheets("Ex12").Range("B2")
Worksheets("Ex12").Range("B4:B8")
Worksheets("Ex12").Range("C4,C6,C8")

Na primeira linha, o intervalo definido refere-se a uma nica clula (B2). Na segunda
linha, o intervalo dado pelas clulas contguas de B4 at B8, e, na terceira linha, o
intervalo corresponde a trs clulas no contguas (C4, C6 e C8).

Repare que o intervalo dado pela identificao das clulas em termos de letra da
coluna e nmero da linha e sempre dentro de parntesis e aspas duplas.

Para qualificar intervalos de clulas contguas, indique a clula do canto superior


esquerdo e a do canto inferior direito do intervalo, necessariamente separadas por dois
pontos (:).

Use vrgula como separador apenas quando estiver qualificando clulas ou intervalos
no contguos.

71 Anlise de projetos de investimento


Os objetos cells tambm indicam as clulas das planilhas, porm de uma forma
diferente daquela usado com o objeto range. Com cells voc pode indicar o nmero da
linha seguido do nmero da coluna, separados por vrgula e entre parntesis. Observe:

Cells(2,4)

Este comando indica a linha 2 da coluna 4 na planilha ativa, ou seja, a clula D2.

A vantagem do uso deste objeto que voc pode manipular as clulas indicando o
deslocamento desejado em relao clula indicada inicialmente.

Assim, se voc tivesse selecionado a clula D2, conforme sugerido no exemplo anterior,
poderia indicar a clula localizada h duas colunas para a direita na mesma linha da
seguinte forma:

i=4
Cells(2,i).select
Cells(2,i+2).select

Usar a varivel i em lugar da descrio explicita da coluna na segunda linha permite que
voc indique outras clulas pela descrio de sua posio relativa primeira clula
qualificada.

DICA
Se no houver uma indicao explcita do objeto, o Excel entender que voc se
refere ao objeto aberto (ou objeto atual), como um arquivo ou planilha. Voc pode
identificar a planilha em aberto no arquivo atual pela guia em branco (mesmo que
voc tenha alterado as cores das guias do arquivo). Na figura 3, a planilha ativa a
Plan1, j que as guias das demais planilhas tm fundos cinza.

Os objetos podem ter propriedades e procedimentos (e neste texto eles sero abordados
conforme a necessidade se apresente).

72 Anlise de projetos de investimento


As propriedades so atributos que definem as caractersticas do objeto, enquanto os
procedimentos permitem executar uma determinada tarefa vinculada ao objeto.

Algumas das propriedades de objetos podem ser vistas a seguir:

Cells(2,1).value = 7
Cells(2,2).formula = =+A1*2
Cells(2,2).font.italic= True

A propriedade value indica que est sendo atribudo um valor clula qualificada (A2),
enquanto a propriedade formula indica que clula vizinha (B2) ser atribuda a
frmula que se v entre aspas. J a propriedade font aplica uma definio especfica de
fonte ao intervalo.

A seguir voc v tambm alguns exemplos de procedimentos aplicados ao objeto cells.

Cells(1,1).Clear
Cells(3,2).AddComment "Ateno"

No primeiro caso, o procedimento Clear realiza a limpeza do contedo da clula A1,


enquanto no segundo, o procedimento AddComment insere uma caixa de comentrio
com o texto digitado entre as aspas clula B3.

No momento, estes conceitos so suficientes para que voc possa prosseguir


incrementando suas macros e incluindo os comandos de leitura de dados a partir de
planilhas, bem de exibio dos resultados em reas especficas de planilhas.

6.12 Leitura e Exibio de Dados

A leitura de dados a partir da planilha funciona de forma parecida com a atribuio de


dados, apenas preciso lembrar de como indicar o objeto de onde se deseja ler os dados.

73 Anlise de projetos de investimento


Assim, para a leitura dos dados da clula D5 na planilha Ex12 para a posio 1 do vetor
V, poderia ser usada a instruo:

V(1) = Worksheets("Ex12").Range("D5").value

A interpretao do comando similar de uma atribuio qualquer, ou seja, a posio 1


do vetor V recebe o valor encontrado na clula D5 da planilha Ex12 do arquivo atual.

Caso se deseje que uma varivel armazene a frmula em vez do valor da clula, deve-se
substituir a propriedade value pela propriedade formula. E a instruo ficaria assim:

V(1) = Worksheets("Ex12").Range("D5").formula

Antes de executar esta instruo, necessrio alterar o tipo de varivel para que ela
aceite o tipo de dado a armazenar.

Para a exibio de dados ou de algum resultado de processamento, voc j deve ter


imaginado que tambm usado um comando similar ao da atribuio de leitura. A
diferena consiste em que, ao invs de atribuir dados s variveis, sero os objetos do
Excel que recebero os dados contidos nas variveis. Ento, se voc deseja exibir o
texto Tcnicas de na clula B2, o texto Precificao nas clulas de B4 at B8, e o texto
Exemplo nas clulas C2, C6 e C8, todas da planilha Ex12, a instruo deveria ficar
assim:

Worksheets("Ex12").Range("B2").value =_ "Tcnicas de"


Worksheets("Ex12").Range("B4:B8").value_ = "Precificao"
Worksheets("Ex12").Range("C4,C6,C8")._ value = "Exemplo"

O resultado destas instrues deveria ficar conforme se v na figura 4 abaixo:

74 Anlise de projetos de investimento


Figura 4: Resultado de comandos com range

EXERCCIO 12:

Altere a macro do exerccio 11 para que os dados do vetor V (que contm os valores das
aplicaes da carteira do seu cliente) sejam lidos a partir da coluna D da planilha Ex12
(arquivo anexo).

EXERCCIO 13:

Altere a macro do exerccio 12 para que o resultado armazenado na varivel Total seja
exibido na clula D13 da planilha Ex13.

Com este ferramental, ser possvel implementar diversas macros que iro simplificar o
trabalho de simulao de cenrios para a anlise de investimentos.

Os exerccios especficos sero vistos em aula.

75 Anlise de projetos de investimento


ANEXO I
ACESSANDO O EDITOR DO VBA
VISUAL BASIC FOR APPLICATIONS
Para acompanhar os exemplos e fazer os exerccios propostos no captulo 6, ser
necessrio acessar o Editor do VBA.

Se voc est usando o MS Excel 2007, proceda da seguinte forma:


- abra o programa MS Excel 2007;
- clique no boto Microsoft Office no canto superior esquerdo da
janela do programa;
- selecione OPES DO EXCEL na parte inferior direita da janela;
- a janela de opes deve abrir no primeiro menu, correspondente a MAIS
USADOS;
- clique no terceiro checkbox (caixa de seleo) de cima para baixo: MOSTRAR
GUIA DESENVOLVEDOR NA FAIXA DE OPES. Isto far surgir na tela a
guia Desenvolvedor; e
- ento, selecione a guia desenvolvedor e nela o cone Visual Basic no grupo de
comandos Cdigo ( o primeiro boto esquerda). Isto far abrir a janela do
programa.

Se voc est usando o MS Excel 2003, proceda assim:


- abra o MS Excel 2003;
- selecione o menu Ferramentas na barra de ferramentas padro;
- clique na opo Macro; e
- selecione o cone Visual Basic. Isto far abrir a janela do programa.

Observe que, ao abrir o programa, abaixo das barras de menus, a janela do programa

76 Anlise de projetos de investimento


divida em duas grandes reas: uma rea direita onde aparecero as macros existentes
nas planilhas abertas; e uma rea esquerda onde deve-se visualizar o projeto (em
forma de rvore).

Se a rea de Projeto (Project) no aparecer na parte esquerda da janela do Microsoft


Visual Basic, clique na guia Exibir e selecione o item Project Explorer. Ele tambm
pode ser acessado por meio do cone da barra de ferramentas padro ou pelo atalho
Ctrl+R.

Figura 5: cone do Project Explorer na barra de ferramentas padro

Para permitir a execuo de macros no Excel, siga estas instrues:

- ao abrir arquivos que contenham macros, deve aparecer a janela Aviso de


Segurana do Microsoft Office Excel indicando um possvel problema de
segurana, como na figura 5;

Figura 6: Janela do Aviso de Segurana do Microsoft Office Excel

- para evitar que suas macros deixem de ser executadas, clique no boto
Habilitar Macros. (se voc fechou inadvertidamente a janela ou selecionou
Desabilitar Macros por engano, feche o arquivo e reabra, selecionando a opo
correta da janela);
- eventualmente a janela pode no aparecer e, neste caso voc ver o Aviso de
Segurana logo abaixo das barras de ferramentas como mostrado na figura 6;

77 Anlise de projetos de investimento


Figura 7: Aviso de Segurana do Microsoft Office Excel com a planilha j aberta

- neste caso, selecione o boto Opes fazendo abrir uma janela similar da
figura 5 e, ento clique em Habilitar Macros.

Para executar as macros de planilhas do Excel, selecione o cone Macros na guia


Desenvolvedor.

78 Anlise de projetos de investimento


ANEXO II

TIPOS DE DADOS DO VBA VISUAL


BASIC FOR APPLICATIONS

Tamanho de
Tipo de dados Intervalo
armazenamento
Byte 1 byte 0 a 255
Boolean 2 bytes True ou False
Integer 2 bytes -32.768 a 32.767
Long (inteiro longo) 4 bytes -2.147.483.648 a 2.147.483.647
Single -3,402823E38 a -1,401298E-45 para
(vrgula flutuante de 4 bytes valores negativos; 1,401298E-45 a
preciso simples) 3,402823E38 para valores positivos
-1,79769313486232E308 a -
Double
4,94065645841247E-324 para
valores negativos;
(vrgula flutuante de 8 bytes
4,94065645841247E-324 a
preciso dupla)
1,79769313486232E308 para
valores positivos
Currency -922.337.203.685.477,5808 a
8 bytes
(inteiro escalado) 922.337.203.685.477,5807
+/-
79.228.162.514.264.337.593.543.95
0.335 sem ponto decimal; +/-
7,9228162514264337593543950335
Decimal 14 bytes
com 28 casas decimais direita; o
menor nmero diferente de zero +/-
0,0000000000000000000000000001
.
De 1 de Janeiro de 100 at 31 de
Date 8 bytes
Dezembro de 9999
Object 4 bytes Qualquer referncia a Object

79 Anlise de projetos de investimento


Tamanho de
Tipo de dados Intervalo
armazenamento

String
10 bytes +
comprimento da
(comprimento da De 0 at aproximadamente 2 bilhes
seqncia de
varivel)
caracteres
String Comprimento da
seqncia de De 1 at aproximadamente 65.400
(comprimento fixo)
caracteres
Variant Qualquer valor numrico at o
16 bytes
(com nmeros) intervalo de um Double
22 bytes +
Variant comprimento da O mesmo intervalo que String de
(com caracteres) seqncia de comprimento varivel
caracteres
Definido pelo usurio Nmero O intervalo de cada elemento o
requerido por mesmo que o intervalo do seu tipo
(usando Type)
elementos de dados.

80 Anlise de projetos de investimento


ANEXO III

REGRAS DE PRECEDNCIA
ENTRE OPERADORES
Da maior para a menor precedncia:

REPRESENTAO DO OPERADOR DESCRIO DA OPERAO


^ exponenciao
- negao
*e/ multiplicao e diviso
Mod resto da diviso
+e- adio e subtrao
& concatenao
=, >, <, >=, <= comparao
and, or, not operaes lgicas

Por exemplo: a expresso 3+2*5+4 ser calculada como 3+(2*5)+4, ou seja, primeiro
ser feita a multiplicao (2*5 = 10) e ento somados os valores 3 e 4 (3+10+4 = 17).

81 Anlise de projetos de investimento


ANEXO IV

RESPOSTA DOS
EXERCCIOS PROPOSTOS

EXERCCIO 1:

Declarao de uma varivel de nome R para armazenar o valor dos recursos monetrios
disponibilizados pelo cliente para a compra de aes e declarao de uma outra varivel
de nome C para armazenar o custo individual das aes da carteira:

Sub Ex_1_Carteira_de_Acoes

Observaes:
Dim N as integer VARIVEL DESCRIO
Dim R as single N Nmero de aes da carteira
R Recursos ($)
Dim C as single
C Custo unitrio da ao

End sub

EXERCCIO 2:

Identificao de constantes e variveis declaradas nas instrues e, com base nos tipos
de dados do anexo II, explicao sobre a adequao dos tipos escolhidos:

82 Anlise de projetos de investimento


VARIVEL OU
NOME TIPO ADEQUADO
CONSTANTE
No, por que poderia usar
a. GNP Varivel double
single economizando espao.
string Sim, por que ir armazenar
b. NomeCliente Constante
(oculto) caracteres de texto.
No, por que ir armazenar
c. CustoUnitarioDaAcao Varivel long
nmeros no inteiros.

EXERCCIO 3:

Pesquisa complementar sobre regras para criao de nomes de variveis no VBA:


O nome deve comear com uma letra;
O nome pode conter apenas letras, nmeros e caracteres underscore
(sublinhado);
Caracteres especiais (de pontuao e espaos) no so permitidos em nomes de
variveis;
O nome no pode exceder 40 caracteres; e
O nome no pode ser uma palavra reservada do VBA (como uma instruo).

EXERCCIO 4:

Atribuio do valor R$5,00 varivel C e do valor R$2.000,00 varivel R:

Sub Ex_4_Carteira_de_Acoes

Dim N as integer
Dim R, C as single

N = 2000
R = 2000
C=5
End sub

83 Anlise de projetos de investimento


EXERCCIO 5:

Declarao de um vetor de 8 posies do tipo single que servir para armazenar valores
das vrias aplicaes de uma carteira de investimentos

Sub Ex_5_Carteira_de_Acoes
Dim N as integer
Dim R, C as single Observaes:
VARIVEL DESCRIO
Dim V(8) as single
N Nmero de aes da carteira
N = 2000 R Recursos ($)
R = 2000 C Custo unitrio da ao
V(8) Valores das aplicaes
C=5
End sub

EXERCCIO 6:

Atribuio dos valores R$1.500,00, R$2.000,00, R$2.500,00, R$3.000,00, R$3.500,00,


R$4.000,00, R$4.500,00 e R$5.000,00 ao vetor do exerccio 5.

Sub Ex_6_Carteira_de_Acoes

Dim N as integer Observaes:


Dim R, C as single VARIVEL DESCRIO
N Nmero de aes da carteira
Dim V(8) as single R Recursos ($)
C Custo unitrio da ao
V(8) Valores das aplicaes
N = 2000
R = 2000
C=5
V(1) = 1500
V(2) = 2000
V(3) = 2500
V(4) = 3000

84 Anlise de projetos de investimento


V(5) = 3500
V(6) = 4000
V(7) = 4500
V(8) = 5000
End sub

EXERCCIO 7:

Identificao do nmero de dimenses e mximo de posies dos arrays abaixo:

ARRAY DIMENSES POSIES POSSVEIS


Dim TempoEspaco(365, 90, 90, 90) as single 4 365; 90; 90; 90
Dim Volume(100,100,100) as long 3 100; 100; 100

EXERCCIO 8:

Apresentao da instruo que atribui por meio de expresso aritmtica um acrscimo


de 40% ao valor anteriormente atribudo varivel C (custo unitrio das aes da
carteira que est sendo trabalhada).

Sub Ex_8_Carteira_de_Acoes
Dim N as integer
Dim R, C as single
Observaes:
Dim V(8) as single
VARIVEL DESCRIO
N = 2000 N Nmero de aes da carteira
R = 2000 R Recursos ($)
C Custo unitrio da ao
C=5 V(8) Valores das aplicaes
V(1) = 1500
V(2) = 2000
V(3) = 2500
V(4) = 3000
V(5) = 3500
V(6) = 4000
V(7) = 4500
V(8) = 5000

85 Anlise de projetos de investimento


C = C + 0.4 * C
End Sub

Observao: A instruo relativa ao acrscimo de 40% no custo unitrio da ao poderia


ser escrita de outras formas, por exemplo:
C = 1.4 * C ou C = C + 40/100 * C

EXERCCIO 9:

Teste da condio lgica necessria para a compra de aes considerando a alterao do


custo unitrio das aes da carteira para R$7,00 e nenhuma outra alterao de valor.

Sub Ex_9_Carteira_de_Acoes
Dim N as integer
Dim R, C as single
Dim V(8) as single Observaes:
VARIVEL DESCRIO
N = 2000 N Nmero de aes da carteira
R = 2000 R Recursos ($)
C Custo unitrio da ao
C=7
V(8) Valores das aplicaes
V(1) = 1500
V(2) = 2000
V(3) = 2500
V(4) = 3000
V(5) = 3500
V(6) = 4000
V(7) = 4500
V(8) = 5000
If R > C*300 Then
N = N + 300
End if
End sub

86 Anlise de projetos de investimento


Conclui-se que a compra no seria realizada, pois faltariam R$100,00 para efetiv-la.

EXERCCIO 10:

Incluso de instruo para atualizao do valor disponibilizado pelo cliente (recursos)


aps a eventual compra de aes.

Sub Ex_10_Carteira_de_Acoes

Dim N as integer Observaes:


VARIVEL DESCRIO
Dim R, C as single
N Nmero de aes da carteira
Dim V(8) as single R Recursos ($)
C Custo unitrio da ao
V(8) Valores das aplicaes
N = 2000
R = 2000
C=7
V(1) = 1500
V(2) = 2000
V(3) = 2500
V(4) = 3000

V(5) = 3500
V(6) = 4000
V(7) = 4500
V(8) = 5000

If R > C*300 Then


N = N + 300
R = R (300*C)
End if

End sub

87 Anlise de projetos de investimento


EXERCCIO 11:

Duas opes de atribuio dos valores definidos para o vetor V utilizando ciclos com o
comando while.
Observaes:
VARIVEL DESCRIO
Sub Ex_11a_Carteira_de_Acoes() N Nmero de aes da carteira
i Contador genrico
Dim N, i As Integer R Recursos ($)
Dim R, C As Single C Custo unitrio da ao
Dim V(8), Total As Single V(8) Valores de aplicaes
Total Total das aplicaes
N = 2000
R = 2000 Sub Ex_11b_Carteira_de_Acoes()
C=5
Dim N, i As Integer
V(1) = 1500
Total = 0 Dim R, C As Single
i=2
Dim V(8), Total As Single
While i <= 8 N = 2000
V(i) = V(i - 1) + 500
R = 2000
i=i+1
Wend C=5
V(1) = 1500
i=1
Total = V(1)
While i <= 8
i=2
Total = Total + V(i)
i=i+1 While i <= 8
Wend
V(i) = V(i - 1) + 500
End Sub Total = Total + V(i)
i=i+1
Wend
End Sub

EXERCCIO 12:

Altere a macro do exerccio 11 para que os dados do vetor V (que contm os valores das
aplicaes da carteira do seu cliente) sejam lidos a partir da coluna D da planilha Ex12
(arquivo anexo).

88 Anlise de projetos de investimento


Sub Ex_12_Carteira_de_Acoes()

Dim N, i As Integer
Dim R, C As Single
Dim V(8), Total As Single

N = 2000
R = 2000
C=5
Total = 0
i=1

While i <= 8
V(i) = Worksheets("Ex12").Cells(4 + i, 4).Value
Total = Total + V(i)
i=i+1
Wend

End Sub

EXERCCIO 13:

Altere a macro do exerccio 12 para que o resultado armazenado na varivel Total seja
exibido na clula D13 da planilha Ex13.

Sub Ex_13_Carteira_de_Acoes()

Dim N, i As Integer
Dim R, C As Single
Dim V(8), Total As Single

N = 2000

89 Anlise de projetos de investimento


R = 2000
C=5
Total = 0
i=1

While i <= 8
V(i) = Worksheets("Ex12").Cells(4 + i, 4).Value
Total = Total + V(i)
i=i+1
Wend

Worksheets("Ex13").Range("D13").Value = Total

End Sub

90 Anlise de projetos de investimento


Referncias Bibliogrficas

BRASIL, Haroldo Guimares. Avaliao moderna de investimentos. Rio de Janeiro:


Qualitymark, 2002, 1 edio.

91 Anlise de projetos de investimento

S-ar putea să vă placă și