Сделки без ID советника

Petr Zharuk  

Доброго времени суток!


Может ли закрытая позиция в свойствах не иметь ID советника, если закрыл ее советник? 

На сколько мне известно, пустое значение ID означает ручное закрытие позиции.

Dmitry Fedoseev  

Может. Если сделка выполняется советником ид указывается не автоматически. То есть в советнике можно любой ид присвоить, в том числе 0 или вообще не присваивать, тоже будет 0.

В советниках для неттинговых счетов обычно не указывают ид, нет смысла. 

Alexey Viktorov  

ID советника указывается во время открытия позиции. А после закрытия, позиции как таковой нет вообще. Следовательно и ID советника закрывшего позицию можно посмотреть только в свойствах сделки или ордера. И только если при закрытии было заполнено соответствующее поле структуры.

А как закрыта позиция, руками или советником можно узнать из перечисления ENUM_DEAL_REASON

Идентификатор

Описание

DEAL_REASON_CLIENT

Сделка проведена в результате срабатывания ордера, выставленного из десктопного терминала

DEAL_REASON_MOBILE

Сделка проведена в результате срабатывания ордера, выставленного из мобильного приложения

DEAL_REASON_WEB

Сделка проведена в результате срабатывания ордера, выставленного из веб-платформы

DEAL_REASON_EXPERT

Сделка проведена в результате срабатывания ордера, выставленного из MQL5-программы – советником или скриптом

DEAL_REASON_SL

Сделка проведена в результате срабатывания ордера Stop Loss

DEAL_REASON_TP

Сделка проведена в результате срабатывания ордера Take Profit

DEAL_REASON_SO

Сделка проведена в результате наступления события Stop Out

DEAL_REASON_ROLLOVER

Сделка проведена по причине переноса позиции

DEAL_REASON_VMARGIN

Сделка проведена по причине начисления/списания вариационной маржи

DEAL_REASON_SPLIT

Сделка проведена по причине сплита (понижения цены) инструмента, по которому имелась позиция на момент проведения сплита