Статьи

Сравнительные характеристики трех главных операционных систем (ОС) на предмет их соответствия требованиям количественного (квантового)[1] трейдинга. В какой среде торговые алгоритмы отрабатывают максимально полно, эффективно и оптимально. Плюсы и минусы Microsoft Windows, Apple Mac OS X и Ubuntu/Linux для алготрейдинга. Толкование ряда ключевых терминов. Адаптированный перевод[2] статьи “Best Operating System For Quant Trading?”

 

Содержание:

     Windows - плюсы

     Windows - минусы

     Mac OS X - плюсы

     Mac OS X - минусы

     Ubuntu/Linux - плюсы

     Ubuntu/Linux - минусы

 

Предисловие переводчика

Материал продолжает серию публикаций ресурса Quantstart по инструментарию, стратегиям, математической и программной компоненте систематического (алгоритмического) трейдинга.

В этом цикле смотрите также:

Тема данной статьи - какая операционная система лучше для алготрейдинга? Сравниваются три версии ОС: Microsoft Windows, Apple Mac OS и Linux.

<Вставка переводчика>[3]

Прежде всего, несколько слов о том, что же такое операционная система и какие они бывают?

Согласно Википедии:

Операционная система (Operating System, OS) - комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем”.

Классификация операционных систем может идти, в том числе, по следующим направлениям:

  • базовая технология - UNIX-подобные или пост-UNIX;
  • тип лицензии  - проприетарная или открытая;
  • современные (развиваются в настоящее время) или устаревшие;
  • назначение - универсальные ОС, ОС встроенных систем, ОС для ПК, планшетов и смартфонов, ОС для рабочих станций и серверов, ОС реального времени и т.д.

 

Введение

<Изложение по тексту - от первого лица>

Мне часто задают вопрос: какая операционная система лучше для исследований в области количественного трейдинга и внедрения торговых алгоритмов?

Краткий ответ на момент подготовки публикации: если вы хотите провести серьезное  математическое изучение количественной торговли (машинное обучение / глубокое обучение, ML/DL), то следует использовать настольную версию Ubuntu 16.04 LTS Linux на торговом VPS[4] или его аналоге. Это самый простой способ избежать проблем с новейшими библиотеками.

Однако, Windows по-прежнему остается магистральной ОС, как дома, так и в офисе, и Ubuntu/Linux трудновато отвоевывать место под солнцем для массового пользователя.

Учитывая то, что ваша очевидная цель - потратить как можно больше времени на исследование и создание количественных торговых стратегий, а не на чтение стопки книг по программированию - стоит ли осваивать что-то, кроме Windows?

Я уверен, что большинство сложных научных/количественных разработок, ориентированных на Python, максимально эффективно реализуются именно на Ubuntu/Linux с его интерфейсом командной строки (Command Line Interface, CLI)[5].

Как бы там ни было, рассмотрим три базовые операционные системы, получившие широкое распространение и в количественных финансах.

 

Microsoft Windows

 

1 Л ОСWindows

 

Я полагаю, что почти все (если не все) читатели более или менее хорошо знают Windows, поэтому не буду останавливаться подробно на том, что это такое, в отличие от двух других операционных систем, описанных ниже.

<Вставка переводчика>

Для сохранения общего стиля, приведем формальное определение и самой массовой ОС в мире.

Согласно Википедии:

Windows (с английского “Окна”) - группа семейств коммерческих операционных систем корпорации Microsoft, ориентированных на управление с помощью графического интерфейса[6]”.

К последней версии ОС относят Windows 11, ее выход намечен на 20 октября 2021 г. 

Windows - плюсы

Безусловное преимущество Windows - тотальное присутствие на персональных компьютерах, стационарных/настольных вариантах и ноутбуках. Каждый ПК, как правило, по умолчанию, комплектуется текущим Windows. Значимая часть программного обеспечения с графическим интерфейсом для розничной количественной торговли написана исключительно под Windows.

Современные ОС обладают существенно большей степенью надежности, чем их старые аналоги. Вспомним знаменитый “Синий экран смерти” (Blue Screen of Death)[7]. Сейчас этот недостаток, во многом, преодолен.

Платформы для количественного трейдинга, применяющие графический интерфейс, хорошо переносятся с рабочего стола Windows на Windows Server через соответствующую облачную службу, например Microsoft Azure или Amazon Web Services .

В Windows поддерживаются все важные реляционные базы данных, в том числе MySQL, PostgreSQL, плюс собственный мощный модуль Microsoft SQL Server. Все поставщики предоставляют интуитивно понятные графические интерфейсы для них.

Windows - минусы

Главный изъян Windows заключен в его ключевом достоинстве - графическом интерфейсе. Он идеален для бытовых настольных компьютеров, но для количественного трейдинга на продвинутом уровне становится заметным тормозом. 

Высокочастотные модели квантования полагаются на автоматизацию и планирование задач, где CLI и Unix чрезвычайно эффективны и легко обходят Windows по мере увеличения частоты и уровня автоматизации стратегии.

Windows испытывает некоторые трудности в “хорошей игре” (playing nicely) с Python. Дистрибутив Anaconda в значительной степени решает проблему, тем не менее, есть библиотеки, запрашивающие компиляцию кода C/C++ с нуля, для чего необходим компилятор C++ типа GCC. Для этого, в свою очередь, надо устанавливать нечто подобное Cygwin. С каждым этапом процедура теряет здравый смысл. Гораздо проще загрузить Ubuntu, а не пытаться копировать Linux в Windows.

Еще одни недостаток Windows - повышенные требования к ресурсам. На абсолютной скорости выполнения Windows может отставать от Linux (особенно на серверных версиях).

 

Apple Mac OS X

 

2 Л ОСMac 1

 

Mac OS X задействуется в линейке компьютеров Mac от Apple. По сути, это сильно модифицированный вариант дистрибутива Unix, известного как BSD. Mac OS X берет лучшее от графического интерфейса и от интерфейса командной строки.

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

В течение нескольких лет я использовал MacBook Air для разработки Python, но впоследствии больше тяготел к Ubuntu Desktop для квантовой торговле на Python 3.

Mac OS X - плюсы

Как уже отмечалось выше, главное достоинство данной операционной системы - удачное совмещение графического интерфейса и интерфейса командной строки, применяемого Ubuntu. Оно позволяет легко настраивать Mac OS X в среде количественных исследований на Python. Практикуется прямой подход к виртуальной среде или через предварительно скомпилированный инструментарий типа Anaconda.

Интерфейс командной строки предоставляет весь ассортимент скриптов и автоматизаций, присущих Linux. Mac OS обеспечивает нормальную совместимость с популярными экосистемами, в частности,  Microsoft Office. 

У Mac OS репутация надежной и стабильной системы. Однажды я прожил 251 день без перезагрузки своего MacBook Air. Когда я пишу эту статью, он находится в режиме непрерывной и безотказной работы 91 день!

Mac OS X - минусы

Возможно, ключевым недочетом Mac OS X является то, что из-за ориентированной на потребителя бизнес-модели Apple, нет эквивалентной серверной среды, в которой быстро разворачивается система количественной торговли. Ее нужно переносить на серверный дистрибутив Linux (например, Ubuntu Server).

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

Обойти препятствие можно применив виртуальные машины или такой инструмент, как Docker. Но здесь встает вопрос, уже поднятый в разделе о Windows, а зачет тогда вообще использовать Mac, проще изначально задействовать локальный компьютер, работающий на Linux.

Действительно, при одной и той же  сумме в долларах ноутбук / настольный ПК Mac обычно менее мощный, чем эквивалентный компьютер другого производителя, допустим Lenovo. Вы платите больше за “бренд” Apple, чем за чистую вычислительную мощность.

Наконец, Mac трудно настроить на графическом процессоре в режиме DL. Легче собрать настольную машину с нуля и установить на нее для этой цели Ubuntu.

 

Ubuntu/Linux

 

3 Л ОСUbuntu

 

Философия Microsoft Windows - вертикальная интеграция компонентов, графический интерфейс, быстрота и простота в применении. Идеальный подход для массового потребителя, поэтому Microsoft Windows добилась столь значительного исторического успеха.

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

Существует несколько дистрибутивов Linux, в которых компоненты смешиваются и по-разному сопоставляются. Это может сильно сбить с толку новичков, привыкших к универсальным приемам Windows или Mac OS X.

К счастью, в последнее время “рынок” несколько консолидировался вокруг популярного дистрибутива Ubuntu. Изначально Ubuntu создавался на основе другого мощного дистрибутива Linux - Debian, но потом пошел в ином направлении.

За несколько лет Ubuntu стало проще устанавливать и опробовать. Помимо всего прочего, он превратился в практически готовое решение для текстового редактора, электронных таблиц и общих офисных задач, что упрощает переход на него с Windows или Mac.

Ubuntu/Linux - плюсы

Плюс № 1 у Ubuntu - возможности интерфейса командной строки (CLI). 

CLI и механизм скриптов позволяет выполнять сложную автоматизацию процессов, включая управление данными, разработку системы тестирования на исторических данных и интерактивность брокера.

Ubuntu - единственный вариант <у автора фигурирует англоязычная идиома “only game in town”>, для работы на переднем крае количественного финансового моделирования с передовыми библиотеками ML/DL.

В частности, для DL почти вся рабочая экосистема выстроена на Python с использованием TensorFlow и PyTorch, оба из которых имеют нетривиальные требования к установке. Эти библиотеки крайне сложно заставить работать с графическими процессорами в Windows, Ubuntu - единственный реальный выбор.

Linux сильно упрощает совмещение создания программного обеспечения и процедуру развертывания модели количественной торговли. Все опции контроля версий и непрерывной интеграции легко доступны в среде Linux/CLI.

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

Для тех, кто хочет углубиться в количественные исследования торговли и в трейдинг, основанный на ML/DL, я настоятельно рекомендую Ubuntu/Linux.

Ubuntu/Linux - минусы

Фундаментальная проблема Ubuntu/Linux - его относительная сложность. Значимая часть возможностей обеспечивается применением интерфейса командной строки и сценариев. Первичные навыки осваиваются сравнительно быстро, но истинное мастерство нарабатывается годами. Среди программистов в Linux бытует фраза “возиться под капотом” (tinker under the hood), что может быть одновременно и очень интересно, и чрезвычайно утомительно, в зависимости от ваших целей и задач.

Вдобавок, Linux нетерпим к ошибкам. Природа изучения количественной торговли на ML/DL опирается на такие передовые библиотеки, как TensorFlow/PyTorch, взаимодействующие с графическими процессорами. Установка драйверов, библиотек и других инструментов, увы, способна привести к неприятностям.

Новичку сложно диагностировать подобные осложнения, поскольку сообщения об ошибках бывают довольно неразборчивыми и сильно расстраивают тех, кто привык к “просто работающим” Windows и Mac.

Linux имеет гораздо более явный подход к разрешениям пользователя/администратора, что часто отсекает новичков в использовании административных привилегий. Windows / Mac OS X в значительной степени абстрагируют от этих ситуаций. 

Еще один источник путаницы лежит в управлении зависимостями (Dependency Management). Ряд пакетов (в частности, библиотеки Python) жестко настроены на корректную установку поддерживающих системных пакетов. Если что-то пойдет не так, могут появляться непонятные сообщения об ошибках, для диагностики которых требуется определенный опыт.

Такова “цена” разработки сложных моделей на острие количественного трейдинга. 

Но не все столь грустно. К услугам начинающих доброжелательное сообщество “почитателей Ubuntu/Linux”, готовое помочь в преодолении пусть не любых, но многих барьеров на пути в освоении ОС.

<Не случайно логотип Ubuntu именуется “Кругом друзей”>

 

Заключение

Windows и Mac OS X хороши для большинства "ванильных" <здесь - относительно простых, несложных> исследований в количественной торговле на основе графического интерфейса. Однако, они в значительной степени не сработают для методик DL/ML на “переднем крае”.

Ubuntu/Linux - самое перспективное направление в количественных финансах на DL/ML. Он становится чрезвычайно мощным после получения опыта в CLI, но не прощает ошибок из-за проблем с разрешениями или зависимостями. Кроме того, конфигурация смешанных компонентов может путать тех, кто привык к универсальным операционным системам.

 

перевод, обработка, комментарии и примечания

Владимир Наливайский

 

В основе изложения статья “Best Operating System For Quant Trading?”, опубликованная на сайте Quantstart. 

Источник изображения на заставке - Scienceandtech.ru

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

 

Примечания

  1. “Количественный” и “квантовый” трейдинг - суть синонимы, переводы англоязычного термина “Quantitative/Quant Trading”, подробнее смотрите здесь.
  2. Под адаптированным переводом понимается достаточно точное следование исходному материалу, с возможными отступлениями и пояснениями.  Конкретные вещи - формулы, скрипты, графики и пр. (а также авторские комментарии к ним) изложены максимально близко к оригиналу (часто скопированы). Ответственность за их корректность и ясность интерпретации несет автор исходника. 
  3. Записью <...> обозначены вставки и комментарии переводчика.
  4. VPS (Virtual Private Server) или VDS (Virtual Dedicated Server), виртуальный выделенный сервер - услуга предоставления в аренду так называемого виртуального выделенного сервера. В плане управления операционной системой по большей части она соответствует физическому выделенному серверу. Смотрите источник 3.
  5. Интерфейс командной строки (Command line interface, CLI) - разновидность текстового интерфейса (TUI) между человеком и компьютером, в котором инструкции компьютеру даются в основном путем ввода с клавиатуры текстовых строк (команд), в UNIX-системах возможно применение мыши. Смотрите источник 4.
  6. Графический интерфейс пользователя (ГИП), графический пользовательский интерфейс (ГПИ) (Graphical User Interface, GUI) - система средств для взаимодействия пользователя с компьютером, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана (окон, значков, меню, кнопок, списков и т. п.). Смотрите источник 6.
  7. Синий экран смерти (Blue Screen of Death, Blue Screen of Doom, BSoD) - жаргонное название сообщения о критическом сбое в операционных системах Microsoft Windows. Смотрите источник 7.

 

Список источников (Википедия/Wikipedia, если не оговорено иное)

  1. “Операционная система”.
  2. “Список операционных систем”.
  3. “VPS”.
  4. “Интерфейс командной строки”.
  5. “Windows” (русс.)
  6. “Графический интерфейс пользователя”.
  7. “Синий экран смерти”.
  8. “macOS”.
  9. “Ubuntu” (русс.)

 

Используемые сокращения

CLI - Command Line Interface, интерфейс командной строки

DL - Deep learning, глубокое обучение, вид машинного обучения

ML - Machine Learning, машинное обучение

VPS - Virtual Private Server, виртуальный выделенный сервер

ОС - операционная система, Operating System (OS)

ПК - персональный компьютер, Personal Computer (PC)