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

 
Renat Fatkhullin:

Seit Version 5.0.15 arbeitet die Python-Bibliothek in einem neuen Format, das nicht mit dem alten Format kompatibel ist und die neueste Beta-Version des Terminals erfordert.

Wir werden in Kürze eine aktualisierte Dokumentation und Beispiele veröffentlichen.

Ist es möglich, die alte Version der Bibliothek vorübergehend herunterzuladen?

 
Dmitri Custurov:

Ist es möglich, vorübergehend eine alte Version der Bibliothek herunterzuladen?

https://pypi.org/project/MetaTrader5/5.0.11/#files

MetaTrader5
MetaTrader5
  • 2020.01.24
  • pypi.org
Download the file for your platform. If you're not sure which to choose, learn more about installing packages. Files for MetaTrader5, version 5.0.11 Filename, size File type Python version Upload date Hashes MetaTrader5-5.0.11-cp36-cp36m-win32.whl (31.7 kB) MetaTrader5-5.0.11-cp36-cp36m-win_amd64.whl (43.3 kB...
 

Ich kann es mir nicht verkneifen, eine Meinung zu Integrationen zu äußern. Ich bin mit beiden Händen dafür. Python, neuronale Netze, KI, Compiler-Erweiterungen und so weiter und so fort...

Aber es gibt ein ABER.

Egal wie cool die Entwicklungsumgebung ist, sie sollte massenhaft sein, oder? Und wie kann sie Masse sein, wenn ihr Instrumentarium aus gewöhnlichen Primitiven besteht? NEIN - keine gewöhnlichen Primitiven, sondern GENISCHE PRIMITIVEN. SUPERKOMPLEXE PRIMITIVE.

Nehmen wir die Klasse CCanvas - sie ist eine Zusammenstellung von Grafik-Primitiven. Können wir viele von ihnen zusammenstellen? Sehr viel. Aber wie viel Köpfchen und Arbeit ist dafür nötig? - SEHR VIEL. Ein Meer von Köpfen und Arbeit, um das DING zu schaffen. Wie viele sind dazu in der Lage? - Nur ein paar.

Nochmals die Hauptfrage: Wie konnten die Entwicklungsumgebungstools populär werden, wenn sie APRIORI das Vorhandensein von ungewöhnlichen Designfähigkeiten in einem Menschen voraussetzen? Eine massenhafte Verfügbarkeit kommt in diesem Fall nicht in Frage.

Ich will das kurz umschreiben:

Wenn eine Person mit Python, C++, MQL5, Algotrading vertraut ist und über außergewöhnliche Designfähigkeiten verfügt, welchen Unterschied macht es dann für sie, in welcher professionellen Umgebung sie ihr DING erstellt? Er wird ein MINIMUM an Funktionen verwenden und ein MAXIMUM an Ergebnissen erzielen. Andere werden versuchen, alles zu verwenden, und werden aufgrund der Komplexitätsschwelle des Toolkits nichts schaffen.

Auf wen und was müssen Sie sich also konzentrieren?

 

Version niedriger als die niedrigste verfügbare 5.0.10

444

Offenbar müssen wir auf Updates warten.

 

Grüße an alle!

Warum erhalte ich diesen Fehler, obwohl ich die Beispiele korrekt befolgt habe?

Grüße an alle!

Warum erhalte ich diesen Fehler, obwohl ich die Beispiele korrekt befolgt habe?


 
Renat Fatkhullin:
Ist Python in Visual Studio aktiviert?

Aufgrund des Zoos von Python, das indirekt oder automatisch von verschiedenen Systemen eingesetzt wird, ist es einfach, Bibliotheken in einer anderen Python-Kopie zu installieren und dann zu versuchen, andere Kopien auszuführen.

Sortieren Sie bitte die Pythons aus. Wer auf Python umsteigt, muss sich darauf einstellen, sich den Rest seines Lebens mit Bibliotheken, Abhängigkeiten und Inkompatibilitäten herumzuschlagen.

Das ist das Schicksal eines Pythonisten - eine Umgebung von Bibliotheken aufzubauen und zu beten, dass ein Bibliotheksupdate nicht eine weitere unbekannte Anzahl von Bibliotheken durcheinander bringt.

Es gibt keinen Python-Zoo. Es gibt eine Umgebung. Es kann mehr als eine Umgebung geben. Der Benutzer wählt aus, welche Umgebung er verwenden möchte.

Die Python-Umgebung sollte vor der Ausführung eines Skripts initialisiert werden.

Ich habe dies in meiner Bibliothek berücksichtigt. Hier ist der Code der Umgebungsinitialisierungsfunktion.

MetaTrader 5 (MQL5) + Python 3 DLL для Forex, CFD и Futures
  • roffild.com
Использование MetaTrader с Python 3 на финансовых фондовых биржах, Forex, CFD и Futures. Из MetaTrader можно получать котировки в Python, но нет полноценной связи между ними. Пост одного из разработчиков. Главная идея и отличие этой обертки от остальных: обмен данными между MQL и Python через заранее созданные функции. Это самый быстрый и...
 

Vielleicht ist es an der Zeit, den MetaEditor aufzugeben? Warum sollten Sie verschiedene Technologien in Ihre IDE packen, wenn Sie eine vollwertige fertige IDE bekommen können?

Heutzutage erstellt jeder ein Modul für die IDE:

microsoft visual studio code

jetbrains intellij idee

 
Roffild:

Es gibt keinen Python-Zoo. Es gibt das Konzept der Umwelt. Auf einem Computer kann es mehrere Umgebungen geben. Es ist dem Benutzer überlassen, welche Umgebung er verwenden möchte.

Die Python-Umgebung sollte vor der Ausführung eines Skripts initialisiert werden.

Ich habe dies in meiner Bibliothek berücksichtigt. Hier ist der Code der Umgebungsinitialisierungsfunktion.

Wir unterstützen problemlos Umgebungen. Schauen Sie sich bitte die Compiler-Einstellungen im Editor an.

Ich meinte das mit dem Zoo in dem Sinne, dass das Terminal eine Umgebung auswählen kann (z.B. den Standardpfad), und die Bibliotheken manuell vom Benutzer in eine andere Umgebung gestellt werden.


Morgen werden wir eine neue Beta-Version des Terminals und eine neue Python-Bibliothek veröffentlichen. Alle alten Methoden und Beispiele sind unbrauchbar, da wir die API und die Bibliothek von Grund auf neu geschrieben haben.

Der neue Satz von api ist umfangreich und ermöglicht es Ihnen, den Handel vollständig zu verwalten und hat Zugang zu offenen Positionen und Geschichte.

Sie können jetzt vollwertige Metatrader-Roboter direkt in Python schreiben.

 

Neue Version von MetaTrader 5 für Python 5.0.18 und MetaTrader 5 build 2319 beta:

  • MT5 Beta-Download über Hilfe -> Beta-Version prüfen
  • python-Bibliothek:
    pip install --upgrade metatrader5
    

Da sich alle APIs geändert haben, funktionieren die alten Beispiele nicht mehr.

Hier ist der neue Funktionsumfang:

initialize(path=None)                              Establish connection with the MetaTrader 5 Terminal
wait()                                             Wait for the MetaTrader 5 Terminal to connect to a broker's server
shutdown()                                         Disconnect from the MetaTrader 5 Terminal

version()                                          Get the MetaTrader 5 Terminal version
terminal_info()                                    Get the parameters of the MetaTrader 5 terminal
account_info()                                     Returns information of current account

copy_ticks_from(symbol, from, count, flags)                Get ticks starting from the specific date
copy_ticks_range(symbol, from, to, flags)                  Get ticks from the specified period
copy_rates_from(symbol, timeframe, from, count)            Get bars starting from the specific date
copy_rates_from_pos(symbol, timeframe, start_pos, count)   Get bars starting from the specified position
copy_rates_range(symbol, timeframe, date_from, date_to)    Get bars from the specified period

positions_total()                                          Returns the number of open positions
positions_get([symbol=\"SYMBOL\"],[ticket=TICKET])         Returns all open positions, can be filtered by symbol or ticket

orders_total()                                             Returns the number of orders
orders_get([symbol=\"SYMBOL\"],[ticket=TICKET])            Returns all orders, can be filtered by symbol or ticket

history_orders_total(from, to)                             Returns the number of orders in selected range from the history
history_orders_get(from, to)                               Returns orders in selected range from the history or filtered by position id, ticket

history_deals_total(from, to)                              Returns the number of deals in selected range from the history
history_deals_get(from, to)                                Returns deals in selected range from the history or filtered by position id, ticket

order_check(request)                                                Checks if there are enough funds to execute the required trade operation
order_send(request)                                                 Sends trade requests to a server
order_calc_margin(action, symbol, volume, price)                    Calculates the margin required for the specified order
order_calc_profit(action, symbol, volume, price_open, price_close)  Calculates the profit for the current account, in the current market conditions, based on the parameters passed

symbol_info(symbol)                                        Returns full information for a specified symbol
symbol_info_tick(symbol)                                   Returns current prices of a specified symbol
symbol_select(symbol,[enable])                             Selects a symbol in the Market Watch window or removes a symbol from the window

Beispiel:

import MetaTrader5 as mt5
import time

mt5.initialize()
mt5.wait()

dev = 0.00010;
symbol = "EURUSD"
buy_price = 0

mt5.symbol_select(symbol)

time.sleep(1)
p = mt5.symbol_info_tick(symbol)
prev_price = p.ask

while True:
    p = mt5.symbol_info_tick(symbol)
    print(p.bid,'/',p.ask)
    
    if p.ask > prev_price and buy_price == 0:
            print("Buy ", p.ask)
            r = mt5.Buy(symbol, 0.01)
            if r.retcode == mt5.TRADE_RETCODE_DONE:
                buy_price = p.ask;
    elif buy_price > 0 and p.ask + dev < buy_price:
        print("Buy(close) ", p.bid)
        mt5.Close(symbol)
        buy_price = 0

    prev_price = p.ask
    time.sleep(1)

mt5.shutdown()
 
Renat Fatkhullin:

Neue Version von MetaTrader 5 für Python 5.0.18 und MetaTrader 5 build 2319 beta:

  • MT5 Beta-Download über Hilfe -> Beta-Version prüfen
  • python-Bibliothek:

Da sich alle APIs geändert haben, funktionieren die alten Beispiele nicht mehr.

Alles verändert sich dynamisch.

Ich möchte nicht in dieses Chaos verwickelt werden.

Wahrscheinlich lohnt es sich, auf dieWinML-Implementierung mit ONNX zu warten.Und davor, die ML-Theorie zu begreifen. Zum Glück gibt es inzwischen eine Fülle von Literatur und verschiedenen Kursen.

Grund der Beschwerde: