copy_rates_from_pos

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

copy_rates_from_pos(
   symbol,       // sembol adı
   timeframe,    // zaman aralığı
   start_pos,    // başlangıç barının indeksi
   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.

start_pos

[in]  Verilerin talep edilmeye başlanacağı barın indeksi. Barların numaralandırılması günümüzden geçmişi doğru gider. Böylece, sıfır barı mevcut barı ifade eder. 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.

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.

Ö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
 
# MetaTrader 5 terminaline bağlantı kur
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()
 
# Geçerli günden itibaren 10 GBPUSD D1 barı elde et
rates = mt5.copy_rates_from_pos("GBPUSD"mt5.TIMEFRAME_D1010)
 
# 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
(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)
 
Verileri içeren veri çerçevesini görüntüle
        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

Ayrıca bakınız

CopyRates, copy_rates_from, copy_rates_range, copy_ticks_from, copy_ticks_range