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

 
Дмитрий Прокопьев:

Danke, ich habe dieses Beispiel gesehen, es funktioniert.

Ich spreche nur über etwas anderes.


positions_get - gibt mir eine Liste von tradePosition zurück. Im Prinzip ist das in Ordnung, man kann es in Pandas einfügen und es funktioniert gut.

Aber es ist nicht auf einen Panda beschränkt, und wenn du so etwas haben willst, dann musst du das tun:

[{'ticket': 164661016, 'time': 1585075408, 'time_msc': 1585075408163, 'time_update': 1585075408, 'time_update_msc': 1585075408163, 'type': 1, 'magic': 0, 'identifier': 164661016, 'reason': 0, 'volume': 0.01, 'price_open': 120.306, 'sl': 0.0, 'tp': 0.0, 'price_current': 120.328, 'swap': 0.0, 'profit': -0.2, 'symbol': 'EURJPY', 'comment': '', 'external_id': ''}, 
{'ticket': 164661051, 'time': 1585075426, 'time_msc': 1585075426062, 'time_update': 1585075426, 'time_update_msc': 1585075426062, 'type': 0, 'magic': 0, 'identifier': 164661051, 'reason': 0, 'volume': 0.01, 'price_open': 1.07798, 'sl': 0.0, 'tp': 0.0, 'price_current': 1.07881, 'swap': 0.0, 'profit': 0.83, 'symbol': 'EURUSD', 'comment': '', 'external_id': ''}]

Schauen Sie sich das Beispiel für positions_get an, es verwendet mehrere Zeichenketten.

Beispiel:

MetaTrader5 alsmt5 importieren
importpandas aspd.
pd.set_option('display.max_columns',500)# wie viele Spalten angezeigt werden
pd.set_option('display.width', 1500)# maximale Breite der anzuzeigenden Tabelle
# Daten des MetaTrader5-Pakets anzeigen
print("MetaTrader5 Paket Autor: ",mt5.__author__)
print("MetaTrader5-Paketversion: ",mt5.__version__)
drucken()
# Verbindung zum Terminal MetaTrader 5 herstellen
wenn nichtmt5.initialize():
print("initialize() fehlgeschlagen, Fehlercode =",mt5.last_error())
quit()

# Offene Positionen auf USDCHF erhalten
positions=mt5.positions_get(symbol="USDCHF")
wennPositionen==None:
print("Keine Positionen auf USDCHF, Fehlercode={}".format(mt5.last_error()))
elif len(positions)>0:
print("Gesamtpositionen auf USDCHF =",len(Positionen))
# alle offenen Stellen drucken
für Position inPositionen:
drucken(Position)

