How to Get Historical Market Data with Interactive Brokers and Python

Kurze Zusammenfassung

Dieses Video bietet eine umfassende Anleitung zum Abrufen historischer Daten von Interactive Brokers (IBKR) mithilfe von Python. Es werden die notwendigen Schritte erläutert, von der Einrichtung eines IBKR-Kontos und dem Abonnieren von Marktdaten bis hin zur Installation der IBKR API und dem Schreiben von Python-Code zur Anforderung und Verarbeitung der Daten.

  • Einrichtung eines Interactive Brokers-Kontos und Abonnieren von Marktdaten.
  • Installation und Konfiguration der Trader Workstation (TWS).
  • Implementierung der IBKR API in Python zur Anforderung und Verarbeitung historischer Daten.
  • Speichern der abgerufenen Daten in einer CSV-Datei zur weiteren Analyse.

Historische Daten mit Interactive Brokers

Der Sprecher erklärt, dass historische Daten für quantitative Modelle oder das Testen von Handelsstrategien unerlässlich sind und empfiehlt Interactive Brokers als Datenanbieter. Er betont seine über 10-jährige Erfahrung mit dem Unternehmen und verspricht eine detaillierte Schritt-für-Schritt-Anleitung, um sich mit IBKR vertraut zu machen, Marktdatenabonnements abzuschließen und historische Daten abzurufen. Außerdem wird auf die erforderlichen Python-Kenntnisse hingewiesen und auf Quonkill.com verwiesen, um quantitative Fähigkeiten zu verbessern.

Erste Schritte mit Interactive Brokers

Zunächst wird die Eröffnung eines Interactive Brokers-Kontos empfohlen, wofür ein Link in der Beschreibung bereitgestellt wird. Nach der Registrierung muss man sich anmelden und die Marktdatenabonnements verwalten. Im Dashboard findet man über die Suchleiste die Option "Marktdatenabonnements", wo man die aktuellen Abonnements einsehen und konfigurieren kann. Es gibt verschiedene Datenpakete wie Kurspakete, Indizes und internationale Daten. Ein Mindestguthaben von 500 US-Dollar ist erforderlich, und es wird empfohlen, etwas mehr einzuzahlen, um einen Puffer zu haben. US-Aktiendaten werden als Beispiel für die Anforderung historischer Daten verwendet.

Einrichten der Trader Workstation

Für die Anforderung historischer Daten benötigt man entweder das IB-Gateway oder die Trader Workstation (TWS). Im Video wird die Trader Workstation verwendet, da sie eine Benutzeroberfläche bietet. Man kann TWS von der Downloadseite herunterladen und für sein Betriebssystem installieren. Nach der Installation öffnet man die Trader Workstation-Anwendung, geht zum Paper-Trading-Bereich und meldet sich mit seinen Kontodaten an. Anschließend wird die Trader Workstation für die Datenanforderung von Python vorbereitet.

Erstellen einer historischen Datenanfrage in Python

Die Schritte zur Anforderung historischer Marktdaten sind einfach: Zuerst müssen die benötigten Bibliotheken importiert werden, einschließlich der IB-API-Klasse. Dann wird eine Klasse für die IB-API erstellt, um Daten anzufordern und zu empfangen. Eine Funktion zum Abrufen der historischen Daten wird erstellt, und schließlich wird die Anwendung initialisiert und gestartet, um die Daten vom Server anzufordern. Der Server antwortet mit den historischen Daten, die in einer CSV-Datei gespeichert werden. Für die benötigten Bibliotheken müssen möglicherweise pip install-Befehle ausgeführt werden, z. B. pip install ibapi und pip install pandas.

IBKR API Implementierung (EWrapper und EClient)

Es wird eine Klasse namens IBKR_App erstellt, die sowohl EWrapper als auch EClient als übergeordnete Klassen verwendet. Der EClient ermöglicht es, Anfragen an die Trader Workstation zu stellen, während der EWrapper der Ort ist, an den die Trader Workstation die Antwort sendet. Im Konstruktor der Klasse wird EClient initialisiert, und eine leere Liste self.data wird erstellt, um die historischen Daten zu speichern. Außerdem wird ein Flag self.finished hinzugefügt, um anzuzeigen, wann die historischen Daten vollständig abgerufen wurden. Die Methode historicalData wird verwendet, um die Balkendaten von der Trader Workstation zu empfangen und sie in einem Wörterbuch zu speichern, das dann der Liste self.data hinzugefügt wird. Die Methode historicalDataEnd setzt das Flag finished auf true, wenn die Anfrage abgeschlossen ist.

Anfordern und Verarbeiten historischer Daten

Es wird eine Funktion namens get_equity_data erstellt, um die historischen Daten abzurufen. Diese Funktion benötigt einen Ticker als Eingabe, standardmäßig Nvidia. Zuerst wird eine Instanz der IBKR_App-Klasse erstellt und eine Verbindung zur Trader Workstation hergestellt. Dann wird ein Thread erstellt, um die Anwendung auszuführen, und eine Sekunde gewartet, bis die Initialisierung abgeschlossen ist. Ein Vertragsobjekt wird erstellt, um die Sicherheitseinstellungen für die Anforderung historischer Daten festzulegen. Anschließend wird die Methode reqHistoricalData verwendet, um die eigentliche Anfrage an die Trader Workstation zu stellen. Die Antwort wird in der Methode historicalData verarbeitet und in der Liste self.data gespeichert. Sobald die Anfrage abgeschlossen ist, wird die Verbindung zur Trader Workstation getrennt, die Daten werden in einen Pandas-DataFrame formatiert und als CSV-Datei gespeichert.

Debugging und Abfragen historischer Daten

Im Video werden einige Fehler im Code behoben, z. B. die Verwendung von Klammern anstelle von eckigen Klammern beim Auswählen von Spalten aus dem DataFrame und ein Fehler bei der Angabe der Währung im Vertragsobjekt. Nach der Behebung dieser Fehler kann das Programm erfolgreich Apple-Daten abfragen und in einer CSV-Datei speichern. Abschließend bedankt sich der Sprecher bei den Zuschauern und fordert sie auf, das Video zu liken, zu kommentieren, zu abonnieren und zu teilen. Außerdem wird auf quangild.com verwiesen, um quantitative Fähigkeiten zu verbessern.

Fasse jedes YouTube-Video in Sekunden zusammen

Hol dir Zusammenfassungen wie diese für jedes Video, in deiner Sprache, mit der kostenlosen Summ-App.

Laden im App Store
Jetzt bei Google Play

Transkript

Vollständiges Transkript von „How to Get Historical Market Data with Interactive Brokers and Python“. Klicke auf einen Zeitstempel, um das Video an dieser Stelle zu öffnen. Du brauchst ein anderes Video? Nutze den YouTube-Transkript-Generator.

0:00 [Musik] Egal, ob Sie einem meiner quantitativen Modelle folgen möchten oder einfach nur eine Handelsstrategie testen wollen , Sie benötigen historische Daten, was bedeutet, dass Sie einen Datenanbieter benötigen. Ich kann Ihnen nur Interactive Brokers empfehlen. Ich bin seit über 10 Jahren im Handels- und Anlagebereich für das Unternehmen tätig. Und heute werden wir Ihnen Schritt für Schritt alles erklären, was Sie von A bis Z tun müssen, um sich mit ihnen vertraut zu machen und die erforderlichen Marktdatenabonnements abzuschließen, um historische Daten anzufordern. So können Sie die Builds dieser Quamp-Tests nachvollziehen oder historische Daten für Ihre eigenen Backtests abrufen . Um diese Daten in Bewegung zu bringen, benötigen Sie nun einige Python- Kenntnisse aber das ist nur die technische Grundlage. Wenn Sie

0:46 Ihre quantitativen Fähigkeiten, die für den Aufbau institutioneller Handelsmodelle erforderlich sind, wirklich beherrschen wollen, schauen Sie sich quonkill.com an. Wir bieten über 100 Stunden an Vorlesungsmaterial und ein adaptives Übungssystem, das sich Ihrem Können anpasst. Alles ist darauf ausgelegt, Sie so schnell wie möglich vom Studenten zum Praktiker zu machen . Wenn Sie Ihre quantitativen Fähigkeiten verbessern möchten, besuchen Sie quankild.com. Als Erstes benötigen Sie ein Interactive Brokers-Konto. Ich werde unten in der Beschreibung einen Link einfügen, über den Sie direkt loslegen können . Sobald Sie sich für ein Konto registriert haben, müssen Sie sich anmelden und Ihre Marktdatenabonnements verwalten. Nach dem Einloggen wird Ihnen ein

