Коннектор к IB (beta)
Atom Ответить
20.01.2013


Сделал коннектор к Interactive Brokers. Хочу предоставить для бета тестирования. В дальнейшем как коннектор будет распространяться пока не известно, но у тех, кто поможет в тестировании он точно будет.

Коннектор предоставляется только для тех, кто:


  • уже пишет роботов
  • является клиентом (чтобы иметь реальное подключение к торгам)
  • готов помочь в случае устранения ошибок (отдам с исходным кодом, чтобы было проще протестировать)
  • не является интернет фантомом, а реальный пользователь с этого или другого форума


Пишите сюда или в скайп mika_soukhov

Теги:


Спасибо:




18 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.01.2013
Ответить


Пару слов о реализации. Первоначально взял за основу решение от Динозавров. Решение не очень понравилось в связи с тем, что оно как-то странно выглядело с т.з. C# стиля. В последствие понял, что это просто порт Java кода, который предоставляет брокер (причем судя по версиям, далеко не up to date). Поэтому в дальнейшем смотрел на Java код. К изумлению, он оказался даже понятнее, чем C# порт (в котором я нашел довольно много ошибок, как и в самой документации IBLaugh ).
Автор топика
Спасибо:

gramp

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


отправил запрос в скайп
Спасибо:

Maxim

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


Михаил, привет.

Попробовал SampleIB на тестовом TWS.
Отправлять заявки получается.
Информация по заявкам приходит.
Портфель и позы тоже видны и изменяются в SampleIB.

А вот информации о сделках в SampleIB не появляется, хотя в TWS сделки появляются.

Не сталкивался ли ты с подобной ситуацией?
Может какие дополнительные настройки нужны в TWS (в доках не нашел ничего)?
Приходили ли у тебя сделки в SampleIB?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.10.2013
Ответить


API у ИБ не дает ленту тиков.
Автор топика
Спасибо:

Maxim

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


Извини, забыл уточнить, я имел ввиду свои сделки.

Ты имеешь ввиду, что свои сделки API тоже не дает?
Спасибо:

Maxim

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


Михаил, привет.

Видел ли ты предыдущий вопрос?
Можешь ли уточнить, получалось у тебя получать свои сделки из IB при помощи SampleIB?
Или IB не поддерживает этот функционал?
Спасибо:

Kazai Mazai

Фотография
Автор статей
Дата: 15.10.2013
Ответить


Maxim Перейти
Михаил, привет.

Видел ли ты предыдущий вопрос?
Можешь ли уточнить, получалось у тебя получать свои сделки из IB при помощи SampleIB?
Или IB не поддерживает этот функционал?



IB отдает информацию по позициям, openOrders, ordersStatus, и Execution.
Из этой инфы можно собрать сделки.

У меня свой коннектор к Ib, и у меня тоже траблы с появлением сделок примерно с 4.1.19.1
До этого, кажется, был на 4.1.16.1 и все было окей.

Беда в том, что еще и IB API обновилось.

Могут быть два источника проблемы.

IB что-то изменили, возможно, порядок отдачи execution, order status или open orders. Либо какой-то косяк с Id ордеров.
Но я проверил, все приходит, айдишники правильные, OpenOrders как и раньше приходит два раза.

Используются следующие методы, и поэтому вызывают подозрение:

StockSharp.Algo.BaseTrader.GetOrder(bool? isConditional, long transactionId)
Раньше был GetOrderByTransactionId(int id)

StockSharp.Algo.BaseTrader.GetOrder(StockSharp.BusinessEntities.Security, StockSharp.BusinessEntities.OrderTypes, long, System.Func<long,StockSharp.BusinessEntities.Order>, System.Func<StockSharp.BusinessEntities.Order,bool>) вроде бы не поменялся(по крайней мене внешне)

StockSharp.Algo.BaseTrader.GetOrder(StockSharp.BusinessEntities.Security, StockSharp.BusinessEntities.OrderTypes, long)

StockSharp.Algo.BaseTrader.AddMyTrade(StockSharp.BusinessEntities.Security, long, long, long, System.Func<long,StockSharp.BusinessEntities.Trade>, System.Action<StockSharp.BusinessEntities.MyTrade>)



Как только, так сразу попробую пересобрать своего трейдера со старым IB API, новым S# и наоборот.
Если что нить обнаружу, думаю, что это будет солюшеном для обоих коннекторов.

Беда, что проверить можно только в trading hours.














Спасибо:

Kazai Mazai

Фотография
Автор статей
Дата: 16.10.2013
Ответить


Kazai Mazai Перейти
Maxim Перейти
Михаил, привет.

Видел ли ты предыдущий вопрос?
Можешь ли уточнить, получалось у тебя получать свои сделки из IB при помощи SampleIB?
Или IB не поддерживает этот функционал?



IB отдает информацию по позициям, openOrders, ordersStatus, и Execution.
Из этой инфы можно собрать сделки.

У меня свой коннектор к Ib, и у меня тоже траблы с появлением сделок примерно с 4.1.19.1
До этого, кажется, был на 4.1.16.1 и все было окей.

Беда в том, что еще и IB API обновилось.

Могут быть два источника проблемы.

IB что-то изменили, возможно, порядок отдачи execution, order status или open orders. Либо какой-то косяк с Id ордеров.
Но я проверил, все приходит, айдишники правильные, OpenOrders как и раньше приходит два раза.

Используются следующие методы, и поэтому вызывают подозрение:

