Wie ein Python-Programm abläuft
Ein Python-Programm ist eine Textdatei aus Anweisungen. Python liest sie von oben nach unten und führt eine Anweisung nach der anderen aus, ganz ohne Rahmencode: Die Datei main.py ist das Programm. Klicken Sie auf Run oder geben Sie python main.py im Terminal ein.
bid = 184.25
ask = 184.50
print(ask - bid) # 0.25Anweisungen und Ausdrücke
Ein Ausdruck liefert einen Wert, etwa ask - bid oder 2 * 3. Eine Anweisung tut etwas, etwa bid = 184.25 oder print(bid). Jede Anweisung steht in einer eigenen Zeile, und das Zeilenende beendet die Anweisung: kein Semikolon. Ist eine Anweisung zu lang, setzen Sie sie in Klammern und führen sie in den folgenden Zeilen fort.
total_cost = (
price * quantity
+ commission
+ exchange_fee
)Kommentare und Docstrings
Alles von # bis zum Zeilenende ist ein Kommentar: Python ignoriert es. Nutzen Sie Kommentare, um zu erklären, warum der Code etwas tut, nicht um zu wiederholen, was er tut. Ein String in dreifachen Anführungszeichen am Anfang einer Datei oder Funktion ist ein Docstring, die offizielle Beschreibung, die Werkzeuge und help() anzeigen.
# Mid price: the fair value halfway between bid and ask.
mid = (bid + ask) / 2 # average of the two quotesDie Einrückung gehört zur Syntax
Wo andere Sprachen geschweifte Klammern nutzen, nutzt Python Einrückung. Eine Zeile, die mit einem Doppelpunkt endet, öffnet einen Block, und der Block besteht aus den eingerückten Zeilen darunter. Rücken Sie mit vier Leerzeichen ein und mischen Sie niemals Tabs und Leerzeichen. Code am linken Rand ist Code der obersten Ebene.
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 aus, ein vergessener Doppelpunkt einen SyntaxError. Python bricht ab, bevor irgendetwas läuft, also lesen Sie zuerst die Zeilennummer in der Meldung. Stellen Sie Ihren Editor so ein, dass Tab Leerzeichen einfügt.Variablen und Zuweisung
name = wert bindet einen Namen an einen Wert. Das Zeichen = bedeutet zuweisen, nicht gleich: Python berechnet zuerst die rechte Seite und hängt dann den Namen an das Ergebnis. Namen unterscheiden Groß- und Kleinschreibung, dürfen Buchstaben, Ziffern und Unterstriche enthalten, nicht mit einer Ziffer beginnen und keine Schlüsselwörter wie if oder for sein. Der Python-Stil ist snake_case, etwa 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.0Arithmetik und Operatorrangfolge
+,-und*addieren, subtrahieren und multiplizieren./ist die echte Division und liefert immer ein Dezimalergebnis:7 / 2ist3.5.//teilt und rundet ab;%liefert den Rest:7 // 2ist3,7 % 2ist1.**potenziert:1.05 ** 10verzinst 5 % zehnmal.
Python folgt der mathematischen Rangfolge: zuerst **, dann * und /, dann + und -. Also ist 2 + 3 * 4 gleich 14, (2 + 3) * 4 dagegen 20. Im Zweifel setzen Sie Klammern: Sie kosten nichts und machen die Absicht klar. Unterstriche in Zahlen wie 10_000 werden ignoriert und machen große Zahlen lesbar.
spread = ask - bid # 0.25
mid = (bid + ask) / 2 # 184.375
spread_bps = spread / mid * 10_000 # the spread in basis pointsErgebnisse mit print ausgeben
print() schreibt Werte, durch Leerzeichen getrennt, ins Terminal. Text in Anführungszeichen ist ein String; die nächsten Themen behandeln Strings und Zahlen ausführlich. Vorerst ist print Ihr Blick ins Innere des Programms: Wert ausgeben, von Hand prüfen, weitermachen.
print("bid", bid, "ask", ask)
print("mid", mid)Im Lab schreiben Sie kleine Preisformeln und verwenden dabei nur, was auf dieser Seite steht: Zuweisung, Arithmetik und Klammern. Als Nächstes: wie Python Zahlen speichert und warum 0.1 + 0.2 nicht exakt 0.3 ist.
Lab: Was bewertet wird
- Den Wert einer Position mit
notionalberechnen25 Pkt. - Mit
midpointden Mittelkurs finden25 Pkt. - Mit
spreaddie Geld-Brief-Spanne messen25 Pkt. - Die Spanne mit
spread_bpsin Basispunkten ausdrücken25 Pkt.