Разработка двух Python скриптов (RabbitMQ+IB) (примеры дам)

30 000 руб. за проект
16 мая 2021, 20:04 • 2 отклика • 50 просмотров
Коллеги, здравствуйте.

Бюджет — обсуждаемый. Сроки — «вчера» :)
PS. Если у вас есть хорошие знания Python и опыт работы с RabbitMQ и можете незамедлительно взяться за проект — пишите, договоримся!

Работающие примеры прилагаю — надо только собрать все воедино и подключить к RabbitMQ.
К сожалению, плохо знаю Python, поэтому не могу закончить самостоятельно.

Задача:
Необходимо создать два Python скрипта, коммуницирующих с платформой Interactive Brokers [далее - IB] (библиотеку и рабочий пример подключения - прикладываю) и отправляющих информацию в очередь RabbitMQ (опять же, стандартная библиотека - подойдет https://www.rabbitmq.com/devtools.html#python-dev).

Важный нюанс:
При подключении к платформе указывается порядковый ID клиента.
Клиент с номером «0» - всегда главный, получающий всю информацию в отличии от всех остальных ID «больше 0».
В связи с этим, при любых штатных/не штатных ситуациях - отключение от платформы IB должно выполняться корректно. В противном случае, снова подключиться к платформе с «Cleint ID=0» получится не ранее чем через пол часа/час... по таймауту от платформы и принудительному закрытию сессии.
Поэтому, стабильность работы - ключевой фактор. Не экономим на проверках, падать не должно.

1. Первый скрипт.

После запуска:
* Поддерживает постоянное (асинхронное) соединение с платформой IB по доступам, указанным в файле-конфигурации;
* Поддерживает постоянное (асинхронное - 1 задача выполняется в 1 момент времени) соединение с RabbitMQ сервером, слушает несколько очередей на предмет запросов (список всех возможных запросов прилагаю) + «подписывается» на события платформы IB и отправляет в нужную очередь полную информацию о этих событиях для последующей обработки в другой системе;

2. Второй скрипт.

После запуска:
* Поддерживает постоянное (синхронное - 1 задача выполняется в 1 момент времени) соединение с RabbitMQ сервером, слушает несколько очередей на предмет запросов (список всех возможных запросов прилагаю);

По запросу сообщения из очереди:
* Подключается к платформе IB по доступам, указанным в сообщении из очереди;
* Выполняет задание;
* Отключается от платформы и ждет дальнейших инструкций;

В приложении - более развернутое задание... своими словами постарался описать подробно.
+ пример подключения к платформе TWS.

PS. Почему-то не могу загрузить примеры — сайт не разрешает...

Файлы