# Liste der Positionen auf Symbolen, die "*USD*" in ihrem Namen enthalten
usd_positions=mt5.positions_get(group="*USD*")
wennusd_positions==None:
print("Keine Positionen mit group=\"*USD*\", error code={}".format(mt5.last_error()))
elif len(usd_positions)>0:
print("positions_get(group=\"*USD*\")={}".format(len(usd_positions))
# Ausgabe dieser Positionen als Tabelle mit pandas.DataFrame
df=pd.DataFrame(list(usd_positions),columns=usd_positions[0]._asdict().keys())
df['time'] = pd.to_datetime(df['time'], unit='s')
df.drop(['time_update', 'time_msc', 'time_update_msc', 'external_id'], axis=1, inplace=True)

drucken(df)

# Verbindung zum Terminal MetaTrader 5 beenden
mt5.shutdown()


Ergebnis:
MetaTrader5-Paket Autor: MetaQuotes Software Corp.
MetaTrader5 Paket Version: 5.0.29

positions_get(group="*USD*")=5
Ticketzeit typ magischer identifikator grundvolume price_open sl tp price_current swap profit symbol comment
0 548297723 2020-03-18 15:00:55 1 0 548297723 3 0.01 1.09301 1.11490 1.06236 1.10101 -0,10 -8,00 EURUSD
1 548655158 2020-03-18 20:31:26 0 0 548655158 3 0.01 1.08676 1.06107 1.12446 1.10098 -0,08 14,22 EURUSD
2 548663803 2020-03-18 20:40:04 0 0 548663803 3 0.01 1.08640 1.06351 1.11833 1.10098 -0,08 14,58 EURUSD
3 548847168 2020-03-19 01:10:05 0 0 548847168 3 0.01 1.09545 1.05524 1.15122 1.10098 -0,06 5,53 EURUSD
4 548847194 2020-03-19 01:10:07 0 0 548847194 3 0.02 1,09536 1,04478 1,16587 1,10098 -0,08 11,24 EURUSD

Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
  • www.mql5.com
ticket                time  type  magic  identifier  reason  volume  price_open       sl       tp  price_current  swap  profit  symbol comment 0  548297723 2020-03-18 15:00:55     1      0   548297723       3    0.01     1.09301  1.11490  1.06236        1.10101 -0.10   -8.00  EURUSD        ...
 

Die Hilfe wurde um Beschreibungen von 3 neuen Funktionen ergänzt:

Darüber hinaus wurden die Beschreibungen vieler Funktionen im Zuge ihrer Weiterentwicklung geändert. Fast alle Beispiele wurden umgeschrieben, um die neue Funktionalität widerzuspiegeln. Die Beispiele für die folgenden Funktionen wurden jedoch noch nicht auf der Website aktualisiert, dies wird in Kürze nachgeholt:

Документация по MQL5: Интеграция / MetaTrader для Python / last_error
Документация по MQL5: Интеграция / MetaTrader для Python / last_error
  • www.mql5.com
позволяет получить код ошибки в случае неуспешного выполнения какой-либо функции библиотеки MetaTrader 5. Является аналогом GetLastError(), но используются свои коды ошибок. Возможные значения:
 
Дмитрий Прокопьев:

Meine Herren, die Jungs im nächsten Thread stellen Fragen über die Libs:

URL:https://www.mql5.com/en/forum/306742/page11#comment_15595095

Können Sie mir Ihre Unterstützung geben?

Beantwortet in diesem Thema

 
Rashid Umarov:

Schauen Sie sich das Beispiel für positions_get an, es werden mehrere Zeichenketten verwendet

Ich danke Ihnen!

 
Rashid Umarov:

Beantwortet in diesem Thema

Rashid, sagen Sie mir, ist es möglich, den Tester mit MetaTrader5 zu verwenden?

Bei der Modellierung im Tester gibt es ein sehr effektives Element - die Parallelisierung von Simulationsaufgaben in einer lokalen Netzwerkfarm oder

Ich möchte die Ressource des Testers mit MetaTrader5 verwenden.

 
Vladimir Perervenko:

Warum brauchen Sie das? Kann man das nicht in Python berechnen? Ich bin erstaunt.

Ich bin mit Python überhaupt nicht vertraut, ich bin gerade dabei, von Lua zu Python zu wechseln, also lerne ich das Zeug...
 

Die Hilfedatei zeigt, wie man die Bibliothek installiert und aktualisiert - https://www.mql5.com/ru/docs/integration/python_metatrader5

Установка пакета в командной строке:

pip install MetaTrader5

Aktualisieren Sie das Paket über die Befehlszeile:

pip install --aktualisieren MetaTrader5



Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
 
Rashid Umarov:

Im Hilfebereich erfahren Sie, wie Sie die Bibliothek installieren und aktualisieren können - https://www.mql5.com/ru/docs/integration/python_metatrader5

Um ehrlich zu sein, ist das nicht ganz klar. Weil es ohne VS nicht funktioniert, und was genau von VS benötigt wird - ist nicht klar (weil ich nicht das ganze Studio installieren möchte, da es nicht benötigt wird);

Wenn Sie das klären können, wäre das großartig.

 
Alexey Kozitsyn:

Um ehrlich zu sein, ist das nicht ganz klar. Denn ohne VS funktioniert es nicht, und was genau von VS benötigt wird, ist nicht klar (denn ich möchte nicht das ganze Studio installieren, weil ich es nicht brauche);

Wenn Sie das näher erläutern, wäre das großartig.

Warum brauchen Sie VS? Python benötigt keine VS.

Googeln Sie etwas wie window python und Sie sind startklar.

 

Meine Herren Entwickler, im nächsten Thread wurde ein guter Punkt angesprochen.

Dies gilt für die**kwargs-Verarbeitung beim Schreiben von Tests - dies ist ein sehr wichtiger Punkt.

https://www.mql5.com/en/forum/306742/page12#comment_15660939