copy_rates_from_pos

Ottiene barre dal terminale MetaTrader 5 a partire dall'indice specificato.

copy_rates_from_pos(
   symbol,       // nome del simbolo
   timeframe,    // timeframe
   start_pos,    // indice della barra iniziale
   count         // numero di barre
   )

Parametri

symbol

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

timeframe

[in]  Timeframe per cui sono richieste le barre. Impostato da un valore dell'enumerazione TIMEFRAME. Parametro unnamed richiesto.

start_pos

[in] Indice iniziale della barra da cui vengono richiesti i dati. La numerazione delle barre va dal presente al passato. Pertanto, la barra zero indica quella corrente. Parametro richiesto senza nome.

count

[in] Numero di barre da ricevere. Parametro richiesto senza nome.

Valore di Ritorno

Restituisce le barre come matrice numpy con le colonne denominate time, open, high, low, close, tick_volume, spread e real_volume. Restituisce Nessuno in caso di errore. Le informazioni sull'errore possono essere ottenute utilizzando last_error().

Nota

Vedere la funzione CopyRates() per ulteriori informazioni.

Il terminale MetaTrader 5 fornisce barre solo all'interno di una cronologia disponibile per un utente su charts. Il numero di barre disponibili per gli utenti sono impostate nel parametro "Max. barre nel chart".

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
 
# stabilisce la connessione al terminale MetaTrader 5
if not mt5.initialize():
    print("initialize() fallito, error code =",mt5.last_error())
    quit()
 
# ottiene 10 barre D1 GBPUSD dal giorno corrente
rates = mt5.copy_rates_from_pos("GBPUSD"mt5.TIMEFRAME_D1010)
 
# interrompe la connessione al terminale MetaTrader 5
mt5.shutdown()
# visualizza ogni elemento dei dati ottenuti in una nuova riga
print("Mostra i dati ottenuti 'così come sono' '")
for rate in rates:
    print(rate)
 
# create DataFrame dai dati ottenuti
rates_frame = pd.DataFrame(rates)
# converti il tempo in secondi nel formato datetime
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')
 
# visualizza dati
print("\nMostra dataframe con dati")
print(rates_frame
 
Risultato:
Autore del pacchetto MetaTrader5: MetaQuotes Software Corp.
Versione del pacchetto MetaTrader5: 5.0.29
 
Visualizza i dati ottenuti "così come sono"
(1581552000, 1.29568, 1.30692, 1.29441, 1.30412, 68228, 0, 0)
(1581638400, 1.30385, 1.30631, 1.3001, 1.30471, 56498, 0, 0)
(1581897600, 1.30324, 1.30536, 1.29975, 1.30039, 49400, 0, 0)
(1581984000, 1.30039, 1.30486, 1.29705, 1.29952, 62288, 0, 0)
(1582070400, 1.29952, 1.3023, 1.29075, 1.29187, 57909, 0, 0)
(1582156800, 1.29186, 1.29281, 1.28489, 1.28792, 61033, 0, 0)
(1582243200, 1.28802, 1.29805, 1.28746, 1.29566, 66386, 0, 0)
(1582502400, 1.29426, 1.29547, 1.28865, 1.29283, 66933, 0, 0)
(1582588800, 1.2929, 1.30178, 1.29142, 1.30037, 80121, 0, 0)
(1582675200, 1.30036, 1.30078, 1.29136, 1.29374, 49286, 0, 0)
 
Visualizza dataframe con i dati
        time     open     high      low    close  tick_volume  spread  real_volume
0 2020-02-13  1.29568  1.30692  1.29441  1.30412        68228       0            0
1 2020-02-14  1.30385  1.30631  1.30010  1.30471        56498       0            0
2 2020-02-17  1.30324  1.30536  1.29975  1.30039        49400       0            0
3 2020-02-18  1.30039  1.30486  1.29705  1.29952        62288       0            0
4 2020-02-19  1.29952  1.30230  1.29075  1.29187        57909       0            0
5 2020-02-20  1.29186  1.29281  1.28489  1.28792        61033       0            0
6 2020-02-21  1.28802  1.29805  1.28746  1.29566        66386       0            0
7 2020-02-24  1.29426  1.29547  1.28865  1.29283        66933       0            0
8 2020-02-25  1.29290  1.30178  1.29142  1.30037        80121       0            0
9 2020-02-26  1.30036  1.30078  1.29136  1.29374        49286       0            0

See also

CopyRates, copy_rates_from, copy_rates_range, copy_ticks_from, copy_ticks_range