copy_rates_from

MetaTrader 5 terminalinden belirtilen tarihten itibaren olan barları elde eder.

copy_rates_from(
   symbol,       // sembol adı
   timeframe,    // zaman aralığı
   date_from,    // başlangıcın gerçekleşeceği bar açılış tarihi
   count         // bar sayısı
   )

Parametreler

symbol

[in]  Finansal enstrüman adı, örneğin, "EURUSD". Gerekli adsız parametre.

timeframe

[in]  Barların talep edileceği zaman aralığı. TIMEFRAME sayımından bir değer ayarlanır. Gerekli adsız parametre.

date_from

[in]  İstenilen seçimin ilk barının açılış tarihi. 'datetime' nesnesi tarafından veya 1970.01.01'den beri geçen saniye sayısı olarak ayarlanır. Gerekli adsız parametre.

count

[in]  Elde edilecek bar sayısı. Gerekli adsız parametre.

Geri dönüş değeri

Barlar time, open, high, low, close, tick_volume, spread ve real_volume adlı sütunlara sahip numpy dizisi halinde geri döndürülür. Bir hata durumunda None geri döndürülür. Hata ile ilgili bilgiler last_error() kullanılarak elde edilebilir.

Not

Daha fazla bilgi için CopyRates() fonksiyonuna bakın.

Sadece belirtilen tarihe eşit veya ondan daha önceki verilerin dönüşü yapılacaktır. Yani, herhangi bir çubuğun açılış zamanı her zaman belirtilenden az veya belirtilene eşit olacaktır.

MetaTrader 5 terminali yalnızca grafiklerde kullanıcıya kullanılabilir olan geçmişteki barları sağlar. Kullanıcılar için kullanılabilir bar sayısı "Maks. bar sayısı" parametresinde ayarlanır.

Python, 'datetime' nesnesini oluştururken yerel zaman dilimini kullanır, MetaTrader 5 ise tik ve bar açılış zamanını UTC zaman diliminde (öteleme olmadan) depolar. Bu nedenle; 'datetime', zamanı kullanan fonksiyonları yürütmek için UTC zamanında oluşturulmalıdır. MetaTrader 5 terminalinden alınan veriler UTC zamanına sahiptir.  

TIMEFRAME, olası grafik periyodu değerlerine sahip bir sayımdır

ID

Açıklama

TIMEFRAME_M1

1 dakika

TIMEFRAME_M2

2 dakika

TIMEFRAME_M3

3 dakika

TIMEFRAME_M4

4 dakika

TIMEFRAME_M5

5 dakika

TIMEFRAME_M6

6 dakika

TIMEFRAME_M10

10 dakika

TIMEFRAME_M12

12 dakika

TIMEFRAME_M12

15 dakika

TIMEFRAME_M20

20 dakika

TIMEFRAME_M30

30 dakika

TIMEFRAME_H1

1 saat

TIMEFRAME_H2

2 saat

TIMEFRAME_H3

3 saat

TIMEFRAME_H4

4 saat

TIMEFRAME_H6

6 saat

TIMEFRAME_H8

8 saat

TIMEFRAME_H12

12 saat

TIMEFRAME_D1

1 gün

TIMEFRAME_W1

1 hafta

TIMEFRAME_MN1

1 ay

 

Örnek:

from datetime import datetime
import MetaTrader5 as mt5
# MetaTrader 5 paketi ile ilgili verileri görüntüle
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
 
# elde edilen verileri tablo şeklinde görüntülemek için 'pandas' modülünü içe aktar
import pandas as pd
pd.set_option('display.max_columns', 500# görüntülenecek sütun sayısı
pd.set_option('display.width', 1500)      # görüntülenecek maksimum tablo genişliği
# zaman dilimi ile çalışmak için pytz modülünü içe aktar
import pytz
 
# MetaTrader 5 terminaline bağlantı kur
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()
 
# zaman dilimini UTC olarak ayarla
timezone = pytz.timezone("Etc/UTC")
# yerel zaman dilimi ötelemesinin gerçekleşmesini önlemek için UTC zaman diliminde 'datetime' nesnesi oluştur
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# UTC zaman diliminde 01.10.2020 tarihinden itibaren 10 EURUSD H4 barı elde et
rates = mt5.copy_rates_from("EURUSD"mt5.TIMEFRAME_H4utc_from10)
 
# MetaTrader 5 terminaline olan bağlantıyı kapat
mt5.shutdown()
# elde edilen verilerin her bir elemanını yeni bir satırda göster
print("Elde edilen verileri 'olduğu gibi' görüntüle")
for rate in rates:
    print(rate)
 
# elde edilen verilerden DataFrame oluştur
rates_frame = pd.DataFrame(rates)
# saniye cinsinden zamanı datetime biçimine dönüştür
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')
                           
# verileri görüntüle
print("\nVerileri içeren veri çerçevesini görüntüle")
print(rates_frame)  
 
 
Sonuç:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Elde edilen verileri 'olduğu gibi' görüntüle
(1578484800, 1.11382, 1.11385, 1.1111, 1.11199, 9354, 1, 0)
(1578499200, 1.11199, 1.11308, 1.11086, 1.11179, 10641, 1, 0)
(1578513600, 1.11178, 1.11178, 1.11016, 1.11053, 4806, 1, 0)
(1578528000, 1.11053, 1.11193, 1.11033, 1.11173, 3480, 1, 0)
(1578542400, 1.11173, 1.11189, 1.11126, 1.11182, 2236, 1, 0)
(1578556800, 1.11181, 1.11203, 1.10983, 1.10993, 7984, 1, 0)
(1578571200, 1.10994, 1.11173, 1.10965, 1.11148, 7406, 1, 0)
(1578585600, 1.11149, 1.11149, 1.10923, 1.11046, 7468, 1, 0)
(1578600000, 1.11046, 1.11097, 1.11033, 1.11051, 3450, 1, 0)
(1578614400, 1.11051, 1.11093, 1.11017, 1.11041, 2448, 1, 0)
 
Verileri içeren veri çerçevesini görüntüle
                 time     open     high      low    close  tick_volume  spread  real_volume
0 2020-01-08 12:00:00  1.11382  1.11385  1.11110  1.11199         9354       1            0
1 2020-01-08 16:00:00  1.11199  1.11308  1.11086  1.11179        10641       1            0
2 2020-01-08 20:00:00  1.11178  1.11178  1.11016  1.11053         4806       1            0
3 2020-01-09 00:00:00  1.11053  1.11193  1.11033  1.11173         3480       1            0
4 2020-01-09 04:00:00  1.11173  1.11189  1.11126  1.11182         2236       1            0
5 2020-01-09 08:00:00  1.11181  1.11203  1.10983  1.10993         7984       1            0
6 2020-01-09 12:00:00  1.10994  1.11173  1.10965  1.11148         7406       1            0
7 2020-01-09 16:00:00  1.11149  1.11149  1.10923  1.11046         7468       1            0
8 2020-01-09 20:00:00  1.11046  1.11097  1.11033  1.11051         3450       1            0
9 2020-01-10 00:00:00  1.11051  1.11093  1.11017  1.11041         2448       1            0

Ayrıca bakınız

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range