Определение цены, времени, профита закрытой позиции в MQL5

 
Здравствуйте уважаемые мастера MQL. Скажите пожалуйста как определить время закрытия позиции, цену закрытия позиции и профит закрытой позиции в MQL5?
 
Ekaterina Belova:
Здравствуйте уважаемые мастера MQL. Скажите пожалуйста как определить время закрытия позиции, цену закрытия позиции и профит закрытой позиции в MQL5?

Судя по профилю, ООП вы понимаете. Вот сюда смотрели? https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/cdealinfo
Документация по MQL5: Стандартная библиотека / Торговые классы / CDealInfo
Документация по MQL5: Стандартная библиотека / Торговые классы / CDealInfo
  • www.mql5.com
Стандартная библиотека / Торговые классы / CDealInfo - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ekaterina Belova:
Здравствуйте уважаемые мастера MQL. Скажите пожалуйста как определить время закрытия позиции, цену закрытия позиции и профит закрытой позиции в MQL5?


Свойства позиции можно получить пока эта позиция ОТКРЫТА. А вот после закрытия (полного или частичного) позицию нужно собрать виртуально, по торговой истории. Делал примерно такое для восстановления позиции по торговой истории: 

Reconstruction of positions Реконструкция позиции - просто группировка всех сделок относящихся к одной позиции:

Пример итоговой выдачи:

position#0
DEAL_ENTRY_IN, typeDEAL_TYPE_BUY, price1.04552, Deal EURUSD, volume0.03,DEAL_POSITION_ID#119707903,profit0.00
DEAL_ENTRY_OUT_BY, typeDEAL_TYPE_SELL, price1.04562, Deal EURUSD, volume0.02,DEAL_POSITION_ID#119707903,profit0.20
DEAL_ENTRY_OUT_BY, typeDEAL_TYPE_SELL, price1.04534, Deal EURUSD, volume0.01,DEAL_POSITION_ID#119707903,profit -0.18
position#1
DEAL_ENTRY_IN, typeDEAL_TYPE_SELL, price1.04562, Deal EURUSD, volume0.02,DEAL_POSITION_ID#119708383,profit0.00
DEAL_ENTRY_OUT_BY, typeDEAL_TYPE_BUY, price1.04552, Deal EURUSD, volume0.02,DEAL_POSITION_ID#119708383,profit0.00
position#2
DEAL_ENTRY_IN, typeDEAL_TYPE_SELL, price1.04534, Deal EURUSD, volume0.05,DEAL_POSITION_ID#119708643,profit0.00
DEAL_ENTRY_OUT_BY, typeDEAL_TYPE_BUY, price1.04552, Deal EURUSD, volume0.01,DEAL_POSITION_ID#119708643,profit0.00
DEAL_ENTRY_OUT, typeDEAL_TYPE_BUY, price1.04524, Deal EURUSD, volume0.04,DEAL_POSITION_ID#119708643,profit0.40

Как видно, сделки, взятые из торговой истории, сгруппированы по позициям, к которым они относятся. Группировка по параметру

DEAL_POSITION_ID

Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции.


HistoryPositionInfo (с примером, как применять)- Класс CHistoryPositionInfo предназначен для получения прибыли позиции в пунктах на основании торговой истории. В этом классе идёт реконструкция позиции - собираются все сделки и суммируются.

Описание класса

Класс CHistoryPositionInfo обеспечивает получение прибыли позиции в пунктах на основании торговой истории.

Декларация

classCHistoryPositionInfo :publicCArrayObj

Заголовок

#include<HistorySelect_\HistoryPositionInfo.mqh>

Методы класса по группам

Инициализация
InitИнициализация идентификатором позиции
Доступ в результату вычислений  
GetProfitInPointsПолучение профита позиции в пунктах
Установка параметров 
LogErrorsВключение/выключение логирования ошибок
PrintDeals(const bool value) Включение/выключение режима вывода сделок
Вывод сделок 
PrintDeals(void)Вывод сделок которые сформировали позицию
 
Большое спасибо.