Introdução à Computação

 

Programa-Exemplo 3:
Movimento Browniano (aplicação na compras de opções).


Dizemos que a trajetória da variável aleatória X é um movimento browniano quando:

dado x(0),
x(i+1)=x(i)*(1+u) com probabilidade pu;
x(i+1)=x(i)*(1-d) com probabilidade pd;
x(i+1)=x(i) com probabilidade 1-pu-pd.
u, d > 0.

No programa vamos decidir se X sobe, desce ou fica no mesmo estado, baseados em uma variável aleatória r com distri-
buição uniforme no intervalo [0,1]:

se 0<=r<=pu então X sobe
se pu<r<=(pu+pd) entao X desce
caso contrário, X permanece o mesmo

Esta versão do programa simulará uma opção de compra ("call"). Suponha que um investidor esteja interessado em adquirir a opção de compra de um certo ativo que esteja disponível no mercado. Para auxiliar este investidor em sua decisão de adquirir ou não a opção, realizaremos uma série de simulações de preço daquele ativo (dentro do período estipulado pela opção), e ao final calcularemos a esperança do ganho (com seu respectivo desvio-padrao) proporcionado pela opção.

Os parâmetros a serem fornecidos pelo usuário serão:

u, d, pu, pd = já descritos acima
N = dia do exercício da opção
K = preço de exercício
B = limite de knock-out
M = número de simulações (trajetórias)

Ao final de cada simulação, verificaremos se o valor de mercado estimado (x(N)) é maior do que o valor de exercício da opção (K). Neste caso, o titular da opção exerceria seu direito de compra do ativo-objeto (comprando-o pelo preço K) e o venderia no mercado ao preço x(N), realizando assim o lucro x(N)-K. Se o valor de mercado estimado for inferior ao preço de exercício, nenhum ganho é realizado.

A esperança do ganho será dada pela média dos lucros estimados em cada simulação. O desvio-padrão também é calculado.


Programa em C

Programa em Scilab

Programa em Basic (QBasic)