Ошибка при переходе с 4.0.22 на 4.0.23
Atom Ответить
13.04.2012


Всем доброго дня!

Настроен экспорт таблицы "Инструменты" с дополнительными колонками:

Код
// Создание подключения к 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 Ответов
Alexander

Фотография
Дата: 13.04.2012
Ответить


покажите распечатку полей по событию
Спасибо:

Lester

Фотография
Дата: 16.04.2012
Ответить


Таблица инструментов:

Газпром

При приходе события OnTraderSecurutiesChanged на 4.0.22:

4.0.22

4.0.23:

4.0.23


Похоже, что проблема касается только LastTrade, лучшие оффер и бид приходят корректно.
Автор топика
Спасибо:

Alexander

Фотография
Дата: 16.04.2012
Ответить


Так LastTrade у вас меняется по SecurutiesChanged?
По скриншотам непонятно что не так.

Подпишитесь на событие и сделайте вывод LastTrade
Спасибо:

Lester

Фотография
Дата: 16.04.2012
Ответить


Распечатка полей сделана как раз из обработки события.
В 4.0.22 LastTrade меняется, в 4.0.23 - нет, имеет значение, какое было при запуске.
Автор топика
Спасибо:

Alexander

Фотография
Дата: 16.04.2012
Ответить


Lester Перейти
Распечатка полей сделана как раз из обработки события.
В 4.0.22 LastTrade меняется, в 4.0.23 - нет, имеет значение, какое было при запуске.


Запустил Sample из 4.0.23, открыл вкладку Инструменты.
Последняя цена постоянно меняется.
Т.е. Sample работает как надо.

Проверяйте у себя.
Спасибо:

Lester

Фотография
Дата: 16.04.2012
Ответить




Вопрос открыт заново.
Автор топика
Спасибо:

Lester

Фотография
Дата: 16.04.2012
Ответить


Рано я радовался :) зато наконец удалось локализовать проблему.

Начну, пожалуй с самого начала: робот использует последнюю сделку инструмента, получая ее не из таблицы Все сделки (и соответственно, остлеживая событие 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.
Автор топика
Спасибо:

Alexander

Фотография
Дата: 16.04.2012
Ответить


Скриншот квика приложите к этим своим строчкам.

Цитата:
var columns = Trader.SecuritiesTable.Columns;
columns.Add(DdeSecurityColumns.LastTradePrice);
columns.Add(DdeSecurityColumns.LastTradeVolume);
columns.Add(DdeSecurityColumns.LastTradeTime);
Спасибо:

Lester

Фотография
Дата: 16.04.2012
Ответить


Прикладываю.

з.ы. замена LastTradeTime на LastChangeTime ничего не меняет.

Автор топика
Спасибо:

Alexander

Фотография
Дата: 16.04.2012
Ответить


Спасибо, будет фикс. Либо в 4.1, либо в 4.0.24 (если он будет).
Спасибо:

Lester

Фотография
Дата: 17.04.2012
Ответить


Это вам спасибо.
Автор топика
Спасибо:

Roman0

Фотография
Дата: 28.05.2012
Ответить


Такой вопрос: можно ли исправить эту ошибку? В новых (6.2+) версиях квика TransactionId == 0 стало появляться очень часто, а переходить на 4.1 это значит переписывать все связанное с получением свечей, что довольно затруднительно для одного конкретного проекта. Пожалуйста, поделитесь своими планами в отношении этой проблемы, спасибо!
Спасибо:

Alexander

Фотография
Дата: 28.05.2012
Ответить


Roman0 Перейти
Такой вопрос: можно ли исправить эту ошибку? В новых (6.2+) версиях квика TransactionId == 0 стало появляться очень часто, а переходить на 4.1 это значит переписывать все связанное с получением свечей, что довольно затруднительно для одного конкретного проекта. Пожалуйста, поделитесь своими планами в отношении этой проблемы, спасибо!


Проблема, описанная в данной ветке не связана с TransactionId.
Фикс для TransactionId я делал в 4.0.23, смотрите по новостям на форуме для подробностей.
Спасибо:

Roman0

Фотография
Дата: 28.05.2012
Ответить


Alexander Mukhanchikov Перейти
Roman0 Перейти
Такой вопрос: можно ли исправить эту ошибку? В новых (6.2+) версиях квика TransactionId == 0 стало появляться очень часто, а переходить на 4.1 это значит переписывать все связанное с получением свечей, что довольно затруднительно для одного конкретного проекта. Пожалуйста, поделитесь своими планами в отношении этой проблемы, спасибо!


Проблема, описанная в данной ветке не связана с TransactionId.
Фикс для TransactionId я делал в 4.0.23, смотрите по новостям на форуме для подробностей.

Проблема в том, что нужна версия, в которой есть фикс для TransactionId, корректно импортируется таблица инструменты и присутствует старый способ получения свечей. В 4.0.22 нет SuppportManualOrders (сейчас посмотрел, в 4.1 вроде бы тоже нет?), в 4.0.23 ошибка с импортом.
Спасибо:

Alexander

Фотография
Дата: 28.05.2012
Ответить


ещё раз.
фикс с TransactionId был начиная с версии 4.0.23
В ветке 4.0.х есть проблема, описанная в данном топике. Это не влияет на экспорт таблицы инструментов (что понимается под импортом таблицы я не совсем понял).

Нужно всё вместе со всеми фиксами - вам на 4.1

В любом случае переходить надо, т.к. та версия существенно лучше и стабильнее 4.0
Спасибо:

Roman0

Фотография
Дата: 28.05.2012
Ответить


Alexander Mukhanchikov Перейти
ещё раз.
фикс с TransactionId был начиная с версии 4.0.23
В ветке 4.0.х есть проблема, описанная в данном топике. Это не влияет на экспорт таблицы инструментов (что понимается под импортом таблицы я не совсем понял).

Нужно всё вместе со всеми фиксами - вам на 4.1

В любом случае переходить надо, т.к. та версия существенно лучше и стабильнее 4.0

У меня стойкое чувство, что возникло какое-то недопонимание Smile
Цитата:
Спасибо, будет фикс. Либо в 4.1, либо в 4.0.24 (если он будет).

Вот это относится к ошибке описанной в этом топике (обновление таблицы инструменты, в частности LastTradePrice), которая присутствует в 4.0.23, так? Вопрос: есть ли версия без этой ошибки, со старым способом обработки свечей и фиксом нулевого TransactionId (SuppportManualOrders)?
А в 4.1 есть фикс для TransactionId? Я что-то не нашел в документации к 4.1 SuppportManualOrders, это как-то по-другому там называется?
Спасибо:

Alexander

Фотография
Дата: 28.05.2012
Ответить


Roman0 Перейти
Вот это относится к ошибке описанной в этом топике (обновление таблицы инструменты, в частности LastTradePrice), которая присутствует в 4.0.23, так? Вопрос: есть ли версия без этой ошибки, со старым способом обработки свечей и фиксом нулевого TransactionId (SuppportManualOrders)?
А в 4.1 есть фикс для TransactionId? Я что-то не нашел в документации к 4.1 SuppportManualOrders, это как-то по-другому там называется?



1) В 4.0.23 нет ошибки обновления таблицы инструментов. Есть только ошибка обновления Security.LastTrade по таблице инструментов
2) Нет, нету. Берите 4.1
3) Да, есть. не Suppport, а Support
Спасибо:

