positions_get

Sembol veya etikete göre filtreleme özelliğiyle açık pozisyonları elde eder. Üç çağrı seçeneği vardır.

Parametresiz çağrı. Tüm sembollerdeki açık pozisyonlar geri döndürülür.

positions_get()

Açık pozisyonların elde edileceği sembolü belirten çağrı.

positions_get(
   symbol="SYMBOL"      // sembol adı
)

Açık pozisyonların elde edileceği sembol grubunu belirten çağrı.

positions_get(
   group="GROUP"        // pozisyonları sembollere göre seçmek için filtre
)

Pozisyon etiketini belirten çağrı.

positions_get(
   ticket=TICKET        // etiket
)

Parametreler

symbol="SYMBOL"

[in]  Sembol adı. Opsiyonel adlandırılmış parametre. Bir sembol belirtilirse, ticket parametresi yoksayılır.

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 pozisyonları geri döndürür.

ticket=TICKET

[in]  Pozisyon etiketi (POSITION_TICKET). Opsiyonel adlandırılmış parametre.

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, PositionsTotal ve PositionSelect ikilisine benzer şekilde tek bir çağrıda tüm açık pozisyonların elde edilmesine olanak sağlar

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 pozisyonların seçilmesi ve daha sonra sembol adlarında "EUR" içerenlerin hariç tutulması gerektiği anlamına gelir.

Örnek:

import MetaTrader5 as mt5
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()
 
# USDCHF'deki açık pozisyonları elde et
positions=mt5.positions_get(symbol="USDCHF")
if positions==None:
    print("No positions on USDCHF, error code={}".format(mt5.last_error()))
elif len(positions)>0:
    print("Total positions on USDCHF =",len(positions))
    # tüm açık pozisyonları görüntüle
    for position in positions:
        print(position)
 
# adlarında "*USD*" içeren sembollerdeki pozisyonları elde et
usd_positions=mt5.positions_get(group="*USD*")
if usd_positions==None:
    print("No positions with group=\"*USD*\", error code={}".format(mt5.last_error()))
elif len(usd_positions)>0:
    print("positions_get(group=\"*USD*\")={}".format(len(usd_positions)))
    # bu pozisyonları pandas.DataFrame kullanarak bir tablo halinde göster
    df=pd.DataFrame(list(usd_positions),columns=usd_positions[0]._asdict().keys())
    df['time'] = pd.to_datetime(df['time'], unit='s')
    df.drop(['time_update', 'time_msc', 'time_update_msc', 'external_id'], axis=1, inplace=True)
    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
 
positions_get(group="*USD*")=5
      ticket                time  type  magic  identifier  reason  volume  price_open       sl       tp  price_current  swap  profit  symbol comment
0  548297723 2020-03-18 15:00:55     1      0   548297723       3    0.01     1.09301  1.11490  1.06236        1.10104 -0.10   -8.03  EURUSD        
1  548655158 2020-03-18 20:31:26     0      0   548655158       3    0.01     1.08676  1.06107  1.12446        1.10099 -0.08   14.23  EURUSD        
2  548663803 2020-03-18 20:40:04     0      0   548663803       3    0.01     1.08640  1.06351  1.11833        1.10099 -0.08   14.59  EURUSD        
3  548847168 2020-03-19 01:10:05     0      0   548847168       3    0.01     1.09545  1.05524  1.15122        1.10099 -0.06    5.54  EURUSD        
4  548847194 2020-03-19 01:10:07     0      0   548847194       3    0.02     1.09536  1.04478  1.16587        1.10099 -0.08   11.26  EURUSD   

Ayrıca bakınız

positions_total, orders_get