Подтверждение сделок

 
Подтверждение сделок
Каким образом можно понять из ссобщений, получаемых функцией MtGetTradeRecors, что limit-order исполнен (открыта позиция). И как понять, что пришедшая строка означает, что он закрыт (например по stop-loss)?
 
по GetTradeRecords приходят только открытые позиции (либо отложенные ордера)
ищите Ваш закрытый ордер в AccountHistory. что касается limit-order, у него остаётся тот же самый тикет. сравнивайте списки. либо проверяйте, наличие значений stoploss/takeprofit и сравнивайте их с ценой открытия.
 
Получится путаница
Действительно, если я хочу выставить новую заявку, то должен проверить объем выставленных ранее. При этом, программа должна пролистать список полученных строк, но как она сможет понять, читая строку, открыта позиция по данному limit-ордеру или нет? От этого решительным образом зависит модель поведения.
Если ордер не открыт, то его можно либо удалить, либо модифицировать, а если открыт, то только закрыть. Почему не ввести дополнительное поле, которое могло бы служить индикатором состояния заявки?
 
P.S.
Приходит ли новая строка в момент открытия limit ордера?
Я конечно могу следить не пересек ли bid/ask соответствующей цены, но это не гарантирует, что вы исполнили заявку (никто не застрахован от ошибок), поэтому мне нужно какое-то подтверждение со стороны сервера, что все в порядке.
 
а вы отслеживайте тип ордера. у открытого ордера может быть только 2 типа - OP_SELL и OP_BUY
если же указан один из лимитных типов, то ордер ещё точно не открыт
 
да, конечно. только не новая строка.
при любом открытии или закрытии приходит сообщение UPDATE_TRADES, в ответ на которое Вы должны получить новый список открытых позиций
Причина обращения: