Apreçamento de Opções via IA

O aprendizado de máquina (ML) é visto como parte da inteligência artificial. Algoritmos de ML constroem um modelo com base em dados de treinamento para fazer previsões ou decisões sem serem explicitamente programados para fazê-lo. Neste exercício, usamos o Python para aplicar modelos de ML conhecidos como random forests e neural networks a uma aplicação simples na precificação de opções: o treinamento dos modelos para aprender a precificar opções de compra sem conhecimento prévio dos fundamentos teóricos da famosa equação de precificação de opções de Black e Scholes (1973).

Os dados utilizados correspondem aos contratos de opções da empresa VALE durante o ano de 2023. Esses contratos são classificados como opções de compra (“Call options”) e incluem uma variedade de informações essenciais para o cálculo do preço por meio da equação de Black-Scholes, explicada abaixo.

Aprenda a coletar, processar e analisar dados no Workshop Do Zero à Análise de Dados Econômicos e Financeiros usando Python, se inscreva aqui!

Apreçamento de ações

Em sua forma mais básica, opções de compra dão ao proprietário o direito, mas não a obrigação, de comprar uma ação específica (o ativo subjacente) a um preço específico (o preço de exercício K) em uma data específica (a data de exercício T). O preço de Black-Scholes (Black e Scholes 1973) de uma opção de compra para um ativo subjacente que não paga dividendos é dado por

(1)   \begin{equation*} C(S, T) &= \Phi(d_1)S - \Phi(d_2)Ke^{-r T} \end{equation*}

(2)   \begin{equation*} d_1 &= \frac{1}{\sigma\sqrt{T}}\left(\ln\left(\frac{S}{K}\right) + \left(r_f + \frac{\sigma^2}{2}\right)T\right) \end{equation*}

(3)   \begin{equation*} d_2 &= d_1 - \sigma\sqrt{T} \end{equation*}

onde C(S,t) é o preço da opção como função do preço da ação subjacente hoje, S, com tempo até o vencimento, T, r é a taxa de juros livre de risco e \sigma é a volatilidade do retorno da ação subjacente. \Phi é a função de distribuição cumulativa de uma variável aleatória normal padrão.

A equação de Black-Scholes fornece uma maneira de calcular o preço livre de arbitragem de uma opção de compra uma vez que os parâmetros S, T e r são especificados (argumentavelmente, em um contexto realista, todos os parâmetros são fáceis de especificar, exceto \sigma, que deve ser estimado).

Criação dos Modelos

Nosso objetivo aqui é denominar o preço da opção K como variável dependente e as demais variáveis como independentes e imputar nos modelos de ML. Para tanto, realizamos os seguintes procedimentos:

  1. Separamos o conjunto de treino (80%) e teste (20%)
  2. Normalizamos os valores das variáveis utilizadas
  3. Treinamos os modelos
  4. Avaliamos o modelo, calculando o erro médio absoluto.

Avaliação dos Modelos

A figura abaixo mostra o erro de previsão absoluto para os valores obtidos pelos dois modelos. O erro de previsão é avaliado em uma amostra de opção de compra que não foram usadas para o treino. O que verificamos é que Deep Neural Networks performou muito melhor que Random Forest, obtendo um erro de previsão menor em todos os locais de dinheiro, enquanto o Random Forest possui somente um baixo erro de previsão de opções no dinheiro.

Quer aprender mais?

Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.

Referências

Christoph Frey, Chistoph Scheuch, Stefan Voigt, Patrick Weiss. Tidy Finance with Python. https://www.tidy-finance.org/python/

Black, Fischer, and Myron Scholes. 1973. “The pricing of options and corporate liabilities.” Journal of Political Economy 81 (3): 637–54. https://www.jstor.org/stable/1831029.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise exploratória para modelagem preditiva no Python

Antes de desenvolver bons modelos preditivos é necessário organizar e conhecer muito bem os dados. Neste artigo, damos algumas dicas de recursos, como gráficos, análises e estatísticas, que podem ser usados para melhorar o entendimento sobre os dados usando Python.

Como usar modelos do Sklearn para previsão? Uma introdução ao Skforecast

Prever séries temporais é uma tarefa frequente em diversas áreas, porém exige conhecimento e ferramentas específicas. Os modelos de machine learning do Sklearn são populadores, porém são difíceis de aplicar em estruturas temporais de dados. Neste sentido, introduzimos a biblioteca Skforecast, que integra os modelos do Sklearn e a previsão de séries temporais de forma simples.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.