О структурных и логических проблемах котировочных терминалов

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

Неприятных следствий этого симбиоза хоть отбавляй: тут тебе и отсутствие внутренней логики организации интерфейсов взаимодействия между брокером и трейдером (о какой логике может идти речь, если вершина упорядочивания дел в представлении рядового программиста — система алленовского GTD?), и информационная избирательность в котировочных фидерах, и структурирование данных по типу матрёшки (хотите знать, откуда растут ноги — откройте Панель управления Windows), а в итоге — торговые терминалы, которыми почти невозможно пользоваться. Нет, конечно, возможно (коли все мы всё же торгуем), однако непременно и мучительно, в гамаке, с аквалангом и стоя. Слава тебе господи, в последнее время что-то стало меняться в датском королевстве и появились на горизонте исключения. Об одном таком поговорим сегодня.

Чтобы не быть голословным в своих причитаниях, ограничу тему лишь одним критическим аспектом: организацией котировочных данных в популярных российских терминалах. Вот, к примеру, как выглядят эти данные в самом популярном универсальном терминале QUIK.

012_1

Даже не буду сейчас останавливаться на феерическом бардаке на уровне семантики при разносе инструментов по биржам (вроде родового «Индекс РТС» и родового же «Индексы РТС (СПб)»), допуская, что тут виноват не разработчик терминала, а сама биржа. Бог с этими тонкостями — настоящие лютики ждут нас впереди. Предположим, мы хотим найти банальнейший такой текущий фьючерсный контракт на индекс РТС с экспирацией в сентябре.

Где он, по-вашему, должен находиться: в «Индекс РТС» или в «Индексы РТС (СПб)»? Допустим, мы умные и сразу знаем где искать — в разделе FORTS: жмём на значок с плюсом.

012_2

Перед нами развёртывается длиннющий список на добрую сотню вхождений с уникальной логикой упорядочивания: RTS-12.15, RTS-12.16, RTS-3.16, RTS-3.17, RTS-6.16 и т.д. Почему так?! А кто его знает! Так им, программистам, видать, сподручнее. Как бы то ни было, самый актуальный фьючерсный контракт на индекс РТС (с ближайшей на момент написания этого текста) экспирацией находится предпоследним в списке.

Берём другой самый популярный универсальный терминал — MetaTrader 5. Доступ к списку котировок производится через комбинацию клавиш Ctrl+U.

012_3

Здесь начинается чистый ад. Логика структурной иерархии звучит так: RTS — FORTS — Expired — Standard Indices. По наивности тычемся в раздел Standard и находим чудовищный меланж из экспирированных и живых контрактов (почему они здесь, а не в Expired лучше не спрашивайте).

Фьючерса РТС здесь нет, поэтому возвращаемся в головной раздел FORTS, где нужный нам контракт располагается в уже знакомом нам списке вторым с конца — обстоятельство, подтверждающее, что котировочный бред исходит от самой Московской биржи (а уж кто там несёт ответственность — финансисты или программисты, простым смертным не узнать).

012_4

Забавно, что после того, как мы выбираем нужный нам RTS-9.15 из меню «Символы», ничего существенного не происходит (в смысле, что не открывается ни таблица с котировками, ни график). Вместо этого отобранный символ перемещается в окно «Обзор рынка», после чего уже в нём нужно кликнуть на символе мышью и из контекстного меню выбрать нужное представление).

012_5

Простите, друзья, но это всё перректальное удаление гланд, завязанное, как мне представляется, на помянутый в начале реплики больной симбиоз финансистов с программистами. О каком эффективном трейдинге можно говорить в условиях столь дикого представления данных? Дело даже не в количестве кликов, необходимых для получения доступа к элементарнейшим данным, а в структуре этих данных.

Поясню на примере. Все знают, что в Школе биржевого трейдинга vCollege мы исповедуем алгоритм «судебного процесса», который предполагает максимально широкую оценку факторов влияния на интересующий нас инструмент. Скажем, если речь идёт о котировках, то, как минимум для работы нам понадобится открыть вместе с RTS-9.15, ещё и RTSI (базовый актив, то есть сам индекс РТС), MICEX (индекс ММВБ), BR-8.15 (нефтяной фьючерс с экспирацией в августе), BR-9.15 (тоже только в сентябре) и Si-9.15 (фьючерс на валютную пару USD/RUB). Сколько, как вы думаете, потребуется произвести действий/кликов/телодвижений, чтобы вывести на экран компьютера все эти данные?

И это лишь на российском рынке. Хотелось бы также посмотреть на торги на лондонской и нью-йоркской биржах, захватив за одно и WTI (Crude Oil), с которой у российского индекса свои особые — интимные — отношения и долгосрочная корреляция. Но тут ничего не получится, потому что в фидерах моего брокера этой информации вообще нет.

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

012_6

Первое, что бросается в глаза: музыку при создании терминала заказывали явно не программисты. Вывод напрашивается хотя бы потому, что данные представлены не на абракадабре символов, а на нормальном русском языке, на котором люди (а трейдеры — тоже люди) думают! Да-да, мы думаем, то есть в трейдерском контексте — производим изыскательную и аналитическую работу, оперируя словами языка, а не символьным обозначением биржевых инструментов.

Далее движемся по накатанном примеру: ищем сентябрьский фьючерс на индекс РТС: клик на глобальном разделе Фьючерс, содержащем, между прочим, 1050 контрактов.

012_7

Здоровый симбиоз с логикой предполагает подлежащую иерархию различных площадок — именно это мы и находим. Клик на российском FORTS, и мы опускаемся на следующий уровень, который,  опять же по законам здравого смысла, даёт нам доступ к базовым активам, а не кашеобразному желе из символов эксперировавших и текущих контактов.

012_8

Клик на RTS — и вот она нирвана: упорядочивание контрактов по экспирации!

012_9

Отходит на задний план безумная логика «RTS-12.15, RTS-12.16, RTS-3.16, RTS-3.17, RTS-6.16», приходит то, что бывает у людей, а не программистов: сентябрь 2015, декабрь 2015, март 2016, июнь 2016 — по экспирациям, одна за другой в порядке хронологии.

Клик на сентябрьском контракте — et voila! — не телепортирование символа в какое-то иное окно (вроде «Обзора рынка»), а мгновенный доступ к графическому представлению инструмента, от которого на расстоянии ещё одного клика: и инструменты технического анализа, и мгновенное размещение торгового ордера.

012_10

Перед нами терминал EXANTE ATP одноименного брокера, причём написанный под Mac OS X, что особенно приятно мне лично как маководу с многолетним стажем. Точно такой же есть под Windows, Android  и IOS.

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

Отмечу то, что в EXANTE меня привлекло в первую голову при беглом обзоре: наличие солидной подборки инструментов для инвестирования в хедж-фонды (целых 142!), которые интересуют меня, в первую очередь, в корыстном плане: мы собираемся добавить в учебные программы vCollege новый курс по биржевому инвестированию (в отличие от спекулятивного биржевого трейдинга) и платформа EXANTE может оказаться весьма перспективной для практической реализации поставленных задач. Это, однако, уже тема будущих публикаций.