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

API 4.2.2.24. Несколько ошибок
Atom
4/1/2014
vk37


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

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

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

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

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

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

Tags:


Thanks:


vk37

Avatar
Date: 4/3/2014
Reply


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

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

vk37

Avatar
Date: 4/3/2014
Reply


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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 4/5/2014
Reply


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



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


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy