Торговый алгоритм на Python для IB.API: установка и настройка

Это вторая статья в серии про работу с терминалом Trader Workstation от брокера Interactive Brokers.

Здесь рассмотрим пошаговую установку всего программного комплекса необходимого для работы с терминалом.

В конце статьи вы будете обладать программным окружением, которое позволит создавать программы на 🐍Python3, работающие с терминалом TWS.

Установка  и настройка:

  • Oracle VirtualBox — виртуальная машина, на которую поставим операционную систему.
  • Ubuntu Desktop Linux — операционная система, в которой будем работать с Python.
  • Python — интерпретатор для языка программирования.
  • TWS Software (Trade Workstation) — терминал от брокера Interactive Brokers.
  • IB API — API, который позволит работать с терминалом TWS .

Обратите внимание, все программное окружение будет установлено на виртуальную машину. Это сделано специально, чтобы у вас не возникло вопросов, связанных со спецификой вашей операционной системы.

💾Шаг 1: Установка VirtualBox

VirtualBox — это программа-эмулятор виртуального компьютера. Мной она выбрана за то, что самая надежная и стабильная из всех бесплатных программ подобного класса.

Ссылка для скачивания: https://www.virtualbox.org/wiki/Downloads
Актуальная версия (на момент написания статьи): 5.2.2

Переходим по ссылке выше и выбираем операционную систему. Загружаем дистрибутив VirtualBox.

Следующим шагом скаченный файл надо запустить и пройти процесс установки, который начнется вот с такого окна:

Нажимаем кнопку Продолжить. Инсталятор перейдет к шагу “Тип установки”:

В этом окне предлагается выбрать: установить VirtualBox для всех пользователей компьютера или только для вас. Нажимаем кнопку Установить.

Примечание! Если за Вашим компьютером работают другие пользователи под своими учетными записями, Вы можете нажать кнопку Изменить размещение установки…, далее выбрать установку только для Вашего пользователя. Но данный вопрос выходит за рамки данной статьи.

Начнется процесс установки:

Данный процесс может занять от нескольких секунд до нескольких минут. Зависит от мощности вашего компьютера. После установки откроется последнее окно инсталятора:

Нажимаем кнопку Закрыть.

На этом установка VirtualBox завершена. Установкой и настройкой виртуальной машины мы займемся позже, сразу как только получим дистрибутив операционной системы Ubuntu.

💾Шаг 2: Загрузка дистрибутива Ubuntu

Ссылка для скачивания: https://www.ubuntu.com/download/desktop
Актуальная LTS версия (на момент написания мануала): 16.04.3 LTS

Переходим по ссылке выше. Далее есть два сценария закачки:

  1. Нажмите кнопку Download. На следующей странице промотайте вниз и нажмите на ссылку Not now, take me to the download. Начнется процесс закачки и откроется страница с надписью Thank you for downloading Ubuntu Desktop.
  2. Нажмите на ссылку Alternative downloads and torrents. На следующей странице можно выбрать альтернативные способы закачки, включая закачку с помощью Torrent-клиентов.

Теперь можно создавать и настраивать виртуальную машину.

🛠️Шаг 3: Создание виртуальной машины VirtualBox.

Важно! С этого момента будут вводиться определенные специфические данные (имя компьютера, логин пользователя и т.д.). Вы можете вводить такие же, как в данной статье, можете применять свои. В последнем случае вам придется учитывать то, что вводили именно вы.

Открываем ранее установленный VirtualBox. При первом запуске он встретит нас окном приветствия:

Нажимаем кнопку Создать. Откроется следующее окно:

Вводим:

  • Имя — Ubuntu 16.04 Algotrading
  • Тип — Linux
  • Версия — Ubuntu (64-bit)

Нажимаем кнопку Продолжить. Откроется следующее окно:

Оставляем 1024 МБ.

Нажимаем кнопку Продолжить. Откроется следующее окно:

Оставляем отметку Создать новый виртуальный жесткий диск.

Нажимаем кнопку Создать. Откроется следующее окно:

Оставляем VDI (Virtual Disk Image).

Нажимаем кнопку Продолжить. Откроется следующее окно:

Оставляем Динамический виртуальный жесткий диск.

Нажимаем кнопку Продолжить. Откроется следующее окно:

В текстовом поле указывается имя файла, который будет представлять из себя жесткий диск виртуальной операционной системы. Оставляем Ubuntu 16.04 Algotrading.

Горизонтальным бегунком или в текстовом поле справа от него можно настроить объем данного файла. Оставляем его равным 10,00 ГБ.

Нажимаем кнопку Создать. VirtualBox вернется к своему первоначальному окну. Теперь в списке (в левой части окна) появится наша машина:

На этом создание виртуальной машины завершено. Теперь остается подготовить ее к установке Ubuntu.

🛠️Шаг 4: Подготовка виртуальной машины

Виртуальная машина готова к запуску, но не готова к установке Ubuntu. Исправим это!

