Comment s'exécute un programme Python
Un programme Python est un fichier texte composé d'instructions. Python le lit de haut en bas et exécute une instruction à la fois, sans code superflu : le fichier main.py est le programme. Cliquez sur Run, ou tapez python main.py dans le terminal.
bid = 184.25
ask = 184.50
print(ask - bid) # 0.25Instructions et expressions
Une expression produit une valeur, comme ask - bid ou 2 * 3. Une instruction fait quelque chose, comme bid = 184.25 ou print(bid). Chaque instruction occupe sa propre ligne, et la fin de la ligne termine l'instruction : pas de point-virgule. Quand une instruction est trop longue, placez-la entre parenthèses et poursuivez sur les lignes suivantes.
total_cost = (
price * quantity
+ commission
+ exchange_fee
)Commentaires et docstrings
Tout ce qui suit # jusqu'à la fin de la ligne est un commentaire : Python l'ignore. Servez-vous des commentaires pour expliquer pourquoi le code fait quelque chose, pas pour répéter ce qu'il fait. Une chaîne entre triples guillemets placée en tête d'un fichier ou d'une fonction est une docstring, la description officielle que les outils et help() affichent.
# Mid price: the fair value halfway between bid and ask.
mid = (bid + ask) / 2 # average of the two quotesL'indentation fait partie de la syntaxe
Là où d'autres langages utilisent des accolades, Python utilise l'indentation. Une ligne qui se termine par deux-points ouvre un bloc, et ce bloc est formé des lignes indentées en dessous. Indentez avec quatre espaces et ne mélangez jamais tabulations et espaces. Le code placé contre la marge gauche est du code de premier niveau.
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.25IndentationError, et des deux-points oubliés provoquent une SyntaxError. Python s'arrête avant d'exécuter quoi que ce soit : lisez d'abord le numéro de ligne dans le message. Configurez votre éditeur pour insérer des espaces quand vous appuyez sur Tab.Variables et affectation
nom = valeur associe un nom à une valeur. Le signe = signifie affecter, et non égal : Python calcule d'abord le membre de droite, puis attache le nom au résultat. Les noms sont sensibles à la casse, peuvent contenir des lettres, des chiffres et des tirets bas, ne peuvent pas commencer par un chiffre et ne peuvent pas être un mot-clé comme if ou for. Le style Python est le snake_case, par exemple 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.0Arithmétique et priorité des opérateurs
+,-et*additionnent, soustraient et multiplient./est la division réelle et donne toujours un résultat décimal :7 / 2vaut3.5.//divise et arrondit vers le bas ;%donne le reste :7 // 2vaut3,7 % 2vaut1.**élève à une puissance :1.05 ** 10capitalise 5 % dix fois.
Python suit l'ordre des mathématiques : ** d'abord, puis * et /, puis + et -. Ainsi 2 + 3 * 4 vaut 14, alors que (2 + 3) * 4 vaut 20. Dans le doute, ajoutez des parenthèses : elles ne coûtent rien et rendent l'intention évidente. Les tirets bas dans les nombres, comme 10_000, sont ignorés et rendent les grands nombres lisibles.
spread = ask - bid # 0.25
mid = (bid + ask) / 2 # 184.375
spread_bps = spread / mid * 10_000 # the spread in basis pointsAfficher des résultats avec print
print() écrit des valeurs dans le terminal, séparées par des espaces. Un texte entre guillemets est une chaîne ; les sujets suivants traitent en détail des chaînes et des nombres. Pour l'instant, print est votre moyen de regarder à l'intérieur de votre programme : affichez une valeur, vérifiez-la à la main, puis continuez.
print("bid", bid, "ask", ask)
print("mid", mid)Dans le lab, vous écrirez de petites formules de prix en n'utilisant que ce qui figure sur cette page : affectation, arithmétique et parenthèses. À suivre : comment Python stocke les nombres, et pourquoi 0.1 + 0.2 ne vaut pas exactement 0.3.
Lab : ce qui est noté
- Calculer la valeur d'une position avec
notional25 pts - Trouver le prix médian avec
midpoint25 pts - Mesurer l'écart bid-ask avec
spread25 pts - Exprimer l'écart en points de base avec
spread_bps25 pts