Escolar Documentos
Profissional Documentos
Cultura Documentos
PORTFOLIOS
EFICIENTES
~
INCLUINDO OPC
OES
Cibele Dunder
~ APRESENTADA
DISSERTAC
AO
AO
INSTITUTO DE MATEMATICA
E ESTATISTICA
DA
~ PAULO
UNIVERSIDADE DE SAO
~
PARA OBTENC
AO DO GRAU DE MESTRE
EM
MATEMATICA
APLICADA
Area
de Con
entra
~ao: Matem
ati
a Apli
ada
Orientador: Prof. Dr. J
ulio Mi
hael Stern
Durante a elabora
~
ao deste trabalho, o autor re
ebeu apoio
do CNPq (pro
. 139188/96-7) e FAPESP (pro
. 96/06565-2)
Ban
a Examinadora:
Agrade
imentos
Ao Prof. Julio M. Stern, pela pa
i^en
ia, amizade,
onan
a, orienta
~ao ...
Ao Prof. Carlos Humes Jr., pelas palavras de in
entivo
Ao amigo Fabio Nakano, sempre me ajudando nas en
ren
as
omputa
ionais
A todos, que de uma forma ou de outra ajudaram na
on
retiza
~ao deste trabalho,
MUITO OBRIGADA.
Sumario
Lista de Figuras
Lista de Tabelas
vii
Resumo
ix
Abstra t
xi
1 Introdu ~ao
3
4
4
6
8
11
11
15
16
17
3 Assimetria de Portfolios
31
3.1 Sele
~ao de Portfolios e Momentos de Ter
eira Ordem . . . . . . . . . . . . . . . . 31
3.2 Express~oes de Co-assimetrias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4 Cal
ulo Numeri
o de Covari^an
ias
51
ii
SUMARIO
iii
.
.
.
.
..
..
..
..
.
.
.
.
..
..
..
..
.
.
.
.
..
..
..
..
.
.
.
.
.
.
.
.
..
..
..
..
.
.
.
.
..
..
..
..
.
.
.
.
.
.
.
.
..
..
..
..
.
.
.
.
..
..
..
..
.
.
.
.
.
.
.
.
51
55
55
59
..
..
..
..
.
.
.
.
.
.
.
.
71
71
73
74
75
87
211
iv
SUMARIO
Lista de Figuras
2.1 utilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2
urvas (linhas) de indiferen
a no espa
o p2 Ep . . . . . . . . . . . . . . . . . . 14
3.1 taxa de retorno de uma
all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1 parti
~oes para a regra do trapezio . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2 regra do trapezio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.1 Assimetria Retorno Esperado para = 1 e 0 < < 1 . . . . . . . . . . . . . . 83
6.2 Retorno Esperado Desvio Padr~ao Assimetria para = 1 e 0 < < 1 . . . . 84
6.3 Desvio Padr~ao Retorno Esperado para = 1 e 0 < < 1 . . . . . . . . . . . . 85
vi
LISTA DE FIGURAS
Lista de Tabelas
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
vii
76
76
76
77
77
77
78
78
79
79
80
80
81
81
82
viii
LISTA DE TABELAS
Resumo
Apresentamos um estudo sobre sele
~ao de portfolios e
ientes baseado nos tr^es primeiros momentos estatsti
os: media, vari^an
ia e assimetria. Nossa abordagem e uniperiodi
a e voltada a
portfolios formados por ativos fundamentais
om retorno (quase) log-normal e op
~oes europeias
(\
alls" e \puts").
Nos primeiros
aptulos fazemos uma revis~ao da teoria basi
a de portfolios,
omo o modelo
de Markowitz, e deni
~oes de ativos e derivativos. Tambem deduzimos novas express~oes de
ovari^an
ia, ne
essarias pela in
orpora
~ao das op
~oes, e desenvolvemos algoritmos e implementa
~oes
para resolver os problemas de quadratura surgidos. Estes pro
edimentos foram in
orporados no
software de analise nan
eira Criti
al-Point.
Tambem aprofundamos o modelo padr~ao de analise de portfolios introduzindo assimetria,
dando express~oes de
o-assimetrias e desenvolvendo algoritmos numeri
os e
ientes e implementa
~oes para resolver os problemas de
ubatura que apare
em.
No
aptulo nal analisamos alguns exemplos de portfolios formados por ativos e derivativos
do mer
ado nan
eiro brasileiro.
ix
LISTA DE TABELAS
Abstra
t
We study e
ient portfolio sele
tion based on the three rst statisti
al moments: mean, varian
e
and skewness. Our approa
h is uniperiodi
and limited to portfolios made of fundamental assets
with (quasi) log-normal return and plain vanilla option (
alls and puts).
The rst
hapters are a review of standard portfolio theory like Markowitz model, and basi
derivative assets denitions. We also give the expressions for the
ovarian
e
omponents required
to in
lude vanilla options, and develop e
ient numeri
al algorithms and implementations to
solve the required quadrature problems. Those pro
edures have been in
orporated the nan
ial
analysis software Criti
al-Point.
We also further extend the standard model introdu
ing assimetry, give the expressions for
the
oskewness
omponents and develop e
ient numeri
al algorithms and implementations to
solve the required
ubature problems.
In the nal
hapter we analyze some real s
enarios in the Brazilian sto
k market.
xi
xii
LISTA DE TABELAS
Cap
tulo 1
Introdu
~ao
Todo problema de de
is~ao tem alguns elementos em
omum: des
ri
~ao de alternativas, uma
sele
~ao de
riterios de es
olha dentre estas e, nalmente, a solu
~ao do problema. No mer
ado
nan
eiro as de
is~oes n~ao s~ao fa
eis para o investidor, pois ha uma gama enorme de ativos a
disposi
a~o (por exemplo,
ommodities, moedas, et
), assim
omo derivativos sobre eles. Combina-los de forma a obter o maior retorno possvel, ou seja, montar um portfolio otimo, e o
objetivo de todo investidor.
Ha estudos na E
onomia que auxiliam os investidores a estruturarem seus problemas de tal
forma a minimizar o numero de alternativas nestas situa
~oes. Parte destes estudos e auxiliado
pela analise de media e vari^an
ia em portfolios, que delinea as propriedades de uma
ombina
~ao
de ativos a partir do
omportamento individual destes. Media e vari^an
ia s~ao ferramentas basi
as
na analise de ris
o, assim
omo medidas de
omo os retornos de diferentes ativos movem-se juntos
(
ovari^an
ia). Mas momentos de ordem superior,
omo assimetria, podem tambem nos auxiliar
na es
olha de
arteiras otimas.
No
aptulo 2 familiarizamos o leitor
om a teoria de portfolios. Denimos os ativos e derivativos
om que trabalharemos, as rela
~oes entre os investimentos e
omo estas rela
~oes afetam o ris
o
e o retorno de portfolios. Trazemos algumas
onsidera
~oes sobre analise de portfolios baseada
no modelo a dois par^ametros (media-vari^an
ia), ini
iado na modelo de Markowitz. Dis
orremos
sobre as hipoteses basi
as do uso desta analise E-S (expe
ted return and standard-deviation)
baseadas em restri
~oes a fun
~ao utilidade e ao
omportamento de investidores. Deduzimos as
express~oes do valor esperado do retorno de
arteiras e tambem de
ovari^an
ias, partindo de um
modelo
ontnuo para os pre
os de a
~oes.
O
aptulo 3 amplia as dis
uss~oes do
aptulo anterior introduzindo o ter
eiro momento
entral do portfolio. A fun
~ao utilidade e expandida em termos ate ter
eira ordem e prefer^en
ia
por skewness e inserida no perl do investidor. Do mesmo modo
omo para as
ovari^an
ias,
deduzimos as express~oes de
o-assimetria dos retornos de a
~oes e op
~oes.
Os
aptulos 4 e 5 p~oem em prati
a a teoria vista nos
aptulos anteriores. Cal
ulamos numeri
amente os momentos ate ter
eira ordem de portfolios formados por a
~oes e op
~oes europeias.
Dis
utimos o porqu^e de
ertas te
ni
as de integra
~ao numeri
a terem sido usadas nestes
al
ulos.
Por m, apresentamos exemplos de portfolios e
ientes nos espa
os retornoris
o e retorno
1
2
ris
o assimetria, usando a
~oes e op
~oes da BOVESPA.
Introdu ~ao
Cap
tulo 2
ser~ao dados detalhes sobre estes
ontratos nas proximas se
~oes
as palavras ris
o e in
erteza neste texto s~ao sin^onimas
ou
ota
o~es,
orrela
~oes entre os diferentes ativos e derivativos, as in
ertezas envolvidas
nestes modelos. Enm,
riar um modelo teori
o que represente t~ao bem quanto possvel
os dados empri
os.
2. Analise de portfolios: o
upa-se de predi
~oes sobre o
omportamento dos portfolios baseados
inteiramente nos dados dos ativos da fase 1. Usamos os modelos obtidos para
al
ular, por
exemplo, retorno, vari^an
ia e assimetria de portfolios.
3. Sele
~ao de portfolios: dentre o grande numero de portfolios a disposi
~ao, resta fazer uma
sele
~ao baseada no perl do investidor. Por exemplo, adaptar diferentes taxas de retorno
e de ris
o de
arteiras as diferentes toler^an
ias ao ris
o por parte do investidor.
Para a fase 1, vamos tratar de portfolios formados por a
~oes e
ontratos de op
~oes europeias
sobre a
~oes nego
iadas na Bolsa de Valores. Para abordar as fases 2 e 3, neste
aptulo, usaremos
o modelo de Markowitz, que utiliza os dois primeiros momentos
entrais do retorno do portfolio.
No proximo
aptulo in
luiremos o ter
eiro momento
entral (assimetria) em nossa analise.
2.1 Analise de Ativos e Derivativos
2.1.1 Um Modelo de Pre
os para A
~
oes
Quando investimos num ativo de ris
o, o que mais gostaramos de saber e a expe
tativa do
retorno deste investimento, ja que n~ao sabemos qual sera a
ota
~ao destes ativos daqui a um
perodo qualquer.
Para podermos quanti
ar esta expe
tativa pre
isamos adotar um modelo que represente o
omportamento dos pre
os das a
~oes ao longo do tempo. E o modelo que adotaremos e o da
distribui
~ao log-normal dos pre
os, e e
om ele que trabalharemos daqui por diante.
Ha dois par^ametros
have para des
rever o
omportamento dos pre
os quando a hipotese de
log-normalidade e adotada: retorno esperado e desvio-padr~ao. As estimativas destes par^ametros
podem ser feitas
om base em series histori
as das
ota
~oes dos ativos, atraves de uma ltragem
de dados.
Vamos ver em linhas gerais um exemplo deste pro
esso.
Suponha que estamos na data t0 e queremos obter uma estimativa do retorno e do desvio
padr~ao do pre
o do ativo i para daqui a = T t0 dias (T > t0 ). Os retornos
onsiderados no
modelo s~ao
ontnuos.
Denotando por S (t; i) e r(t; i) o pre
o e o retorno logartmi
o do ativo em quest~ao,
al
ulamos
r(t; i) = ln
S (t + 1; i)
S (t; i)
(t < t0 )
para uma amostra de N pre
os retroativos a data t0 . Em seguida vem o
al
ulo do retorno
medio
med(i) =
1 X r(t; i)
e o desvio padr~ao
dp(i) =
1 X(r(t; i)
med(i))2 :
Vem ent~ao o pro
esso de extrapola
~ao dos valores med(i) e dp(i) para a data T que estamos
interessados:
i =
i =
S (T; i)
S (t0 ; i)
= N (i ; i2 )
(xi, o retorno logartmi
o para o perodo , tem, aproximadamente, uma distribui
~ao normal
om media i e vari^an
ia i2 ).
Uma outra grandeza essen
ial e a
ovari^an
ia destes retornos logartmi
os para dois ou mais
ativos diferentes.
Seja
ov(i; j ) a
ovari^an
ia entre o logaritmo dos pre
os dos ativos i e j e
orr(i; j ) o
oe
iente
de
orrela
~ao entre eles. Temos
1 X(r(t; i) med(i)) (r(t; j ) med(j ));
ov(i; j ) =
N
dp(i) =
ov(i; i)
e
orr(i; j ) =
ov(i; j )
dp(i) dp(j )
A respe
tiva fun
~ao densidade de probabilidade da variavel aleatoria xi, de distribui
~ao
normal, e dada por
(
xi i )2
1
( 1 < xi < +1)
f (xi ) = p exp
2i2
i 2
Para o
aso de estarmos trabalhando
om dois ou mais ativos diferentes, tambem temos a
fun
~ao densidade de probabilidade
onjunta
f (xi ; xj )
i j
xj j
j
xj j
j
2
Um
ontrato de op
~ao e um instrumento que da ao seu
omprador (titular ou portador) o
direito futuro sobre algo, e n~ao uma obriga
~ao; e a seu vendedor uma obriga
~ao futura, se esta
for soli
itada pelo
omprador.
Nas op
~oes de
ompra (ou \
all" ) o portador tem o direito de
omprar algo, numa data
futura, pelo pre
o estipulado no
ontrato (
hamado pre
o de exer
io). Nas op
~oes de venda
(ou \ put" ), o titular tem o direito de vender algo numa data futura, pelo pre
o de exer
io do
ontrato.
Esse algo que o titular pode
omprar ou vender pode ser, a priori, qualquer ativo ou derivativo
do mer
ado; pode ser desde uma a
~ao da Telebras ate
ontratos futuros ou mesmo um outro
ontrato de op
~ao.
A data futura em que se pode exer
er os direitos de
ompra e venda d~ao margem a dois tipos
de op
~oes: op
~ao europeia e op
~ao ameri
ana.
Na op
~ao europeia o titular pode exer
er o seu direito somente na data de expira
~ao do
ontrato. A op
~ao ameri
ana ja da liberdade ao portador de exer
er o seu direito em qualquer
data que ante
eda a expira
~ao do
ontrato.
Parti
ularmente, trabalharemos nesta disserta
~ao somente
om op
~oes europeias que tenham
omo ativos fundamentais a
~oes nego
iadas na Bolsa (s~ao as a
~oes-objeto do
ontrato).
Em resumo, uma op
~ao de
ompra europeia
onfere ao seu titular o direito de
omprar as
a
~oes-objeto, ao pre
o de exer
io, na data de expira
~ao do
ontrato. O lan
ador da op
~ao de
ompra assume a obriga
~ao de vender as a
~oes-objeto a que se refere a op
~ao, pelo pre
o de
exer
io, se o
omprador o requerer. Da mesma forma, uma op
~ao de venda europeia da ao seu
titular o direito de vender as a
~oes-objeto, na data de ven
imento, pelo pre
o de exer
io do
ontrato. O lan
ador assume o
ompromisso de
omprar as a
~oes
aso seja exer
ido o direito do
titular.
Em raz~ao dos direitos e obriga
o~es do
ontrato, o
omprador paga ao lan
ador uma quantia
denominada pr^emio, que e o pre
o da op
~ao. Este pre
o leva em
onsidera
~ao a oferta e demanda
do ativo, a diferen
a entre o pre
o a vista e o pre
o de exer
io da a
~ao-objeto, a volatilidade
dos pre
os, et
. Os ativos passveis de nego
ia
~ao em op
~oes s~ao denidos pela institui
~ao que
as nego
ia, assim
omo o m^es de expira
~ao do
ontrato e os pre
os de exer
io.
Como nota
~ao, usaremos:
T : data de expira
~ao do
ontrato;
S (t) : pre
o do ativo basi
o na data t;
K
(t); Kp (t) : pre
o de exer
io de uma
all e uma put, respe
tivamente, na data t;
P
(t); Pp (t) : pr^emio de uma
all e uma put, respe
tivamente, na data t.
Uma op
~ao de
ompra europeia pode ser vista
omo um derivativo que paga ao portador, na
data T , a quantia
X (T ) = max(S (T ) K
(t0 ); 0)
( 0)
= max(Kp(t0 )
S (T ); 0)
( 0)
Vamos agora espe
i
ar taxas de retorno para o
aso de a
~oes e op
~oes europeias,
om as
quais vamos trabalhar ate o nal desta disserta
~ao.
Daqui por diante omitiremos a palavra europeia quando falarmos de op
~oes,
ando impl
ito
que e sobre este tipo de
ontrato que estamos falando.
Para uma a
~ao,
uja
ota
~ao na data t e dada por S (t), a taxa de retorno rs no perodo
= T t (T > t) sera dada por
rs =
S (T ) S (t)
S (t)
(2.1)
Para as op
~oes de
ompra e venda, as taxas de retorno ser~ao dadas por
r
=
rp =
max(S (T )
K
(t0 ); 0) P
(t0 )
P
(t0 )
(\ all" )
(2.2)
max(Kp(t0 )
S (T ); 0) Pp (t0 )
Pp (t0 )
(\put" )
(2.3)
Vamos
onsiderar um portfolio bem simples formado por dois ativos basi
os,
hamados de ativo
A e ativo B, e por op
~oes de
ompra e venda que t^em
omo a
~oes-objetos os proprios ativos A
e B. Vamos supor tambem que as datas de assinatura (t0 ) e as datas de expira
~ao (T ) s~ao as
mesmas para todas as op
~oes.
Denote por Sa e Sb os pre
os dos ativos A e B, respe
tivamente. Os retornos logartmi
os
de A e B, extrapolados para a data T , s~ao dados por
x = ln
Sa (T )
Sa (t0 )
Sb (T )
Sb (t0 )
e
y = ln
= N (a ; a2 )
(2.4)
= N (b; b2 )
(2.5)
(x
a )2
2a2
p1 exp
(y
b )2
2b2
a
f (y ) =
b
2
2
(2.6)
(2.7)
Sendo o
oe
iente de
orrela
~ao entre os ativos A e B, a fun
~ao distribui
~ao
onjunta e
dada por
f (x; y)
= 2
1p
a b
2
exp
2(1
2 )
x a
a
2
x aa y bb
y b
b
2
Sb (T ) = Sb (t0 )exp(y)
(2.8)
1 e rs = exp(y) 1
(2.9)
onde rs e rs s~ao as taxas de retorno dos ativos A e B, respe
tivamente.
Para as op
~oes xaremos a letra K para denotar pre
o de exer
io do
ontrato,
olo
ando
um ndi
e superior a letra para diferen
iar
alls de puts, e um ndi
e inferior para indi
ar a
a
~ao-objeto a que se refere.
Por exemplo, Ka
(t) denota o pre
o de exer
io de uma
all sobre o
p
ativo A, na data t, e Kb (t) indi
a o pre
o de exer
io de uma put sobre o ativo B, na data t.
Os pr^emios das op
~oes de
ompra ser~ao denotados pela letra C ,
om um ndi
e inferior
indi
ando o ativo a que se refere. O mesmo vale para as op
~oes de venda, tro
ando a letra C
pela letra P . Por exemplo, Ca (t) indi
a o pr^emio de uma
all sobre o ativo A na data t, e Pb (t)
indi
a o pr^emio de uma put sobre o ativo B, na data t.
Portanto, as taxas de retorno das op
~oes de
ompra (assinadas na data t0) que t^em A e B
omo a
o~es-objeto ser~ao dadas por
a
r a =
(max(Sa(t0 )ex
= (max(Sb(t0 )ey
r b
(2.10)
(max(Kap(t0 )
= (max(Kbp(t0 )
rpb
Sb (t0 )
ey ;
0)
(2.11)
10
Quando n~ao houver duvidas quanto as datas que estamos usando, omitiremos a letra t dos
pr^emios, dos pre
os de exer
io e das
ota
~oes dos ativos para n~ao sobre
arregar a nota
~ao.
Uma outra forma de es
rever as express~oes 2.10 e 2.11 e denir os domnios das v.a. x e y
nos quais o termo max(S0 exp(x) K; 0) e positivo.
K; 0) > 0
() x > ln
K
S
S exp(x); 0) > 0
() x < ln
K
S
max(S exp(x)
max(K
por
(2.12)
Considerando 2.12 nas express~oes 2.10 e 2.11, redenimos as taxas de retorno das op
~oes
r
a =
r b =
rpa =
rpb =
8
1
>
< Ca (t0 )
>
:
Ka
(t0 )
Sa (t0 )
< x < +1
.
.
(Sb(t0 )ey
Kb (t0 ) Cb (t0 ))
se ln
Kb
(t0 )
Sb (t0 )
< y < +1
. .
(Kap(t0 )
se
1 < x < ln
8
1
>
< Pb (t0 )
>
:
se ln
8
1
>
< Pa (t0 )
>
:
Ka (t0 ) Ca (t0 ))
8
1
>
< Cb (t0 )
>
:
(Sa (t0)ex
Kap (t0 )
Sa (t0 )
.
.
( (t0 )
Sb (t0 )
Kbp
Pb (t0 ))
ey
se
1 < y < ln
Kbp (t0 )
Sb (t0 )
(2.13)
. .
Sendo o
oe
iente de
orrela
~ao entre os pre
os dos ativos A e B, 6= 1, a fun
~ao
densidade de probabilidade
onjunta de x e y e dada por
f (x; y)
= 2
1p
a b
2
exp
2(1
2 )
x a
a
2
x aa y bb
y b
b
2
Nas proximas se
~oes derivaremos as express~oes dos valores esperados das taxas dadas em 2.13
e das
ovari^an
ias entre elas, para o
aso deste portfolio exemplo. Isto sera usado no
^omputo
do retorno esperado (Rp) e da vari^an
ia (p) do portfolio.
Mas, antes, vamos abordar o modelo de Markowitz para analise de portfolios e inserir Rp e
p neste
ontexto.
11
Quanti
ar uma medida para o ris
o de um investimento e tarefa perseguida ha muito tempo,
mas foi nos anos 50 que Harry M. Markowitz deniu um retorno esperado e uma medida para o
ris
o de um portfolio. Ele mostrou que a vari^an
ia do retorno era uma medida signi
ativa do
ris
o do portfolio, sob determinadas hipoteses. Tambem deniu formulas para o
al
ulo desta
vari^an
ia.
As hipoteses basi
as nas quais o modelo esta baseado referem-se ao
omportamento do investidor.
2.2.1 Prefer^en
ias de Ris
o e Fun
~ao Utilidade
Quando as pessoas investem em a
~oes ou outros ativos de ris
o, elas esperam obter um retorno
maior do que elas teriam se tivessem investido num ativo livre de ris
o.
Investimentos que ofere
am uma alta taxa de retorno v^em sempre a
ompanhados de uma
alta taxa de ris
o. E nem todas as pessoas est~ao dispostos a
orrer altos ris
os.
De um modo geral, podemos
ara
terizar os nveis de propens~ao ao ris
o por parte do investidor de tr^es formas:
avers~ao ao ris
o: o indivduo prefere um retorno menor, porem mais garantido do que
arris
ar-se muito para ter
han
e de altos retornos;
propens~ao ao ris
o: o indivduo esta mais interessado em maximizar os lu
ros, n~ao se
importando muito
om as
han
es de perdas;
neutralidade ao ris
o: o indivduo n~ao se importa muito em obter um resultado
erto ou
parti
ipar de um jogo, desde que os dois ofere
am o mesmo retorno.
O
on
eito de utilidade serve para des
rever estas prefer^en
ias dos indivduos. Utilidade e
o nvel de satisfa
~ao que uma pessoa (no
aso o investidor) tem ao fazer um
erto investimento
(ou
onsumir um bem ou exer
er uma atividade). Ja a fun
a~o utilidade mede numeri
amente
esta satisfa
~ao.
No
aso das 3
ategorias
itadas a
ima, uma pessoa que tenha avers~ao ao ris
o tera uma
fun
~ao utilidade
^on
ava em rela
~ao a origem, no espa
o utilidade retorno (g2.1 (a)). Ja
para o indivduo propenso ao ris
o, a fun
~ao sera
^on
ava em rela
~ao a origem (g2.1 (b)). E
para o neutro ao ris
o, a fun
~ao sera linear (g2.1 (
)).
Uma hipotese importante na teoria de portfolios e esperar que o investidor queira maximizar
os retornos de seus investimentos, para uma dada taxa de ris
o. E
onsiderar tambem que os
ativos e derivativos formadores da
arteira interagem entre si, para a partir da quanti
armos
o ris
o total do portfolio.
O modelo de Markowitz baseia-se ainda nas seguintes hipoteses:
1. investidores
onsideram
ada investimento representado por uma distribui
~ao de probabilidade dos retornos esperados para um uni
o perodo;
12
R
(a)
R
(b)
R
(c)
Sob estas
onsidera
~oes, um portfolio e
onsiderado e
iente se n~ao ha outro que ofere
a um
retorno esperado maior
om a mesma taxa de ris
o; ou se n~ao ha outro que ofere
a menor ris
o
a uma mesma taxa de retorno esperado.
N~ao espe
i
aremos qual a fun
~ao utilidade U do retorno a ser usada na sele
~ao de portfolios
(isto
a a
riterio do investidor). Mas
omo partiremos do prin
pio que estamos trabalhando
om investidores aversos ao ris
o, podemos espe
i
ar algumas propriedades de U:
(a) U 0 (Rp) > 0 (utilidade marginal da riqueza3 e positiva)
(b) U 00 (Rp) < 0 (utilidade marginal da riqueza de
res
e
om um
res
imento da riqueza)
(
) dRd [ U 00 (Rp)=U 0 (Rp) 0 (avers~ao ao ris
o absoluta marginal de
res
endo
om o
res
imento da riqueza)
p
Portanto, vamos
onsiderar um investidor que pro
ure maximizar o valor esperado de alguma
fun
~ao utilidade U = U (Rp), onde Rp e o retorno do portfolio no perodo
onsiderado.
Markowitz usou uma aproxima
~ao quadrati
a da fun
~ao utilidade para gerar um
onjunto de
portfolios e
ientes no espa
o retorno esperado ris
o (E [Rp p ). A aproxima
~ao e baseada
na expans~ao em serie de Taylor de U em torno do retorno esperado (Ep = E [Rp) do portfolio4:
3
4
13
1
2
U (R p )
= U (Ep) + U (Ep)(Rp Ep) + U (Ep )(Rp Ep)2
(2.14)
E [U (Rp )
= U (Ep) + 1 U 00 (Ep)p2
(2.15)
e portanto,
2
00
(2.16)
Um portfolio e
iente, obtido pela maximiza
~ao de f , que minimiza a vari^an
ia para um dado
retorno esperado forne
e uma boa aproxima
~ao para a maxima utilidade esperada E [U (Rp ).
A
onstante e interpretada
omo um par^ametro de pondera
~ao entre o retorno esperado
e o ris
o do portfolio. E um par^ametro de propens~ao ao ris
o. Quanto mais alto o valor de ,
mais importante e o retorno esperado em
ompara
~ao a vari^an
ia do portfolio para o investidor.
Ha
onvenientes em se trabalhar
om a analise E [Rp p no lugar de maximizar diretamente
a fun
~ao utilidade:
1. fa
ilidade na obten
~ao de maximos e mnimos de fun
~oes
onvexas;
2. generalidade do modelo, no sentido deste adaptar-se a mais de um tipo de fun
~ao utilidade (quando esta fun
~ao utilidade pode ser aproximada razoavelmente por uma fun
~ao
quadrati
a).
A gura 2.2 ilustra diferentes graus de avers~ao ao ris
o, mas todos os gra
os referem-se a
indivduos aversos ao ris
o.
As retas dos gra
os (a), (b) e (
) representam
urvas6 de indiferen
a, ao longo das quais
o mesmo nvel de utilidade (ou satisfa
~ao) e obtido. Mas quanto mais a esquerda esta a reta,
maior e a utilidade que ela representa. O gra
o (a) representa uma avers~ao ao ris
o maior
do que os gra
os (b) e (
). Mas em todos eles o objetivo do investidor e sempre maximizar a
utilidade, ou seja, minimizar os valores de i.
Para um ponto (e; v) 2 (Ep p2 )
1 = j e (0 < j < )
v i =
tan(j )
2
5
isto vai depender de qu~ao bem
omportada for a fun
~ao utilidade para admitir uma aproxima
~ao quadrati
a
su
ientemente boa.
6
No espa
o Ep p2
14
Ep
U1
U2
1
3
2
3
4
(a)
p2
(b)
Ep
U3
1
2
3
4
(c)
minf
e + vg
ou
maxfEp
p2 g
15
Seja P um portfolio formado por n ativos (aqui o ativo pode ser uma a
~ao, uma op
~ao,et
).
Denotemos por wi a fra
~ao do total do investimento W do portfolio atribuido ao ativo i. Temos,
ent~ao, a restri
~ao
n
X
i=1
wi = 1
(2.17)
n
X
i=1
wi Ri
Denote por p2 a vari^an
ia do portfolio P. Vamos supor que
onhe
emos as
ovari^an
ias (ij )
entre as taxas de retorno dos ativos i e j (i; j = 1::n).
Da mesma forma que
al
ulamos a vari^an
ia dos ativos pela express~ao
i2 = E [(Ri E (Ri ))2
podemos al ular
n
X
i=1
wi Ri E (
n
X
i=1
n
X
wi Ri ))2 = E [(
i=1
n
X
wi Ri
i=1
wi R i )2 = E [(
n
X
i=1
wi (Ri R i ))2
2 X
2
X
wi2 i2 + 2
wi wj ij
i=1 j =1;j 6=i
i=1
2
X
Por indu
~ao, para um portfolio
om n ativos, sua vari^an
ia e dada por
n
X X
X
wi wj ij
p2 = wi2 i2 + 2
i=1 j =1;j 6=i
i=1
(2.18)
16
Podemos expressar 2.18 de forma matri
ial. Denote por w o vetor de pesos do portfolio, z o
vetor de retornos esperados de
ada ativo do portfolio e a matriz de
ovari^an
ia destes ativos.
Desta forma, o retorno esperado do portfolio e sua vari^an
ia pode ser es
rito
omo
R p
p2
= w00 z
(2.19)
= w w
onde w; z 2 <n; 2 <nn e o smbolo (0) indi
a opera
~ao de transposi
~ao.
Sendo 1 o vetor n 1 onde
ada elemento do vetor e o numero 1, a restri
~ao 2.17 e dada
por
w0 1 = 1
2.2.3 Sele
~ao de Portfolios
Agora ja temos todas as informa
~oes ne
essarias para que o investidor, de a
ordo
om o seu
perl, possa sele
ionar um portfolio. Temos variaveis de de
is~ao w1 ::wn, a fun
~ao objetivo a ser
minimizada, dada por
n
X
i=1
X X
wi wj ij
wi R i +
i=1 j =1;j
wi = 1
Podemos ter outras restri
~oes lineares, por exemplo geradas por limita
~oes de aquisi
~ao de
ativos impostas pelo proprio mer
ado nan
eiro, da forma
Ew = e
e
Dw d
onde d e e s~ao vetores de limita
~oes de investimento para determinadas
ombina
~oes de
ativos, dadas pelas matrizes E e D.
Sem perda de generalidade, admitiremos sempre quantidades n~ao negativas de
ada ativo.
Assim, o problema de programa
~ao matemati
a que obtemos neste modelo e o seguinte:
8
>
>
>
>
<
>
>
>
>
:
min
s:a
w0 z + w0 w
Dw d
Ew = e
w0 1 = 1
w0
(2.20)
17
Vamos voltar ao portfolio didati
o da se
~ao 2.1.3, formado pelos ativos A e B e por op
~oes sobre
estes ativos. Manteremos a nota
~ao introduzida naquela se
~ao,
om a ex
e
~ao de que omitiremos
o termo t0 (data de assinatura das
alls e das puts). Portanto os pre
os das a
~oes ser~ao dados
por pSa e Sb, os pr^emios das op
~oes por Ca, Cb , Pa e Pb e os pre
os de exer
io por Ka
, Kap, Kb
e Kb . Re
omenda-se voltar aquela se
~ao para rever as deni
~oes e nota
~oes usadas .
Vale lembrar ainda que dada uma v.a
ontnua x em < e sua respe
tiva fun
~ao densidade de
probabilidade p(x), a esperan
a de uma fun
~ao g(x) e dada por
E [g(x) =
+1
1
g(x)p(x) dx
Em virtude das repeti
~oes dos
al
ulos algebri
os que envolvem a dedu
~ao das express~oes das
ovari^an
ias, detalhamos esses
al
ulos em algumas delas. As demais usam ra
io
nio analogo.
Esperan
a das taxas de retorno
Nota
~ao: erf(a) = Ra+1 exp(
sa
2) d
E [rsa =
+1
1
+1
exp(x)f (x) dx 1
Z
1
(
x a )2
= p2
dx 1
exp x
2a2
1
a
Z
1=00 exp 21pa2 + a +1 exp t2 dt 1
1
1
= exp a + 2 a2 1
18
a
Z +1
1
= E [r
= Ca (Sa exp(x)
a
1=00
Ka )f (x) dx
ln KSaa
+1
Z
(
x a )2
Sa
p
exp x
2a2 dx
Ca a 2 ln KSaa
Z +1
Ka
(
x a )2
p
dx 1
exp
2a2
Ca a 2 ln KSaa
Sa
1
exp
a + a2
2Ca
2
1 (K
) 1
2C a
erf
erf
1p ln Ka
Sa
a 2
1p ln Ka
Sa
a 2
2
2
a
= 1p2 (x
a a2 )
= 1p2 (x
a )
100 : >
pa
ln
p
Ka
Sa
E [rpa =
1=00
Pa
1 + erf
(Kap
Sa exp(x))f (x) dx
1p ln Kap
Sa
a 2
2
a
a
2
Covari^an
ias
No lugar de
al
ularmos as express~oes de
ori^an
ias para as taxas de retorno simples dadas
pre
o nal ) de a
~oes e op
~oes,
em 2.13, deduziremos express~oes para o retorno simples (= pre
o ini
ial
sendo a diferen
a entre as duas grandezas apenas uma
onstante, isto e,
Taxa de retorno simples = Retorno simples - 1.
19
O resultado numeri
o de
ovari^an
ias n~ao muda, visto que para duas v.a. X e Y e
onstantes
k1 e K2 vale a igualdade
ov(X + k1 ; Y + k2 ) =
ov(X; Y ):
Cov(rsa ; rsb )
ov(rsa ; rsa )
E2x
+1
1
=
=
var(rsa )
E2x Ex2
exp(2x)f (x) dx
Z +1
1
(
x a )2
= p2
exp 2x
2a2 dx
1
a
Z
2=00 p1 exp 2 + 22 +1 exp( 2 ) d
a
a
2
= exp
a + 0:5a2
a 2a2
p
a 2
Logo,
var(rsa ) = exp 2a + a2
exp(a2 ) 1
Cov(rsa ; rsb )
ov(rsa ; rsb )
=
=
20
sendo
Exy
=
=
3=00
4=00
5=00
=
Ex
+1 Z +1
1
f (x; y)exp(x + y) dy dx
Z
+1 Z +1
exp(x + y)
2ab 1 2 1 1
x a y b y b 2
x a 2
1
+ ( ) dy dx
exp 2(1 2 ) ( ) 2
b
a
a
b
Z +1 Z +1
1
exp(pa + b)
2
2
exp a u + bv 2(1 2 ) (u 2uv + v ) dv du
2 1 2 1 1
1p exp a + + 1 2 (1 2)
b
b
2
2 Z
Z +1
+1
2
exp( ) d exp( 21 (u2 2u(a + b))) du
1
1
Z +1
1
1
1
2
2
2
p exp a + b + 2 b (1 ) + 2 (a + b )
exp( 2 ) d
1
exp a + b + 21 (b2 + a2) + ab
p
+1 Z +1
1
f (x; y)exp(x) dy dx
Z +1 Z +1
exp(
a )
1
2
2
p
exp a u 2(1 2) (u uv + v ) dv du
2 1 2 1 1
1 exp(a ) Z +1 Z +1 exp( 2 ) d exp( 1 (u2 2ua )) du
6=00 p
2
2
1
1
Z +1
7=00 p1 exp + 1 2
2
a
2 a 1 exp( ) d
= exp a + 21 (a2 )
3=00
Ey
= exp(b + 12 b2)
Mudan as de variavel:
21
8
<
300 : :
400 :
= (x
= (y
u
v
= p2(11
500 :
2 )
a )=a
b )=b
p1 (u a b)
w=
= p2(11
600 :
700 :
u b (1 2 ))
(v
w=
2 )
(v
u)
p1 (u a )
Portanto,
ov(rsa ; rsb ) = exp(a + b +
Cov(rsa ; r
a )
ov(rsa ; r
a )
= C1 fSaE2x
a
Ka Ex g sa a
onde
E2x
1
2
= 2 exp(2a + 2a ) 1
Ex
1
1
2
= 2 exp(a + 2 a ) 1
erf
erf
1p ln Ka
Sa
a 2
1p ln Ka
Sa
a 2
a
2 2
a
2
22
Cov(rsa ; rpa )
ov(rsa ; rpa )
= P1 f
a
onde
E2x
p
1
1
2
= 2 exp(2a + 2a ) 1 + erf p2 ln KS a
a
a
Ex
p
1
1
1
2
= 2 exp(a + 2 a ) 1 + erf p2 ln KS a
a
a
a
22
a
2
Cov(rsa ; r
b )
ov(rsa ; r
b )
= C1 fSbExy
b
sa
fS E
Cb b y
Ex Kb g b Ex
Kb E1 g + sa b
onde
Rb
Exy
= 1 (ln KS b
b )
1
1
2
2
= 2 exp(a + b + 2 (a + b ) + a b) 1
Ex
1
1
2
= 2 exp(a + 2 a ) 1
Ey
1
1
2
= 2 exp(b + 2 b ) 1
Ex
= 12 exp(a + 12 a2 )
erf
erf
p1
2
Rb
p1 (Rb
2
erf
2
b )
p1 (Rb
2
b a )
E1
= 21 1
erf
23
p1 (Rb )
Cov(rsa ; rpb )
= P1
ov(rsa ; rpb )
SbExy + Ex Kbp
sa
f SbEy + Kb
E1 g + sapb
Pb
pb Ex
onde
Rbp
Exy
p
1
= (ln KSb
b )
1
1
2
2
= 2 exp(a + b + 2 (a + b ) + ab ) 1 + erf p12 (Rb
Ex
1
1
2
= 2 exp(a + 2 a ) 1 + erf p12
Rbp
Ey
= 12 exp(b + 12 b2 ) 1 + erf p12
Rbp b
Ex
= 12 exp(a + 12 a2 )
E1
1
1
p
= 2 1 + erf 2 (Rb )
a
b a )
Cov(r
a ; rpa )
ov(r
a ; rpa ) =
onde
8 1
< Ca Pa
:
a pa ;
a pa ;
se
Ka > Kap
se
Ka Kap
24
E2x
= 12 exp(2a + 2a2 )
p
1
erf p ln KS a
2
a
Ex
= 12 exp(a + 21 a2 )
p
erf 1p ln KS a
2
a
E1
p
1
1
= 2 erf p2 ln KSaa
a
a
22
erf
a a2
a
erf
erf
1p ln Ka
Sa
a 2
1p ln Ka
Sa
a 2
1p ln Ka
Sa
a 2
a
a
a a2
Cov(r
a ; r
b )
ov(r
a ; r
b )
fS S E SaExKb
Sb Ey Ka
g
Ca Cb a b xy
b
a
(S E Kb
E 1 ) +
a
b
(
Sa Ex Ka
E1 )
Ca
Cb b y
onde
Ra
1
= (ln KS a
a )
Rb
1
= (ln KS b
b )
Exy
Ex
2 ) u)
#)
2 2
25
+1 (
"
1 erf p 1
2(1
R
exp( 21 (u a )2) du
Z
Ey
E1
Z +1
1
1
= 2p2
R
a
"
erf
1
1
2
Ex = exp(a + a ) 1
2
2
E1
= 21 1
erf
erf
2 )
#)
Rb u b (1 2 )
1
p
2(1
erf
u)
(R
u)
2 ) b
p1 (Ra
2
p1 (Rb
2
#)
exp( 12 u2) du
a )
Ra
p
E y = 1 exp(b + 1 b2 ) 1
2
2
E 1 = 1 1
2
2 )
#)
Rb
Rb
erf
b )
Cov(r
a ; rpb )
ov(r
a ; rpb )
onde
Ra
1
= (ln KS a
a )
26
p
1
= (ln KS b
Rbp
b )
Os valores de Exy , Ex, Ey , E1 , Ex ,E1 ,E x e E 1 s~ao iguais pas express~oes de
ov(r
; r
),
tro
ando o sinal da fun
~ao erf e tro
ando tambem Rb
por Rb .
Cov(rp ; rp )
a
ov(rpa ; rpb )
Sa Sb Exy
Pa Pb
+ Ppba (Sa Ex
onde
Rap
p
1
= (ln KSaa
a )
Rbp
p
1
= (ln KSb
b )
Exy
Ex
Ey
2 )
Rbp u
#)
u)
#)
27
Z Rpa (
"
1 + erf p 1
2(1
1
exp( 21 (u b)2 ) du
(
Z R
1
p
= 2 2
1 + erf
1
p
a
E1
"
2 )
u b (1
Rbp
1
p
2(1
2 )
Rbp
Ex = 1 exp(a + 1 a2 ) 1 + erf p1 (Rap
2
2
2
u
a )
2 )
#)
#)
exp( 21 u2 )
du
p
R
1
1
+
erf pa
E1 =
2
2
E y = 1 exp(b + 1 b2 ) 1 + erf p1
2
2
2
Rbp
b
E 1 = 1 1 + erf pRbp
2
2
Cov(r
a ; r
a )
1
Neste
aso, vamos
al
ular a
ovari^an
ia entre as taxas de retorno de duas op
~oes de
ompra sobre o mesmo ativo A, mesma data de expira
~ao, mas
om pre
os de exer
io
diferentes e, portanto, pr^emios diferentes.
Sejam K1
e K2
os pre
os de exer
io e C1 e C2 os pr^emios das
alls.
ov(r
a ; r
a
1
) =
C1 C2
1 2
K = maxfK1 ; K2 g
onde
E 2x
1
2
= 2 exp(2a + 2a ) 1
erf
1p ln K
Sa
a 2
a
2 2
a
28
Ex
= 21 exp(a + 12 a2) 1
E1
1
= 2 1
erf
erf
1p ln K
Sa
a 2
1p ln K
Sa
a 2
a
a a2
Cov(rpa ; rpa )
1
Aqui
al
ulamos a
ovari^an
ia entre as taxas de retorno de duas op
~oes de venda sobre o
mesmo ativo A, mesma data de expira
~ao, mas
om pre
os de exer
io e pr^emios diferentes.
Sejam K1p e K2p os pre
os de exer
io e P1 e P2 os pr^emios das
alls.
ov(rpa ; rpa
1
) =
P1 P2
p1 p2
K = minfK1p; K2p g
onde
E 2x
1
1
2
= 2 exp(2a + 2a ) 1 + erf p2 ln SK
a
a
Ex
1
1
1
2
= 2 exp(a + 2 a ) 1 + erf p2 ln SKa
a
E1
1
1
= 2 1 + erf p2 ln SK
a
a
Cov(r aT ; r a )
a
a
2 2
a
2
Neste
aso
al
ulamos a
ovari^an
ia entre duas op
~oes de
ompra sobre o mesmo ativo,
mas
om datas de expira
~ao diferentes (dadas por T e , < T ).
Suponha que temos a informa
~ao
S (T )
xT = ln a
= N (; 2 )
Sa (t0 )
Denote por x o retorno logartimi
o do ativo no perodo t0 a e xT o retorno logartimi
o
do ativo no perodo a T . Ent~ao
29
x
xT
= ln SaS(Ta( ) ) = N (T
; T
onde
2
=
=
T
T2
T
T2
T
T
T
T
T
T2
T
T
t0
t0
t0
t0
t0
t0
Desta forma, podemos
al
ular a
ovari^an
ia entre as duas op
~oes usando a mesma express~ao da Cov(r
; r
),
onsiderando x = xT , y = x e =
orr(xT ; x ).
Cov(rp ; rp )
Idem ao
aso anterior, onde a express~ao usada para o
al
ulo da
ovari^an
ia e a dada por
Cov(rp ; rp ).
Cov(r
; rp )
Idem aos
asos anteriores, usando a express~ao dada em Cov(r
; rp ) para o
al
ulo da
ovari^an
ia.
a
a
aT
aT
a
Exemplos de portfolios e
ientes gerados pela resolu
~ao do problema 2.20 ser~ao dados no
aptulo 6. O tratamento numeri
o das integrais envolvidas nas express~oes de
ovari^an
ia, dadas
a
ima, sera feito no
aptulo 4.
30
Cap
tulo 3
Assimetria de Portfolios
No
aptulo anterior vimos
omo otimizar portfolios
om
riterios baseados em media e vari^an
ia,
onsiderando
ertas hipoteses sobre o
omportamento de um investidor que objetiva maximizar
o valor esperado de alguma fun
~ao utilidade U (R), onde R e a taxa de retorno do portfolio em
1 perodo. Tambem utilizamos uma aproxima
~ao quadrati
a para a fun
~ao utilidade e supomos
um distribui
~ao lognormal para o retorno de a
~oes de ris
o do mer
ado.
Nosso objetivo agora e estender estes resultados usando, alem do valor esperado do retorno
do portfolio e de sua vari^an
ia, o seu ter
eiro momento
entral, a assimetria do retorno do
portfolio em rela
~ao ao seu primeiro momento.
Veremos neste
aptulo
omo
al
ular assimetria e
o-assimetria para o
aso de portfolios
mistos de a
~oes e op
~oes europeias de forma exata,
omo no
aso das
ovari^an
ias do
aptulo 2.
No
aptulo 6 veremos exemplos de portfolios e
ientes no espa
o retorno ris
o assimetria.
3.1 Sele
~ao de Portfolios e Momentos de Ter
eira Ordem
n
X
i=1
n
wi R i
n
XX
wi wj ij
p2 = E [(Rp R p )2 =
i=1 j =1
31
32
Assimetria de Portfolios
XXX
wi wj wk mijk
m3p = E [(Rp R p )3 =
i=1 j =1 k=1
onde
R i
U 000 (R p )
U 00 (R p )
0
3
(
Rp R p )2 +
U (R p ) + U (R p )(Rp R p) +
2!
3! (Rp Rp)
(n 1)
+ + U (n (1)!Rp) (Rp R p)n 1 + rn
(3.1)
onde
rn =
U n ( )
(Rp R p)n
n!
2 (Rp ; Rp )
Desta forma, a fun
~ao utilidade torna-se um polin^omio de grau n em Rp. Este numero n
pode variar ate obtermos pre
is~ao su
iente na aproxima
~ao. Como as fun
~oes utilidade que
melhor representam o
omportamento de um investidor averso ao ris
o s~ao fun
~oes do tipo
exponen
ial negativa U (y) = K (1 e y ) e a logartmi
a U (y) = log(y), que s~ao fun
~oes suaves,
usar aproxima
~oes
om n 3 na expans~ao de Taylor e satisfatorio. Mas se n~ao restringirmos
o
omportamento destas fun
~oes utilidade, aproxima
~oes mais pre
isas s~ao ne
essarias. Isto
envolve
al
ulos de momentos de ordem maior ou igual a 3, e
omo veremos no
al
ulo de
assimetrias, esta tarefa pode ser bastante dif
il.
Aproximando U por um polin^omio de ter
eira ordem, a utilidade esperada do portfolio sera
dada por
U 00 (R p )
U 000 (R p )
2
3
E [U (Rp ) = E [U (Rp ) +
2! E [(Rp Rp) + 3! E [(Rp Rp)
U 00 (R p ) 2 U 000 (R p ) 3
= U (Rp) + 2! p + 3! mp
Aqui assimetria (skewness) e denido omo o ter eiro momento entral n~ao normalizado
(3.2)
33
+ U 00 2)=U 0 2 0
() U 0 U 000 + U 00 2 0
() U 000 (U 00 2 = U 0 ) < 0
() U 000 > 0
= (
0 000
UU
Ou seja, para uma pessoa
om de
res
ente ou
onstante avers~ao absoluta ao ris
o, U 000 deve
U > 0).
ser positivo, o que impli
a numa prefer^en
ia por skewness positivo ( m
A equa
~ao 3.2 mostra que a in
u^en
ia do skewness m3p sobre a utilidade esperada e positiva.
Logo, supondo que as prefer^en
ias do investidor s~ao dadas pela fun
~ao utilidade U =
U (R p ; p2 ; m3p ), o
onjunto de portfolios otimos devera
3
Para quanti
ar as prefer^en
ias de um investidor quanto a propens~ao ao ris
o, nossa fun
~ao
objetivo a ser maximizada sera dada por
3
p p2 + m
max RP
P pP
P P P
= max P
i wi zi
i j wi wj ij + i j k wi wj wk mijk
>
s:a
>
i wi = 1
:
wi 0
(i = 1::n)
8
>
>
<
(3.3)
34
Assimetria de Portfolios
rc
kc (t0)
-1
Vamos agora voltar ao exemplo didati
o de portfolio da se
~ao 2.1.3 e amplia-lo para
onter
tr^es tipos de ativos basi
os, a
~oes A, B e C , e op
~oes europeias sobre estas a
~oes. Os retornos
logartmi
os das a
~oes s~ao dados por
=
ln
S (T )
ln
S
(t0 )
Sa (T )
Sa (t0 )
S (T )
ln b
Sb (t0 )
= N (a; a2 )
= N (b ; b2 )
= N (
;
2 )
1p
= 8
exp
h
exp 2 x y (a
b
a b
2
2 ) +
(1 b
ab ) + 2 x
x a
a
x b
b
z
2
(ab b
(1
2a ) +
a ) + 2
x
2
y b z
a b
2
(1 ab )
i
(a
ab b
)
ab ; a
; b
= 1 + 2ab b a
35
E (rs ))
3E2xEx + 2Ex3
onde
E3x
E2x
Ex
m(rsa ; rsa ; r
a )
m(rsa ; rsa ; r
a )
onde
Ka E2x )
Ka Ex ) a I2x + 22sa a
36
Assimetria de Portfolios
E3x
1p (ln Ka
)
a
a 2 Sa
= 0:5exp(3a + 4:5a2 )[1
E2x
erf (g
Ex
erf (g
I2x
erf (g
3pa )
2
2pa )
2
pa )
exp(2a + 2a2 )
= P1a (
Sa E3x + KapE2x ) +
2sa (S E
Pa
onde
p
g = a1p2 (ln KSaa
a )
e as express~oes de E3x, E2x, Ex e I2x s~ao iguais as de m(rs ; rs ; r
), tro
ando o sinal da
fun
~ao erf .
m(rs ; r
; r
)
a
a1
a2
m(rsa ; r a 1 ; r a2 )
onde
K = maxfK1
; K2
g
g = a1p2 (ln SKa a )
g1
g2
E2x
37
1p (ln K1
a 2 Sa
= 1p2 (ln KS 2
=
a )
a )
erf (g1
Ex
erf (g1
E 2x
erf (g2
E x
erf (g2
2pa )
2
pa )
2
2pa )
2
pa )
2
a1
a2
1 (S 2 E S E (K p + K 2) + K pK pEx)
p
1 2
P1 P2 a 3x a 2x 1
sa 2
(S E S E (K p + Kp2) + K1pK2pE1)
P1 P2 a 2x a x 1
+ Ppa22 (SaE2x K1pEx) + Ppa21 (SaE 2x K2pE x)
+2sapa1pa2
onde
K = minfK1p ; K2p g
g = 1p2 (ln SK a )
a
g1
g2
E2x
38
Assimetria de Portfolios
Ex
E 2x
E x
m(rsa ; r a ; rpa )
onde
L=
8 1
>
>
< Ca Pasa
>
>
:
se
Ka < Kap
0
g
E3x
E2x
Ex
E1
.
.
1p (ln Ka
a )
a 2 Sa
= 0:5exp(3a + 4:5a2 )[erf (h 3p2a ) erf (g
= 0:5exp(2a + 2a2 )[erf (h 2p2a ) erf (g
erf (g
3pa )
2
2pa )
2
pa )
39
2saExy
E2xy
2sa sb
onde
E2xy
Exy
E2x
= exp
1
2
2
= exp a + b + 2 (a + b ) + a bab
= exp 2a + b + 2a2
Ex
= exp
a + a2
Ey
= exp
b + b2
m(rsa ; rsa ; r
b )
m(rsa ; rsa ; r
b )
= C1 (SbE2xy
= 1 (ln KS b
b )
E2x Kb )
2sa (S Exy
Ex Kb
)
Cb b
22
bI2x + 2sa
bIx + sa (Sb Ex E1 Kb
) 2sa
b
Cb
b
onde
Rb
E2xy
Exy
= 0:5exp
1
2
2
= 0:5exp a + b + 2 (a + b ) + a bab [1
1
2
40
Assimetria de Portfolios
E2x
Ex
1
2
= 0:5exp a + a2 [1 erf ( p12 (Rb
= 0:5exp
E1
= 0:5[1
I2x
2a ab ))
a ab ))
1
b + b2 [1 erf ( p (Rb
b ))
Ey
Ix
erf ( p (Rb
1
2
erf ( p (Rb ))
a + 0:5a2
1 (S E2xy
Pb
E2x Kbp) +
2sa (S Exy
b
Pb
22sa (S Ex
Pb
Ex Kbp)
As express~oes de E3x, E2x, Ex e E1 s~ao iguais as de m(rs ; rs ; r
b), tro
ando o sinal da
fun
~ao erf e tro
ando tambem Rb
por Rbp = 1 (ln KS b).
m(rs ; r
; r
)
b
m(rsa ; r a ; r b )
onde
Ra
p
b
b
= 1 (ln KS a
b
a )
1 (S S E S K
E S K
E + K
K
E )
a b 2x
b a xy
a b x
Ca Cb a b 2xy
sa
(S S E S K
E S K
E + Ka
Kb
E1)
Ca Cb a b xy a b x b a y
a
b
b
(
Sb Exy
Kb
Exb )
(S E a Ka
Exa )
Cb
Ca a 2x
+ saC
a (SbEyb Kb
E1b) + saC
b (Sa Exa Ka
E1a )
a
b
+
a
bIx sa
a
b
Rb
E2xy
= 1 (ln KS b
b
= exp
b )
1 erf
E2x
2(1
ab )
R a
= exp
2a + b + 22
a
= exp
2(1
a + 2
= exp
R a
2(1
Z
b + b2 )
p
2(1
+1
R a
ab
))
ab )
!#
du
(Rab
(Rab
uab ))
du
a )2
!#
uab ))
du
b ab )2
uab b (1 2ab ))
"
Z +1
exp[ 0:5u2 1
= 2p12
R
a
a b ab )2
!#
Rab
exp[ 0:5(u
ab )
b ab )2
exp[ 0:5(u
+1
ab )
R a
"
1 erf
+1
1 erf
b
Exy
2
uab b (1
Rab
"
E1
+1
Z +1
1
2
2
= exp a + b + 2 (a + b ) + ab ab
exp[ 0:5(u
R
"
!#
1
b
2
1 erf p
2(1 ab ) (Ra uab b(1 ab )) du
1 erf
Ey
Z
"
Ex
"
Exy
41
erf
2(1
ab )
1
2
2
= 0:5exp a + b + 2 (a + b ) + a bab (1
!#
du
Rab
erf
uab )
!#
p1 (Rb
2
du
b ab a )
42
Assimetria de Portfolios
Exb
E2ax
Exa
Eyb
Eb
= 0:5exp
a + 0:5a2 (1 erf
= 0:5exp
= 0:5exp
a + 0:5a2 (1 erf
= 0:5exp
b + 0:5b2 (1 erf
= 0:5(1
erf
1
p (Ra 2a ) )
2
p1 (Ra
2
p1 (Rb
2
a )
b )
1
p (R b ) )
2
1
1 = 0:5(1 erf p2 (Ra ) )
Ea
Ix
= exp
a + 0:5a2
m(r
a ; r
b ; r
)
m(r
a ; r
b ; r
)
Nota ~ao:
= 1 (ln KS a
Ra
xy
E3
E3
y
= 2p12 exp
"
1 erf
= 2p12 exp
"
1 erf
= 2p12 exp
"
1 erf
a )
a
K
ln b
b Sb
K
ln
S
Rb
= 1(
b )
= 1(
)
2ab
2a
2b
a
b
= 1
= 1
= 1
A
B
C
=
=
=
= 1 ( B
E3
43
a
b
ab
ab b
a
ab a
b
a
+ ab (
C
sigmab ))
= p12 (Ra + T )
Z
+1
2
2
exp[ 0:5(u a b ab)2
a + b + 0:5(a + b ) + a b ab
p
2(1
R a
(Rb
ab )
a + 0:52
2(1
R a
2(1
Rb
ab )
b + 0:52
+1
ab )
+1
R a
(Rb
uab
b (1 2ab ))
exp[ 0:5(u
uab ))
du
a )2
!#
du
exp[ 0:5(u
uab
!#
a b ab )2
b (1 2ab ))
!#
du
44
Assimetria de Portfolios
E13
E1
yz
Ez1
E1
y
E13
2
Exz
E2
z
"
Z +1
exp[ 0:5u2 1
= 2p12
R
a
= exp 2p12
"
1 erf
= 2p12 exp
"
1 erf
= 2p12 exp
"
1 erf
1
p
2(1
+ 0:5
2
1
p
2(1
(Rb
b )
(Rb
b )
b + 0:52
p
2(1
+1
+1
ab )
2(1
2(1
+ 0:52
2(1
a )
Ra
du
b b )2
1
p
2(1
+1
!#
du
"
a )
b b )2
!#
exp[ 0:5(u
erf
du
)2
exp[ 0:5(u
ub
))
uab ))
!#
exp[ 0:5(u
ub b (1 2b ))
ub b (1
Ra
+1
2b ))
b )
a +
+ 0:5(a2 +
2 ) + a
a
Rb
ab )
Rb
= 2p12 exp
"
1 erf
b +
+ 0:5(2 + 2 ) + b
b
Z +1
1
= 2p2
exp[ 0:5u2 1
R
= 2p12 exp
"
1 erf
erf
ua ))
+1
)2
!#
du
du
(Rb
2a ))
ua a (1
exp[ 0:5(u
!#
ub ))
!#
exp[ 0:5(u
!#
du
du
a a )2
E12
= 2p12 exp
"
1 erf
a + 0:52
p
2(1
+1
a )
ua a (1
"
erf
2(1
= 0:5exp
+ 0:5
2 (1 erf
E1
= 0:5(1
erf
Eyb
= 0:5exp
b + 0:5b2 (1 erf
Exa
(Ra
du
!#
ua ))
du
p1 (R
2
p1 (Rb b ) )
)
Rb
= 0:5exp
ln KSaa ln Sbb ln KS
a )
!#
a + 0:5a2 (1 erf
erf
2a ))
pR )
erf
+1 Z +1 Z +1
= 0:5(1
= 0:5(1
Ea
) =
Ez
ex+y+z
a a )2
exp[ 0:5(u
Ra
Z +1
1
= 2p2
exp[ 0:5u2 1
R
Eb
E(
45
p )
Ra
p1 (Ra
2
a )
p )
f (x; y; z )exp(x + y + z ) dz dy dx
Z
Z
Z
1=00 exp(pa + b +
) +1 +1 +1 expf 1 [au2 + bv2 +
w2
2R
8R3
R
a
R
R
b
+2uvA + 2uwB + 2vwC 2Ra u 2Rbv 2R
wg dw dv du
46
Assimetria de Portfolios
2=00
Z +1 Z +1
1
exp(a + b +
+
2 R)
2
2
R
R
2
2
expf 21R [u2(a B
) + v2 (b C
) + 2v(u(A
+2uR( B
a)g dv du
p1
+1
F (u;v)
2 d
BC
RC
)
Rb +
)
Z +1 Z +1
1
2
[1 erf (F (u; v))
= 4
exp(a + b +
+ 2
R)
R
R
expf 21
[u2 + v2 + 2v( uab
b + C
) + 2u(
B a
)g dv du
1p
3=00
1p
1
1
exp(a + b +
+
2 R + (
C
b )2 )
2
2
2Z 2 Z
+1 +1
[1 erf (F (u; ))
G(u)
Ra
expf 21
[u2
+ v2 + 2u(
B a
+ ab (
C b
)) 2g d du
1p
G(u)
1
1
exp(a + b +
+
2 R + (
C
b )2 + 0:5T 2 )
2
2
2Z 2 Z
+1 +1
[1 erf (F ( ; ))expf 2 2 g d d
L
G( )
5=00 1 exp( + + + 0:5(2 + 2 + 2 ) + + + L2 )
a b ab
a
a
b
b
a
b
2Z +1 a b
H1 (')exp( '2 ) d'
0
4=00
onde
H1 (')
exp( 2L')
G1 (')
= p12 (Rb
+1
G1 (')
[1
b C ab (
2' + L) + ab T )
F1 ('; )
47
p
1 p
[
R
+ (' 2(B + a
C ) + ( 2L T )(B + Cab )
2R p
+C 2
+ C
b C 2
)
R
u = 1a (x a )
v = 1b (y b )
w = 1
(z
)
8
<
:
200
=
300
= p12 (v b + C uab )
400
500
1
2R (w +
(uB + vC
R))
= p12 (u + T )
'=
Z +1
1
1
2
2
H2 (')exp(
E(
) = 2 exp a + b + 2 (a + b ) + a bab
0
onde
ex+y
H2 (')
G2 (')
G1 (')
G2 (')
C2
(R + )
2R
T2
L2
E(
F1 ('; ) +
ex+z
[1
p1 C
F2 ('; )
a
+1
'2 ) d'
b ab
Z +1
1
1
2
2
H3 (')exp(
) = 2 exp a +
+ 2 (a +
) + a
a
0
'2 ) d'
48
Assimetria de Portfolios
onde
+1
H3 (')
G3 (')
G1 (') + p b C
2
G3 (')
[1
2R bC
F3 ('; )
F1 ('; ) +
T3
T1 + b ab
L3
= p12 (Ra + T3 )
Z +1
1
1
2
2
E(
) = 2 exp b +
+ 2 (b +
) + b
b
H4 (')exp(
0
onde
e y +z
H4 (')
G4 (')
G1 (')
F4 ('; )
F1 ('; )
T4
T1 + a
L4
= p12 (Ra + T4 )
+1
G4 (')
[1
1 exp( + 1 2
E( ) =
a
2
2 a
onde
ex
H5 (')
G5 (')
G1 (')
+1
G5 (')
L25 )
[1
p1 ( C b )
+1
'2 ) d'
49
r
F1 ('; )
1
2
2R [
(b C
C
) R
F5 ('; )
T5
L5
= p12 (Ra + T5 )
a
1
1 2
E( ) =
2 exp(b + 2 b
onde
ey
H6 (')
G6 (')
G1 (')
+1
G6 (')
F1 ('; ) +
T6
b ab
L6
= p12 (Ra + T6 )
1 exp( + 1 2
E( ) =
2
2
onde
ez
H7 (')
G7 (')
G1 (')
T7
L7
C2
(
2R
[1
+1
p1 C
F6 ('; )
F7 ('; )
L26 )
+1
G7 (')
L27 )
[1
p1 bC
F1 ('; ) +
2R bC
= 1
(
B + C
ab
= p12 (Ra
+ T7 )
R)
+1
50
Assimetria de Portfolios
1
E (1) =
2 exp(
onde
L28 )
H8 (')
G8 (')
G1 (')
F8 ('; )
F1 ('; )
T8
= 0
L8
= p12 (Ra )
+1
+1
G8 (')
[1
p1 ( C b )
C2
(
Cb
(
2R
R))
Cap
tulo 4
(4.1)
erf (g(x)) =
+1
g(x)
t2 dt
O metodo que usaremos para
al
ular integrais do tipo 4.1
onsiste em apli
ar o metodo dos
trapezios em intervalos Ink < de amplitudes
onstantes, mas
ada um
om parti
~ao diferente.
Esta parti
~ao n~ao homog^enea e para favore
er os intervalos que ne
essitam de um maior numero
de pontos (nos quais o valor da fun
~ao a ser integrada ne
essita ser
al
ulado).
Entenda-se por Ink o k-esimo subintervalo da n-esima aproxima
~ao da integral.
Posteriormente apli
aremos extrapola
~ao de Ri
hardson para a
elerar a
onverg^en
ia das
integrais (adiante expli
aremos o que e extrapola
~ao e metodo dos trapezios).
Estes subintervalos Ink 's ser~ao obtidos da seguinte forma:
xa-se uma amplitude ini
ial 2 <. Uma primeira aproxima
~ao da integral pode ser dada
52
Na n-esima parti
~ao da integral, havera n subintervalos Ink ,
ada um
om parti
~oes diferentes:
n = 1 : [a; a +
n = 2 : [a; a + ; [a + ; a + 2
...
n = 1:
a+
n = 2:
a+
a+2
n = 3:
a+
a+2
a+3
I3
I3
I3
53
x0k = a + k
xk = a + (k + 1)
hk = 2n k
N = 2n k + 1
k=
n=
0; 1; 2; ; n 1
1; 2;
onde
N e o numero de ab
issas, x0k e xk s~ao extremos de intervalo em Ink .
n = 1 : I10
n = 2 : I20 ; I21
...
A gura 4.1 ilustra su
essivas aproxima
~oes para a integral 4.1 e
omo as parti
~oes a
ima
s~ao feitas.
A n-esima aproxima
~ao da integral sera dada por
+1
f (x)dx
nX1 Z
k
k=0 In
f (x)dx
(4.2)
e bases
.
f (xi )
e f (x i 1 )
f (x) dx
=h
N
X
i=0
fi
0:5h(f0 + fN )
(4.3)
54
h
x
x 0 =a
x1
x2
x n-1
x n =b
I
I
=
=
I1
I2
1
12 (b
1 (b
12
00
a)h21 f (1 )
00
a)h22 f (2 )
1 ; 2 2 (a; b).
Supondo f 00 (1 ) = f 00 (2 ) teremos
2
I
= I2 + h2 h2 h2 (I2 I1)
1 2
Este tipo de pro
edimento, no qual geramos uma ter
eira aproxima
~ao a partir de outras
duas, e que espera-se ser melhor, e
hamado Extrapola
a~o de Ri
hardson.
Vamos supor que o erro de um pro
edimento numeri
o
om passo xo h possa ser es
rito na
forma
E=
1
X
j =k
aj hj
ak 6= 0
55
1
X
j =k
1
X
j =k
aj hj1
(4.4)
aj hj2
(4.5)
Multiplique 4.4 por hk2 e 4.5 por hk1 e subtraia uma da outra. Assim teremos
I=
1 (I2hk
1
k
h hk
1
I1 hk2 ) +
1
X
j =k
aj
hk
1 (hj hk
hk 2 1
2
hj1 hk2 )
Se h1 = 2h2 e h2 = h
1
I = k (I2 2k
2 1
I1 ) +
1
X
j =k+1
aj hj (2k
2j )
(4.6)
O efeito do pro
esso a
ima foi aumentar a menor pot^en
ia de h na formula do erro.
Veremos agora
omo podemos usar estas ideias para a
elerar a
onverg^en
ia das integrais
pelo metodo dos trapezios. O metodo que une regra do trapezios e extrapola
~ao de Ri
hardson
e
hamado Metodo de Romberg.
4.2 Tratamento de Erros
O objetivo aqui e expressar o erro
ometido no pro
esso de integra
~ao numeri
a anterior (dado em 4.2) em termos de pot^en
ia de h (a
hamada formula de Euler-Ma
laurin), a m de
posteriormente apli
armos extrapola
~ao de Ri
hardson e a
elerar a
onverg^en
ia das integrais.
4.2.1 Formula de Euler-Ma
laurin
t(exp(xt)
exp(1)
+1
tk
1) = X
Bk (x)
1 k=0
k!
e
t
exp(t)
1=
+1
X
k=0
Bk
tk
k!
56
2. Propriedades:
(a) Bk (0) = 0 (k 0)
(b)
Bk (1) = 0
(k 6= 1)
( )
B2k+1 = 0
(k > 0)
(d)
(e)
(k > 1)
(k 0)
dem de d) e e):
d t(exp(tx)
dx exp(t)
1) =
1
=
=
t2 exp(tx)
exp(t) 1
=
=
=
=
t2 exp tx
exp(t) 1
+1 0 tk
X
Bk (x)
k!
k=0
+1 0
X
t 2k
B2k (x)
(2k)2
k=0
+1
X
k=0
B2k+1 (x)
t2k+1
(2k + 1)!
(4.7)
t2 (exp((tx) 1))
t2
+
exp(t) 1
exp(t) 1
+1 tk
+1
X
X
tk
t Bk (x) + t Bk
k! k=0 k!
k=0
+1
+1 t2k+1 X
+1
+1
X
X
t2k
t2k
t2k+1 X
+
+
+
B2k 1 (x)
B2k
B2k 1
B2k (x)
(2k)! k=1
(2k 1)! k=0 (2k)! k=1
(2k 1)!
k=0
+1
+1
2k+1
2k
X
X
(B2k (x) + B2k ) (2k + 1) (2tk + 1)! + 2k (B2k 1(x) + B2k 1 ) (2t k)!
k=0
k=1
(4.8)
57
Z h
y
1
f (2k) (x + y)dy
B 2k
Xk =
(2k)! 0
h
onde f (x) e a fun
~ao integrando de 4.2.
(4.9)
=
=
=
=
=
=
Logo,
h2 Xk
B
Xk 1 = 2k 2 f (2k 3) (x + h) f (2k 3) (x)
(2k 2)!
(4.10)
Quando k = 1 temos,
X1
Z h
= 21 B2 hy f 00 (x + y)dy
0
Z h 2
1
y 00
y
= 2
f (x + y)dy
0 h2 h
h
Z h 2
Z h 2
y 0
y 0
y
y
1
1
f (x + y)
= 2
2 0 h2 h f (x + y)dy
0 h2 h
0
h
Z h
1
1
y
f (x + y)dy
f (x + y) + 2
=
h2 2h
0Z h 0
x+h
= 21h [f (x + y) + f (x) + h12
f (y)dy
(4.11)
58
Z x+h
1
f (x) =
f (y)dy + hX1
h 0
Z x+h
1
B h 0
= h
f (y)dy + h3 X2 + h 2 f (x + h)
2!
0
Z x+h
0 i
B h 0
= h1
f (y)dy + h 2 f (x + h) f (x)
2!
0 h
i
+h3 B4!4 f 000 (x + h) f 000 (x) h5X3
f (x)
=
Z x+h
m
X
B2k 2k
f (y)dy +
= h1
(2k)! h
0
2
h m+1 Xm+1
k=1
1 f 2k 1(x + h) f 2k 1(x)
Podemos mudar os limites de integra
~ao em 4.9 para [jh; (j + 1)h.Repetindo a deriva
~ao
de 4.11 para j = 1; 2; ; n 1 e substituindo x por x0 obtemos
n
X
j =0
f (x0 + jh)
Z x +nh
1
= h1
f (y)dy + (f (x0 + h)
2
0
x0
f (x0 ))
m
X
i
B2k 2k 1 h 2k 1
f
(
x0 + h) f 2k 1 (x0 ) + Em
h
(2k)!
k=1
onde
Em =
Z nh
y
h2m+1
f (2m+2) (x0 + y)dy
B2m+2
(2m + 2)! 0
h
B2m+2 (2m+2)
();
(2m + 2)! f
2 (x0k ; xk )
(4.12)
Ikn
f (y)dy
=
=
Z x0
59
f (y)dy
x0k
N
X1
f
hk
j =0
f (k0k ) + Ek
Logo,
Z
+1
f (y)dy
=
=
nX1 Z
k
k=0 8In
nX1 <
k=0
nX1 <
k=0
: n k
8
f (y)dy + Er
: n k
n k
2X
j =0
n k
2X
j =0
f (x0k + jhk )
hk
f (x0k + jhk )
hk
9
=
2 [f (x0k ) + f (xk ) + Ek ; + Er
9
=
2 [f (x0k ) + f (xk ); + Et
onde
Et
nX1 X
+1
B2l
(2l)!
k=0 l=1
2n
2l h
+1
a+n
f (y)dy
Dena T0;i
omo sendo a aproxima
a~o da integral referente ao i-esimo passo do pro
esso numeri
o.
A m de a
elerar a
onverg^en
ia da integral, queremos
onstruir as aproxima
~oes Tk;j da integral,
referentes a k-esima aproxima
~ao do j-esimo passo, apli
ando Extrapola
a~o de Ri
hardson.
n=1:
n=2:
n=3:
..
.
n=j:
T0;1
T0;2 T1;1
T0;3 T1;2
T2;1
..
..
..
...
.
.
.
T0;j T1;j 1 T2;j 2 Tj 1;1
60
Denotando
J=
temos,
+1
X
+1
X
T0;n
B2l
J+
(2l!)
l=1
T0;n+1
J+
B2l
(2
l!)
l=1
+1
X
+ (2Bl2!)l
l=1
+1
f (y)dy
f (2l 1) (x0k )
+1
a+n
f (y)dy
2n+1
0k
Z a+(n+1)
4
f (y)dy +
3 a+n f (y)dy
a+n
+1
Denindo
T1;n =
temos
T1;n
J+
+1
X
B2l
(2
l!)
l=2
+1
X
+ (2Bl2!)l
l=1
Z +1
4T0;n+1
3
T0;n
f (2l 1) (x0k )
2n+1
Z a+(n+1)
1
f (y)dy +
3 a+n f (y)dy
a+(n+1)
Observe que essa
onverg^en
ia pode n~ao existir dependendo do
omportamento da fun
~ao
Mas no
aso f (x) = exp( x2), f 2 C 1(<) e seu de
aimento para zero quando jxj ! 1 e
rapido o su
iente para
ompensar o
res
imento dos numeros de Bernoulli.
Generi
amente,
f (:).
Tj;n =
j
T
4 1 4
j
1;n+1 Tj 1;n
61
Dessa forma, os primeiros termos da somatoria do erro que envolvem pot^en
ias de h v~ao
sendo eliminados.
Exemplo
O metodo a
ima nos gera as seguintes aproxima
~oes para a integral
Z
(1
erf (3x
2))exp(
x2 )dx
onde
2
erf (x) = p
Z x
0
exp(
x2 )dx
A primeira aproxima
~ao da integral sem o uso da extrapola
~ao e dada por:
=1:
=2:
n = 3 :
n = 4 :
n = 5 :
n = 6 :
n = 7 :
n = 8 :
n
1:105380599
1:121862111
1:117203034
1:115603036
1:115176011
1:115067668
1:115040485
1:115033683
Observe que a
onverg^en
ia das aproxima
~oes da integral e lenta se utilizarmos somente a
regra do trapezio. Mas, extrapolando os valores a
ima obtemos
1:127355948
1:115650007
1:115069704
1:115033669
1:115031553
1:115031424
1:115031415
#
1:114869611
1:115031017
1:115031266
1:115031412
1:115031415
1:115031415
1:115033579
1:115031270
1:115031414
1:115031415
1:115031415
1:115031261
1:115031415 1:115031415
1:115031415 1:115031415 1:115031415
1:115031415 1:115031415 1:115031415 1:115031415
Cada dgito sublinhadoe o ultimo algarismo
orreto na aproxima
~ao. Neste
aso, 1.115031415
e o valor aproximado da integral.
Podemos aqui xar uma toler^an
ia para a aproxima
~ao da integral e limitar o numero de
passos na extrapola
~ao, por exemplo denindo um
riterio de parada da forma jTj;n+1 Tj;nj <
e jTj+1;n Tj;nj < .
O exemplo anterior e de
arater ilustrativo, visto que poderamos ter parado as itera
~oes ja
na segunda
oluna (apontada pela
e
hinha), de a
ordo
om o
riterio de parada estipulado.
62
Cap
tulo 5
+1 Z +1
+1
H (x;y)
(5.1)
exp( z 2 )dz
Para resolver as integrais do tipo 5.1 pre
isamos de um metodo que ofere
a boa pre
is~ao juntamente
om o menor numero de nos possvel nas variaveis x e y.
Podemos redenir 5.1 por
Z
onde
+1
H (t) =
H (t)exp( t2 )dt
+1
g(t)
(5.2)
(5.3)
x2 ) no intervalo [a; +1)
64
f (x)w(x)dx
(5.4)
onsiste em en
ontrar pesos A0is e nos x0is (xi 2 [a; b) espe
os para aproximar a integral
a
ima pela soma
Z b
f (x)w(x)dx
= Q(f ; w; a; b) =
Ai f (xi)
x2 )),
(5.5)
e deve ser integravel
Vamos en
ontrar (n+1) pontos (xi; yi = f (xi)) e pesos Ai, n arbitrario, impondo a restri
~ao
de que a aproxima
~ao 5.5 seja exata para polin^omios de grau menor ou igual a 2n-1. Isto e, que
seja exata nos
asos em que f (x) e um polin^omio de grau menor ou igual a 2n 1.
Podemos determinar um polin^omio
Qn (x) = xn +
nX1
k=0
qk xk
(5.6)
(j = 0::n 1)
qk
Z b
xk+j exp
x2 )dx =
Z b
(5.7)
(5.8)
onde grau(S (x)) e grau(R(x)) s~ao menores ou iguais a n-1, teremos P (xi) = R(xi ) se xi
forem os zeros de Qn(x) .
Como grau(R(x)) n-1, por interpola
~ao Lagrangiana temos
R(x) =
1
Rb
a
n
X
i=1
f (x)g (x)w(x) dx
65
om
Li (x) =
n
Y
x xj
x xj
j =1;j 6=i i
nX1 Z b
2
S (x)Qn (x)exp( x )dx = sj xj Qn(x)exp( x2 )dx = 0
a
j =0
Ent~ao, de 5.8,
Z b
P (x)exp( x2 )dx =
Z b
R(x)exp( x2 )dx =
n
X
i=1
R (x i )
Z b
Li (x)exp( x2 )dx =
n
X
i=1
Ai P (xi )
onde
Ai =
Z b
Li (x)exp( x2 )dx
(5.9)
66
xi
n=16
3.375541041407145E-03
5.804615541291068E-02
1.820547674925986E-01
3.679542616521208E-01
6.067329515918165E-01
8.897071867487791E-01
1.209623943058248E+00
1.561080047413430E+00
1.940565510629326E+00
2.346403257792925E+00
2.778776657707638E+00
3.240017969804344E+00
3.735450317676748E+00
4.275562412865718E+00
4.882323348658508E+00
5.615285661142339E+00
Ai
1.869170292281806E-02
9.002873675900949E-02
1.513016842298416E-01
1.867836831554472E-01
1.814697491540716E-01
1.370740042987264E-01
7.788177757936561E-02
3.198902321781417E-02
9.092778869377570E-03
1.702422581625416E-03
1.977389463502662E-04
1.316842547890586E-05
4.489296733529744E-07
6.537390919551276E-09
2.904141450987963E-11
1.709992622046885E-14
Apli
ando integra
~ao Gaussiana ao nosso problema ini
ial 5.1 , a aproxima
~ao da integral
dupla, apos mudan
as apropriadas de variaveis, sera dada por2:
Z
+1 Z +1
g(x)
m
n X
X
i=1 j =1
Ai Bj F (xi ; yj )
onde xi; Ai s~ao os nos e os pesos na dire
~ao x e yi; Bi s~ao os nos e os pesos na dire
~ao y.
Uma estimativa do erro da integra
~ao Gaussiana e dada pelo teorema (ver [13):
Teorema 1. Se f 2 C 2n[a; b, ent~ao
Z b
n
X
f (2n) ( )
Ai f (xi ) =
w(x)f (x)dx
(2n)! < pn; pn >
a
i=1
para algum 2 (a; b) e
Z b
n
Y
i=1
w(x)p2n dx
(x
xi )
Esta express~ao n~ao
orresponde, na prati
a, ao metodo que usamos para avaliar integrais do tipo 5.1. Isto
sera expli
ado mais adiante.
2
67
Outros tipos de quadratura Gaussiana poderiam ter sido usados para resolver integrais do tipo
4.1 e 5.1.
Por exemplo, os pesos e nos das quadraturas de Gauss-Hermite e Gauss-Laguerre, referentes,
respe
tivamente, as integrais
Z
+1
1
f (x)e
x2 dx
+1
f (x)e x dx
I=
+1
(1
erf (3x
2))e
x x2 dx
para n
res
ente, ate o ponto em que
onseguimos obter os nos (n=16):
n
2
4
8
12
14
15
16
0.892830244
0.820232479
0.824555848
0.824184939
0.824149912
0.824155619
0.824156806
A tabela a
ima sugere que n=20, por exemplo,ja geraria um resultado satisfatorio.
Em vista das di
uldades surgidas, o metodo que usamos para
omputar integrais do tipo
5.1
onsiste em
ombinar o metodo de Romberg (da se
~ao 4.1)
om os dados do metodo de
Gauss para n=16,
om fun
~ao peso w(x) = e x em (0; +1). Usamos Gauss para avaliar as
integrais iteradas do tipo 5.2 e Romberg para avaliar 5.3. Por isso, quando falarmos no metodo
Romberg+Gauss e sobre esta
ombina
~ao de metodos que estamos falando.
Abaixo est~ao alguns exemplos de aproxima
~oes obtidas por alguns metodos de integra
~ao.
Observe que apesar do insatisfatorio numero de nos obtido pelo pro
esso da se
~ao anterior
2
68
+1
(1
erf (3x
2))e
x x2 dx
Metodo
Valor da Aproxima
~ao
Romberg em (a,b)
0.8241563130
Romberg em (0,+1)
0.8241563128
Gauss (n=16)
w(x) = e x em (0,+1)
0.8241568063
Gauss-Hermite (n=20)
0.8018970972
Gauss-Laguerre (n=24)
0.8189798236
Maple
0.8241563129
2
2.
+1 Z +1
(1
erf (3y x
2))exp(
x y x2 y2 ) dx dy
Metodo
Aproxima
~ao
Gauss + Romberg 0.4922038787
Maple
0.4922038788
3.
+1 Z +1
0
(1
erf (y + x + 2))exp( x y x2 y2 ) dx dy
Metodo
Aproxima
~ao
Gauss + Romberg 0.0001242206589
Maple
0.0001242206580
5.3 Efeitos do uso de diferentes metodos de integra ~ao sobre fronteiras e ientes69
4.
1 0
+1
(1
erf (y + x + 2))exp( x y x2 y2 ) dx dy
Metodo
Aproxima
~ao
Gauss + Romberg 0.08375908383
Maple
0.08375908378
Comparando as varias regras de integra
~ao numeri
a,
omo a de Romberg utilizada no
aptulo 4, vemos que para um mesmo esfor
o
omputa
ional, a quadratura Gaussiana gera
melhores resultados. Como n~ao podemos prever exatamente qual o numero de nos usar para
obter uma estimativa da integral dentro de uma pre
is~ao desejada, a quadratura Gaussiana tem
uma
erta desvantagem
om rela
a~o aos metodos baseados em extrapola
~ao, visto que os nos e
os valores da fun
~ao integrando nestes nos na n-esima aproxima
~ao n~ao poder~ao ser aproveitados
numa n+1-esima aproxima
~ao.
5.3 Efeitos do uso de diferentes metodos de integra
~ao sobre
fronteiras e
ientes
Ate agora analisamos a quest~ao de aproxima
~ao numeri
a de integrais do tipo 5.3 sem
onsiderarmos qual a in
u^en
ia destes resultados sobre o resultado nal do problema de otimiza
~ao,
isto e, sobre portfolios e
ientes.
O que se observou pelos exemplos numeri
os da se
~ao anterior foi um resultado melhor, em
termos de pre
is~ao, para o metodo de Romberg, mas a um
usto
omputa
ional maior. Ou seja,
ele aproxima o valor da integral usando um numero de nos muito maior do que o numero usado
na quadratura Gaussiana (
er
a de 2n nos (n-esima aproxima
~ao),
ontra os 16 em Gauss).
Mas alguns testes revelaram que a in
u^en
ia do uso destes dois metodos de aproxima
~ao
de integrais para gerar matrizes de
ovari^an
ia (no
aso de portfolios
om op
~oes) e pequena
e, portanto, a solu
~ao do problema de otimiza
~ao pela abordagem MV (media-vari^an
ia) n~ao e
afetada neste
aso.
Sejam INEC16 e INEC17 op
o~es de
ompra tendo
omo a
~oes-objeto INEP4 e OTC19 e
OTC24 tambem op
~oes de
ompra, mas sobre TEL4.
Abaixo seguem as
ovari^an
ias entre retornos das op
~oes a
ima usando-se o metodo de Romberg e tambem os nos e pesos da Quadratura Gaussiana (n=16).
Cov-Gauss OT C 19
OT C 24
INEC 16 1.2406466672 1.3343696501
INEC 16 1.0490361321 1.1248742353
70
Cov-Romberg OT C 19
OT C 24
INEC 16
1.2406466541 1.3343696566
INEC 17
1.0490361115 1.1248742573
Os valores das
ovari^an
ias das tabelas a
ima s~ao muito proximos, n~ao afetando o resultado
em termos de portfolios e
ientes. Mais testes s~ao ne
essarios a m de veri
ar se este mesmo
omportamento vale para o
aso de aproximarmos integrais duplas pelo metodo de gauss e
obtermos pou
as mudan
as em termos de assimetria e
o-assimetria (para o
aso de otimiza
~ao
de portfolios pelo
riterio MVA media-vari^an
ia-assimetria).
Cap
tulo 6
Suponha que um investidor queira saber qual a melhor maneira de
ombinar num portfolio os
oito ativos abaixo:
BB4, PET4, TEL4, WHM3, VAL4
Op
~oes de
ompra europeias OTC16 e OTC171
Op
~oes de venda europeias OTP19, OTP24
71
72
8
>
>
>
>
<
(P MV )
(P MV A)
8
>
>
>
>
<
>
>
>
>
:
>
>
>
>
:
max
s:a
max
s:a
i wi zi
i wi zi
P P
j wi wj ij
=1
wi 0
(i = 1::n)
i wi
P P
j wi wj ij
+ Pi Pj Pk wi wj wk mijk
=1
wi 0
(i = 1::n)
i wi
73
Todas as express~oes de retorno, vari^an
ia-
ovari^an
ia, assimetria e
o-assimetria dos portfolios
foram
omputadas usando os metodos vistos nos
aptulos 4 e 5 (
ujas rotinas implementadas
est~ao listadas nos ap^endi
es A e B).
As taxas de retorno esperadas para os
omponentes das
arteiras dos exemplos (taxas estas
dadas pelas express~oes 2.9 e 2.13,
aptulo 2) e os respe
tivos desvios padr~oes est~ao na tabela
6.5.
Os
oe
ientes de
orrela
~ao entre estas taxas est~ao na tabela 6.6 e 6.7.
As fronteiras e
ientes obtidas pela resolu
~ao do sistema (PMV) est~ao no nal deste
aptulo.
Observe que a in
lus~ao de op
~oes no portfolio expandiu nosso horizonte de possibilidades de
investimento,
omparando as fronteiras de C1, C2 e C3. Com op
~oes, temos uma grande gama
de portfolios e
ientes para diferentes valores de vari^an
ia e retorno esperado num domnio bem
maior do que o obtido
om
arteiras formados apenas por ativos basi
os.
Os portfolios desta
ados por bolinhas na gura da fronteira e
iente, para o
aso do exemplo
1 (
onj. C1), est~ao rela
ionados na tabela 6.8. Nesta tabela, a letra \e" signi
a retorno
esperado do portfolio e a letra \v" signi
a vari^an
ia.
As
arteiras C1 e C2 diferem somente em um dos ativos fundamentais, sendo que C1 possui
o ativo TEL4 no lugar de WHM3, presente em C2. As taxas de retorno destes dois ativos e suas
volatilidades n~ao diferem muito (
om rela
~ao ao retorno, aproximadamente 11% para WHM3 e
12% para TEL4). Por isso os resultados das tabelas 6.8 e 6.9 s~ao bem proximos. Vale desta
ar
74
que a presen
a da TEL4 em C1 n~ao substitui a presen
a das op
~oes plain vanilla sobre ela,
quando uma taxa de retorno maior e desejada no portfolio. Observe ainda a presen
a das op
~oes
OTP19 e OTP24 nos portfolios A e B dessas tabelas, apesar destes derivativos ofere
erem
uma expe
tativa de retorno negativa,
omo podemos ver pela tabela 6.5. Interpretamos a
presen
a destas op
~oes nestes portfolios e
ientes
omo uma tentativa de hedge, em vista da alta
volatilidade do retorno das op
~oes de
ompra e venda.
Observe que um portfolio e
iente pode n~ao
onter todos os ativos disponveis.
Vamos agora rela
ionar alguns portfolios e
ientes pela resolu
~ao do problema 3.3 (
aptulo 3).
As
o-assimetrias entre as taxas de retorno dos elementos do portfolio 2 (dado por C2) est~ao
des
ritas na tabela 6.12. Observe que os valores das
o-assimetrias que envolvem op
~oes s~ao bem
mais signi
ativas do que as que envolvem somente as a
~oes. Isto devido a maior assimetria do
retorno de op
~oes,
omo ja foi men
ionado no
aptulo 3.
A tabela 6.12 sugere-nos que a utiliza
~ao do
riterio MVA para sele
~ao de
arteiras e
ientes
formadas somente por fundamentais (no
aso do exemplo, a
~oes da BOVESPA) gerara resultados
muito proximos aos obtidos usando o
riterio MV.Isto porque a par
ela de
ontribui
~ao dos
termos de assimetria das a
~oes n~ao e t~ao signi
ativa para a fun
~ao utilidade esperada.
Agora vamos tomar os valores de dos portfolios e
ientes da tabela 6.9, rela
ionados pelas
letras A, B, C, D, E e F (no gra
o da fronteira e
iente, estas letras
orrespondem aos portfolios
desta
ados por \bolinhas" da esquerda para a direita, em movimento as
endente). Para
ada
um destes valores de vamos resolver o problema 3.3 para alguns valores de (
oe
iente de
pondera
~ao do termo da assimetria na fun
~ao utilidade esperada do portfolio). Os portfolios
e
ientes assim obtidos est~ao rela
ionados na tabela 6.11.
Os gra
os 6.1, 6.2 e 6.3 des
revem o
omportamento do skewness dos portfolios versus
retorno esperado, desvio padr~ao retorno esperado e desvio padr~ao retorno esperado
assimetria para os valores = 1 e 0 < < 1, para o exemplo C2.
Comparando os resultados obtidos pelos dois
riterios, dados nas tabelas 6.9 e 6.11, e
onsiderando que o pre
o do lote da TEL4 teve uma alta
onsideravel no perodo de vig^en
ia
do
ontrato (03/06/96 a 19/08/96), as melhores
arteiras foram obtidas levando-se em
onta a
assimetria dos ativos. Mas isto o
orreu devido a maior assimetria do retorno das op
~oes, isto e,
devido a estarmos otimizando portfolios mistos de a
~oes e op
~oes.
Por exemplo, para = 0:105 e = 0:100 o modelo MV nos gerou um portfolio e
iente
ontendo op
~oes de venda sobre TEL4, o que n~ao o
orreu
om o modelo MVA. Como era
previsto, a medida que aumentamos o valor do par^ametro , para um valor xo de , o modelo
MVA forne
e-nos portfolios e
ientes formados por per
entuais
res
entes em op
~oes de
ompra.
Esta
ara
tersti
a deve-se a n~ao exist^en
ia de restri
~oes de aquisi
~ao de derivativos e pela alta
taxa de retorno e assimetria que elas nos ofere
em.
75
Queremos ainda salientar que o estudo de estrutura
~ao otima de
arteiras mistas, formadas
por ativos fundamentais e derivativos
om retornos assimetri
os, foi feito aqui a nvel exploratorio. A utilidade do ter
eiro momento (assimetria) no
aso destes portfolios mistos e ini
ialmente defendida, ja que podemos estender o modelo MV in
luindo na fun
~ao utilidade esperada
a assimetria do retorno de portfolios.
Pelas observa
~oes que zemos no
aptulo 5
om rela
~ao a pre
is~ao no
al
ulo numeri
o do
tensor de ter
eira ordem, e ne
essario ainda um aperfei
oamento das te
ni
as de integra
~ao
utilizadas. Com isto teremos
ondi
~oes de aprimorar o modelo MVA para in
lus~ao de outras
op
~oes (
omo as exoti
as),
ujas express~oes de rentabilidade s~ao mais
ompli
adas do que as
express~oes das op
~oes europeias. E tambem ampliar as te
ni
as de visualiza
~ao e analise de
portfolios para estes
asos, ressaltando assim a import^an
ia do skewness de portfolios formados
por op
o~es.
6.2 Segundo exemplo
Foram analisadas 81
ota
~oes das a
~oes a
ima, retroativas ao dia 30/06/98. Como as op
~oes
ven
em em agosto, extrapolamos os retornos logartmi
os para 36 dias de preg~ao apos esta data.
Tambem
al
ulamos as taxas de retorno simples esperadas (tabela 6.12) para as a
~oes e op
~oes,
assim
omo o desvio padr~ao de
ada taxa.
A tabela 6.13
ontem a matriz de
orrela
~ao entre as taxas de retorno para todos os investimentos
onsiderados a
ima.
Para as op
~oes, temos
pre
os de exer
io: R$ 140,00 para TELBT10 e R$ 160,00 para TELBH10
pr^emios: R$ 17,00 para TELBT10 e R$ 0,50 para TELBH10
Resolvemos o problema (PMV) para um portfolio formado por todos os ativos e op
~oes
a
ima e tambem para um
arteira formada so pelas a
~oes (sem in
luir as op
~oes TELBH10 e
TELBT10).
Observando as fronteiras e
ientes para os dois
asos (veja adiante), xado um nvel de
ris
o, ou desvio padr~ao, a fronteira e
iente que
onsidera as op
~oes forne
e-nos um portfolio
om retorno esperado maior do que o obtido pela fronteira que
onsidera so as a
~oes. Isso se da
pelo fato de as op
~oes servirem
omo meio de prote
~ao a maiores os
ila
~oes no pre
o das a
~oes
(no
aso, a
~oes da TELEBRA S).
76
77
a ~ao
orr
BB4
PET4
TEL4
VAL4
WHM3
BB4 1.0000000000 0.1823564539 0.1578521444 0.0888047461 0.1722390250
PET4 0.1823564539 1.0000000000 0.5147879950 0.6293648575 0.2205331658
TEL4 0.1578521444 0.5147879950 1.0000000000 0.5835617107 0.1977843120
VAL4 0.0888047461 0.6293648575 0.5835617107 1.0000000000 0.1619850356
WHM3 0.1722390250 0.2205331658 0.1977843120 0.1619850356 1.0000000000
OTC16 0.1568451573 0.5118030420 0.9963686397 0.5804297367 0.1962824088
OTC17 0.1547705883 0.5054410381 0.9869885907 0.5735589167 0.1933646829
OTP19 -0.1073096454 -0.3461757989 -0.6444407927 -0.3892180077 -0.1374425047
OTP24 -0.1383966747 -0.4485565937 -0.8502748970 -0.5061052322 -0.1755751299
Tabela 6.6: Coe
ientes de
orrela
~ao entre as taxas de retorno das a
~oes e op
~oes
78
orr
BB4
PET4
TEL4
VAL4
WHM3
OTC16
OTC17
OTP19
OTP24
OTC16
OTC17
OTP19
0.1568451573 0.1547705883 -0.1073096454
0.5118030420 0.5054410381 -0.3461757989
0.9963686397 0.9869885907 -0.6444407927
0.5804297367 0.5735589167 -0.3892180077
0.1962824088 0.1933646829 -0.1374425047
1.0000000000 0.9953744913 -0.5969581835
0.9953744913 1.0000000000 -0.5247821186
-0.5969581835 -0.5247821186 1.0000000000
-0.8280633925 -0.7875704685 0.8654714267
Tabela 6.7: Continua
~ao da tabela 6.6.
OTP24
-0.1383966747
-0.4485565937
-0.8502748970
-0.5061052322
-0.1755751299
-0.8280633925
-0.7875704685
0.8654714267
1.0000000000
Portfolio
e
v
omposi
~ao
A
0.023 0.014 0.005 0.184 PET4
0.651 TEL4
0.165 OTP24
B
0.096 0.151 0.002 0.564 PET4
0.433 TEL4
0.003 OTP24
C
0.467 0.229 0.064 0.901 PET4
0.099 OTC17
D
0.970 0.317 0.190 0.735 PET4
0.265 OTC17
E
1.380 0.388 0.357 0.601 PET4
0.399 OTC17
F
1.820 0.465 0.603 0.456 PET4
0.544 OTC17
.
Tabela 6.8: Portfolios e ientes pelo riterio media-vari^an ia para o exemplo 1 (C1)
Portfolio
e
v
omposi
~ao
A
0.043 0.106 0.014 0.477 PET4
0.071 VAL4
0.409 WHM3
0.043 OTP24
B
0.206 0.171 0.025 0.704 PET4
0.274 WHM3
0.022 OTC17
C
0.467 0.229 0.064 0.899 PET4
0.002 WHM3
0.099 OTC17
D
0.970 0.317 0.190 0.682 PET4
0.318 OTC17
E
1.380 0.388 0.357 0.558 PET4
0.442 OTC17
F
1.820 0.466 0.606 0.454 PET4
0.546 OTC17
Tabela 6.9: Portfolios e
ientes pelo
riterio media-vari^an
ia para C2.
Portfolio
e
v
omposi
~ao
A
0.042 0.147 0.020 0.457 PET4
0.542 TEL4
0.001 BB4
B
0.120 0.156 0.0217 0.616 PET4
0.384 TEL4
C
0.221 0.167 0.025 0.821 PET4
0.179 TEL4
D
0.304 0.176 0.030 0.988 PET4
0.012 TEL4
Tabela 6.10: Portfolios e
ientes pelo
riterio media-vari^an
ia para C3.
79
80
Tabela 6.11: Portfolios e
ientes pelo
riterio media-vari^an
ia-assimetria para o
onjunto C1.
ativo taxa de retorno desvio-padr~ao
CGAS4
-0.03983
0.14406
INEP4
0.05236
0.17938
MAKR3
-0.04346
0.12435
PETR4
0.036153
0.11118
TELB4
-0.02251
0.12497
TLSP4
0.07066
0.13210
TELBH10
-0.80473
2.3380
TELBT10
0.15042
0.78972
Tabela 6.12: Taxa de retorno esperada e desvio-padr~ao para os investimentos do segundo exemplo
orr
CGAS4 INEP4 MAKR3 PETR4 TELB4
CGAS4 1.00000 0.327278 0.0742597 0.293132 0.34164
INEP4 0.327278 1.000000 -0.0129062 0.601057 0.61465
MAKR3 0.0742597 -0.0129062 1.000000 -0.140435 -0.183826
PETR4 0.293132 0.601057 -0.140435 1.000000 0.784221
TELB4 0.34164 0.61465 -0.183826 0.784221 1.000000
TLSP4 0.374945 0.554344 -0.23277 0.618559 0.66399
TELBH10 0.0877064 0.168615 -0.0430102 0.211345 0.20723
TELBT10 -0.334617 -0.597389 0.181918 -0.763793 -0.741684
Tabela 6.13: Correla
~ao entre as taxas de retorno das a
~oes e op
~oes do segundo exemplo
orr
TLSP4 TELBH10 TELBT10
CGAS4 0.374945 0.0877064 -0.334617
INEP4 0.554344 0.168615 -0.597389
MAKR3 -0.23277 -0.0430102 0.181918
PETR4 0.618559 0.211345 -0.763793
TELB4 0.66399 0.20723 -0.741684
TLSP4 1.00000 0.177058 -0.647495
TELBH10 0.177058 1.000000 -0.121658
TELBT10 -0.647495 -0.121658 1.000000
Tabela 6.14: Continua
~ao da tabela 6.13.
81
82
BB4.BB4
BB4.PET4
BB4.TEL4
BB4.VAL4
BB4.OTC16
BB4.OTC17
BB4.OTP19
BB4.OTP24
PET4.BB4
PET4.PET4
PET4.TEL4
PET4.VAL4
PET4.OTC16
PET4.OTC17
PET4.OTP19
PET4.OTP24
TEL4.BB4
TEL4.PET4
TEL4.TEL4
TEL4.VAL4
TEL4.OTC16
TEL4.OTC17
TEL4.OTP19
TEL4.OTP24
VAL4.BB4
VAL4.PET4
VAL4.TEL4
VAL4.VAL4
VAL4.OTC16
VAL4.OTC17
VAL4.OTP19
VAL4.OTP24
OTC16.BB4
OTC16.PET4
OTC16.TEL4
OTC16.VAL4
OTC16.OTC16
OTC16.OTC17
OTC16.OTP19
OTC16.OTP24
OTC17.BB4
OTC17.PET4
OTC17.TEL4
OTC17.VAL4
OTC17.OTC16
OTC17.OTC17
OTC17.OTP19
OTC17.OTP24
OTP19.BB4
OTP19.PET4
OTP19.TEL4
OTP19.VAL4
OTP19.OTC16
OTP19.OTC17
OTP19.OTP19
OTP19.OTP24
OTP24.BB4
OTP24.PET4
OTP24.TEL4
OTP24.VAL4
OTP24.OTC16
OTP24.OTC17
OTP24.OTP19
OTP24.OTP24
BB4
0.0505385252
0.0030752561
0.0023308007
0.0012892656
0.0132785857
0.0207538627
-0.3311915830
-0.3386035243
0.0030752561
0.0007138585
0.0003400919
0.0002965267
0.0022198392
0.0040654380
0.0013325650
0.0008032973
0.0023308007
0.0003400919
0.0004391309
0.0002133898
0.0029733847
0.0056692507
0.0024797822
0.0018084445
0.0012892656
0.0002965267
0.0002133898
0.0002450382
0.0015037447
0.0029612989
0.0015394342
0.0011557139
0.0132785857
0.0022198392
0.0029733847
0.0015037447
0.0188913176
0.0347165842
0.0114986329
0.0081968353
0.0207538627
0.0040654380
0.0056692507
0.0029612989
0.0347165842
0.0609494097
0.0134423026
0.0087850325
-0.3311915830
0.0013325650
0.0024797822
0.0015394342
0.0114986329
0.0134423026
-0.0157566302
-0.0138419035
-0.3386035243
0.0008032973
0.0018084445
0.0011557139
0.0081968353
0.0087850325
-0.0138419035
-0.0127156809
PET4
0.0030752561
0.0007138585
0.0003400919
0.0002965267
0.0022198392
0.0040654380
0.0013325650
0.0008032973
0.0007138585
0.0024051754
0.0008989431
0.0011675090
0.0055552581
0.0096056800
-0.4871690301
-0.5089445838
0.0003400919
0.0008989431
0.0007573136
0.0006039625
0.0050792918
0.0096074894
0.0040030421
0.0028953468
0.0002965267
0.0011675090
0.0006039625
0.0010345408
0.0038907043
0.0070424573
0.0020847373
0.0012027831
0.0022198392
0.0055552581
0.0050792918
0.0038907043
0.0321063469
0.0586652091
0.0185536755
0.0130896705
0.0040654380
0.0096056800
0.0096074894
0.0070424573
0.0586652091
0.1026386252
0.0216346313
0.0139114253
0.0013325650
-0.4871690301
0.0040030421
0.0020847373
0.0185536755
0.0216346313
-0.0255747717
-0.0224587425
0.0008032973
-0.5089445838
0.0028953468
0.0012027831
0.0130896705
0.0139114253
-0.0224587425
-0.0206404453
TEL4
0.0023308007
0.0003400919
0.0004391309
0.0002133898
0.0029733847
0.0056692507
0.0024797822
0.0018084445
0.0003400919
0.0008989431
0.0007573136
0.0006039625
0.0050792918
0.0096074894
0.0040030421
0.0028953468
0.0004391309
0.0007573136
0.0015265161
0.0007793724
0.0099321075
0.0182933718
0.0063348778
0.0044177621
0.0002133898
0.0006039625
0.0007793724
0.0008174455
0.0051925756
0.0097663174
0.0039242142
0.0028199591
0.0029733847
0.0050792918
0.0099321075
0.0051925756
0.0617328400
0.1106294470
0.0293001546
0.0197347840
0.0056692507
0.0096074894
0.0182933718
0.0097663174
0.1106294470
0.1912471487
0.0337895302
0.0201606941
0.0024797822
0.0040030421
0.0063348778
0.0039242142
0.0293001546
0.0337895302
-0.0414146218
-0.0363098170
0.0018084445
0.0028953468
0.0044177621
0.0028199591
0.0197347840
0.0201606941
-0.0363098170
-0.0334200513
VAL4
0.0012892656
0.0002965267
0.0002133898
0.0002450382
0.0015037447
0.0029612989
0.0015394342
0.0011557139
0.0002965267
0.0011675090
0.0006039625
0.0010345408
0.0038907043
0.0070424573
0.0020847373
0.0012027831
0.0002133898
0.0006039625
0.0007793724
0.0008174455
0.0051925756
0.0097663174
0.0039242142
0.0028199591
0.0002450382
0.0010345408
0.0008174455
0.0016572883
0.0050854663
0.0088699060
-0.3547914660
-0.3784112515
0.0015037447
0.0038907043
0.0051925756
0.0050854663
0.0327037764
0.0595133146
0.0181822160
0.0127229373
0.0029612989
0.0070424573
0.0097663174
0.0088699060
0.0595133146
0.1038630354
0.0211585210
0.0134302029
0.0015394342
0.0020847373
0.0039242142
-0.3547914660
0.0181822160
0.0211585210
-0.0251774405
-0.0221034374
0.0011557139
0.0012027831
0.0028199591
-0.3784112515
0.0127229373
0.0134302029
-0.0221034374
-0.0203203229
OTC16
0.0132785857
0.0022198392
0.0029733847
0.0015037447
0.0188913176
0.0347165842
0.0114986329
0.0081968353
0.0022198392
0.0055552581
0.0050792918
0.0038907043
0.0321063469
0.0586652091
0.0185536755
0.0130896705
0.0029733847
0.0050792918
0.0099321075
0.0051925756
0.0617328400
0.1106294470
0.0293001546
0.0197347840
0.0015037447
0.0038907043
0.0051925756
0.0050854663
0.0327037764
0.0595133146
0.0181822160
0.0127229373
0.0188913176
0.0321063469
0.0617328400
0.0327037764
0.3735381203
0.6575132436
0.1394270743
0.0907463435
0.0347165842
0.0586652091
0.1106294470
0.0595133146
0.6575132436
1.1235934363
0.1587891402
0.0889325628
0.0114986329
0.0185536755
0.0293001546
0.0181822160
0.1394270743
0.1587891402
-0.1964613828
-0.1742178881
0.0081968353
0.0130896705
0.0197347840
0.0127229373
0.0907463435
0.0889325628
-0.1742178881
-0.1644250366
OTC17
0.0207538627
0.0040654380
0.0056692507
0.0029612989
0.0347165842
0.0609494097
0.0134423026
0.0087850325
0.0040654380
0.0096056800
0.0096074894
0.0070424573
0.0586652091
0.1026386252
0.0216346313
0.0139114253
0.0056692507
0.0096074894
0.0182933718
0.0097663174
0.1106294470
0.1912471487
0.0337895302
0.0201606941
0.0029612989
0.0070424573
0.0097663174
0.0088699060
0.0595133146
0.1038630354
0.0211585210
0.0134302029
0.0347165842
0.0586652091
0.1106294470
0.0595133146
0.6575132436
1.1235934363
0.1587891402
0.0889325628
0.0609494097
0.1026386252
0.1912471487
0.1038630354
1.1235934363
1.8815840333
0.1735543668
0.0738254268
0.0134423026
0.0216346313
0.0337895302
0.0211585210
0.1587891402
0.1735543668
-0.2489452686
-0.2183983394
0.0087850325
0.0139114253
0.0201606941
0.0134302029
0.0889325628
0.0738254268
-0.2183983394
-0.2098481702
OTP19
-0.3311915830
0.0013325650
0.0024797822
0.0015394342
0.0114986329
0.0134423026
-0.0157566302
-0.0138419035
0.0013325650
-0.4871690301
0.0040030421
0.0020847373
0.0185536755
0.0216346313
-0.0255747717
-0.0224587425
0.0024797822
0.0040030421
0.0063348778
0.0039242142
0.0293001546
0.0337895302
-0.0414146218
-0.0363098170
0.0015394342
0.0020847373
0.0039242142
-0.3547914660
0.0181822160
0.0211585210
-0.0251774405
-0.0221034374
0.0114986329
0.0185536755
0.0293001546
0.0181822160
0.1394270743
0.1587891402
-0.1964613828
-0.1742178881
0.0134423026
0.0216346313
0.0337895302
0.0211585210
0.1587891402
0.1735543668
-0.2489452686
-0.2183983394
-0.0157566302
-0.0255747717
-0.0414146218
-0.0251774405
-0.1964613828
-0.2489452686
0.2134013931
0.1947074869
-0.0138419035
-0.0224587425
-0.0363098170
-0.0221034374
-0.1742178881
-0.2183983394
0.1947074869
0.1748466011
OTP24
-0.3386035243
0.0008032973
0.0018084445
0.0011557139
0.0081968353
0.0087850325
-0.0138419035
-0.0127156809
0.0008032973
-0.5089445838
0.0028953468
0.0012027831
0.0130896705
0.0139114253
-0.0224587425
-0.0206404453
0.0018084445
0.0028953468
0.0044177621
0.0028199591
0.0197347840
0.0201606941
-0.0363098170
-0.0334200513
0.0011557139
0.0012027831
0.0028199591
-0.3784112515
0.0127229373
0.0134302029
-0.0221034374
-0.0203203229
0.0081968353
0.0130896705
0.0197347840
0.0127229373
0.0907463435
0.0889325628
-0.1742178881
-0.1644250366
0.0087850325
0.0139114253
0.0201606941
0.0134302029
0.0889325628
0.0738254268
-0.2183983394
-0.2098481702
-0.0138419035
-0.0224587425
-0.0363098170
-0.0221034374
-0.1742178881
-0.2183983394
0.1947074869
0.1748466011
-0.0127156809
-0.0206404453
-0.0334200513
-0.0203203229
-0.1644250366
-0.2098481702
0.1748466011
0.1633187616
83
0.85
0.8
Expected Return
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.1
0.2
0.3
0.4
Skewness
0.5
0.6
0.7
84
0.7
0.6
Skewness
0.5
0.4
0.3
0.2
0.1
1.5
0.9
0.8
0.7
0.5
0.6
0.5
Standard Deviation
0.4
Expected Return
Figura 6.2: Retorno Esperado Desvio Padr~ao Assimetria para = 1 e 0 < < 1
85
0.85
0.8
Expected Return
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.2
0.4
0.6
0.8
1
Standard Deviation
1.2
1.4
1.6
86
Cap
tulo 7
Con
lus~ao
Neste trabalho estudamos uma metodologia para
al
ulo de matrizes de
ovari^an
ia entre retornos de a
~oes-objetos e op
~oes europeias. A abordagem, em termos de representa
~ao de momentos
de segunda e ter
eira ordem do retorno de portfolios atraves de operadores integrais, permite
uma avalia
~ao de retornos esperados de op
~oes baseada inteiramente no
omportamento dos
ativos-objeto, e n~ao baseados em series histori
as de pre
os de op
~oes.
O metodo usado no mer
ado para analise de op
~oes baseia-se em aproxima
~oes lineares e
formula de Bla
k-S
holes (gregos), o que di
ulta a analise de portfolios mistos de a
~oes e op
~oes
uma vez que a sensibilidade da matriz de
ovari^an
ia frente a a
~oes e op
~oes sobre o mesmo
ativo-objeto n~ao e
aptada usando-se aproxima
~oes lineares. O
al
ulo exato destas matrizes
permite que analisemos portfolios grandes sem
orrer o ris
o de obter
orrela
~ao 1 entre op
~oes e
a
~oes-objeto, e possibilitando assim o uso de te
ni
as de otimiza
~ao para obten
~ao de fronteiras
e
ientes.
A viabilidade do uso desta metologia em termos prati
os depende de metodos
omputa
ionalmente e
ientes para a aproxima
~ao numeri
a das integrais em quest~ao. Este assunto foi
dis
utido nos
aptulos 4 e 5.
Inserimos tambem o uso do ter
eiro momento
entral do retorno de portfolios para obten
~ao de
arteiras e
ientes. O modelo de ter
eira ordem e uma extens~ao natural do modelo
media-vari^an
ia ja que estamos interessados em estudar portfolios formados por derivativos
om
retornos assimetri
os,
omo e o
aso das op
~oes europeias. O paralelo entre o modelo MV
(media-vari^an
ia) e MVA (media-vari^an
ia-assimetria) mostrou-nos a ne
essidade do uso do
ter
eiro momento quando trabalhamos
om op
~oes, e tambem mostrou que a aproxima
~ao de
segunda ordem e bastante boa (
omparada
om a de ter
eira ordem) para portfolios formados
apenas por a
~oes-objeto.
O desenvolvimento de te
ni
as de visualiza
~ao de superf
ies e
ientes geradas pelo problema
de otimiza
~ao parametri
o do modelo MVA s~ao ne
essarias para melhor aproveitamento de
informa
~ao e interpreta
~ao de dados.
87
88
Con lus~ao
Ap^
endi
e A
As express~oes de
ovari^an
ia dadas a seguir est~ao des
ritas no
aptulo 2, onde as variaveis e
onstantes nelas inseridas est~ao denidas.
double
ov_riri(double medi, double stdi)
/***************************************************************************/
/* vari^an
ia da taxa de retorno do ativo b
asi
o i
*/
/* medi = retorno logartimi
o esperado do ativo i
*/
/* stdi = desvio padr~
ao do retorno log. do ativo i.
*/
/***************************************************************************/
{
double resp;
resp=exp(2.0*medi+stdi*stdi)*(exp(stdi*stdi)-1.0);
return(resp);
89
90
double
ov_ri
i(double medi, double stdi, double Si, double K
i, double Ci,
double ms, double m
)
/***************************************************************************/
/*
ovari^an
ia entre a taxa de retorno do ativo basi
o i e da
all
*/
/* sobre o mesmo ativo i;
*/
/* medi = retorno logartimi
o esperado do ativo i;
*/
/* stdi = desvio padr~
ao do retorno log. do ativo i;
*/
/* Si =
ota
ao do ativo basi
o i na data de abertura do
ontrato t;
*/
/* K
i = pre
o de exer
i
io da
all na data de expira
ao T;
*/
/* Ci = premio da
all na data t;
*/
/* ms = esperan
a da taxa de retorno do ativo fundamental;
*/
/* m
= esperan
a da taxa de retorno da
all;
*/
/***************************************************************************/
{
double R, E2x, Ex, E1, resp;
R=(log(K
i/Si)-medi)/stdi;
E2x=0.5*exp(2.0*medi+2.0*sqr(stdi))
*(1.0-erff((R-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*sqr(stdi))
*(1.0-erff((R-stdi)/sqrt(2.0)));
resp=(Si*E2x-K
i*Ex)/Ci-ms*m
;
return(resp);
double
ov_ri
j(double medi, double medj, double stdi, double stdj,
double
orij, double Sj, double K
j, double Cj, double ms,
double m
)
/***************************************************************************/
/*
ovari^an
ia entre a taxa de retorno do ativo basi
o i e da
all sobre o */
/* ativo basi
o j;
*/
/* medi, medj = retorno logartimi
o esperado dos ativos i e j;
*/
/* stdi, stdj = desvio padr~
ao do retorno log. dos ativos i e j;
*/
/*
orij =
oef. de
orrela
ao entre os retornos log. dos ativos i e j;
*/
/* Sj =
ota
ao do ativo basi
o j na data de abertura do
ontrato t;
*/
/* K
j = pre
o de exer
i
io da
all na data de expira
ao T;
*/
/* Cj = premio da
all na data t;
*/
91
92
}
double
ov_ripj(double medi, double medj, double stdi, double stdj,
double
orij, double Sj, double Kpj, double Pj,
double ms, double mp)
/***************************************************************************/
/*
ovari^an
ia entre a taxa de retorno do ativo basi
o i e da put sobre o */
/* ativo basi
o j;
*/
/* medi, medj = retorno logartimi
o esperado dos ativos i e j;
*/
/* stdi, stdj = desvio padr~
ao do retorno log. dos ativos i e j;
*/
/*
orij =
oef. de
orrela
ao entre os retornos log. dos ativos i e j;
*/
/* Sj =
ota
ao do ativo basi
o j na data de abertura do
ontrato t;
*/
/* Kpj = pre
o de exer
i
io da put na data de expira
ao T;
*/
/* Pj = premio da put na data t;
*/
/* ms = taxa de retorno esperada do ativo;
*/
/* mp = taxa de retorno esperada da put;
*/
/***************************************************************************/
{
double R, Exy, Ex, Ey, E1, resp;;
R=(log(Kpj/Sj)-medj)/stdj;
Exy=0.5*exp(medi+medj+0.5*(sqr(stdi)+sqr(stdj))+
orij*stdi*stdj)
*(1.0+erff((R-stdj-
orij*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*sqr(stdi))
*(1.0+erff((R-
orij*stdi)/sqrt(2.0)));
Ey=0.5*exp(medj+0.5*sqr(stdj))*(1.0+erff((R-stdj)/sqrt(2.0)));
E1=0.5*(1.0+erff(R/sqrt(2.0)));
Exi=exp(medi+0.5*stdi*stdi);
resp=(-Sj*Exy+Kpj*Ex-ms*(-Sj*Ey+Kpj*E1))/Pj;
resp+=ms*mp-mp*Exi;
return(resp);
}
double
ov_
i
i(double medi, double stdi, double Si, double K
1, double K
2,
double C1, double C2, double m
1, double m
2)
/***************************************************************************/
/*
ovari^an
ia da taxa de retorno de 2
alls sobre o mesmo ativo basi
o i */
/* (mas podem ter strikes diferentes e, portanto, premios diferentes);
*/
/* medi = retorno logartimi
o esperado do ativo i;
*/
/* stdi = desvio padr~
ao do retorno log. do ativo i;
*/
/* Si =
ota
ao do ativo basi
o i na data de abertura do
ontrato t;
*/
93
double
ov_pipi(double medi, double stdi, double Si, double Kp1, double Kp2,
double P1, double P2)
/***************************************************************************/
/*
ovari^an
ia da taxa de retorno de 2 puts sobre o mesmo ativo basi
o i */
/* (mas podem ter strikes diferentes e, portanto, premios diferentes);
*/
/* medi = retorno logartimi
o esperado do ativo i;
*/
/* stdi = desvio padr~
ao do retorno log. do ativo i;
*/
/* Si =
ota
ao do ativo basi
o i na data de abertura do
ontrato t;
*/
/* Kp1,Kp2 = pre
os de exer
i
io das puts na data de expira
ao T;
*/
/* P1,P2 = premios das puts na data t;
*/
/***************************************************************************/
{
double E2x, Ex, E1, resp, R, K;
K=dmin(Kp1,Kp2);
R=(log(K/Si)-medi)/stdi;
E2x=0.5*exp(2.0*medi+2.0*sqr(stdi))
*(1.0+erff((R-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*sqr(stdi))
*(1.0+erff((R-stdi)/sqrt(2.0)));
E1=0.5*(1.0+erff(R/sqrt(2.0)));
resp=(Si*Si*E2x-Ex*Si*(Kp1+Kp2)+Kp1*Kp2*E1)/(P1*P2)-mp1*mp2;
return(resp);
94
if (K
i < Kpi){
R
=(log(K
i/Si)-medi)/stdi;
Rp=(log(Kpi/Si)-medi)/stdi;
E2x=0.5*exp(2.0*(medi+stdi*stdi))*
(erff((Rp-2.0*stdi)/sqrt(2.0))
-erff((R
-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*
(erff((Rp-stdi)/sqrt(2.0))
-erff((R
-stdi)/sqrt(2.0)));
E1=0.5*(erff(Rp/sqrt(2.0))
-erff(R
/sqrt(2.0)));
resp=(-Si*Si*E2x+Si*Ex*(K
i+Kpi)-K
i*Kpi*E1)/(Ci*Pi);
resp-=m
*mp;
return(resp);
}
else return(-m
*mp);
double
ov_
i
j(double medi, double medj, double stdi, double stdj,
double
orij, double Si, double Sj, double K
i,
double K
j, double Ci, double Cj, double m
i, double m
j)
/***************************************************************************/
/*
ovari^an
ia entre 2
alls sobre ativos basi
os diferentes (i e j);
*/
/* medi, medj = retorno logartimi
o esperado dos ativos i e j;
*/
/* stdi, stdj = desvio padr~
ao do retorno log. dos ativos i e j;
*/
/*
orij =
oef. de
orrela
ao entre os retornos log. dos ativos i e j;
*/
/* Si,Sj =
ota
ao dos ativos basi
os i e j na data de abertura dos
*/
/*
ontratos;
*/
/* K
i,K
j = pre
o de exer
i
io da
all na data de expira
ao dos
ontratos;*/
/* Ci,Cj = premios das
alls na data t;
*/
/* m
i, m
j = taxas de retorno esperadas das
alls;
*/
/***************************************************************************/
95
double
ov_
ipj(double medi, double medj, double stdi, double stdj,
double
orij, double Si, double Sj, double K
i,
double Kpj, double Ci, double Pj, double m
, double mp)
/***************************************************************************/
/*
ovari^an
ia entre uma
all sobre o ativo basi
o i, e uma put sobre o
*/
/* ativo basi
o j;
*/
/* medi, medj = retorno logartimi
o esperado dos ativos i e j;
*/
/* stdi, stdj = desvio padr~
ao do retorno log. dos ativos i e j;
*/
/*
orij =
oef. de
orrela
ao entre os retornos log. dos ativos i e j;
*/
/* Si,Sj =
ota
ao dos ativos basi
os i e j na data de abertura dos
*/
/*
ontratos;
*/
/* K
i,Kpj = pre
os de exer
i
io da
all e da put na data de expira
ao dos */
/*
ontratos;
*/
/* Ci,Pj = premios da
all e da put na data t;
*/
96
Ri=(log(K
i/Si)-medi)/stdi;
Rj=(log(Kpj/Sj)-medj)/stdj;
a=stdi+stdj*
orij;
Exy=I_
ov(1,Ri,1.0,1.0,a,medi,medj,stdi,stdj,
orij,Rj);
Exy*=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
orij*stdi*stdj);
Exy/=(2.0*sqrt(2.0*pi));
a=stdi;
Ex=I_
ov(2,Ri,1.0,1.0,a,medi,medj,stdi,stdj,
orij,Rj);
Ex*=exp(medi+0.5*stdi*stdi)/(2.0*sqrt(2.0*pi));
a=stdj*
orij;
Ey=I_
ov(3,Ri,1.0,1.0,a,medi,medj,stdi,stdj,
orij,Rj);
Ey*=exp(medj+0.5*stdj*stdj)/(2.0*sqrt(2.0*pi));
a=0.0;
E1=I_
ov(4,Ri,1.0,1.0,a,medi,medj,stdi,stdj,
orij,Rj);
E1/=(2.0*sqrt(2.0*pi));
Exa=0.5*exp(medi+0.5*stdi*stdi)
*(1.0-erff((Ri-stdi)/sqrt(2.0)));
E1a=(1.0-erff(Ri/sqrt(2.0)));
Eyb=0.5*exp(medj+0.5*stdj*stdj)
*(1.0+erff((Rj-stdj)/sqrt(2.0)));
E1b=(1.0+erff(Rj/sqrt(2.0)));
resp=(-Si*Sj*Exy+Si*Kpj*Ex+Sj*K
i*Ey-K
i*Kpj*E1)/(Ci*Pj);
resp-=mp*(Exa*Si-K
i*E1a)/Ci;
resp-=m
*(-Eyb*Sj+Kpj*E1b)/Pj;
resp+=m
*mp;
return(resp);
97
/*
ontratos;
*/
/* Pi,Pj = premios das puts na data t;
*/
/* mpi, mpj = taxas de retorno esperadas das puts;
*/
/***************************************************************************/
{
double resp, Exy, Ex, Ey, E1, Ri, Rj, a;
Ri=(log(Kpi/Si)-medi)/stdi;
Rj=(log(Kpj/Sj)-medj)/stdj;
a=stdi+stdj*
orij;
Exy=I_
ov(1,Ri,-1.0,1.0,a,medi,medj,stdi,stdj,
orij,Rj);
Exy*=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
orij*stdi*stdj);
Exy/=(2.0*sqrt(2.0*pi));
a=stdi;
Ex=I_
ov(2,Ri,-1.0,1.0,a,medi,medj,stdi,stdj,
orij,Rj);
Ex*=exp(medi+0.5*stdi*stdi)/(2.0*sqrt(2.0*pi));
a=stdj*
orij;
Ey=I_
ov(3,Ri,-1.0,1.0,a,medi,medj,stdi,stdj,
orij,Rj);
Ey*=exp(medj+0.5*stdj*stdj)/(2.0*sqrt(2.0*pi));
a=0.0;
E1=I_
ov(4,Ri,-1.0,1.0,a,medi,medj,stdi,stdj,
orij,Rj);
E1/=(2.0*sqrt(2.0*pi));
Exa=0.5*exp(medi+0.5*stdi*stdi)
*(1.0+erff((Ri-stdi)/sqrt(2.0)));
E1a=(1.0+erff(Ri/sqrt(2.0)));
Eyb=0.5*exp(medj+0.5*stdj*stdj)
*(1.0+erff((Rj-stdj)/sqrt(2.0)));
E1b=(1.0+erff(Rj/sqrt(2.0)));
resp=(Si*Sj*Exy-Si*Kpj*Ex-Sj*Kpi*Ey+Kpi*Kpj*E1)/(Pi*Pj);
resp+=mpj*(Exa*Si-Kpi*E1a)/Pi;
resp+=mpi*(Eyb*Sj-Kpj*E1b)/Pj;
resp+=mpi*mpj;
return(resp);
98
R=(log(K
i/Si)-medi)/(stdi);
Ex=(1.0-erff((R-stdi)/sqrt(2.0)))*exp(medi+0.5*sqr(stdi))*0.5;
E1=0.5*(1.0-erff(R/sqrt(2.0)));
resp=(Si*Ex-K
i*E1)/Ci;
return(resp);
double E_pi(double medi, double stdi, double Si, double Kpi, double Pi)
/***************************************************************************/
/* experan
a da taxa de retorno da put = (max(-Kpi(T)+Si(t),0)-Pi(t))/Pi(t)*/
/* t = data do ini
io do
ontrato;
*/
/* T = data de expira
ao do
ontrato;
*/
/***************************************************************************/
{
double R, Ex, E1, resp;
R=(log(Kpi/Si)-medi)/(stdi);
Ex=(1.0+erff((R-stdi)/sqrt(2.0)))*exp(medi+0.5*sqr(stdi))*0.5;
E1=0.5*(1.0+erff(R/sqrt(2.0)));
resp=(-Si*Ex+Kpi*E1)/Pi;
return(resp);
double ss(int i, int j, double *med, double *std, double **
or, int *atv)
/***************************************************************************/
/*
hamada da
ovari^an
ia que envolve somente 2 ativos basi
os;
*/
/* a fun
ao de
ovari^an
ia apropriada vai depender se i e j referem-se
*/
/* ao mesmo ativo basi
o.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if (atv[i == atv[j){
resp=
ov_riri(med[atv[i,std[atv[i);
}
else{
resp=
ov_rirj(med[atv[i,med[atv[j,std[atv[i,
}
return(resp);
99
std[atv[j,
or[atv[i[atv[j);
double s
(int i, int j, double *med, double *std, double **
or, double *S,
double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/*
hamada da
ovari^an
ia que envolve um ativo basi
o e uma
all;
*/
/* a fun
ao de
ovari^an
ia apropriada vai depender se i e j referem-se
*/
/* ao mesmo ativo basi
o.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if (atv[i == atv[j){
resp=
ov_ri
i(med[atv[i,std[atv[i,S[j,K[j,P[j,esp[i,
esp[j);
}
else{
resp=
ov_ri
j(med[atv[i,med[atv[j,std[atv[i,
std[atv[j,
or[atv[i[atv[j,S[j,
K[j,P[j,esp[i,esp[j);
}
return(resp);
double sp(int i, int j, double *med, double *std, double **
or, double *S,
double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/*
hamada da
ovari^an
ia que envolve um ativo basi
o e uma put;
*/
/* a fun
ao de
ovari^an
ia apropriada vai depender se i e j referem-se
*/
/* ao mesmo ativo basi
o.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if (atv[i == atv[j){
resp=
ov_ripi(med[atv[i,std[atv[i,S[j,K[j,P[j
esp[i,esp[j);
}
else{
resp=
ov_ripj(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[j,K[j,P[j,
100
}
return(resp);
esp[i,esp[j);
double
(int i, int j, double *med, double *std, double **
or, double *S,
double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/*
hamada da
ovari^an
ia que envolve 2
alls;
*/
/* a fun
ao de
ovari^an
ia apropriada vai depender se i e j referem-se
*/
/* ao mesmo ativo basi
o.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if (atv[i == atv[j){
resp=
ov_
i
i(med[atv[i,std[atv[i,S[i,K[i,K[j,P[i,P[j
esp[i,esp[j);
}
else{
resp=
ov_
i
j(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[i,S[j,K[i,K[j,P[i,P[j,
esp[i,esp[j);
}
return(resp);
double
p(int i, int j, double *med, double *std, double **
or, double *S,
double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/*
hamada da
ovari^an
ia que envolve uma
all e uma put;
*/
/* a fun
ao de
ovari^an
ia apropriada vai depender se i e j referem-se
*/
/* ao mesmo ativo basi
o.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if (atv[i == atv[j){
resp=
ov_
ipi(med[atv[i,std[atv[i,S[i,K[i,K[j,P[i,P[j,
esp[i,esp[j);
}
else{
resp=
ov_
ipj(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[i,S[j,K[i,K[j,P[i,P[j,
}
return(resp);
101
esp[i,esp[j);
double pp(int i, int j, double *med, double *std, double **
or, double *S,
double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/*
hamada da
ovari^an
ia que envolve 2 puts;
*/
/* a fun
ao de
ovari^an
ia apropriada vai depender se i e j referem-se
*/
/* ao mesmo ativo basi
o.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if (atv[i == atv[j){
resp=
ov_pipi(med[atv[i,std[atv[i,S[i,K[i,K[j,P[i,P[j,
esp[i,esp[j);
}
else{
resp=
ov_pipj(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[i,S[j,K[i,K[j,P[i,P[j,
esp[i,esp[j);
}
return(resp);
/***************************************************************************/
/********
Rotinas para o
al
ulo numeri
o das integrais
*******/
/***************************************************************************/
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
EPS 3.0e-7
ITMAX 100
FPMIN 1.0e-30
FUNC(x) ((*fun
)(x))
EPS1 1.0e-5
JMAX 20
NMAX 20
JMAx 40
MAXIT 40
UNUSED (-1.11e30)
SIGN(a,b) ((b) >=0.0 ? fabs(a) : -fabs(a))
pi 3.141592653589793
102
y=x=xx;
tmp=x+5.5;
tmp-=(x+0.5)*log(tmp);
ser=1.000000000190015;
for (j=0;j<=5;j++) ser+=
of[j/++y;
return -tmp+log(2.5066282746310005*ser/x);
}
nrerror("a too large, ITMAX too small in routine gser");
return;
*gln=gammln(a);
b=x+1.0-a;
=1.0/FPMIN;
d=1.0/b;
h=d;
for (i=1;i<=ITMAX; i++){
an=-i*(i-a);
b+=2.0;
d=an*d+b;
if (fabs(d) < FPMIN) d=FPMIN;
=b+an/
;
if (fabs(
) < FPMIN)
=FPMIN;
d=1.0/d;
del=d*
;
h*=del;
if (fabs(del-1.0) < EPS) break;
}
if (i > ITMAX) nrerror("a too large, ITMAX too small in g
f");
*gamm
f=exp(-x+a*log(x)-(*gln))*h;
103
104
double erff(double x)
{
double gammp(double a, double x);
return x < 0.0 ? -gammp(0.5,x*x) : gammp(0.5,x*x);
}
double erff
(double x)
{
double gammp(double a, double x);
double gammq(double a, double x);
}
105
double fun
(
har op
ao, double y, double sgn, double a, double medi,
double medj, double stdi, double stdj, double
orij, double Rj)
/***************************************************************************/
/* a = elemento do termo "exp{(y-a)^2}"
*/
/* y = no'da integra
ao numeri
a
*/
/* sgn = sinal de erff
*/
/***************************************************************************/
{
double resp;
swit
h(op
ao){
ase 1:
resp=(Rj-y*
orij-stdj*(1.0-
orij*
orij))/
sqrt(2.0*(1.0-
orij*
orij));
resp=(1.0+sgn*erff(resp))*exp(-0.5*sqr(y-a));
return(resp);
ase 2: /* relativo a Ex */
resp=(Rj-y*
orij)/sqrt(2.0*(1.0-
orij*
orij));
resp=(1.0+sgn*erff(resp))*exp(-0.5*sqr(y-a));
return(resp);
ase 3: /* relativo a Ey */
resp=(Rj-y*
orij-stdj*(1.0-
orij*
orij))/
sqrt(2.0*(1.0-
orij*
orij));
resp=(1.0+sgn*erff(resp))*exp(-0.5*sqr(y-a));
return(resp);
ase 4: /* relativo a E1 */
resp=(Rj-y*
orij)/sqrt(2.0*(1.0-
orij*
orij));
resp=(1.0+sgn*erff(resp))*exp(-0.5*sqr(y-a));
return(resp);
ase 9:
return((1.0-erff(3.0*y-2.0))*exp(-y-y*y));
/* esta e' para testes... */
}
printf(" \n deu erro !! ");
return(1.0E308);
106
ini=0;
s=0.0;
for (k=0;k<n;k++){
for (l=1,i=1;i<=n-k;i++) l<<=1;
fim=ini+l;
for (i=ini; i<=fim; i++) s+=F[i*delta/l;
s-=delta*(F[ini+F[fim)/(2*l);
ini=fim;
}
return s;
T[0=-1.0;
for (k=1;k<n;k++){
for (m=4,j=1;j<k;j++) m<<=2;
for (j=1;j<=(n-k);j++){
T[j=(m*T[j+1-T[j)/(m-1);
if (fabs(T[j-T[j-1)<0.000000001)
return(T[j); /*
riterio de parada */
}
}
return(T[1);
double integral(
har op
ao, double lim, double sgn, double L, double a,
double medi, double medj, double stdi, double stdj,
double
orij, double Rj)
/***************************************************************************/
/*
al
ula a integral pelo metodo do trapezio e apli
a extrapola
ao de
*/
/* Ri
hardson
*/
/* op
ao = indi
a qual fun
ao a ser usada
omo integrando na
hamada de
*/
/*
"fun
";
*/
/* lim = +1 se estivermos integrando de L ate' +infinito
*/
107
/*
-1 se estivermos integrando de -infinito ate' L
*/
/* sgn = sinal da fun
ao erff na
hamada de "fun
";
*/
/* a : faz parte do
orpo da fun
ao a ser integrada (exp[-(x-a)^2)...
*/
/* medi,medj,stdi,stdj,
orij,Rj =
onstantes ne
essarias para montar a
*/
/* fun
ao
*/
/* integrando na
hamada de "fun
".
*/
/***************************************************************************/
{
double *F=NULL, *X=NULL, *T=NULL;
double quad, delta, erro;
int nf,k, n;
long m, Nf,i, j,l,N;
delta=2.0;
X=alo
_vet(3);
F=alo
_vet(3);
T=alo
_vet(3);
N=3;
n=1;
erro=1.0;
while (( (erro > 0.0001) | (erro < -0.0001)) | (n <= 8)){
if (n>1){
for (m=2,j=1;j<n;j++) m<<=1;
Nf=(m-1)*2+1;
X=realo
a(X,Nf);
F=realo
a(F,Nf);
T=realo
a(T,n);
for (i=N-1;i>0;i--){
X[2*i=X[i;
F[2*i=F[i;
}
m=0;
j=0;
for (k=0;k<n-1;k++){
for (l=1,i=1;i<=n-k;i++) l<<=1;
m+=l;
for (i=j;i< m/2;i++){
X[2*i+1=X[2*i+lim*delta/l;
F[2*i+1=fun
(op
ao,X[2*i+1,sgn,a,
medi,medj,stdi,stdj,
orij,Rj);
}
j=i;
}
for (i=Nf-2;i<Nf;i++){
108
}
N=Nf;
X[i=X[i-1+lim*delta/2;
F[i=fun
(op
ao,X[i,sgn,a,medi,medj,stdi,
stdj,
orij,Rj);
}
else for (i=0;i<=2;i++){
X[i=L+lim*i*delta/2;
F[i=fun
(op
ao,X[i,sgn,a,medi,medj,stdi,
stdj,
orij,Rj);
}
T[n=trapezio(F,n,delta);
if (n > 1) erro = T[n-T[n-1;
n++;
}
n--;
nf=n;
quad=extrap(T,nf);
free(X);
free(F);
free(T);
return(quad);
double romb_
ov(
har op
ao, double a, double b, double sgn, double medi,
double medj, double stdi, double stdj, double
orij,
double x0, double Rj)
/***************************************************************************/
/* metodo de romberg para integra
ao em dominios finitos (a,b)
*/
/* x0 = termo da fun
ao que leva a exponen
ial : exp[(x-L)^2/2
*/
/***************************************************************************/
{
double *T=NULL, *F=NULL, *X=NULL;
double h,resp;
int i,j,n,fim,l;
X=alo
_vet(1);
T=alo
_vet(1);
F=alo
_vet(1);
n=1;
fim=0;
T[0=-1;
while ((!fim) && (n<9)){
for (l=2,j=1;j<n;j++) l<<=1;
T=realo
a(T,n+1);
/* l=2^n */
109
F=realo
a(F,l+1);
X=realo
a(X,l+1);
T[n=0.0;
h=(b-a)/l;
if (n>1){
for (j=l/2;j>=1;j--){
X[2*j=X[j;
F[2*j=F[j;
}
for (j=1;j<=l/2;j++){
i=2*j-1;
X[i=X[i-1+h;
F[i=fun
(op
ao,X[i,sgn,x0,medi,medj,stdi,
stdj,
orij,Rj);
}
for (i=0;i<l;i++) T[n+=F[i+F[i+1;
T[n*=0.5*h;
if ((fabs(T[n-T[n-1) < 0.00001) | n==8) fim=1;
else n++;
}
else{
for (i=0;i<=l;i++){
X[i=a+i*h;
F[i=fun
(op
ao,X[i,sgn,x0,medi,medj,stdi,
stdj,
orij,Rj);
}
for (i=0;i<l;i++) T[n+=F[i+F[i+1;
T[n*=0.5*h;
n++;
}
}
resp=extrap(T,n);
free(T);
free(X);
free(F);
return(resp);
double I_
ov(
har op
ao, double L, double lim, double sgn, double a,
double medi, double medj, double stdi, double stdj,
double
orij, double Rj)
/***************************************************************************/
/*
al
ulo da integral de f(x)*exp{(x-a)^2} (o
orpo de f(x) e'dado pela */
/* "op
ao"),
*/
/* de L ate' (+-) infinito;
*/
/* lim = +1 se estamos integrando de L ate' +infinito;
*/
110
/*
-1 se
"
de -infinito ate' L;
*/
/* sgn = sinal multipli
ando a fun
ao erff na "op
ao";
*/
/***************************************************************************/
{
double I, delta;
delta=1.0;
if (fabs(a-L) < 0.5*delta){
I=integral(op
ao,lim,sgn,L,a,medi,medj,stdi,stdj,
orij,Rj);
return(I);
}
else{
if ((L-a)*lim > 0.0){
I=integral(op
ao,lim,sgn,L,a,medi,medj,stdi,stdj,
orij,Rj);
return(I);
}
else{
I=integral(op
ao,lim,sgn,a,a,medi,medj,stdi,stdj,
orij,Rj);
if (L > a)
I+=romb_
ov(op
ao,a,L,sgn,medi,medj,stdi,stdj,
orij,a,Rj);
else
I+=romb_
ov(op
ao,L,a,sgn,medi,medj,stdi,stdj,
orij,a,Rj);
return(I);
}
}
/***************************************************************************/
/***** Fun
~oes de alo
a
~ao, leitura e es
rita de vetores e matrizes *****/
/***************************************************************************/
double dmax(double a, double b)
{
if (a >= b) return(a);
else return(b);
}
double dmin(double a, double b)
{
if (a >= b) return(b);
else return(a);
if ((R=(double*)mallo
(sizeof(double)*(n)))==NULL){
printf("Memoria Insufi
iente para alo
ar X!!");
exit(1);
}
return(R);
111
112
}
return(R);
i=0;
while (!feof(fp) && (i<n)){
fs
anf(fp,"%lf ", &R[i);
i++;
}
f
lose(fp);
return(R);
if ((R=(double*)reallo
(Y,sizeof(double)*(Nf+3)))==NULL){
printf("Memoria Insufi
iente para alo
ar X!!");
exit(1);
}
return(R);
113
114
if ((fp=fopen(arq,"w+")) == NULL){
printf("Erro na abertura do arquivo %s",arq);
exit(1);
}
fprintf(fp, " mat = [ \n");
for (i=0;i<n;i++){
for (j=0;j<n-1;j++){
fprintf(fp," %.10lf, ",m[i[j);
}
fprintf(fp," %.10lf;\n ",m[i[j);
}
fprintf(fp," \n");
f
lose(fp);
}
for (k=0;k<n;k++){
fprintf(fp, " k=%d : [ \n",k);
for (i=0;i<n;i++){
for (j=0;j<n-1;j++){
fprintf(fp," %.10f, ",m[i[j[k);
}
fprintf(fp," %.10f;\n ",m[i[j[k);
}
fprintf(fp," \n");
}
f
lose(fp);
115
116
117
Ex=exp(medi+0.5*stdi*stdi);
E2x=exp(2.0*(medi+stdi*stdi));
E3x=exp(0.5*(6.0*medi+9.0*stdi*stdi));
resp=E3x-3.0*E2x*Ex+2.0*Ex*Ex*Ex;
return(resp);
double m_riri
i(double medi, double stdi, double Si, double K
i, double Ci,
double ms, double m
)
/***************************************************************************/
/*
oskewnes entre a taxa de retorno da
all (sobre o i-
esimo ativo)
om o */
/* proprio ativo;
*/
/* medi, stdi = media e desvio p. do ativo i;
*/
/* K
i = strike pri
e da
all;
*/
/* Ci = premio da
all;
*/
/* Si =
ota
ao do ativo i na data t=0.
*/
/* ms = taxa de retorno esperada do ativo objeto;
*/
/* mp = taxa de retorno esperada da put;
*/
/***************************************************************************/
{
double Ex, E2x, E3x,E2xi,resp,f;
f=(log(K
i/Si)-medi)/stdi);
E3x=0.5*exp(3.0*medi+4.5*stdi*stdi)*(1.0-erff((f-3.0*stdi)/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0-erff((f-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((f-stdi)/sqrt(2.0)));
E2xi=exp(2.0*medi+2.0*stdi*stdi);
resp=(Si*E3x-K
i*E2x)/Ci-2.0*ms*(Si*E2x-K
i*Ex)/Ci;
resp+=-ms*E2xi+2.0*ms*ms*m
return(resp);
118
double m_riripi(double medi, double stdi, double Si, double Kpi, double Pi
double ms, double mp)
/***************************************************************************/
/*
oskewnes entre a taxa de retorno da put (sobre o i-
esimo ativo)
om o */
/* proprio ativo;
*/
/* medi, stdi = media e desvio p. do ativo i;
*/
/* Kpi = strike pri
e da put;
*/
/* Pi = premio da put;
*/
/* Si =
ota
ao do ativo i na data t=0.
*/
/* ms = taxa de retorno esperada do ativo objeto;
*/
/* mp = taxa de retorno esperada da put;
*/
/***************************************************************************/
{
double Ex, E2x, E3x,E2xi,resp,f;
f=(log(Kpi/Si)-medi)/stdi);
E3x=0.5*exp(3.0*medi+4.5*stdi*stdi)*(1.0+erff((f-3.0*stdi)/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((f-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((f-stdi)/sqrt(2.0)));
E2xi=exp(2.0*medi+2.0*stdi*stdi);
resp=(-Si*E3x+Kpi*E2x)/Pi-2.0*ms*(-Si*E2x+Kpi*Ex)/Pi;
resp+=-mp*E2xi+2.0*ms*ms*mp
return(resp);
}
double m_ri
i
i(double medi, double stdi, double Si, double K
1, double K
2,
double C1, double C2, double ms, double m
1, double m
2)
/***************************************************************************/
/*
oskewnes entre a taxa de retorno das
alls sobre o i-
esimo ativo
om o */
/* proprio ativo;
*/
/* medi, stdi = media e desvio p. do ativo i;
*/
/* K
1,K
2 = strike pri
e das
alls;
*/
/* C1,C2 = premios das
alls;
*/
/* Si =
ota
ao do ativo i na data t=0.
*/
/* ms = taxa de retorno esperada do ativo objeto;
*/
/* m
1, m
2 = taxas de retorno esperadas das
alls;
*/
/***************************************************************************/
{
double Ex, E2x, E3x,E1,E2x1,Ex1,E2x2,Ex2,resp,K,f;
K=dmax(K
1,K
2);
119
f=(log(K/Si)-medi)/stdi);
E3x=0.5*exp(3.0*medi+4.5*stdi*stdi)*(1.0-erff((f-3.0*stdi)/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0-erff((f-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((f-stdi)/sqrt(2.0)));
E1=0.5*(1.0-erff(f));
f=(log(K
1/Si)-medi)/stdi);
E2x1=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0-erff((f-2.0*stdi)/sqrt(2.0)));
Ex1=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((f-stdi)/sqrt(2.0)));
f=(log(K
2/Si)-medi)/stdi);
E2x2=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0-erff((f-2.0*stdi)/sqrt(2.0)));
Ex2=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((f-stdi)/sqrt(2.0)));
resp=(Si*Si*E3x-Si*E2x*(K
1+K
2)+K
1*K
2*Ex)/(C1*C2);
resp-=ms*(Si*Si*E2x-Si*Ex*(K
1+K
2)+K
1*K
2*E1)/(C1*C2);
resp-=m
1*(Si*E2x2-K
2*Ex2)/C2;
resp-=m
2*(Si*E2x1-K
1*Ex1)/C1;
resp+=2.0*ms*m
2*m
1;
return(resp);
double m_ripipi(double medi, double stdi, double Si, double Kp1, double Kp2,
double P1, double P2, double ms, double mp1, double mp2)
/***************************************************************************/
/*
oskewnes entre a taxa de retorno das puts sobre o i-
esimo ativo
om o */
/* proprio ativo;
*/
/* medi, stdi = media e desvio p. do ativo i;
*/
/* Kp1,Kp2 = strike pri
e das puts;
*/
/* P1,P2 = premios das puts;
*/
/* Si =
ota
ao do ativo i na data t=0.
*/
/* ms = taxa de retorno esperada do ativo objeto
*/
/* mp1, mp2 = taxas de retorno esperadas das puts
*/
/***************************************************************************/
{
double Ex, E2x, E3x,E1,E2x1,Ex1,E2x2,Ex2,resp,K,f;
K=dmin(Kp1,Kp2);
f=(log(K/Si)-medi)/stdi;
E3x=0.5*exp(3.0*medi+4.5*stdi*stdi)*(1.0+erff((f-3.0*stdi)/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((f-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((f-stdi)/sqrt(2.0)));
E1=0.5*(1.0+erff(f));
f=(log(Kp1/Si)-medi)/stdi);
E2x1=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((f-2.0*stdi)/sqrt(2.0)));
Ex1=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((f-stdi)/sqrt(2.0)));
f=(log(Kp2/Si)-medi)/stdi);
E2x2=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((f-2.0*stdi)/sqrt(2.0)));
120
double m_ri
ipi(double medi, double stdi, double Si, double K
i, double Kpi,
double Ci, double Pi, double ms, double m
, double mp)
/***************************************************************************/
/*
oskewnes entre a taxa de retorno da put e da
all sobre o i-
esimo ativo*/
/*
om o proprio ativo;
*/
/* medi, stdi = media e desvio p. do ativo i;
*/
/* K
i,Kpi = strike pri
e da
all e da put;
*/
/* Ci,Pi = premios da
all e da put;
*/
/* Si =
ota
ao do ativo i na data t=0.
*/
/* ms = taxa de retorno esperada do ativo objeto
*/
/* m
, mp = taxas de retorno esperadas da
all e da put
*/
/***************************************************************************/
{
double Ex, E2x, E3x,E1,resp,f
,fp;
f
=(log(K
i/Si)-medi)/stdi;
E2x
=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(1.0-erff((f
-2.0*stdi)/sqrt(2.0));
Ex
=0.5*exp(medi+0.5*stdi*stdi)*
(1.0-erff((f
-2.0*stdi)/sqrt(2.0)));
fp=(log(Kpi/Si)-medi)/stdi;
E2xp=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(1.0+erff((fp-2.0*stdi)/sqrt(2.0));
Exp=0.5*exp(medi+0.5*stdi*stdi)*
(1.0+erff((fp-stdi)/sqrt(2.0)));
resp=-m
*(-Si*E2xp+Kpi*Exp)/Pi-mp*(Si*E2x
-K
i*Ex
)/Ci;
if (K
i < Kpi){
E3x=0.5*exp(3.0*medi+4.5*stdi*stdi)*
(erff((fp-3.0*stdi)/sqrt(2.0))erff((f
-3.0*stdi)/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(erff((fp-2.0*stdi)/sqrt(2.0))erff((f
-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*
(erff((fp-stdi)/sqrt(2.0))erff((f
-stdi)/sqrt(2.0)));
121
E1=0.5*(erff(fp)-erff(f
));
resp+=(-Si*Si*E3x+Si*E2x*(K
i+Kpi)-K
i*Kpi*Ex)/(Ci*Pi);
resp-=ms*(-Si*Si*E2x+Si*Ex*(K
i+Kpi)-K
i*Kpi*E1)/(Ci*Pi);
return(resp);
}
resp+=2.0*ms*m
*mp;
return(resp);
122
double m_pipipi(double medi, double stdi, double Si, double Kp1, double Kp2,
double Kp3, double P1, double P2, double P3, double mp1,
double mp2, double mp3)
/***************************************************************************/
/*
oskewnes entre a taxa de retorno das puts sobre o i-
esimo ativo
*/
/* medi, stdi = media e desvio p. do ativo i
*/
/* Kp1,Kp2,Kp3 = strike pri
e das puts
*/
/* C1,C2,C3 = premios das puts
*/
/* Si =
ota
ao do ativo i na data t=0
*/
/* mp1, mp2, mp3 = taxas de retorno esperadas das puts
*/
/***************************************************************************/
{
double Ex, E2x, E3x,E1,resp,K,f,
E2x12,Ex12,E112, E2x13,Ex13,E113, E2x23,Ex23,E123;
K=dmin(Kp1,Kp2);
K=dmin(K,Kp3);
f=(log(K/Si)-medi)/stdi);
E3x=0.5*exp(3.0*medi+4.5*stdi*stdi)*(1.0+erff((f-3.0*stdi)/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((f-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((f-stdi)/sqrt(2.0)));
E1=0.5*(1.0+erff(f));
K=dmin(Kp1,Kp2);
f=(log(K/Si)-medi)/stdi);
E2x12=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((f-2.0*stdi)/sqrt(2.0)));
Ex12=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((f-stdi)/sqrt(2.0)));
E112=0.5*(1.0+erff(f));
K=dmin(Kp1,Kp3);
f=(log(K/Si)-medi)/stdi);
123
E2x13=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((f-2.0*stdi)/sqrt(2.0)));
Ex13=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((f-stdi)/sqrt(2.0)));
E113=0.5*(1.0+erff(f));
K=dmin(Kp3,Kp2);
f=(log(K/Si)-medi)/stdi);
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((f-2.0*stdi)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((f-stdi)/sqrt(2.0)));
E1=0.5*(1.0+erff(f));
resp=-(Si*Si*Si*E3x-Si*Si*E2x*(Kp1+Kp2+Kp3)
+Si*Ex*(Kp1*Kp2+Kp1*Kp3+Kp2*Kp3)-Kp1*Kp2*Kp3*E1)/(P1*P2*P3);
resp-=mp1*(Si*Si*E2x23-Si*Ex23*(Kp2+Kp3)+Kp2*Kp3*E123)/(P3*P2);
resp-=mp2*(Si*Si*E2x13-Si*Ex13*(Kp1+Kp3)+Kp1*Kp3*E113)/(P3*P1);
resp-=mp3*(Si*Si*E2x12-Si*Ex12*(Kp2+Kp1)+Kp2*Kp1*E112)/(P1*P2);
resp+=2.0*mp1*mp2*mp3;
return(resp);
}
double m_
i
ipi(double medi, double stdi, double Si, double K
1, double K
2,
double Kpi, double C1, double C2, double Pi, double m
1,
double m
2, double mp)
/***************************************************************************/
/*
oskewnes entre a taxa de retorno das
alls e put sobre o i-
esimo ativo */
/* medi, stdi = media e desvio p. do ativo i
*/
/* K
1,K
2 = strike pri
e das
alls
*/
/* Kpi = strike da put
*/
/* C1,C2,Pi = premios das
alss e da put
*/
/* Si =
ota
ao do ativo i na data t=0
*/
/***************************************************************************/
{
double Ex, E2x, E3x,E1,resp,K,f
,fp;
resp=0.0;
fp=(log(Kpi/Si)-medi)/(sqrt(2.0)*stdi);
K=dmax(K
1,K
2);
if (K < Kpi){
f
=(log(K/Si)-medi)/(sqrt(2.0)*stdi);
E3x=0.5*exp(3.0*medi+4.5*stdi*stdi)*
(erff(fp-3.0*stdi/sqrt(2.0))erff(f
-3.0*stdi/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(erff(fp-2.0*stdi/sqrt(2.0))-
124
}
K=dmax(K
1,K
2);
f
=(log(K/Si)-medi)/(sqrt(2.0)*stdi);
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(1.0-erff(f
-2.0*stdi/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*
(1.0-erff(f
-stdi/sqrt(2.0)));
E1=0.5*(1.0-erff(f
));
resp-=mp*(Si*Si*E2x-Si*Ex*(K
1+K
2)+E1*K
1*K
2)/(C1*C2);
resp+=2.0*m
1*m
2*mp;
return(resp);
125
double m_
ipipi(double medi, double stdi, double Si, double K
i, double Kp1,
double Kp2, double Ci, double P1, double P2, double m
,
double mp1, double mp2)
/***************************************************************************/
/*
oskewnes entre a taxa de retorno da
all e das puts sobre o i-
esimo
*/
/* ativo;
*/
/* medi, stdi = media e desvio p. do ativo i;
*/
/* Kp1,Kp2 = strike pri
e das puts;
*/
/* K
i = strike da
all;
*/
/* P1,P2,Ci = premios das puts e da
all;
*/
/* Si =
ota
ao do ativo i na data t=0
*/
/***************************************************************************/
{
double Ex, E2x, E3x,E1,resp,K,f
,fp;
resp=0.0;
K=dmin(Kp1,Kp2);
f
=(log(K
i/Si)-medi)/(sqrt(2.0)*stdi);
if (K
i < K){
fp=(log(K/Si)-medi)/(sqrt(2.0)*stdi);
E3x=0.5*exp(3.0*medi+4.5*stdi*stdi)*
(erff(fp-3.0*stdi/sqrt(2.0))erff(f
-3.0*stdi/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(erff(fp-2.0*stdi/sqrt(2.0))erff(f
-2.0*stdi/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*
(erff(fp-stdi/sqrt(2.0))erff(f
-stdi/sqrt(2.0)));
E1=0.5*(erff(fp)-erff(f
));
resp+=(Si*Si*Si*E3x-Si*Si*E2x*(Kp1+Kp2+K
i)
+Si*Ex*(Kp1*Kp2+K
i*Kp1+Kp2*K
i)-Kp1*Kp2*K
i*E1)/(P1*P2*Ci);
}
f
=(log(K
i/Si)-medi)/(sqrt(2.0)*stdi);
if (K
i < Kp2){
fp=(log(Kp2/Si)-medi)/(sqrt(2.0)*stdi);
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(erff(fp-2.0*stdi/sqrt(2.0))erff(f
-2.0*stdi/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*
(erff(fp-stdi/sqrt(2.0))erff(f
-stdi/sqrt(2.0)));
E1=0.5*(erff(fp)-erff(f
));
126
}
double m_ririrj(double medi, double medj, double stdi, double stdj,
double
orij)
/***************************************************************************/
/*
oskewness entre as taxas de retorno de 2 ativos basi
os
*/
/*
orij =
oef. de
orrela
ao entre os ativos i e j.
*/
/***************************************************************************/
{
double Exy, Ex, E2xy, Ey, E2x, resp;
E2xy=exp(2.0*medi+medj+2.0*stdi*stdi+0.5*stdj*stdj+
2.0*stdi*stdj*
orij);
Exy=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+stdi*stdj*
orij);
E2x=exp(2.0*(medi+stdi*stdi));
Ex=exp(medi+0.5*stdi*stdi);
Ey=exp(medj+0.5*stdj*stdj);
resp=E2xy-2.0*Exy*Ex-Ey*E2x+2.0*Ex*Ey*Ex;
return(resp);
127
}
double m_riri
j(double medi, double medj, double stdi, double stdj,
double
orij, double Sj, double K
j, double Cj, double ms,
double m
)
/***************************************************************************/
/*
oskewness entre uma
all sobre um ativo j e ativo basi
o i
*/
/*
orij =
oef. de
orrela
ao entre os ativos i e j.
*/
/* Sj =
ota
ao do ativo j em t=0;
*/
/* Cj = premio da
all
*/
/*
orij =
orrel. entre os ativos i e j
*/
/* K
j = strike da
all
*/
/* ms = taxa de retorno esperada do ativo objeto
*/
/* m
= taxa de retorno esperada da
all
*/
/***************************************************************************/
{
double Exy, E2xy, Ex, Ey, E1, E2x, E2xi, Exi, R, resp;
R=(log(K
j/Sj)-medj)/stdj;
Exy=0.5*exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)
+stdi*stdj*
orij)*
(1.0-erff((R-stdi*
orij-stdj)/sqrt(2.0)));
E2xy=0.5*exp(2.0*medi+medj+2.0*stdi*stdi+0.5*stdj*stdj+
2.0*stdi*stdj*
orij)*
(1.0-erff((R-2.0*stdi*
orij-stdj)/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(1.0-erff((R-2.0*stdi*
orij)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*
(1.0-erff((R-stdi*
orij)/sqrt(2.0)));
Ey=0.5*exp(medj+0.5*stdj*stdj)*
(1.0-erff((R-stdj)/sqrt(2.0)));
E1=0.5*(1.0-erff(R/sqrt(2.0)));
E2xi=exp(2.0*medi+2.0*stdi*stdi);
Exi=exp(medi+0.5*stdi*stdi);
resp=(Sj*E2xy-E2x*K
j)/Cj-2.0*ms*(Sj*Exy-K
j*Ex)/Cj-m
*E2xi
+2.0*ms*m
*Exi+ms*ms*(Sj*Ey-K
j*E1)/Cj-ms*ms*m
;
return(resp);
128
R=(log(Kpj/Sj)-medj)/stdj;
Exy=0.5*exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)
+stdi*stdj*
orij)*
(1.0+erff((R-stdi*
orij-stdj)/sqrt(2.0)));
E2xy=0.5*exp(2.0*medi+medj+2.0*stdi*stdi+0.5*stdj*stdj+
2.0*stdi*stdj*
orij)*
(1.0+erff((R-2.0*stdi*
orij-stdj)/sqrt(2.0)));
E2x=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(1.0+erff((R-2.0*stdi*
orij-stdj)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*
(1.0+erff((R-stdi*
orij)/sqrt(2.0)));
Ey=0.5*exp(medj+0.5*stdj*stdj)*
(1.0+erff((R-stdj)/sqrt(2.0)));
E1=0.5*(1.0+erff(R/sqrt(2.0)));
E2xi=exp(2.0*medi+2.0*stdi*stdi);
Exi=exp(medi+0.5*stdi*stdi);
resp=(-Sj*E2xy+E2x*Kpj)/Pj-2.0*ms*(-Sj*Exy+K
j*Ex)/Pj;
resp+=-mp*E2xi+2.0*ms*mp*Exi+ms*ms*(-Sj*Ey+K
j*E1)/Pj-ms*ms*mp;
return(resp);
double m_ri
irj(double medi, double medj, double stdi, double stdj,
double
orij, double Si, double K
i, double Ci,
double msi, double m
, double msj)
/***************************************************************************/
/*
oskewness entre uma
all sobre um ativo i e os ativos basi
os i e j
*/
/*
orij =
oef. de
orrela
ao entre os ativos i e j.
*/
/* S =
ota
ao do ativo j em t=0;
*/
/* C = premio da
all
*/
/* /*
orij =
orrel. entre os ativos i e j
*/
K = strike da
all
*/
/***************************************************************************/
{
double Exy, E2xy, Ex, E2x, Ey, E1, Exyi, Exi, Eyi, R, resp;
R=(log(K
i/Si)-medi)/stdi;
Exy=0.5*exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)
129
+stdi*stdj*
orij)*
(1.0-erff((R-stdi-
orij*stdj)/sqrt(2.0)));
E2xy=0.5*exp(2.0*medi+medj+2.0*stdi*stdi+0.5*stdj*stdj+
2.0*stdi*stdj*
orij)*
(1.0-erff((R-2.0*stdi-
orij*stdj)/sqrt(2.0)));
Ex=0.5*exp(medi+0.5*stdi*stdi)*
(1.0-erff((R-stdi)/sqrt(2.0)));
Ey=0.5*exp(medj+0.5*stdj*stdj)*
(1.0-erff((R-stdj*
orij)/sqrt(2.0)));
E1=0.5*(1.0-erff(R/sqrt(2.0)));
E2x=0.5*exp(2.0*(medi+stdi*stdi))*
(1.0-erff((R-2.0*stdi)/sqrt(2.0)));
Exyi=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
orij*stdi*stdj);
Exi=exp(medi+0.5*stdi*stdi);
Eyi=exp(medj+0.5*stdj*stdj);
resp=(Si*E2xy-K
i*Exy)/Ci-msi*(Si*Exy-K
i*Ey)/Ci-m
*Exyi;
resp+=-msj*(Si*E2x-K
i*Ex)/Ci+msi*m
*Eyi+m
*msj*Exi;
resp+=msi*msj*(Si*Ex-K
i*E1)/Ci-msi*msj*m
;
return(resp);
130
131
(1.0-erff((R-stdi-
orij*stdj)/sqrt(2.0)));
Ex2b=0.5*exp(medi+0.5*stdi*stdi)*
(1.0-erff((R-stdi)/sqrt(2.0)));
Ey2b=0.5*exp(medj+0.5*stdj*stdj)*
(1.0-erff((R-stdj*
orij)/sqrt(2.0)));
E12b=0.5*(1.0-erff(R/sqrt(2.0)));
R=(log(K
1/Si)-medi)/stdi;
Exy1b=0.5*exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij)*
(1.0-erff((R-stdi-
orij*stdj)/sqrt(2.0)));
Ex1b=0.5*exp(medi+0.5*stdi*stdi)*
(1.0-erff((R-stdi)/sqrt(2.0)));
Ey1b=0.5*exp(medj+0.5*stdj*stdj)*
(1.0-erff((R-stdj*
orij)/sqrt(2.0)));
E11b=0.5*(1.0-erff(R/sqrt(2.0)));
Eyi=exp(medi+0.5*stdi*stdi);
resp=(Si*Si*E2xy-Si*Exy*(K
1+K
2)+K
1*K
2*Ey)/(C1*C2);
resp+=-m
1*(Si*Exy2b-K
2*Ey2b)/C2-m
2*(Si*Exy1b-K
1*Ey1b)/C1;
resp+=-ms*(Si*Si*E2x-Si*Ex*(K
1+K
2)+K
1*K
2*E1);
resp+=m
1*m
2*Eyi+m
1*ms*(Si*Ex2b-K
2*E12b);
resp+=m
2*ms*(Si*Ex1b-K
1*E11b)/C1-ms*m
1*m
2;
return(resp);
132
}
return(resp);
133
134
Exyz=exp(medi+medj+medk+
0.5*(stdi*stdi+stdj*stdj+stdk*stdk)
+stdi*stdj*
orij+stdi*stdk*
orik
+stdj*stdk*
orjk);
Exy=exp(medi+medj+
0.5*(stdi*stdi+stdj*stdj)+stdi*stdj*
orij);
Exz=exp(medi+medk+
0.5*(stdi*stdi+stdk*stdk)+stdi*stdk*
orik);
Eyz=exp(medj+medk+
0.5*(stdj*stdj+stdk*stdk)+stdj*stdk*
orjk);
Ex=exp(medi+0.5*stdi*stdi);
Ey=exp(medj+0.5*stdj*stdj);
Ez=exp(medk+0.5*stdk*stdk);
resp=Exyz-Ex*Eyz-Ey*Exz-Ez*Exy+2.0*Ex*Ey*Ez;
return(resp);
135
/***************************************************************************/
/* medi,medj,medk=media do ativo i,j e k;
*/
/* stdi,stdj,stdk=desvio do ativo i,j e k;
*/
/* Ck,K
k=premio e strike da
all ;
*/
/* Sk=
ota
ao do ativo basi
o k em t=0.
*/
/*
orij=
orrela
ao entre i e j;
*/
/***************************************************************************/
{
double Exyz,Exy,Exz,Eyz,Ez,Ex,Ey,E1,Exyi,Eyi,Exi,resp,
R,a,A,B;
R=(log(K
k/Sk)-medk)/stdk;
a=1.0-
orjk*
orjk;
A=
orik*
orjk-
orij;
B=
orij*
orjk-
orik;
Exyz=exp(medi+medj+medk+
0.5*(stdi*stdi+stdj*stdj+stdk*stdk)+
stdi*stdj*
orij+stdi*stdk*
orik+
stdj*stdk*
orjk)/(2.0*sqrt(2.0));
Exyz*=(1.0-erff((1.0/sqrt(2.0))*
(R-stdi*
orik-stdk-stdj*
orjk)));
Exy=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij)/(2.0*sqrt(2.0));
Exy*=(1.0-erff((1.0/sqrt(2.0))*
(R-stdi*
orik-stdj*
orjk)));
Exz=exp(medi+medk+0.5*(stdi*stdi+stdk*stdk)+
stdi*stdk*
orik)/(2.0*sqrt(2.0));
Exz*=(1.0-erff((1.0/sqrt(2.0))*(R-stdi*
orik-stdk)));
Eyz=exp(medj+medk+0.5*(stdj*stdj+stdk*stdk)+
stdj*stdk*
orjk)/(2.0*sqrt(2.0));
Eyz*=(1.0-erff((1.0/sqrt(2.0))*(R-stdk-stdj*
orjk)));
Ex=exp(medi+0.5*(stdi*stdi))/(2.0*sqrt(2.0));
Ex*=(1.0-erff((1.0/sqrt(2.0))*(R-
orik*stdi)));
Ey=exp(medj+0.5*stdj*stdj)/(2.0*sqrt(2.0));
Ey*=(1.0-erff((1.0/sqrt(2.0))*(R-stdj*
orjk)));
Ez=exp(medk+0.5*stdk*stdk)/(2.0*sqrt(2.0));
Ez*=(1.0-erff((1.0/sqrt(2.0))*(R-stdk)));
E1=(1.0-erff(R/sqrt(2.0)))/(2.0*sqrt(2.0));
Exyi=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
orij*stdi*stdj);
Eyi=exp(medj+0.5*stdj*stdj);
Exi=exp(medi+0.5*stdi*stdi);
resp=(Sk*Exyz-K
k*Exy)/Ck-msi*(Sk*Eyz-K
k*Ey)/Ck;
resp+=-msj*(Sk*Exz-K
k*Ex)-m
*Exyi+msi*msj*(Sk*Ez-K
k*E1)/Ck;
resp+=msi*m
*Eyi+msj*m
*Exi-msi*msj*m
;
return(resp);
136
137
Eyi=exp(medj+0.5*stdj*stdj);
Exi=exp(medi+0.5*stdi*stdi);
resp=(-Sk*Exyz+Kpk*Exy)/Pk-msi*(-Sk*Eyz+Kpk*Ey)/Pk;
resp+=-msj*(-Sk*Exz+Kpk*Ex)-mp*Exyi+msi*msj*(-Sk*Ez+Kpk*E1)/Pk;
resp+=msi*mp*Eyi+msj*mp*Exi-msi*msj*mp;
return(resp);
}
/**************************************************************************/
/******
expressoes de assimetria que envolvem integrais duplas ******/
/**************************************************************************/
double m_ri
i
j(double medi, double medj, double stdi, double stdj,
double
orij, double Si, double Sj, double K
i, double K
j,
double Ci, double Cj, double ms, double m
i, double m
j)
/***************************************************************************/
/*
oskewness entre uma
all sobre um ativo i, uma
all sobre o ativo j
*/
/* e o ativo basi
o i;
*/
/*
orij =
oef. de
orrela
ao entre os ativos i e j.
*/
/* Si,Sj =
ota
ao do ativo i,j em t=0;
*/
/* Ci, Cj = premio da
all sobre i e j
*/
/* K
i,K
j = strikes das
alls
*/
/***************************************************************************/
{
double Exy, E2xy, Ex, E2x, Ey, Exyb, Exb, E2xa, Exa, Eyb, E1b,
E1a, Exi, E1, Ri,Rj, resp, L;
Ri=(log(K
i/Si)-medi)/stdi;
Rj=(log(K
j/Sj)-medj)/stdj;
E2xy=(0.5/sqrt(2.0*pi))*
exp(2.0*medi+medj+2.0*stdi*stdi
+0.5*stdj*stdj+2.0*stdi*stdj*
orij);
L=2.0*stdi+stdj*
orij;
E2xy*=I_skew(9,Ri,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Exy=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exy*=I_skew(9,Ri,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
138
double m_ri
ipj(double medi, double medj, double stdi, double stdj,
double
orij, double Si, double Sj, double K
i, double Kpj,
double Ci, double Pj, double ms, double m
, double mp)
/***************************************************************************/
/*
oskewness entre uma
all sobre um ativo i, uma put sobre o ativo j
*/
/* e o ativo basi
o i;
*/
/*
orij =
oef. de
orrela
ao entre os ativos i e j.
*/
/* Si,Sj =
ota
ao do ativo i,j em t=0;
*/
/* Ci = premio da
all sobre i
*/
139
140
double m_ripi
j(double medi, double medj, double stdi, double stdj,
double
orij, double Si, double Sj, double Kpi,
double K
j, double Pi, double Cj,
double ms, double mp, double m
)
/***************************************************************************/
/*
oskewness entre uma
all sobre um ativo j, uma put sobre o ativo i
*/
/* e o ativo basi
o i;
*/
/*
orij =
oef. de
orrela
ao entre os ativos i e j.
*/
/* Si,Sj =
ota
ao do ativo i,j em t=0;
*/
/* Cj = premio da
all sobre j
*/
/* Pi = premio da put sobre i
*/
/* Kpi,K
j = strikes da
all e da put
*/
/***************************************************************************/
{
double Exy, E2xy, Ex, E2x, Ey, E1, Ri, Rj, resp, L,
Exyb, Exb, E2xa, Exa, E1a, Eyb, E1b, Exi;
Ri=(log(Kpi/Si)-medi)/stdi;
Rj=(log(K
j/Sj)-medj)/stdj;
E2xy=(0.5/sqrt(2.0*pi))*
exp(2.0*medi+medj+2.0*stdi*stdi+0.5*stdj*stdj+
2.0*stdi*stdj*
orij);
L=2.0*stdi+stdj*
orij;
E2xy*=I_skew(9,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Exy=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exy*=I_skew(9,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
141
Ex*=I_skew(10,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ey=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey*=I_skew(9,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E1=(0.5/sqrt(2.0*pi));
L=0.0;
E1*=I_skew(10,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E2x=(0.5/sqrt(2.0*pi))*exp(2.0*(medi+stdi*stdi));
L=2.0*stdi;
E2x*=I_skew(10,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Exyb=0.5*exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+stdi*stdj*
orij)*
(1.0-erff((Rj-stdj-
orij*stdi)/sqrt(2.0)));
Exb=0.5*exp(medi+0.5*stdi*stdi)*
(1.0-erff((Rj-
orij*stdi)/sqrt(2.0)));
E2xa=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(1.0+erff((Ri-2.0*stdi)/sqrt(2.0)));
Exa=0.5*exp(medi+0.5*stdi*stdi)*
(1.0+erff((Ri-stdi)/sqrt(2.0)));
Eyb=0.5*exp(medj+0.5*stdj*stdj)*
(1.0-erff((Rj-stdj)/sqrt(2.0)));
E1b=0.5*(1.0-erff(Rj/sqrt(2.0)));
E1a=0.5*(1.0+erff(Ri/sqrt(2.0)));
Exi=exp(medi+0.5*stdi*stdi);
resp=(-Si*Sj*E2xy+Si*E2x*K
j+Sj*Exy*Kpi-Kpi*K
j*Ex)/(Pi*Cj);
resp+=-ms*(-Si*Sj*Exy+Si*Ex*K
j+Sj*Ey*Kpi-Kpi*K
j*E1)/(Pi*Cj);
resp+=-mp*(Sj*Exyb-K
j*Exb)/Cj-m
*(-Si*E2xa+Kpi*Exa)/Pi;
resp+=ms*mp*(Sj*Eyb-K
j*E1b)/Cj+ms*m
*(-Si*Exa+Kpi*E1a)/Pi;
resp+=m
*mp*Exi-ms*m
*mp;
return(resp);
142
143
E1b=0.5*(1.0+erff(Rj/sqrt(2.0)));
E1a=0.5*(1.0+erff(Ri/sqrt(2.0)));
Exi=exp(medi+0.5*stdi*stdi);
resp=(Si*Sj*E2xy-Si*E2x*Kpj-Sj*Exy*Kpi+Kpi*Kpj*Ex)/(Pi*Pj);
resp+=-ms*(Si*Sj*Exy-Si*Ex*Kpj-Sj*Ey*Kpi+Kpi*Kpj*E1)/(Pi*Pj);
resp+=-mpi*(-Sj*Exyb+Kpj*Exb)/Pj-mpj*(-Si*E2xa+Kpi*Exa)/Pi;
resp+=ms*mpi*(-Sj*Eyb+Kpj*E1b)/Pj+ms*mpj*(-Si*Exa+Kpi*E1a)/Pi;
resp+=mpi*mpj*Exi-ms*mpi*mpj;
return(resp);
144
145
L=stdi+stdj*
orij;
Exy1b*=I_skew(9,Ri,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex1b=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex1b*=I_skew(10,Ri,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ey1b=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey1b*=I_skew(9,Ri,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E11b=(0.5/sqrt(2.0*pi));
L=0.0;
E11b*=I_skew(10,Ri,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex1=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((Ri-stdi)/sqrt(2.0)));
E11=0.5*(1.0-erff(Ri/sqrt(2.0)));
146
147
Ex2b=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex2b*=I_skew(10,Ri,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ey2b=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey2b*=I_skew(9,Ri,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E12b=(0.5/sqrt(2.0*pi));
L=0.0;
E12b*=I_skew(10,Ri,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex2=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((Ri-stdi)/sqrt(2.0)));
E12=0.5*(1.0-erff(Ri/sqrt(2.0)));
Ri=(log(K
1/Si)-medi)/stdi;
Exy1b=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
L=stdi+stdj*
orij;
Exy1b*=I_skew(9,Ri,sqrt(2.0),1,1.0,0.0,stddi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex1b=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex1b*=I_skew(10,Ri,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ey1b=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey1b*=I_skew(9,Ri,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E11b=(0.5/sqrt(2.0*pi));
L=0.0;
E11b*=I_skew(10,Ri,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex1=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((Ri-stdi)/sqrt(2.0)));
E11=0.5*(1.0-erff(Ri/sqrt(2.0)));
resp=(-Si*Si*Sj*E2xy+Si*Si*E2x*Kpj+Si*Sj*(K
1+K
2)*Exy
-Si*Kpj*(K
1+K
2)*Ex-Sj*K
1*K
2*Ey+K
1*K
2*Kpj*E1)/(C1*C2*Pj);
148
return(resp);
double m_
ipi
j(double medi, double medj, double stdi, double stdj,
double
orij, double Si, double Sj, double K
i, double Kpi,
double K
j, double Ci, double Pi, double Cj,
double m
i, double mp, double m
j)
/***************************************************************************/
/*
oskewness entre
alls sobre os ativos i e j e put sobre o ativo i ;
*/
/*
orij =
oef. de
orrela
ao entre os ativos i e j.
*/
/* Si,Sj =
ota
ao do ativo i,j em t=0;
*/
/* Ci,Cj,Pi = premio das
alls e da put.
*/
/* K
i,K
j,Kpi = strikes das
alls e da put;
*/
/***************************************************************************/
{
double L,Exy, E2xy, Ex, E2x, Ey, E1, Rj, resp,R
,Rp,
Exyp
, Exp
,Eyp
,E1p
,Exy
,Ex
,Ey
,E1
,
Eyb,E1b,Exp,E1p,Ex
,E1
;
resp=0.0;
R
=(log(K
i/Si)-medi)/stdi;
Rp=(log(Kpi/Si)-medi)/stdi;
Rj=(log(K
j/Sj)-medj)/stdj;
if (K
i < Kpi){
E2xy=(0.5/sqrt(2.0*pi))*
exp(2.0*medi+medj+2.0*stdi*stdi+0.5*stdj*stdj+
2.0*stdi*stdj*
orij);
L=2.0*stdi+stdj*
orij;
E2xy*=(I_skew(9,R
,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(9,Rp,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Rp,Rj,0.0,L));
Exy=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exy*=(I_skew(9,R
,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(9,Rp,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
149
0.0,Rp,Rj,0.0,L));
Ex=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex*=(I_skew(10,R
,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(10,Rp,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Rp,Rj,0.0,L));
Ey=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey*=(I_skew(9,R
,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(9,Rp,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Rp,Rj,0.0,L));
E1=(0.5/sqrt(2.0*pi));
L=0.0;
E1*=(I_skew(9,R
,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(9,Rp,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Rp,Rj,0.0,L));
E2x=(0.5/sqrt(2.0*pi))*exp(2.0*(medi+stdi*stdi));
L=2.0*stdi;
E2x*=(I_skew(10,R
,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(10,Rp,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Rp,Rj,0.0,L));
E2xaa=0.5*exp(2.0*medi+2.0*stdi*stdi)*
(erff((R
-2.0*stdi)/sqrt(2.0))-erf((Rp-2.0*stdi)/sqrt(2.0)));
Exaa=0.5*exp(medi+0.5*stdi*stdi)*
(erff((R
-stdi)/sqrt(2.0))-erf((Rp-stdi)/sqrt(2.0)));
E1aa=0.5*(erff(R
/sqrt(2.0))-erf(Rp/sqrt(2.0)));
resp+=(-Si*Si*Sj*E2xy+Si*Si*E2x*K
j+Si*Sj*(K
i+Kpi)*Exy
-Si*(K
i+Kpi)*K
j*Ex-K
i*Kpi*Sj*Ey+K
i*Kpi*K
j*E1)/(Ci*Cj*Pi);
resp+=-m
j*(-Si*Si*E2xaa+Si*(K
i+Kpi)*Exaa-K
i*Kpi*E1aa)/(Pi*Ci);
Exyp
=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exyp
*=I_skew(9,Rp,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L);
Exp
=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Exp
*=I_skew(10,Rp,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L);
Eyp
=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
150
return(resp);
151
resp=0.0;
R
=(log(K
i/Si)-medi)/stdi;
Rp=(log(Kpi/Si)-medi)/stdi;
Rj=(log(Kpj/Sj)-medj)/stdj;
if (K
i < Kpi){
E2xy=(0.5/sqrt(2.0*pi))*
exp(2.0*medi+medj+2.0*stdi*stdi+0.5*stdj*stdj+
2.0*stdi*stdj*
orij);
L=2.0*stdi+stdj*
orij;
E2xy*=(I_skew(9,R
,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(9,Rp,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Rp,Rj,0.0,L));
Exy=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exy*=(I_skew(9,R
,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(9,Rp,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Rp,Rj,0.0,L));
Ex=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex*=(I_skew(10,R
,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L)
-I_skew(10,Rp,sqrt(2.0),1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Rp,Rj,0.0,L));
Ey=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
152
153
0.0,R
,Rj,0.0,L);
Exypp=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exypp*=I_skew(9,Rp,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L);
Expp=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Expp*=I_skew(10,Rp,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L);
Eypp=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Eypp*=I_skew(9,Rp,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L);
E1pp=(0.5/sqrt(2.0*pi));
L=0.0;
E1pp*=I_skew(10,Rp,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,R
,Rj,0.0,L);
Eyb=0.5*exp(medj+0.5*stdj*stdj)*(1.0+erff((Rj-stdj)/sqrt(2.0)));
E1b=0.5*(1.0+erff(Rj/sqrt(2.0)));
Exp=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((Rp-stdi)/sqrt(2.0)));
E1p=0.5*(1.0+erff(Rp/sqrt(2.0)));
Ex
=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((R
-stdi)/sqrt(2.0)));
E1p=0.5*(1.0-erff(R
/sqrt(2.0)));
resp+=mpi*(Si*Sj*Exy
p-Si*Kpj*Ex
p-Sj*k
i*Ey
p+Kpi*Kpj*E1
p)/(Ci*Pj);
resp+=-m
*(Si*Sj*Exypp-Si*Kpj*Expp-Sj*kpi*Eypp+Kpi*Kpj*E1pp)/(Pi*Pj);
resp+=m
*mpi*(-Sj*Eyb+Kpj*E1b)/Pj+m
*mpj*(-Si*Exp+Kpi*E1p)/Pi;
resp+=mpi*mpj*(Si*Ex
-K
i*E1
)/Ci-m
*mpi*mpj;
}
return(resp);
double m_pipi
j(double medi, double medj, double stdi, double stdj,
double
orij, double Si, double Sj, double Kp1, double Kp2,
double K
j, double P1, double P2, double Cj,
double mp1, double mp2, double m
)
/***************************************************************************/
154
Ri=(log(Kp2/Si)-medi)/stdi;
Exy2b=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exy2b*=I_skew(9,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex2b=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex2b*=I_skew(10,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ey2b=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey2b*=I_skew(9,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E12b=(0.5/sqrt(2.0*pi));
L=0.0;
E12b*=I_skew(10,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex2=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((Ri-stdj)/sqrt(2.0)));
E12=0.5*(1.0-erff(Ri/sqrt(2.0)));
Ri=(log(Kp1/Si)-medi)/stdi;
Exy1b=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exy1b*=I_skew(9,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex1b=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex1b*=I_skew(10,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ey1b=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey1b*=I_skew(9,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E11b=(0.5/sqrt(2.0*pi));
L=0.0;
E11b*=I_skew(10,Ri,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Eyb=0.5*exp(medj+0.5*stdj*stdj)*(1.0-erff((Rj-stdj)/sqrt(2.0)));
155
156
resp=(Si*Si*Sj*E2xy-Si*Si*E2x*K
j-Si*Sj*Exy*(Kp1+Kp2)+
Si*Ex*K
j*(Kp1+Kp2)+Kp1*Kp2*Sj*Ey-Kp1*Kp2*K
j*E1)/(P1*P2*Cj);
resp+=-mp1*(-Si*Sj*Exy2b+Si*K
j*Ex2b+Sj*Ey2b*Kp2-Kp2*K
j*E12b)/(P2*Cj);
resp+=-mp2*(-Si*Sj*Exy1b+Si*K
j*Ex1b+Sj*Ey1b*Kp1-Kp1*K
j*E11b)/(P1*Cj);
resp+=-m
*(Si*Si*E2xpp-Si*Expp*(Kp1+Kp2)+Kp1*Kp2*E1pp)/(P1*P2);
resp+=mp1*mp2*(Sj*Eyb-K
j*E1b)/Cj+mp1*m
j*(-Si*Ex2+Kp2*E12)/P2;
resp+=mp2*m
j*(-Si*Ex1+Kp1*E11)/P1-mp1*mp2*m
;
return(resp);
157
Exy*=I_skew(9,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex*=I_skew(10,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ey=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey*=I_skew(9,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E1=(0.5/sqrt(2.0*pi));
L=0.0;
E1*=I_skew(10,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E2x=(0.5/sqrt(2.0*pi))*exp(2.0*(medi+stdi*stdi));
L=2.0*stdi;
E2x*=I_skew(10,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E2xpp=0.5*exp(2.0*medi+2.0*stdi*stdi)*(1.0+erff((Ri-2.0*stdi)/sqrt(2.0)));
Expp=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((Ri-stdi)/sqrt(2.0)));
Expp=0.5*(1.0+erff(Ri/sqrt(2.0)));
Ri=(log(Kp2/Si)-medi)/stdi;
Exy2b=(0.5/sqrt(2.0*pi))*
exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij);
L=stdi+stdj*
orij;
Exy2b*=I_skew(9,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex2b=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi;
Ex2b*=I_skew(10,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ey2b=(0.5/sqrt(2.0*pi))*exp(medj+0.5*stdj*stdj);
L=stdj*
orij;
Ey2b*=I_skew(9,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
E12b=(0.5/sqrt(2.0*pi));
L=0.0;
E12b*=I_skew(10,Ri,sqrt(2.0),-1,1.0,0.0,stdi,stdj,0.0,
orij,0.0,
0.0,Ri,Rj,0.0,L);
Ex2=0.5*exp(medi+0.5*stdi*stdi)*(1.0+erff((Ri-stdj)/sqrt(2.0)));
E12=0.5*(1.0+erff(Ri/sqrt(2.0)));
158
}
double m_ri
j
k(double medi, double medj, double medk,
double stdi, double stdj, double stdk,
double
orij, double
orik, double
orjk,
double Sj, double Sk, double K
j, double K
k,
double Cj, double Ck, double ms, double m
j,
double m
k)
/***************************************************************************/
159
160
161
/***************************************************************************/
/*
oskewness entre ativo basi
o i,
all sobre ativo j e put sobre ativo k;*/
/* medi,medj,medk=media do ativo i,j e k;
*/
/* stdi,stdj,stdk=desvio do ativo i,j e k;
*/
/* Cj,Pk,K
j,Kpk=
ota
aos e strikes das
all e put ;
*/
/* Sj,Sk=
ota
ao dos ativos basi
os i,j e k em t=0.
*/
/*
orij=
orrela
ao entre i e j;
*/
/***************************************************************************/
{
double Exyz,Exy,Exz,Eyz,Ez,Ex,Ey,E1,resp,
Rj,Rk,a,L,A,B,Exza
,Exa
,Exyab,Exab,Ez
,E1
,Eyb,E1b,Exi;
Rj=(log(K
j/Sj)-medj)/stdj;
Rk=(log(Kpk/Sk)-medk)/stdk;
a=1.0-
orjk*
orjk;
A=
orik*
orjk-
orij;
B=
orij*
orjk-
orik;
Exyz=exp(medi+medj+medk+
0.5*(stdi*stdi+stdj*stdj+stdk*stdk)+
stdi*stdj*
orij+stdi*stdk*
orik+
stdj*stdk*
orjk)/(2.0*sqrt(2.0*pi));
L=-stdi*(B+A*
orjk)/a+stdj*
orjk+stdk;
Exyz*=I_skew(11,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Exy=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij)/(2.0*sqrt(2.0*pi));
L=-stdi*(B+A*
orjk)/a+stdj*
orjk;
Exy*=I_skew(11,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Exz=exp(medi+medk+0.5*(stdi*stdi+stdk*stdk)+
stdi*stdk*
orik)/(2.0*sqrt(2.0*pi));
L=-stdi*(B+A*
orjk)/a+stdk;
Exz*=I_skew(12,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Eyz=exp(medj+medk+0.5*(stdj*stdj+stdk*stdk)+
stdj*stdk*
orjk)/(2.0*sqrt(2.0*pi));
L=stdj*
orjk+stdk;
Eyz*=I_skew(13,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Ex=exp(medi+0.5*(stdi*stdi))/(2.0*sqrt(2.0*pi));
L=-stdi*(B+A*
orjk)/a;
Ex*=I_skew(12,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Ey=exp(medj+0.5*stdj*stdj)/(2.0*sqrt(2.0*pi));
L=stdj*
orjk;
Ey*=I_skew(13,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,stdk,
orij,
orik,
162
double m_ripjpk(double
double
double
double
double
163
double mpk)
/***************************************************************************/
/*
oskewness entre ativo basi
o i,
all sobre ativo j e put sobre ativo k;*/
/* medi,medj,medk=media do ativo i,j e k;
*/
/* stdi,stdj,stdk=desvio do ativo i,j e k;
*/
/* Pj,Pk,Kpj,Kpk=
ota
aos e strikes das puts ;
*/
/* Sj,Sk=
ota
ao dos ativos basi
os j e k em t=0.
*/
/*
orij=
orrela
ao entre i e j;
*/
/***************************************************************************/
{
double Exyz,Exy,Exz,Eyz,Ez,Ex,Ey,E1,resp,
Rj,Rk,a,L,A,B,Exza
,Exa
,Exyab,Exab,Ez
,E1
,Eyb,E1b,Exi;
Rj=(log(Kpj/Sj)-medj)/stdj;
Rk=(log(Kpk/Sk)-medk)/stdk;
a=1.0-
orjk*
orjk;
A=
orik*
orjk-
orij;
B=
orij*
orjk-
orik;
Exyz=exp(medi+medj+medk+
0.5*(stdi*stdi+stdj*stdj+stdk*stdk)+
stdi*stdj*
orij+stdi*stdk*
orik+
stdj*stdk*
orjk)/(2.0*sqrt(2.0*pi));
L=-stdi*(B+A*
orjk)/a+stdj*
orjk+stdk;
Exyz*=I_skew(11,Rk,sqrt(2.0),-1,1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Exy=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)+
stdi*stdj*
orij)/(2.0*sqrt(2.0*pi));
L=-stdi*(B+A*
orjk)/a+stdj*
orjk;
Exy*=I_skew(11,Rk,sqrt(2.0),-1,1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Exz=exp(medi+medk+0.5*(stdi*stdi+stdk*stdk)+
stdi*stdk*
orik)/(2.0*sqrt(2.0*pi));
L=-stdi*(B+A*
orjk)/a+stdk;
Exz*=I_skew(12,Rk,sqrt(2.0),-1,1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Eyz=exp(medj+medk+0.5*(stdj*stdj+stdk*stdk)+
stdj*stdk*
orjk)/(2.0*sqrt(2.0*pi));
L=stdj*
orjk+stdk;
Eyz*=I_skew(13,Rk,sqrt(2.0),-1,1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Ex=exp(medi+0.5*(stdi*stdi))/(2.0*sqrt(2.0*pi));
L=-stdi*(B+A*
orjk)/a;
Ex*=I_skew(12,Rk,sqrt(2.0),-1,1.0,0.0,stdi,stdj,stdk,
orij,
orik,
orjk,0.0,Rj,Rk,L);
Ey=exp(medj+0.5*stdj*stdj)/(2.0*sqrt(2.0*pi));
L=stdj*
orjk;
164
resp=(Sj*Sk*Exyz-Sj*Exy*Kpk-Kpj*Sj*Exz+Kpj*Kpk*Ex)/(Pj*Pk);
resp+=-ms*(Sj*Sk*Eyz-Sj*Kpk*Ey-Kpj*Sk*Ez+Kpj*Kpk*E1)/(Pj*Pk);
resp+=mpj*(Sk*Exza
-Kpk*Exa
)/Pk;
resp+=mpk*(Sj*Exyab-Kpj*Exab)/Pj;
resp+=ms*mpj*(-Sk*Ez
+Kpk*E1
)/Pk;
resp+=ms*mpk*(-Sj*Eyb+Kpj*E1b)/Pj;
resp+=mpj*mpk*Exi-ms*mpj*mpk;
return(resp);
/***************************************************************************/
165
/******
expressoes de assimetria que envolvem integrais triplas
*****/
/***************************************************************************/
double m_
i
j
k(double medi, double medj, double medk,
double stdi, double stdj, double stdk,
double
orij, double
orik, double
orjk,
double Si, double Sj, double Sk,
double K
i, double K
j, double K
k,
double Ci, double Cj, double Ck, double *x, double *w,
double m
i, double m
j, double m
k )
/***************************************************************************/
/* medi,medj,medk=media dos ativos i,j e k;
*/
/* stdi,stdj,stdk=desvio dos ativos i,j e k;
*/
/* Ci,Cj,Ck,K
i,K
j,K
k=premios e strikes das
alls ;
*/
/* Si,Sj,Sk=
ota
ao dos ativos basi
os i,j e k em t=0.
*/
/*
orij=
orrela
ao entre i e j;
*/
/* x=vetor que
ont
em os nos do grid gaussiano;
*/
/* w=vetor de pesos do grid gaussiano;
*/
/***************************************************************************/
{
double Exyz,Exy,Exz,Eyz,Ez,Ex,Ey,E1,resp,
Ri,Rj,Rk,
,Gb,G, L, T, B, C,
Eyzb
,Eyb
,Ezb
,E1b
,
Exza
,Exa
,Eza
,E1a
,
Exyab,Exab,Eyab,E1ab,
Ez
,E1
,Eyb,E1b,Exa,E1a;
int l;
Exyz=0.0;
=1.0-
orij*
orij;
C=
orij*
orik-
orjk;
B=
orij*
orjk-
orik;
Ri=(log(K
i/Si)-medi)/stdi;
Rj=(log(K
j/Sj)-medj)/stdj;
Rk=(log(K
k/Sk)-medk)/stdk;
T=(stdk*B-stdi*
+
orij*(-stdj*
+stdk*C))/
;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-stdj*
+stdk*C-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Exyz+=w[l*exp(-2.0*x[l*L)*
I_skew(15,G,1.0,+1,-1.0,x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
/* I
al
ula a integral de G ate' +(-)infinito da fun
ao
fun
, que depende de phi (x[i e'um ponto do grid de phi
166
}
Exyz*=exp(medi+medj+medk
+0.5*(stdi*stdi+stdj*stdj+stdk*stdk)
+stdi*stdj*
orij+stdi*stdk*
orik
+stdj*stdk*
orjk-sqr(L))/(2.0*pi);
Exy=0.0;
T=-stdi+
orij*-stdj;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-stdj*
-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Exy+=w[l*exp(-2.0*x[l*L)
*I_skew(16,G,1.0,+1,-1.0,x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
}
Exy*=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)
+stdi*stdj*
orij-sqr(L))/(2.0*pi);
Exz=0.0;
T=(stdk*B-stdi*
+
orij*stdk*C)/
;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj+stdk*C-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Exz+=w[l*exp(-2.0*x[l*L)
*I_skew(17,G,1.0,+1,-1.0,x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
}
Exz*=exp(medi+medk+0.5*(stdi*stdi+stdk*stdk)
+stdi*stdk*
orik-sqr(L))/(2.0*pi);
Eyz=0.0;
T=(stdk*B+
orij*(-stdj*
+stdk*C))/
;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-stdj*
+stdk*C-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Eyz+=w[l*exp(-2.0*x[l*L)
*I_skew(18,G,1.0,+1,-1.0,x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
}
Eyz*=exp(medj+medk+0.5*(stdj*stdj+stdk*stdk)+
stdj*stdk*
orjk-sqr(L))/(2.0*pi);
Ex=0.0;
T=-stdi;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-
orij*sqrt(2.0)*L+
orij*T);
167
168
169
0.0,Ri,Rj,0.0,L);
E1a
=(0.5/sqrt(2.0*pi));
L=0.0;
E1a
*=I_skew(10,Rk,sqrt(2.0),1,-1.0,0.0,stdi,stdj,0.0,0.0,
orik,
0.0,Ri,Rj,0.0,L);
Ez
=0.5*exp(medk+0.5*stdk*stdk)*(1.0-erff((Rk-stdk)/sqrt(2.0)));
Ez
=0.5*(1.0-erff(Rk/sqrt(2.0)));
Eyb=0.5*exp(medj+0.5*stdj*stdj)*(1.0-erff((Rj-stdj)/sqrt(2.0)));
E1b=0.5*(1.0-erff(Rj/sqrt(2.0)));
Exa=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((Ri-stdi)/sqrt(2.0)));
E1a=0.5*(1.0-erff(Ri/sqrt(2.0)));
170
Exyz=0.0;
=1.0-
orij*
orij;
C=
orij*
orik-
orjk;
B=
orij*
orjk-
orik;
Ri=(log(K
i/Si)-medi)/stdi;
Rj=(log(K
j/Sj)-medj)/stdj;
Rk=(log(Kpk/Sk)-medk)/stdk;
T=(stdk*B-stdi*
+
orij*(-stdj*
+stdk*C))/
;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-stdj*
+stdk*C-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Exyz+=w[l*exp(-2.0*x[l*L)
*I_skew(15,G,1.0,+1,1.0,x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
/* I
al
ula a integral de G ate' +(-)infinito da fun
ao
fun
, que depende de phi (x[i e'um ponto do grid de phi
indiretamente e de psi. */
}
Exyz*=exp(medi+medj+medk
+0.5*(stdi*stdi+stdj*stdj+stdk*stdk)
+stdi*stdj*
orij+stdi*stdk*
orik
+stdj*stdk*
orjk-sqr(L))/(2.0*pi);
Exy=0.0;
T=-stdi+
orij*-stdj;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-stdj*
-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Exy+=w[l*exp(-2.0*x[l*L)
*I_skew(16,G,1.0,+1,1.0,x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
}
Exy*=exp(medi+medj+0.5*(stdi*stdi+stdj*stdj)
+stdi*stdj*
orij-sqr(L))/(2.0*pi);
Exz=0.0;
T=(stdk*B-stdi*
+
orij*stdk*C)/
;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj+stdk*C-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Exz+=w[l*exp(-2.0*x[l*L)
*I_skew(17,G,1.0,+1,1.0,x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
}
171
172
173
L=0.0;
E1b
*=I_skew(10,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,0.0,0.0,
orjk,Ri,Rj,0.0,L);
Exza
=(0.5/sqrt(2.0*pi))*
exp(medk+medi+0.5*(stdk*stdk+stdi*stdi)+
stdk*stdi*
orik);
L=stdk+stdi*
orik;
Exza
*=I_skew(9,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,0.0,
orik,
0.0,Ri,Rj,0.0,L);
Eza
=(0.5/sqrt(2.0*pi))*exp(medk+0.5*stdk*stdk);
L=stdk;
Eza
*=I_skew(10,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,0.0,
orik,
0.0,Ri,Rj,0.0,L);
Exa
=(0.5/sqrt(2.0*pi))*exp(medi+0.5*stdi*stdi);
L=stdi*
orik;
Exa
*=I_skew(9,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,0.0,
orik,
0.0,Ri,Rj,0.0,L);
E1a
=(0.5/sqrt(2.0*pi));
L=0.0;
E1a
*=I_skew(10,Rk,sqrt(2.0),-1,-1.0,0.0,stdi,stdj,0.0,0.0,
orik,
0.0,Ri,Rj,0.0,L);
Ez
=0.5*exp(medk+0.5*stdk*stdk)*(1.0+erff((Rk-stdk)/sqrt(2.0)));
E1
=0.5*(1.0+erff(Rk/sqrt(2.0)));
Eyb=0.5*exp(medj+0.5*stdj*stdj)*(1.0-erff((Rj-stdj)/sqrt(2.0)));
E1b=0.5*(1.0-erff(Rj/sqrt(2.0)));
Exa=0.5*exp(medi+0.5*stdi*stdi)*(1.0-erff((Ri-stdi)/sqrt(2.0)));
E1a=0.5*(1.0-erff(Ri/sqrt(2.0)));
resp=-(Si*Sj*Sk*Exyz-Si*Sj*Exy*Kpk-Si*Sk*Exz*K
j+Si*Ex*K
j*Kpk
+Sj*Ey*K
i*Kpk+Sk*Ez*K
j*K
i-K
i*K
j*Kpk*E1)/(Ci*Cj*Pk);
resp+=m
i*(Sj*Sk*Eyzb
-Sj*Kpk*Eyb
-K
j*Sk*Ezb
+K
j*Kpk*E1b
)/(Cj*Pk);
resp+=m
j*(Si*Sk*Exza
-Si*Kpk*Exa
-K
i*Sk*Eza
+K
i*Kpk*E1a
)/(Ci*Pk);
resp+=-mpk*(Si*Sj*Exyab-Si*K
j*Exab-K
i*Sj*Eyab+K
i*K
j*E1ab)/(Ci*Cj);
resp+=m
i*m
j*(-Sk*Ez
+Kpk*E1
)/Pk+m
i*mpk*(Sj*Eyb-K
j*E1b)/Cj;
resp+=m
j*mpk*(Si*Exa-K
i*E1a)/Ci-m
i*m
j*mpk;
return(resp);
}
174
175
176
177
178
179
180
}
Eyz*=exp(medj+medk+0.5*(stdj*stdj+stdk*stdk)+
stdj*stdk*
orjk-sqr(L))/(2.0*pi);
Ex=0.0;
T=-stdi;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(-x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Ex+=w[l*exp(-2.0*-x[l*L)
*I_skew(19,G,1.0,-1,1.0,-x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
}
Ex*=exp(medi+0.5*(stdi*stdi)-sqr(L))/(2.0*pi);
Ey=0.0;
T=
orij*-stdj;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-stdj*
-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(-x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Ey+=w[l*exp(-2.0*-x[l*L)
*I_skew(20,G,1.0,-1,1.0,-x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
}
Ey*=exp(medj+0.5*stdj*stdj-sqr(L))/(2.0*pi);
Ez=0.0;
T=(stdk*B+
orij*stdk*C)/
;
L=(Ri+T)/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj+stdk*C-
orij*sqrt(2.0)*L+
orij*T);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(-x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
Ez+=w[l*exp(-2.0*-x[l*L)
*I_skew(21,G,1.0,-1,1.0,-x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
}
Ez*=exp(medk+0.5*stdk*stdk-sqr(L))/(2.0*pi);
E1=0.0;
T=0.0;
L=Ri/sqrt(2.0);
Gb=(1.0/sqrt(2.0*
))*(Rj-
orij*sqrt(2.0)*L);
for (l=0;l<16;l++){
/* 16 e'o numero de pontos de gauss */
G=Gb-(-x[l*sqrt(2.0)*
orij)*(1.0/sqrt(2.0*
));
E1+=w[l*exp(-2.0*-x[l*L)
*I_skew(22,G,1.0,-1,1.0,-x[l,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,0.0);
181
182
}
double sss(int i, int j, int k, double *med, double *std, double **
or,
int *atv)
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness somente entre ativos
*/
/* basi
os;
*/
/* aqui sera'
hamada a fun
ao que
al
ula o
oskewness entre o i-
esimo, */
/* j-esimo
*/
/* e k-esimo ativo basi
o;
*/
/* dependendo se i,j e k sao iguais ou nao, sera'
hamada uma fun
ao
*/
/* diferente;
*/
/* no vetor atv, atv[i
ont
em o respe
tivo ativo basi
o referente ao
*/
/* i-
esimo elemento do portfolio.
*/
183
/***************************************************************************/
{
double resp=1.0E+308;
double ss
(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness entre ativos basi
os e
all;*/
/* dependendo se i,j e k sao iguais ou nao, sera'
hamada uma fun
ao
*/
/* diferente;
*/
/* no vetor atv, atv[i
ont
em o respe
tivo ativo basi
o referente ao
*/
/* i-
esimo elemento do portfolio.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if ((atv[i == atv[j) && (atv[i == atv[k)){
resp=m_riri
i(med[atv[i,std[atv[i,S[k,K[k,P[k,esp[i,
esp[k);
}
if ((atv[i == atv[j) && (atv[j != atv[k)){
resp=m_riri
j(med[atv[i,med[atv[k,std[atv[i,std[atv[k,
184
}
if ((atv[i != atv[j) && (atv[j == atv[k)){
resp=m_ri
irj(med[atv[j,med[atv[i,std[atv[j,std[atv[i,
or[atv[i[atv[j,S[k,K[k,P[k,esp[i,esp[k);
}
if ((atv[i == atv[k) && (atv[j != atv[k)){
resp=m_ri
irj(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[k,K[k,P[k,esp[i,esp[j,
esp[k);
}
if ((atv[i != atv[j) && (atv[i != atv[k) && (atv[j != atv[k)){
resp=m_rirj
k(med[atv[i,med[atv[j,med[atv[k,std[atv[i,
std[atv[j,std[atv[k,
or[atv[i[atv[j,
or[atv[i[atv[k,
or[atv[j[atv[k,
S[k,K[k,P[k,esp[i,esp[j,esp[k);
}
return(resp);
double ssp(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness entre ativos basi
os e put; */
/* dependendo se i,j e k sao iguais ou nao, sera'
hamada uma fun
ao
*/
/* diferente.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if ((atv[i == atv[j) && (atv[i == atv[k)){
resp=m_riripi(med[atv[i,std[atv[i,S[k,K[k,P[k,esp[i,
esp[k);
}
if ((atv[i == atv[j) && (atv[j != atv[k)){
resp=m_riripj(med[atv[i,med[atv[k,std[atv[i,std[atv[k,
or[atv[i[atv[k,S[k,K[k,P[k,esp[i,esp[k);
}
if ((atv[i != atv[j) && (atv[j == atv[k)){
resp=m_ripirj(med[atv[j,med[atv[i,std[atv[j,std[atv[i,
or[atv[i[atv[j,S[k,K[k,P[k,esp[i,
esp[j,esp[k);
}
if ((atv[i == atv[k) && (atv[j != atv[k)){
resp=m_ripirj(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
185
or[atv[i[atv[j,S[k,K[k,P[k,esp[i,
esp[j,esp[k);
}
if ((atv[i != atv[j) && (atv[i != atv[k) && (atv[j != atv[k)){
resp=m_rirjpk(med[atv[i,med[atv[j,med[atv[k,std[atv[i,
std[atv[j,std[atv[k,
or[atv[i[atv[j,
or[atv[i[atv[k,
or[atv[j[atv[k,
S[k,K[k,P[k,esp[i,esp[j,esp[k);
}
return(resp);
double s
(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness entre ativos basi
os e
all;*/
/* dependendo se i,j e k sao iguais ou nao, sera'
hamada uma fun
ao
*/
/* diferente.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if ((atv[i == atv[j) && (atv[i == atv[k)){
resp=m_ri
i
i(med[atv[i,std[atv[i,S[k,K[j,K[k,P[j,P[k,
esp[i,esp[j,esp[k);
}
if ((atv[i == atv[j) && (atv[j != atv[k)){
resp=m_ri
i
j(med[atv[i,med[atv[k,std[atv[i,std[atv[k,
or[atv[i[atv[k,S[j,S[k,K[j,K[k,P[j,P[k,
esp[i,esp[j,esp[k);
}
if ((atv[i != atv[j) && (atv[j == atv[k)){ //j=k i
resp=m_
i
irj(med[atv[j,med[atv[i,std[atv[j,std[atv[i,
or[atv[i[atv[j,S[j,K[j,K[k,P[j,P[k,
esp[i,esp[j,esp[k);
}
if ((atv[i == atv[k) && (atv[j != atv[k)){
resp=m_ri
i
j(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[k,S[j,K[k,K[j,P[k,P[j,
esp[i,esp[j,esp[k);
}
if ((atv[i != atv[j) && (atv[i != atv[k) && (atv[j != atv[k)){
resp=m_ri
j
k(med[atv[i,med[atv[j,med[atv[k,std[atv[i,
std[atv[j,std[atv[k,
or[atv[i[atv[j,
or[atv[i[atv[k,
or[atv[j[atv[k,
186
}
return(resp);
S[j,S[k,K[j,K[k,P[j,P[k,esp[i,esp[j,esp[k);
double s
p(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *esp)
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness entre 1 ativo basi
o,
*/
/* 1
all e 1 put; dependendo se i,j e k sao iguais ou nao, sera'
hamada */
/* uma fun
ao diferente; no vetor atv, atv[i
ont
em o respe
tivo ativo
*/
/* basi
o referente ao i-
esimo elemento do portfolio.
*/
/***************************************************************************/
{
double resp=1.0E+308;
187
double spp(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *esp)
/****************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness entre 1 ativo basi
o e 2 puts*/
/****************************************************************************/
{
double resp=1.0E+308;
double
(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *x, double *w,
double *esp)
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness somente entre
alls
*/
/***************************************************************************/
{
188
double
p(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *x, double *w,
double *esp )
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness entre 2
alls e 1 put.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if ((atv[i == atv[j) && (atv[i == atv[k)){
resp=m_
i
ipi(med[atv[i,std[atv[i,S[i,K[i,K[j,K[k,
P[i,P[j,P[k,esp[i,esp[j,esp[k);
}
if ((atv[i == atv[j) && (atv[j != atv[k)){
189
resp=m_
i
ipj(med[atv[i,med[atv[k,std[atv[i,std[atv[k,
or[atv[i[atv[k,S[j,S[k,K[i,K[j,K[k,P[i,
P[j,P[k,esp[i,esp[j,esp[k);
}
if ((atv[i != atv[j) && (atv[j == atv[k)){
resp=m_
ipi
j(med[atv[j,med[atv[i,std[atv[j,std[atv[i,
or[atv[i[atv[j,S[j,S[i,K[j,K[k,K[i,
P[j,P[k,P[i,esp[i,esp[j,esp[k);
}
if ((atv[i == atv[k) && (atv[j != atv[k)){
resp=m_
ipi
j(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[k,S[j,K[i,K[k,K[j,P[i,
P[k,P[j,esp[i,esp[j,esp[k);
}
if ((atv[i != atv[j) && (atv[i != atv[k) && (atv[j != atv[k)){
resp=m_
i
jpk(med[atv[i,med[atv[j,med[atv[k,std[atv[i,
std[atv[j,std[atv[k,
or[atv[i[atv[j,
or[atv[i[atv[k,
or[atv[j[atv[k,
S[i,S[j,S[k,K[i,K[j,K[k,P[i,P[j,P[k,x,w,
esp[i,esp[j,esp[k);
}
return(resp);
double
pp(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *x, double *w,
double *esp)
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness entre 1
all e 2 puts.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if ((atv[i == atv[j) && (atv[i == atv[k)){
resp=m_
ipipi(med[atv[i,std[atv[i,S[i,K[i,K[j,K[k,
P[i,P[j,P[k,esp[i,esp[j,esp[k);
}
if ((atv[i == atv[j) && (atv[j != atv[k)){
resp=m_
ipipj(med[atv[i,med[atv[k,std[atv[i,std[atv[k,
or[atv[i[atv[k,S[j,S[k,K[i,K[j,K[k,
P[i,P[j,P[k,esp[i,esp[j,esp[k);
}
if ((atv[i != atv[j) && (atv[j == atv[k)){
resp=m_pipi
j(med[atv[j,med[atv[i,std[atv[j,std[atv[i,
or[atv[i[atv[j,S[j,S[i,K[j,K[k,K[i,
190
}
if ((atv[i == atv[k) && (atv[j != atv[k)){
resp=m_
ipipj(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[k,S[j,K[i,K[k,K[j,P[i,
P[k,P[j,esp[i,esp[j,esp[k);
}
if ((atv[i != atv[j) && (atv[i != atv[k) && (atv[j != atv[k)){
resp=m_
ipjpk(med[atv[i,med[atv[j,med[atv[k,std[atv[i,
std[atv[j,std[atv[k,
or[atv[i[atv[j,
or[atv[i[atv[k,
or[atv[j[atv[k,
S[i,S[j,S[k,K[i,K[j,K[k,P[i,P[j,P[k,x,w,
esp[i,esp[j,esp[k);
}
return(resp);
double ppp(int i, int j, int k, double *med, double *std, double **
or,
double *S, double *K, double *P, int *atv, double *x, double *w,
double *esp)
/***************************************************************************/
/* rotina de
hamada das fun
oes de
oskewness somente entre puts.
*/
/***************************************************************************/
{
double resp=1.0E+308;
if ((atv[i == atv[j) && (atv[i == atv[k)){
resp=m_pipipi(med[atv[i,std[atv[i,S[i,K[i,K[j,K[k,
P[i,P[j,P[k,esp[i,esp[j,esp[k);
}
if ((atv[i == atv[j) && (atv[j != atv[k)){
resp=m_pipipj(med[atv[i,med[atv[k,std[atv[i,std[atv[k,
or[atv[i[atv[k,S[i,S[k,K[i,K[j,K[k,
P[i,P[j,P[k,esp[i,esp[j,esp[k);
}
if ((atv[i != atv[j) && (atv[j == atv[k)){
resp=m_pipipj(med[atv[j,med[atv[i,std[atv[j,std[atv[i,
or[atv[i[atv[j,S[j,S[i,K[j,K[k,K[i,P[j,
P[k,P[i,esp[i,esp[j,esp[k);
}
if ((atv[i == atv[k) && (atv[j != atv[k)){
resp=m_pipipj(med[atv[i,med[atv[j,std[atv[i,std[atv[j,
or[atv[i[atv[j,S[k,S[j,K[i,K[k,K[j,P[i,
P[k,P[j,esp[i,esp[j,esp[k);
}
191
double f_skew(
har op
ao, double sgn, double x, double y, double stdi,
double stdj, double stdk, double
orij, double
orik,
double
orjk, double Ri, double Rj, double Rk, double a)
/***************************************************************************/
/*
ont
em o
orpo das fun
oes integrando das integrais envolvidas nas
*/
/* expressoes de assimetria entre derivativos.
*/
/* x, y = sao ab
issas na integra
ao gaussiana e de romberg,respe
tivamente*/
/* sgn = sinal da fun
ao erff abaixo.
*/
/* Ri,Rk =
onstantes.
*/
/***************************************************************************/
{
double resp,
, C, R, B, T, L;
=1.0-
orij*
orij;
C=
orij*
orik-
orjk;
B=
orij*
orjk-
orik;
R=1.0-
orij*
orij-
orik*
orik-
orjk*
orjk+2.0*
orij*
orik*
orjk;
swit
h(op
ao)
{
ase 9: /* relativo a E2xy,Exy,Ey*/
resp=Rj-y*
orij-stdj*(1.0-
orij*
orij);
resp/=sqrt(2.0*(1.0-
orij*
orij));
resp=(1.0+sgn*erff(resp))*exp(-sqr(y-a)/2.0);
return(resp);
ase 10: /* relativo a Ex,E2x,E1*/
resp=Rj-y*
orij;
resp/=sqrt(2.0*(1.0-
orij*
orij));
resp=(1.0+sgn*erff(resp))*exp(-sqr(y-a)/2.0);
return(resp);
ase 11: /* relativo a Exyz*/
resp=Rj-y*
orjk+stdi*(
orik*
orjk-
orij)
-stdj*(1.0-
orjk*
orjk);
192
193
resp=Rk+(x*(B*sqrt(2.0)+C*
orij*sqrt(2.0))+B*L*sqrt(2.0)
-B*T+C*sqrt(2.0*
)*y-C*C*stdk+C*
orij*sqrt(2.0)*L
-C*
orij*T)/
-stdk*R;
resp*=sqrt(
/(2.0*R));
resp=(1.0+sgn*erff(resp))*exp(-sqr(y-a));
return(resp);
ase 18: /* relativo a Eyz*/
T=(stdk*B+
orij*(-stdj*
+stdk*C))/
;
L=(Ri+T)/sqrt(2.0);
resp=Rk+(x*(B*sqrt(2.0)+C*
orij*sqrt(2.0))+B*L*sqrt(2.0)
-B*T+C*sqrt(2.0*
)*y+C*
*stdj-C*C*stdk
+C*
orij*sqrt(2.0)*L-C*
orij*T)/
-stdk*R;
resp*=sqrt(
/(2.0*R));
resp=(1.0+sgn*erff(resp))*exp(-sqr(y-a));
return(resp);
ase 19: /* relativo a Ex*/
T=-stdi;
L=(Ri+T)/sqrt(2.0);
resp=Rk+(x*(B*sqrt(2.0)+C*
orij*sqrt(2.0))+B*L*sqrt(2.0)
-B*T+C*sqrt(2.0*
)*y+C*
orij*sqrt(2.0)*L
-C*
orij*T)/
;
resp*=sqrt(
/(2.0*R));
resp=(1.0+sgn*erff(resp))*exp(-sqr(y-a));
return(resp);
ase 20: /* relativo a Ey*/
T=
orij*-stdj;
L=(Ri+T)/sqrt(2.0);
resp=Rk+(x*(B*sqrt(2.0)+C*
orij*sqrt(2.0))+B*L*sqrt(2.0)
-B*T+C*sqrt(2.0*
)*y+C*
*stdj+C*
orij*sqrt(2.0)*L
-C*
orij*T)/
;
resp*=sqrt(
/(2.0*R));
resp=(1.0+sgn*erff(resp))*exp(-sqr(y-a));
return(resp); //-2.0*x*Ri
ase 21: /* relativo a Ez*/
T=(stdk*B+
orij*stdk*C)/
;
L=(Ri+T)/sqrt(2.0);
resp=Rk+(x*(B*sqrt(2.0)+C*
orij*sqrt(2.0))+B*L*sqrt(2.0)
-B*T+C*sqrt(2.0*
)*y-C*C*stdk+C*
orij*sqrt(2.0)*L
-C*
orij*T)/
-stdk*R;
resp*=sqrt(
/(2.0*R));
resp=(1.0+sgn*erff(resp))*exp(-sqr(y-a));
194
}
printf(" \n deu erro !! ");
return(1.0E308);
/***************************************************************************/
/**
rotinas de integra
~ao para o
al
ulo das assimetrias
**/
/***************************************************************************/
double romb_skew(
har op
ao, double a, double b, double sgn, double phi,
double stdi, double stdj, double stdk, double
orij,
double
orik, double
orjk, double Ri, double Rj,
double Rk, double L)
/***************************************************************************/
/* metodo de romberg para integra
ao em intervalos fe
hados (a,b)
*/
/* L = termo da fun
ao que leva a exponen
ial : exp[(x-L)^2/2
*/
/***************************************************************************/
{
double *T=NULL, *F=NULL, *X=NULL;
double h,resp;
int i,j,n,fim,l;
X=alo
_vet(1);
T=alo
_vet(1);
F=alo
_vet(1);
n=1;
fim=0;
T[0=-1;
while ((!fim) && (n<9)){
for (l=2,j=1;j<n;j++) l<<=1; /* l=2^n */
T=realo
a(T,n+1);
F=realo
a(F,l+1);
X=realo
a(X,l+1);
T[n=0.0;
h=(b-a)/l;
if (n>1){
for (j=l/2;j>=1;j--){
X[2*j=X[j;
F[2*j=F[j;
}
for (j=1;j<=l/2;j++){
i=2*j-1;
X[i=X[i-1+h;
F[i=f_skew(op
ao,sgn,phi,X[i,stdi,stdj,
stdk,
orij,
orik,
orjk,Ri,Rj,
Rk,L);
}
for (i=0;i<l;i++) T[n+=F[i+F[i+1;
T[n*=0.5*h;
if ((fabs(T[n-T[n-1) < 0.00001) | n==8) fim=1;
else n++;
}
else{
for (i=0;i<=l;i++){
X[i=a+i*h;
F[i=f_skew(op
ao,sgn,phi,X[i,stdi,stdj,
stdk,
orij,
orik,
orjk,Ri,Rj,
Rk,L);
}
for (i=0;i<l;i++) T[n+=F[i+F[i+1;
T[n*=0.5*h;
n++;
}
}
resp=extrap(T,n);
free(T);
free(X);
free(F);
return(resp);
195
196
double trap_skew(
har op
ao, double a, double delta, double lim, double sgn,
double phi, double stdi, double stdj, double stdk,
double
orij, double
orik, double
orjk, double Ri,
double Rj, double Rk, double L)
/***************************************************************************/
/* pro
edimento que apli
a o metodo do trapezio + extrapol. de Ri
hardson */
/* para
al
ular uma integral.
*/
/* phi = no'da integra
ao gaussiana;
*/
/* a = limite finito da integral ( a integral e'de "a" ate' +infinito ou de*/
/* -infinito ate' "a".
*/
/* op
ao = indi
e da fun
ao integrando na rotina f_skew(...);
*/
/* L=termo da exponen
ial f(x)*exp[((x-L)/delta)^2;
*/
/* lim=+1 se estiver integrando de "a" ate' +infinito e -1 se de
*/
/* -infinito ate' "a";
*/
/* sgn=+1 se na fun
ao integrando temos (1+erf(..)) e e' -1 se for
*/
/* (1-erf(..));
*/
/* Ri,Rj,Rk =
onstantes.
*/
/* delta : vem da expressao f(x) = exp{-[(x-a)/delta^2}
*/
/***************************************************************************/
{
double *F=NULL, *X=NULL, *T=NULL;
double quad, erro;
int nf,k, n;
long m, Nf,i, j,l,N;
X=alo
_vet(3);
F=alo
_vet(3);
T=alo
_vet(3);
N=3;
n=1;
erro=1.0;
while (( (erro > 0.0001) | (erro < -0.0001)) | (n <= 8))
{
if (n>1)
{
for (m=2,j=1;j<n;j++) m<<=1;
Nf=(m-1)*2+1;
X=realo
a(X,Nf);
F=realo
a(F,Nf);
T=realo
a(T,n);
for (i=N-1;i>0;i--)
{
X[2*i=X[i;
197
F[2*i=F[i;
}
m=0;
j=0;
for (k=0;k<n-1;k++)
{
for (l=1,i=1;i<=n-k;i++) l<<=1;
m+=l;
for (i=j;i< m/2;i++)
{
X[2*i+1=X[2*i+lim*delta/l;
F[2*i+1=f_skew(op
ao,sgn,phi,X[2*i+1,
stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,L);
}
j=i;
}
for (i=Nf-2;i<Nf;i++)
{
X[i=X[i-1+lim*delta/2;
F[i=f_skew(op
ao,sgn,phi,X[i,stdi,stdj,stdk,
orij,
orik,
orjk,Ri,Rj,Rk,L);
}
N=Nf;
}
else for (i=0;i<=2;i++)
{
X[i=a+lim*i*delta/2;
F[i=f_skew(op
ao,sgn,phi,X[i,stdi,stdj,
stdk,
orij,
orik,
orjk,Ri,Rj,
Rk,L);
}
T[n=trapezio(F,n,delta);
if (n > 1) erro = T[n-T[n-1;
n++;
}
n--;
nf=n;
for (k=1;k<nf;k++)
{
for (m=4,j=1;j<k;j++) m<<=2;
for (n=1;n<=(nf-k);n++)
{
quad=(m*T[n+1-T[n)/(m-1);
T[n=quad;
}
198
else
I+=romb_skew(op
ao,G,L,sgn,phi,stdi,stdj,
stdk,
orij,
orik,
orjk,Ri,Rj,Rk,L);
return(I);
199
200
Ap^
endi
e B
201
202
eaux=invL*r;
e=invU*eaux;
x1=x-e;
r=A*x1-b;
while norm(r) > 0.00000001
x=x1;
eaux=invL*r;
e=invU*eaux;
x1=x-e;
r=A*x1-b;
end
=x1;
(n+1)=1;
aux=
;
for i=1:n+1
(i)=aux(n+1-i+1);
end;
x=roots(
);
x=sort(x);
for i=1:n
a(i)=0;
t=x(i);
y=x;
y(i)=[;
[P=produto(t,y);
ind=-1;
for j=n:-1:1
ind=ind*(-1);
[l=Lij(n,i,j-1,x);
a(i)=a(i)+ind*l*integ(j);
end;
a(i)=a(i)/P;
end;
a=a'
/*****
Lij.m
*****/
fun
tion[r=Lij(n,i,j,x)
if (n>3)
y=x;
y(i)=[;
if (j<n-2 & j>0)
[r=perm(n-1,n-j-1,y);
end;
if (j==n-1)
end;
if (n==2)
i;j;
y=x;
y(i)=[;
if (j==0)
r=y;
end;
if (j==1)
r=1;
end;
end;
if (n==3)
y=x;
y(i)=[;
if (j==2)
r=1;
end;
if (j==0)
r=y(1)*y(2);
end;
if (j==1)
r=y(1)+y(2);
end;
end;
/*****
produto.m
*****/
fun
tion[P=produto(t,y)
d=-y+t;
P=prod(d);
203
204
VAL4
0.0888047461
0.1568451573
0.6293648575 0.5118030420
0.5835617107 0.9963686397
1.0000000000 0.5804297367
205
206
0.0050792918
0.0096074894
0.0040030421
0.0028953468
TEL4.TEL4 0.0004391309
0.0007573136
0.0015265161
0.0007793724
0.0099321075
0.0182933718
0.0063348778
0.0044177621
TEL4.VAL4 0.0002133898
0.0006039625
0.0007793724
0.0008174455
0.0051925756
0.0097663174
0.0039242142
0.0028199591
TEL4.OTC16 0.0029733847
0.0050792918
0.0099321075
0.0051925756
0.0617328400
0.1106294470
0.0293001546
0.0197347840
TEL4.OTC17 0.0056692507
0.0096074894
0.0182933718
0.0097663174
0.1106294470
0.1912471487
0.0337895302
0.0201606941
TEL4.OTP19 0.0024797822
0.0040030421
0.0063348778
0.0039242142
0.0293001546
0.0337895302
-0.0414146218
-0.0363098170
TEL4.OTP24 0.0018084445
0.0028953468
0.0044177621
0.0028199591
0.0197347840
0.0201606941
-0.0363098170
-0.0334200513
VAL4.BB4 0.0012892656
0.0002965267
0.0002133898
0.0002450382
0.0015037447
0.0029612989
0.0015394342
0.0011557139
VAL4.PET4 0.0002965267
0.0011675090
0.0006039625
0.0010345408
0.0038907043
0.0070424573
0.0020847373
0.0012027831
VAL4.TEL4 0.0002133898
0.0006039625
0.0007793724
0.0008174455
0.0051925756
0.0097663174
0.0039242142
0.0028199591
VAL4.VAL4 0.0002450382
0.0010345408
0.0008174455
0.0016572883
0.0050854663
0.0088699060
-0.3547914660
-0.3784112515
VAL4.OTC16 0.0015037447
0.0038907043
0.0051925756
0.0050854663
0.0327037764
0.0595133146
0.0181822160
0.0127229373
VAL4.OTC17 0.0029612989
0.0070424573
0.0097663174
0.0088699060
0.0595133146
0.1038630354
0.0211585210
0.0134302029
VAL4.OTP19 0.0015394342
0.0020847373
0.0039242142
-0.3547914660
0.0181822160
0.0211585210
-0.0251774405
-0.0221034374
VAL4.OTP24 0.0011557139
0.0012027831
0.0028199591
-0.3784112515
0.0127229373
0.0134302029
-0.0221034374
-0.0203203229
OTC16.BB4 0.0132785857
0.0022198392
0.0029733847
0.0015037447
0.0188913176
0.0347165842
0.0114986329
0.0081968353
OTC16.PET4 0.0022198392
0.0055552581
0.0050792918
0.0038907043
0.0321063469
0.0586652091
0.0185536755
0.0130896705
OTC16.TEL4 0.0029733847
0.0050792918
0.0099321075
0.0051925756
0.0617328400
0.1106294470
0.0293001546
0.0197347840
OTC16.VAL4 0.0015037447
0.0038907043
0.0051925756
0.0050854663
0.0327037764
0.0595133146
0.0181822160
0.0127229373
OTC16.OTC16 0.0188913176
0.0321063469
0.0617328400
0.0327037764
0.3735381203
0.6575132436
0.1394270743
0.0907463435
OTC16.OTC17 0.0347165842
0.0586652091
0.1106294470
0.0595133146
0.6575132436
1.1235934363
0.1587891402
0.0889325628
OTC16.OTP19 0.0114986329 0.0185536755
0.0293001546
0.0181822160
0.1394270743
0.1587891402
-0.1964613828
-0.1742178881
OTC16.OTP24 0.0081968353 0.0130896705
0.0197347840
0.0127229373
0.0907463435
0.0889325628
-0.1742178881
-0.1644250366
OTC17.BB4 0.0207538627
0.0040654380
0.0056692507
0.0029612989
0.0347165842
0.0609494097
0.0134423026
0.0087850325
OTC17.PET4 0.0040654380
0.0096056800
0.0096074894
0.0070424573
0.0586652091
0.1026386252
0.0216346313
0.0139114253
OTC17.TEL4 0.0056692507
0.0096074894
0.0182933718
0.0097663174
0.1106294470
0.1912471487
0.0337895302
0.0201606941
OTC17.VAL4 0.0029612989
0.0070424573
0.0097663174
0.0088699060
VARIABLES
X(I)
U
C
E
S
207
208
POSITIVE VARIABLE X;
VALUEA("ITA-1")=ALPHA;
VALUEE("ITE-1")=ETA;
EQUATIONS
UTIL fun
ao utilidade esperada de ter
eira ordem
FSUM fra
oes devem somar 1.0
COVARP
ovarian
ia do portfolio
EXRETP retorno esperado do portfolio
SKEWP ter
eiro momento do portfolio;
);
PUT MED; PUT '';
PUT COVAR; PUT '';
PUT COSKEW; PUT '';
209
210
212
^
REFERENCIAS
BIBLIOGRAFICAS
[17 A. Kraus& R. H. Litzenberger. Skewness Preferen
e and the Valuation of Risk Assets. The
Journal of Finan
e, vol 31, n.4, September/1976.
[18 F. D. Arditti & H. Levy. Portfolio E
ien
y Analysis in Three Moments: the Multiperiod
Case. The Journal of Finan
e, vol.30, n.3, June/1975.
[19 H. Levy & H. M. Markowitz. Approximating Expe
ted Utility by a Fun
tion of Mean and
Varian
e. The Ameri
an E
onomi
Review, vol.69, n.3, June/1979.
[20 M. Kijima& M. Ohnishi. Mean-Risk analysis of risk aversion and wealth ee
ts on optimal
portfolios with multiple investments opportunities. Annals of Operation Resear
h, 45(1993),
pp.147-163.
[21 A. Halston. A First Course in Numeri
al Analysis. M
Graw-Hill, 1965.
[22 H. M. Markowitz. Portfolio Sele
tion - E
ient Diversi
ation of Investments. Bla
kwell,
1995.