Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
GURUPI-TO
FEVEREIRO DE 2008
FUNDAÇÃO UNIRG
DEPARTAMENTO DO CURSO DE CIÊNCIA DA COMPUTAÇÃO
GURUPI-TO
FEVEREIRO DE 2008
2
FUNDAÇÃO UNIRG
CURSO DE CIÊNCIA DA COMPUTAÇÃO
BANCA EXAMINADORA
_____________________________________________
Profª Msc. Sofia Mara de Souza
_____________________________________________
Prof° Marcelo Lisboa Rocha
_____________________________________________
Profº Fernando Szimanski
3
Aos meus familiares e amigos que
sempre estiveram presentes, e me
apoiando nos momentos felizes e
difíceis desta grande jornada.
DEDICO
4
“Cada pessoa é única e exclusiva e,
ao se conscientizar do seu valor e de
sua capacidade de realizações, uma
energia positiva invade seu corpo,
sua mente e seu espírito.
VERA MARINS
5
AGRADECIMENTOS
À DEUS em primeiro lugar, por ele ser a base para tudo e sem ele eu
não teria forças para concluir o curso.
6
SUMÁRIO
LISTA DE FIGURAS
LISTA DE ABREVIAÇÕES
RESUMO
Capitulo 1
1. INTRODUÇÃO
Capitulo 2
2. REFERÊNCIAL TEÓRICO
2.1 - FORMALIZAÇÃO LEGAL DE OPERAÇÕES DE CRÉDITO
2.1.1 – Contrato
2.1.2 – Contratos Futuros
2.2 - MERCADO DE OPÇÕES
2.3 - HEDGE, HEDGER E HEDGING
2.4 - MERCADO DE DERIVATIVOS
2.4.1 - O Mercado e as transformações mundiais
2.4.2 - O mercado de derivativos
2.4.3 – Modelo de Fischer Black & Myron Scholes
2.5 – MÉDIA MÓVEL PONDERADA, MÉDIA MÓVEL EXPONENCIAL PONDERADA
E CRUZAMENTO DE MÉDIAS
2.5.1 – Média Móvel Ponderada
2.5.2 - Média Móvel Exponencial Ponderada
2.5.3 - Cruzamento de Médias
Capitulo 3
3. METODOLOGIA
7
3.1 A linguagem de programação java
3.1.1 Principais características da linguagem java
3.1.2 Maquina virtual java
3.2 API
3.2.1 A API JfreeChart
3.2.2 A API Jexcel
3.3 Netbeans 5.5
3.4 UML
Capitulo 4
4. APRESENTAÇÃO DO PROTÓTIPO DE SOFTWARE
Capitulo 5
5. AVALIAÇÃO DO PROTÓTIPO DE SOFTWARE
5.1 Média móvel curta
5.2 Média móvel longa
Capitulo 6
6. CONCLUSÃO
Capitulo 7
7. REFERÊNCIAS BIBLIOGRÁFICAS
ANEXOS
8
LISTA DE FIGURAS
9
LISTA DE ABREVIAÇÕES
10
RESUMO
11
Capítulo 1
1 - INTRODUÇÃO
12
deseja realizar o hedge. Os dados de valores (em R$) quantidade de contratos
negociados, as datas de negociação e outros dados são gerados através do sistema
de recuperação da BM&F [BM&F, online].
Neste trabalho estudaram-se algumas técnicas matemáticas de
indicações de tendências (tendência de alta e baixa) e implementou-se a melhor.
Nesse trabalho constatou-se que a melhor técnica é a de médias móveis junto com
EWMA - Exponentially Weighted Moving Average. Mais detalhes sobre o que são
mercado de capitais, Derivativos e outros assuntos relacionados às técnicas
matemáticas envolvidas serão encontrados neste trabalho.
No capitulo 2, será mostrado todo o referencial teórico estudado na
elaboração e execução do projeto do protótipo de software, tais como as médias
móveis, dados relevantes sobre mercado de capitais e derivativos. Já no capitulo 3
veremos toda a metodologia usada no projeto, tais como a linguagem de
programação Java, suas características e vantagens, as API´s (bibliotecas) usadas
no projeto, o framework Netbeans e o UML. No capitulo 4 apresentaremos o
protótipo de software, suas funcionalidades, as interfaces com suas entradas de
parâmetros. O Capitulo 5 se destina a avaliar a ferramenta, com os testes feitos, a
validação dos dados e também os resultados obtidos. O capitulo 6 é a conclusão
desse projeto e o capitulo 7 as referências usadas e anexos ao final.
13
Capítulo 2
2 - REFERENCIAL TEÓRICO
2.1.1 - Contrato
14
substituir-se por outros da mesma espécie, qualidade e quantidade. [ORTOLANI,
2000].
Cortejando os conceitos de MÚTUO e COMODATO de acordo com
Ortolani, (2000, p. 45), temos:
15
contrato para a mesma date de vencimento. Desta forma, os direitos de um contrato
anularão os deveres do outro.
16
O hedge foi estabelecido pelo "The A. W. Jones Group", este sendo
fundado no dia 1º de janeiro de 1949. A partir da Segunda Guerra Mundial, os
Estados Unidos contribuíram com os países da Europa, e assim puderam aumentar
suas exportações e importações. Contudo, com a dependência do mercado externo,
houve a necessidade de se explorar de maneira segura as transações industriais e
internacionais, e logo tornou-se muito utilizado no mercado de derivativos, que se
expandiu muito desde os anos 60. [LENHARO, et al., 2000]
17
preços. Desta forma, um hedge perfeito, é aquele que elimina completamente o
risco, que na prática é raro. [HULL, 1996 apud NETO, 1998; WIKIPEDIA, 2007]
18
“O mercado financeiro, principalmente os bancos, passaram
também por um período de fortes mudanças. As taxas de juros
tornavam-se muito mais voláteis (nervosas ou desestabilizadoras.
Podia-se notar em um mesmo continente países com taxa de juros
reais negativas e outros com taxas muito altas. O capital adquiriu
mobilidade incrível, perdendo a pátria”. [NETO, 1998, p. 12]
19
Segundo Neto, (1998) derivativo é um contrato definido entre duas
partes no qual se definem pagamentos futuros baseados no comportamento dos
preços de um ativo de mercado, ou seja, podemos dizer que os derivativos são
contratos firmados entre partes, com o objetivo de trocar o valo, e somente o valor,
de ativos, índices ou até mesmo commodities (agrícolas, minerais, dentre outros).
Portanto, em resumo, podemos dizer que um derivativo é um contrato, cujo valor
deriva de um outro ativo. O que se denomina de derivativos podem ser negociados
em uma série de mercados como: Mercado Futuro; Mercado a Termo; Mercado de
Opções.
Os mercados futuros e de opções são extremamente importantes no
mercado financeiro. Utilizados por hedgers, especuladores e arbitradores, sua
formação de preço deriva de mercadorias e de ativos financeiros. Foram
desenvolvidos para atender produtores e comerciantes expostos a riscos de preços,
nos períodos de escassez e superprodução do produto negociado, reduzindo o risco
de flutuação dos preços futuros da mercadoria. [NETO, 1998]
Segundo NETO, (1998) os derivativos foram criados como forma de
proteger os agentes econômicos contra os riscos das oscilações de preços. Entre os
derivativos mais populares encontram-se as opções e, sobre estas, existem diversos
modelos teóricos de precificação. Dentre estes modelos, um dos mais difundidos é o
Modelo de Fischer Black e Myron Scholes. [NETO, 1998, WIKIPEDIA, 2007].
c = SN(d1) – Xe-RFTN(d2)
20
onde c = valor da compra, e d1 e d2 são duas variáveis com distribuição
normal, com média zero e variância igual a um, sendo:
ln ( S / X ) + R F T
d1 = 12
+ 0,5 DP ( S )T 1 / 2
DP ( S )T
d2 = d1 - DP ( S )T 1/ 2
Sendo:
S = cotação da ação-objeto
X = preço em exercício
T = tempo restante até o final do prazo de vencimento
RF = taxa de juros de ativo sem risco
Var(S) = variância da taxa de retorno do ativo-objeto, ou volatilidade
e = base dos logaritmos naturais, isto é, e = 2,718
21
significado específico para os pesos que decrescem aritmeticamente. Em um WMA
de n-dias o último dia tem peso n, o segundo tem n-1, etc, até zero.
computado como
22
2.5.2 - Média Móvel Exponencial Ponderada
23
Expandindo EMAt-1 cada resultado no tempo na seguinte série
ponderada, mostrando como o fator de ponderação em cada preço p1,p2,etc,
decresce exponencialmente.
Em teoria isto é uma soma infinita, mas dado que 1-α é menor que 1,
os termos vão se tornando menores, e podem ser ignorados quando pequenos o
suficiente (quando o termo 1-α está bem próximo de zero).
Os N períodos em um EMA de N-dias somente especifica o fator α. N
não é um ponto de parada para o cálculo. Os primeiros N pontos de dados em um
EMA representa aproximadamente 86% do peso total no cálculo.
A fórmula de potência acima fornece um valor de partida para um dia
particular, após o qual a fórmula para dias sucessivos mostrados primeiramente
podem ser aplicados.
A questão de quão longe ir para um valor inicial depende, no pior caso,
dos dados. Se há P valores grandes nos dados anteriores então eles terão um efeito
no evento total se seus pesos são pequenos. Se for assumido valores que não
variam muito então os pesos podem ser considerados. Os pesos omitidos por parar
24
2.5.3. Cruzamento de Médias
25
Capítulo 3
3. Metodologia
26
linguagem convencional da Plataforma Java, mas não sua única linguagem [Java e
outros, online].
27
afirmação verdadeira. Porém novos avanços têm tornado o compilador dinâmico (a
JVM) em muitos casos, mais eficiente que o compilador estático. [Java e outros,
online].
Java hoje já possui um desempenho próximo do C++. Isto é possível
graças a otimizações como a compilação especulativa, que aproveita o tempo
ocioso do processador para pré-compilar bytecode para código nativo. Outros
mecanismos ainda mais elaborados como o HotSpot da Sun, que guarda
informações disponíveis somente em tempo de execução (ex.: número de usuários,
processamento usado, memória disponível), para otimizar o funcionamento da JVM,
possibilitando que a JVM vá "aprendendo" e melhorando seu desempenho. Isto é
uma realidade tão presente que hoje é fácil encontrar programas corporativos e de
missão crítica usando tecnologia Java. No Brasil, por exemplo, a maioria dos Bancos
utiliza a tecnologia Java para construir seus home banks, que são acessados por
milhares de usuários diariamente. Grandes sítios como o eBay utilizam Java para
garantir alto desempenho. E a cada ano Java tem se tornado mais rápido, na
medida que se evolui o compilador dinâmico.
Essa implementação no entanto tem algumas intrínsecas. A pré-
compilação exige tempo, o que faz com que programas Java demorem um tempo
significativamente maior para começarem a funcionar. Soma-se a isso o tempo de
carregamento da máquina virtual. Isso não é um grande problema para programas
que rodam em servidores e que deveriam ser inicializados apenas uma vez. No
entanto isso pode ser bastante indesejável para computadores pessoais onde o
usuário deseja que o programa rode logo depois de abri-lo.
O Java ainda possui uma outra desvantagem considerável em
programas que usam bastante processamento numérico. O padrão Java tem uma
especificação rígida de como devem funcionar os tipos numéricos. Essa
especificação não condiz com a implementação de pontos flutuantes na maioria dos
processadores o que faz com que o Java seja significativamente mais lento para
estas aplicações quando comparado a outras linguagens.
Os bytecodes produzidos pelos compiladores Java podem ser usados
num processo de engenharia reversa para a recuperação do programa-fonte
original. Esta é uma característica que atinge em menor grau todas as linguagens
compiladas. No entanto já existem hoje tecnologias que "embaralham" e até mesmo
28
criptografam os bytecodes praticamente impedindo a engenharia reversa [Java e
outros, online].
3.2 API - Application Program Interface
29
Instalação:
30
Para desenvolver usando o NetBeans é necessário ter instalado,
anteriormente em sua máquina, uma das versões do JDK (Java Development Kit)
[Netbeans 5.5, online].
3.4 UML
31
Capítulo 4
32
Figura 4.1 – Interface de seleção de arquivo para entrada de dados.
33
Figura 4.2 – Interface de inserção e atualização do parâmetro lambida.
34
Figura 4.3 – Interface de médias móveis, com seus parâmetros.
35
Figura 4.4 – Exemplo de data inicial dos dados da planilha do Excel
36
Figura 4.6 – Sobre o protótipo de software.
37
Capítulo 5
38
Figura 5.1 – Resultados do calculo da Média Curta
39
Para uma analise melhor de todos os dados, foram juntos os gráficos
das médias curta, longa e EWMA. A Figura 5.4 apresenta o gráfico com a junção de
todos os dados.
40
Capítulo 6
6. Conclusão
41
Capítulo 7
7. Referencias Bibliográficas
[BOVESPA, online] Bolsa de Valores de São Paulo. Mercado de opções. Disponível em:
<http://www.bovespa.com.br>. Acessado em: 01/08/07.
Acessado em 14/07/2007.
[UML e outros, online] OMG/UML - Disponivel em: <http://www.uml.org/>
Acessado em : 24/08/2007
[UML e outros, online] StarUML Open Source UML/MDA - Disponível em:
42
<ttp://staruml.sourceforge.net/en/>
Acessado em : 20/09/2007
[Java e outros, online] Sítio do Java Community Process - Disponível em:
<http://www.jcp.org/en/home/index>
Acessado em : 20/09/2007
[Java e outros, online] K. Reinholtz, Java will be faster than C++, ACM Sigplan Notices, 35(2):
25-28 Feb 2000
[Java e outros, online] Sun disponibilizada Java sob GPLv2 - Disónível em :
<http://www.sun.com/smi/Press/sunflash/2006-11/sunflash.20061113.1.xml>
Acessado em : 20/09/2007
[APIs, online] API’s – Disponível em : http://www.mastermagazine.info/termino/3868.php
Acessado em : 06/01/2008
[Netbeans 5.5, online] Netbenas 5.5 – Disponível em :
http://www.linhadecodigo.com.br/Artigo.aspx?id=805
Acessado em : 06/01/2008
[JExcelApi, online] JexcelApi – Disponível em : <http://jexcelapi.sourceforge.net/ >
Acessado em : 06/01/2008
[BM&F, online] BM&F – Bolsa de mercadorias e Futuros – Disponível em : <
http://www3.bmf.com.br/Datarestore1/Indexseries1.asp >
Acessado em ; 05/03/2007
{JfreeChart e outros, JfreeChart – Disponível em : < http://www.jfree.org/jfreechart/>
online]
Acessado em : 08/01/2008
43
.
Anexos
I – Documentação
II – Arquivo do Excel (Modelo da BM&F)
44
Anexo I
1 - Modelagem
1.3 Atores
1.4 Tarefa
45
Cenário 1: Pesquisar arquivo
Contexto: Sou um usuário e quero passar planilha do Excel (arquivo) no
qual o sistema usará no calculo.
Objetivo: Passar para o sistema qual o arquivo será usado no calculo das
médias móveis, alimentando o sistema para o cálculo.
Ação: Clicar em pesquisar arquivo
46
Cenários: 1
Descrição: 1. O usuário clica em pesquisar arquivo.
2. O sistema abre uma janela de pesquisa de arquivos.
3. O sistema verifica se o arquivo é uma planilha do Excel, se não
for o sistema retorna um erro avisando ao usuário para selecionar
um arquivo do válido (planilha do Excel).
4. Se o arquivo for um arquivo válido (planilha do Excel) o sistema
retorna uma mensagem de sucesso no carregamento do arquivo.
47
Use case: Calcular médias móveis e EWMA
Cenários: 5
Descrição: 1. O usuário clica no botão “Calcular”.
2. O sistema já fez todas as verificações, conforme descritas nos
caso de uso anteriores.
3. O sistema retorna uma mensagem ao usuário dizendo que o
cálculo das médias móveis curta, longa e EWMA foram feitos com
sucesso.
48
Pré-condições: O arquivo da planilha do
Usuário
Excel (arquivo) já existe
Do sistema
Pesquisar
arquivo
“Arquivo inválido”
Parâmetro
Lambida
49
Pré-condições: A data inicial dos dados já
Usuário
é conhecida e é válida na planilha do Excel
Do sistema (arquivo)
Parâmetro
data inicial
Usuário
Do sistema
Parâmetro
janela de
tempo
“Dados
“Campo vazio”
inválidos”
50
Usuário Pos-condições: As verificações dos casos
Do sistema de uso 1, 2, 3, 4 serão feitos agora
Calcular
médias
móveis e
EWMA
Calcular
médias
móveis e
EWMA
“Calcule as Plotar
médias primeiro” gráfico
51
Anexo 2
Arquivo do Excel (Modelo da BM&F)
52