Roman0

Фотография
Дата: 28.05.2012
Ответить


Alexander Mukhanchikov Перейти
Roman0 Перейти
Вот это относится к ошибке описанной в этом топике (обновление таблицы инструменты, в частности LastTradePrice), которая присутствует в 4.0.23, так? Вопрос: есть ли версия без этой ошибки, со старым способом обработки свечей и фиксом нулевого TransactionId (SuppportManualOrders)?
А в 4.1 есть фикс для TransactionId? Я что-то не нашел в документации к 4.1 SuppportManualOrders, это как-то по-другому там называется?



1) В 4.0.23 нет ошибки обновления таблицы инструментов. Есть только ошибка обновления Security.LastTrade по таблице инструментов
2) Нет, нету. Берите 4.1
3) Да, есть. не Suppport, а Support

Большое спасибо! То есть 4.0.24 не будет точно?
Спасибо:

Alexander

Фотография
Дата: 28.05.2012
Ответить


Roman0 Перейти
Alexander Mukhanchikov Перейти
Roman0 Перейти
Вот это относится к ошибке описанной в этом топике (обновление таблицы инструменты, в частности LastTradePrice), которая присутствует в 4.0.23, так? Вопрос: есть ли версия без этой ошибки, со старым способом обработки свечей и фиксом нулевого TransactionId (SuppportManualOrders)?
А в 4.1 есть фикс для TransactionId? Я что-то не нашел в документации к 4.1 SuppportManualOrders, это как-то по-другому там называется?



1) В 4.0.23 нет ошибки обновления таблицы инструментов. Есть только ошибка обновления Security.LastTrade по таблице инструментов
2) Нет, нету. Берите 4.1
3) Да, есть. не Suppport, а Support

Большое спасибо! То есть 4.0.24 не будет точно?


да, 4.0 больше не поддерживается
Спасибо: Roman0

Roman0

Фотография
Дата: 28.05.2012
Ответить


Alexander Mukhanchikov Перейти
Roman0 Перейти
Alexander Mukhanchikov Перейти
Roman0 Перейти
Вот это относится к ошибке описанной в этом топике (обновление таблицы инструменты, в частности LastTradePrice), которая присутствует в 4.0.23, так? Вопрос: есть ли версия без этой ошибки, со старым способом обработки свечей и фиксом нулевого TransactionId (SuppportManualOrders)?
А в 4.1 есть фикс для TransactionId? Я что-то не нашел в документации к 4.1 SuppportManualOrders, это как-то по-другому там называется?



1) В 4.0.23 нет ошибки обновления таблицы инструментов. Есть только ошибка обновления Security.LastTrade по таблице инструментов
2) Нет, нету. Берите 4.1
3) Да, есть. не Suppport, а Support

Большое спасибо! То есть 4.0.24 не будет точно?


да, 4.0 больше не поддерживается

Еще раз спасибо! Smile
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy