σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
Roteiros
AO
+1,2 mil alunos
Entrar
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Roteiro de Python›Módulo 1 · Fundamentos de Python para quants›Tópico 1.1·~45 minIniciante

Sintaxe do Python e seu primeiro programa

Posição no roteiroMódulo 1 de 11 · Tópico 1 de 33
1.1 Sintaxe do Python e seu primeiro programa
—Nota do lab— / 100XP total—Sequência—

Como um programa Python é executado

Um programa Python é um arquivo de texto formado por instruções. O Python o lê de cima para baixo e executa uma instrução por vez, sem código extra: o arquivo main.py é o programa. Clique em Run ou digite python main.py no terminal.

bid = 184.25
ask = 184.50
print(ask - bid)  # 0.25

Instruções e expressões

Uma expressão produz um valor, como ask - bid ou 2 * 3. Uma instrução faz algo, como bid = 184.25 ou print(bid). Cada instrução fica em sua própria linha, e o fim da linha encerra a instrução: sem ponto e vírgula. Quando uma instrução é longa demais, envolva-a em parênteses e continue nas linhas seguintes.

total_cost = (
    price * quantity
    + commission
    + exchange_fee
)

Comentários e docstrings

Tudo o que vem depois de # até o fim da linha é um comentário: o Python o ignora. Use comentários para explicar por que o código faz algo, não para repetir o que ele faz. Uma string entre aspas triplas no início de um arquivo ou função é uma docstring, a descrição oficial exibida por ferramentas e por help().

# Mid price: the fair value halfway between bid and ask.
mid = (bid + ask) / 2  # average of the two quotes

A indentação faz parte da sintaxe

Onde outras linguagens usam chaves, o Python usa indentação. Uma linha que termina em dois-pontos abre um bloco, e o bloco são as linhas indentadas logo abaixo. Indente com quatro espaços e nunca misture tabs e espaços. O código colado na margem esquerda é código de nível superior.

def spread(bid, ask):
    # both lines below are the block: indented by four spaces
    width = ask - bid
    return width

print(spread(184.25, 184.50))  # back at the left margin: 0.25
AtençãoUm espaço faltando ou sobrando causa um IndentationError, e dois-pontos esquecidos causam um SyntaxError. O Python para antes de executar qualquer coisa, então leia primeiro o número da linha na mensagem. Configure seu editor para inserir espaços ao pressionar Tab.

Variáveis e atribuição

nome = valor associa um nome a um valor. O sinal = significa atribuir, não igual: o Python calcula primeiro o lado direito e depois associa o nome ao resultado. Nomes diferenciam maiúsculas de minúsculas, podem ter letras, dígitos e sublinhados, não podem começar com dígito nem ser uma palavra reservada como if ou for. O estilo Python é snake_case, como last_price.

price = 184.25
quantity = 200
notional = price * quantity
price = 185.00      # rebinds price; notional is unchanged
quantity += 50      # shorthand for quantity = quantity + 50
print(notional)     # 36850.0

Aritmética e precedência de operadores

  • +, - e * somam, subtraem e multiplicam.
  • / é a divisão verdadeira e sempre dá um resultado decimal: 7 / 2 é 3.5.
  • // divide e arredonda para baixo; % dá o resto: 7 // 2 é 3, 7 % 2 é 1.
  • ** eleva a uma potência: 1.05 ** 10 capitaliza 5% dez vezes.

O Python segue a ordem da matemática: primeiro **, depois * e /, depois + e -. Assim, 2 + 3 * 4 é 14, enquanto (2 + 3) * 4 é 20. Na dúvida, use parênteses: não custam nada e deixam a intenção clara. Sublinhados dentro de números, como 10_000, são ignorados e tornam números grandes legíveis.

spread = ask - bid                   # 0.25
mid = (bid + ask) / 2                # 184.375
spread_bps = spread / mid * 10_000   # the spread in basis points

Exibindo resultados com print

print() escreve valores no terminal, separados por espaços. Texto entre aspas é uma string; os próximos tópicos tratam de strings e números em profundidade. Por enquanto, print é sua forma de olhar dentro do programa: imprima um valor, confira à mão e siga em frente.

print("bid", bid, "ask", ask)
print("mid", mid)

No lab você escreverá pequenas fórmulas de preço usando apenas o que está nesta página: atribuição, aritmética e parênteses. A seguir: como o Python guarda números e por que 0.1 + 0.2 não é exatamente 0.3.

Lab: o que é avaliado

  • Calcular o valor de uma posição com notional25 pts
  • Encontrar o preço médio com midpoint25 pts
  • Medir a diferença bid-ask com spread25 pts
  • Expressar o spread em pontos-base com spread_bps25 pts
Explorador · lab-1-1
▾ lab-1-1
…
bash · no navegador
learner@quantcraft:~/lab-1-1$
Python ainda não carregadoPythonLn 1, Col 1Spaces: 4UTF-8

Redefinir este tópico?

Tudo em lab-1-1 volta aos arquivos iniciais e o terminal é limpo. Sua solução atual será perdida — isso não pode ser desfeito.

Será redefinido
  • main.py → código inicial
  • Histórico do terminal e saída dos testes
  • Alterações não enviadas
Será mantido
  • Melhor nota do lab
  • Seu XP e sua sequência
  • Progresso da aula e anotações

Entre para executar o seu código.

Todas as aulas são gratuitas para ler. Crie uma conta ou entre para executar código, rodar os testes e enviar este lab.

  • IDE no navegador com terminal bash — nada para instalar
  • Correção instantânea, XP e o seu lugar no roteiro
Criar uma contaEntrar
OU
Continuar com o GitHub