history_deals_get

Abrufen der Deals aus der Handelshistorie innerhalb des angegebenen Intervalls mit der Möglichkeit, nach Ticket oder Position zu filtern.

Aufruf unter Angabe eines Zeitintervalls. Rückgabe aller Deals, die in das angegebene Intervall fallen.

history_deals_get(
   date_from,                // Zeitpunkt, ab dem die Deals abgerufen werden
   date_to,                  // Zeitpunkt, bis zu dem die Deals abgerufen werden
   group="GROUP"        // Filter zur Auswahl der Deals nach einem Symbol
   )

Aufruf unter Angabe des Auftragsticket. Rückgabe aller Deals mit dem angegebenen Auftragsticket der Eigenschaft DEAL_ORDER.

history_deals_get(
   ticket=TICKET        // Orderticket
)

Aufruf unter Angabe des Positionsticket. Rückgabe aller Deals mit dem angegebenen Positionsticket der Eigenschaft DEAL_POSITION_ID.

history_deals_get(
   position=POSITION    // Positionsticket
)

Parameter

date_from

[in]  Zeitpunkt, ab dem die Orders angefordert werden. Ausgewählt und gesetzt durch ein Objekt vom Typ 'datetime' oder der Anzahl der Sekunden seit dem 1970.01.01. Benötigter unbenannter Parameter werden als erstes angegeben.

date_to

[in]  Zeitpunkt, bis zu dem die Orders angefordert werden. Ausgewählt und gesetzt durch ein Objekt vom Typ 'datetime' oder der Anzahl der Sekunden seit dem 1970.01.01. Benötigter unbenannter Parameter werden als zweites angegeben.

group="GROUP"

[in]  Der Filter für die Gruppe der angeforderten Symbole. Optionale benannte Parameter. Wenn die Gruppe angegeben wurde, liefert die Funktion nur die Deals, die die angegebenen Kriterien für das Symbol erfüllen.

ticket=TICKET

[in] Ticket eines Deals (gespeichert in DEAL_ORDER), die alle Deals erhalten sollen. Optionaler Parameter. Wenn nicht angegeben, wird der Filter nicht angewendet.

position=POSITION

[in]  Ticket einer Position (gespeichert in DEAL_POSITION_ID), die alle Positionen erhalten sollen. Optionaler Parameter. Wenn nicht angegeben, wird der Filter nicht angewendet.

Rückgabewert

Rückgabe der Information als Struktur eines benannten Tupels (namedtuple). Im Falle eines Fehlers wird nichts zurückgegeben. Die Information über den Fehler kann über last_error() abgerufen werden.

Hinweis

Die Funktion ermöglicht den Erhalt aller Deals in der Historie innerhalb eines angegebenen Zeitraums in einem einzigen Aufruf, ähnlich wie bei HistoryDealsTotal und HistoryDealSelect.

Der Parameter group erlaubt das Aussortieren von Deals nach Symbolen. '*' kann am Anfang und am Ende einer Zeichenkette verwendet werden.

Der Parameter group kann mehrere durch Komma getrennte Bedingungen enthalten. Eine Bedingung kann mit '*' als Maske gesetzt werden. Das logische Negationssymbol '!' kann für einen Ausschluss verwendet werden. Alle Bedingungen werden sequentiell angewendet, d.h. Bedingungen der Aufnahme in eine Gruppe sollten zuerst angegeben werden, gefolgt von einer Ausschlussbedingung. Zum Beispiel bedeutet group="*, !EUR", dass zuerst alle Deals aller Symbole ausgewählt und diejenigen, die "EUR" in den Symbolnamen enthalten, danach ausgeschlossen werden.

Beispiel:

import MetaTrader5 as mt5
from datetime import datetime
import pandas as pd
pd.set_option('display.max_columns'500# darzustellende Spaltenanzahl
pd.set_option('display.width', 1500)      # maximale darzustellende Tabellenbreite
# Datenanzeige des Pakets von MetaTrader 5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
print()
# Verbindung zum MetaTrader 5 Terminal herstellen
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()
 
# Abrufen der Anzahl der Deals in der Historie
from_date=datetime(2020,1,1)
to_date=datetime.now()
# Abrufen der Deals der Symbole, deren Name "GBP" beinhalten innerhalb des angegebenen Zeitraums
deals=mt5.history_deals_get(from_dateto_date, group="*GBP*")
if deals==None:
    print("No deals with group=\"*USD*\", error code={}".format(mt5.last_error()))
elif len(deals)> 0:
    print("history_deals_get({}, {}, group=\"*GBP*\")={}".format(from_date,to_date,len(deals)))
 
# Abrufen der Deals der Symbole, deren Name weder "EUR" noch "GBP" beinhalten
deals = mt5.history_deals_get(from_date, to_date, group="*,!*EUR*,!*GBP*")
if deals == None:
    print("No deals, error code={}".format(mt5.last_error()))
elif len(deals) > 0:
    print("history_deals_get(from_date, to_date, group=\"*,!*EUR*,!*GBP*\") ="len(deals))
    # Anzeige der erhaltenen Deals 'as is'
    for deal in deals:
        print("  ",deal)
    print()
    # Anzeige dieser Deals als Tabelle mittels pandas.DataFrame
    df=pd.DataFrame(list(deals),columns=deals[0]._asdict().keys())
    df['time'] = pd.to_datetime(df['time'], unit='s')
    print(df)
print("")
 
# Abrufen aller Deals mit Bezug zur Position #530218319
position_id=530218319
position_deals = mt5.history_deals_get(position=position_id)
if position_deals == None:
    print("No deals with position #{}".format(position_id))
    print("error code ="mt5.last_error())
elif len(position_deals) > 0:
    print("Deals with position id #{}: {}".format(position_id, len(position_deals)))
    # Anzeige dieser Deals als Tabelle mittels pandas.DataFrame
    df=pd.DataFrame(list(position_deals),columns=position_deals[0]._asdict().keys())
    df['time'] = pd.to_datetime(df['time'], unit='s')
    print(df)
 
# Schließen der Verbindung zum MetaTrader 5
mt5.shutdown()
 
Ergebnis:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
history_deals_get(from_date, to_date, group="*GBP*") = 14
 
history_deals_get(from_date, to_date, group="*,!*EUR*,!*GBP*") = 7
   TradeDeal(ticket=506966741, order=0, time=1582202125, time_msc=1582202125419, type=2, entry=0, magic=0, position_id=0, reason=0, volume=0.0, pri ...
   TradeDeal(ticket=507962919, order=530218319, time=1582303777, time_msc=1582303777582, type=0, entry=0, magic=0, position_id=530218319, reason=0, ...
   TradeDeal(ticket=513149059, order=535548147, time=1583176242, time_msc=1583176242265, type=1, entry=1, magic=0, position_id=530218319, reason=0, ...
   TradeDeal(ticket=516943494, order=539349382, time=1583510003, time_msc=1583510003895, type=1, entry=0, magic=0, position_id=539349382, reason=0, ...
   TradeDeal(ticket=516943915, order=539349802, time=1583510025, time_msc=1583510025054, type=0, entry=0, magic=0, position_id=539349802, reason=0, ...
   TradeDeal(ticket=517139682, order=539557870, time=1583520201, time_msc=1583520201227, type=0, entry=1, magic=0, position_id=539349382, reason=0, ...
   TradeDeal(ticket=517139716, order=539557909, time=1583520202, time_msc=1583520202971, type=1, entry=1, magic=0, position_id=539349802, reason=0, ...
 
      ticket      order                time       time_msc  type  entry  magic  position_id  reason  volume    price  commission  swap     profit  fee  symbol comment external_id
0  506966741          0 2020-02-20 12:35:25  1582202125419     2      0      0            0       0    0.00  0.00000         0.0   0.0  100000.00  0.0                            
1  507962919  530218319 2020-02-21 16:49:37  1582303777582     0      0      0    530218319       0    0.01  0.97898         0.0   0.0       0.00  0.0  USDCHF                    
2  513149059  535548147 2020-03-02 19:10:42  1583176242265     1      1      0    530218319       0    0.01  0.95758         0.0   0.0     -22.35  0.0  USDCHF                    
3  516943494  539349382 2020-03-06 15:53:23  1583510003895     1      0      0    539349382       0    0.10  0.93475         0.0   0.0       0.00  0.0  USDCHF                    
4  516943915  539349802 2020-03-06 15:53:45  1583510025054     0      0      0    539349802       0    0.10  0.66336         0.0   0.0       0.00  0.0  AUDUSD                    
5  517139682  539557870 2020-03-06 18:43:21  1583520201227     0      1      0    539349382       0    0.10  0.93751         0.0   0.0     -29.44  0.0  USDCHF                    
6  517139716  539557909 2020-03-06 18:43:22  1583520202971     1      1      0    539349802       0    0.10  0.66327         0.0   0.0      -0.90  0.0  AUDUSD                    
 
Deals with position id #530218319: 2
      ticket      order                time       time_msc  type  entry  magic  position_id  reason  volume    price  commission  swap  profit  fee  symbol comment external_id
0  507962919  530218319 2020-02-21 16:49:37  1582303777582     0      0      0    530218319       0    0.01  0.97898         0.0   0.0    0.00  0.0  USDCHF                    
1  513149059  535548147 2020-03-02 19:10:42  1583176242265     1      1      0    530218319       0    0.01  0.95758         0.0   0.0  -22.35  0.0  USDCHF   

Siehe auch

history_deals_total, history_orders_get