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

 
Rashid Umarov:

Prüfen Sie, ob es sich bei Ihrem Konto um ein Netting- oder Hedging-Konto handelt. Beim Netting ändert sich das Ticket einer bereits bestehenden Position nicht, und es macht keinen Sinn, eine Position nach der Aktie nach Auftragsnummer zu suchen.

Yep, alles klar, angeschaut ja, im Falle der Eröffnung einer Position auf einem Netting-Ticket, entspricht der Position, die eröffnet wird. Der Punkt ist klar.

 
Almaz:
Fehlercode 1, dies ist Erfolg mt5.RES_S_OK, der nächste Build wird [1, 'Erfolg'] schreiben. Codes mit negativen Werten sind Fehler mt5.RES_E_xxx.

Ja, danke - es ist klar, warum die Leerzeile da war.

 
Hallo, gibt es ein Update zu Beitrag #517 über ein Update vom Terminal über newbar?
 
fbrand:
Hallo, gibt es ein Update zu Beitrag #517 über den Erhalt eines Updates vom Terminal über newbar?

Bislang musste ich mit der Zeitkontrolle arbeiten:

if mt5.symbol_info_tick(symbol).time % (60 * timefr) == 0:
...

Nicht sehr praktisch. Aber als vorübergehende Option ist es in Ordnung.

 
Vladimir Perervenko:

Bislang musste ich mit der Zeitkontrolle arbeiten:

Nicht sehr praktisch. Aber als vorübergehende Option ist es in Ordnung.

Nicht geplant. Prüfen Sie mit einem Timer oder in einer Schleife auf neue Takte.

 
Rashid Umarov :

Nicht geplant. Prüfen Sie mit einem Timer oder in einer Schleife auf neue Takte.


Wenn Sie nach Vladimir verwenden, erhalten wir dann nicht das genaue Volumen, sondern nur das Volumen dieses Ticks bei der Abfrage?


Und wenn Sie dann die neuen Balken in EA verwenden, um das Python-Skript aufzurufen, und das Skript zeigt auf mehr als ein Symbol, werden alle neuen Balken für alle Symbole im Terminal zur gleichen Zeit ausgeführt, oder sollte ich ein Python-Skript und Berater für jedes Symbol erstellen?


Danke

ps: Entschuldigung, ich musste ins Englische wechseln, da der Übersetzer die Wörter durcheinander gebracht hat
Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
 

Verwendung vonhistory_orders_get().

In der Dokumentation explizit kopieren-einfügen :)(https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5historyordersget_py)

Und es gibt eine Merkwürdigkeit in der Verwendung:

    from_date = datetime(2020,1,1)
    to_date = datetime.now()
    if mt5.initialize(acc['path'], login=login, server=acc['server'], password=acc['pass']):
        orders = mt5.history_orders_get(from_date, to_date)    
        if len(orders) > 0:
            orders_frame = pd.DataFrame(orders)
            print(orders_frame.head())

Ergebnis:

 python.exe .\history-deal-mt-1.py
         0           1              2           3              4  5  6  7  8  9      10       11  12  13    14   15       16      17      18       19   20      21             22 23
0  4308935  1583603265  1583603265527  1583603267  1583603267535  0  0  0  0  4  234000  4308935   0   3  0.01  0.0     0.00     0.0     0.0  9128.00  0.0  BTCUSD  python script
1  4308936  1583603511  1583603511561  1583603511  1583603511561  0  1  0  1  4  234000  4308935   0   5  0.01  0.0  9128.01     0.0     0.0  9128.01  0.0  BTCUSD  [tp 9128.010]
2  4308937  1583603550  1583603550455  1583603552  1583603552460  0  1  0  0  4       0  4308937   0   0  0.01  0.0     0.00     0.0     0.0  9127.50  0.0  BTCUSD
3  4308938  1583603969  1583603969250  1583603971  1583603971253  0  0  0  0  4  234000  4308938   0   3  0.01  0.0     0.00  9135.5  9142.5  9139.00  0.0  BTCUSD  python script
4  4308939  1583603974  1583603974183  1583603974  1583603974188  0  1  0  1  4  234000  4308938   0   4  0.01  0.0  9135.50     0.0     0.0  9135.50  0.0  BTCUSD  [sl 9135.500]

Insgesamt werden Daten angezeigt, aber wo, was - man kann nur raten.

Leute, pls - fügen Sie etwas wie _fields oder as_dict() oder __dict__ zu TradeOrder (und ähnlich).

    Point = collections.namedtuple('Point', ['x', 'y', 'val'])    
    print(Point._fields)
python.exe .\history-deal-mt-1.py
('x', 'y', 'val')

Wirklich, das ist jetzt nicht praktisch.

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

Verwendung vonhistory_orders_get().

In der Dokumentation explizit kopieren-einfügen :)(https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5historyordersget_py)

Aktualisieren Sie die Hilfe oder gehen Sie auf den Link

 
Rashid Umarov:

Es gibt keine Pläne. Prüfen Sie neue Takte mit einem Timer oder in einer Schleife.

Können Sie die Zeitschaltuhr genauer beschreiben?

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

Folks, pls - fügen Sie etwas wie _fields oder as_dict() oder __dict__ zu TradeOrder (und ähnlich).

Wirklich, das ist jetzt nicht praktisch.

In Version 5.0.27 ist dies bereits der Fall, alle Struktursequenzen (analog zu benannten Tupeln für die C-API) haben die Methode _asdict()

sym = mt5.symbol_info("EURUSD")._asdict()
for i in sym:
   print(i, '=', sym[i])