copy_ticks_from

MetaTrader 5 terminalinden belirtilen tarihten itibaren olan tikleri elde eder.

copy_ticks_from(
   symbol,       // sembol adı
   date_from,    // tiklerin talep edilmesinin başlanacağı tarih
   count,        // talep edilen tik sayısı
   flags         // talep edilen tiklerin tipini tanımlayan bayrakların kombinasyonu
   )

Parametreler

symbol

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

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.

count

[in]  Elde edilecek tik sayısı. 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 terminalinden alınan veriler UTC zamanına sahiptir.

COPY_TICKS; copy_ticks_from() ve copy_ticks_range() fonksiyonları kullanılarak talep edilebilecek tiklerin tiplerini tanımlar.

ID

Açıklama

COPY_TICKS_ALL

tüm tikler

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

TICK_FLAG, tikler için olası bayrakları tanımlar. Bu bayraklar, copy_ticks_from() ve copy_ticks_range() fonksiyonları tarafından elde edilen tikleri tanımlamak için kullanılır.

ID

Açıklama

TICK_FLAG_BID

Alış (Bid) fiyatı değişti

TICK_FLAG_ASK

Satış (Ask) fiyatı değişti

TICK_FLAG_LAST

Son fiyat değişti

TICK_FLAG_VOLUME

Hacim değişti

TICK_FLAG_BUY

son Alış (Buy) fiyatı değişti

TICK_FLAG_SELL

son Satış (Sell) fiyatı değişti

 

Ö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 10.01.2019 tarihinden başlayarak 100.000 EURUSD tiki talep et
ticks = mt5.copy_ticks_from("EURUSD"utc_from100000, mt5.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')
 
# verileri görüntüle
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ı: 100000
Elde edilen tikleri 'olduğu gibi' görüntüle
(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.)
 
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  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

Ayrıca bakınız

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range