copy_ticks_range

MetaTrader 5 terminalinden belirtilen tarih aralığındaki tikleri elde eder.

copy_ticks_range(
   symbol,       // sembol adı
   date_from,    // tiklerin talep edileceği aralığın başlangıç tarihi
   date_to,      // tiklerin talep edileceği aralığın bitiş tarihi
   flags         // talep edilen tiklerin tipini tanımlayan bayrakların kombinasyonu
   )

Parametreler

symbol

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

date_from

[in]  Tiklerin talep edilmesinin başlanacağı tarih. 'datetime' nesnesi tarafından veya 1970.01.01'den beri geçen saniye sayısı olarak ayarlanır. Gerekli adsız parametre.

date_to

[in]  Tiklerin talep edileceği aralığın bitiş tarihi. 'datetime' nesnesi tarafından veya 1970.01.01'den beri geçen saniye sayısı olarak ayarlanır. Gerekli adsız parametre.

flags

[in]  Talep edilen tiklerin tipini tanımlayan bayrak. COPY_TICKS_INFO – Alış ve/veya Satış fiyatı değişimleri sonucu oluşan tikler, COPY_TICKS_TRADE – Son ve/veya Hacim değişimleri sonucu oluşan tikler, COPY_TICKS_ALL – tüm tikler. Bayrak değerleri COPY_TICKS sayımında açıklanmıştır. Gerekli adsız parametre.

Geri dönüş değeri

Tikler time, bid, ask, last ve flags adlı sütunlara sahip numpy dizisi halinde geri döndürülür. 'flags' değeri, TICK_FLAG sayımındaki bayrakların bir kombinasyonu olabilir. 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 CopyTicks fonksiyonuna bakın.

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'ten elde edilen veriler UTC zamanına sahiptir, ancak Python bu verileri yazdırmaya çalışırken yerel zaman ötelemesini tekrar uygular. Bu nedenle, elde edilen veriler görsel sunum için de düzeltilmelidir.

Ö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' nesneleri oluştur
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
utc_to = datetime(2020, 1, 11, tzinfo=timezone)
# 11.01.2020 - 11.01.2020 aralığındaki AUDUSD tiklerini talep et
ticks = mt5.copy_ticks_range("AUDUSD"utc_from, utc_tomt5.COPY_TICKS_ALL)
print("Elde edilen tik sayısı:",len(ticks))
 
# MetaTrader 5 terminaline olan bağlantıyı kapat
mt5.shutdown()
 
# her bir tikle ilgili verileri yeni bir satırda göster
print("Elde edilen tikleri 'olduğu gibi' görüntüle")
count = 0
for tick in ticks:
    count+=1
    print(tick)
    if count >= 10:
        break
 
# elde edilen verilerden DataFrame oluştur
ticks_frame = pd.DataFrame(ticks)
# saniye cinsinden zamanı datetime biçimine dönüştür
ticks_frame['time']=pd.to_datetime(ticks_frame['time'], unit='s')
 
# display data
print("\nTikleri içeren veri çerçevesini görüntüle")
print(ticks_frame.head(10)
 
Sonuç:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Elde edilen tik sayısı: 37008
Elde edilen tikleri 'olduğu gibi' görüntüle
(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.)
 
Tikleri içeren veri çerçevesini görüntüle
                 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

Ayrıca bakınız

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range