← Zurück

Странности поведения Order.State

Сегдня произошел забавеый случай. Вот выкладываю кусок лога, я в нем сотавил только значимые записи

16:44:13,703 - Sell limit. GZU0 BA = 16281, BAinMD = 16280 order price = 16280, TransId = 57362 16:44:14,062 - I AM CANCEL ORDER 57362 16:44:14,625 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 18, State = Done, Status = Done 16:44:14,625 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 13, State = Active, Status = Done 16:44:14,781 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 6, State = Active, Status = Done 16:44:15,140 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 1, State = Done, Status = Done

то есть выставилась заявка на 20 конкрактов, потом изза того что сигнал изменился, я отправил снятие заявки, в результате в OrderChaged пришла строка

16:44:14,625 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 18, State = Done, Status = Done

в потом в OrderChaged пришло строки 16:44:14,625 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 13, State = Active, Status = Done 16:44:14,781 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 6, State = Active, Status = Done 16:44:15,140 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 1, State = Done, Status = Done

получается что заявка была активна, потом Done, потом снова активна?

16:44:15,140 - Name = GAZP, TransID = 57362, Id = 2177093423, Vol = 20, Bal = 1, State = Done, Status = Done - это заявка реально снялась. так же прилагаю скрин с заявками (Orders.jpeg)

War dieses Thema hilfreich?

Thema teilen

Kommentare (13)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

Асинхронный режим? И еще, а почему в Квике время выставления и снятия для заявки одинаковое?

Tauler
Tauler Autor

Асинхронные. ну вот так заявку выставил - и сигнал ушел - надо снимать. эт овсе в рамках одной секнуды, на деле прошло около полсекунды

16:44:13,703 - Sell limit. GZU0 BA = 16281, BAinMD = 16280 order price = 16280, TransId = 57362 16:44:14,062 - I AM CANCEL ORDER 57362

Mikhail Sukhov
Mikhail Sukhov

Ок, понятно. Буду разбираться. По возникновению вопросов - отпишусь. Примерно понятно где. Я некоторую эвристику вставлял в состояния заявок (чтобы побыстрее менять ее состояния по некоторым признакам, например, когда стоп активировал производную, значит он матчед и т.д.), видимо оно и глючит.

Заметил на скрине разницу с логом в 2-3 секунды.

Tauler
Tauler Autor

Кстати есть еще несколько наблюдей насчет Order.Status - чуть попзже постараюсь внятно сформулировать. Прблема похожая - приходит заявка со State.Done, только в Status у нее по тем или иным причнам стоит NotDone или NotValidate - (первый случай -когда заявки исполняется в несколько сделок, второй - пытаюсь снять заявку со статусом Active , но на бирже она походу уже исполнена).В таких слкчаях тоже приходят заяки так же - State.Done но баланс меняется.

Tauler
Tauler Autor

Ну лог то по локальному времени компа, а не биржевому

Mikhail Sukhov
Mikhail Sukhov

Насчет NotValidated - вполне закономерное поведения. Статусов у заявки может быть много. При регистрации - один статус, при снятии - второй. По хорошему надо делать коллекцию статусов, как я сделал с сообщениями

http://stocksharp.com/doc/help/html/P_Ecng_Trading_BusinessEntities_Order_Messages.htm

но это будет просто не удобно использовать.

Насчет второго, надо проверить самому... Выглядит как баг Квика.

А разрешилась ситуация со статусом 13?

Tauler
Tauler Autor

да нет. просто я подстроился под проблему и все. это говорят биржа сама снимает, когда колво транзакций закшкаливает. это вылезло на тестка, когда я туда сюда 100 акций гонял часто. видимо был превышен какой то тайны лимит количества заявок в единицу времени (может даже у брокера)

Tauler
Tauler Autor

Получает что State.Done рановато выставляется?

Mikhail Sukhov
Mikhail Sukhov

Пока не смотрел... Не думаю, думаю неправильное поведение - когда Active снова перевыставляеца. Состояние заявки - оно ведь еще и по сделкам идет. А они приходят раньше чем заявки обновляются.

Tauler
Tauler Autor

А они приходят раньше чем заявки обновляются.

ну а как же тогда понимать что с заявкой все ? если она приходит Done, а потом еще и еще Done, но с разными балансами? У меня же арбитраж, это очень важно.

Mikhail Sukhov
Mikhail Sukhov

Будет фикс в ближайшее время.

Tauler
Tauler Autor

вот смотрите - снова

12:35:23,609 - Name = GAZP, TransID = 44699, Id = 2188980920, Vol = 20, Bal = 12, State = Done, Status = Done 12:35:23,625 - Name = GAZP, TransID = 44699, Id = 2188980920, Vol = 20, Bal = 5, State = Done, Status = Done

и со статусом повторилась ситуация

12:05:24,859 - Name = St_Ri, TransID = 38699, Id = 2188596122, Vol = 2, Bal = 1, State = Done, Status = NotValidated 12:05:25,859 - Name = St_Ri, TransID = 38699, Id = 2188596122, Vol = 2, Bal = 0, State = Done, Status = NotValidated

а фикс будет на какую версию стокшарпа?

Mikhail Sukhov
Mikhail Sukhov

Фикс - как отдельная версия. 2.3.