copy_ticks_range

Retourne les ticks du terminal MetaTrader 5 pour la plage de dates spécifiée.

copy_ticks_range(
   symbol,         // nom du symbole
   date_from,      // date à laquelle les ticks sont demandés
   date_to,        // date jusqu'à laquelle les ticks sont 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.

date_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.

date_to

[in] Date jusqu'à 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.

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 obtenues à partir de MetaTrader 5 ont l'heure UTC, mais Python applique à nouveau le décalage horaire local lors de la tentative d'impression. Ainsi, les données obtenues doivent également être corrigées pour la présentation visuelle.

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 des objets '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)
utc_to = datetime(2020, 1, 11, tzinfo=timezone)
# demande les ticks AUDUSD entre le 11.01.2020 et le 11.01.2020
ticks = mt5.copy_ticks_range("AUDUSD"utc_from, utc_tomt5.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 : 37008
Affiche les ticks bruts obtenus
(1578614400, 0.68577, 0.68594, 0., 0, 1578614400820, 134, 0.)
(1578614401, 0.68578, 0.68594, 0., 0, 1578614401128, 130, 0.)
(1578614401, 0.68575, 0.68594, 0., 0, 1578614401128, 130, 0.)
(1578614411, 0.68576, 0.68594, 0., 0, 1578614411388, 130, 0.)
(1578614411, 0.68575, 0.68594, 0., 0, 1578614411560, 130, 0.)
(1578614414, 0.68576, 0.68595, 0., 0, 1578614414973, 134, 0.)
(1578614430, 0.68576, 0.68594, 0., 0, 1578614430188, 4, 0.)
(1578614450, 0.68576, 0.68595, 0., 0, 1578614450408, 4, 0.)
(1578614450, 0.68576, 0.68594, 0., 0, 1578614450519, 4, 0.)
(1578614456, 0.68575, 0.68594, 0., 0, 1578614456363, 130, 0.)
 
Affiche le dataframe avec les ticks
                 time      bid      ask  last  volume       time_msc  flags  volume_real
0 2020-01-10 00:00:00  0.68577  0.68594   0.0       0  1578614400820    134          0.0
1 2020-01-10 00:00:01  0.68578  0.68594   0.0       0  1578614401128    130          0.0
2 2020-01-10 00:00:01  0.68575  0.68594   0.0       0  1578614401128    130          0.0
3 2020-01-10 00:00:11  0.68576  0.68594   0.0       0  1578614411388    130          0.0
4 2020-01-10 00:00:11  0.68575  0.68594   0.0       0  1578614411560    130          0.0
5 2020-01-10 00:00:14  0.68576  0.68595   0.0       0  1578614414973    134          0.0
6 2020-01-10 00:00:30  0.68576  0.68594   0.0       0  1578614430188      4          0.0
7 2020-01-10 00:00:50  0.68576  0.68595   0.0       0  1578614450408      4          0.0
8 2020-01-10 00:00:50  0.68576  0.68594   0.0       0  1578614450519      4          0.0
9 2020-01-10 00:00:56  0.68575  0.68594   0.0       0  1578614456363    130          0.0

Voir aussi

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range