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


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

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)


Теги:


Спасибо:




13 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.08.2010
Ответить


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

Спасибо:

Tauler

Фотография
Дата: 20.08.2010
Ответить


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

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

Фотография
Автор статей Программист Трейдер
Дата: 20.08.2010
Ответить


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

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

Спасибо:

Tauler

Фотография
Дата: 20.08.2010
Ответить


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

Автор топика
Спасибо:

Tauler

Фотография
Дата: 20.08.2010
Ответить


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.08.2010
Ответить


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

https://stocksharp.ru/doc/help/html/P_Ecng_Trading_BusinessEntities_Order_Messages.htm

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

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

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

Спасибо:

Tauler

Фотография
Дата: 20.08.2010
Ответить


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

Автор топика
Спасибо:

Tauler

Фотография
Дата: 20.08.2010
Ответить


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.08.2010
Ответить


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

Спасибо:

Tauler

Фотография
Дата: 20.08.2010
Ответить


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

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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.08.2010
Ответить


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

Спасибо:

Tauler

Фотография
Дата: 23.08.2010
Ответить


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

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

Фотография
Автор статей Программист Трейдер
Дата: 24.08.2010
Ответить


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

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy