PositionCloseTime?

- www.mql5.com
Нужно смотреть свойства сделок https://www.mql5.com/ru/docs/constants/tradingconstants/dealproperties
Спасибо!
Нужно смотреть свойства сделок https://www.mql5.com/ru/docs/constants/tradingconstants/dealproperties
Насколько я понял:
по тикету сделки мы можем узнать тикет ордера и узнать закрыт ли он:
ulong order_ticket=HistoryDealGetInteger(ticket,DEAL_ORDER);datetime dt=HistoryDealGetInteger(ticket,DEAL_TIME);
ulong ent=HistoryDealGetInteger(ticket, DEAL_ENTRY);
if(ent==DEAL_ENTRY_OUT)return(dt);
Чтобы найти нужный тикет ордера придется перебирать сделки. Можете подсказать, как по тикету позиции узнать тикет сделки, в которой она прописана, не перебирая все сделки?
Пока решил делать так:
if(PositionSelectByTicket(position_ticket)) {//position exists }else {//position closed (error==4753) }
Насколько я понял:
по тикету сделки мы можем узнать тикет ордера и узнать закрыт ли он:
ulong order_ticket=HistoryDealGetInteger(ticket,DEAL_ORDER);datetime dt=HistoryDealGetInteger(ticket,DEAL_TIME);
ulong ent=HistoryDealGetInteger(ticket, DEAL_ENTRY);
if(ent==DEAL_ENTRY_OUT)return(dt);
Чтобы найти нужный тикет ордера придется перебирать сделки. Можете подсказать, как по тикету позиции узнать тикет сделки, в которой она прописана, не перебирая все сделки?
Пока решил делать так:
if(PositionSelectByTicket(position_ticket)) {//position exists }else {//position closed (error==4753) }
DEAL_POSITION_ID | Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции. | long |
или
ORDER_POSITION_ID | Идентификатор позиции , который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию. Идентификатор этой позиции и устанавливается исполненному ордеру в этот момент. | long |
DEAL_POSITION_ID | Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции. | long |
или
ORDER_POSITION_ID | Идентификатор позиции , который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию. Идентификатор этой позиции и устанавливается исполненному ордеру в этот момент. | long |
Сорри, пытался переварить, но до меня не доходит.
На закладке история я вижу строки с колонками символ, ТИКЕТ и т.д.
На одной из строк стоит символ с тикетом 12345. Как советнику по этому номеру 12345 узнать тикет сделки, которая ликвидировала данную позицию, не перебирая для этого все сделки?
Сорри, пытался переварить, но до меня не доходит.
На закладке история я вижу строки с колонками символ, ТИКЕТ и т.д.
На одной из строк стоит символ с тикетом 12345. Как советнику по этому номеру 12345 узнать тикет сделки, которая ликвидировала данную позицию, не перебирая для этого все сделки?
Просто надо выбрать все ордера и сделки по ID позиции
bool HistorySelectByPosition( long position_id // идентификатор позиции - POSITION_IDENTIFIER );
и в этих списках искать что надо
А получить ID позиции можно тремя способами, два из которых я вам показал. А третий собственно POSITION_IDENTIFIER

- www.mql5.com
Просто надо выбрать все ордера и сделки по ID позиции
и в этих списках искать что надо
А получить ID позиции можно тремя способами, два из которых я вам показал. А третий собственно POSITION_IDENTIFIER
Да, туплю. Содержимое колонки Тикет на вкладыше История - это Идентификатор позиции? или Ордер сделки?
long deal_order=HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
long deal_position_ID=HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
Я так понимаю, что deal_order не всегда = deal_position_ID? Потому что я вижу, что у меня они идентичны
Да, туплю. Содержимое колонки Тикет на вкладыше История - это Идентификатор позиции? или Ордер сделки?
long deal_order=HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
long deal_position_ID=HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
Я так понимаю, что deal_order не всегда = deal_position_ID? Потому что я вижу, что у меня они идентичны
Читайте документацию. Много раз подряд. Пока не наступит прозрение…

- 2018.07.03
- www.mql5.com

- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте. Пытаюсь перенести советник с МТ4 на МТ5. Обнаружил, что для позиций в ENUM_POSITION_PROPERTY_INTEGER нет свойства CloseTIme. Как я могу узнать время закрытия позиции? Чтобы изменить:
if(OrderCloseTime()!=0){...;}