copy_ticks_from

Retourne les ticks du terminal MetaTrader 5 à partir de la date spécifiée.

copy_ticks_from(
   symbol,         // nom du symbole
   date_from,      // date à laquelle les ticks sont demandés à
   count,          // nombre de ticks demandés
   flags           // combinaison de flags définissant le type de ticks demandés
   )

Paramètres

symbol

[in]  Nom de l'instrument financier, par exemple, "EURUSD". Paramètre non nommé requis.

from

[in] Date à laquelle les ticks sont demandés. Défini par l'objet 'datetime' ou en nombre de secondes écoulées depuis 1970.01.01. Paramètre non nommé requis.

count

[in] Nombre de ticks à récupérer. Paramètre non nommé requis.

flags

[in] Un flag pour définir le type des ticks demandés. COPY_TICKS_INFO - ticks avec les modifications Bid et/ou Ask, COPY_TICKS_TRADE - ticks avec les modifications dans Last et Volume, COPY_TICKS_ALL - tous les ticks. Les valeurs des flags sont décrites dans l'énumération COPY_TICKS. Paramètre sans nom requis.

Valeur de Retour

Renvoie des ticks sous forme de tableau numpy avec les colonnes nommées time, bid, ask, last et flags. La valeur 'flags' peut être une combinaison de drapeaux de l'énumération TICK_FLAG. Retourne None en cas d'erreur. Les informations sur l'erreur peuvent être obtenues en utilisant last_error().

Note

Voir la fonction CopyTicks pour plus d'informations.

Lors de la création de l'objet 'datetime', Python utilise le fuseau horaire local, tandis que MetaTrader 5 stocke l'heure d'ouverture des ticks et des barres dans le fuseau horaire UTC (sans décalage). Par conséquent, 'datetime' doit être créé en temps UTC pour exécuter des fonctions qui utilisent le temps. Les données reçues du terminal MetaTrader 5 sont en heure UTC.

COPY_TICKS définit les types de ticks qui peuvent être demandés en utilisant copy_ticks_from() et copy_ticks_range () fonctions.

ID

Description

COPY_TICKS_ALL

toutes les ticks

COPY_TICKS_INFO

ticks contenant les changements de prix Bid et/ou Ask

COPY_TICKS_TRADE

ticks contenant les changements de prix Last et/ou Volume

TICK_FLAG définit les drapeaux possibles pour les ticks. Ces flags sont utilisés pour décrire les ticks obtenus par les fonctions copy_ticks_from() et copy_ticks_range().

ID

Description

TICK_FLAG_BID

Le prix Bid a changé

TICK_FLAG_ASK

Le prix Ask changé

TICK_FLAG_LAST

Le prix Last a changé

TICK_FLAG_VOLUME

Le Volume a changé

TICK_FLAG_BUY

Le dernier prix Buy a changé

TICK_FLAG_SELL

Le dernier prix Sell a changé

 

Exemple :

from datetime import datetime
import MetaTrader5 as mt5
# affiche les données sur le package MetaTrader 5
print("Auteur du package MetaTrader5 : ",mt5.__author__)
print("Version du package MetaTrader5 : ",mt5.__version__)
 
# importe le module 'pandas' pour afficher les données obtenues sous forme tabulaire
import pandas as pd
pd.set_option('display.max_columns', 500# nombre de colonnes à afficher
pd.set_option('display.width', 1500)      # largeur max d'affichage de la table
# importe le module pytz pour travailler avec le fuseau horaire
import pytz
 
# établit une connexion avec le terminal MetaTrader 5
if not mt5.initialize():
 print("initialize () a échoué, code d'erreur =",mt5.last_error())
    quit()
 
# définit le fuseau horaire sur UTC
timezone = pytz.timezone("Etc/UTC")
# crée un objet 'datetime' dans le fuseau horaire UTC pour éviter l'implémentation d'un décalage de fuseau horaire local
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# demande 100 000 ticks EURUSD à partir du 10.01.2019 dans le fuseau horaire UTC
ticks = mt5.copy_ticks_from("EURUSD"utc_from100000, mt5.COPY_TICKS_ALL)
print("Ticks reçus :",len(ticks))
 
# ferme la connexion au terminal MetaTrader 5
mt5.shutdown()
 
# affiche les données de chaque tick sur une nouvelle ligne
print("Affiche les ticks bruts obtenus")
count = 0
for tick in ticks:
    count+=1
    print(tick)
    if count >= 10:
        break
 
# crée le DataFrame à partir des données obtenues
ticks_frame = pd.DataFrame(ticks)
# convertit le temps en secondes au format datetime
ticks_frame['time']=pd.to_datetime(ticks_frame['time'], unit='s')
 
# affiche les données
print("\nAffiche le dataframe avec les ticks")
print(ticks_frame.head(10))  
 
Résultat :
Auteur du package MetaTrader5 :  MetaQuotes Software Corp.
Version du package MetaTrader5 :  5.0.29
 
Ticks reçus : 100000
Affiche les ticks bruts obtenus
(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.)
 
Affiche le dataframe avec les 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

Voir aussi

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range