Всем доброго дня!
Настроен экспорт таблицы "Инструменты" с дополнительными колонками:
// Создание подключения к QUIK
_trader = new QuikTrader(path);
// Экпорт дополнительных колонок инструментов
var columns = _trader.SecuritiesTable.Columns;
columns.Add(DdeSecurityColumns.Strike);
columns.Add(DdeSecurityColumns.Volatility);
columns.Add(DdeSecurityColumns.UnderlyingSecurity);
columns.Add(DdeSecurityColumns.TheorPrice);
columns.Add(DdeSecurityColumns.OptionType);
columns.Add(DdeSecurityColumns.ExpiryDate);
columns.Add(DdeSecurityColumns.LastTradePrice);
columns.Add(DdeSecurityColumns.LastTradeVolume);
columns.Add(DdeSecurityColumns.LastTradeTime);
columns.Add(DdeSecurityColumns.BestAskPrice);
columns.Add(DdeSecurityColumns.BestBidPrice);
columns.Add(DdeSecurityColumns.IndexCurrentPrice);
В версии 4.0.22. изменения инструментов в QUIK корректно отражаются в состоянии объектов Security в S#. А в версии 4.0.23. параметры Security заполняются при старте и дальше не изменяются, хотя событие OnTraderSecurutiesChanged появляется правильно.
Kommentare (20)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
покажите распечатку полей по событию
Таблица инструментов:
При приходе события OnTraderSecurutiesChanged на 4.0.22:
4.0.23:
Похоже, что проблема касается только LastTrade, лучшие оффер и бид приходят корректно.
Так LastTrade у вас меняется по SecurutiesChanged? По скриншотам непонятно что не так.
Подпишитесь на событие и сделайте вывод LastTrade
Распечатка полей сделана как раз из обработки события. В 4.0.22 LastTrade меняется, в 4.0.23 - нет, имеет значение, какое было при запуске.
Запустил Sample из 4.0.23, открыл вкладку Инструменты. Последняя цена постоянно меняется. Т.е. Sample работает как надо.
Проверяйте у себя.
Мистика: перезакачал дистрибутив, распаковал и запустил своего робота - работает. Возможно, проблема была в том, что версию 23 я накатил поверх 22.
Вопрос закрыт, Александру спасибо!
Вопрос открыт заново.
Рано я радовался :) зато наконец удалось локализовать проблему.
Начну, пожалуй с самого начала: робот использует последнюю сделку инструмента, получая ее <u>не</u> из таблицы Все сделки (и соответственно, остлеживая событие OnTrades), а из таблицы Инструменты, в которой настроены дополнительно 3 столбца:
В версии 4.0.22 все работало прекрасно, мне не требовалось вообще использовать таблицу Все сделки, т.к. достаточную мне информацию я получал с помощью дополнительных 3 столбцов из Инструменты, отлавливая события SecurutiesChanged. В версии 4.0.23 такая штука больше не катит, последняя сделка не обновляется, об этом как раз раньше и писал.
Work-around: распаковка свежескачанного архива 4.0.23, запуск Sample из папки QUIK. Видим, что в окне Инструменты последняя сделка обновляется.
Теперь открываем MainWindow.xaml.cs и после строки 117 добавляем:
Запускаем и видим, что с включенным экспортом всех сделок поле последняя сделка не обновляется.
Если скачать релиз 4.0.22 и собрать программу с References от 22, то экспорт всех сделок работает правильно и инструмент обновляется, а также если выключить экспорт всех сделок, все равно все верно обновляется, но уже из таблицы Инструменты.
Я готов выложить как исходники, так и все что угодно. Сейчас прикладываю собранную версию Sample с 22 и 23 релизами + настройки QUIK
Может я что-то делаю не так? Комментарий к 4.0.23 не указывает на какие-либо изменения в экспорте из QUIK.
Скриншот квика приложите к этим своим строчкам.
Прикладываю.
з.ы. замена LastTradeTime на LastChangeTime ничего не меняет.
Спасибо, будет фикс. Либо в 4.1, либо в 4.0.24 (если он будет).
Это вам спасибо.
Такой вопрос: можно ли исправить эту ошибку? В новых (6.2+) версиях квика TransactionId == 0 стало появляться очень часто, а переходить на 4.1 это значит переписывать все связанное с получением свечей, что довольно затруднительно для одного конкретного проекта. Пожалуйста, поделитесь своими планами в отношении этой проблемы, спасибо!
Проблема, описанная в данной ветке не связана с TransactionId. Фикс для TransactionId я делал в 4.0.23, смотрите по новостям на форуме для подробностей.
ещё раз. фикс с TransactionId был начиная с версии 4.0.23 В ветке 4.0.х есть проблема, описанная в данном топике. Это не влияет на экспорт таблицы инструментов (что понимается под импортом таблицы я не совсем понял).
Нужно всё вместе со всеми фиксами - вам на 4.1
В любом случае переходить надо, т.к. та версия существенно лучше и стабильнее 4.0
да, 4.0 больше не поддерживается