MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 63
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Die nächste Beta-Version wird heute Abend verfügbar sein:
https://www.mql5.com/en/forum/306742/page16#comment_16148685
Ich habe versucht, das Startskript auszuführen - alles läuft, druckt ein Array mit Daten zu den Handelspaaren aus dem Beispiel, startet das Fenster, in dem es das Diagramm zeichnet
Aber ich habe versucht, "EURAUD" zum Beispiel durch "DAX30" zu ersetzen - nachdem ich das Skript ausgeführt habe, heißt es: "Failed to select DAX30
Was könnte das Problem sein? Terminal Version 2402
Ich mache Verbindung mit dem Login und dem Passwort und einem Server zum Demo-Konto des Brokers durch mt5.initialize
https://www.mql5.com/ru/docs/integration/python_metatrader5
Ich habe versucht, das Startskript auszuführen - alles läuft, druckt ein Array mit Daten zu den Handelspaaren aus dem Beispiel aus, startet ein Fenster, in dem es das Diagramm zeichnet
Aber ich habe versucht, "EURAUD" zum Beispiel durch "DAX30" zu ersetzen - nachdem ich das Skript ausgeführt habe, heißt es: "Failed to select DAX30
Was könnte das Problem sein? Terminal Version 2402
Ich verbinde mich mit Login-Passwort und Server mit dem Demokonto meines Brokers über mt5.initialize
# Versuchen wir, die Anzeige des DAX30-Symbols in MarketWatch zu aktivieren
selected = mt5.symbol_select("DAX30", True)
if not selected:
print("initialize() failed, error code = ", mt5 .last_error())
mt5 .shutdown()
quit()
dies ist die Fehlermeldung (-1, 'Terminal: Aufruf fehlgeschlagen')
# Versuchen wir, das DAX30-Symbol in MarketWatch zu aktivieren
selected = mt5.symbol_select("DAX30", True)
wenn nicht ausgewählt:
print("initialize() fehlgeschlagen, Fehlercode = ", mt5 .last_error())
mt5 .shutdown()
quit()
Dies ist die Fehlermeldung (-1, 'Terminal: Aufruf fehlgeschlagen')
Sind Sie sicher, dass Sie das Symbol DAX30 in Ihrem Handelskonto haben?
Zeigen Sie bitte einen Screenshot der Marktübersicht mit diesem Symbol in Ihrem Handelskonto.
Sind Sie sicher, dass Sie das Symbol DAX30 in Ihrem Handelskonto haben?
Zeigen Sie bitte einen Screenshot der Marktübersicht mit diesem Symbol in Ihrem Handelskonto.
***
Ich nehme diesen Code -https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesrange_py, ich initialisiere ihn, indem ich ihn mit meinem Demokonto verbinde. Wenn ich es mit USDJPY aus dem Beispiel ausführe, ist alles in Ordnung, es wird eine Tabelle angezeigt. Wenn ich es in DAX30 ändere
Für Tarife in Tarifen:
TypeError: 'NoneType'-Objekt ist nicht iterierbar
https://prnt.sc/sbapam
Ich nehme diesen Code und initialisiere ihn, indem ich ihn mit meinem Demokonto verbinde. Wenn ich es mit USDJPY aus dem Beispiel ausführe, ist alles in Ordnung, es wird eine Tabelle angezeigt. Wenn ich es in DAX30 ändere
Für Tarife in Tarifen:
TypeError: 'NoneType'-Objekt ist nicht iterierbar
# Versuchen wir, die Anzeige des DAX30-Symbols in MarketWatch zu aktivieren
selected = mt5.symbol_select("DAX30", True)
wenn nicht ausgewählt:
print("initialize() fehlgeschlagen, Fehlercode = ", mt5 .last_error())
mt5 .shutdown()
quit()
Fehler wie dieser (-1, 'Terminal: Aufruf fehlgeschlagen')
Sie haben Dax30 in eckigen Klammern. Der Fehler, der Ihnen angezeigt wird, ist korrekt.
Ach, darauf habe ich nie geachtet, danke
Und wir danken den Entwicklern für die Möglichkeit, die Logik in eine Fremdsprache, nämlich Python, zu übertragen.
Ich werde versuchen, hier Feedback zu geben, während die Logik analysiert und umgesetzt wird.
Hallo zusammen,
Ich hoffe, Sie haben nichts gegen einen Engländer, der nach langer erfolgloser Suche im Internet nach einer Orientierungshilfe sucht.
Ich verwende die MetaTrader5 Python-Bibliothek, nachdem ich mich von Maxiums Artikeln inspirieren ließ, und habe ein Problem mit der Speicherverwaltung festgestellt.
Wenn ich einen Dataframe mit mt5 lib mache, funktioniert der resultierende Dataframe wie erwartet. Ich habe dies innerhalb einer Funktion getan, die die Ticks sammelt und dann verschiedene Analysen durchführt, bevor sie das manipulierte df ausgibt.
Wenn ich jedoch die Funktion, die den DataFrame erstellt, erneut ausführe, stelle ich fest, dass sich der Speicher aus der vorherigen Instanz einfach weiter aufbaut.
Ich habe das gleiche Problem mit mt5.copy_ticks_range () und mt5.copy_rates_range (). Ich muss den Kernel zurücksetzen, um den Speicher zu löschen.
Ich habe das gleiche Problem, auch wenn ich den gesamten Code mit Ausnahme der Zeile, die den Datenrahmen erstellt, entfernt habe. Zum Beispiel:
def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size):
ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), datetime (end_date.year, end_date.month, end_date.day), mt5.COPY_TICKS_ALL), columns = [ 'time', 'bid', 'ask', 'last', 'volume', 'time_msc', 'flags', 'volume_real'])
Wenn ich dies mehrmals ausführe, steigt der Speicherverbrauch jedes Mal um 27MiB:
Zeile # Mem usage Increment Line Contents ================================================== 126.3 MiB 126.3 MiB def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size): 153.3 MiB 26.9 MiB ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), .
Zeile # Speicherverbrauch Inkrement Zeile Inhalt