Подписка на облигации ECBOT

Я использую C# Interactive Brokers API. Я успешно подписываюсь на ES, несколько валют, акции и т. Д. Мне нужно подписаться на котировки ZN и ZT, но это не работает, так как я не получаю обратного вызова или сообщения об ошибке:

Contract zn = new Contract();
                zn.Currency = "USD";
                zn.Multiplier = "1000";
                zn.SecType = "FUT";
                zn.Symbol = "ZN";
                zn.LocalSymbol = "ZNZ5";
                zn.Exchange = "ECBOT";
                zn.PrimaryExch = "ECBOT";

Subscribe(zn);

Я тоже пробовал

Contract zn = new Contract();
                zn.Currency = "USD";
                zn.Multiplier = "2000";
                zn.SecType = "FUT";
                zn.Symbol = "ZT";
                zn.LocalSymbol = "201512";
                zn.Exchange = "SMART";
                zn.PrimaryExch = "SMART";

А также

Contract zn = new Contract();
                zn.Currency = "USD";
                zn.Multiplier = "1000";
                zn.SecType = "FUT";
                zn.Symbol = "ZN";
                zn.LocalSymbol = "ZN   DEC 15";
                zn.Exchange = "SMART";
                zn.PrimaryExch = "SMART";

Я пробовал один пробел после ZN и три пробела после zn.LocalSymbol, как я читал, это был правильный путь.

Не уверен, что я делаю не так?

2 ответа

Решение

Для ZT а также ZN фьючерсы, вы должны указать ECBOT, не можете использовать SMART, Поле, которое я пропустил, было

zt.LastTradeDateOrContractMonth = "20151231";

Вы должны увидеть точную дату. Вы можете получить его от самого TWS, щелкнув правой кнопкой мыши на символе и просмотрев информацию о контракте.

Кроме того, если я введу LocalSymbol для этого контракта, кажется, нарушить его.

Укажите срок действия, а не локальный символ (строка "201512"). Вы должны использовать один или другой, вы используете символ и локальный символ. Я никогда не использовал местный символ, и я думаю, что это может быть "ZN DEC 15" в любом случае.

Кроме того, здесь вы не используете primaryExchange, это связано с неоднозначностью маршрутизации SMART. Вы должны просто установить обмен на ECBOT.

Для ZN минимальная информация должна быть

Contract zn = new Contract();
            zn.Currency = "USD";//probably not even needed
            zn.SecType = "FUT";
            zn.Symbol = "ZN";
            zn.Expiry = "201512;
            zn.Exchange = "ECBOT";

Вы можете попробовать пример Java-API, я не думаю, что есть образец C#. Попробуйте запросить данные, чтобы увидеть, что работает.

Я только что заметил, что вы говорите, что сообщения об ошибке нет. Должен быть один, поэтому убедитесь, что вы получаете сообщения об ошибках от API.

Другие вопросы по тегам