σμ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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμ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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Roteiro de Optimization›Módulo 4 · Restrições e regularização›Tópico 4.4·~55 minAvançado

Programação linear para cronogramas de execução

Posição no roteiroMódulo 4 de 5 · Tópico 4 de 4
4.4 Programação linear para cronogramas de execução
—Nota do lab— / 100XP total—Sequência—

Dividir uma ordem no tempo

Um programa linear minimiza um objetivo linear cTx\mathbf c^{T}\mathbf xcTx sujeito a restrições lineares Ax≤bA\mathbf x\le\mathbf bAx≤b e x≥0\mathbf x\ge0x≥0. O conjunto viável é um poliedro, uma forma com faces planas e vértices, e como o objetivo é linear o melhor ponto está sempre em um vértice dessa forma. Não há caminhada morro abaixo: o método simplex salta de vértice em vértice e os métodos de pontos interiores cortam pelo meio; ambos chegam ao ótimo exato de um problema com milhares de variáveis numa fração de segundo.

min⁡x ∑t=1Tctxt ;∑t=1Txt=Q,0≤xt≤ut\min_{\mathbf x}\ \sum_{t=1}^{T}c_t x_t\ ;\quad \sum_{t=1}^{T}x_t=Q,\qquad 0\le x_t\le u_txmin​ t=1∑T​ct​xt​ ;t=1∑T​xt​=Q,0≤xt​≤ut​(1)

Um cronograma de execução é um programa linear natural. Para vender QQQ ações em TTT intervalos, seja xtx_txt​ as ações vendidas no intervalo ttt, ctc_tct​ o custo esperado por ação ali (spread mais impacto, em pontos-base) e utu_tut​ uma capacidade, como um teto de participação de 10 % do volume esperado. Com uma só restrição de orçamento a solução é gulosa: encher o intervalo mais barato até o teto, depois o seguinte mais barato, até completar QQQ. O multiplicador da restrição de orçamento, que a programação linear dá de graça, é o custo marginal de mais uma ação, isto é, o custo do intervalo mais barato que ainda tem espaço.

Quatro intervalosVenda Q=10,000Q=10{,}000Q=10,000 ações. Os custos são 3,1,2,43,1,2,43,1,2,4 pontos-base e os tetos 4000,3000,5000,60004000,3000,5000,60004000,3000,5000,6000 ações nos intervalos 1 a 4. Preenchimento guloso: o intervalo 2 (custo 1) toma seu teto de 300030003000, o intervalo 3 (custo 2) toma 500050005000 e o intervalo 1 (custo 3) toma as 200020002000 restantes. O total é 3000⋅1+5000⋅2+2000⋅3=19,0003000\cdot1+5000\cdot2+2000\cdot3=19{,}0003000⋅1+5000⋅2+2000⋅3=19,000 pontos-base-ações, uma média de 1.91.91.9 pb. O custo marginal é o do intervalo 1, 333 pb, porque é o mais barato que ainda tem espaço. A capacidade total é 18,00018{,}00018,000, então uma ordem de 20,00020{,}00020,000 ações não tem nenhum cronograma viável.

As capacidades podem vir dos dados. Nas últimas 250 sessões do conjunto de dados do curso, o volume diário mediano da AAPL é de cerca de 45,5 milhões de ações; um teto de participação de 10 % dá cerca de 4,55 milhões de ações por dia, e vender 20 milhões de ações exige pelo menos 20/4.55=4.420/4.55=4.420/4.55=4.4, isto é, cinco, sessões. Um custo constante por ação é uma primeira aproximação. O impacto real cresce com o tamanho negociado num intervalo, o que torna o custo convexo em xtx_txt​ e transforma o cronograma num programa quadrático, o modelo do projeto final.

  • Solução em vértice: o ótimo de um PL está num canto do poliedro viável.
  • Cronograma guloso: com uma só restrição de orçamento, preencher primeiro a capacidade mais barata.
  • Preço-sombra: o multiplicador do orçamento é o custo marginal de mais uma ação.
Verifique primeiro a viabilidadeUm solver responde a um pedido impossível com «inviável», não com um cronograma aproximado. Compare o tamanho da ordem com a capacidade total antes de otimizar e decida o que cede se não couber: um horizonte mais longo, um teto de participação mais alto ou uma ordem menor. Custos e capacidades são previsões, então reexecute o programa ao longo do dia.

Lab: o que é avaliado

  • O custo total15 pts
  • O custo médio10 pts
  • Ações no intervalo mais caro usado15 pts
  • O custo marginal15 pts
  • Uma ordem grande demais15 pts
  • Onde fica o ótimo de um PL15 pts
  • Formular o cronograma15 pts
0/ 7 respondidas
Tarefas
1Resposta numérica15 ptsSem resposta

Venda 10 000 ações em quatro intervalos com custos 3, 1, 2, 4 pb e tetos 4000, 3000, 5000, 6000 ações. Qual é o custo total mínimo em pontos-base-ações?

total=total =total=aceito: ± 1
2Resposta numérica10 ptsSem resposta

Qual é o custo médio por ação desse cronograma, em pontos-base?

avg=avg =avg=aceito: ± 0.01
3Resposta numérica15 ptsSem resposta

Quantas ações o cronograma ótimo vende no intervalo 1 (custo 3 pb)?

slot1=slot1 =slot1=aceito: ± 1
4Resposta numérica15 ptsSem resposta

Se a ordem crescesse uma ação e continuasse viável, em quantos pontos-base o custo total subiria? Em outras palavras, qual é o preço-sombra da restrição de orçamento?

shadow=shadow =shadow=aceito: ± 0.01
5Escolha15 ptsSem resposta

Pede-se aos mesmos quatro intervalos que executem 20 000 ações. O que o solver de PL informa?

6Escolha15 ptsSem resposta

Um programa linear com conjunto viável limitado e não vazio tem uma solução ótima em...

7Ordenar os passos15 ptsSem resposta

Coloque em ordem os passos para montar e resolver o PL de execução.

Arraste para reordenar, ou foque um item, Espaço para levantá-lo, setas para movê-lo e Espaço para soltá-lo.

  1. 1Escrever as restrições: total igual a QQQ e 0≤xt≤ut0\le x_t\le u_t0≤xt​≤ut​
  2. 2Resolvê-lo e ler o preço-sombra da restrição de orçamento
  3. 3Escolher as variáveis: ações xtx_txt​ vendidas em cada intervalo
  4. 4Escrever o objetivo: custo total ∑tctxt\sum_t c_t x_t∑t​ct​xt​
Modo matemáticaEntrada por teclado ou LaTeXTarefa 1 de 7 · Ctrl ⏎ para verificar

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