1:32 Dashboard mit Ihrem Portfolio angezeigt. Gehen Sie in die obere rechte Ecke zur Suchleiste und geben Sie „Marktdatenabonnements“ ein. Sobald Sie das getan haben, können Sie darauf klicken und gelangen zu dieser Seite. Es zeigt Ihnen an, welche Daten Sie aktuell abonniert haben, und ermöglicht Ihnen außerdem, diese zu konfigurieren. Nach dem Klick auf „Konfigurieren“ gelangen Sie auf eine Seite, auf der Sie verschiedene Marktdatenabonnements aktivieren und deaktivieren können . Sie haben Kurspakete, Indizes, Ebene eins, Ebene zwei, festverzinsliche Wertpapiere, Sonstiges. Es gibt internationale Daten, die Sie abonnieren können, und so weiter. Sie müssen in jedem Fall ein Mindestguthaben von 500 US-Dollar auf Ihrem Konto vorhalten. Ich würde Ihnen raten,

2:17 etwas mehr einzuzahlen, um sich einen Puffer zu verschaffen, wenn Sie diese Datenabonnements erwerben . Bedenken Sie, dass diese Datenabonnements nicht allzu teuer sind, Sie aber dennoch ein Mindestguthaben auf Ihrem Konto vorhalten müssen . Sie kosten nur ein paar Dollar. Wir werden hier US-Aktiendaten verwenden, um zu demonstrieren, wie man historische Daten anfordert. Nachdem Sie sich für Ihr Interactive Brokers- Konto registriert, es aufgeladen und die erforderlichen Marktdatenabonnements abgeschlossen haben, benötigen Sie für die Anforderung historischer Daten entweder das IB-Gateway oder die Trader Workstation. Wir werden die Trader Workstation verwenden, einfach weil sie eine Benutzeroberfläche hat. Wenn Sie die

3:03 Downloadseite von Trader Workstation aufrufen, können Sie auf „TWWS herunterladen“ klicken und es dann für Ihr Betriebssystem installieren. Sobald Sie das getan haben, können Sie die Trader Workstation-Anwendung öffnen. Gehen Sie zum Paper-Trading-Bereich und melden Sie sich mit Ihren Kontodaten an. Anschließend können wir zur Trader Workstation wechseln, um diese für die Datenanforderung von Python vorzubereiten. Wie Sie hier sehen können, habe ich mich erfolgreich in die Händler- Workstation der Papierhandelsversion eingeloggt. Sie können sehen, dass es sich hier nicht um ein Brokerkonto handelt. Dies ist ein Papierhandelskonto für simulierten Handel. Nun wollen wir sicherstellen, dass die Python- API eine Verbindung zur Händler- Workstation herstellen kann. Dazu gehe ich in die obere rechte Ecke, klicke auf

3:49 das Zahnradsymbol für die Einstellungen, und die Einstellungsseite wird geöffnet. Ich werde nun zu den API-Einstellungen wechseln und dort ActiveX und Socket- Clients aktivieren. Wenn ich über die API Transaktionen durchführen möchte, werde ich die schreibgeschützte API deaktivieren. Sobald ich das erledigt habe, werde ich meinen Socket-Port für den Papierhandel überprüfen . Der Standardwert ist 7497. Ich kann jetzt auf „Anwenden“ klicken. Okay. Und nun habe ich alles, was ich brauche, um historische Daten in Python abzurufen. Die Schritte zur Anforderung historischer Marktdaten sind eigentlich unglaublich einfach. Als Erstes müssen wir die benötigten

4:36 Bibliotheken importieren. Dies umfasst die IB-API- Klasse. Als Nächstes müssen wir eine Klasse für die IB-API erstellen. Wir haben also einen Ort, von dem wir Daten anfordern können, und der Server hat einen Ort, an den er sie senden kann. Dann erstellen wir eine Funktion, um die historischen Daten abzurufen. Und schließlich initialisieren und starten wir die Anwendung, in der wir die Daten vom Server anfordern werden. Der Server antwortet mit den historischen Daten, die wir selbstverständlich in der CSV- Datei speichern. Für die benötigten Bibliotheken müssen Sie möglicherweise einen pip install-Befehl ausführen. Sie können den Befehl `pip install IB API` ausführen, um die Interactive Brokers API zu erhalten. Dafür

5:24 benötigen Sie pandas, das eine Vielzahl von Abhängigkeiten mit sich bringt. Falls Sie pandas noch nicht installiert haben, können Sie es mit dem Befehl `pip install pandas` installieren . Sobald Sie die benötigten Bibliotheken haben, können Sie mit dem Programmieren beginnen. Beginnen wir mit unseren Importen. Zuerst werden wir die Importzeit festlegen, damit wir die Termine unserer Anfragen verwalten können . Dann müssen wir pandas als pd importieren, damit wir die Daten strukturiert speichern können. Wir sagen: from ibappi.client import eclient. Dies dient dazu, dass unsere Python- Anwendung eine Anfrage an die Workstation des Erstellers senden kann. Nun benötigt die Workstation des Erstellers einen Ort, an den die Antwort auf diese Anfrage gesendet werden kann. Wir sagen also: from ibappi.wrapper

6:09 import e wrapper. Das Letzte, was wir vom IBI brauchen, ist ein Vertrag. So können wir die Sicherheitseinstellungen für die Anforderung historischer Daten festlegen. Ich sage „vom IBIC- Vertrag Importvertrag“. Jetzt benötigen wir nur noch Threads, damit wir die Hauptschleife ausführen können, um die Daten vom Server zu empfangen. Und sobald wir das Datenende erreicht haben, können wir alles herunterfahren. Ich werde also sagen: from threading import thread. Das ist alles, was wir dort brauchen. Wir können nun mit der Erstellung einer Klasse für die Interactive Brokers API fortfahren. Wie sieht das konkret aus? Nun, wir haben den E-Client und die E-Wrapper-Software. Der Kunde

6:57 wird uns erlauben, Anfragen an die Workstation des Erstellers zu stellen. Der E-Wrapper ist der Ort, an den die Ersteller-Workstation die Antwort auf diese Anfrage sendet. Ich werde also beides in eine Klasse einteilen. Ich [schnaubt] sage, Klasse IBKR- App. Dies wird e-wrapper und e-client als übergeordnete Klassen haben. Und dann werde ich einfach einen simplen Konstruktor erstellen. Ich werde also in diesem Konstruktor mit eclient initialisieren und den Konstruktor von eclients aufrufen und sagen: „Hey, das wird der Ort sein, an dem wir sowohl Anfragen stellen als auch Anfragen empfangen können.“ Okay, self.data wird eine

7:43 leere Liste sein. Hier werden wir die historischen Daten speichern. Und dann werde ich einfach eine Flagge self.finished finished hinzufügen, wenn die historischen Daten zu Ende sind. Die Anfrage nach historischen Daten, die wir stellen werden, ist Teil des E-Clients, aber die eigentliche Action findet im E-Wrapper statt . Hierhin sendet die Händler-Workstation die eigentlichen Balkendaten zurück. Wohin wird es also gesendet? Es sendet es an diese Callback-Methode historische Daten def historische Daten. Es wird eine Antwort mit der Anforderungs-ID aus der E-Client-Anfrage und der Leiste geben. Wir werden also einfach

8:30 die Balkendaten zu unserer Liste hinzufügen. Wir werden also self.data.append verwenden. Wir können hier ein Wörterbuch erstellen. Wir sagen, dass Datum und Uhrzeit auf bar.date abgebildet werden. Wir können sagen, dass „open“ auf „shocker bar.open“ abgebildet wird. Open Close wird auf bar.clo abgebildet. Gleiches gilt für hoch. Gleiches gilt für niedrig. Und natürlich gilt das Gleiche auch für „schließen“. Wenn wir möchten, können wir auch das Volumen mit einbeziehen. Und das wird dann eben die Bar sein. Volumen. Genau dorthin

9:17 sendet die Workstation des Erstellers die Daten. Sobald wir es in dieser Liste gespeichert haben, sind wir im Prinzip fertig. Wir können diese Liste aus der IBKR-App- Klasse, unserer Instanz der Klasse, abrufen und sie dann in einen Pandas- Dataframe konvertieren und speichern. Woran erkennen wir, dass die Anfrage historischer Daten abgeschlossen ist? Nun, dafür gibt es noch eine andere Callback- Methode. Es wird erneut als Schockierendes Ende der historischen Daten bezeichnet. Wenn ich sage, dass die historischen Daten enden. Es wird eine Wrack-ID benötigen. Dies ist die erste Anfrage des E-Clients. Es wird ein Start- und ein Enddatum haben. Und sobald diese Callback- Methode aufgerufen wird, werde ich einfach das Flag

10:03 finished auf true setzen. Dies bedeutet, dass wir alle Daten für den angeforderten Zeitraum erfolgreich abgerufen haben . Als Letztes erstellen wir nun eine Funktion zum Starten der App. Ich sage defaf run loop. Dies benötigt eine App als Eingabe und ich werde einfach app.run aufrufen. Das wird das Thema unseres Threads sein. Jetzt haben wir alles, was wir brauchen, um die Hauptfunktion zu erstellen, die die historischen Daten selbst abruft. Ich werde hier eine generische Funktion namens „Eigenkapitaldaten abrufen“ erstellen. Ich sage, defaf beschafft sich Equity-Daten. Es benötigt

10:48 einen Ticker als Eingabe. Ich werde also einfach sagen, dass das Symbol gleich ist, und standardmäßig Nvidia verwenden. Als erstes müssen wir innerhalb dieser Funktion eine Instanz dieser IBKR-App-Klasse erstellen. Ich würde also sagen, dass die App der IBKR-App entspricht. Ich sage app.connect. Dadurch kann ich mich mit der Creator-Workstation verbinden. Es befindet sich auf dem lokalen Host. Also 127.0.0.1 Port 7497, wie wir es vorhin schon gesehen haben. Dann kann ich eine Client-ID festlegen. Sie können in den Einstellungen Ihrer Händler-Workstation eine Master-Client-ID festlegen, wenn Sie dies wünschen. Ich stelle es einfach auf 1 2 3 ein. Jetzt muss ich den Haupt-API-Thread erstellen. Ich behaupte, dass

11:34 API-Thread gleichbedeutend mit Thread ist. Und nun werde ich mich auf diese Ausführungsschleife konzentrieren. Was sind die Argumente? Nun ja , es wird die App sein. Die App wird in diesem Thread ausgeführt. Jetzt sage ich API thread.st start und ich werde times sleep to one haben. Wir warten also eine Sekunde, während die App startet. Ich werde hier eine generische Funktion namens „Eigenkapitaldaten abrufen“ erstellen. Ich würde sagen, man sollte sich unbedingt Aktiendaten besorgen. Als Eingabe nehme ich ein Symbol. In diesem Fall könnten wir beispielsweise Apple, Nvidia oder irgendetwas anderes haben, was als Aktienwert gilt . Und ich werde standardmäßig

12:21 Nvidia verwenden, wenn kein Symbol angegeben wird. Als Erstes müssen wir die oben erstellte Klasse initialisieren. Ich würde sagen, App ist gleich ibkr App. Und nun muss ich mich mit der Creator- Workstation verbinden. Ich sage also app.connect. Und ich werde mich wie vorhin mit dem lokalen Host auf Port 7497 verbinden. und ich werde eine Client-ID angeben. In Ihren Einstellungen können Sie eine Master- Client-ID festlegen, wenn mehrere Anwendungen eine Verbindung zur Ersteller- Workstation herstellen. In diesem Fall lasse ich es einfach bei 1 2 3. Jetzt müssen wir einen Thread erstellen. Ich behaupte also, dass API-Thread gleichbedeutend mit Thread ist. Das

13:07 Ziel wird diese Ausführungsschleife sein. Diese Schleife, die wir zuvor erstellt haben. Was ist das Argument? Nun, die Diskussion wird sich um die RIB KR App drehen. Also, ich sage, args ist gleich app. Dies ermöglicht es mir, die Verarbeitung von Informationen in der IBKR-App fortzusetzen, während das Programm weiterläuft. Jetzt werde ich also ` API thread.st start` aufrufen und eine Sekunde warten. Ich warte also eine Sekunde, während die Initialisierung läuft, bevor ich mit der Datenanfrage fortfahre. Um nun die Datenanfrage stellen zu können, müssen wir einen Vertrag festlegen. Also, ich werde

13:54 sagen, dass ein Vertrag einem neuen Vertrag gleichkommt. Ich sage, das Vertragssymbol ist gleich dem Symbol, das wir dieser Funktion übergeben haben. Standardmäßig wird Nvidia verwendet. Bei dem Wertpapier handelt es sich in diesem Fall natürlich um eine Aktie. Wir belassen es beim Wechselkurs und die Währung wird USD sein. Wir haben nun also die Sicherheitsvorkehrungen spezifiziert, für die wir historische Daten anfordern. Wir können nun zur eigentlichen Anfrage übergehen . Als Erstes werden wir eine Endzeit festlegen. Hier beginnt im Prinzip die Anfrage nach den historischen Daten

14:39 . Ich werde also sagen, dass die Endzeit gleich der Zeit ist. Wir werden die Zeit als Zeichenkette formatieren. Das wird jetzt in einem ziemlich standardmäßigen Format erfolgen. Wir werden Jahre, Monate, Tage vergehen. Dann werden wir Stunden, Minuten und Sekunden haben. Jetzt können wir die Anfrage erstellen. Ich werde aus der IBKR-App sagen, dass wir app.recis wreck historical data bereits initialisiert haben. Dies ist eine Methode innerhalb der Eclient- Klasse. Wir übernehmen dies in der IBKR- App. Hier können wir Anfragen an den Server stellen, um historische Daten abzurufen, Handelsaufträge zu erteilen, Portfolioinformationen zu erhalten und so

15:25 weiter. In diesem Fall nutzen wir es natürlich, um historische Daten abzurufen. Was sind also die Argumente? Nun, jede einzelne Anfrage wird eine Anfrage-ID haben. Dies ist notwendig, damit die Entwickler- Workstation, wenn sie auf unsere Python- Anwendung antwortet, diese mit einer Anfrage verknüpfen kann . Wir haben also die Wrack-ID. Der Vertrag, auf den sich diese Anfrage bezieht, wird durch das bereits erstellte Vertragsobjekt bereitgestellt. Nun werden wir das Enddatum und die Endzeit festlegen . Hier beginnt die historische Anfrage. Nun können wir den Betrachtungszeitraum effektiv von diesem Endzeitpunkt aus festlegen. Wie weit zurück sollten wir blicken? Ich werde ein Jahr zurückgehen. Und welche Größe sollten wir bei

16:13 den Balken anstreben? Täglich, stündlich, minütlich. Es liegt ganz an uns. Es gibt Ratenbegrenzungen. Behalte das bitte im Hinterkopf. Was die Einstellungen für die Balkengröße angeht, werde ich mir das erst einmal ansehen. Was sollten wir zeigen? In diesem Fall zeigen wir nur die Handelsgeschäfte an. Möchte ich die regulären Handelszeiten nutzen? Ja. Soll das Datum als Zeichenkette formatiert werden? Ja, das tue ich. Möchte ich es auf dem neuesten Stand halten? Nein, ich lasse das einfach als falsch stehen. Und ich lasse die Liste einfach leer, weil ich keine Diagrammoptionen angeben muss . Dies ist die formale Anfrage, die wir vom E-Client an die Ersteller-Workstation nach historischen Daten stellen. Und wir haben hier bereits einen Ort, an dem

17:00 diese Methode, die Methode der historischen Daten, angewendet werden kann. Wie Sie sehen können, wird es mit der Anforderungs- ID antworten. In diesem Fall handelt es sich um die Anfrage-ID 1. Und was wird sie uns liefern? Nun, jeder Balken repräsentiert einen Tag und springt ein Jahr zurück zum jetzigen Zeitpunkt. Jetzt müssen wir nur noch warten, bis die Daten eintreffen, sie als CSV-Datei speichern und dann diese Anwendung ausführen, und wir können historische Daten anfordern. Also, ich werde einfach sagen, dass wir, solange es noch nicht appiniert ist, einfach abwarten werden. Ich sage Zeit. Fünf. Und sobald wir die Anfrage für die historischen Daten erfolgreich abgeschlossen haben – denken Sie daran, dass das Flag „Fertig“ nur dann auf „Wahr“ gesetzt werden kann, wenn die Händler-

17:48 Workstation uns mitteilt, dass sie die Anfrage für die historischen Daten erfolgreich erfüllt hat –, kann ich die Verbindung zur Händler-Workstation mit app.disconnect trennen und die Daten in einen Datenrahmen formatieren und speichern. Ich sage, df ist gleich pandas dataf frame app dod data. Ich sage df return. Wir können eine Spalte erstellen, deren Rendite der prozentualen Veränderung des Schlusskurses von df entspricht. Und dann lasse ich einfach na weg, weil die erste Zeile keine Daten enthält, anhand derer die prozentuale Veränderung berechnet werden kann. Ich sage also, df ist gleich df.drop na. Die Teilmenge wird die

18:33 Rückgabespalte sein. Und jetzt formatiere ich es einfach mit den notwendigen Spalten. DF ist gleich DF. Wir werden Eröffnungskurs Höchstkurs Tiefstkurs Schlusskurs Volumen, Rendite und Datum/Uhrzeit anzeigen. Wir können das also in einen einzigen String zusammenfassen. Ich sage Datum und Uhrzeit. Ich sage: Eröffnungskurs, Höchstkurs, Tiefstkurs, Schlusskurs, Volumen. Und wir wollen dann auch zurück. Ich sage „dotsplit“ an diesem Komma. Das sind alle Spalten, die wir speichern werden. Ich sage df.2 CSV. In diesem Fall speichern wir die Daten einfach als CSV-Datei mit Lagerbestandsdaten. Wenn Sie möchten, können Sie dies so formatieren, dass auch das

19:19 Symbol enthalten ist. Dann setzen wir den Index auf false. Und wir geben einfach den Datenrahmen zurück. Das war's für diese Funktion zum Abrufen von Aktiendaten. Jetzt können wir diese Anwendung einfach ausführen. Ich sage, wenn der Name gleich dem Hauptnamen ist. Wir sagen einfach: Besorgen Sie sich Daten zum Eigenkapital. Und in diesem Fall nehmen wir zum Beispiel den Apfel. Jetzt haben wir alles, was wir brauchen. Probieren wir es aus und schauen wir, ob wir einige historische Daten abrufen können. Ein Live-Coding-Video ohne Debugging wäre undenkbar. Wenn wir uns diesen Datenrahmen ansehen. Ich versuche, diese Spalten auszuwählen, aber ich habe Klammern. Ich behandle es als eine Funktion, das ist nicht das, was

20:04 wir hier versuchen. Wir versuchen, die Spalten aus diesem Datenrahmen auszuwählen. Statt runder Klammern sollte ich also eckige Klammern verwenden. Wenn wir hier weiter nach oben scrollen und uns den Vertrag ansehen, in dem die Währung angegeben ist, sage ich contractusd. Dies sollte contract.currency sein. Wenn wir das jetzt hier ausführen, sollten wir die Daten erfolgreich anfordern können. Wenn ich die gespeicherte CSV-Datei öffne , können Sie sehen, dass ich erfolgreich Apple-Daten abgefragt habe, die ein Jahr vor diesem Endzeitpunkt zurückreichen. Und das war's mit diesem Video zum Thema „ Wie man mit Interactive Brokers und Python historische Daten abruft“. Ich hoffe, es hat Ihnen gefallen. Ich hoffe, du hast etwas gelernt. Dieses Video hat sicherlich viel Mühe gekostet. Wenn es

20:50 Ihnen gefallen hat und Sie in Zukunft mehr davon sehen möchten, dann liken, kommentieren, abonnieren und teilen Sie es bitte. Es hilft mir ungemein. Das wird immer sehr geschätzt. Wenn Sie Ihre quantitativen Fähigkeiten für Positionen im Handel und Market-Making verbessern möchten, besuchen Sie quangild.com. Ansonsten möchte ich mich ganz herzlich fürs Zuschauen bedanken und wir sehen uns im nächsten Video.

Share

Weitere Video-Zusammenfassungen