Segunda-feira, Agosto 02, 2010

"Ganhando dinheiro com opções" [GDCO]: primeiros fontes liberados

Aqui vai a primeira liberação de código-fonte das simulações de operações. O "pacote" foi batizado de projeto GDCOSimulator. Na falta de um nome melhor, formei uma sigla a partir do nome do livro...

Por ora, apenas a simulação já listada como Apêndice no livro foi disponibiilizada: venda coberta sempre carregada até o vencimento. Dependendo do interesse e de outras considerações técnicas (discutidas mais abaixo), mais scripts poderão ser incluídos.

Na verdade, há um pouco mais que o simulador, que estima o retorno de apenas um cenário. Também temos o script gerador de cenários. Também está incluído o visualizador gráfico dos resultados, bastante tosco ("culpa" de uma biblioteca chamada PyTk).

Por cenário entenda-se um conjunto de variáveis de mercado: volatilidade 30% ao ano, prêmio de risco 200%, opções ATM etc. Se temos cinco variáveis e cinco valores possíveis para cada uma, temos 5x5x5x5x5 = 3125 cenários diferentes para estimar. O gerador de cenários encarrega-se desta explosão combinatorial, executar diversas simulações em paralelo para aproveitar computadores "multi-core" e armazenar os resultados.

O código sofreu alguns retoques, em particular a tradução para língua inglesa de alguns termos; não houve tempo para uma arrumação mais profunda.

Por último, a biblioteca Black-Scholes está implementada em duas versões: em puro Python (mais lenta) e com Pyrex (mais rápida, mas precisa ser compilada). O software Psyco, se presente na máquina, também é utilizado para aumentar a performance.

A estrada adiante

Para início de conversa, apenas investidores com um pé na informática vão conseguir usar estes scripts. Isto é um fator limitante. O ideal seria todo e qualquer investidor poder rodar a simulação, para estimular a troca de ideias e a evolução da ferramenta.

Para tornar a ferramenta realmente acessível, seria necessário investir muito trabalho nos scripts atuais, ou então reescrever para Web. Adotar a plataforma "Web 2.0" traria muitas vantagens (*), e na minha visão corrente é o caminho a ser seguido.

(*) Detalhes sórdidos

Para os informatas ou curiosos, segue a lista de vantagens e desvantagens de adotar a "Web 2.0" (Javascript, HTML5, CSS) como plataforma:

a) O aplicativo é inerentemente portátil, roda em qualquer sistema operacional.

b) A portabilidade inclui a interface de usuário. No caso do Python, eu tive de optar entre um "rosto" feio porém portátil (PyTk) ou um rosto bonito com problemas de portabilidade.

c) Não é preciso instalar nada para rodar um aplicativo Web. Isso me poupa o trabalho de gerar pacotes de instalação (um para Windows, outro para Mac, outro para Linux...).

d) Em quase todos os browsers modernos, Javascript roda MUITO rápido. Enquanto isso, a simulação Python depende da instalação do Psyco (que não tem versão 64 bits) para alcançar a mesma performance.

Claro que Web 2.0 tem as suas desvantagens:

a) Como linguagem, Python é melhor que qualquer Javascript (na verdade, é melhor que qualquer outra :)

b) O ambiente Javascript dentro do browser é diferente do ambiente de linha de comando, e "seria interessante" (TM) que a simulação rodasse em ambos;

c) Será mais difícil, ou impossível, tirar proveito de processadores "multi-core".
blog comments powered by Disqus