1)Order.Comment присвоенное значение не меняется - в квике комментарий всегда "S#" 2)_trader_PositionsChanged event выдает повторно данные:
используется var position = obj.Last();
17:48:23.663;Position changed GZH1 начальное значение 25 текущее значение -16 blocked 0
17:48:23.663;Position changed RIH1 начальное значение -5 текущее значение 1 blocked 0
17:53:17.516;Position changed GZH1 начальное значение 25 текущее значение -16 blocked 0
17:53:17.516;Position changed RIH1 начальное значение -5 текущее значение 1 blocked 0
17:55:40.378;Position changed GZH1 начальное значение 25 текущее значение -16 blocked 0
17:55:40.378;Position changed RIH1 начальное значение -5 текущее значение 1 blocked 0
естественно никаких изменений небыло
Комментарии (18)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Спасибо за информацию. по п2 - было бы не плохо реализовать на будущее возможность включения/выключения внутри s# проверки на изменение позиции. а так получается квик маржу обновляет и отсылает все по dde...
Через QuikTrader невозможно понять, изменилось ли хоть что-то в таблице или нет. Поэтому QuikTrader на поступающие из ДДЕ данные.
сделать проверку типа такой:
ITrader.ReRegisterOrder не создает TranscationId в новом ордере Как бы это исправить 🤨
Версия? Плюс какой именно метод (у ITrader 2 метода с названием ReRegisterOrder)?
Принципиально... А как Вы проверяете что TransactionId не инициализируется? Биржа РТС?
Осталось пару неясных моментов, значит в Квике в колонке ID транзакции пусто после замены. Но Reregister возвращает order с ID транзакции. Если перезапустить программу то в ивенте "новые ордера" поступают ордера с ID транзакции = 0 Я так понимаю что s# следит за ордерами с заменой и сопоставляет замененные ордера с старыми ID транзакции.
Багу подтверждаю с перестановкой заявок. Нашел и вылечил. Доступный фикс в следующем 3.0.2.
И еще я заметил что классы содержащие в себе Security нельзя использовать для сравнения, например
Всегда срабатывает из-за изменений внутри Security -( Можно ли на будущее внутрь s# добавить явную реализацию операторов ? PS хотя возможно это из за того, что Position обновляется автоматически....
Заметил один момент - _trader_OrdersChanged срабатывает избыточно, тк его дергает событие из другого потока:
Реальное событие было 1 раз, но оно сработало 2 раза - "мои сделки" не должны активировать событие OrdersChanged, это не правильно. Кому надо, должен отлавливать NewMyTrade... Вариант 2: сделать внутреннюю проверку на реальное изменение ордера и не дергать просто так событие PS что еще хуже эти события не всегда по 2 срабатывают...
20:00:51.146 Thread: EventDispatcher thread #мои сделки LKH1 filled 5 avg_price 19288 LKH1 CumFilled 5 lastQty 5 lastPrice 19288 balance25 20:00:52.113 Thread: EventDispatcher thread #заявки LKH1 filled 5 avg_price 19288 LKH1 CumFilled 10 lastQty 5 lastPrice 19288 balance20
20:00:51.146 Thread: EventDispatcher thread #мои сделки LKH1 filled 5 avg_price 19288 LKH1 CumFilled 5 lastQty 5 lastPrice 19288 balance25 20:00:52.113 Thread: EventDispatcher thread #заявки LKH1 filled 5 avg_price 19288 LKH1 CumFilled 10 lastQty 5 lastPrice 19288 balance20
Был бы смысл? Темп не теряется, потому что заявка приходит позднее сделки только в случае запуска экспорта.
Если отослать вручную стоп-заявку в квик, то при выгрузке через дде вылетает эксепшн:
Если отослать вручную стоп-заявку в квик, то при выгрузке через дде вылетает эксепшн:
Таблица оформлена неправильно. Прочитайте документацию. Или используйте wnd файл.
Если отослать вручную стоп-заявку в квик, то при выгрузке через дде вылетает эксепшн:
Таблица оформлена неправильно. Прочитайте документацию. Или используйте wnd файл. Да так и было, одного столбцы нехватало...