Arbeiten mit Dateien in cTrader
In diesem Artikel und dem dazugehörigen Video werden wir erklären, wie Sie mit Dateien in cTrader arbeiten können. Im Durchschnitt sind Benutzer besorgt über das Starten von cBots oder Indikatoren, die vollständige Zugangsrechte zu ihrem Gerät anfordern. Besonders wenn kein Quellcode verfügbar ist, ist es schwierig zu wissen, was der Algorithmus mit diesen Berechtigungen macht. Glücklicherweise bietet cTrader mehrere Methoden, die es Algos ermöglichen, auf Dateien auf ihrem lokalen Rechner zuzugreifen, ohne erhöhte Berechtigungen zu benötigen.
In das Algo-Verzeichnis schreiben
cTrader ermöglicht allen Algos den Zugriff auf einen Ordner mit dieser Adresse:
C:/Users/{username}/Documents/cAlgo/Data/{algoType}
, wobei algoType cBots oder Indicators ist.
Wir werden einen Beispiel-cBot erstellen und demonstrieren, wie Sie programmgesteuert auf dieses Verzeichnis zugreifen können.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Wie üblich speichern und erstellen wir den cBot und erstellen dann seine Instanz.
Nachdem die Instanz gestartet wurde, können wir zu dem oben definierten Ordner navigieren. Darin sollten wir die Datei Hello World.txt sehen, die den Text enthält, den wir in unserem Code angegeben haben.
Aus dem Algo-Verzeichnis lesen
Der nächste Schritt besteht darin, den Inhalt einer Datei zu lesen, die sich im Algo-Verzeichnis befindet. Dazu können wir unsere OnStart()-Methode wie folgt umschreiben.
1 2 3 4 | |
Nachdem wir unseren cBot erstellt und gestartet haben, werden wir sehen, dass der Algo die Zeichenfolge aus der Datei in das cTrader-Protokoll ausgibt.
Auf andere Verzeichnisse zugreifen
Beachten Sie, dass keine der Operationen, die unser cBot zuvor durchgeführt hat, erforderte, ihm erhöhte Zugangsrechte zu gewähren. Tatsächlich wurden die Zugangsrechte auf Klassenebene explizit auf None gesetzt.
Wir werden versuchen, in eine Datei zu schreiben, die sich in einem anderen Verzeichnis befindet, und sehen, was passiert. Wir werden unseren Code ändern, um in eine Datei zu schreiben, die sich im Stammverzeichnis Documents befindet.
1 2 3 4 | |
Sobald wir den cBot erneut erstellen und ausführen, werden wir sehen, dass im Protokoll eine Ausnahme ausgelöst wird, die anzeigt, dass wir nicht berechtigt sind, in dieses spezifische Verzeichnis zu schreiben.
Um dies zu lösen, können wir zum cBot-Code zurückkehren und seine Zugangsrechte wie folgt ändern.
1 | |
Wir erstellen und führen den cBot aus. Anstatt eine Ausnahme auszulösen, greift der Bot nun auf das angegebene Verzeichnis zu und schreibt in die richtige Datei.
Für eine weitere Demonstration, wie Zugangsrechte funktionieren, werden wir die OnStart()-Methode wie folgt ändern.
1 2 3 4 | |
Wir werden auch die Zugangsrechte wieder auf None setzen.
1 | |
Nachdem der cBot zu laufen beginnt, werden wir sehen, dass er nicht aus der Datei lesen kann.