Кликаем в списке на нашу машину Ubuntu 16.04 Algotrading и нажимаем кнопку Настроить. Появится меню настроек нашей виртуальной машины:

В верхней части данного меню расположены разные вкладки.
Переходим на вкладку Система -> Материнская плата.

В окне Порядок загрузки снимаем галочку с пункта Гибкий диск.

Пункт Оптический диск с помощью стрелок справа от окна переносим в самый верх.

Пункт Жесткий диск с помощью тех же стрелок переносим вверх, но так, чтобы он оказался под пунктом Оптический диск.

Все остальные настройки оставляем без изменений. Финальные настройки:

Разделы Процессор и Ускорение менять не надо.

Переходим на вкладку Дисплей. На вкладке Экран меняем значение Видеопамяти на 128 МБ. Вкладка должна выглядеть вот так:

Переходим на вкладку Носители:

В левой части окна указаны носители, которые доступны сейчас нашей виртуальной машине. Идем снизу вверх:

  • Контроллер: SATA — тут указан файл созданного ранее жесткого диска. Оставляем как есть.
  • Контролер: IDE — тут надо внести важное изменение: нажимаем на надпись пусто — справа отобразится окно настройки оптического привода:

Находим пункт Оптический привод. В выпадающем списке указан Вторичный мастер IDE, не трогаем это. Еще правее изображен CD-диск. Нажимаем на него и в появившемся меню выбираем пункт Выбрать образ оптического диска… В появившемся окне выбираем дистрибутив Ubuntu, который скачивали на шаге 2. Теперь в окне появились данные по нашему образу Ubuntu. Окончательный вид:

Нажимаем кнопку ОК в нижнем правом углу. VirtualBox снова вернется к своему первоначальному окну.

На этом настройка нашей виртуальной машины завершена.

[raaAdSenceArticle]

💾Шаг 5: Установка Ubuntu

В первоначальном окне VirtualBox:

Выбираем слева нашу виртуальную машины и нажимаем кнопку Запустить. Откроется новое окно (рабочий стол виртуальной машины) и после небольшой загрузки начнется установка Ubuntu:

В первом же окне установщик Ubuntu предлагает выбрать язык для операционной системы и возможность попробовать (либо установить) Ubuntu.

В списке слева оставляем язык English.

Нажимаем на кнопку Install Ubuntu.  Откроется следующее окно:

Download updates while installing Ubuntu — ставим галочку, чтобы ОС скачала все обновления в процессе установки.

Install third-party software for graphics and Wi-Fi hardware, Flash, MP3 and other media — ставим галочку, чтобы установились драйвера сторонних разработчиков для Wi-Fi и видеокарты.

Нажимаем кнопку Continue. Откроется следующее окно:

Оставляем Erase disk and install Ubuntu.

Нажимаем кнопку Install Now. Откроется такое предупреждение:

Нажимаем Continue. Откроется следующее окно:

Проверяем название города.

Нажимаем Continue. Откроется следующее окно.

Оставляем все как есть.

Нажимаем Continue. Откроется последнее окно:

Заполняем текстовые поля:

  • Your name — Algotrader
  • Your computer’s name — algomachine
  • Pick a username — algo
  • Choose a password — 1234
  • Confirm your password — 1234

Примечание: при вводе пароля появится красная надпись Short password — игнорируем эту надпись.

Оставляем выбранным пункт: Require my password to log in

После всех изменений окно выглядит таким образом:

Нажимаем Continue. Начнется процесс установки:

Процесс установки может занять разное время, это зависит от мощности Вашего компьютера.

По завершению процесса установки выйдет следующее окно:

Нажимаем Restart Now.

После перезагрузки машины появится окно авторизации:

Сейчас нам надо отключить машину, чтобы внести кое-какие настройки, поэтому нажимаем на шестеренку в верхнем правом углу и в появившемся меню нажимаем Shut Down.

Машина полностью отключится.

Теперь заходим в настройки нашей виртуальной машины непосредственно в VirtualBox. Нужна вкладка Носители. Проверяем параметр Контроллер: IDE. Если в нем по-прежнему указан образ Ubuntu в качестве CD-диска, его надо отключить.

После всех манипуляций должно быть так:

Нажимаем ОК. VirtualBox вернется к своему первоначальному экрану.

На этом установка операционной системы закончена. Перед следующим шагом желательно перезагрузить ваш компьютер, чтобы заработала сеть для виртуальных машин.

[raaAdSenceArticle]

💾Шаг 6: Установка Python.

Снова открываем VirtualBox и запускаем ранее созданную виртуальную машину.

В момент авторизации указываем пароль для пользователя Algotrader. Если вы следовали данной статье,  пароль должен быть — 1234.

