σμ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 AcademyParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Parcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours Python›Module 1 · Les bases de Python pour les quants›Sujet 1.4·~30 minDébutant

Booléens et comparaisons

Position dans le parcoursModule 1 sur 11 · Sujet 4 sur 33
1.4 Booléens et comparaisons
—Score du lab— / 100XP total—Série—

Vrai et faux

Un booléen (bool) n'a que deux valeurs : True et False, avec une majuscule. Toute règle de trading en produit un : « le marché est-il croisé ? », « peut-on se permettre cet ordre ? ». Comparer deux valeurs produit un booléen : ask > bid n'est pas encore une décision, c'est une valeur que l'on peut stocker, afficher et combiner.

bid, ask = 184.25, 184.5
print(ask > bid)        # True
print(type(ask > bid))  # <class 'bool'>

Opérateurs de comparaison

Python compare avec == (égal), != (différent), <, <=, > et >=. Un seul = est une affectation, pas une comparaison : price = 5 stocke une valeur alors que price == 5 pose une question. Les comparaisons peuvent être enchaînées : low <= price <= high se lit comme en mathématiques et vérifie les deux côtés à la fois.

# Comparison operators give True or False
price = 184.4
print(price == 184.4)         # True
print(price != 184.25)        # True
print(184.25 <= price < 185)  # True (chained)

Combiner des conditions : and, or, not

a and b vaut True seulement si les deux le sont. a or b vaut True si au moins l'un l'est. not a inverse la valeur. Ensemble, ils expriment de vraies règles, comme « le marché est ouvert, le titre n'est pas suspendu et nous avons les liquidités ».

# Combine conditions with and, or, not
market_open, halted, cash = True, False, 500.0
can_buy = market_open and not halted and cash >= 184.5
print(can_buy)               # True
print(halted or cash < 100)  # False

and et or fonctionnent en court-circuit : Python s'arrête dès que la réponse est connue et n'évalue pas le reste. C'est utile comme garde : placez la vérification sûre en premier pour que la vérification risquée ne s'exécute que lorsqu'elle le peut.

# Short-circuit: the division never runs when quantity is 0
quantity = 0
print(quantity > 0 and 100 / quantity > 1)  # False

Valeur de vérité

N'importe quelle valeur peut servir de condition. 0, 0.0, le texte vide "" et None comptent pour faux ; presque tout le reste compte pour vrai. bool(value) montre comment Python lit une valeur. Attention : quantity and price > 0 peut renvoyer 0 au lieu de False ; écrivez donc la comparaison complète quand il vous faut un vrai bool.

# Zero, empty text and None count as False
print(bool(0), bool(0.0), bool(""), bool(None))  # False False False False
print(bool(200), bool("AAPL"))                    # True True
Renvoyez la condition elle-mêmeUne comparaison est déjà True ou False. Écrivez return quantity > 0 plutôt qu'un if qui renvoie True et une autre branche qui renvoie False : c'est plus court et cela ne peut pas se contredire.

Comparer des flottants, et None

== entre des floats est risqué à cause des erreurs d'arrondi (voir entiers et flottants) : utilisez math.isclose pour « assez égal ». == compare des valeurs ; le mot is demande si deux noms désignent exactement le même objet, et on ne s'en sert que pour une chose : x is None, pour tester l'« absence de valeur ».

# Floats need a tolerance; None is tested with "is"
import math

print(0.1 + 0.2 == 0.3)              # False
print(math.isclose(0.1 + 0.2, 0.3))  # True
fill_price = None
print(fill_price is None)            # True

À suivre : les conditions, où un booléen décide quelles lignes de code s'exécutent : if, elif et else.

Lab : ce qui est noté

  • Détecter un marché croisé avec is_crossed25 pts
  • Vérifier qu'un prix est dans une fourchette avec within_band25 pts
  • Combiner les conditions de trading avec can_trade25 pts
  • Valider un ordre avec is_valid_order25 pts
Explorateur · lab-4-1
▾ lab-4-1
…
bash · dans le navigateur
learner@quantcraft:~/lab-4-1$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-4-1 revient aux fichiers de départ et le terminal est vidé. Votre solution actuelle sera perdue : cette action est irréversible.

Sera réinitialisé
  • main.py → code de départ
  • Historique du terminal et sortie des tests
  • Modifications non soumises
Sera conservé
  • Meilleur score du lab
  • Votre XP et votre série
  • Progression du cours et notes

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