Рано я радовался :) зато наконец удалось локализовать проблему.
Начну, пожалуй с самого начала: робот использует последнюю сделку инструмента, получая ее
не из таблицы Все сделки (и соответственно, остлеживая событие OnTrades), а из таблицы Инструменты, в которой настроены дополнительно 3 столбца:
- LastTradePrice
- LastTradeVolume
- LastTradeTime
В версии 4.0.22 все работало прекрасно, мне не требовалось вообще использовать таблицу Все сделки, т.к. достаточную мне информацию я получал с помощью дополнительных 3 столбцов из Инструменты, отлавливая события SecurutiesChanged.
В версии 4.0.23 такая штука больше не катит, последняя сделка не обновляется, об этом как раз раньше и писал.
Work-around: распаковка свежескачанного архива 4.0.23, запуск Sample из папки QUIK.
Видим, что в окне Инструменты последняя сделка обновляется.
Теперь открываем MainWindow.xaml.cs и после строки 117 добавляем:
Код
var columns = Trader.SecuritiesTable.Columns;
columns.Add(DdeSecurityColumns.LastTradePrice);
columns.Add(DdeSecurityColumns.LastTradeVolume);
columns.Add(DdeSecurityColumns.LastTradeTime);
Запускаем и видим, что с включенным экспортом всех сделок поле последняя сделка не обновляется.
Если скачать релиз 4.0.22 и собрать программу с References от 22, то экспорт всех сделок работает правильно и инструмент обновляется, а также если выключить экспорт всех сделок, все равно все верно обновляется, но уже из таблицы Инструменты.
Я готов выложить как исходники, так и все что угодно.
Сейчас прикладываю собранную версию Sample с 22 и 23 релизами + настройки QUIKМожет я что-то делаю не так? Комментарий к 4.0.23 не указывает на какие-либо изменения в экспорте из QUIK.