StockSharp.Algo.BaseTrader.GetOrder(bool? isConditional, long transactionId)
Раньше был GetOrderByTransactionId(int id)

StockSharp.Algo.BaseTrader.GetOrder(StockSharp.BusinessEntities.Security, StockSharp.BusinessEntities.OrderTypes, long, System.Func<long,StockSharp.BusinessEntities.Order>, System.Func<StockSharp.BusinessEntities.Order,bool>) вроде бы не поменялся(по крайней мене внешне)

StockSharp.Algo.BaseTrader.GetOrder(StockSharp.BusinessEntities.Security, StockSharp.BusinessEntities.OrderTypes, long)

StockSharp.Algo.BaseTrader.AddMyTrade(StockSharp.BusinessEntities.Security, long, long, long, System.Func<long,StockSharp.BusinessEntities.Trade>, System.Action<StockSharp.BusinessEntities.MyTrade>)



Как только, так сразу попробую пересобрать своего трейдера со старым IB API, новым S# и наоборот.
Если что нить обнаружу, думаю, что это будет солюшеном для обоих коннекторов.

Беда, что проверить можно только в trading hours.



Откатил свой коннектор до S# 4.1.15.0, а IB API оставил новое. Все окей.
В 4.1.16.1 изменился механизм состояний ордеров, вероятно поэтому ордера не подхватываются в mytrades


Спасибо:

Maxim

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


Kazai Mazai, а какую версию IB ты используешь?
Спасибо:

Kazai Mazai

Фотография
Автор статей
Дата: 18.10.2013
Ответить


Maxim Перейти
Kazai Mazai, а какую версию IB ты используешь?


Тепер снова 4.1.15.0
Спасибо:

Maxim

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


Я имел ввиду не версию стокшарпа.

Вопрос какой версией TWS ты пользуешься?

И второй вопрос: ты используешь свой коннектор для связи с TWS или стокшарповский коннектор?
Спасибо:

Kazai Mazai

Фотография
Автор статей
Дата: 24.10.2013
Ответить


Maxim Перейти
Я имел ввиду не версию стокшарпа.

Вопрос какой версией TWS ты пользуешься?

И второй вопрос: ты используешь свой коннектор для связи с TWS или стокшарповский коннектор?


9.70 бета csharp api.

Там, кстати, косяк с знаком разделителя в чтении double из сокета =)


Свой использую.
Спасибо: Maxim

dij1

Фотография
Курсы
Дата: 05.11.2013
Ответить


Коннектор к IB в последней версии неработоспособен. Очень жаль, очередное разочарование.



[img=http://imageshack.us/photo/my-images/89/8brh.jpg/]error[/img]

[img=http://imageshack.us/photo/my-images/15/sl8g.jpg/]er2[/img]
Спасибо:

Андрей Шабанов

Фотография
Автор статей
Дата: 06.11.2013
Ответить


[quote=dij1;28018]Коннектор к IB в последней версии неработоспособен. Очень жаль, очередное разочарование.


буквально вчера запускал демо IB и обертку из сэмплов, вроде все отображал вполне нормальноGlare

Спасибо:

dij1

Фотография
Курсы
Дата: 06.11.2013
Ответить


Насчет демо ничего не могу сказать, но на реальном счету выдают две вышеописанные ошибки. Как погуглил, там ошибка региональных настроек или что-то вроде того. На самом деле, IB выпустили уже свой коннектор, так что вопрос скорее в том, как его с S# подружить.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.11.2013
Ответить


dij1 Перейти
Как погуглил, там ошибка региональных настроек или что-то вроде того.


Если ошибка со скрина, то это не региональные настройки.

Коннектор в ИБ готов протестировать через скайп.
Автор топика
Спасибо:

Petr

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


Добрый день! Я попробовал запустить пример коннектора (IBSample) на версии 4.2.2.24, но при нажатии кнопки подключить выдает следующую ошибку:

System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. в StockSharp.Algo.Connector.ProcessEvents(Action handler, Bolean enqueue)

В отладчике пишет информацию:

mscorlib.dll!System.Threading.Monitor.Wait(object obj, int millisecondsTimeout, bool exitContext)
mscorlib.dll!System.Threading.Monitor.Wait(object obj)
StockSharp.InteractiveBrokers.dll!#=qu8stL08l5q5pqNTNMXblWZ9Qk9ffYQk79urbQKYz2zzCobxJghuaQYESVhkbBFCE.#=qDoe3YItxzeLBR9Y3HY3zQA==(bool #=qs37dW5RKXxvuXN677jNdMg==)
StockSharp.InteractiveBrokers.dll!StockSharp.InteractiveBrokers.IBTrader.#=qS0GkCRV0Uy_ivxuGarjG4oBPCa9vSt5Vj_FuQksyKdU=()
StockSharp.InteractiveBrokers.dll!StockSharp.InteractiveBrokers.IBTrader.#=qkGgjUOSI2axsj0WkwavP$39d3wIDVrE4xFzQGmsVl94=()
Ecng.Common.dll!Ecng.Common.ThreadingHelper.Thread.AnonymousMethod__f()
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state)
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state)
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart()
[Переход от машинного кода к управляемому]


Потом я попробовал запустить коннектор более старой версии (4.1.19.1) и все работает.
Можете помочь?
Спасибо:

Laconsta

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


Добрый день! Коннектор к Interactive Brokers в данный момент существует? Планируется ли рабочая версия?
Спасибо:


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

loading
clippy