API 4.2.2.24. Несколько ошибок
Atom
01.04.2014
vk37


Во вложении дебаг лог.

Ошибка 1. Выполняю поиск по коду инструмента:
Код
                            var criteria = new Security()
                            {
                                Code = "@ES#",
                            };

                            _connector.LookupSecurities(criteria);
Событие LookupSecuritiesResult срабатывает 4 раза и возвращает все 4 раза @ES#@CMEMINI. Собственно не нравится, что срабатывает 4 раза.

Ошибка 2. Выполняю тот же поиск по коду инструмента:
Код
                            var criteria = new Security()
                            {
                                Code = "@ES#",
                            };

                            _connector.LookupSecurities(criteria);
Событие NewSecurities возвращает 2 инструмента: @ES#@CME и @ES#@CMEMINI. Не нравится то, что это, похоже, один и тот же инструмент.

Ошибка 3. Регистрирую один инструмент @ES#@CMEMINI (который получен через LookupSecurities) на получение рыночных данных по измемениям инструмента, сделкам, стаканам:
Код
                        _connector.RegisterSecurity(security);
                        _connector.RegisterTrades(security);
                        _connector.RegisterMarketDepth(security);
В результате сделки и часть изменений по инструменту поступают с кодом биржи CMEMINI, а часть изменений инструментов с кодом биржи CME. При сохранении изменений инструментов на диск получаются 2 разных инструмента. См. скриншот.
Log.zip 30 KB (276) Untitled.png 104 KB (258)

Теги:


Спасибо:


vk37

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


Цитата:
В результате сделки и часть изменений по инструменту поступают с кодом биржи CMEMINI, а часть изменений инструментов с кодом биржи CME. При сохранении изменений инструментов на диск получаются 2 разных инструмента. См. скриншот.

Возможно, если не получится найти более удачных решений, можно решить вопрос так:
Код
class CustomSecurityIdGenerator : SecurityIdGenerator
{
    public override string GenerateId(string secCode, ExchangeBoard board)
    {
        return secCode + "@IQ";
    }
}
Коды инсрументов у IQ, насколько я понимаю, уникальные.
Спасибо:

vk37

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


vk37
Ошибка 1. Выполняю поиск по коду инструмента:
Код
                            var criteria = new Security()
                            {
                                Code = "@ES#",
                            };

                            _connector.LookupSecurities(criteria);
Событие LookupSecuritiesResult срабатывает 4 раза и возвращает все 4 раза @ES#@CMEMINI. Собственно не нравится, что срабатывает 4 раза.
Каждый из этих вызовов приводит к срабатыванию события LookupSecuritiesResult:
Код
                        _connector.RegisterSecurity(security);
                        _connector.RegisterTrades(security);
                        _connector.RegisterMarketDepth(security);

Спасибо:

Mikhail Sukhov

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


vk37
Каждый из этих вызовов приводит к срабатыванию события LookupSecuritiesResult:
Код
                        _connector.RegisterSecurity(security);
                        _connector.RegisterTrades(security);
                        _connector.RegisterMarketDepth(security);



Это не ошибка. Первоначально у коннектора нет информации об инструменте. Он его запрашивает у IQFeed. Все методы RegisterXXX асинхронные. Отсюда и 3 вызова.
Спасибо:


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

loading
clippy