Всем доброго дня!
Настроен экспорт таблицы "Инструменты" с дополнительными колонками:
// Создание подключения к 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 появляется правильно.
コメント (20)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
покажите распечатку полей по событию
Таблица инструментов:
При приходе события 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 больше не поддерживается