Загрузив систему, первым делом проверяем, как работает интернет. Нажмите на иконку FireFox Web Browser и посетите любой популярный сайт, допустим youtube.com. Если сайт открылся, значит, все в порядке, идем далее. Если интернета нет — проверьте интернет на вашей физической машине, далее обратитесь к настройкам VirtualBox и Ubuntu Desktop. Настройка доступа в интернет выходит за рамки данной статьи и здесь не рассматривается.

Теперь открываем терминал: нажмите на значок Ubuntu в верхнем левом углу экрана и начните вводить “Terminal”. Появится иконка терминала, нажмите ее.

Дальнейшая работа будет вестись именно в терминале.

Обновление пакетов системы

Первым делом надо обновить список пакетов программного обеспечения, это делается с помощью команды:

В ответ на введению команду система запросить пароль от вашего пользователя. Введите его.

Теперь надо обновить пакеты. Введите команду:

Система попросит пароль, введите.

Начнется процесс обновления всех пакетов системы. Это займет некоторое время. Зависит от мощности компьютера и скорости интернета. Дождитесь окончания этого процесса.

Установка Python

По большому счету Python уже идет вместе с дистрибутивом Ubuntu, то есть он уже стоит в нашей операционной системе, надо только проверить это:

Должно выйти:

Проверим наличие Python 3:

Должно выйти:

Далее можно войти в интерпретатор Python и попробовать ввести несколько команд:

Примечание! В примерах выше, указаны версии языка интерпретатора Python актуальные на момент написания статьи. Если ваши версии будут отличаться от указанных — ничего страшного.

Мы проверили: Python установлен в нашу систему.

💾Шаг 7: Установка IB API.

Ссылка для скачивания: http://interactivebrokers.github.io
Актуальная версия (на момент написания мануала): API 9.73

Загрузка API

Переходим по указанной выше ссылке.  Нажимаем кнопку I Agree. Откроется окно, в котором будет предложено скачать разные версии IB API:

Нажимаем кнопку  IB API Latest for Mac / Unix. Начнется закачка пакета для языка Python3.

Будьте внимательны! Не ошибитесь с кнопками! Поддержка языка Python реализована в API версии 9.73 и выше. Если нажмете на IB API Stable for Mac/Unix, скачается дистрибутив версии 9.72 — без API для Python, в нем будут API только для Java и C++.

Установка API от IB

После загрузки API, в папке Downloads должен появиться архив. Из него и будем устанавливать API.

Переходим в папку Загрузки командой:

В папке лежит наш архив twsapi_macunix.973.06.zip. Его надо разархивировать:

После этого в папке Загрузки должна появиться папка IBJts, в ее недрах лежит нужный нам установщик пакета. Перейдем к нему:

Запускаем установщик пакета командой:

В ответ система запросит у вас пароль. Введите пароль от вашей учетной записи на компьютере. Начнется процесс установки, который займет несколько секунд.

Теперь можно проверить наличие пакета в библиотеке Python3:

В ответ система должна показать очень много строк, которые будут начинаться так: “ibapi. …“. Это список модулей, доступных в пакете нашего API.

На этом установка IB API завершена.

💾Шаг 8: Установка терминала Trader Workstation.

Ссылка для загрузки: https://www.interactivebrokers.com/en/index.php?f=16040
Актуальная версия (на момент написания статьи): 969.2c

Загрузка и установка TWS

Перейдя по ссылке выше, нажимаем кнопку DOWNLOAD. Начнется закачка файла и откроется страница с инструкцией по установке.

Дождитесь окончания загрузки дистрибутива с торговым терминалом и воспользуйтесь открывшейся инструкцией.

Первый запуск и настройка TWS

Сделав все по инструкции, вы установили Trader Workstation на свою систему. Теперь его надо настроить для дальнейшей работы через API на Python3.

Нажмите на иконку Ubuntu (в верхнем левом углу) и в поисковой строке начните вводить: Trader Workstation. Появится иконка терминала:

Кликните по ней. Терминал начнет загружаться.

В самом начале он покажет вот такое окно авторизации:

Нажмите на ссылку в правой части окна: Try the demo.

Откроется следующее окно:

Введите свой E-mail и нажмите Login.

Терминал после недолгой загрузки начнет свою работу:

В верхнем меню нажмите File -> Global Configuration… Откроется окно глобальных настроек TWS:

В левой части окна найдите и раскройте меню API. В нем выберите пункт Settings.

  • Поставьте галочку на пункте Enable ActiveX and Socket Clients.
  • Снимите галочку с пункта: Read-Only API.
  • Введите в пункт Master API client ID: 100.
  • Запомните, чему равен пункт Socket port. Это очень важно (далее поймете почему).

Окно после всех настроек должно выглядеть вот так:

Нажмите Apply. Затем нажмите OK. Программа вернется к своему первоначальному виду.

На этом настройка терминала завершена.

🏁Заключение

Теперь у вас есть все, чтобы создавать приложения на Python3, которые смогут работать с терминалом Trader Workstation от брокера Interactive Brokers.

Автор: Олег Минаев