Mikhail Sukhov
|
Дата: 10.02.2011
Maxim:
Михаил, добрый день.
Рассматривали ли Вы более подробно данную проблему?
Есть ли какой либо прогресс?
Да, я нашел закономерность. Выложу 3.0.1 в конце недели.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Maxim
|
Дата: 19.04.2011
Михаил, вечер добрый.
К сожалению сообщаю, что данная ошибка не устранена окончательно.
В процессе торгов появляются случаи, когда заявка имеет статус Done,
но значение разницы Volume - Balance больше нуля, но меньше,
чем реальный объем сделок прошедших в Квике по этой заявке.
С данной ситуацией я уже столкнулся в третий раз.
К сожалению не удается произвести данную ошибку на тестовом Квике.
Возможно связано с тем, что поведение тестового Квика и реального отличаются.
Прошу Вас обратить внимание на данную ошибку и еще раз проанализировать Ваш код.
Немного удручает, что программа продает или покупает не то количество бумаг, которое необходимо.
Со своей стороны постараюсь добиться повторяемости ошибки в тестовом Квике.
|
|
|
|
Спасибо:
|
|
|
|
|
|
alexhat
|
Дата: 20.04.2011
|
|
|
|
|
Добрый день, Михаил.
Я обнаружил при работе (в боевом режиме с боевым квиком) аналогичную проблему. Зарегистрировался и нашел этот топик.
Ситуация такая (используется версия библиотеки 2.6.2 и асинхронный режим):
- Зарегистрирован ордер на продажу (SBER-RTSST)
- приходит сообщение об изменении ордера с новым статусом OrderStates.Done, при этом Balance = Volume
- Спустя некоторый промежуток времени приходит сообщение о новой сделке по этому ордеру
- Еще через некоторое время - сообщение об изменении ордера, где уже Balance = 0
В реальности алгоритмом выставляются подряд 2 ордера (по 2 разным инстументам) и при этом по второму ордеру этой "ошибки" нет - уже на втором шаге Balance = 0, но при этом после выставления заявки не приходит начальное сообщение NewOrders (сразу OrdersChanged - хотя здесь я не до конца уверен, м.б. это какая-то ошибка в моем коде).
Проблема очень критична, поскольку между пунктами 2 и 3 алгоритм успевает учесть этот ордер, т.к. уже не ждет по нему сделок.
Нужен какой-то work-around.
С уважением, Алексей.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Maxim
|
Дата: 20.04.2011
alexhat:
используется версия библиотеки 2.6.2
В 3.0.1 частично эта проблема была решена.
Рекомендую обновить библиотеку, хоть проблема и не решена окончательно.
|
|
|
|
Спасибо:
|
|
|
|
|
|
alexhat
|
Дата: 20.04.2011
Боюсь обновлятся, т.к. объем работы для перетестирования всего очень большой. Если других шансов нет, то конечно придется.
Но, как вы пишите, проблема в не была окончательно решена, поэтому я решил узнать, есть ли возможности обхода.
К.м.к, если есть возможность как-то получить точную информацию о том есть ли по ордеру в статусе Done еще не пришедшие сделки (или, например, окончательное общее число сделок на бирже) - то я смогу скорректировать приходящий статус ордера в своем алгоритме, анализируя количество еще непришедших сделок.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 21.04.2011
Давайте проинспектируем проблему:
- QuikTrader.IsAyncMode?
- Такие заявки снимаются, перерегистрируются или только регистрируются?
- Логи NewOrders OrdersChanged PreProcessDdeData.
|
|
|
|
Спасибо:
|
|
|
|
|
|
alexhat
|
Дата: 21.04.2011
Добрый день, Михаил.
- QuikTrader.IsAyncMode = true
- Только регистрируются
- Я обновился с 2.6.2 до 3.0.19 и сейчас ошибка не возникает (тут правда есть момент, что ошибка происходила пока я был в отпуске на весьма слабой машине у меня дома (т.е. в виндовой виртуальной машине, под VirtualBox), сейчас я на работе и здесь на родном виндовом сервере с производительностью проблем нет).
Если я снова увижу эту проблему на своем сервере, какой код вставить в обработчики сообщений NewOrders OrdersChanged PreProcessDdeData для логирования?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 21.04.2011
alexhat:
Если я снова увижу эту проблему на своем сервере, какой код вставить в обработчики сообщений NewOrders OrdersChanged PreProcessDdeData для логирования?
Чтобы можно было потом логи понять.
|
|
|
|
Спасибо:
|
|
|
|
|
|
alexhat
|
Дата: 21.04.2011
Mikhail Sukhov:
alexhat:
Если я снова увижу эту проблему на своем сервере, какой код вставить в обработчики сообщений NewOrders OrdersChanged PreProcessDdeData для логирования?
Чтобы можно было потом логи понять.
Я новичек в этой теме (stock#), прошу простить. поскольку я не знаю что именно в этих логах нужно выводить, можно дать конкретный пример кода?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 21.04.2011
alexhat:
Я новичек в этой теме (stock#), прошу простить. поскольку я не знаю что именно в этих логах нужно выводить, можно дать конкретный пример кода?
Номер заявки, транзакции, объем, баланс, состояние... Может еще что-то попутно понадобиться, так сложно сказать. Вы начните, там и видно будет.
|
|
|
|
Спасибо:
|
|
|
|
|