copy_rates_from

Abrufen der Bars vom MetaTrader 5 Terminal, beginnend mit dem angegebenen Datum.

copy_rates_from(
   symbol,       // Symbolname
   timeframe,    // Zeitrahmen
   date_from,    // Datum der Anfangsbar
   count         // Anzahl der Bars
   )

Parameter

symbol

[in]  Name des Finanzinstruments, zum Beispiel "EURUSD". Benötigter unbenannter Parameter.

timeframe

[in]  Zeitrahmen der benötigten Bars Bestimmt durch einen Wert der Enumeration TIMEFRAME. Benötigter unbenannter Parameter.

date_from

[in]  Eröffnungszeitpunkt der ersten Bar der gewünschten Zeitspanne. Ausgewählt und gesetzt durch ein Objekt vom Typ 'datetime' oder der Anzahl der Sekunden seit dem 1970.01.01. Benötigter unbenannter Parameter.

count

[in]  Verlangte Anzahl der Bars. Benötigter unbenannter Parameter.

Rückgabewert

Rückgabe de Bars als numpy Array mit den angegebenen Spalten von time, open, high, low, close, tick_volume, spread und real_volume. Im Falle eines Fehlers wird nichts zurückgegeben. Die Information über den Fehler kann über last_error() abgerufen werden.

Hinweis

Siehe auch die Funktion CopyRates() für weitere Information.

Nur die Daten zurück, deren Datum kleiner (früher) oder gleich dem angegebenen Datum ist. Dabei wird das Interval mit Genauigkeit bis zur Sekunde vorgegeben und berücksichtigt. D.h. die Zeit der Öffnung jeder Bar ist immer gleich oder kleiner als das angegebene Datum.

MetaTrader 5 Terminal stellt die Balken nur innerhalb der Historie zur Verfügung, die einem Benutzer auf den Charts zur Verfügung stehen. Die Anzahl der dem Benutzer zur Verfügung stehenden Balken wird durch den Parameter "Max. Balken im Chart" bestimmt.

Beim Erstellen des Objekts 'datetime' verwendet Python die lokale Zeitzone, MetaTrader 5 hingegen die Zeitzone von UTC (ohne Zeitverschiebung). Daher sollte 'datetime' in UTC-Zeit für die Funktionen erstellt werden, die die Zeit benötigen. Die Daten vom MetaTrader 5 Terminal haben UTC-Zeit.  

TIMEFRAME ist eine Enumeration mit den möglichen Zeitrahmen eines Charts

ID

Beschreibung

TIMEFRAME_M1

1 Minute

TIMEFRAME_M2

2 Minuten

TIMEFRAME_M3

3 Minuten

TIMEFRAME_M4

4 Minuten

TIMEFRAME_M5

5 Minuten

TIMEFRAME_M6

6 Minuten

TIMEFRAME_M10

10 Minuten

TIMEFRAME_M12

12 Minuten

TIMEFRAME_M12

15 Minuten

TIMEFRAME_M20

20 Minuten

TIMEFRAME_M30

30 Minuten

TIMEFRAME_H1

1 Stunde

TIMEFRAME_H2

2 Stunden

TIMEFRAME_H3

3 Stunden

TIMEFRAME_H4

4 Stunden

TIMEFRAME_H6

6 Stunden

TIMEFRAME_H8

8 Stunden

TIMEFRAME_H12

12 Stunden

TIMEFRAME_D1

1 Tag

TIMEFRAME_W1

1 Woche

TIMEFRAME_MN1

1 Monat

 

Beispiel:

from datetime import datetime
import MetaTrader5 as mt5
# Datenanzeige des Pakets von MetaTrader 5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
 
# Importieren des Moduls 'pandas' für die Darstellung der erhaltenen Daten in Tabellenform
import pandas as pd
pd.set_option('display.max_columns', 500# Anzahl der anzuzeigenden Spalten
pd.set_option('display.width', 1500)      # maximale Tabellenbreite der Darstellung
# Importieren der Moduls pytz für die Arbeit mit Zeitzonen
import pytz
 
# Verbindung herstellen zum MetaTrader 5 Terminal
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()
 
# Setzen der Zeitzone auf UTC
timezone = pytz.timezone("Etc/UTC")
# Erstellen des Objekts 'datetime' in UTC-Zeit, um die lokale Zeitzone zu vermeiden
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# Abrufen von 10 Bars von EURUSD H4 ab dem 01.10.2020 in UTC-Zeit
rates = mt5.copy_rates_from("EURUSD"mt5.TIMEFRAME_H4utc_from10)
 
# Schließen der Verbindung zum MetaTrader 5
mt5.shutdown()
# Anzeigen von jedem erhaltenen Datenelement in einer neuen Zeile
print("Anzeige der erhaltenen Daten 'as is'")
for rate in rates:
    print(rate)
 
# Erstellen von DataFrame aus den erhaltenen Daten
rates_frame = pd.DataFrame(rates)
# Konvertieren der Zeit in Sekunden im Datumsformat
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')
                           
# Datenanzeige
print("\nAnzeige von dataframe mit Daten")
print(rates_frame)  
 
 
Ergebnis:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Datenanzeige 'as is'
(1578484800, 1.11382, 1.11385, 1.1111, 1.11199, 9354, 1, 0)
(1578499200, 1.11199, 1.11308, 1.11086, 1.11179, 10641, 1, 0)
(1578513600, 1.11178, 1.11178, 1.11016, 1.11053, 4806, 1, 0)
(1578528000, 1.11053, 1.11193, 1.11033, 1.11173, 3480, 1, 0)
(1578542400, 1.11173, 1.11189, 1.11126, 1.11182, 2236, 1, 0)
(1578556800, 1.11181, 1.11203, 1.10983, 1.10993, 7984, 1, 0)
(1578571200, 1.10994, 1.11173, 1.10965, 1.11148, 7406, 1, 0)
(1578585600, 1.11149, 1.11149, 1.10923, 1.11046, 7468, 1, 0)
(1578600000, 1.11046, 1.11097, 1.11033, 1.11051, 3450, 1, 0)
(1578614400, 1.11051, 1.11093, 1.11017, 1.11041, 2448, 1, 0)
 
Darstellung von dataframe mit Daten
                 time     open     high      low    close  tick_volume  spread  real_volume
0 2020-01-08 12:00:00  1.11382  1.11385  1.11110  1.11199         9354       1            0
1 2020-01-08 16:00:00  1.11199  1.11308  1.11086  1.11179        10641       1            0
2 2020-01-08 20:00:00  1.11178  1.11178  1.11016  1.11053         4806       1            0
3 2020-01-09 00:00:00  1.11053  1.11193  1.11033  1.11173         3480       1            0
4 2020-01-09 04:00:00  1.11173  1.11189  1.11126  1.11182         2236       1            0
5 2020-01-09 08:00:00  1.11181  1.11203  1.10983  1.10993         7984       1            0
6 2020-01-09 12:00:00  1.10994  1.11173  1.10965  1.11148         7406       1            0
7 2020-01-09 16:00:00  1.11149  1.11149  1.10923  1.11046         7468       1            0
8 2020-01-09 20:00:00  1.11046  1.11097  1.11033  1.11051         3450       1            0
9 2020-01-10 00:00:00  1.11051  1.11093  1.11017  1.11041         2448       1            0

Siehe auch

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range