- Установка Python и пакета MetaTrader5
- Обзор функций пакета MetaTrader5 для Python
- Подключение скрипта Python к терминалу и счету
- Проверка ошибок: last_error
- Получение информации о торговом счете
- Получение информации о терминале
- Получение информации о финансовых инструментах
- Подписка на стакан цен
- Чтение котировок
- Чтение истории тиков
- Вычисление маржинальных требований и оценка прибыли
- Проверка и отправка торгового приказа
- Получение количества и списка действующих ордеров
- Получение количества и списка открытых позиций
- Чтение истории ордеров и сделок
Получение количества и списка открытых позиций
Функция positions_total возвращает количество открытых позиций.
int positions_total()
Функция является аналогом PositionsTotal.
Для получения подробной информации о каждой позиции предназначена функция positions_get, имеющая несколько вариантов. Все варианты возвращают массив именованных кортежей TradePosition с ключами, соответствующими свойствам позиций (см. элементы ENUM_POSITION_PROPERTY-перечислений, без префикса "POSITION_", в нижнем регистре). В случае ошибки результат равен None.
namedtuple[] positions_get()
namedtuple[] positions_get(symbol = <"SYMBOL">)
namedtuple[] positions_get(group = <"PATTERN">)
namedtuple[] positions_get(ticket = <TICKET>)
Функция без параметров возвращает все открытые позиции.
Функция с параметром symbol позволяет отобрать только позиции по конкретному символу.
Функция с параметром group обеспечивает фильтрацию по маске поиска с символами подстановки '*' (заменяется любые символы) и логического отрицания условия '!'. Подробности см. в разделе Получение информации о финансовых инструментах.
Вариант с параметров ticket выбирает позицию с конкретным тикетом (свойством POSITION_TICKET).
Функция positions_get позволяет получить за один вызов все позиции и их свойства, что делает её аналогом связки PositionsTotal, PositionSelect и PositionGet-функций.
В скрипте MQL5/Scripts/MQL5Book/Python/positionsget.py запросим позиции по конкретному символу и маске поиска.
import MetaTrader5 as mt5
|
Вот каким может быть результат:
Total positions on USDCHF = 1 TradePosition(ticket=1468454363, time=1664217233, time_msc=1664217233239, time_update=1664217233, time_update_msc=1664217233239, type=1, magic=0, identifier=1468454363, reason=0, volume=0.01, price_open=0.99145, sl=0.0, tp=0.0, price_current=0.9853, swap=-0.01, profit=6.24, symbol='USDCHF', comment='', external_id='') positions_get(group="*USD*") = 2 ticket time type ... identifier volume price_open ... _current swap profit symbol comment 0 1468454363 2022-09-26 18:33:53 1 ... 1468454363 0.01 0.99145 ... 0.98530 -0.01 6.24 USDCHF 1 1468475849 2022-09-26 18:44:00 0 ... 1468475849 0.01 1.06740 ... 1.08113 0.00 13.73 GBPUSD
|