MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 69

 
Roman:

@Almaz
Wenn die Funktionen copy_xxx_xxx zum ersten Mal ausgeführt werden und das Terminal einige Zeit nicht gestartet wurde, geben die Funktionen
sofort das verfügbare Ergebnis mit fehlender Historie zurück, ohne auf die Synchronisierung des History Swaps zu warten.
Das bedeutet, dass der erste Funktionsaufruf das Ergebnis mit fehlender Historie liefert.
Erst spätere Aufrufe liefern das richtige Ergebnis, wenn der Verlauf ausgetauscht wird.
Ist es möglich, dieses Problem zu beheben? Und die Funktionen copy_xxx_xxx warten darauf, dass die Geschichte beim ersten Aufruf ausgetauscht wird.

copy_ticks oder copy_rates? Welches ist das Build des Terminals?

 
Roman:

@Almaz
Wenn die Funktionen copy_xxx_xxx zum ersten Mal ausgeführt werden und das Terminal einige Zeit nicht gestartet wurde, geben die Funktionen
sofort das verfügbare Ergebnis mit fehlender Historie zurück, ohne auf die Synchronisierung des History Swaps zu warten.
Das bedeutet, dass der erste Funktionsaufruf das Ergebnis mit fehlender Historie liefert.
Erst spätere Aufrufe liefern das richtige Ergebnis, wenn der Verlauf ausgetauscht wird.
Ist es möglich, dieses Problem zu beheben? Und die Funktionen copy_xxx_xxx warten darauf, dass der Verlauf beim ersten Aufruf ausgetauscht wird.

Lesen Organisieren Sie den Datenzugriff, die Python-Bibliothek hat damit nichts zu tun. Dies ist ein Standardverhalten. Sie müssen mit solchen Situationen umgehen und den Verlauf erneut anfordern, nachdem das Terminal ihn ausgetauscht hat.

Es handelt sich um eine einmalige Sache, die also nicht kritisch ist. Sie können die vorhandene Historie immer auf dem neuesten Stand halten, wenn Sie ständig mit dem Terminal über ein Skript arbeiten.

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
Almaz:

copy_ticks oder copy_rates? Welcher Build des Terminals?

Ich habe copy_rates verwendet, aber ich denke, copy_ticks ist dasselbe, habe es aber nicht überprüft.
Gebäude 2470

 
Rashid Umarov:

Lesen Sie Organize Data Access, es hat nichts mit der Python-Bibliothek zu tun. Dies ist ein Standardverhalten. Sie müssen mit solchen Situationen umgehen und den Verlauf erneut anfordern, nachdem das Terminal ihn zurückgeschickt hat.

Es handelt sich um eine einmalige Sache, die also nicht kritisch ist. Sie können den vorhandenen Verlauf immer auf dem neuesten Stand halten, wenn Sie ständig mit dem Terminal aus dem Skript heraus arbeiten.

Ich habe diesen Abschnitt gelesen, es ist im Zusammenhang mit Mql5.
Oder wollen Sie andeuten, dass SieCheckLoadHistory auf die gleiche Weise organisieren müssen?
Warum wird diese Funktion nicht als Standard eingeführt? Für Mql und Py-Bibliothek.

Und generell ist es seltsam, dass Sie der Funktion Kopieren erlauben, falsche Daten zu empfangen, ohne zu warten, bis der Verlauf ausgetauscht wurde, und das Ergebnis mitzuteilen.
 
Roman:

Ich habe diesen Abschnitt gelesen, er bezieht sich auf Mql5.
Oder wollen Sie damit sagen, dass SieCheckLoadHistory auf dieselbe Weise organisieren müssen?
Warum wird diese Funktion nicht als Standard eingeführt? Für Mql und Py-Bibliothek.

Und im Allgemeinen ist es seltsam, dass Sie falsche Daten in der Funktion Kopieren zulassen, ohne auf den Austausch der Historie zu warten und das Ergebnis anzugeben.

Wenn Sie mit MQL5 arbeiten, sind die Fragen im AbschnittZugriff auf Daten organisieren nicht so speziell. Wir haben diesen Abschnitt ausgiebig studiert. Und wir nutzen sie.

Warum glauben Sie, dass es bei Python anders sein sollte?

Schließlich ist der Hauptkern MQL5, und den muss man kennen. Und erst danach müssen Sie Python anwenden.

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
Roman:

Ich habe diesen Abschnitt gelesen, er bezieht sich auf Mql5.
Oder wollen Sie damit sagen, dass SieCheckLoadHistory auf dieselbe Weise organisieren müssen?
Warum wird diese Funktion nicht als Standard eingeführt? Für Mql und Py-Bibliothek.

Und generell ist es seltsam, dass Sie falsche Daten in der Funktion Kopieren zulassen und nicht warten, bis der Verlauf geladen ist, und das Ergebnis zurückgeben.

Die Python-Bibliothek ermöglicht die Abfrage von Daten aus dem MetaTrader 5-Terminal auf allgemeiner Basis, unabhängig davon, wie sie angefordert wurden - manuell, über MQL5 oder mit Hilfe eines Python-Skripts.

Der Entwickler von MQL5-Programmen und Python-Skripten ist für die Logik und Organisation der Arbeit mit Daten verantwortlich.

 

Nachmittag

Gibt es eine Möglichkeit, sich über PowerShell mit dem Terminal zu verbinden? Wenn jemand weiß, wie das geht, wäre ich für Informationen dankbar

Da ich keine Erfahrung mit Python habe, möchte ich das verwenden, was ich am besten kenne))

 

Guten Tag!

Ich habe die Bibliotheken verbunden, Python kommuniziert mit Mt5, ich erhalte Kontoinformationen, aber die Kurse werden in keiner Weise geladen. Können Sie mir helfen?

Python Version 3.7.6


from datetime import datetime
import MetaTrader5 as mt5

# выведем информацию о версии MetaTrader 5
print(mt5.version())

# установим подключение к терминалу MetaTrader 5
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()

# подключимся к торговому счету без указания пароля и сервера
account=17245465
authorized=mt5.login(account)  # пароль будет взят из базы терминала, если указано помнить данные для подключения
if authorized:
    # выведем данные о торговом счете как есть
    print(mt5.account_info())
    # выведем данные о торговом счете в виде списка
    print("Show account_info()._asdict():")
    account_info_dict = mt5.account_info()._asdict()
    for prop in account_info_dict:
        print("  {}={}".format(prop, account_info_dict[prop]))
else:
    print("failed to connect at account #{}, error code: {}".format(account, mt5.last_error()))

# запросим статус и параметры подключения
print(mt5.terminal_info())

# получим информацию о версии MetaTrader 5
print(mt5.version())

x= mt5.symbols_total()
print('количество всех финансовых инструментов в терминале MetaTrader 5=', x)

# получим все символы
symbols=mt5.symbols_get()
print('symbols=', symbols)

# получим бары с разных инструментов разными способами
eurusd_rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M30, datetime(2020, 1, 28, 13), 1000)

# DATA
print('eurusd_rates', eurusd_rates )

# завершим подключение к MetaTrader 5
mt5.shutdown()


Ergebnis:

(0, 0, '')
AccountInfo(login=17245465, trade_mode=2, leverage=500, limit_orders=500, margin_so_mode=0, trade_allowed=False, trade_expert=True, margin_mode=2, currency_digits=2, fifo_close=False, balance=0.0, credit=0.0, profit=0.0, equity=0.0, margin=0.0, margin_free=0.0, margin_level=0.0, margin_so_call=50.0, margin_so_so=20.0, margin_initial=0.0, margin_maintenance=0.0, assets=0.0, liabilities=0.0, commission_blocked=0.0, name='xxxxxxxxxxxxx', server='Alpari-MT5', currency='USD', ...)
Show account_info()._asdict():
  login=17045461
  trade_mode=2
  leverage=500
  limit_orders=500
  margin_so_mode=0
  trade_allowed=False
  trade_expert=True
  margin_mode=2
  currency_digits=2
  fifo_close=False
  balance=0.0
  credit=0.0
  profit=0.0
  equity=0.0
  margin=0.0
  margin_free=0.0
  margin_level=0.0
  margin_so_call=50.0
  margin_so_so=20.0
  margin_initial=0.0
  margin_maintenance=0.0
  assets=0.0
  liabilities=0.0
  commission_blocked=0.0
  name=ххххххх
  server=Alpari-MT5
  currency=USD
  company=Alpari International
TerminalInfo(community_account=True, community_connection=True, connected=True, dlls_allowed=False, trade_allowed=False, tradeapi_disabled=False, email_enabled=False, ftp_enabled=False, notifications_enabled=False, mqid=False, build=2489, maxbars=100000000, codepage=1251, ping_last=95766, community_balance=0.0, retransmission=5.305821665438467, company='Alpari International', name='Alpari MT5', language='Russian', path='C:\\Program Files\\Alpari MT5', ...)
(500, 2489, '12 Jun 2020')

количество всех финансовых инструментов в терминале MetaTrader 5= 43
symbols= (SymbolInfo(custom=False, chart_mode=0, select=True, ....
eurusd_rates None

Process finished with exit code 0
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Признак отрисовки ценового графика. Если установлено значение false, то отключается отрисовка любых атрибутов ценового графика и устраняются все отступы по краям графика: шкалы времени и цены, строка быстрой навигации, метки событий Календаря, значки сделок, тултипы индикаторов и баров, подокна индикаторов, гистограммы объёмов и т.д. Значение...
 
rale70:

Guten Tag!

Ich habe Bibliotheken verbunden, Python kommuniziert mit Mt5, ich erhalte Kontoinformationen, aber die Kurse werden nicht in irgendeiner Weise geladen. Können Sie mir helfen?

Python Version 3.7.6



Ergebnis:

Bitte geben Sie den Code korrekt ein (verwenden Sie die Schaltfläche Code)

 
Vladimir Karputov:

Bitte geben Sie den Code korrekt ein (verwenden Sie die Schaltfläche)

Vielen Dank für den Entwurf, ich werde ihn berücksichtigen.

Grund der Beschwerde: