#+------------------------------------------------------------------+ #| positionsget.py | #| Copyright 2022, MetaQuotes Ltd. | #| https://www.mql5.com | #+------------------------------------------------------------------+ import MetaTrader5 as mt5 import pandas as pd pd.set_option('display.max_columns', 500) # сколько столбцов показываем pd.set_option('display.width', 1500) # макс. ширина таблицы для показа # установим подключение к терминалу MetaTrader 5 if not mt5.initialize(): print("initialize() failed, error code =", mt5.last_error()) quit() # получим открытые позиции на USDCHF 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)) # выведем все открытые позиции for position in positions: print(position) # получим список позиций на символах, чьи имена содержат "*USD*" 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))) # выведем позиции в виде таблицы с помощью pandas.DataFrame 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 mt5.shutdown() #+------------------------------------------------------------------+