copy_ticks_from

Abrufen von Ticks aus dem MetaTrader 5 Terminal ab dem angegebenen Zeitpunkt.

copy_ticks_from(
   symbol,       // Symbolname
   date_from,    // Anfangsdatum, ab dem die Ticks angefordert werden
   count,        // Anzahl der benötigten Ticks
   flags         // Kombination der Flags, die den Typ der benötigten Ticks spezifizieren
   )

Parameter

symbol

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

from

[in]  Zeitpunkt, ab dem die Ticks benötigt 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.

count

[in]  Anzahl der benötigten Ticks. Benötigter unbenannter Parameter.

flags

[in]  Die Flag, die den Typ der benötigten Ticks spezifiziert. COPY_TICKS_INFO – Ticks mit den Änderungen von Bid und/oder Ask, COPY_TICKS_TRADE – Ticks mit den Änderungen von Last und Volume, COPY_TICKS_ALL – alle Ticks. Die Werte der Flags sind beschreiben in der Enumeration COPY_TICKS. Benötigter unbenannter Parameter.

Rückgabewert

Rückgabe der Ticks als numpy Array mit den benannten Spalten time, bid, ask, last und flags. Die Werte der 'flags' kann eine Kombination der Flags der Enumeration TICK_FLAG sein. Im Falle eines Fehlers wird nichts zurückgegeben. Die Information über den Fehler kann über last_error() abgerufen werden.

Hinweis

Siehe die Funktion CopyTicks für weitere Informationen.

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.

COPY_TICKS definiert den Typ der Ticks, die mit den Funktionen copy_ticks_from() und copy_ticks_range() angefordert werden können.

ID

Beschreibung

COPY_TICKS_ALL

alle Ticks

COPY_TICKS_INFO

Ticks mit Bid- und/oder Ask-Preisänderungen

COPY_TICKS_TRADE

Ticks mit letzter Preisänderung und/oder Volumensänderung

TICK_FLAG definiert die möglichen Flags der Ticks. Diese Flags werden zur Beschreibung der mit den Funktionen copy_ticks_from() und copy_ticks_range() erhaltenen Flags verwendet.

ID

Beschreibung

TICK_FLAG_BID

Bid-Preisänderung

TICK_FLAG_ASK

Ask-Preisänderung

TICK_FLAG_LAST

Letzte Preisänderung

TICK_FLAG_VOLUME

Volumensänderung

TICK_FLAG_BUY

letzte Kaufpreisänderung

TICK_FLAG_SELL

letzte Verkaufpreisänderung

 

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)
# Anfordern von 100 000 EURUSD Ticks ab 10.01.2019 in UTC-Zeit
ticks = mt5.copy_ticks_from("EURUSD"utc_from100000, mt5.COPY_TICKS_ALL)
print("Ticks received:",len(ticks))
 
# Schließen der Verbindung zum MetaTrader 5 Terminal
mt5.shutdown()
 
# Darstellung der Daten von jedem Tick in einer neuen Zeile
print("Display obtained ticks 'as is'")
count = 0
for tick in ticks:
    count+=1
    print(tick)
    if count >= 10:
        break
 
# Erstellen des DataFrame aus den erhaltenen Daten
ticks_frame = pd.DataFrame(ticks)
# Konvertieren der Zeit in Sekunden im Datumsformat
ticks_frame['time']=pd.to_datetime(ticks_frame['time'], unit='s')
 
# Datenanzeige
print("\nDisplay dataframe with ticks")
print(ticks_frame.head(10))  
 
Ergebnis:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Ticks received: 100000
Anzeige der erhaltenen Ticks 'as is'
(1578614400, 1.11051, 1.11069, 0., 0, 1578614400987, 134, 0.)
(1578614402, 1.11049, 1.11067, 0., 0, 1578614402025, 134, 0.)
(1578614404, 1.1105, 1.11066, 0., 0, 1578614404057, 134, 0.)
(1578614404, 1.11049, 1.11067, 0., 0, 1578614404344, 134, 0.)
(1578614412, 1.11052, 1.11064, 0., 0, 1578614412106, 134, 0.)
(1578614418, 1.11039, 1.11051, 0., 0, 1578614418265, 134, 0.)
(1578614418, 1.1104, 1.1105, 0., 0, 1578614418905, 134, 0.)
(1578614419, 1.11039, 1.11051, 0., 0, 1578614419519, 134, 0.)
(1578614456, 1.11037, 1.11065, 0., 0, 1578614456011, 134, 0.)
(1578614456, 1.11039, 1.11051, 0., 0, 1578614456015, 134, 0.)
 
Darstellung von dataframe mit Ticks
                 time      bid      ask  last  volume       time_msc  flags  volume_real
0 2020-01-10 00:00:00  1.11051  1.11069   0.0       0  1578614400987    134          0.0
1 2020-01-10 00:00:02  1.11049  1.11067   0.0       0  1578614402025    134          0.0
2 2020-01-10 00:00:04  1.11050  1.11066   0.0       0  1578614404057    134          0.0
3 2020-01-10 00:00:04  1.11049  1.11067   0.0       0  1578614404344    134          0.0
4 2020-01-10 00:00:12  1.11052  1.11064   0.0       0  1578614412106    134          0.0
5 2020-01-10 00:00:18  1.11039  1.11051   0.0       0  1578614418265    134          0.0
6 2020-01-10 00:00:18  1.11040  1.11050   0.0       0  1578614418905    134          0.0
7 2020-01-10 00:00:19  1.11039  1.11051   0.0       0  1578614419519    134          0.0
8 2020-01-10 00:00:56  1.11037  1.11065   0.0       0  1578614456011    134          0.0
9 2020-01-10 00:00:56  1.11039  1.11051   0.0       0  1578614456015    134          0.0

Siehe auch

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range