по логике вещей нужно считать, что ордер выставлен при наличии ответа сервера в виде номера тикета или считать, что ордер не выставлен при возврате -1 , если идет разговор о причине не открытия ордера, то, конечно, было бы полезно получать ответ от сервера в виде отрицательного числа с кодом состояния ордера - в обработке, реквота.... Считаю, что удобнее было бы получать ответ сервера не в виде события терминала, а в виде флага состояния последнего запроса - проверил флаги, повторил открытие ордера в случае необходимости или подождал пока реквоты закончатся, хотя следом напрашивается вопрос про очередь
отсылая запрос я передаю OrderSend() структуру result, будет ли изменяться состояние этой структуры в процессе прохождения её по OnTrade() или будет получен ответ единожды, те принимает ли терминал структуру в поступеньчатую обработку ?
Сергеев говорит что нет, я грешным делом по началу думал что да.
IgorM: по логике вещей нужно считать, что ордер выставлен при наличии ответа сервера в виде номера тикета или считать, что ордер не выставлен при возврате -1 , если идет разговор о причине не открытия ордера, то, конечно, было бы полезно получать ответ от сервера в виде отрицательного числа с кодом состояния ордера - в обработке, реквота.... Считаю, что удобнее было бы получать ответ сервера не в виде события терминала, а в виде флага состояния последнего запроса - проверил флаги, повторил открытие ордера в случае необходимости или подождал пока реквоты закончатся, хотя следом напрашивается вопрос про очередь
Именно, всё это нужно рассматривать на фоне нескольких ордеров, и обработки исполнения в OnTrade.
отсылая запрос я передаю OrderSend() структуру result, будет ли изменяться состояние этой структуры в процессе прохождения её по OnTrade() или будет получен ответ единожды, те принимает ли терминал структуру в поступеньчатую обработку ?
Сергеев говорит что нет, я грешным делом по началу думал что да.
OnTrade() - это просто обработчик события Trade - события "что-то изменилось в торговой ситуации". Оно возникает после прихода сообщения от торгового сервера. Значит, структура result, которую вернула OrderSend(), никак напрямую не связана с обработчиком OnTrade().
Rosh: OnTrade() - это просто обработчик события Trade - события "что-то изменилось в торговой ситуации". Оно возникает после прихода сообщения от торгового сервера. Значит, структура result, которую вернула OrderSend(), никак напрямую не связана с обработчиком OnTrade().
Да согласен, но я ведь могу вызвать состояние result внутри OnTrade() просто обратившись к глобально объявленой структуре, вопрос состоит именно в этом:
как меняется состояние result внутри OnTrade() ?
один раз и всё
по каждому изменению состояния ордера
Там вариантов всего два, ордер принят 10008 или (ордер исполнен или реквот)
Не всё так просто, поведение OrderSendAsync() должно немного измениться, чтобы позволить терминалу отправлять запросы после очистки очереди. Когда - не знаю.
Проясните пожалуйста моё заблуждение:
отсылая запрос я передаю OrderSend() структуру result, будет ли изменяться состояние этой структуры в процессе прохождения её по OnTrade() или будет получен ответ единожды, те принимает ли терминал структуру в поступеньчатую обработку ?
Сергеев говорит что нет, я грешным делом по началу думал что да.
по логике вещей нужно считать, что ордер выставлен при наличии ответа сервера в виде номера тикета или считать, что ордер не выставлен при возврате -1 , если идет разговор о причине не открытия ордера, то, конечно, было бы полезно получать ответ от сервера в виде отрицательного числа с кодом состояния ордера - в обработке, реквота.... Считаю, что удобнее было бы получать ответ сервера не в виде события терминала, а в виде флага состояния последнего запроса - проверил флаги, повторил открытие ордера в случае необходимости или подождал пока реквоты закончатся, хотя следом напрашивается вопрос про очередь
Проясните пожалуйста моё заблуждение:
отсылая запрос я передаю OrderSend() структуру result, будет ли изменяться состояние этой структуры в процессе прохождения её по OnTrade() или будет получен ответ единожды, те принимает ли терминал структуру в поступеньчатую обработку ?
Сергеев говорит что нет, я грешным делом по началу думал что да.
Именно, всё это нужно рассматривать на фоне нескольких ордеров, и обработки исполнения в OnTrade.
OnTrade() - это просто обработчик события Trade - события "что-то изменилось в торговой ситуации". Оно возникает после прихода сообщения от торгового сервера. Значит, структура result, которую вернула OrderSend(), никак напрямую не связана с обработчиком OnTrade().
Да согласен, но я ведь могу вызвать состояние result внутри OnTrade() просто обратившись к глобально объявленой структуре, вопрос состоит именно в этом:
как меняется состояние result внутри OnTrade() ?
Там вариантов всего два, ордер принят 10008 или (ордер исполнен или реквот)
как меняется состояние result внутри OnTrade() ?
Как только откроется торговля, вы сможете запустить пример и посмотреть при каких обстостоятельствах и как часто вызывается OnTrade().
я бы переписал блок OrderSendAsync так
я бы переписал блок OrderSendAsync так
Этой структуры там просто нет.