O scipy.special reúne as funções com nome que aparecem sempre nas fórmulas. A mais útil em finanças é a função de distribuição normal Φ(x), disponível como special.ndtr. Ela se liga à função erro por Φ(x)=21(1+erf(x/2)). O preço de Black–Scholes de uma call com spot S, exercício K, taxa r, volatilidade σ e prazo T a usa duas vezes: C=SΦ(d1)−Ke−rTΦ(d2), em que d1=σTln(S/K)+(r+σ2/2)T e d2=d1−σT. A sensibilidade do preço à volatilidade chama-se vega e vale Sφ(d1)T, em que φ é a densidade normal. A vega é o que um solucionador de Newton precisa para achar uma volatilidade implícita.
O outro grupo de funções especiais trata de números grandes ou pequenos demais. Um fatorial cresce tão rápido que 171! já estoura um número decimal comum no computador, mas lnn! é fácil: special.gammaln(n+1). special.comb(n, k) conta os caminhos com k altas numa árvore de n passos. special.logsumexp calcula ln∑exi com segurança tirando o maior x, de modo que ln(e1000+e1000)=1000+ln2 não estoura. special.expit(x)=1/(1+e^{-x}) transforma qualquer pontuação em probabilidade entre 0 e 1, como num modelo logístico. A regra: trabalhe em logaritmos quando um número pode ser enorme ou minúsculo e só exponencie no fim.
Um preço de call e um passo de volatilidade implícitaTome S=K=100, r=0, σ=0,2 e T=1. Então d1=0,1 e d2=−0,1, e Φ(0,1)=0,5398, Φ(−0,1)=0,4602. Logo C=100⋅(0,5398−0,4602)=7,97. A densidade normal em 0,1 é 0,3970, então a vega é 100⋅0,3970⋅1=39,70. Se o preço de mercado é 9,00, o preço está baixo por 1,03, e um passo de Newton eleva a volatilidade para 0,2+1,03/39,70=0,2261. Para Φ(1) pode-se usar erf(0,7071)=0,6827, então Φ(1)=21(1+0,6827)=0,8413. Nas ferramentas pequenas, expit(2)=0,8808, ln4!=3,178 e (310)=120. Em dados reais, o retorno diário do SPY tem desvio-padrão de 1,196%. Uma queda de 5% é z=−4,21 desvios, e Φ(−4,21)=1,26⋅10−5, que um modelo normal diz acontecer uma vez a cada cerca de 315 anos. Nos 5403 dias de dados, aconteceu em 20 dias.
Dê nome à função: ndtr, erf, expit, gammaln, comb e logsumexp substituem páginas de matemática escrita à mão.
Trabalhe em logaritmos com extremos: use gammaln e logsumexp em vez de um fatorial ou de uma soma de exponenciais enormes.
A vega conduz o solucionador: um passo de Newton para a volatilidade implícita é a diferença de preço dividida pela vega.
Lab: o que é avaliado
A função normal a partir de erf10 pts
Uma call de Black–Scholes20 pts
A vega10 pts
Um passo de volatilidade implícita15 pts
Para que serve cada função15 pts
A forma segura de somar10 pts
Por que calcular fatoriais por logaritmos20 pts
0/ 7 respondidas
1Resposta numérica10 ptsSem resposta
Sabendo que erf(0,7071)=0,6827, calcule Φ(1)=21(1+erf(1/2)). Dê quatro casas decimais.
p=aceito: ± 0.0005
2Resposta numérica20 ptsSem resposta
Com S=K=100, r=0, σ=0,2, T=1 obtém-se d1=0,1, d2=−0,1, Φ(0,1)=0,5398 e Φ(−0,1)=0,4602. Quanto vale C=SΦ(d1)−KΦ(d2)? Dê duas casas decimais.
c=aceito: ± 0.03
3Resposta numérica10 ptsSem resposta
A densidade normal em d1=0,1 é φ(0,1)=0,3970. Com S=100 e T=1, quanto vale a vega =Sφ(d1)T? Dê duas casas decimais.
v=aceito: ± 0.1
4Resposta numérica15 ptsSem resposta
O preço de mercado é 9,00 e o preço do modelo com σ=0,2 é 7,9656, com vega 39,70. Qual é a nova volatilidade σ+(mercado−modelo)/vega? Dê quatro casas decimais.
s=aceito: ± 0.0005
5Associar15 ptsSem resposta
Associe cada função do scipy.special à sua tarefa.
Escolha o par de cada item da esquerda.
ndtr
expit
gammaln
logsumexp
comb
6Escolha10 ptsSem resposta
Você precisa de ln(e1000+e1002) num computador. Qual forma é segura?
7Explicar com palavras20 ptsSem resposta
Uma probabilidade binomial para uma árvore de 200 passos contém 200!. Em uma ou duas frases, explique por que ela deve ser calculada com gammaln e logaritmos.
Modo matemáticaEntrada por teclado ou LaTeXTarefa 1 de 7 · Ctrl ⏎ para verificar