σμ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 AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • 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 AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours Optimization›Module 4 · Contraintes et régularisation›Sujet 4.4·~55 minAvancé

Programmation linéaire pour les calendriers d'exécution

Position dans le parcoursModule 4 sur 5 · Sujet 4 sur 4
4.4 Programmation linéaire pour les calendriers d'exécution
—Score du lab— / 100XP total—Série—

Répartir un ordre dans le temps

Un programme linéaire minimise un objectif linéaire cTx\mathbf c^{T}\mathbf xcTx sous des contraintes linéaires Ax≤bA\mathbf x\le\mathbf bAx≤b et x≥0\mathbf x\ge0x≥0. L'ensemble admissible est un polytope, une forme à faces plates et à sommets, et comme l'objectif est linéaire le meilleur point est toujours en un sommet de cette forme. Il n'y a pas de marche vers le bas : la méthode du simplexe saute de sommet en sommet et les méthodes de points intérieurs traversent l'intérieur ; les deux atteignent l'optimum exact d'un problème à des milliers de variables en une fraction de seconde.

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)

Un calendrier d'exécution est un programme linéaire naturel. Pour vendre QQQ actions sur TTT intervalles, notons xtx_txt​ les actions vendues à l'intervalle ttt, ctc_tct​ le coût attendu par action à ce moment (écart plus impact, en points de base) et utu_tut​ une capacité, par exemple un plafond de participation de 10 % du volume attendu. Avec une seule contrainte de budget la solution est gloutonne : remplir l'intervalle le moins cher jusqu'à son plafond, puis le suivant, jusqu'à ce que QQQ soit exécuté. Le multiplicateur de la contrainte de budget, que la programmation linéaire fournit gratuitement, est le coût marginal d'une action de plus, soit le coût de l'intervalle le moins cher qui a encore de la place.

Quatre intervallesVendons Q=10,000Q=10{,}000Q=10,000 actions. Les coûts sont 3,1,2,43,1,2,43,1,2,4 points de base et les plafonds 4000,3000,5000,60004000,3000,5000,60004000,3000,5000,6000 actions aux intervalles 1 à 4. Remplissage glouton : l'intervalle 2 (coût 1) prend son plafond de 300030003000, l'intervalle 3 (coût 2) prend 500050005000 et l'intervalle 1 (coût 3) prend les 200020002000 restantes. Le total est 3000⋅1+5000⋅2+2000⋅3=19,0003000\cdot1+5000\cdot2+2000\cdot3=19{,}0003000⋅1+5000⋅2+2000⋅3=19,000 points de base-actions, soit 1.91.91.9 pb en moyenne. Le coût marginal est celui de l'intervalle 1, 333 pb, car c'est le moins cher qui ait encore de la place. La capacité totale est 18,00018{,}00018,000 : un ordre de 20,00020{,}00020,000 actions n'a aucun calendrier admissible.

Les capacités peuvent venir des données. Sur les 250 dernières séances du jeu de données du cours, le volume quotidien médian d'AAPL est d'environ 45,5 millions d'actions ; un plafond de participation de 10 % vaut donc environ 4,55 millions d'actions par jour, et vendre 20 millions d'actions demande au moins 20/4.55=4.420/4.55=4.420/4.55=4.4, soit cinq, séances. Un coût constant par action est une première approximation. L'impact réel croît avec la taille traitée dans un intervalle, ce qui rend le coût convexe en xtx_txt​ et transforme le calendrier en programme quadratique, le modèle du projet final.

  • Solution en un sommet : l'optimum d'un PL est en un coin du polytope admissible.
  • Calendrier glouton : avec une seule contrainte de budget, remplir d'abord la capacité la moins chère.
  • Prix fantôme : le multiplicateur du budget est le coût marginal d'une action de plus.
Vérifiez d'abord l'admissibilitéUn solveur répond à une demande impossible par « infaisable », pas par un calendrier approximatif. Comparez la taille de l'ordre à la capacité totale avant d'optimiser, et décidez ce qui cède s'il ne rentre pas : un horizon plus long, un plafond de participation plus haut ou un ordre plus petit. Coûts et capacités sont des prévisions : relancez le programme au fil de la journée.

Lab : ce qui est noté

  • Le coût total15 pts
  • Le coût moyen10 pts
  • Actions dans l'intervalle le plus cher utilisé15 pts
  • Le coût marginal15 pts
  • Un ordre trop grand15 pts
  • Où se trouve l'optimum d'un PL15 pts
  • Formuler le calendrier15 pts
0/ 7 traités
Exercices
1Réponse numérique15 ptsSans réponse

Vendez 10 000 actions sur quatre intervalles de coûts 3, 1, 2, 4 pb et de plafonds 4000, 3000, 5000, 6000 actions. Quel est le coût total minimal en points de base-actions ?

total=total =total=accepté : ± 1
2Réponse numérique10 ptsSans réponse

Quel est le coût moyen par action de ce calendrier, en points de base ?

avg=avg =avg=accepté : ± 0.01
3Réponse numérique15 ptsSans réponse

Combien d'actions le calendrier optimal vend-il à l'intervalle 1 (coût 3 pb) ?

slot1=slot1 =slot1=accepté : ± 1
4Réponse numérique15 ptsSans réponse

Si l'ordre augmentait d'une action en restant admissible, de combien de points de base le coût total augmenterait-il ? Autrement dit, quel est le prix fantôme de la contrainte de budget ?

shadow=shadow =shadow=accepté : ± 0.01
5Choix15 ptsSans réponse

On demande aux mêmes quatre intervalles d'exécuter 20 000 actions. Que répond le solveur PL ?

6Choix15 ptsSans réponse

Un programme linéaire dont l'ensemble admissible est borné et non vide a une solution optimale en...

7Remettre les étapes dans l'ordre15 ptsSans réponse

Mettez dans l'ordre les étapes de mise en place et de résolution du PL d'exécution.

Faites glisser pour réordonner, ou placez le focus sur un élément, Espace pour le soulever, les flèches pour le déplacer et Espace pour le déposer.

  1. 1Écrire les contraintes : total égal à QQQ et 0≤xt≤ut0\le x_t\le u_t0≤xt​≤ut​
  2. 2La résoudre et lire le prix fantôme de la contrainte de budget
  3. 3Choisir les variables : actions xtx_txt​ vendues à chaque intervalle
  4. 4Écrire l'objectif : coût total ∑tctxt\sum_t c_t x_t∑t​ct​xt​
Mode mathsSaisie au clavier ou en LaTeXExercice 1 sur 7 · Ctrl ⏎ pour vérifier

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub