Попробуйте найти алгоритм, который бы принимал в качестве входных данных описание любой проблемы разрешимости

Давид Гильберт, немецкий математик

Если бы великий математик, астроном, географ и историк древности, наш земляк, Мухаммад ибн Муса аль-Хорезми, узнал, какое неожиданное применение, а самое главное – какое большое значение, получило его, гениальное на все времена, изобретение – алгоритм, то, наверное, он был бы немало удивлен. Конечно же, в то время, аль-Хорезми и предположить не мог, что алгоритмы получат такое широкое распространение во всех сферах жизни человека. И, тем более что алгоритм станет необходимым атрибутом такой важной рыночной инфраструктуры, каковой является биржа.

Сразу же проясним, о чем идет речь. Для этого определимся с терминами. Алгоритм – это точно определённая и предельно внятно сформулированная инструкция, последовательное применение которой к исходным данным, приводит к получению решения поставленной задачи. Для каждого алгоритма есть некоторое множество объектов, допустимых в качестве исходных данных. Например, в алгоритме деления вещественных чисел делимое может быть любым, а делитель не может быть равен нулю. Алгоритм служит, как правило, для решения не одной конкретной задачи, а некоторого класса задач. Так, алгоритм сложения применим к любой паре натуральных чисел. В этом выражается его свойство массовости, то есть возможности применять многократно один и тот же алгоритм для любой задачи одного класса. Для разработки алгоритмов и программ используется алгоритмизация – процесс систематического составления алгоритмов для решения поставленных прикладных задач. Алгоритмизация считается обязательным этапом в процессе разработки программ и решении задач на ЭВМ. Именно для прикладных алгоритмов и программ принципиально важны детерминированность, результативность и массовость, а также правильность результатов решения поставленных задач. Другими словами, алгоритм – это понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение цели (см., например, https://ru.wikipedia.org/wiki/Алгоритм).

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

Рассмотрим вкратце основные алгоритмы, необходимые для работы биржи.

Первый – алгоритм листинга и, соответственно, делистинга и релистинга. Собственно говоря, что такое листинг? Это просто процедура отбора наиболее ликвидных, а, значит, и наиболее привлекательных биржевых инструментов. При разработке данного алгоритма, необходимо учитывать несколько вариантов. Во-первых, вариант при работе с реальным товаром (спотовый рынок). Этот вариант, также разделяется на два направления, каждое из которых имеет свою специфику. Это вариант с физическим товаром и вариант с ценными бумагами. В каждом из этих вариантов требуются критерии отбора. Так, в варианте с физическим товаром, необходимо предусмотреть такие критерии, как, например, качественные характеристики и их изменчивость, возможность унификации, обращаемость, заменяемость, предполагаемая регулярность сделок и тому подобное. В варианте с ценными бумагами, в обобщенном виде, такими критериями будут являться финансовое состояние эмитента на данный момент времени, устойчивый рост прибылей за последние несколько лет, доля эмиссии, предназначаемая для свободного обращения (так называемая free float) на биржевых торгах, уровень ликвидности  и другие.   Во-вторых, рынок производных инструментов (срочный рынок). Этот вариант, также, разделяется на несколько направлений, в зависимости от вида производных. Так, например, в случае, если этой производной является фьючерсный контракт, то критериями, позволяющими определить его жизнеспособность, будут контролируемость, экономическая полезность, взаимосвязь со спотовым рынком, надежность расчетов и поставок, обратная связь, прозрачность и другие. Это все о листинге. Если же через какое-то время после прохождения листинга, данный актив начинает не соответствовать требованиям листинга, частота сделок с ним начинает падать, то торги по нему могут быть прекращены. Эта процедура и называется делистингом. При этом означенный актив будет исключен из биржевого котировального листа. Впрочем, в дальнейшем, этот актив имеет шансы вновь попасть в биржевой котировальный лист и возвратиться на торги, если он опять станет соответствовать требованиям листинга. Процедура возврата на биржевые торги ранее исключенного актива носит название релистинга.

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

Второй под-алгоритм отражает тип биржевых приказов, выдаваемых клиентом обслуживающей его брокерской фирме. От типа приказа зависит, как должна реагировать на него система. Так, при рыночном приказе брокерской фирме поручается продать или купить установленное количество биржевого товара, например, акций по «наилучшей цене». Это значит – по наименьшей цене для клиента-покупателя и по наибольшей – для клиента-продавца. Величина «наилучшей цены» в приказе не устанавливается, а определяется трейдером на основе текущих котировок. В случае же проведения биржевых торгов по технологии непрерывного двойного аукциона, встречную заявку с «наилучшей ценой» определяет сама система в автоматическом режиме. При выдаче лимитного приказа указывается предел цены сделки. Это означает – минимальную цену при продаже акций («продать не ниже …») и минимальную цену –  при покупке акций («купить не выше …»). При этом такой приказ трейдер (либо автоматически система) будет исполнять только по указанной предельной или более благоприятной для клиента цене. Стоп-приказ – означает приказ на покупку или продажу по рыночной цене, когда рынок достигнет указанной цены. Иначе говоря, стоп-приказ на покупку содержит цену выше текущей биржевой котировки, а стоп-приказ на продажу содержит цену ниже текущей биржевой котировки. При стоп-лимитном приказе указывается минимальная цена продажи («продать не ниже, чем…») или максимальная цена покупки («купить не выше, чем...») только после того, как цена достигнет оговоренного клиентом уровня. Но, при этом, – это приказ трейдеру купить или продать акции только в тот момент времени, когда котировка достигает оговоренного уровня. При этом, не смотря на тип приказа, данный под-алгоритм должен учитывать динамику изменения, как котировок акций, так и фондовых индексов.

Третий под-алгоритм осуществляет проверку этих заявок в торговой системе на соответствие требованиям, установленным на бирже, в частности, требованиям правил биржевой торговли. Например, на фондовой бирже эти требования выглядят следующим образом. Так, в секциях, работающих по технологии непрерывного двойного аукциона, подача заявки на покупку или продажу ценных бумаг трейдерами  членов биржи допускается только стандартными лотами. Все заявки подаются трейдерами членов биржи в электронной форме с применением электронной цифровой подписи по установленной биржей форме. В частности, в заявках должна содержаться следующая информация: код (идентификатор) члена биржи; наименование секции (торговой площадки); номер заявки; направленность заявки (заявка на покупку или заявка на продажу); наименование ценной бумаги; вид ценной бумаги; код ценной бумаги; наименование эмитента ценной бумаги; тип приказа; количество ценных бумаг; цена за одну ценную бумагу; состояние; код расчетов.

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

Третий – торговый алгоритм (обеспечивающий собственно котирование на торгах), включающий в себя:

алгоритм предторгового периода, когда определяется цена открытия сегодняшнего дня. На ряде бирж принято проводить так называемый предторговый период. Это условная часть торговой сессии, когда не все члены биржи «раскачались» для активных действий, они еще присматриваются друг к другу, выясняют последние новости, могущие в той или иной степени, повлиять на ход торгов. Это своего рода разминка перед стартом. Чаще всего эта часть торговой сессии не ставит своей целью заключение сделок как таковых, а проводится для выявления так называемой цены открытия сегодняшних торгов. Поэтому, наиболее распространенной формой проведения предторгового периода является залповый аукцион с применением метода фиксинга, когда, определяются две вещи. Выводятся наиболее типичная (то есть наиболее часто встречающаяся) цена, и наиболее типичный объем сделок. Затем на их основе высчитывается единая цена, которая и будет объявлена ценой открытия сегодняшних торгов;

алгоритм собственно торгового периода на основе мэтчинга встречных заявок с применением метода непрерывного двойного аукциона. Именно здесь и происходит собственно процесс обращения (ценообразования или котирования) биржевого товара на бирже. И здесь математическим операциям отводится особо важная роль. При этом используются достижения в первую очередь математической статистики, в частности, «Закон больших чисел», смысл которого состоит в том, что отдельные случайные числовые отклонения гасятся в общей массе числового поля с учетом распределения Гаусса. Применением этого Закона достигается сглаживание ценовых колебаний. Необходимо отметить, что это сильно упрощенное объяснение. На самом деле каждая биржа решает эту математическую задачу по-своему. Для того на бирже и работает целый штат математиков. А сам алгоритм является, по меньшей мере, ноу-хау биржи, и разглашению не подлежит. Именно поэтому, вы не найдете ни на одной бирже описание алгоритма котирования в открытом доступе.

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

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

При этом в задачу биржи входит, прежде всего, обеспечить свои алгоритмы необходимыми, в количественном и качественном отношении, исходными данными, которые, в свою очередь, зависят от частоты и объема заключенных сделок и объема открытого интереса (то есть от количества еще не закрытых сделок), иначе говоря, от ликвидности торгуемого биржевого продукта. Поэтому биржа должна иметь на вооружении, готовый включиться в любой момент времени, механизм поддержания ликвидности, а точнее сказать – управления ликвидностью торгуемого биржевого продукта. И это – то же алгоритм (пятый?). Это – алгоритм, который, с одной стороны отвечает за работу, а, с другой стороны, обеспечивает  работу маркет-мейкера.

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

Именно этот алгоритм следит за тем, чтобы маркет-мейкер вводил в торговую систему цены открытия на покупку и продажу – в начале каждой торговой сессии; текущие цены покупки и продажи – на протяжении каждой торговой сессии; цены закрытия на покупку и продажу – в конце каждой торговой сессии. А также, чтобы объявленные маркет-мейкером цены определялись исходя из спроса и предложения на ценные бумаги, а не были результатом манипулирования.

Именно этот алгоритм следит, чтобы формирование котировок  происходило исходя из принципов справедливого рыночного ценообразования и поддержания ликвидности котируемых активов. Также данный алгоритм строго регламентирует, чтобы при объявлении цен покупки и продажи активов маркет-мейкер должен объявлять количество активов, в отношении которых действуют объявленные им цены, а также вправе объявить срок, в течение которого действуют объявленные им цены. Объявление цен покупки и продажи осуществляется маркет-мейкером путем ввода соответствующей информации в торговую систему. При отсутствии в объявлении (в заявке на покупку/продажу) указаний на иные условия маркет-мейкер обязан заключить сделку покупки/продажи на условиях, предложенных участниками торгов. И за этим тоже следит алгоритм.

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

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

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

Итак, сколько же вы, уважаемый читатель, насчитали алгоритмов, необходимых для эффективной работы биржи? А, может быть, у вас есть другое мнение? Как всегда, ждем ваших откликов.

 

Матяшин А.Н.,

заместитель начальника управления лицензирования оценочной, биржевой и риэлторской деятельности Госкомконкуренции Республики Узбекистан.

Опубликовано в газете BIZNES Daily БИРЖА в №№ 85, 88 за 2017 год. 

Для инспекций

Вниманию Инспекциям по регистрации субъектов предпринимательства!

Агентство по управлению государственными активами Республики Узбекистан для оказания им государственных услуг, определен перечень необходимых документов и информации, получаемых посредством информационного взаимодействия, с указанием государственных органов и иных организаций, предоставляющих данные документы и информацию.

Подробнее...

Курсы валют

Scroll to top