TRABALHO DE GRADUAÇÃO
Estudo de séries temporaisdo mercado financeiro
Murilo Antunes Braga
Brasília, Dezembro de 2009
UNIVERSIDADE DE BRASÍLIA
FACULDADE DE TECNOLOGIA
UNIVERSIDADE DE BRASILIA
Faculdade de Tecnologia
TRABALHO DE GRADUAÇÃO
Estudo de séries temporaisdo mercado financeiro
Murilo Antunes Braga
Relatório submetido ao Departamento de Engenharia
Mecatrônica como requisito parcial para obtenção
do grau de Engenheiro de Controle e Automação
Banca Examinadora
Prof. Dr. João Yoshiyuki Ishihara, ENE/UnB
Orientador
Profa. Dra. Janaína Gonçalves Guimarães,
ENE/UnBExaminador interno
Prof. Dr. Francisco Damasceno Freitas,
ENE/UnBExaminador interno
Dedicatórias
À minha mãe, Maria José, ao meu pai, João
Braga, aos meus irmãos, Marcelo e Mateus,
e à minha namorada, Bianca.
.
Murilo Antunes Braga
Agradecimentos
Agradeço à minha família pelo apoio em todas as etapas de minha vida; à minha namorada
Bianca que sempre me apoiou nessa caminhada; Ao professor João, no seu trabalho como
orientador; à todos os meus amigos da faculdade, que me ajudaram nessa jornada de
quase 5 anos.
Murilo Antunes Braga
RESUMO
O presente trabalho apresenta um estudo de série temporais do mercado financeiro,com a utilização
de ferramentas gráficas, estatísticas e a aplicação do filtro de Kalman. Primeiramente,são abor-
dados conceitos básicos à compreensão das séries temporais, assim como meios disponíveis para a
sua análise. Em seguida, é descrita a forma de captação dessas séries, para então ser elaborada
uma proposta de um sistema de tomada de decisão automatizado. O desempenho deste trading
system aqui proposto é avaliado a partir da observação de seu desempenho em comparação com o
comportamento obtido para determinados ativos da bolsa de valores brasileira no mesmo período.
São abordados ainda assuntos pertinentes ao modelamento de séries temporais, e posterior aplica-
ção do filtro de Kalman à um destes modelos apresentados. Por fim, é avaliada a resposta do filtro
de Kalman ao modelo escolhido, com devida análise do comportamento obtido para o mesmo.
ABSTRACT
This work presents a study of financial times series and the corresponding tools for doing it: graphic
tools, estatistics concepts and the Kalman filter. First, those basic concepts related to times series
are shown, as well as the ways of providing their analysis. Then it is presented the steps taken
in the caption process of the financial series and also the proposal of a new trading system. The
performance of this system is evaluated through the observation of its results in comparison with
the real behaviour obtained for certain assets during the same period observed. Furthermore, it
is presented topics on modeling of times series and the consequent application of Kalman filter on
them. Finally, the results are shown along with their analysis.
SUMÁRIO
1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Séries temporais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Ferramentas de análise gráfica ................................................. 3
2.1.1 Gráfico simples ........................................................................ 3
2.1.2 Gráfico de dispersão ................................................................. 3
2.2 Conceitos estatísticos aplicados a séries temporais ...................... 4
2.2.1 Processos estocásticos .............................................................. 4
2.2.2 Função média ........................................................................... 5
2.2.3 Função autocovariância ............................................................ 5
2.2.4 Correlação .............................................................................. 6
2.2.5 Propriedades da variância.......................................................... 7
2.2.6 Passeio aleatório (random walk) ................................................... 7
2.2.7 Estacionaridade........................................................................ 7
3 Captação das séries temporais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 Série histórica Apligraf para o MATLAB .................................... 10
3.2 Usando o FTS tool para importar dados ..................................... 12
4 Proposta de um sistema de negociação de ativos financeiros. . . . . . . . 13
4.1 Metodologia de desenvolvimento de um sistema de tomada de de-
cisão ....................................................................................... 14
4.1.1 Descrição do sistema proposto ................................................... 15
4.1.2 Séries temporais carteira de interesse ........................................ 16
4.1.3 Filtragem dos resultados........................................................... 19
4.2 Resultados da simulação ............................................................ 20
4.2.1 Parâmetros de saída da simulação............................................... 20
4.2.2 Simulação e resultados.............................................................. 21
4.3 Resultados da validação do modelo............................................. 22
5 Modelagem de tendências em séries temporais . . . . . . . . . . . . . . . . . . . . . . 29
5.1 Tendência sazonal .................................................................... 29
5.1.1 Sazonalidade com a função de autocorrelação ........................... 30
5.1.2 Sazonalidade com a função de autocorrelação numa série finan-
ceira ....................................................................................... 31
iii
5.2 Modelos probabilísticos ............................................................ 32
5.2.1 Ruído branco ........................................................................... 32
5.2.2 Processo linear geral ............................................................... 33
5.2.3 Modelo média móvel.................................................................. 33
5.2.4 Processos auto-regressivo ......................................................... 34
5.2.5 Processos médias móveis auto-regressivo ..................................... 36
5.3 Construção de modelos no espaço de estados ............................... 37
5.3.1 Construção de modelos no espaço de estados no MATLAB............. 37
5.3.2 Validação de modelos de séries temporais de ativos financeiros ..... 40
6 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.1 Sistema de referência e notação utilizada ................................... 47
6.2 Equações do filtro de Kalman.................................................... 48
6.2.1 Demonstração das equações do filtro de Kalman ......................... 48
6.3 Implementação do filtro de Kalman ............................................ 50
6.3.1 Séries temporais utilizadas ........................................................ 51
6.3.2 Construção do modelo .............................................................. 51
6.3.3 Resultado da aplicação do filtro de Kalman em um conjunto de
ativos ...................................................................................... 54
7 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
REFERÊNCIAS BIBLIOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Anexos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
I Códigos do programa MATLAB utilizados nesse trabalho. . . . . . . . . . 67
LISTA DE FIGURAS
2.1 Passeio aleatório (random walk) tendência de alta ............................................. 4
2.2 Passeio aleatório (random walk) tendência de baixa............................................ 4
2.3 Passeio aleatório (random walk) tendência neutra .............................................. 5
2.4 Gráfico simples Petrobras ............................................................................. 5
2.5 Gráfico de dispersão..................................................................................... 6
3.1 Exemplo de corretora com acesso a base Apligraf .............................................. 10
3.2 Exemplo de plataforma home broker .............................................................. 10
3.3 Gráfico Apligraf .......................................................................................... 11
3.4 Interface gráfica FTS tool ............................................................................. 12
4.1 Esquemático sistema de negocição de ativos...................................................... 14
4.2 Esquematização do modelo para desenvolvimento sistema de tomada de decisão de [1] 15
4.3 Lógica de decisão ........................................................................................ 15
4.4 Divisão dados históricos................................................................................ 17
4.5 Série temporal vale5 modelagem.................................................................... 17
4.6 Série temporal vale5 validação ...................................................................... 18
4.7 Série temporal financeira a ser analisada nesse exemplo....................................... 18
4.8 Variação percentual diária vale5 .................................................................... 19
4.9 Definição dos dados necessários para o sistema .................................................. 19
4.10 Proposta de modelo para desenvolvido para sistema de tomada de decisão .............. 20
5.1 Função seno amostrada adicionada de ruído...................................................... 30
5.2 Correlagrama da função seno amostrada acrescida de ruído.................................. 30
5.3 ACF petr4 ................................................................................................ 31
5.4 ACF vale5 ................................................................................................ 31
5.5 ACF bbdc4 ............................................................................................... 32
5.6 ACF csna3................................................................................................ 32
5.7 ACF itau4 ................................................................................................ 33
5.8 ACF vale3 ................................................................................................ 33
5.9 System id tool ............................................................................................ 38
5.10 Importando dados ....................................................................................... 38
5.11 Modelamento no espaço de estados ................................................................. 39
5.12 Valores singulares para escolha da ordem do modelo........................................... 39
5.13 Validação do modelo .................................................................................... 40
v
5.14 Fechamento em pontos diários do indice Ibovespa de 18/12/1991 ate 5/12/2008....... 40
5.15 Histograma indice Ibovespa da variação percentual diária de 18/12/1991 ate 5/12/2008
41
5.16 Gráfico QQ série variação percentual Ibovespa .................................................. 41
5.17 Função de autocorrelação ACF para variação percentual Ibovespa ......................... 42
5.18 Histograma derivada das cotações Ibovespa de 18/12/1991 ate 5/12/2008 ............... 43
5.19 Gráfico QQ série variação Ibovespa ................................................................. 43
5.20 Função de autocorrelação ACF para variação em pontos Ibovespa ......................... 44
5.21 Histograma dos resíduos modelo ARMA(15) preços Ibovespa de 18/12/1991 ate
5/12/2008 ................................................................................................. 44
5.22 Gráfico QQ dos residuos do modelo ARMA em pontos do Ibovespa ....................... 44
5.23 Função de autocorrelação ACF para os resíduos do modelo ARMA analisado .......... 45
6.1 Função de autocorrelação para preço de fechamento de petr4 .............................. 51
6.2 Série temporal utilizada exemplo Kalman......................................................... 52
6.3 Separação dados modelamento e validação exemplo petr4 ................................... 52
6.4 Valores previstos pelo modelo 1 passo a frente e valores observados ....................... 53
6.5 Gráfico dispersão resíduo x valores absolutos dos dados de validação...................... 53
6.6 Divisão da série temporal disponível e seus usos ................................................ 54
6.7 Estimado e observado periodo de validação....................................................... 55
6.8 Esquema simulações com utilização do filtro de Kalman realizadas ........................ 56
6.9 Preço previsto e observado periodo de validação petr4 (com atualização do modelo) 56
6.10 Preço previsto e observado periodo de validação petr4 (sem atualização do modelo). 57
6.11 Capital acumulado diferentes estratégias petr4 ................................................. 57
6.12 Estimado e observado periodo de validação vale5 .............................................. 58
6.13 Capital acumulado diferentes estratégias vale5.................................................. 58
6.14 Preço previsto e observado periodo de validação bbdc4 ...................................... 59
6.15 Capital acumulado diferentes estratégias bbdc4 ................................................ 59
LISTA DE TABELAS
4.1 Resultados parâmetros estratégia proposta vale5............................................... 21
4.2 Resultados parâmetros estratégia proposta bbdc4 ............................................. 22
4.3 Resultados parâmetros estratégia proposta tnlp4 .............................................. 23
4.4 Resultados parâmetros estratégia proposta lame4 ............................................. 23
4.5 Resultados parâmetros estratégia proposta netc4 .............................................. 24
4.6 Validação 140 dias tnlp4 .............................................................................. 25
4.7 Validação 140 dias netc4 .............................................................................. 26
4.8 Quadro resumo validação ativos (28 semanas) ................................................... 27
4.9 Análise dos coeficientes de correlação dos ativos utilizados no teste........................ 27
6.1 Resultados simulações no modelo ARMA aplicando o filtro de Kalman como estimador 59
vii
LISTA DE SÍMBOLOS
Símbolos
E Função esperança
µ Média da amostra
σ Desvio padrão
γ(t, s) Função autocovariância (p. 6)
ρk Função autocorrelação (p. 34)
Pk Preço de fechamento do ativo no período k
Rk Variação percentual diária do preço de fechamento do ativo no período k
Yt Série temporal genérica
X ∼ N(µ, σ2) Variavél aleatória X possui distribuição normal com média µ e variância σ2
xk Vetor das variavéis de estado do modelo da p.47
wk Vetor de ruído branco de estado
zk Vetor de saída do modelo
vk Vetor de ruídos de saída
xk|k−1 Estimativa a priori das variavéis de estado xk
xk|k−1 Estimativa a posteriori das variavéis de estado xk
Σk|k−1 Matriz de covariância do erro de estimativa a priori
Σk|k−1 Matriz de covariância do erro de estimativa a posteriori
K Matriz de ganho de Kalman
Ativos financeiros
petr4 Ação preferencial empresa Petrobras
vale5 Ação preferencial especial empresa Vale
vale3 Ação ordinárias empresa Vale
csna3 Ação ordinárias empresa Siderurgica Nacional
netc4 Ação preferencial empresa Net
bbdc4 Ação preferencial Banco Bradesco
itau4 Ação preferencial Banco Itau
tnlp4 Ação preferencial empresa Oi
lame4 Ação preferencial empresa Lojas Americanas
ix
Siglas
ACF Função de autocorrelação (autocorrelation function)
AR Processo auto-regressivo (autoregressive)
FACP Função de autocorrelação parcial (partial autocorrelation function)
ARMA Processo média móvel auto-regressivo (Autoregressive moving average)
QQ quantiles quantiles
Capítulo 1
Introdução
O estudo da dinâmica do mercado financeiro representa hoje um dos maiores desafios rela-
cionado à economia de mercado. A completa previsibilidade do seu comportamento não é algo
possível, já este mercado é movido por opiniões, elementos políticos, realidades sociais, etc. No
entanto, a existência de um modelo para o mesmo pode ser de grande interesse econômico, mesmo
que este modelo apresente baixo nível de acerto em sua predição. Isto acontece já que baixos ní-
veis de acerto em processos de elevada volatilidade podem gerar resultados maiores do que àqueles
fornecidos em aplicações conservadoras.
As informações dos ativos negociados em bolsas de valores podem ser tratadas como séries
temporais. Estas séries são, por definição, conjuntos de dados coletados seqüencialmente ao longo
do tempo. O objetivo típico ao se estudar uma série temporal é entendê-la estatisticamente através
de um modelo estocástico bem definido, assim como realizar previsões de valores futuros com base
numa série histórica passada. Os campos de atuação são vastos, podendo ser citado, além do
mercado financeiro, a meteorologia, a administração e finanças como áreas que freqüentemente se
utilizam desta metodologia de análise [2].
Em sistemas complexos é comum a abordagem através do modelamento matemático na busca
por análises e características do sistema. Em sistemas cuja incerteza está presente, a análise por
modelos estocásticos apresenta melhores resultados. O desenvolvimento de técnicas de estimação
na teoria de controle para modelos no espaço de estados pode ser utilizado numa ampla gama de
sistemas, oferecendo características e padrões de sistemas até então desconhecidos pela análise não
formal.
Neste trabalho, serão abordadas análises gráficas, estatísticas e a utilização do filtro de Kalman
para a criação de um estimador do comportamento das ações em bolsa de valores.
No capítulo 2 serão apresentados conceitos básicos relacionados às séries temporais, assim como
ferramentas disponíveis para sua análise.
No capítulo 3 serão apresentadas formas de captação das séries dos ativos financeiros que serão
aqui estudados.
No capítulo 4 será apresentada uma proposta de sistema de negociação automatizado (trading
system).
1
No capítulo 5 serão abordados assuntos pertinentes à modelagem de tendências em séries tem-
porais.
No capítulo 6 é feita uma aplicação do filtro de Kalman em um modelo de séries temporais
descrito no capítulo 5.
Por fim, no capítulo 7 são apresentadas conclusões obtidas através do desenvolvimento deste
trabalho.
2
Capítulo 2
Séries temporais
Nesta seção são apresentadas algumas ferramentas disponíveis para análise de uma determinada
série temporal. Está dividida nas subseções:
• Ferramentas de análise gráfica
• Ferramentas de análise estatística
2.1 Ferramentas de análise gráfica
Nesta seção, apresentaremos brevemente as formas de análise visuais mais utilizadas para séries
temporais, fazendo para tanto o uso de séries financeiras reais. As análises visuais são utilizadas
muitas vezes na identificação de tendências. Este procedimento deve ser feito, no entanto, com
cautela, e o indicador deve ser tomado como não plenamente confiável, já que muitas vezes a análise
pode se mostrar errada. Para exemplificar tal afirmação, as figuras 2.1, 2.2, 2.3 mostram três
simulações de passeio aleatório em que as aparências da tendência dominante são completamente
diferentes. No entanto, todos as três séries temporais foram geradas com os mesmos parâmetros
estatísticos de passeio aleatório, cuja média é zero e variância conhecida e igual nas três simulações.
O modelo de passeio aleatório é descrito na subseção 2.2.6.
2.1.1 Gráfico simples
Esta ferramenta apresenta uma visão geral da série temporal e seu desenvolvimento ao longo do
tempo, além de facilitar a escolha de quais ferramentas para análise utilizar. A figura 2.4 mostra
a série temporal para os preços da ação da Petrobras de dezembro de 2003 a dezembro de 2008.
2.1.2 Gráfico de dispersão
O gráfico de dispersão coleta dados de duas séries temporais para investigar relações de causa
e efeito entre duas variáveis. Além disso, permite a visualização de possíveis relações de correlação
entre duas variáveis discretas.
3
0 10 20 30 40 50 60 70 80 90 100−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6Random walk 100 unidades de tempo sigma=0.03
Tempo
Pre
ço
figura 2.1: Passeio aleatório (random walk) tendência de alta
0 10 20 30 40 50 60 70 80 90 100−0.7
−0.6
−0.5
−0.4
−0.3
−0.2
−0.1
0Random walk 100 unidades de tempo sigma=0.03
Tempo
Pre
ço
figura 2.2: Passeio aleatório (random walk) tendência de baixa
Um exemplo de gráfico de dispersão está mostrado na figura 2.5. Neste gráfico, um de seus eixos
corresponde à série diária de variação percentual dos preços com o atraso de um período, enquanto
no outro é apresentada a mesma série sem atraso. Este gráfico pode nos fornecer visualmente
uma relação de qual variação é mais provável para o dia seguinte dado que conhecemos a última
variação com base na freqüência relativa com que esses eventos acontecem no histórico da série.
2.2 Conceitos estatísticos aplicados a séries temporais
Nesta seção, é feita uma revisão de alguns conceitos estatísticos básicos que serão utilizados ao
longo do trabalho.
2.2.1 Processos estocásticos
Um processo é dito estocástico quando ele é composto por um conjunto de variáveis que apa-
recem aleatoriamente [2].
4
0 200 400 600 800 1000 1200 14000.4
0.6
0.8
1
1.2
1.4
1.6
1.8Random walk 100 unidades de tempo sigma=0.03
Tempo
Pre
ço
figura 2.3: Passeio aleatório (random walk) tendência neutra
0 200 400 600 800 1000 12005
10
15
20
25
30
35
40
45
50
55Gráfico da série temporal ativo Petrobras (petr4)
Tempo(dias uteis) desde 2003
Pre
ço
figura 2.4: Gráfico simples Petrobras
2.2.2 Função média
A função média µ é definida conforme equação 2.1 [2].
µ = E (Y ) (2.1)
Onde:
Y: Representa uma variavél aleatória,
E: Representa a função valor esperado.
No Matlab, o cálculo para uma série temporal pode ser implementado através do comando mos-
trado:
media = mean(serie_temporal)
Onde:
media: variável que armazenará o valor da média serie_temporal: variável na forma de matriz no
ambiente Matlab que contém a série temporal.
2.2.3 Função autocovariância
A função autocovariância é definida conforme equação 2.2 [2]:
5
−15 −10 −5 0 5 10 15−15
−10
−5
0
5
10
15Gráfico dispersão Scatteplot variação percentual petr4 no dia k versus variação percentual no dia k−1
Variação percentual dia (k−1)
Var
iaçã
o pe
rcen
tual
dia
k
figura 2.5: Gráfico de dispersão
γ(t, s) = Cov(Y t, Y s) = E[(Y t − µt)(Y s − µs)] (2.2)
Onde Yt e Ys são duas variáveis aleatórias. O caso em que Yt e Ys são iguais é conhecido como
variância.
No Matlab este cálculo pode ser implementado através do comando:
cov(serie_temporal)
2.2.4 Correlação
A função correlação é definida conforme equação 2.3 [2].
Corr(Y t, Y s) =Cov(Y t, Y s)
√
V ar(Y t)V ar(Y s)(2.3)
A função correlação gera um valor entre -1 e 1. Tanto uma correlação de +1 quanto de -1
significa uma forte dependência linear entre as séries. Por sua vez, uma correlação próxima a zero
mostra que as duas séries são incorrelatas e possuem uma fraca dependência linear.
No MATLAB, este cálculo pode ser implementado através do comando
Correlação(x,y) = corrcoef(serie_x,serie_y)
6
2.2.5 Propriedades da variância
Algumas propriedades importantes com demonstrações disponívéis em [2] são mostradas a
seguir nas equações: 2.4, 2.5, 2.6, 2.7.
V ar(X) ≥ 0 (2.4)
V ar(a + bX) = b2V ar(X) (2.5)
V ar(X + Y ) = V ar(X) + V ar(Y ) + 2Cov(X, Y ) (2.6)
V ar(X) = E(X2) − [E(X)]2 (2.7)
2.2.6 Passeio aleatório (random walk)
Seja e1, e2, seqüência de elementos independentes e igualmente distribuídos de uma variável
aleatória de média zero e variância conhecida. Podemos construir a seguinte série denominada de
série passeio aleatório Y muito utilizada para modelagem de ativos financeiros. [2] :
Y1 = e1
Y2 = e1 + e2
Yt = e1 + e2 + ... + et (2.8)
(2.9)
Ou de uma maneira recursiva conforme 2.10:
Yt = Yt−1 + et (2.10)
2.2.7 Estacionaridade
Uma variável aleatória é dita estacionária quando sua distribuição de probabilidade, média e
variância não se alteram ao longo do tempo. Para fazermos deduções estatísticas e predições essa
é uma propriedade importante que garante que as leis básicas que governam o comportamento do
processo não variam ao longo do tempo. Uma condição mais fraca representada matematicamente,
também chamada de estacionaridade de segunda ordem, é que a função de autocorrelação não
dependa do tempo absoluto, apenas dos atrasos [2]. Além disso o valor esperado da série é constante
ao longo do tempo.
µ =constante ao longo do tempo e:
γ(t, t − k) = γ(0, k) (2.11)
7
Capítulo 3
Captação das séries temporais
Conforme foi dito anteriormente, este trabalho realizou o estudo de séries temporais com apli-
cação em ativos negociados em bolsas de valores. Para tanto, a captação destas séries deve ser
entendida como etapa fundamental deste estudo, e assim, não somente uma fonte de captação des-
tes dados será considerada previamente. As várias fontes de séries temporais financeiras analisadas
estão enumeradas abaixo:
1. Bovespa [3] é a fonte primária de todas as séries no tempo do mercado bursátil brasileiro.
Ela disponibiliza informações de todos os ativos negociados na Bovespa desde 1986 e possui a
vantagem da disponibilização das séries de todos os ativos negociados em bolsa nesse periodo
de diferentes mercados: a vista, fracionário e a termo. Para o presente trabalho apenas o
mercado a vista (padrão) é de interesse de estudo. Os dados estão em valores absolutos e
não existe nenhum tratamento para eventos que interferem nos preços tais como dividendos
e influência da inflação. No caso da inflação, há de se considerar que as séries mais antigas
são caracterizadas por terem passado por um processo inflacionário forte.
2. Apligraf [4]: Empresa que comercializa as informações processadas da fonte primária Bovespa.
Os dados são apresentados corrigidos de eventuais rendas distribuidas aos acionistas ao longo
do periodo.
3. Analista de Mercado [5]: fonte de captação na qual os dados são apresentados na formatação para
o uso do software MetastockTM [6]. Assim, caso se deseje utilizar estes dados em outros programas
como o MATLAB é necessária a utilização de programas conversores dos formatos destes arquivos.
Leandro Stormer [7]: fonte de captação na qual os dados também são apresentados na formatação
para o uso do software MetastockTM . Assim como a fonte acima, também é necessária a utilização
de programas que convertam estes arquivos para outros formatos de arquivos, caso se deseje utilizá-
los em outros programas.
Yahoo finance [8]: fonte que apresenta grande facilidade de disponibilização para aplicações no
MATLAB. Os dados são carregados com simplicidade para o MATLAB e a base de dados é acessada
por scripts. Sua limitação é que apenas informações de ações brasileiras negociadas na NYSE em
Nova Iorque são disponibilizadas.
9
Dentre as fontes de captação apresentadas, as que foram escolhidas para utilização neste traba-
lho visando os objetivos aqui apresentados foram as fontes Apligraf e Yahoo Finance. Estas serão
detalhadas nos próximos tópicos.
3.1 Série histórica Apligraf para o MATLAB
Uma forma de se obter a série histórica com os dados de negociação de um determinado ativo
no mercado de capitais é através dos dados fornecidos pela empresa Apligraf. Esta tem parceria
com a maioria das corretoras que negociam na Bovespa. Acessando esta base de dados através
da corretora Ativa [9], conforme figura 3.1, foram obtidas as séries temporais dos ativos para uso
neste trabalho.
figura 3.1: Exemplo de corretora com acesso a base Apligraf
O acesso aos dados se dá quando a pessoa cadastrada em uma corretora que se utiliza desta fonte
acessa a ferramenta de negociação, que é chamada de ’Home Broker’. O "Home Broker"mostrado
na figura 3.1.
figura 3.2: Exemplo de plataforma home broker
O ’Home Broker’ mostrado na figura 3.2. é um exemplo de plataforma disponibilizada pelas
corretoras em que as ordens de compra ou venda de ativos são enviadas diretamente pelo cliente
via internet, isto é, sem a intermediação de um corretor. Tal sistema permite agilidade à grande
massa do mercado, permitindo ainda que as ordens cheguem na Bovespa em segundos. Uma das
ferramentas disponibilizadas nesta plataforma é o gráfico Apligraf. Ao se abrir uma nova janela
para o gráfico, é pedido o código do ativo e em seguida é apresentado seu gráfico correspondente.
10
Nessa mesma janela na margem inferior é apresentada a opção "importar .xls", conforme figura
3.3.
figura 3.3: Gráfico Apligraf
Ao clicar nesta opção, a série será disponibilizada em um arquivo, com os seguintes dados de
negociação dos últimos cinco anos:
1. Código do papel
2. Datas
3. Preço de abertura do ativo
4. Preço máximo negociado no dia
5. Preço mínimo negociado no dia
6. Preço do ultimo negócio no dia
7. Volume financeiro do ativo negociado no dia
8. Numero de negócios realizados no dia
11
Utilizando o programa Microsoft Excel, é possível abrir o arquivo e salvá-lo como texto separado
por tabulações. Este é um formato reconhecível pelo MATLAB e pela maioria das linguagens de
programação para interpretação de uma tabela de valores. Dessa forma, temos uma maneira rápida
de gerar uma base de dados de um ativo negociado na Bovespa. No MATLAB, podemos importar
esses dados com comandos já existentes em sua biblioteca. O comando para importação de séries
temporais em formato texto separado por tabulações é o comando "load".
3.2 Usando o FTS tool para importar dados
O FTS é uma ferramenta com interface gráfica do MATLAB desenvolvida para a criação e
manuseio de séries financeiras no tempo. A figura 3.4 mostra a interface gráfica do FTS tool. Com
alguns comandos, é possível obter os dados relativos a vários anos de um determinado ativo. Estes
dados podem ser captados, por exemplo, da fonte Yahoo Finance. Assim, é importante lembrar
que os papéis brasileiros disponíveis no Yahoo Finance são apenas recibos de ações brasileiras
(ADRs) na bolsa de Nova York (NYSE), fato que limita a utilização desta fonte. Os comandos
para importação das séries temporais estão disponíveis no anexo I.
figura 3.4: Interface gráfica FTS tool
12
Capítulo 4
Proposta de um sistema de negociação
de ativos financeiros
Existem verdadeiras enciclopédias [10] descrevendo sistemas técnicos de tomada de decisões.
Um problema recorrente é que ao se popularizar esses indicadores, os seus resultados se tornam
cada vez menores até que se chega a um ponto que o seu uso não é capaz de superar o desempenho
do mercado [11]. Assim, novas formas de análise de um sistema de negociação de ativos financeiros
devem ser desenvolvidas para alcançar resultados acima do mercado.
Para a construção de um sistema de negociação de ativos financeiros são necessários basicamente
três elementos: ativo objeto de estudo, análise das informações dos ativos e operalização da análise.
A figura 4.1 resume o esquema básico para um sistema de negociação de um ativo financeiro.
Neste sistema, o bloco "carteira de interesse"representa aqueles ativos financeiros que um de-
terminado investidor tem acesso e possível interesse de negociação. Por sua vez, o sistema de
tomada de decisão é aquele que decidirá pela compra, venda ou permanência do estado do ativo.
Visando a automatização deste processo, são utilizados algoritmos para implementá-lo. Já o admi-
nistrador de sistema é o agente responsável pela interface do sistema do investidor com o sistema
de negociação em bolsa.
O sistema de negociação de ativos financeiros aqui proposto apresenta um nível intermediário
de automação, já que apenas parte do processo será realizado de forma computadorizada sem
a intervenção do homem. Em sistemas de negociação com menor automação, o administrador
também realiza o processo de análise. Por sua vez, em sistemas mais automatizados, chamados de
robôs negociadores, o envio de ordem é feito sem a intervenção humana, diretamente a partir da
tomada de decisão [12]. Vale lembrar que a escolha pela automação do envio de ordens ao sistema
de negociações em bolsa é determinante em casos nos quais a janela de oportunidade observada
acontece de maneira muito rápida. Um exemplo de janela de oportunidade que tende a se fechar
rapidamente é aquela na qual o mesmo ativo é negociado em diferentes bolsas de valores a preços
diferentes. Se o sistema já levou em conta o custo de operação envolvido na compra de um ativo em
determinado mercado e venda em outro, o tempo de envio da ordem é determinante para o sucesso
da operação, já que é razoável supor que outros operadores estarão interessados nessa operação de
baixo risco [1]. Além disso, neste tipo de sistema de negociação o problema da segurança da rede
13
a invasões não pode ser desprezado.
No sistema de negociação desenvolvido nesse capítulo o envio de ordens a bolsa de valores
não foi automatizado. O enfoque desejado está na construção do bloco de tomada de decisões
automatizado. Além disso, no modelo proposto, a carteira de interesse foi representada por ativos
de elevado nível de negociação na bolsa brasileira.
figura 4.1: Esquemático sistema de negocição de ativos
4.1 Metodologia de desenvolvimento de um sistema de tomada de
decisão
O modelo proposto para o desenvolvimento de um sistema de tomada de decisão é mostrado na
figura 4.2. Ele foi obtido a partir da observação de todas as etapas necessárias para a criação deste
processo automatizado: entrada de parâmetros, considerações sobre a série temporal utilizada,
etc. descrito em [1] e foi esquematizado conforme mostrado em 4.2. Nas seções subseqüentes
serão descritas mais detalhadamente as considerações relevantes para a criação do sistema final de
tomada de decisão.
14
figura 4.2: Esquematização do modelo para desenvolvimento sistema de tomada de decisão de [1]
4.1.1 Descrição do sistema proposto
4.1.1.1 Política de tomada de decisões
No entendimento da política de tomada de decisões é fundamental situar primeiramente dois
parâmetros temporais sempre presentes nesta análise: curto prazo e longo prazo. No presente
estudo, os últimos 20 dias de negociação de um determinado ativo na bolsa de valores serão con-
siderados representantes do curto prazo, enquanto que os últimos 300 dias de operação anteriores
ao período que está sendo analisado serão considerados representantes do comportamento de longo
prazo. Assim, por hipótese, levantou-se a possibilidade de que as informações de curto prazo
relacionadas a ativos da bolsa de valores, quando confrontadas com informações de longo prazo,
podem gerar indicadores capazes de dizer se algum posicionamento em determinado mercado é
vantajoso ou não. Este fato motivou o desenvolvimento da proposta que será mostrada ao longo
deste capítulo. Considere um sistema para tomada de decisão com as características mostradas na
figura 4.3.
Onde, na figura 4.3, a posição sobre o eixo é determinada pela média geométrica de curto prazo
figura 4.3: Lógica de decisão
da ação µc. A média geométrica dos dados de curto prazo é tomada como a média geométrica
curta utilizada na análise. A razão de se utilizar médias geométricas como medida de posição
15
central decorre da escolha de trabalhar com séries de variação percentual, conforme detalhamento
que será apresentado na seção 4.1.2. De forma análoga, a média geométrica dos dados de longo
prazo é considerada a média geométrica longa do sistema. E ainda, µL representa a média geo-
métrica de longo prazo, σLrepresenta o desvio padrão de longo prazo para a variação diário , FC
representa o fator de compra, FZ1 o fator de zeramento 1, FZ2 o fator de zeramento 2 e FV o fator
de venda. Estes parâmetros do sistema determinam o efeito de σL nas faixas de decisão do sistema.
A região dita subvalorizada neste sistema tem como conseqüência a geração de um sinal de
compra. Isto acontece se a média geométrica de curto prazo é inferior a µL − FCσL. Por sua
vez, a região denominada "carregamento compra"tem como conseqüência a geração de um sinal
de compra se a decisão anterior tiver sido de compra e se houver sinal neutro em todos os demais
casos. Isto acontece se a média geométrica de curto prazo é superior a µL − FCσL, mas inferior
a µL − FZ1σL. A região neutra tem como conseqüência a geração de um sinal de zeramento de
posições. Isto acontece se a média geométrica de curto prazo é superior a µL − FZ1σL , mas
inferior a µL + FZ2σL. E ainda, a região "carregamento venda"tem como conseqüência a geração
de um sinal de venda se a decisão anterior tiver sido de venda e se houver sinal neutro em todos
os demais casos. Isto acontece se a média geométrica de curto prazo é superior a µL + FZ2σL ,
mas inferior a µL + FV σL. Por fim, a região supervalorizada tem como conseqüência a geração de
um sinal de venda, quando a média geométrica de curto prazo é superior a µL + FV σL.
4.1.1.2 Parâmetros de simulação
Como entradas do sistema de tomada de decisões, há os parâmetros do simulador, além da
própria série temporal do ativo considerado. O intervalo de simulação escolhido para a análise dos
parâmetros FC, FZ1, FZ2 e FV foram aqueles que respeitam as condições 4.1 e 4.2, mostradas
abaixo. Esses parâmetros foram incrementados a partir de 0 em 0.05 enquanto essas condições
foram atendidas, o que representa uma resolução de 0.05 para os parâmetros.
0 ≤ FC ≤ FZ1 ≤ 2 (4.1)
0 ≤ FZ2 ≤ FV ≤ 2 (4.2)
O programa criado para a implementação dessa escolha de parâmetros foi desenvolvido no
MATLAB. A quantidade de períodos para simulação foi de 800 dias e para validação deste sistema
de tomada de decisão 140 dias. Nesta simulação, a análise dos resultados obtidos era feita a cada
5 dias, havendo, portanto, reavaliação do cenário para a tomada de decisões a cada semana. No
período de 5 dias entre cada reavaliação, a última decisão do sistema era mantida.
4.1.2 Séries temporais carteira de interesse
Para representar a carteira de interesse na simulação do modelo proposto para o sistema de
negociação de ativos financeiros foram escolhidos aleatoriamente alguns dos ativos mais negociados
na bolsa brasileira, sendo estes: vale5, bbdc4, tnlp4, lame4 e netc4. A série temporal utilizada
16
foi o preço de fechamento dos ativos em bolsa. O preço de fechamento é uma referência importante,
pois é normalmente a cotação fechada com maior volume financeiro do dia.
Na utilização dos dados de interesse da carteira é necessário separar a série histórica em dois
segmentos, conforme o modelo mostrado na figura 4.10 prevê. Essa separação é feita em 2 catego-
rias: dados para modelagem e os dados separados para a validação, conforme esquema da figura
4.4. Os dados representantes da série temporal de cada ativo para a modelagem foram obtidos a
figura 4.4: Divisão dados históricos
partir de simulações tendo como base os últimos 800 dias antecedentes a 30 de dezembro de 2008.
Vale lembrar, no entanto, que o longo prazo considerado na presente análise equivale aos últimos
300 dias de operação anteriores ao período que está sendo analisado. Assim, para a obtenção das
séries temporais a serem utilizadas neste modelamento foram necessários os preços de fechamento
dos últimos 1100 dias úteis anteriores a 30 de dezembro de 2008. A figura 4.5 mostra um exemplo
de série temporal utilizada no modelo proposto.
Por sua vez, a simulação utilizada na parte de validação do sistema final, que avaliou o seu
comportamento em 140 dias (28 semanas), utilizou os dados indicados no intervalo "simulação
efetiva"da figura 4.6, que também considerou os 300 preços de fechamento anteriores a 30 de
dezembro de 2008.
0 100 200 300 400 500 600 700 800 900 1000 11000
10
20
30
40
50
60Gráfico serie temporal de preços de vale5 modelagem
Tempo(dias uteis) com último dia 28/12/2008
Pre
ço
figura 4.5: Série temporal vale5 modelagem
Para maior adequação dos dados da série ao sistema proposto, essa série temporal de preços de
fechamento foi transformada antes da sua aplicação na série de variação percentual diária. Como
ilustração, considere a série temporal de preços de fechamento do ativo negociado pelo código
17
0 50 100 150 200 250 300 350 400 45020
25
30
35
40
45
50
55
60Gráfico serie temporal de preços de vale5 validação
Tempo(dias uteis) com inicio 300 dias anteriores a 28/12/2008
Pre
ço
Simulação efetiva
figura 4.6: Série temporal vale5 validação
vale5 no período entre 02/01/2004 e 28/12/2008, mostrada na figura 4.7.
0 200 400 600 800 1000 12000
10
20
30
40
50
60Gráfico serie temporal de preços de vale5
Tempo(dias uteis) de 02/01/2004 a 28/12/2008
Pre
ço
figura 4.7: Série temporal financeira a ser analisada nesse exemplo
Sendo Pk o preço de fechamento do dia k, é possível definir a função variação percentual diária
(Rk) conforme a equação (4.3) ou definirmos Pk em função de Rk pela relação (4.4).
Rk =Pk − P(k−1)
P(k−1)100% (4.3)
Pk = P(k−1)(1 +Rk
100) (4.4)
Aplicando (4.3) no exemplo da série de preço de fechamento (Pk) do ativo vale5 de 02/01/2004
a 28/12/2008 apresentado na figura 4.7 , é apresentado o gráfico de variação percentual da série
(Rk) na figura 4.8.
Considerando as informações do gráfico apresentado na figura 4.8 para os primeiros 300 dias
da série anteriormente apresentada, é obtido o gráfico 4.9. Nela fica evidenciada a necessidade dos
últimos 300 dias para cálculo das informações de longo prazo.
18
0 200 400 600 800 1000 1200−20
−15
−10
−5
0
5
10
15Gráfico variação percentual diaria dos preços de vale5
Tempo(dias uteis) de 03/01/2004 a 28/12/2008
varia
ção
perc
entu
al d
iária
figura 4.8: Variação percentual diária vale5
20 40 60 80 100 120 140 160 180 200−8
−6
−4
−2
0
2
4
6
8Gráfico variação percentual diária dos preços de vale5 para os 300 primeiros a partir de 03/01/2004
Tempo(dias uteis) a partir de 03/01/2004
Var
iaçã
o pe
rcen
tual
diá
ria
Dados curto prazo (últimos 20 periodos)
Dados longo prazo(últimos 300 periodos)
figura 4.9: Definição dos dados necessários para o sistema
4.1.3 Filtragem dos resultados
A obtenção dos parâmetros do simulador foi possível a partir de simulações feitas utilizando as
séries temporais da carteira de interesses. Devido ao grande número de combinações possíveis entre
os parâmetros FC, FZ1, FZ2 e FV o resultado das simulações destas diferentes combinações foi
filtrado em três etapas. A primeira etapa consistiu na separação dos resultados que apresentaram
um retorno médio por operação superior a 0.2 % dos demais resultados. Os resultados que apresen-
taram este retorno médio foram promovidos para outra fase de seleção. Além disso, combinações
de parâmetros que geraram menos que 20 sinais de compra no período simulado foram eliminados.
Esta decisão foi tomada, pois se considerou que menos do que 20 sinais de compra em 800 dias
(160 semanas) de simulação possuem pouca significância estatística para a análise desejada.
A segunda etapa da filtragem consistiu na escolha de um conjunto de parâmetros para cada
número de operações. Esta escolha foi feita a partir do maior elemento resultante da ordenação
dessas seqüências de parâmetros obtidos de acordo com os seguintes critérios: maior rentabilidade
por operação e maior razão retorno por operação por desvio padrão dos retornos por operação.
Em caso de empate desses critérios, foram priorizados os maiores parâmetros.
Por fim, a terceira etapa consistiu na eliminação daqueles conjuntos de parâmetros que apre-
19
sentassem redução na rentabilidade média por operação concomitantemente a redução no número
de operações.
Com base no que foi apresentado até o momento, é possível realizar maior detalhamento do
sistema de tomada de decisão proposto nesse trabalho, conforme esquema apresentado na figura
4.10.
figura 4.10: Proposta de modelo para desenvolvido para sistema de tomada de decisão
4.2 Resultados da simulação
Primeiramente serão definidos alguns parãmetros de saída da simulação e posteriormente apre-
sentado os resultados da simulação propriamente dita.
4.2.1 Parâmetros de saída da simulação
Sendo Pcompra o preço em que o ativo foi comprado, Pvenda o preço em que o ativo foi vendido em
uma dada operação, considere a relação (4.5) para o calculo da rentabilidade (retorno) percentual
20
por operação ki, desconsiderando-se qualquer custo de negociação dos ativos. [13]
ki =Pvenda − Pcompra
Pcompra(4.5)
O retorno médio percentual kmedio para um número n de operações no período cuja rentabilidade
acumulada é kacumulado é definido pela relação (4.6) [13].
kmedio = n√
1 + kacumulado − 1 (4.6)
4.2.2 Simulação e resultados
A partir da utilização do método proposto para a determinação dos parâmetros FC, FZ1, FZ2
e FV de um sistema de tomada de decisões, foram realizadas as simulações deste sistema para
5 ativos: Vale (vale5), Bradesco (bbdc4), Telemar (tnlp4), Lojas Americanas (lame4) e Net
(netc4). Os resultados fornecidos pelo programa computacional desenvolvido neste estudo estão
mostrados nas tabelas 4.1, 4.2, 4.3, 4.4 e 4.5. É importante ressaltar que o objetivo da filtragem
estabelecida na seção 4.1.3 não foi determinar um único conjunto de parâmetros, já que esta escolha
deverá ser feita pelo operador da ação a depender de seu nivel de risco. Se este for um cliente
conservador, por exemplo, será mais interessante optar por um menor número de operações, mesmo
que seu retorno total seja menor do que àquele que optou por operações mais freqüentes. Note que,
dentre os resultados, são apresentados os números de operações (compra ou venda) sinalizados pelo
programa, o retorno total obtido nos anos simulados, a rentabilidade média das operações oriunda
da estratégia adotada, além das rentabilidades médias e totais do ativo para estrátegia de comprar
e segurar. Estes dois últimos parâmetros consistem nos valores de rentabilidade fornecidos pelo
mercado para aqueles que mantiveram ao longo dos anos analisados a ação comprada.
Tabela 4.1: Resultados parâmetros estratégia proposta vale5
Operações FC FZ1 FV FZ2 retorno total rentabilidade média
54 0.45 0.00 0.20 0.00 76.34% 1.06%
38 0.45 0.00 0.30 0.00 51.39% 1.10%
37 0.45 0.00 0.20 0.20 61.89% 1.31%
26 0.45 0.00 0.30 0.20 62.00% 1.87%
19 0.45 0.00 0.40 0.00 49.43% 2.14%
18 0.45 0.00 0.40 0.20 61.64% 2.70%
17 0.45 0.00 0.40 0.30 58.02% 2.73%
16 0.45 0.00 0.40 0.40 70.63% 3.40%
13 0.45 0.00 3.00 3.00 93.85% 5.22%
9 0.45 0.10 3.00 3.00 62.91% 5.57%
6 0.50 0.10 3.00 3.00 44.01% 6.27%
rentabilidade média referência 0.20%
rentabilidade total referência 37.78%
21
Tabela 4.2: Resultados parâmetros estratégia proposta bbdc4
Operações FC FZ1 FV FZ2 retorno total rentabilidade média
36 0.40 0.10 0.20 0.10 47.12% 1.08%
34 0.40 0.20 0.20 0.10 47.03% 1.14%
32 0.40 0.10 0.20 0.20 49.17% 1.26%
30 0.40 0.20 0.20 0.20 49.08% 1.34%
27 0.40 0.10 0.30 0.00 63.83% 1.85%
25 0.40 0.20 0.30 0.00 63.74% 1.99%
21 0.40 0.10 0.30 0.10 71.66% 2.61%
19 0.40 0.10 0.30 0.30 83.53% 3.25%
17 0.40 0.20 0.30 0.30 83.43% 3.63%
13 0.50 0.10 0.30 0.30 71.04% 4.21%
10 0.60 0.20 0.30 0.10 60.52% 4.85%
9 0.50 0.10 3.00 3.00 54.79% 4.97%
8 0.60 0.20 0.30 0.30 71.61% 6.98%
rentabilidade media referencia 0.32%
rentabilidade total referência 65.92%
4.3 Resultados da validação do modelo
Os resultados obtidos na seção 4.2 não são suficientes para validar o modelo proposto. Isso
porque estamos tratando um grande grupo de rentabilidades possíveis, sendo esperadas renta-
bilidades acima e abaixo da média do ativo. E ainda, no caso houve uma seleção de parâmetros
pós-simulação, sendo estes os melhores dentre aqueles obtidos. Considerar somente os melhores pa-
râmetros não fornecerá nenhuma garantia de que seu funcionamento continuará sendo o melhor em
outros cenários. Assim, nesta seção os parâmetros do simulador foram escolhidos previamente com
base em um dos parâmetros obtidos na seção 4.2 e então somente posteriormente seus resultados
foram analisados.
Para validação do modelo desenvolvido foi escolhida uma combinação dos parâmetros FC,
FZ1, FZ2 e FV e em seguida foi detalhado o seu comportamento em 140 dias (28 semanas) de
operação. Foram então calculadas as médias de curto e longo prazo da ação, para em seguida obter
a sinalização fornecida pelo modelo (compra ou venda). A verificação da validade da sinalização
pode ser feita a partir da conferência dos dados das regiões definidas no modelo. Como parâmetros
desta validação há ainda a rentabilidade da série analisada e a rentabilidade acumulada.
Observe que a rentabilidade acumulada possui valor inicial igual a 1 (100% do valor investido
inicialmente). A partir deste valor são tomadas as ações sinalizadas pelo modelo e este valor inicial
pode ser aumentado, diminuído ou mantido dependendo do tipo de ação adotada. Por exemplo, se
o modelo sinalizar um estado neutro (0), o valor da rentabilidade será mantido o mesmo. Por sua
vez, quando o modelo sinalizar um sinal de compra (1) o valor da rentabilidade acumulada será
aumentado no percentual correspondente à rentabilidade da série naquele momento. Já quando for
sinalizado um sinal de venda (-1), o valor da rentabilidade acumulada será diminuído no percentual
22
Tabela 4.3: Resultados parâmetros estratégia proposta tnlp4
Operações FC FZ1 FV FZ2 retorno total rentabilidade média
59 0.20 0.00 0.30 0.30 68.41% 0.89%
37 0.25 0.00 0.30 0.30 57.96% 1.24%
33 0.30 0.05 0.30 0.30 50.58% 1.25%
24 0.30 0.25 0.30 0.30 42.19% 1.48%
23 0.30 0.30 0.30 0.30 42.03% 1.54%
22 0.35 0.25 0.30 0.30 40.75% 1.57%
21 0.35 0.35 0.30 0.30 40.59% 1.64%
13 1.20 1.20 0.30 0.30 30.07% 2.04%
10 0.35 0.35 0.50 0.10 22.76% 2.07%
rentabilidade media referencia 0.17%
rentabilidade total referência 30.74%
Tabela 4.4: Resultados parâmetros estratégia proposta lame4
Operações FC FZ1 FV FZ2 retorno total rentabilidade média
45 0.40 0.00 0.20 0.10 96.42% 1.51%
31 0.45 0.00 0.20 0.20 60.32% 1.53%
30 0.45 0.45 0.20 0.10 63.20% 1.65%
28 0.55 0.15 0.20 0.10 64.37% 1.79%
19 0.40 0.00 3.00 3.00 56.12% 2.37%
10 0.45 0.00 3.00 3.00 43.04% 3.64%
rentabilidade media referencia 0.27%
rentabilidade total referência 53.99%
correspondente à rentabilidade da série naquele momento.
Os resultados obtidos nesta validação podem ser visto passo a passo nas tabelas 4.6 e 4.7. A
primeira tabela foi criada para o ativo da tnlp4, com FC=0.2, FZ1=0, FZ2=0.3 e FV=0.3, e a
segunda tabela para um ativo da netc4, com FC=0.05, FZ1= 0, FZ2=0.2 e FV=0.2.
A Tabela 4.8 resume os dados da validação de 3 ativos: netc4, tnlp4 e vale5. Por sua vez, a
Tabela 4.9 mostra os coeficientes de correlação cuja fórmula foi apresentada na equação 2.3 para
os ativos utilizados no processo de validação. Podemos observar na tabela que entre os ativos mais
negociados na bovespa a correlação linear entre os preços é relativamente forte.
A validação do ativo vale5 foi feita da mesma forma que os outros ativos, mas sua tabela
de resultados passo a passo para validação foi ocultada. Podemos observar que os parâmetros
escolhidos previamente obtiveram uma rentabilidade média satisfatória nos momentos em que o
posicionamento foi recomendado, concluindo assim que embora testes de validação mais amplos
necessitem ser realizados, os resultados preliminares são satisfatórios.
23
Tabela 4.5: Resultados parâmetros estratégia proposta netc4
Operações FC FZ1 FV FZ2 retorno total rentabilidade média
71 0.05 0.00 0.20 0.20 98.01% 0.97%
68 0.05 0.05 0.20 0.20 94.33% 0.98%
62 0.10 0.00 0.20 0.20 89.36% 1.04%
57 0.15 0.00 0.20 0.20 116.43% 1.36%
40 0.15 0.15 0.20 0.20 73.36% 1.38%
32 0.25 0.10 0.20 0.20 57.17% 1.42%
30 0.25 0.05 0.40 0.00 66.28% 1.71%
26 0.25 0.15 0.20 0.20 63.27% 1.90%
22 0.25 0.15 0.40 0.00 52.15% 1.93%
13 0.45 0.05 0.20 0.20 34.33% 2.30%
12 0.35 0.20 0.20 0.20 37.42% 2.68%
11 0.35 0.25 0.20 0.20 36.25% 2.85%
10 0.40 0.20 0.20 0.20 44.52% 3.75%
9 0.40 0.40 0.20 0.20 43.29% 4.08%
8 0.45 0.45 0.20 0.20 28.53% 3.19%
7 0.35 0.25 0.40 0.00 26.97% 3.47%
6 0.40 0.20 0.40 0.00 34.67% 5.09%
5 0.40 0.40 0.40 0.00 33.53% 5.95%
rentabilidade media referencia 0.10%
rentabilidade total referência 16.55%
24
Tabela 4.6: Validação 140 dias tnlp4
FC=0.2 FV=0.3
FZ1=0 FZ2=0.3
MediaC MediaL DesvioL Decisao RentS Rentacum
-0.5587 -0.0328 3.7057 0 -8.2109 1
-1.0344 -0.0735 3.7208 1 -7.1114 1
-1.2856 -0.0581 3.7221 1 0 1
-0.5929 -0.0124 3.7238 1 6.0587 1.0606
-0.2737 -0.0458 3.7309 1 -4.6837 1.0109
0.7851 0.0257 3.7636 0 14.4969 1.1575
0.97 0.0143 3.761 0 6.6699 1.1575
0.3106 -0.0035 3.771 0 -2.2833 1.1575
0.7766 0.0193 3.7706 0 -3.2319 1.1575
0.4418 0.0279 3.779 0 4.1311 1.1575
0.6041 0.0732 3.8076 0 6.8253 1.1575
0.2039 -0.0336 3.6804 0 -0.144 1.1575
0.8789 0.0316 3.673 0 7.3203 1.1575
0.5342 0.0039 3.6497 0 -0.7292 1.1575
0.2862 -0.0296 3.639 0 -1.7031 1.1575
0.4534 0.015 3.624 0 5.881 1.1575
0.0237 0.0064 3.6014 0 1.9846 1.1575
0.0559 -0.0082 3.6055 0 -1.2941 1.1575
0.167 -0.0063 3.5866 0 0.9936 1.1575
0.1713 0.0156 3.5517 0 3.4791 1.1575
-0.0535 0.016 3.5052 0 -1.6679 1.1575
-0.126 -0.0167 3.4984 0 -4.3375 1.1575
-0.5229 -0.0747 3.4832 0 -6.9274 1.1575
-0.5997 -0.0438 3.4706 0 1.6876 1.1575
-0.3468 -0.0201 3.4632 0 2.9954 1.1575
-0.4026 -0.0341 3.4709 0 -3.568 1.1575
0.0673 -0.0083 3.4215 0 -0.6099 1.1575
-0.1215 -0.0197 3.419 0 -1.6165 1.1575
25
Tabela 4.7: Validação 140 dias netc4
FC=0.05 FV=0.2
FZ1=0 FZ2=0.2
MediaC MediaL DesvioL Decisao RentS Rentacum
0.3929 -0.2171 4.054 0 9.7261 1
0.1209 -0.2157 4.1088 0 1.027 1
0.1629 -0.2147 4.1105 0 6.6894 1
0.5976 -0.1858 4.111 0 2.561 1
-0.069 -0.2118 4.114 0 -7.7907 1
0.551 -0.1382 4.0983 0 4.3248 1
0.1384 -0.1765 4.0689 0 3.9018 1
-0.278 -0.1679 4.0476 0 -1.1557 1
0.1596 -0.116 4.0248 0 -1.4874 1
0.3234 -0.1066 3.9959 0 4.2187 1
0.6556 -0.0579 3.9885 0 4.2646 1
0.4362 -0.1097 3.9864 0 -0.8947 1
0.6976 -0.0634 3.979 0 1.1216 1
0.0029 -0.0327 3.9394 0 -5.5333 1
-0.0485 -0.0782 3.9118 0 -1.4806 1
0.2476 -0.0617 3.9193 0 8.7962 1
-0.0595 -0.048 3.9243 0 0.4306 1
0.327 -0.0154 3.9281 0 -1.4936 1
0.7016 -0.0238 3.9394 0 4.753 1
0.4446 0.0162 3.9098 0 -2.0877 1
0.0411 0.0195 3.8917 0 -1.1938 1
0.158 -0.0147 3.8647 0 2.3224 1
-0.3263 -0.0405 3.8489 1 -2.2213 1
-0.0635 -0.0481 3.8371 1 2.1065 1.0211
0.4815 0.001 3.7897 0 3.7242 1.0591
0.2951 -0.0226 3.7874 0 2.3948 1.0591
0.623 -0.0475 3.7456 0 1.1832 1.0591
0.0995 -0.0659 3.7426 0 -4.308 1.0591
26
Tabela 4.8: Quadro resumo validação ativos (28 semanas)
sistema proposto
ativo rentabilidade acumulada rentabilidade semanal (ativo) número operações
netc4 5.91% 2.91% 2
tnlp4 15.75% 3.72% 4
vale5 11.97% 2.29% 5
Estratégia compra e segurar
ativo rentabilidade acumulada rentabilidade média semanal número operações
netc4 42.43% 1.27% 28
tnlp4 6.57% 0.23% 28
vale5 35.71% 1.10% 28
Tabela 4.9: Análise dos coeficientes de correlação dos ativos utilizados no testeCoeficiente de correlação (ativo A, Ativo B)
ativo B
Ativo A netc4 petr4 vale5
netc4 1 0.6691 0.7717
petr4 0.6691 1 0.9513
vale5 0.7717 0.9513 1
27
Capítulo 5
Modelagem de tendências em séries
temporais
Uma tendência pode ser definida como um comportamento previsível, e classificada em dois
grupos [2]: tendência estocástica e tendência determinística. As tendências estocásticas são aquelas
que ocorrem por acaso, devido à natureza da variável aleatória envolvida no processo. Por sua
vez, tendências determinísticas são aquelas cuja caracterização é suficiente através de determinado
modelo, juntamente com a consideração da presença de ruído branco. Conforme visto na seção
2.1, um modelo determinístico deve ser adotado com cautela.
Para uma série temporal Yt qualquer, é possível modelar a presença de tendências determi-
nísticas a partir da separação de sua componente determinística µt e estocástica Xt [2], conforme
relação dada na equação 5.1. A componente determinística deve ser somada com um termo esto-
cástico puro para representação do comportamento da série.
Yt = µt + Xt (5.1)
Onde:
µt é o termo determinístico.
Xt o termo estocástico puro.
5.1 Tendência sazonal
Uma tendência sazonal é aquela que se repete em períodos espaçados no tempo. Seu estudo
pode ser feito através da construção de um modelo diferente para cada ciclo de dados. Este modelo
pode ser utilizado, por exemplo, na modelagem da mudança de temperatura ao longo dos anos.
Veja:
µt =
β1, para_t = 1, 13, ...
β2, para_t = 2, 14, ...
...
β12, para_t = 12, 24, ...
29
5.1.1 Sazonalidade com a função de autocorrelação
Podemos verificar a presença de sazonalidade em uma série temporal através do estudo da
função de autocorrelação e visualmente pelo gráfico do correlograma. O correlograma é um gráfico
correlação versus atraso de propagação [2], cujo pontos de máximos locais do gráfico podem ajudar
na identificação das freqüências de acontecimento dos eventos sazonais.
Para exemplificar como o processo de identificação do período de ciclos sazonais é realizado consi-
dere uma função discreta Z definida conforme equação 5.2.
Z(t) = sen(πt
6) + et (5.2)
et ∼ N(0, 0.2) (5.3)
Seja Z calculado de t igual a 1 a t igual a 120. Temos então uma possível série temporal cujo
gráfico preço versus tempo é mostrado na figura 5.1 e seu gráfico correlograma na figura 5.2.
0 20 40 60 80 100 120−1.5
−1
−0.5
0
0.5
1
1.5Seno com ruído com sigma=0.2
Tempo
Pre
ço
figura 5.1: Função seno amostrada adicionada de ruído
0 2 4 6 8 10 12 14 16 18 20−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Atraso
Aut
ocor
rela
ção
Gráfico função auto correlação seno com ruído
figura 5.2: Correlagrama da função seno amostrada acrescida de ruído
A partir do gráfico da figura 5.2 é possível notar que mesmo na presença de ruídos o atraso k=12
é identificado como tendo um coeficiente de correlação próximo a 1, o que implica numa correlação
positiva forte. O atraso apontado multiplicado pela freqüência de amostragem é justamente o
30
período de oscilação da senóide gerada (T= 12 π/2− > 2π). Tal exemplo exemplifica o fato de que
os picos da função de autocorrelação podem ser utilizados para identificar freqüências de oscilação
da série.
5.1.2 Sazonalidade com a função de autocorrelação numa série financeira
Para aplicação da sazonalidade com a função de autocorrelação em uma série financeira, buscou-
se relações de sazonalidade no retorno diário de determinados ativos. Estas relações foram explo-
radas a partir da base de dados dos preços destes ativos nos períodos entre 2004 e 2008. Os ativos
escolhidos, representados pelo seu código de mercado, foram: petr4, vale5, bbdc4, csna3, itau4
e vale3. As figuras 5.3, 5.4, 5.5, 5.6, 5.7 e 5.8 mostram as funções autocorrelação para o conjunto
de séries financeiras reais escolhidas.
0 2 4 6 8 10 12 14 16 18 20−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Atraso
Aut
ocor
rela
ção
amos
trad
a
Gráfico correlação ativo petr4
figura 5.3: ACF petr4
0 2 4 6 8 10 12 14 16 18 20−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Atraso
Aut
ocor
rela
ção
amos
trad
a
Gráfico correlação ativo vale5
figura 5.4: ACF vale5
Nos correlogramas mostrados em: 5.3, 5.4, 5.5, 5.6, 5.7 e 5.8, as duas linha horizontais repre-
sentam 2σ dos erros associados a estimação da função de autocorrelação. Nesse caso, considerando
uma variável com distribuição gaussiana, era esperado que em 95% dos casos a correlação para um
dado atraso fosse inferior ao valor das retas horizontais de 2σ, isto é, em apenas um caso a cada
vinte amostras tal comportamento não seria esperado. No entanto, observando os correlogramas
31
0 2 4 6 8 10 12 14 16 18 20−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Aut
ocor
rela
ção
amos
trad
a
Gráfico correlação ativo bbdc4
figura 5.5: ACF bbdc4
0 2 4 6 8 10 12 14 16 18 20−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Atraso
Aut
ocor
rela
ção
amos
trad
a
Gráfico correlação ativo csna3
figura 5.6: ACF csna3
das séries financeiras estudadas, vemos que tal evento ocorre numa freqüência três vezes maior
daquela esperada. Tal fato leva a hipótese de existência de uma componente determinística nas
séries financeiras analisadas.
5.2 Modelos probabilísticos
Na análise de séries temporais, é importante que seja feito o estudo de modelos probabilísticos,
já que estes caracterizam o comportamento de um sistema baseado em variáveis aleatórias. Este
estudo será feito a seguir, com a apresentação de alguns tópicos pertinentes ao presente assunto.
5.2.1 Ruído branco
Seja Zt uma seqüência de uma variável aleatória independente, identicamente distribuída, com
média zero e variância conhecida σ2. Então Zt é dita uma seqüência de ruído branco. Uma condição
mais fraca, porém aceita em muitos casos, é que Zt seja apenas incorrelata e não necessariamente
independente [14].
32
0 2 4 6 8 10 12 14 16 18 20−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Atraso
Aut
ocor
rela
ção
amos
trad
a
Gráfico correlação ativo itau4
figura 5.7: ACF itau4
0 2 4 6 8 10 12 14 16 18 20−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Atraso
Aut
ocor
rela
ção
amos
trad
a
Gráfico correlação ativo vale3
figura 5.8: ACF vale3
5.2.2 Processo linear geral
Um processo linear geral {Yt} é aquele que pode ser representado como uma soma ponderada
linear de ruídos brancos presentes e passados. [2], segundo a equação 5.4
Yt = Zt + Ψ1Z(t−1) + Ψ2Z(t−2) + ... (5.4)
O peso de cada componente passada de ruído branco é representado por Ψt.
5.2.3 Modelo média móvel
Quando no processo linear geral apenas um número finito de termos é não nulo temos: [2]
Yt = et + ϕ1e(t−1) + ... + ϕ2e(t−q) (5.5)
33
Este modelo é denominado modelo de média móvel de ordem q , com a simbologia usual de:
MA(q) [14].
Seja Yt um modelo MA(q) de acordo com as definições dessa seção então:
E(Y t) = 0
var(Yt) = (1 + ϕ21 + ... + ϕ2
q)σ2
cov(Yt, Yt+k) = 0, para|k| > q
cov(Yt, Yt+k) = σ2
q−|k|∑
i=0
σσ(i+|k|)para|k| ≤ q (5.6)
A prova de tais preposições esta disponível em [14]. Se uma constante µ for adicionado como
Y(t)=µ+ϕ∗B teremos E(Yt)=µ, mas a função covariância e correlação não se alterarão. A função
de autocorrelação [2], já definida anteriormente, pode ser representada no estudo das médias móveis
como sendo :
ρk = Corr(Yt, Yt+k) =Cov(Yt, Yt+k)
√
var(Yt)var(Yt+k)(5.7)
Note que essa função depende somente da série temporal atual e de sua série correspondente
atrasada em k períodos. Um fato importante a ser considerado é que a função autocorrelação do
modelo de médias móveis se anula para um atraso maior do que q, já que neste caso não haverá
mais termos definidos para a mesma.
A utilização da função de autocorrelação daí definida pode ser útil, por exemplo, para identificar
os elementos passados que tem maior influência no modelo presente. Isto pode ser feito com o
auxílio do correlograma. Com este gráfico desenhado, é possível escolher aquelas componentes que
apresentam maior significância para o valor presente do modelo e, assim, trabalhar com um número
reduzido de variáveis. As componentes de maior relevância serão representadas pelos elementos de
maior valor em seu eixo y no gráfico.
A função de autocorrelação leva ainda a estacionaridade no modelo de médias móveis. Tal fato
deve-se a não dependência desta função no tempo absoluto, e sim em atrasos.
5.2.3.1 Invertibilidade do modelo
Seja Yt um modelo MA(q) dado por Yt=ϕ(B) ∗ Zt, comB ∗ Zt = Z(t−1) onde:
ϕ(B) = 1 + ϕ ∗ B + ... + ϕ ∗ Bq (5.8)
Então, o seguinte teorema é válido [14]:um modelo MA(q) de Yt é inversível se as raízes da equação
ϕ(B) = 0 se localizam fora do circulo unitário.
5.2.4 Processos auto-regressivo
Processos auto-regressivos (AR) consistem em regressões do próprio processo e são também
chamados de modelo com variável defasada [2]. Matematicamente um processo de ordem p de Yt
34
é aquele que satisfaz a equação 5.9.
Yt = φ1Yt−1 + φ2Yt−2 + ... + φpYt−p + et (5.9)
Sendo assim o valor em t da série Yt é uma combinação linear dos valores anteriores a t, acrescido
de um termo inovativo de natureza aleatória et que incorpora tudo que é novo a série no tempo t
que não pode ser explicado pelos valores passados [2].
5.2.4.1 Características do processo auto-regressivo geral
Considere o modelo auto-regressivo de ordem p descrito pela equação 5.10. O polinômio carac-
terístico para este modelo é definido conforme 5.10 e sua equação característica é definida conforme
5.12.
Yt = φ1Yt−1 + φ2Yt−2 + ... + φpYt−p + et (5.10)
φ(x) = 1 − φ1x − φ2x2 − ... − φpx
p (5.11)
1 − φ1x − φ2x2 − ... − φpx
p = 0 (5.12)
Assumindo et independente dos termos anteriores, uma solução estacionária à equação 5.12 existe
apenas se as p raízes da equação característica possuírem valor absoluto maior que 1. Para as
raízes serem maiores que 1, em módulo, são condições necessárias, mas não suficientes, que as
relações 5.13 e 5.14 sejam atendidas.
φ1 + φ2 + ... + φp < 1 (5.13)
|φ| < 1 (5.14)
Assumindo média zero e existência de estacionaridade, é possível manipular a equação 5.9 para
chegar à relação recursiva 5.15 de ρk que representa o coeficiente de autocorrelação para um
determinado atraso k.
ρk = φ1ρk−1 + φ2ρk−2 + φ3ρk−3 + ... + φpρk−p (5.15)
(5.16)
Substituindo k por k=1, 2, ..., p, chega-se às equações de Yule-Walker 5.17, que para valores numé-
ricos de φ1, φ2, ..., φp podem ser resolvidas, obtendo assim os valores numéricos de ρ1, ρ2, ..., ρp.Com
isso, é possível retornar à relação 5.15 e determinar qualquer ρk
ρ1 = φ1 + φ2ρ1 + φ3ρ2 + ... + φpρp−1
ρ2 = φ1ρ1 + φ2 + φ3ρ1 + ... + φpρp−2
...
ρp = φ1ρp−1 + φ2ρp−2 + φ3ρp−3 + ... + φp (5.17)
35
Multiplicando a equação 5.9 por Yt e calculando a esperança, temos 5.18:
γ0 = φ1γ1 + φ2γ2 + ... + φpγp + σ2e (5.18)
usando a relação ρk = γk/γ0 podemos determinar a variância do modelo por 5.19:
γ0 =σ2
e
1 − φ1ρ1 − φ2ρ2... − φpρp(5.19)
Com isso, temos as relações de variância (5.19) e função de autocorrelação (5.15) para um modelo
auto-recursivo de ordem p.
5.2.4.2 Identificando a ordem de um modelo AR
Na prática, a ordem p de um processo auto-regressivo é desconhecida, devendo ser especificada
empiricamente. Uma das formas utilizadas para isso é através da função de autocorrelação parcial
(FACP).
Considere os seguintes modelos auto-regressivos ordenados de forma crescente a partir da ordem
de seu modelo:
Yt = φ1,1Yt−1 + φ1,2Yt−2 + ... + φ1,pYt−p + e1t (5.20)
Yt = φ2,1Yt−1 + φ2,2Yt−2 + ... + φ2,pYt−p + e2t (5.21)
Yt = φ3,1Yt−1 + φ3,2Yt−2 + ... + φ3,pYt−p + e3t (5.22)
Yt = φ4,1Yt−1 + φ4,2Yt−2 + ... + φ4,pYt−p + e4t (5.23)
φ1,1 é a função(FACP) para atraso igual a 1.
φ2,2é a função(FACP) para atraso igual a 2.
φ3,3é a função(FACP) para atraso igual a 3.
Por definição [15], a função de autocorrelação parcial para atraso igual a 3 mostra a contribuição
do modelo de ordem 3 sobre o modelo de ordem 2. Para a determinação da ordem, basta observar
quando φp,p está suficientemente baixo para o nível de significância desejado.
5.2.5 Processos médias móveis auto-regressivo
Um modelo auto-regressivo de médias móveis ARMA, do inglês - Autoregressive Moving Ave-
rage - combina as idéias do modelo auto-regressivo com o modelo de médias móveis, visando o
modelamento do sistema de uma forma compacta. Assim, o número de parâmetros representativos
do sistema será mantido baixo [15] e seu estudo poderá ser feito mais facilmente. Este modelo
ARMA pode ser representado matematicamente por meio da equação 5.24.
Yt = φ1Yt−1 + φ2Yt−2 + ... + φpYt−p + et − ϕ1e(t−1) − ... − ϕ2e(t−q) (5.24)
E ainda, o modelo ARMA pode ser passado para o espaço de estados conforme a relação dos
coeficientes com as matrizes no espaço de estados mostrado em [2].
36
5.3 Construção de modelos no espaço de estados
Modelos matemáticos no espaço de estados são aqueles que utilizam variáveis de estado para
descrever um sistema por meio de um conjunto de equações diferenciais de primeira ordem. [16]
A representação no espaço de estados no tempo contínuo é dada por [17]:
x = Fx(t) + Gu(t) + Kw(t)
y(t) = Hx(t) + Du(t) + w(t) (5.25)
x(0) = x0
Onde:
x(t) é o vetor de variavéis de estado;
u(t) é o vetor com as variavéis de entrada do sistema;
w(t)é um vetor com as componentes de ruídos brancos das variavéis de estado;
y(t) é o vetor das variavéis de saída do sistema;
x(0) é o estado inicial;
F , G, K, H, D são as matrizes com os coeficientes das matrizes anteriores.
Por sua vez, a representação no espaço de estados no tempo discreto é dada por [18]:
x(kT + T ) = Ax(kT ) + Bu(kT ) + Ke(kT )
y(kT ) = Cx(kT ) + Du(kT ) + w(kT ) (5.26)
x(0) = x0
Onde:
T é o periodo de amostragem do sinal;
x(kT ) é o vetor de variavéis de estado no instante de amostragem kT ;
u(KT ) é o vetor com as variavéis de entrada do sistema no instante de amostragem kT ;
e(kT ) é um vetor com as componentes de ruídos brancos das variavéis de estadono instante de
amostragem kT ;
y(kT ) é o vetor das variavéis de saída do sistema no instante de amostragem kT ;
x(0) é o estado inicial;
A , B, K, C, D são as matrizes com os coeficientes das matrizes anteriores.
5.3.1 Construção de modelos no espaço de estados no MATLAB
O primeiro passo para a construção de modelos no espaço de estados no MATLAB, utilizando
ferramentas gráficas disponíveis, é a importação de dados no System Identification Tool GUI. Para
abrir o GUI, é necessário digitar o seguinte comando no prompt do MATLAB: »ident
Desta forma, a janela da ferramenta será aberta conforme mostra a figura 5.9.
37
figura 5.9: System id tool
Na lista para importação de dados, deve ser selecionado o tipo de dado que se deseja importar.
No presente estudo, foi selecionada uma série no domínio do tempo. É importante que os dados
da série temporal estejam amostrados em intervalos de tempo iguais.
Em seguida é aberta uma janela para definição do formato dos dados que serão importados.
Esta janela com os parâmetros de importação é mostrada na figura 5.10. Para o caso de séries
temporais, a entrada foi definida como ’[]’ e a saída foi designada com o nome da variável que foi
previamente carregada no ambiente de trabalho. No exemplo utilizado, a saída foi chamada de
papel. Em seguida a opção "importar"deve ser selecionada.
figura 5.10: Importando dados
O próximo passo é a escolha do modelo que se deseja construir a partir da série temporal. Aqui,
foi escolhida a construção de um modelo a partir de uma parametrização linear. Na caixa para
modelamento por equações lineares foi escolhido o modelamento em espaço de estados conforme
figura 5.11
Ao se inserir no campo "ordem"o valor 1:10, o gráfico logarítmico dos valores singulares da
matriz de covariância será gerado. Com este gráfico, é possível ver a ordem do modelo que concentra
as informações essenciais, o que é feito a partir dos valores singulares dos modelos de ordem de 1
a 10. No gráfico, pode ser selecionado o retângulo localizado a esquerda da tela, que representa o
ponto de corte para os estados, prestando uma contribuição significativa de entrada/saída. E ainda,
38
figura 5.11: Modelamento no espaço de estados
a presença de uma barra em vermelho sobre a opção indica que o software MATLAB recomenda
tal escolha. No exemplo aqui descrito, o MATLAB sugeriu um modelo de ordem seis, conforme é
mostrado na 5.12. Depois de escolhida a ordem do modelo, deve ser selecionada a opção "estimar",
e assim, o modelo será gerado conforme as especificações.
figura 5.12: Valores singulares para escolha da ordem do modelo
É possível analisar a eficiência do modelo gerado observando o seu gráfico de saída. Para obter
este gráfico, basta clicar em um ou mais modelos cuja análise seja desejada e em seguida selecionar
a opção "Model output". É esperado um gráfico da forma da 5.13. Esse gráfico permite avaliar
a qualidade do modelo à medida que compara os valores estimados com os valores efetivamente
ocorridos no passado. Estatisticamente, ele oferece o indicador R2, que representa o percentual das
variações que são explicadas pelo modelo. Quanto mais próximo de 100 for esse número, melhor
serão os resultados fornecidos pelo MATLAB.
Alternativamente à construção de um modelo no espaço de estados a partir de interface gráfica,
pode ser utilizada a função "pem"no desenvolvimento de programas no MATLAB. Os parâmetros
de entrada dessa função devem ser fornecidos de acordo com o interesse da aplicação desejada.
39
figura 5.13: Validação do modelo
5.3.2 Validação de modelos de séries temporais de ativos financeiros
Uma parte fundamental da modelagem é estabelecer parâmetros que garantam que ela repre-
senta uma modelagem com elevado grau de confiança. Dada uma série tempora Yt é possível
separar essa série em dois componentes conforme visto na equação 5.1. Em geral os modelos para
série temporal são razoáveis quando a componente Xt representa um ruído branco ou possui distri-
buição normal de probabilidade [2]. Nesta seção iremos comparar alguns indicadores de validade
para um modelo de preços de fechamento de ativos financeiros.
O modelo passeio aleatório descrito em 2.2.6 é a primeira sugestão para essa utilização em
ativos financeiros. Uma das maneiras de encarar essa situação é que o preço do dia é dado pelo
preço do dia anterior adicionado de uma variação percentual do tipo gaussiana com média e
variância conhecidas, conforme é mostrado na equação 2.10. Para investigar tal presunção, vamos
utilizar a série de fechamento em pontos diários do índice Ibovespa nos períodos entre 18/12/1991
e 5/12/2008. A figura 5.14 mostra o comportamento geral do índice nesses 17 anos.
0 500 1000 1500 2000 2500 3000 3500 40000
1
2
3
4
5
6
7
8x 10
4
Tempo em dias
Pon
tos
no fe
cham
ento
índi
ce Ib
oves
pa
Fechamento em pontos diários do indice Ibovespa de 18/12/1991 ate 5/12/2008
figura 5.14: Fechamento em pontos diários do indice Ibovespa de 18/12/1991 ate 5/12/2008
Da mesma forma que o desenvolvimento apresentado no capítulo 4, para maior adequação dos
dados da série à presente análise, houve a transformação dessa série de fechamento numa série de
40
variação percentual diária.
O histograma das variações percentuais mostrado na figura 5.15 evidencia o fato que as variações
percentuais diárias do índice ibovespa aparentam ter uma distribuição normal. Considerando que
no modelo passeio aleatório a variação dos preços é composta unicamente pela componente Xt,
essa distribuição normal valida o uso desse modelo nas séries temporais estudadas.
−15 −10 −5 0 5 10 150
10
20
30
40
50
60
70
80
90
100histograma variação das cotações Ibovespa de 18/12/1991 ate 5/12/2008
variação percentual
Fre
quên
cia
rela
tiva
figura 5.15: Histograma indice Ibovespa da variação percentual diária de 18/12/1991 ate 5/12/2008
Para essa mesma série de dados, a partir de sua análise, pode ser determinado que sua média
é igual a 0.1170 e o desvio padrão é igual a 2.8416. Uma análise mais detalhada da condição de
normalidade pode ser feita com o gráfico quantiles-quantiles (QQ), que é um gráfico específico do
tipo dispersão 2.1.2. O gráfico quantiles da amostra versus quantiles teórico deve se aproximar
da reta prevista teoricamente para que as duas amostras sejam consideradas da mesma família.
Portanto, quanto mais próximo o gráfico resultante estiver dessa reta, mais próxima da condição
de normalidade a amostra estará. O gráfico QQ para a série em análise é mostrado na figura 5.16
−4 −3 −2 −1 0 1 2 3 4−20
−10
0
10
20
30
40
Quantiles esperados para distribuição normal
Qua
ntile
s ob
tidos
na
amos
tra
Gráfico QQ série variação percentual Ibovespa
figura 5.16: Gráfico QQ série variação percentual Ibovespa
Podemos observar que a amostra não se comporta tão bem para os pontos de variação diária
mais distantes da média, mesmo para regiões em que o número de pontos é considerável.
41
Um problema desse tipo de modelo é que seus resíduos possuem uma correlação superior ao
esperado aleatoriamente conforme mostrado na figura 5.17.
Neste correlograma mostrado, as duas linha horizontais representam 2σ dos erros associados
a estimação da função de autocorrelação. Conforme já foi dito em análise anterior, nesse caso,
considerando uma variável com distribuição gaussiana, era esperado que em 95% dos casos a
correlação para um dado atraso fosse inferior ao valor das retas horizontais de 2σ. No entanto,
observando o correlograma da série financeira da presente análise, vemos que tal evento ocorre numa
freqüência maior do que a esperada. Tal fato leva a hipótese de existência de uma componente
determinística nas séries financeiras analisadas, não levada em consideração no modelo passeio
aleatório.
0 2 4 6 8 10 12 14 16 18 20−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Atraso da série
Cor
rela
ção
Função de autocorrelação ACF para variação percentual Ibovespa
figura 5.17: Função de autocorrelação ACF para variação percentual Ibovespa
Repetindo os procedimentos para a mesma série base, mas agora tomando a primeira derivada
da série de preços de fechamento, podemos comparar se o modelo de variação absoluta dos preços
fornece melhores resultados que o modelo de variações percentuais dos preços. A figura 5.18 mostra
o histograma da série temporal após realizarmos sua primeira derivada. A figura 5.19 mostra o
gráfico QQ para a mesma série. Além disso, é apresentado na figura 5.20 o gráfico da função
autocorrelação para essa nova análise. Note que ele possui as mesmas características que o gráfico
anteriormente mostrado na figura 5.17.
O terceiro modelo que iremos analisar é o modelo ARMA no espaço de estados, com 15 variavéis
de estado. A figura 5.21 mostra o histograma dos resíduos do modelo ARMA (Xt) para a série
em análise. E ainda, a figura 5.22 mostra o gráfico quantiles quantiles para os residuos do modelo
ARMA analisado. Por fim, a figura 5.23 mostra a função de autocorrelação ACF para os resíduos
do modelo ARMA analisado.
A partir da observação desses gráficos, é possível concluir que os 3 modelos são capazes de
modelar as séries temporais. No entanto, a componente não explicada do modelo possui correlações
significantes nas modelagens passeio aleatório dos preços e de variação percentual. Já no modelo
ARMA, tal fenômeno não foi observado. Embora a validação aqui feita indique a necessidade
de modelos diferentes para uma modelagem mais precisa, tal fato não invalida a utilização dos
modelos aqui apresentados. Usaremos o modelo ARMA na próxima seção juntamente com o filtro
de Kalman para verificarmos até que ponto tais modelos apresentam alguma utilidade para fins de
42
−2000 −1500 −1000 −500 0 500 1000 1500 20000
20
40
60
80
100
120
140Histograma derivada das cotações Ibovespa de 18/12/1991 ate 5/12/2008
Variação em pontos diários
Fre
quên
cia
rela
tiva
figura 5.18: Histograma derivada das cotações Ibovespa de 18/12/1991 ate 5/12/2008
−4 −3 −2 −1 0 1 2 3 4−6000
−4000
−2000
0
2000
4000
6000
Quantiles esperados para distribuição normal
Qua
ntile
s ob
tidos
na
amos
tra
Gráfico QQ série variação em pontos do Ibovespa
figura 5.19: Gráfico QQ série variação Ibovespa
predição.
43
0 2 4 6 8 10 12 14 16 18 20−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Atraso da série
Cor
rela
ção
Função de autocorrelação ACF para variação em pontos Ibovespa
figura 5.20: Função de autocorrelação ACF para variação em pontos Ibovespa
−1500 −1000 −500 0 500 1000 15000
50
100
150
200
250
300
350
400
450
500Histograma dos resíduos modelo ARMA(15) preços Ibovespa de 18/12/1991 ate 5/12/2008
Resíduo em pontos diários
Fre
quên
cia
rela
tiva
figura 5.21: Histograma dos resíduos modelo ARMA(15) preços Ibovespa de 18/12/1991 ate
5/12/2008
−4 −3 −2 −1 0 1 2 3 4−2000
−1500
−1000
−500
0
500
1000
1500
2000
Quantiles esperados para distribuição normal
Qua
ntile
s ob
tidos
na
amos
tra
Gráfico QQ dos residuos do modelo ARMA em pontos do Ibovespa
figura 5.22: Gráfico QQ dos residuos do modelo ARMA em pontos do Ibovespa
44
0 5 10 15 20 25−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1Função de autocorrelação ACF para os resíduos do modelo ARMA analisado
Atraso da série
Cor
rela
ção
Região 2 sigmaCorrelação da amostra
figura 5.23: Função de autocorrelação ACF para os resíduos do modelo ARMA analisado
45
Capítulo 6
Filtro de Kalman
O filtro de Kalman é um estimador utilizado no estudo do estado de um sistema dinâmico linear
perturbado por um ruído branco, cujo resultado é ótimo para o problema. Sua criação permitiu o
avanço em muitos campos da ciência, principalmente na área de controle de sistemas complexos.
Ele é utilizado, por exemplo, no controle de processos de fabricação, de aviões, navios e ônibus
espaciais [19].
A utilização do filtro de Kalman pode ser feita também no estudo de séries temporais, e, por
isso, seu desenvolvimento teórico será abordado neste capítulo, utilizando como referência [20].
6.1 Sistema de referência e notação utilizada
Considere o seguinte sistema:
xk+1 = Fkxk + Gkwk (6.1)
zk = H ′kxk + vk (6.2)
Onde V W e X são variavéis aleatórias com distribuição normal com média e variância mostradas
abaixo:
vk ∼ N(0, R) (6.3)
wk ∼ N(0, Q) (6.4)
x0 ∼ N(x0, P0) (6.5)
O problema de estimação consiste em determinas as seguintes estimativas na notação mostrada
em 6.6 e 6.7.
xk|k−1 = E[xk|Zk−1] (6.6)
xk|k = E[xk|Zk] (6.7)
As matrizes de covariância do erro das estimativas 6.6 e 6.7 serão dadas por 6.8 e 6.9.
Σk|k−1 = E[[xk − xk|k−1][xk − ˆxk|k−1]′|Zk−1] (6.8)
Σk|k = E{[xk − ˆxk|k][xk − ˆxk|k]′|Zk} (6.9)
47
6.2 Equações do filtro de Kalman
As equações do filtro de Kalman são apresentados nessa secção. A estimativa da variável de
estado de interesse é apresentada em 6.10, o ganho da matriz K é dado por 6.11, a covariância do
erro de estimação dada por 6.12 e as condições iniciais dadas por 6.13 e 6.14.
xk+1|k = [Fk − KkH′k]xk|k−1 + Kkzk (6.10)
Kk = FkΣk|k−1Hk[H′kΣk|k−1Hk + Rk]
−1 (6.11)
Σk+1|k = Fk[Σk|k−1Hk(H′kΣk|k−1Hk + Rk)
−1H ′kΣk|k−1]F
′k + GkQkG
′k (6.12)
x0|−1 = x0 (6.13)
Σ0|−1 = P0 (6.14)
6.2.1 Demonstração das equações do filtro de Kalman
Seja X e Y vetores de variavéis aleatórias que conjuntamente são gaussiana [20]. Isto é, temos
para Z=[X’ Y’] a seguinte média e variância :
m = [x
y] (6.15)
Σ = [Σxx, Σxy
Σyx, Σyy
] (6.16)
Assumindo não singularidade de Σ e Σyy, temos a densidade de probabilidade condicional:
pX|Y (x|y) =pXY (x, y)
pY (y)(6.17)
=|Σyy|
1/2exp(−0.5[x′ − x′...y′ − y′]Σ−1[x′ − x′
...y′ − y′]′)
(2π)N/2|Σ|1/2exp(−0.5(y − y)′Σ−1yy (y − y))
(6.18)
Onde N, em 6.18, é a dimensão da variável X. Detalhes deste desenvolvimento algébrico estão
disponíveis em [20]. O resultado é mostrado em 6.19.
pX|Y (x|y) = N ∼ (x + ΣxyΣ−1yy (y − y), Σxx − ΣxyΣyy
−1Σ′xy) (6.19)
Pela condição dada em 6.5 é possível reescrever a condição inicial na notação conforme mostrado
em 6.20.
Σ0,−1 = P0 (6.20)
48
A variavél aleatória 6.21 possui média 6.22 e covariância dada por 6.23.
[x′0z
′0] (6.21)
[x0, x0H0] (6.22)
[P0, P0H0
H ′0P0, H
′0P0H0 + R0
] (6.23)
Utilizando a relação 6.19, e dado que x0 é condicionado a z0, temos os resultados mostrados
em 6.24 e 6.30.
ˆx0|0 = x0 + P0H0(H0′P0H0 + R0)
−1(z0 − H ′0x0) (6.24)
Σ0|0 = P0 − P0H0(H′0P0H0 + R0)−1H ′
0P0) (6.25)
Aplicando a função valor esperado em ambos os lados da equação 6.1 é obtida a relação 6.27.
E(xk+1) = E(Fkxk) + E(vk) (6.26)
x1|0 = F0 ¯x0|0 (6.27)
A covariância da variável X, assumindo a hipótese da independência entre as variáveis em 6.1,
pode ser calculada pela propriedade básica da covariância, com resultado dado por 6.28.
Σ1|0 = F0Σ0|0F′0 + GQ0G
′ (6.28)
A partir da equação 6.2, aplicando a função valor esperado e calculando sua covariância, temos
a relação para o valor esperado 6.29 e 6.30 para variância.
E(zk) = E(H ′xk + E(GkWk) (6.29)
ˆz1|0 = H ′x1|0H′Σ1|0H1 + R1 (6.30)
Temos ainda que:
E[(x1 − x1|0)(z1 − z1|0)−1|z0] = Σ1|0H1 (6.31)
A variável aleatória [x’1z′1] possui média:
[x1|0, H′1x1|0] (6.32)
49
E covariância dada por:
[Σ1|0, Σ1|0H1
H ′1Σ1|0, H
′1Σ1|0H1 + R1
] (6.33)
Aplicando o resultado basico 6.19 concluimos que x1 condicionado a z0 e z1 tem média:
x1|1 = x1|0 + Σ1|0H1(H′Σ1|0H1 + R1)
−1(z1 − H ′1x1/0) (6.34)
E covariância:
Σ1|1 = Σ1|0 − Σ1|0H1(H′1Σ1|0H1 + R1)
−1H ′1Σ1/0 (6.35)
Utilizando as equações 6.27 e 6.28 para atualizar os índices temos:
x2|1 = F1x1|1 (6.36)
Σ1|1 = F1Σ1|1F′1 + G1Q1G
′1 (6.37)
Repetindo os passos anteriores para índices genéricos temos:
-Para valor esperado:
Estimativa a priori :
xk|k = xk|k−1 + Σk|k−1Hk(H′Σk|k−1Hk + Rk)
−1(zk − H ′kxk/k−1) (6.38)
Estimativa a posteriore:
xk+1|k = Fk ¯xk|k (6.39)
-Para a covariância: Estimativa a priori:
Σk|k = Σk|k−1 − Σk|k−1Hk(H′kΣk|k−1Hk + Rk)
−1H ′kΣk/k−1 (6.40)
Estimativa a posteriore:
Σk+1|k = FkΣk|kF′k + GkQkG
′k (6.41)
6.3 Implementação do filtro de Kalman
Tendo como base o processo de construção de modelos de séries temporais conforme descrito
na seção 5.3 e as equações do filtro de Kalman da seção 6, foi implementado no software MATLAB
um estimador do próximo elemento de uma série temporal. Para a série temporal dos rendimentos
percentuais diários, foi adotada a estratégia de compra quando a variação percentual estimada
para o dia seguinte foi positiva e venda quando essa variação estimada foi negativa.
50
6.3.1 Séries temporais utilizadas
Considere a série temporal dos preços de fechamento do ativo petr4(fonte apligraf) com infor-
mações relativas ao periodo de 28/12/03 a 28/12/2008 mostrado na figura 6.2. Conforme a função
autocorrelação mostra na figura 6.1, o preço de uma ação depende fortemente do preço do dia
anterior. Nesse sentido, a correlação do preço do dia seguinte é alta dentro do universo de preços
possíveis. Essa característica favorece modelos de processos auto-regressivos, como o modelamento
ARMA, conforme visto na seção 5.2.5. A série temporal base utilizada foi o preço de fechamento
dos ativos em bolsa. O preço de fechamento é uma referência importante, pois é normalmente a
cotação fechada com maior volume de financeiro do dia.
0 2 4 6 8 10 12 14 16 18 20−0.2
0
0.2
0.4
0.6
0.8
Lag
Sam
ple
Aut
ocor
rela
tion
Sample Autocorrelation Function (ACF) PETR4 28/12/2003 a 28/12/2008
figura 6.1: Função de autocorrelação para preço de fechamento de petr4
Utilizamos as séries de preços de fechamento petr4, vale5 e bbdc4 no período de 28/12/03
a 28/12/2008 para avaliarmos os resultados do filtro de Kalman durante um período de extrema
tensão no mercado (ano 2008).
6.3.2 Construção do modelo
Para a aplicação do filtro de Kalman, é necessário um modelo no espaço de estados conforme
as equações: 6.1 e 6.2, seguindo a notação utilizada na seção 6.1. O modelo adotado é um modelo
ARMA discutido na seção 5.2.5.
Para exemplificar o processo iremos construir um modelo ARMA no espaço de estados no soft-
ware MATLAB. Para a obtenção desse modelo, é necessário separar os dados disponíveis em 2
segmentos:dados para modelamento e dados para validação, conforme figura 6.3. Tendo a série de
preços para modelamento disponível, o modelo no espaço de estados é criado através do comando:
modelo = pem(DadosModelamento, OrdemModelo,′ ss′,′ can′); (6.42)
51
0 200 400 600 800 1000 12005
10
15
20
25
30
35
40
45
50
55
Tempo
Pre
ço
Gráfico preço ao longo do tempo para petr4
figura 6.2: Série temporal utilizada exemplo Kalman
0 200 400 600 800 1000 12005
10
15
20
25
30
35
40
45
50
55Gráfico preço de fechamento petr4 e divisão dos dados
tempo
Pre
ço
Dados modelamento Dados validação
figura 6.3: Separação dados modelamento e validação exemplo petr4
O primeiro parâmetro é a série temporal a partir da qual se deseja a construção do modelo.
O segundo parâmetro, por sua vez, é a ordem do modelo, como o incremento de variáveis e
conseqüentemente da sua ordem. A ordem do modelo geralmente aumenta o percentual da série
explicada por ele [14]. O critério utilizado para determinação dessa ordem foi escolher o maior valor
desse parâmetro, para o qual o programa não emitisse o aviso de que os erros de arredondamento
de cálculos poderiam ser maiores que sua contribuição para o sistema. Também se levou em conta
o tempo de processamento dos cálculos, buscando que a simulação não ultrapassasse a faixa de 5
minutos de duração. Utilizando esse procedimento, a ordem escolhida para o modela ARMA que
será utilizado, foi igual a 15. E ainda, o terceiro parâmetro é utilizado para informar ao sistema
que desejávamos o modelo no espaço de estados. Por fim, o quarto parâmetro é utilizado para que
o modelo construído seja apresentado na formula canônica observável.
No exemplo para os dados do ativo petr4, temos o gráfico mostrado na figura 6.4 para o valor
observado e para o valor previsto pelo modelo, considerando os dados de validação. O percentual
"fit"representada o índice de determinação. Esse índice de determinação R2 pode ser calculado
como o quadrado do coeficiente de correlação entre a série observada e a série estimada pela
tendência [2]. Tal indicador pode ser interpretado como a fração da série que pode ser explicada
pelo modelo.
Com base no valor estimado pelo modelo e valor observado na série temporal, podemos ainda
52
calcular o erro de estimação ao longo do tempo. O gráfico de dispersão do erro e preço da série
observada é útil para identificar alguma possível região de preços onde os erros são maiores. Esse
gráfico é mostrado na figura 6.5. A partir da sua observação, é possível notar que para o modelo
proposto não foi identificada uma região nesse gráfico na qual o modelo aparenta ser melhor ou
pior.
100 200 300 400 500 600 700 800 900 1000
10
15
20
25
30
35
40
Previsto pelo modelo(1 passo a frente) e observado no periodo de modelamento
Tempo
Pre
ço
Valores observadosValores estimados pelo modelo; R2 fit: 94.41%
figura 6.4: Valores previstos pelo modelo 1 passo a frente e valores observados
−4 −3 −2 −1 0 1 2 3 415
20
25
30
35
40
45
50
55Gráfico dispersão: Resíduo x valores absolutos da série temporal(periodo de validação)
Resíduo
Val
ores
abs
olut
os d
a sé
rie te
mpo
ral
figura 6.5: Gráfico dispersão resíduo x valores absolutos dos dados de validação
O resultado do modelo é apresentado com a notação mostrada nas equações 6.43 e 6.44.
x(t + Ts) = Ax(t) + Ke(t) (6.43)
y(t) = Cx(t) + e(t) (6.44)
A equivalência de notação entre a notação apresentada no MATLAB e a notação apresentada nesse
trabalho(6.1 e 6.2) tem a seguintes relações:
53
figura 6.6: Divisão da série temporal disponível e seus usos
F = A (6.45)
G = K (6.46)
H ′ = C (6.47)
Q = 1 (6.48)
R = 1 (6.49)
Os parâmetros de x0, descrita em 6.5, foram estimados aplicando as equações 6.10, 6.11, 6.12
,6.13 e 6.14 para os últimos 400 elementos da série temporal de modelamento, considerando o
valor esperado e a variância de x0 ambos nulos inicialmente. Isso porque os parâmetros de x0 são
recalculados a cada interação e seu valor converge rapidamente [20].
A figura 6.6 mostra a divisão da série temporal disponível e seus usos. Utilizando o filtro de
Kalman para gerar estimativas na região de validação e comparando com os valores observados,
temos o gráfico da figura 6.7.
6.3.3 Resultado da aplicação do filtro de Kalman em um conjunto de ativos
Para a simulação feita nesta seção, a aplicação do filtro de Kalman no conjunto de ativos foi
feita seguindo a seguinte estratégia: quando o preço estimado é superior ao último preço observado,
é tomada a decisão de compra. Por sua vez, quando o preço estimado é inferior ao último preço,
é tomada a decisão de venda. Já quando os preços estimados e observados são iguais, a decisão é
de ficar sem nenhuma posição no ativo, isto é, não se compra nem se vende. A partir das decisões
de posicionamento, vale a lógica descrita em 4.3. Além disso, considerando que o modelo ARMA
é fundalmentalmente um modelo para séries temporais estacionárias -e não há razões para crer
que as séries financeiras aqui estudadas são de caráter estacionário- o modelo ARMA utilizado no
processo de previsão com filtro de Kalman será atualizado completamente a cada 5 períodos de
54
0 50 100 150 200 25015
20
25
30
35
40
45
50
55
Tempo (serie de validação)
Pre
ço
Preço estimado filtro de kalman e observado ativo petr4 periodo de validação
EstimativaObservado
figura 6.7: Estimado e observado periodo de validação
simulação. Isso porque segue-se a hipótese de que em um curto período de tempo tais séries podem
ser consideradas estacionárias. A figura 6.8 mostra o esquema aplicado nas simulações registradas
nessa seção.
6.3.3.1 Resultados das simulações para o ativo petr4
É apresentado na figura 6.9 o gráfico do preço estimado pelo filtro de Kalman e o preço real do
período de validação para o ativo petr4. A partir de sua observação, fica evidenciado o fato de que
o resultado fornecido pelo filtro acompanha as tendências apresentadas pela série real, ora ultra-
passando os valores fornecidos por esta, ora respondendo com certo atraso. Além disso, no período
analisado houve dois momentos em que o valor estimado divergiu consideravelmente do valor obser-
vado.Isso aconteceu já que os ganhos associados aos erros de estimação passado são relativamente
elevados, o que acarreta em momentos de instabilidade após periodos de baixa previsibilidade
do modelo.Esses momentos de divirgência só foram observados após a inserção de atualizações
periodicas do modelo.Isso pode ser observado através da figura 6.10 que mostra o resultado da rea-
lização do mesmo procedimento básico do resultado mostrado na figura 6.9, mas sem atualizações
do modelo. Tal fato sugere que atualizações periodicas do modelo podem levar a maiores divergên-
cias entre valor estimado e observado quando o processo passa por uma região de grandes variações
Por sua vez, o gráfico do capital acumulado obtido a partir da utilização do filtro de Kalman
com atualização do modelo e o valor fornecido pela própria série desse ativo é apresentado na
figura 6.11. Na maior parte do período analisado, o filtro de Kalman forneceu valores piores do
que àqueles obtidos na realidade, evidenciando a necessidade de melhora do modelo utilizado para
a série temporal do ativo petr4.
55
figura 6.8: Esquema simulações com utilização do filtro de Kalman realizadas
0 50 100 150 200 25015
20
25
30
35
40
45
50
55
60Preço estimado filtro de kalman e observado ativo petr4 periodo de validação
Tempo (serie de validação)
Pre
ço
Estimativa filtro de KalmanObservado petr4
figura 6.9: Preço previsto e observado periodo de validação petr4 (com atualização do modelo)
6.3.3.2 Resultados das simulações para o ativo vale5
É apresentado na figura 6.12 o gráfico do preço estimado pelo filtro de Kalman e o preço real
do período de validação para o ativo vale5. Da mesma forma que na análise do ativo petr4, a
partir da observação desse gráfico, fica evidenciado o fato de que o resultado fornecido pelo filtro
acompanha as tendências apresentadas pela série real, ora ultrapassando os valores fornecidos por
esta, ora respondendo com certo atraso. Como explicado anteriormente para o ativo pert4, houve
um momento de instabilidade. Este também está associados aos erros de estimação passados le-
vados em consideração no modelo utilizado.
Por sua vez, o gráfico da rentabilidade obtida a partir da utilização do filtro de Kalman e o valor
fornecido pela própria série desse ativo é apresentado na figura 6.13. Na maior parte do período
analisado, o filtro de Kalman forneceu resultados melhores do que àqueles obtidos na realidade,
56
0 50 100 150 200 25015
20
25
30
35
40
45
50
55
Tempo (série de validação)
Pre
ço
Preço estimado filtro de kalman e observado ativo petr4 periodo de validação (sem atualização do modelo)
Estimativa filtro de KalmanObservado petr4
figura 6.10: Preço previsto e observado periodo de validação petr4 (sem atualização do modelo)
0 50 100 150 200 2500.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
Tempo
Cap
ital a
cum
ulad
o
Capital acumulado estratégia Kalman e ativo de referência
Kalmanpetr4
figura 6.11: Capital acumulado diferentes estratégias petr4
com obtenção de capital acumulado superiores àqueles fornecidos. Esses resultados, no entanto,
não se sustentaram até o final do período, e no final da tendência de queda, o resultado fornecido
pelo filtro praticamente se igualou às perdas fornecidas pelo mercado.
6.3.3.3 Resultados das simulações do ativo bbdc4
É apresentado na figura 6.14 o gráfico do preço estimado pelo filtro de Kalman e o preço real do
período de validação para o ativo bbdc4. Da mesma forma que nas análises anteriores, a partir da
observação desse gráfico, fica evidenciado o fato de que o resultado fornecido pelo filtro acompanha
as tendências apresentadas pela série real, ora ultrapassando os valores fornecidos por esta, ora
respondendo com certo atraso.
Por sua vez, o gráfico do capital acumulado obtido a partir da utilização do filtro de Kalman
e o valor fornecido pela própria série desse ativo é apresentado na figura 6.15. Na maior parte do
período analisado, o filtro de Kalman forneceu valores semelhantes àqueles obtidos na realidade,
evidenciando a necessidade de melhora do modelo utilizado para a série temporal do ativo bbdc4.
57
0 50 100 150 200 25020
25
30
35
40
45
50
55
60Preço estimado filtro de Kalman e observado ativo vale5 período de validação
Tempo (serie de validação)
Pre
ço
EstimadoObservado
figura 6.12: Estimado e observado periodo de validação vale5
0 50 100 150 200 2500.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Tempo (serie de validação)
Cap
ital a
cum
ulad
o
Capital acumulado estratégia Kalman e ativo de referência vale5
KalmanVale5
figura 6.13: Capital acumulado diferentes estratégias vale5
6.3.3.4 Síntese dos resultados das simulações realizadas
A tabela 6.1 resume os resultados obtidos na simulação da estratégia descrita acima através da
aplicação do filtro de Kalman para a variação percentual do dia seguinte de três ativos: Petrobras,
Vale e Bradesco.
A partir da observação da tabela 6.1, fica evidenciado que as rentabilidades acumuladas a partir
da utilização do filtro de Kalman nas séries temporais dos ativos estudados foram semelhantes
ao retorno desses ativos no período. Assim, a obtenção de melhores resultados dependerá de
um modelamento mais preciso das séries temporais desejadas, de forma a superar os resultados
fornecidos pelo mercado. Vale lembrar que o período analisado neste estudo corresponde ao pior
período da bolsa de valores brasileira dos últimos 17 anos fato evidenciado no gráfico da figura
5.14.
58
0 50 100 150 200 25015
20
25
30
35
40Gráfico previsto e observado no periodo de validação bbdc4
Tempo
Pre
ço
Estimativa kalmanpreço observado bbdc4
figura 6.14: Preço previsto e observado periodo de validação bbdc4
0 50 100 150 200 2500.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3Capital acumulado estratégia Kalman e ativo de referência bbdc4
Tempo
Cap
ital a
cum
ulad
o
Kalmanbbdc4
figura 6.15: Capital acumulado diferentes estratégias bbdc4
Tabela 6.1: Resultados simulações no modelo ARMA aplicando o filtro de Kalman como estimadorResultado simulações filtro de Kalman
ativo petr4 vale5 bbdc4
Numero dias comparados 157 124 159
Numero dias vendidos 93 126 91
Numero dias neutros 0 0 0
Retorno total Kalman -40.64% -50.24% -33.33%
Retorno total ativo referência -41.78% -45.92% -27.10%
59
Capítulo 7
Conclusões
Neste trabalho, foi realizado o estudo das séries temporais visando a sua aplicação no mercado
financeiro. Para isso, foram primeiramente apresentados meios de análise disponíveis para este
estudo, além de conceitos estatísticos aplicados a estas séries.
Em seguida, foram apresentados meios de captação destas séries. Esta etapa foi muito impor-
tante no desenvolvimento deste trabalho, já que as informações dos ativos negociados em bolsa
não são disponibilizadas prontamente na forma de séries temporais. Todos os programas de análise
aqui desenvolvidos foram feitos no software MatLab, e assim, foi necessária a adequação destas
informações para utilização como dados de entrada nos programas. Em sua maioria, foi utilizada
a fonte Apligraf devido à possibilidade de obtenção dos dados dos ativos negociados na bolsa de
valores brasileira, conforme informações explicitadas ao longo do texto.
No capítulo de análise estatística, foi apresentada uma proposta de modelo para descrever
o comportamento das séries temporais do mercado financeiro, com a criação de um programa
computacional cujo objetivo foi traduzir este comportamento em ações tomadas pelo operador
visando à obtenção de retorno satisfatório para determinado ativo. O programa desenvolvido
apresentou como parâmetros de saída várias situações de operação, com número variado de tomadas
de decisão. Os resultados obtidos neste modelamento foram satisfatórios, já que para todas as ações
analisadas, a rentabilidade média obtida foi maior do que o ativo analisado.
Além disso, no capítulo referente à modelagem de tendências em séries temporais foram intro-
duzidos conceitos necessários à compreensão deste processo, tais como conceitos estatísticos básicos
e modelos básicos para séries temporais. Como sugestão para trabalhos futuros há a utilização de
outros modelos disponíveis para a obtenção do modelamento matemático destas séries temporais.
Estes talvez sejam capazes de fornecer melhores resultados do que aqueles obtidos neste trabalho.
Por fim, foi desenvolvida uma aplicação do filtro de Kalman, com os respectivos embasamentos
teóricos necessários à sua compreensão. Segundo objetivo final foi desenvolvido uma proposta de
estratégia de uso do filtro de Kalman no estudo das séries temporais aqui consideradas. Para
isso, um programa computacional foi criado no MatLab, fornecendo como parâmetros de saída a
rentabilidade média mensal e rentabilidade acumulada a partir da utilização desse programa, além
do retorno real do ativo no período considerado. Analisando estes resultados, pôde ser concluído
que o modelo ARMA utilizado não se encontra ainda na forma final para aplicação.
61
REFERÊNCIAS BIBLIOGRÁFICAS
[1] WOLBERG, J. R. Expert Trading Systems - Modeling Financial Markets with Kernel Regres-
sion : John Willey & Sons, 2000.
[2] CRYER, J. D. Time Series Analysis,with Applications in R : Springer, 2008.
[3] BOVESPA. http://www.bovespa.com.br/Principal.asp , acessado em 2008.
[4] APLIGRAF. http://web.apligraf.com.br/ , acessado em 2008.
[5] MERCADO, A. de. http://www.analistademercado.com.br/ , acessado em 2008.
[6] METASTOCK : http://www.equis.com/, 2008.
[7] LEANDRO&STORMER. http://www.leandrostormer.com.br/ , acessado em 2008.
[8] YAHOO. http://finance.yahoo.com/ : Yahoo finance, acessado em 2008.
[9] ATIVA. https://www.ativatrade.com.br/ : Ativa corretora, acessado em 2008.
[10] COLBY, R. W. The Encyclopedia of Technical Market Indicators : McGraw-Hill, 2002.
[11] MURPHY, J. J. Technical Analysis of the Financial Markets : NYIF, 1999.
[12] CONWAY, M. R.; BEHLE, A. N. Professional Stock Trading - System Design and Automation
: Acme Trader, 2002.
[13] GITMAN, L. J. Princípios de Administração Financeira - 7ł edição : Harbra, 2002.
[14] CHAN, N. hang. Time Series Applications to Finance : John Willey & Sons, 2002.
[15] TSAY, R. S. Analysis of Financial Time Series : John Willey & Sons, 2002.
[16] MATLAB. System Identification Toolbox : http://www.mathworks.com/, 2008.
[17] OGATA, K. Engenharia de Controle Moderno : Addison Wesley, 2003.
[18] FRANKLIN, G. F.; POWELL, J. D.; WORKMAN, M. L. Digital Control of Dynamic Systems
: Addison Wesley, 1997.
[19] GREWAL, M. S.; ANDREWS, A. P. Kalman Filtering: Theory and Practice Using MATLAB
: John Willey & Sons, 2001.
[20] ANDERSON, B. D. O.; MOORE, J. B. Optimal Filtering : Prentice Hall, 1979.
63
I. CÓDIGOS DO PROGRAMA MATLAB
UTILIZADOS NESSE TRABALHO
%gera base de dados gol
% Conectar ao Yahoo.
conn = yahoo;
%capta os dados de fechamento,máximo,minimo,abertura e fechamento do dia 01/01/2001 ate o
dia 25/08/2008
%fechamento.
golclose = fetch(conn,’GOL’,’Close’,’01/01/2001’,’08/25/2008’,’d’);
%maxima.
golhigh = fetch(conn,’GOL’,’High’,’01/01/2001’,’08/25/2008’,’d’);
%minima
gollow = fetch(conn,’GOL’,’Low’,’01/01/2001’,’08/25/2008’,’d’);
%abertura
golopen = fetch(conn,’GOL’,’Open’,’01/01/2001’,’08/25/2008’,’d’);
%fechamento.
golvolume = fetch(conn,’GOL’,’Volume’,’01/01/2001’,’08/25/2008’,’d’);
golteste=[golopen golhigh(:,2) gollow(:,2) golclose(:,2) golvolume(:,2)];
%passa de uma struct para uma matriz comum do Matlab
golfts=fints(golteste);
67