history_deals_get

Pozisyon veya etikete göre filtreleme özelliğiyle işlem geçmişinden belirtilen aralıktaki işlemleri elde eder.

Zaman aralığını belirten çağrı. Belirtilen aralıktaki tüm işlemleri geri döndürür.

history_deals_get(
   date_from,                // işlemlerin talep edileceği aralığın başlangıç tarihi
   date_to,                  // işlemlerin talep edileceği aralığın bitiş tarihi
   group="GROUP"        // işlemleri sembollere göre seçmek için filtre
   )

Emir etiketini belirten çağrı. DEAL_ORDER özelliğinde belirtilen emir etiketine sahip tüm işlemleri geri döndürür.

history_deals_get(
   ticket=TICKET        // emir etiketi
)

Pozisyon etiketini belirten çağrı. DEAL_POSITION_ID özelliğinde belirtilen pozisyon etiketine sahip tüm işlemleri geri döndürür.

history_deals_get(
   position=POSITION    // pozisyon etiketi
)

Parametreler

date_from

[in]  İşlemlerin talep edileceği aralığın başlangıç tarihi. 'datetime' nesnesi tarafından veya 1970.01.01'den beri geçen saniye sayısı olarak ayarlanır. İlk olarak belirtilen gerekli adsız parametre.

date_to

[in]  İşlemlerin 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. İkinci olarak belirtilen gerekli adsız parametre.

group="GROUP"

[in]  Gerekli sembollerden oluşan bir grup düzenlemek için filtre. Opsiyonel adlandırılmış parametre. Bir grup belirtilirse, fonksiyon yalnızca sembol adı için belirtilen ölçütleri karşılayan işlemleri geri döndürür.

ticket=TICKET

[in]  Emir etiketi (DEAL_ORDER'da saklanır). Bu emir etiketine sahip tüm işlemler elde edilir. Opsiyonel parametre. Belirtilmezse, filtre uygulanmaz.

position=POSITION

[in]  Pozisyon etiketi (DEAL_POSITION_ID'de saklanır). Bu pozisyon etiketine sahip tüm işlemler elde edilir. Opsiyonel parametre. Belirtilmezse, filtre uygulanmaz.

Geri dönüş değeri

Bilgiler adlandırılmış bir veri grubu yapısı (namedtuple) biçiminde 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

Fonksiyon, HistoryDealsTotal ve HistoryDealSelect ikilisine benzer şekilde tek bir çağrıda belirli bir aralıktaki tüm geçmiş işlemlerin elde edilmesine olanak sağlar.

group parametresi, işlemleri sembollere göre filtrelemenize olanak tanır. '*' bir dizgenin başında ve sonunda kullanılabilir.

group parametresi, virgülle ayrılmış birkaç koşul içerebilir. Bir koşul '*' kullanılarak maske olarak ayarlanabilir. Hariç tutma için '!' mantıksal olumsuzlama sembolü kullanılabilir. Tüm koşullar sırayla uygulanır, yani önce gruba dahil etme koşullarını ve ardından dışlama koşulunu belirtmelisiniz. Örneğin, group="*, !EUR", önce tüm semboller için işlemlerin seçilmesi ve daha sonra sembol adlarında "EUR" içerenlerin hariç tutulması gerektiği anlamına gelir.

Örnek:

import MetaTrader5 as mt5
from datetime import datetime
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 paketi ile ilgili verileri görüntüle
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
print()
# MetaTrader 5 terminaline bağlantı kur
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()
 
# geçmişteki işlem sayısını elde et
from_date=datetime(2020,1,1)
to_date=datetime.now()
# adlarında "GBP" içeren semboller için belirtilen aralıktaki işlemleri elde et
deals=mt5.history_deals_get(from_dateto_date, group="*GBP*")
if deals==None:
    print("No deals with group=\"*USD*\", error code={}".format(mt5.last_error()))
elif len(deals)> 0:
    print("history_deals_get({}, {}, group=\"*GBP*\")={}".format(from_date,to_date,len(deals)))
 
# adlarında "EUR" veya "GBP" içermeyen sembollerdeki işlemleri elde et
deals = mt5.history_deals_get(from_date, to_date, group="*,!*EUR*,!*GBP*")
if deals == None:
    print("No deals, error code={}".format(mt5.last_error()))
elif len(deals) > 0:
    print("history_deals_get(from_date, to_date, group=\"*,!*EUR*,!*GBP*\") ="len(deals))
    # elde edilen işlemleri 'olduğu gibi' görüntüle
    for deal in deals:
        print("  ",deal)
    print()
    # bu işlemleri pandas.DataFrame kullanarak bir tablo halinde göster
    df=pd.DataFrame(list(deals),columns=deals[0]._asdict().keys())
    df['time'] = pd.to_datetime(df['time'], unit='s')
    print(df)
print("")
 
# pozisyon #530218319 ile ilgili tüm işlemleri elde et
position_id=530218319
position_deals = mt5.history_deals_get(position=position_id)
if position_deals == None:
    print("No deals with position #{}".format(position_id))
    print("error code ="mt5.last_error())
elif len(position_deals) > 0:
    print("Deals with position id #{}: {}".format(position_id, len(position_deals)))
    # bu işlemleri pandas.DataFrame kullanarak bir tablo halinde göster
    df=pd.DataFrame(list(position_deals),columns=position_deals[0]._asdict().keys())
    df['time'] = pd.to_datetime(df['time'], unit='s')
    print(df)
 
# MetaTrader 5 terminaline olan bağlantıyı kapat
mt5.shutdown()
 
Sonuç:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
history_deals_get(from_date, to_date, group="*GBP*") = 14
 
history_deals_get(from_date, to_date, group="*,!*EUR*,!*GBP*") = 7
   TradeDeal(ticket=506966741, order=0, time=1582202125, time_msc=1582202125419, type=2, entry=0, magic=0, position_id=0, reason=0, volume=0.0, pri ...
   TradeDeal(ticket=507962919, order=530218319, time=1582303777, time_msc=1582303777582, type=0, entry=0, magic=0, position_id=530218319, reason=0, ...
   TradeDeal(ticket=513149059, order=535548147, time=1583176242, time_msc=1583176242265, type=1, entry=1, magic=0, position_id=530218319, reason=0, ...
   TradeDeal(ticket=516943494, order=539349382, time=1583510003, time_msc=1583510003895, type=1, entry=0, magic=0, position_id=539349382, reason=0, ...
   TradeDeal(ticket=516943915, order=539349802, time=1583510025, time_msc=1583510025054, type=0, entry=0, magic=0, position_id=539349802, reason=0, ...
   TradeDeal(ticket=517139682, order=539557870, time=1583520201, time_msc=1583520201227, type=0, entry=1, magic=0, position_id=539349382, reason=0, ...
   TradeDeal(ticket=517139716, order=539557909, time=1583520202, time_msc=1583520202971, type=1, entry=1, magic=0, position_id=539349802, reason=0, ...
 
      ticket      order                time       time_msc  type  entry  magic  position_id  reason  volume    price  commission  swap     profit  fee  symbol comment external_id
0  506966741          0 2020-02-20 12:35:25  1582202125419     2      0      0            0       0    0.00  0.00000         0.0   0.0  100000.00  0.0                            
1  507962919  530218319 2020-02-21 16:49:37  1582303777582     0      0      0    530218319       0    0.01  0.97898         0.0   0.0       0.00  0.0  USDCHF                    
2  513149059  535548147 2020-03-02 19:10:42  1583176242265     1      1      0    530218319       0    0.01  0.95758         0.0   0.0     -22.35  0.0  USDCHF                    
3  516943494  539349382 2020-03-06 15:53:23  1583510003895     1      0      0    539349382       0    0.10  0.93475         0.0   0.0       0.00  0.0  USDCHF                    
4  516943915  539349802 2020-03-06 15:53:45  1583510025054     0      0      0    539349802       0    0.10  0.66336         0.0   0.0       0.00  0.0  AUDUSD                    
5  517139682  539557870 2020-03-06 18:43:21  1583520201227     0      1      0    539349382       0    0.10  0.93751         0.0   0.0     -29.44  0.0  USDCHF                    
6  517139716  539557909 2020-03-06 18:43:22  1583520202971     1      1      0    539349802       0    0.10  0.66327         0.0   0.0      -0.90  0.0  AUDUSD                    
 
Deals with position id #530218319: 2
      ticket      order                time       time_msc  type  entry  magic  position_id  reason  volume    price  commission  swap  profit  fee  symbol comment external_id
0  507962919  530218319 2020-02-21 16:49:37  1582303777582     0      0      0    530218319       0    0.01  0.97898         0.0   0.0    0.00  0.0  USDCHF                    
1  513149059  535548147 2020-03-02 19:10:42  1583176242265     1      1      0    530218319       0    0.01  0.95758         0.0   0.0  -22.35  0.0  USDCHF   

Ayrıca bakınız

history_deals_total, history_orders_get