copy_ticks_range

Ottiene tick per l'intervallo di date specificato dal terminale MetaTrader 5.

copy_ticks_range(
   symbol,       // nome del simbolo
   date_from,    // data in cui sono richiesti i tick
   date_to,      // data, fino alla quale sono richieste le 
   flags         // combinazione di flag che definisce il tipo di tick richiesti
   )

Parametri

symbol

[in] Nome dello strumento finanziario, ad esempio "EURUSD". Parametro richiesto senza nome.

date_from

[in] Data da cui vengono richiesti i tick. Impostata dall'oggetto 'datetime' o come numero di secondi trascorsi dal 1970.01.01. Parametro richiesto senza nome.

date_to

[in] Data, fino alla quale sono richiesti i tick. Impostata dall'oggetto 'datetime' o come numero di secondi trascorsi dal 1970.01.01. Parametro richiesto senza nome.

flags

[in] Un flag per definire il tipo di tick richiesti. COPY_TICKS_INFO – tick con cambiamenti Bid e/o Ask, COPY_TICKS_TRADE – tick con cambiamenti in Lase e Volume, COPY_TICKS_ALL – tutti i tick. I valori dei Flag sono descritti nell'enumerazione COPY_TICKS. Parametro unnamed richiesto.

Valore di Ritorno

Restituisce tick come l'array numpy con le colonne denominate time, bid, ask, last e flags. Il valore 'flags' può essere una combinazione di flag dall'enumerzione TICK_FLAG. Restituisce Nessuna in caso di errore. Le informazioni sull'errore possono essere ottenute utilizzando last_error().

Nota

Vedi la funzione CopyTicks per ulteriori informazioni.

Durante la creazione dell'oggetto 'datetime', Python utilizza il fuso orario locale, mentre MetaTrader 5 memorizza il tick e la barra dell'ora aperta nel fuso orario UTC (senza lo slittamento). Pertanto, 'datetime' deve essere creato nell'ora UTC per l'esecuzione di funzioni che utilizzano l'ora. I dati ottenuti da MetaTrader 5 hanno l'ora UTC, ma Python applica nuovamente il fuso orario locale quando tenta di stamparli. Pertanto, anche i dati ottenuti devono essere corretti per la presentazione visiva.

Esempio:

from datetime import datetime
import MetaTrader5 as mt5
# visualizza i dati sul pacchetto MetaTrader 5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
 
# importa il modulo 'pandas' per visualzzare i dati ottenuti in forma tabellare
import pandas as pd
pd.set_option('display.max_columns', 500# numero di colonne da visualizzare
pd.set_option('display.width', 1500)      # max table width to display
# import pytz module for working with time zone
import pytz
 
# stabilisce la connessione al terminale MetaTrader 5 
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()
 
# imposta il fuso orario su UTC
timezone = pytz.timezone("Etc/UTC")
# crea oggetti 'datetime' nel fuso orario UTC per evitare l'implementazione di un fuso orario locale
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
utc_to = datetime(2020, 1, 11, tzinfo=timezone)
# richiesta tick di AUDUSD entro 11.01.2020 - 11.01.2020
ticks = mt5.copy_ticks_range("AUDUSD"utc_from, utc_tomt5.COPY_TICKS_ALL)
print("Tick ricevuti:",len(ticks))
 
# interrompe la connessione al terminale MetaTrader 5
mt5.shutdown()
 
# visualizza i dati su ogni tick su una nuova riga
print("Visualizza i ticks ottenuti 'così come sono' ")
count = 0
for tick in ticks:
    count+=1
    print(tick)
    if count >= 10:
        break
 
# crea DataFrame dai dati ottenuti
ticks_frame = pd.DataFrame(ticks)
# converti il tempo in secondi nel formato datetime
ticks_frame['time']=pd.to_datetime(ticks_frame['time'], unit='s')
 
# display data
print("\nDisplay dataframe with ticks")
print(ticks_frame.head(10)
 
Risultato:
Autore del pacchetto MetaTrader5: MetaQuotes Software Corp.
Versione del pacchetto MetaTrader5: 5.0.29
 
Tick ricevuti: 37008
Visualizza i tick ottenuti 'così come sono'
(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.)
 
Visualizza il dataframe con 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

See also

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range