copy_ticks_from

Ottiene tick dal terminale MetaTrader 5 a partire dalla data specificata.

copy_ticks_from(
   symbol,       // nome del simbolo
   date_from,    // data in cui sono richiesti i tick
   count,        // numero di tick richiesti
   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.

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.

count

[in] Numero di tick da ricevere. 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 ricevuti dal terminale MetaTrader 5 hanno l'ora UTC.

COPY_TICKS definisce i tipi di tick che possono essere richiesti usando le funzioni copy_ticks_from() e copy_ticks_range().

ID

Descrizione

COPY_TICKS_ALL

tutti i ticks

COPY_TICKS_INFO

ticks contenenti variazioni di prezzi Bid e/o Ask

COPY_TICKS_TRADE

tick contenenti le variazioni del prezzo di Last e/o Volume

TICK_FLAG definisce possibili flag per i ticks. Questi flag sono usati per descrivere i tick ottenuti dalle funzioni copy_ticks_from() e copy_ticks_range().

ID

Descrizione

TICK_FLAG_BID

Il prezzo di Bid è cambiato

TICK_FLAG_ASK

Il prezzo di Ask è cambiato

TICK_FLAG_LAST

Il prezzo Last è cambiato

TICK_FLAG_VOLUME

Il Volume è cambiato

TICK_FLAG_BUY

il prezzo dell'ultimo Buy è cambiato

TICK_FLAG_SELL

il prezzo dell'ultimo Sell è cambiato

 

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 visualizzare 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
# importa il modulo pytz per lavorare con il fuso orario
import pytz
 
# stabilisce la connessione al terminale MetaTrader 5
if not mt5.initialize():
    print("initialize() fallito, error code =",mt5.last_error())
    quit()
 
# imposta il fuso orario su UTC
timezone = pytz.timezone("Etc/UTC")
# crea un oggetto 'datetime' nel fuso orario UTC per evitare l'implementazione di un fuso orario locale
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# richiesta 100.000 tick EURUSD a partire dal 10.01.2019 nel fuso orario UTC
ticks = mt5.copy_ticks_from("EURUSD"utc_from100000, mt5.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 tick ottenuti 'così come sono' ")
count = 0
for tick in ticks:
    count+=1
    print(tick)
    if count >= 10:
        break
 
# create 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("\nMostra dataframe con i tick")
print(ticks_frame.head(10))  
 
Risultato:
Autore del pacchetto MetaTrader5: MetaQuotes Software Corp.
Versione del pacchetto MetaTrader5: 5.0.29
 
Tick ricevuti: 100000
Visualizza i tick ottenuti 'così come sono'
(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.)
 
Visualizza il dataframe con 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

See also

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range