Сделал коннектор к Interactive Brokers. Хочу предоставить для бета тестирования. В дальнейшем как коннектор будет распространяться пока не известно, но у тех, кто поможет в тестировании он точно будет.
Коннектор предоставляется только для тех, кто:
- уже пишет роботов
- является клиентом (чтобы иметь реальное подключение к торгам)
- готов помочь в случае устранения ошибок (отдам с исходным кодом, чтобы было проще протестировать)
- не является интернет фантомом, а реальный пользователь с этого или другого форума
Пишите сюда или в скайп mika_soukhov
评论 (18)
登录 或 创建账户, 登录或注册以发表评论
Пару слов о реализации. Первоначально взял за основу решение от Динозавров. Решение не очень понравилось в связи с тем, что оно как-то странно выглядело с т.з. C# стиля. В последствие понял, что это просто порт Java кода, который предоставляет брокер (причем судя по версиям, далеко не up to date). Поэтому в дальнейшем смотрел на Java код. К изумлению, он оказался даже понятнее, чем C# порт (в котором я нашел довольно много ошибок, как и в самой документации IB😂 ).
отправил запрос в скайп
Михаил, привет.
Попробовал SampleIB на тестовом TWS. Отправлять заявки получается. Информация по заявкам приходит. Портфель и позы тоже видны и изменяются в SampleIB.
А вот информации о сделках в SampleIB не появляется, хотя в TWS сделки появляются.
Не сталкивался ли ты с подобной ситуацией? Может какие дополнительные настройки нужны в TWS (в доках не нашел ничего)? Приходили ли у тебя сделки в SampleIB?
API у ИБ не дает ленту тиков.
Извини, забыл уточнить, я имел ввиду свои сделки.
Ты имеешь ввиду, что свои сделки API тоже не дает?
Михаил, привет.
Видел ли ты предыдущий вопрос? Можешь ли уточнить, получалось у тебя получать свои сделки из 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
Kazai Mazai, а какую версию IB ты используешь?
Тепер снова 4.1.15.0
Я имел ввиду не версию стокшарпа.
Вопрос какой версией TWS ты пользуешься?
И второй вопрос: ты используешь свой коннектор для связи с TWS или стокшарповский коннектор?
9.70 бета csharp api.
Там, кстати, косяк с знаком разделителя в чтении double из сокета =)
Свой использую.
Коннектор к IB в последней версии неработоспособен. Очень жаль, очередное разочарование.
Коннектор к IB в последней версии неработоспособен. Очень жаль, очередное разочарование.
буквально вчера запускал демо IB и обертку из сэмплов, вроде все отображал вполне нормально😒
Насчет демо ничего не могу сказать, но на реальном счету выдают две вышеописанные ошибки. Как погуглил, там ошибка региональных настроек или что-то вроде того. На самом деле, IB выпустили уже свой коннектор, так что вопрос скорее в том, как его с S# подружить.
Если ошибка со скрина, то это не региональные настройки.
Коннектор в ИБ готов протестировать через скайп.
Добрый день! Я попробовал запустить пример коннектора (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) и все работает. Можете помочь?
Добрый день! Коннектор к Interactive Brokers в данный момент существует? Планируется ли рабочая версия?