Конкурентный анализ в банковской практике
Хотя конкурентный анализ впервые появился в компьютерной науке, в настоящее время он всё чаще используется и в сфере финансов. Мы рассмотрим его применение к решению конкретных задач, которые весьма часто возникают в банковской деятельности.
Ранее для решения задач в условиях неопределённости использовался (а порой и сейчас используется) вероятностный анализ, в котором предполагается, что рыночные условия (например, входные данные) ведут себя в соответствии с некоторым фиксированным распределением. Поэтому алгоритмы, которые затем разрабатывались, преследовали цель оптимизации ожидаемого поведения в условиях этого распределения.
К сожалению, не всегда экономические условия могут быть хорошо смоделированы с помощью вероятностных процессов, из-за чего ведутся споры о том, какая модель лучше соответствует реальности. С другой стороны, для большинства задач любая стратегия может сработать очень плохо при определённых условиях, так что анализ для наихудшего случая не даёт возможности провести различие между стратегиями, которые на практике работают хорошо, и стратегиями, которые работают плохо. Конкурентный анализ даёт возможность сделать значимым анализ стратегий для наихудшего случая, не делая при этом вероятностных предположений о входных данных.
Немного теории
Кредитным организациям (впрочем, не только им) довольно часто приходится совершать сделки в условиях неопределённости: они не могут знать точно, как изменятся даже в ближайшем будущем курсы валют, процентные ставки, цены акций, облигаций и производных финансовых инструментов, арендная плата и т.д. В целях выхода из затруднения, обусловленного неопределённостью, применяют различные подходы и методы. Мы рассмотрим один из таких подходов - конкурентный анализ.
Конкурентный анализ базируется на достаточно простой идее: результат каждой конкретной операции, которую осуществляет банк в режиме реального времени (или, как ещё говорят, в онлайне), не располагая информацией о будущих значениях курсов валют, цен, ставок, необходимо сравнить с тем результатом, которого достиг бы "игрок", обладающий феноменальной способностью предвидеть будущие курсы, цены, ставки и т.д.
Можно посмотреть на ситуацию по-другому: предоставляется возможность произвести "разбор полётов", т.е. вернуться назад и осуществить операцию заново, располагая постфактум уже всей известной информацией. Тем самым есть возможность выполнить операцию идеально (или оптимально), улучшив результат. Такой "разбор полётов" может рассматриваться как процесс выполнения той же самой операции в офлайне (в автономном режиме).
Лица, реализующие ту или иную операцию, в процессе её осуществления руководствуются определённым алгоритмом. Такой алгоритм (обозначим его А) будем называть онлайновым, если операция проводится в отсутствие информации о будущих значениях входных данных (курсов валют, процентных ставок, цен финансовых активов и т.д.). Соответственно если операция реализуется в предположении, что вся последовательность входных данных заранее известна (или постфактум - в виде "разбора полётов"), то алгоритм её осуществления назовём офлайновым или оптимальным, поскольку он таковым и является, и будем обозначать его ОРТ.
Таким образом, результат, достигаемый ОРТ-алгоритмом, является эталоном, а следовательно, может послужить основой для создания меры того, насколько эффективно (т.е. близко к эталону) провёл свою операцию банк, работая в отличие от ОРТ-алгоритма в реальном времени, иначе говоря, не зная наперёд всей последовательности входных данных, а получая каждый последующий элемент этой последовательности - один за другим - только с течением времени.
В качестве меры эффективности вводится так называемое конкурентное отношение r:
r = А(I) / ОРТ(I),
где: I - реальная последовательность входных данных (курсов, цен, ставок и т.п.); ОРТ(I) - эталонный результат операции, достигнутый оптимальным офлайновым алгоритмом, которому заранее известна вся последовательность входных данных; А(I) - результат операции, полученный в случае руководства онлайновым алгоритмом, которому известны только текущее и прошлые значения входных данных. Об алгоритме А(I) говорят, что он является r-конкурентным, если для всех входных последовательностей I:
.
Вне зависимости оттого, какая цель преследуется в процессе осуществления конкретной операции - минимизация или максимизация, понятно, что чем ближе конкурентное отношение к 1, тем лучше. Если конкурентное отношение будет равно 1, это означает, что операция выполнена идеально, лучше её выполнить в рассмотренных условиях (при данных входных данных) просто нельзя. Отклонение конкурентного отношения от 1 говорит о том, что результат, полученный онлайновым алгоритмом, не дотягивает до эталонного (оптимального) результата, которого достиг офлайновый алгоритм. Причина этого как раз и кроется в неопределённости будущих значений входных данных.
Введение конкурентного отношения даёт нам объективную меру для определения эффективности того алгоритма, которым мы руководствуемся. Если из двух онлайновых алгоритмов и алгоритм даёт конкурентное отношение, более близкое к 1, чем конкурентное отношение, которого достигает алгоритм , на любой последовательности входных данных (даже самой неблагоприятной), то это означает, что алгоритм лучше (эффективнее) алгоритма , и поэтому последний должен быть отброшен как не самый удачный.
Иногда конкурентный анализ рассматривают как игру двух лиц, а именно банка (в нашем случае) и злонамеренного противника. При этом цель банка - выбрать алгоритм А таким образом, чтобы конкурентное отношение было как можно ближе к 1 при любых условиях, тогда как целью противника является выбор такой входной последовательности данных I, которая максимизирует отношение и тем самым отягчает положение банка.
Конкурентное отношение r алгоритма А представляет собой максимальное значение на всех возможных входных последовательностях I.
Арендовать или покупать?
Рассматриваемый здесь вопрос относится к большому классу проблем принятия решений, в том числе и в режиме реального времени. Он заключается в том, чтобы выбрать один из двух возможных вариантов использования определённого объекта для данного конкретного случая.
Первый вариант отличается постоянным использованием объекта на праве аренды и характеризуется периодической уплатой относительно небольшой фиксированной суммы (арендной платы) за его использование.
Второй вариант связан с приобретением объекта в собственность путём его покупки, однако связан с уплатой, пусть однократной, крупной суммы (цены покупки). Объект, о котором идёт речь, используется регулярно. Выбор должен быть сделан таким образом, чтобы минимизировать общую стоимость использования изделия.
Ради простоты нормализуем дневную арендную плату и будем её измерять не в привычных рублях, а просто в денежных единицах (далее - д. е.). При этом будем считать, что стоимость одного дня аренды интересующего нас объекта равна 1 д. е. в день, а цена покупки этого объекта равняется S д. е. (для удобства будем считать S целым числом).
Представим также, что T означает срок использования объекта.
Офлайновому алгоритму ещё до совершения операции известно значение T (если в течение всего срока Т объект только арендуется, то общая стоимость аренды составит .).
В этих условиях (с позиции офлайнового алгоритма) задача решается тривиально: если S д. е. < Т д. е., то объект выгоднее купить, причём в первый же день, затратив на это S д. е. Если S д. е. > Т д. е., то объект выгоднее арендовать, при этом будет потрачено всего лишь Т д. е., что меньше S д. е. Наконец, если S д. е. = Т д. е., то можно выбрать любую стратегию. Следовательно, результат, которого можно достигнуть, руководствуясь офлайновым алгоритмом, - это будет самый лучший результат: он представляет собой величину, равную min (S, Т) д. е.
С онлайновым алгоритмом дело может обстоять не так просто: в самом общем случае мы можем и не знать заранее срока (T) использования требуемого объекта.
Более того, теория игр, как мы уже видели, предлагает более суровое условие: при решении проблемы аренды (покупки) объекта банк сначала должен выбрать алгоритм А, а затем на основе этого выбора противник выбирает наиболее неблагоприятное для банка значение Т (длины входной последовательности), т.е. такое, которое максимизирует отношение А(I) / ОРТ(I).
Заметим, что любая детерминированная стратегия, которую применит банк, может быть описана следующим образом: банк будет арендовать интересующий его объект в течение (t - 1) дней (), а затем покупает его в день t, если только к этому моменту не пропала надобность в этом объекте.
Из всего множества онлайновых алгоритмов {At} для решения интересующей нас проблемы мы рассмотрим два алгоритма.
Первый простой алгоритм определим следующим образом:
1. "Купить интересующий объект в первый же день".
Вне зависимости от срока использования T алгоритм истратит S д. е. Отметим, что если , то оптимальный офлайновый алгоритм также предпочёл бы купить объект в первый же день, и оба алгоритма понесли бы одинаковые издержки; соответственно конкурентное отношение равнялось бы 1.
Однако онлайновый алгоритм будет отклоняться от офлайнового алгоритма в том случае, когда T д. е. < S д. е. В случае самого плохого сценария надобность в интересующем нас объекте отпадает сразу же после его покупки, т.е. в первый же день (T = 1).
В этом случае издержки оптимального офлайнового алгоритма составят всего 1 д. е., тогда как алгоритм приведёт к издержкам, равным S д. е. Таким образом, алгоритм A1 в самом неблагоприятном случае даёт результат в S раз больший (т.е. худший), чем офлайновый алгоритм. Согласно определению, приведённому выше, можно сказать, что алгоритм является S-конкурентным (поскольку в знаменателе конкурентного отношения у нас будет 1 д. е.).
Теперь определим второй простой алгоритм следующим образом:
1. Арендовать в течение первых (S - 1) дней (аренда обойдётся в (S - 1) д. е.).
2. Если ко дню S надобность в объекте ещё не отпала, то он покупается в день S (при этом дополнительно тратятся ещё S д. е.).
Если , то результат алгоритма совпадает с результатом офлайнового алгоритма (конкурентное отношение будет равно 1).
Если надобность в объекте отпадает в день S или позднее (), тогда издержки алгоритма составят , тогда как издержки оптимального офлайнового алгоритма для этого случая будут равны S д. е. Конкурентное отношение в этом случае будет равно , т.е. не превысит 2. Это оптимальное значение конкурентного отношения для детерминированного алгоритма в самых неблагоприятных условиях.
Тем самым, когда руководствуются детерминированным онлайновым алгоритмом для решения проблемы аренды и (или) покупки какого-то объекта, самое оптимальное значение конкурентного отношения в самых неблагоприятных условиях имеет место в том случае, когда покупке предшествует период аренды в течение (S - 1) дней, где S д. е. - цена покупки объекта, а стоимость аренды равняется 1 д. е. в день.
Конечно, рассмотренный пример не учитывает того факта, что цена объекта S может изменяться с течением времени, однако учёт всех тонкостей слишком усложнил бы математические выкладки.
* * *
До настоящего времени мы рассматривали только детерминированные алгоритмы. Однако для принятия решений можно использовать и случайные алгоритмы. Такой онлайновый алгоритм во время своего выполнения может "подбросить монетку" и использовать исход этого бросания для принятия решений. Когда анализируется случайный онлайновый алгоритм "игры с противником, не имеющим памяти" (т.е. с противником, который не пытается вычислить вероятность тех или иных ваших действий), то игра осуществляется следующим образом:
- банк выбирает алгоритм А, который принимает решение, базируясь на "бросании монеты" (в реальности может использоваться генератор случайных чисел);
- противник "без памяти" выбирает входную последовательность / такую, чтобы максимизировать ожидаемое конкурентное отношение Е [А(I)] / ОРТ(I); здесь в числителе фигурирует уже математическое ожидание издержек случайного онлайнового алгоритма;
- осуществляется "бросание монеты" и наблюдается результат.
Отметим, что противник "без памяти" не способен наблюдать результат "бросания монеты". Тогда на интуитивном уровне понятно, что введение случайности в алгоритм делает более трудным для противника определение наихудших условий для этого алгоритма, поскольку противник не может с достоверностью знать, как будет действовать случайный онлайновый алгоритм в данном конкретном случае. При решении задачи об аренде или покупке конкретного объекта оказывается, что можно достигнуть конкурентного отношения лучшего, чем 2 - 1/S, т.е. самого лучшего отношения для любого детерминированного алгоритма. Покажем это на простом примере случайного алгоритма.
Для удобства рассмотрим случай, когда S является чётным целым числом, которое по меньшей мере равно 2. Рассмотрим следующий алгоритм А, который "подбрасывает неправильную монету" и осуществляет выбор между двумя линиями поведения (двумя детерминированными алгоритмами):
1) , с вероятностью p;
2) , с вероятностью (1 - p).
Другими словами, если выпадет решка, тогда принимает решение купить объект в день S/2; в противном случае выпадет орёл и алгоритм решает следовать оптимальному детерминированному алгоритму, который был рассмотрен выше и сводился к покупке объекта в день S. При этом стоит задача выбора значения вероятности p, которая будет минимизировать ожидаемое конкурентное отношение.
Определим издержки алгоритма . Для этого рассчитаем значение , ожидаемых издержек алгоритма на входной последовательности / путём рассмотрения трёх случаев в зависимости от значения Т.
1. Т < S/2; в этом случае необходимо осуществлять аренду объекта на протяжении всего срока пользования, причём это обойдётся в Т д. е.
2. ; в этом случае с вероятностью p будет осуществлена покупка объекта в день S/2, а с вероятностью (1 - p) будет продолжена аренда объекта до самого истечения срока пользования Т. Таким образом, для этого случая имеем:
3. ; в этом случае с вероятностью p объект будет куплен в день S/2, а с вероятностью (1 - p) он будет куплен в день S. Тогда:
.
Издержки оптимального офлайнового алгоритма ОРТ(I) будут теми же самыми, что и раньше: для случая 1 и 2 они равны Т д. е., а для случая 3 они равны S д. е. Таким образом, математическое ожидание конкурентного отношения равняется:
1) 1, если Т < S/2;
2) , если ;
3) 2 - p/2 - 1/S, если .
В рассматриваемом примере со случайным онлайновым алгоритмом необходимо определить вероятность p, которая позволит минимизировать конкурентное отношение при всех возможных значениях Т (напомним, что в теории игр значение Т определяет злонамеренный противник).
Из приведённых выражений для математического ожидания значения конкурентного отношения мы видим, что при фиксированном значении p противник может выбрать значение Т в трёх различных областях. В первой и последней областях математическое ожидание значения конкурентного отношения является константой. Во второй (средней) области противник должен выбрать Т = S/2, чтобы максимизировать отношение. Таким образом, можно сузить выбор для противника до самого максимального значения из следующих вариантов:
1) 1, если T < S/2;
2) , если Т = S/2;
3) 2 - p/2 - 1/S, если .
Отсюда понятно, что противник никогда не выберет значение Т < S/2, поскольку из предположения, что S > 1, следует, что Т = S/2 всегда будет давать строго большее значение конкурентного отношения. Таким образом, противник должен выбирать между случаем, когда Т = S/2 или когда . Нетрудно видеть, что при Т = S/2 значение конкурентного отношения растёт с ростом значения вероятности p, тогда как при конкурентное отношение уменьшается при росте вероятности p. Устанавливая значение конкурентного отношения во втором случае равным значению конкурентного отношения в третьем случае, можно получить значение вероятности p, при котором противнику будет безразлично, устанавливать ли значение Т = S/2 или же :
;
;
p = 2 [1 - 1 / (5S - 4)] / 5.
Из проведённого анализа следует, что наилучшая вероятность p для расчёта наилучшего ожидаемого конкурентного отношения для онлайнового алгоритма равняется
p = 2 [1 - 1 / (5S - 4)] / 5,
а математическое ожидание для оптимального конкурентного отношения будет равно
.
Как это выглядит в цифрах, показывает таблица:
S | p | r | |
10 | 0,391 | 1,704 | 1,9 |
100 | 0,399 | 1,790 | 1,99 |
1000 | 0,400 | 1,799 | 1,999 |
В последней колонке содержатся значения конкурентного отношения для детерминированного алгоритма при соответствующем значении S. Из таблицы видно, что случайный онлайновый алгоритм позволяет улучшить значение конкурентного отношения (его математическое ожидание), хотя в рассмотренном примере случайный алгоритм носил достаточно произвольный характер.
Торговля валютой
Применение конкурентного анализа к операциям купли-продажи иностранной валюты будем рассматривать, двигаясь от простого к сложному. По этой причине сначала рассмотрим односторонний трейдинг, а затем перейдём к трейдингу двустороннему.
Во время одностороннего трейдинга трейдер торгует только в одну сторону - либо только продаёт, либо только покупает. Когда он продаёт, он должен постараться выявить максимальную цену дня, а когда он покупает, его задача - определить самую низкую цену дня. При этом трейдер несёт определённый риск: покупая, трейдер может упустить самую низкую цену в надежде встретить цену ещё более низкую и, наоборот, при продаже может быть упущена самая высокая цена в расчёте на то, что встретится ещё более высокая цена. Трейдер не может вернуться к лучшей цене, если она встречалась, ибо удачный момент уже канул в прошлое.
Односторонний трейдинг мы рассмотрим на условном примере, в котором трейдер должен будет в течение определённого временного отрезка продать определённое количество долларов за рубли.
В начале каждого торгового периода (для простоты таким торговым периодом будем считать день) трейдер получает текущую котировку и должен сделать выбор - принять её или же подождать более выгодного курса. Кроме того, следует иметь в виду, что трейдер в общем случае имеет возможность разделить начальное количество долларов на части и осуществлять их продажу последовательно - каждую часть по своему обменному курсу. Понятно, что такая более общая схема торговли может привести к более высокой прибыли.
Нетрудно догадаться, что эффективность выполнения трейдером торгового задания будет определяться количеством рублей, которое он получит после истечения временного отрезка, отведённого для продажи долларов. Чтобы не усложнять анализа, мы не будем здесь учитывать возможность инвестирования рублей, полученных на начальном этапе, до окончания торгового горизонта.
В условиях одностороннего трейдинга трейдеру запрещено "возвращаться" из рублей в доллары, даже в условиях благоприятствующего обменного курса, ибо это будет уже двусторонний трейдинг.
Односторонний трейдинг
Здесь в качестве меры эффективности введём конкурентное отношение следующим образом:
с = ОРТ(I) / А(I). (1)
Для нашего конкретного случая в числителе будет количество рублей, которые получил бы ОРТ-алгоритм на входной последовательности I, - это максимальное количество, которое можно выжать на данной последовательности, а в знаменателе будет количество рублей, которые реально получит наш трейдер на той же самой входной последовательности обменных курсов, работая в реальном времени.
Пусть не смущает то обстоятельство, что в разделе 1 результат, достигнутый оптимальным офлайновым алгоритмом, был в знаменателе дроби, тогда как результат, полученный онлайновым алгоритмом, был в числителе, а здесь мы их переставили местами - это непринципиально; главное, чтобы конкурентное отношение было по возможности максимально приближено к 1, а будет ли оно к ней стремиться сверху или снизу, большой роли не играет.
Понятно, что в нашем случае значение . Конкурентное отношение служит, таким образом, показателем эффективности в самых неблагоприятных условиях. Здесь любой с-конкурентный онлайновый алгоритм гарантирует результат, равный по крайней мере (1/с) части результата, полученного оптимальным офлайновым алгоритмом, независимо оттого, насколько неблагоприятным и переменчивым окажется будущее. Это следует из формулы (1) в результате простого преобразования:
А(I) = (1/с) ОРТ(I).
Теперь мы можем обратиться к практическому созданию с-конкурентных онлайновых алгоритмов. Такие алгоритмы основаны на уклонении от риска падения обменного курса.
Пусть с является конкурентным отношением, которое может быть достигнуто некоторым алгоритмом односторонней торговли; мы считаем, что с известно трейдеру: он определяет для себя приемлемый уровень конкурентного отношения (или ему его определяют). Теперь создадим с-конкурентный онлайновый алгоритм, которого должен придерживаться трейдер, ведущий торговлю в одну сторону. Этот алгоритм базируется на двух простых правилах. Применительно к нашей задаче - продаже долларов за рубли - эти правила формулируются следующим образом.
Правило 1. Рассматриваем возможность продажи долларов за рубли только тогда, когда текущий курс рубля является самым высоким из всех, которые наблюдались до сих пор.
Правило 2. Всякий раз, когда доллары продаются за рубли, продавать нужно столько, сколько необходимо для того, чтобы гарантировать, что конкурентное отношение с будет достигнуто, даже если рынок уронит обменный курс рубля до минимально возможного значения и удержит его на этом уровне в течение всего оставшегося промежутка времени.
Эти два правила применимы на протяжении всего временного горизонта, за исключением его конечной точки, когда согласно условию трейдер вынужден будет продать все оставшиеся доллары за рубли, хотя бы и по невыгодному курсу.
"Минимально возможное значение", о котором говорится во втором правиле, определяется в соответствии с информацией, известной трейдеру. Мы в дальнейшем будем исходить из того, что обменные курсы колеблются в интервале [m, М], где m - минимальное значение (самый низкий курс рубля), а М - максимальное значение (самый высокий курс рубля), причём коэффициент колебания курса f = M / m. Таким образом, минимально возможное значение курса может быть представлено величиной m, если m известно; в другом случае это может быть значение, равное (i)/f, если известно только f и величина (i) является самым высоким курсом, который наблюдался до сих пор. Кроме того, мы будем исходить из того, что нам известен временной горизонт, в течение которого необходимо реализовать все доллары.
Применение правил 1 и 2 поясним на нескольких примерах.
Пример 1. Обменные курсы не изменяются
Имеем следующую входную последовательность обменных курсов: .
Поскольку в этом случае f = M/m = 1, то нетрудно видеть, что и офлайновый алгоритм ОРТ, и онлайновый алгоритм А нашего трейдера заработают одинаково, т.е. получат по рублей. И тогда конкурентное отношение, рассчитываемое по формуле 1, будет равно:
.
Пример 2. После первого обменного курса происходит обвал
Имеем следующую входную последовательность обменных курсов:
,
где с > 1 - это конкурентное отношение, которого требуется достигнуть, am - минимально возможное значение обменного курса, которое может выбираться с учётом исторических значений колебания курса, возможно, с некоторым запасом.
Понятно, что в этих условиях оптимальный офлайновый алгоритм ОРТ заработает максимум, а именно рублей.
Что же касается нашего трейдера, то здесь рассмотрим две ситуации.
В первой ситуации трейдер отказывается продавать доллары за рубли по курсу в надежде на более выгодный курс. Однако в действительности вышло так, что он вынужден в последний момент все доллары продать по минимально возможному курсу, выручив за них рублей - результат хуже, чем у оптимального алгоритма. Вычислим конкурентное отношение для этого случая:
. (2)
Как это ни удивительно, но, даже отказавшись торговать по первому, наиболее выгодному во всей входной последовательности, обменному курсу, трейдер всё-таки достиг конкурентного отношения, к которому стремился.
Тем самым, уклонившись от продажи долларов в случае, когда первый обменный курс , трейдер, даже в условиях неблагоприятного развития дальнейших событий, может добиться требуемого конкурентного отношения с, чего не скажешь, когда .
Во второй ситуации трейдер решается всё-таки совершить сделку по первому обменному курсу в соответствии с правилом 1 алгоритма, поскольку по условию этому обменному курсу ничего не предшествует, а потому он является самым высоким на данный момент. Трейдер решает продать долларов. Тогда его выручка в рублях составит:
.
Посмотрим, каким будет конкурентное отношение в этом случае:
. (3)
Если принять во внимание тот факт, что при одинаковом числителе знаменатель дроби в формуле 3 больше, чем знаменатель в формуле 2, то становится ясно, что с' < с. Это означает, что во второй ситуации трейдер в большей степени приблизился к результату оптимального офлайнового алгоритма.
Пример 3. После первого обменного курса происходит обвал, но
Входная последовательность обменных курсов такова:
,
где с > 1 - это конкурентное отношение, которого требуется достигнуть, am - минимально возможное значение обменного курса.
Пример 2 был подобран так, что трейдер, даже отказавшись продавать доллары по первому обменному курсу, всё равно достигал необходимого конкурентного отношения. Здесь мы снимаем ограничение на величину первого обменного курса, а потому трейдер вынужден будет торговать в соответствии с правилом 1, руководствуясь при этом и правилом 2.
В условиях входной последовательности оптимальный офлайновый алгоритм получит выручку в рублях, равную .
У трейдера, работающего в онлайне, выручка составит:
.
Поскольку трейдер должен обеспечить конкурентное отношение с, то можно записать уравнение:
, (4)
в котором неизвестной величиной является только - количество долларов, продаваемых по первому обменному курсу (целевым значением конкурентного отношения с трейдер задался перед началом торговли, поэтому оно известно). Решение уравнения 4 даёт:
. (5)
Таким образом, значение находится по формуле 5.
Пример 4. Общий случай
Входная последовательность обменных курсов:
.
Рассмотрим первый трейд (обменный курс ). Так как текущий курс является самым высоким из наблюдавшихся до сих пор (мы с него и начали наблюдение), онлайновый алгоритм A которым руководствуется трейдер, предполагает совершение торговой операции. Поскольку конкурентное отношение с достигается этим торговым алгоритмом, существует некоторое такое, что отношение с будет всё ещё достижимым, если долларов будут проданы за рубли.
Кроме того, выбранное количество долларов таково, что конкурентное отношение с будет гарантировано, даже если далее пойдёт постоянное снижение обменного курса рубля и никакие дальнейшие торги не будут проводиться (за исключением одной последней сделки, во время которой продаются оставшиеся доллары по минимально возможному обменному курсу). В частности, нет никакой необходимости рассматривать любой обменный курс, который меньше, чем .
Значение находится по формуле 5.
После совершения сделки по курсу онлайновый алгоритм А осуществляет анализ входящей последовательности на предмет поиска значения обменного курса (неравенство строгое).
Как только значение будет найдено, онлайновый алгоритм А начинает решать задачу односторонней продажи долларов за рубли на укороченной входящей последовательности . Как решается эта задача, мы уже видели выше.
Поскольку аналогичные рассуждения могут быть использованы для обоснования выбора сумм для остальных торговых операций, то такая линия поведения обеспечивает с-конкурентность алгоритма. Поэтому мы не будем больше утомлять новыми формулами и выкладками, а просто предлагаем применить индукцию и аналогию. Это даст возможность определять количество долларов, которое будет продаваться онлайновым алгоритмом при нахождении каждого нового более выгодного обменного курса.
Нельзя не отметить, что в общем случае издержки по получению котировок и комиссионные будут влиять на конкурентное отношение. Например, когда вводятся фиксированные операционные издержки, конкурентное отношение увеличивается. Когда же операционные издержки определяются фиксированным процентом от величины курса, конкурентное отношение будет улучшено. И только в случае, когда операционные расходы определяются фиксированным процентом от торгуемой суммы, конкурентное отношение любого алгоритма одностороннего трейдинга не зависит от операционных расходов.
* * *
К сожалению, торговый алгоритм, который базируется на неприятии риска, приводит к чрезмерно оборонительным торговым стратегиям, а это в отдельных случаях может оказаться достаточно серьёзным недостатком. Дело в том, что в реальности лица, принимающие решения, имеют некоторую информацию со стороны или определённые знания о развитии последовательностей входных данных и было бы непростительно игнорировать эти сведения, ибо на их основе можно сделать определённый прогноз, а следовательно, постараться сыграть более эффективно, нежели это делают алгоритмы, которые ориентированы на избегание риска.
По этой причине мы рассмотрим, как можно объединить чистый конкурентный анализ с использованием прогнозов (в виде частичного знания о будущем входных последовательностей) для того, чтобы, не слишком дистанцируясь от естественного стремления к избеганию риска, присущего чистому конкурентному отношению, в то же время постараться получить больший доход.
Отступая от алгоритма, который построен на чистом конкурентном анализе и который во главу угла ставит уклонение от риска, разумный трейдер, более терпимый к риску, осознанно принимает на себя определённый риск, а из этого следует, что он заведомо должен понимать, что при самом неудачном раскладе во входных данных (в рассматриваемых нами примерах это валютные обменные курсы) он сработает хуже, чем если бы он руководствовался с-конкурентным алгоритмом, базирующимся на уклонении от риска. Насколько хуже - это зависит от принятого трейдером на себя риска.
Если мы обозначим конкурентное отношение, которого может добиться трейдер, терпимый к риску, действуя оптимальным образом при самом плохом раскладе входных данных (последовательности обменных курсов на протяжении заданного промежутка времени) через , то мы можем определить риск, который принял на себя трейдер, как величину:
,
где R - это риск, принятый на себя трейдером, а с и - это конкурентные отношения, которых добивается трейдер, действуя оптимальным образом без риска и соответственно рискованно.
Для случая продажи значение (случай равенства - это идеал, который вряд ли достижим на практике, но чем ближе значение с к 1, тем выше эффективность работы трейдера). Если же трейдер подвержен риску, то это значит, что при самом плохом раскладе он сработает хуже и достигнутое им конкурентное отношение будет отклоняться от 1 на большую величину по сравнению с безрисковым конкурентным отношением с, и тогда можно записать:
.
Понятно тогда, что и величина R тоже будет больше 1, а мера превышения будет определять степень риска.
Кстати, такое определение риска порывает с традиционными мерами, которые строятся на базе статистических предположений, и находится в полном соответствии с парадигмой конкурентного анализа. Действительно, в том случае, если риск равен 1 (т.е. трейдер не применяет никаких алгоритмов, которые работают хуже, чем оптимальный онлайновый с-конкурентный алгоритм), анализ действий трейдера в рамках модели "риск - вознаграждение" полностью совпадает с классическим конкурентным анализом.
Напомним ещё раз постановку задачи. Трейдеру необходимо продать долларов за рубли. Для этого ему отводится определённый промежуток времени, который состоит из t = 1,..., n торговых периодов, причём в начале каждого периода ему сообщается текущий обменный курс . Трейдер может либо принять его и продать все (или часть) долларов по этому курсу, либо ожидать более выгодного курса, которого может и не оказаться в оставшихся членах последовательности ; в последнем случае трейдер будет вынужден продать все оставшиеся у него доллары по курсу , который может оказаться самым неблагоприятным.
Введём обозначения:
- количество долларов, которые остаются у трейдера после окончания торгового периода t. Все алгоритмы, которые реализуют ту или иную стратегию, начинают работу, имея в своём распоряжении долларов;
- количество долларов, проданных трейдером во время торгового периода t;
- количество рублей, которое получит трейдер в конце торгового периода t;
- максимальное значение обменного курса, которое наблюдалось с момента получения задания на продажу и до торгового периода j включительно. Тогда понятно, что оптимальный офлайновый алгоритм по истечении отведённого промежутка времени получит () рублей.
Кроме того, мы по-прежнему будем полагать, что обменные курсы ограничены сверху и снизу, т.е. находятся в диапазоне [m, M]; иначе говоря, для всех t = 1,..., n.
Тогда конкурентное отношение для онлайнового алгоритма, уклоняющегося от риска, можно записать как:
. (6)
Будем считать, что это конкурентное отношение для торговой системы, рассмотренной ранее, и назовём её ТС1.
Теперь рассмотрим другую торговую систему (назовём её ТС2), которая более терпима к риску. Задача будет заключаться в том, чтобы получить оптимальное конкурентное отношение для стратегии, толерантной к риску. Для этого необходимо ввести понятие "прогноз", на основании которого трейдер предполагает, что рынок будет делать в будущем. Прогноз определяется достаточно просто - как определённое подмножество возможных входных данных. При этом мы опять-таки не делаем никаких статистических предположений, а просто исследуем некоторые типы прогнозов, которые делают отдельные трейдеры. Эти прогнозы дают только частичную информацию о том, что может случиться; например, курс может возрасти на столько-то пунктов в какой-либо момент в течение следующего месяца.
В качестве примера рассмотрим прогноз, который относится к множеству прогнозов, достаточно часто совершаемых трейдерами: будем считать, что обменный курс поднимется до уровня как минимум в один из торговых периодов, то есть найдётся такое значение , для которого .
Оправдается ли риск, который трейдер принял на себя в рамках модели "риск - вознаграждение", мы можем увидеть, только когда узнаем итоговую сумму рублей, полученных в результате полной продажи долларов. Если она превысит сумму рублей, заработанную торговой стратегией ТС1, то риск оправдался, если же этого не произойдёт, то, значит, риск не оправдался.
В этих рамках трейдер может создавать гибкие торговые стратегии. Он указывает максимальный приемлемый для себя уровень риска, прогноз того, как, по его мнению, будет себя вести рынок, и создаёт алгоритм, который максимизирует вознаграждение на тот случай, если прогноз сбудется, но который в то же время не превышает заданный уровень риска для любой последовательности входных данных.
Итак, предполагаем, что трейдер принимает на себя некоторый риск . Тогда оптимальный алгоритм, толерантный к риску, будет функционировать в две стадии.
На первой стадии алгоритм, которым должен руководствоваться трейдер и который реализует торговую систему ТС2, действует под угрозой того, что прогноз не осуществится, а потому продаёт за рубли столько долларов, чтобы гарантировать достижение конкурентного отношения (с поправкой на риск), т.е. . На этой стадии алгоритм действует достаточно консервативно, с одной стороны, гарантируя достижение конкурентного отношения (с учётом того риска, который на себя принял трейдер), а с другой - сберегая часть долларов на тот случай, если прогноз оправдается, чтобы продать их по более высокому курсу.
Вторая стадия начинается, когда прогноз оправдывается. Алгоритм сначала рассчитывает новое минимальное достижимое конкурентное отношение (раз уж прогноз сбылся), а затем начинает торговать таким образом, чтобы гарантировать достижение этого нового конкурентного отношения () при угрозе падения обменного курса до минимального значения, равного m, и последующего пребывания его на этом уровне до истечения промежутка времени, отведённого для совершения операции по продаже долларов. На этой стадии торговая система ТС2 имеет возможность продать больше долларов по более высокому курсу, нежели это сделала торговая система ТС1. В результате, если прогноз осуществится, ТС2 заработает больше рублей, чем ТС1.
Здесь важно подчеркнуть, что торговая система ТС1, которую мы рассматривали выше, была с-конкурентной, какая бы последовательность обменных курсов нам ни была предложена.
При анализе торговой системы ТС2 мы вынуждены будем всё множество возможных входных последовательностей (обменных курсов) разбить на два класса: в один класс войдут входные последовательности, для которых прогноз трейдера окажется верен - тогда как в другой класс войдут все остальные входные последовательности - для них прогноз трейдера окажется ошибочным.
Ранее отмечалось, что трейдер может не совершать продажу долларов, если обменный курс находится в пределах , поскольку даже в худшем случае конкурентное отношение с ему будет обеспечено. Поэтому есть смысл рассматривать только те обменные курсы, значения которых превышают (для торговой системы ТС2 это будет значение , поскольку вводится поправка на риск). Таким образом, будем считать, что торговая система ТС2 будет иметь дело с такой входной последовательностью: и , причём значение находится в диапазоне [1 ... n].
Обозначим через значение первого обменного курса, при котором прогноз сбывается (если такое происходит), т.е.:
.
Таким образом, при заданных m, M, n, c, при новом значении обменного курса , подверженности риску R и прогнозе, согласно которому входная последовательность обменных курсов будет такова:
, -
алгоритм торговой стратегии ТС2 можно представить следующим образом.
Правило 1 остаётся прежним: продажа осуществляется только тогда, когда обменный курс достигает нового максимума, т.е. когда .
Правило 2 изменяется следующим образом: пока , продавать долларов за рубли (т.е. пока прогноз не осуществится, доллары продаются настолько малыми количествами, насколько это допускает терпимость трейдера к риску, при которой должно быть гарантировано конкурентное отношение ).
В торговой системе ТС2 появляется правило 3: когда прогноз сбывается, рассчитывается новое конкурентное отношение и можно считать, что начинается новая игра - при осуществлении акта продажи достаточно гарантировать достижение нового конкурентного отношения даже в том случае, если обменный курс упадёт до значения m и останется на этом уровне до окончания отведённого периода времени.
Нетрудно видеть, что, когда прогноз сбывается, торговая система ТС2 добивается конкурентного отношения , достигая тем самым более высокого результата. Это происходит за счёт того, что алгоритм торговой системы ТС2, сберегая доллары на первой стадии игры, затем продаёт большее количество долларов по более высокому курсу на второй стадии игры.
Теперь необходимо установить, что алгоритм, который лежит в основе торговой системы ТС2, является оптимальным, иначе говоря, самым лучшим онлайновым алгоритмом, который предназначен для односторонней торговли и терпим к риску. Для того чтобы показать это, достаточно рассмотреть два случая, когда некоторый онлайновый алгоритм А, толерантный к риску, отклоняется в своих действиях от линии поведения алгоритма, реализующего торговую стратегию ТС2.
В первом случае алгоритм А, отклоняясь от поведения алгоритма торговой системы ТС2, начинает продавать слишком уж мало долларов на первой стадии в надежде на повышение курса. Если при этом рынок вдруг роняет обменный курс до значения m (прогноз не оправдался), то алгоритм А сработает хуже ТС2 и тем самым превысит допустимый уровень риска R, который был определён для торговой системы, толерантной к риску. Поэтому такой алгоритм должен быть отвергнут.
Если же алгоритм А, отклоняясь от алгоритма торговой системы ТС2, начнёт продавать слишком много долларов по низким курсам, то он никогда не сможет компенсировать такую массированную невыгодную распродажу за счёт продажи меньшего количества долларов по более высоким курсам, а потому тоже должен быть отброшен.
Сказанное как раз и означает, что торговая система ТС2 представляет собой оптимальный толерантный к риску онлайновый алгоритм для случая торговли в одном направлении (в нашем случае - только продажа).
Для торговой стратегии ТС2 значение необходимо рассчитывать для трёх случаев:
1) t < v (первая стадия - прогноз ещё не сбылся, конкурентное отношение соответствует значению );
2) t = V (для первого значения t, при котором прогноз сбывается);
3) t > v (вторая стадия - новое конкурентное отношение соответствует значению ).
Для первого случая, памятуя о том, что обменный курс может рухнуть до значения m после совершения продажи по курсу , а торговая система ТС2 должна гарантировать достижение конкурентного отношения , мы можем записать:
. (7)
Обратите внимание, что поскольку продажа совершается по курсу , то по правилу 1 этот курс считается максимальным из всех зафиксированных. Именно по этому курсу осуществит продажу всех долларов оптимальный офлайновый алгоритм - это и отражает числитель дроби, а в знаменателе указывается результат, достигнутый онлайновым алгоритмом торговой системы ТС2.
Заметим, что . Сделав необходимые подстановки в формуле 7, можно будет получить значение для :
. (8)
В приведённой формуле предполагается, что , .
Для второй стадии (третий случай) формула будет аналогичной, только в первой квадратной скобке в знаменателе вместо будет стоять новое значение конкурентного отношения :
. (9)
И только для случая t = v формула примет новый вид:
. (10)
Наконец, осталось самое главное - привести формулу для оптимального значения нового конкурентного отношения :
, (11)
где
,
и
.
Выкладки ввиду их громоздкости здесь не приводятся.
Двусторонний трейдинг
Двусторонний трейдинг (напомним, мы говорим торговле валютой) предполагает, что в течение временного горизонта, отведённого для торговли, конвертация может осуществляться в обоих направлениях, т.е. и доллары могут продаваться за рубли, и рубли могут обмениваться на доллары в зависимости от конъюнктуры (здесь мы расширяем тот пример, который рассматривали ранее, сняв ограничение, предполагавшее, что доллары не могут покупаться вновь за рубли).
Целью двустороннего трейдинга является получение как можно более высокого дохода, а мерой эффективности достижения этой цели, как и в задаче односторонней торговли, будет конкурентное отношение, которое по возможности должно максимально приближаться к единице. Не существует никаких ограничений на количество операций конвертации.
В нашем примере трейдер начинает двусторонний трейдинг с некоторой суммы долларов, продавая доллары за рубли или рубли за доллары в зависимости от складывающейся конъюнктуры, которая определяется последовательностью обменных курсов раскрываемых последовательно один за другим в режиме онлайн. Эти курсы (рубль/доллар) хотя и остаются в интервале между минимальным и максимальным значениями [m, M], тем не менее могут расти и падать произвольным образом.
Когда торговля завершается, все средства конвертируются в одну из валют по текущему курсу, сложившемуся на момент истечения временного отрезка, отведённого для торговли. Отношение суммы, аккумулированной оптимальным офлайновым алгоритмом OPT на заданной последовательности обменных курсов (напомним, алгоритм OPT "знает" наперёд всю входную последовательность), к сумме, аккумулированной трейдером, который руководствовался онлайновым алгоритмом A (этому алгоритму известны только текущие и предшествующие значения элементов входной последовательности), остаётся тем же самым независимо от того, в какую валюту они конвертируются, когда торговля завершается. Для определённости будем считать, что на конец торговли все средства конвертируются в первоначальную валюту (доллары). В целях упрощения предполагается, что какие-либо комиссионные отсутствуют.
Предположим, что в последовательности обменных курсов существует локальных максимумов и минимумов (у локального максимума соседние значения обменных курсов слева и справа ниже максимума, а у локального минимума, напротив, соседние значения и слева и справа выше минимума). Будем считать чётным числом. Тогда можно показать, что последовательность обменных курсов будет состоять из k/2 участков повышения обменных курсов и k/2 участков их снижения (всего участков).
Оптимальная стратегия для офлайнового алгоритма OPT в двусторонней торговле заключается в том, чтобы конвертировать все имеющиеся доллары в рубли в конце каждого участка повышения (на локальном максимуме) и все имеющиеся рубли в доллары в конце каждого участка снижения (на локальном минимуме).
Что касается онлайнового алгоритма A, то он будет продавать доллары за рубли, если цена доллара в рублях растёт (решается задача максимизации). И наоборот, доллары будут покупаться за рубли, если их рублёвая стоимость будет снижаться (решается задача минимизации).
Допустим, что первый участок (повышения) состоит из обменных курсов , но , т.е. - локальный максимум. Во время первых t дней трейдер действует в соответствии с ранее рассмотренным онлайновым алгоритмом для торговли в одну сторону. При этом он будет стараться добиться конкурентного отношения c. После дня t он имеет долларов и рублей. Зная, что - локальный максимум, мы можем записать конкурентное отношение для первого участка возрастания обменных курсов следующим образом:
,
где - результат работы оптимального офлайнового алгоритма на первом возрастающем участке; представляет результат работы онлайнового алгоритма на этом же участке в самом плохом случае, когда после пикового значения обменный курс упадёт до значения m.
В день t + 1 трейдер должен будет конвертировать все свои оставшиеся доллары в рубли, поскольку обменный курс указанного дня говорит о том, что участок возрастания обменных курсов завершился.
В то же время, поскольку день t + 1 свидетельствует о начале первого ниспадающего участка обменных курсов, трейдер в этот же день приступает к покупке долларов за рубли на протяжении всего участка снижения обменных курсов; при этом он обменивает все оставшиеся у него рубли в первый день следующего участка повышения.
Таким образом, в первый день любого участка снижения имеют место две транзакции: сначала обмен всех оставшихся долларов на рубли, затем, пользуясь изменившейся конъюнктурой, в качестве первого шага алгоритма уклонения от неблагоприятного колебания курса начинается однонаправленная покупка долларов за рубли, которая продолжается на протяжении всего участка снижения. Эти две концептуально различные (встречные) транзакции, конечно же, могут и должны быть объединены в одну результирующую транзакцию, хотя бы в целях экономии на транзакционных издержках, несмотря на то что мы их здесь не рассматриваем.
Точно так же в первый день любого участка повышения в последовательности обменных курсов, кроме первого, могут иметь место две транзакции - обмен всех оставшихся рублей на доллары, поскольку участок снижения завершился, и начало продажи долларов за рубли на участке повышения; они также могут объединяться в одну транзакцию.
Поскольку на каждом участке (повышения или снижения - неважно) отношение между капиталом оптимального офлайнового алгоритма OPT и капиталом трейдера, который руководствуется онлайновым алгоритмом A, увеличивается самое большее в c раз (множитель c представляет собой конкурентное отношение, которого трейдер старался достичь на отдельном участке повышения или снижения), то в итоге после завершения торговли трейдер, руководствующийся онлайновым алгоритмом A, достигает конкурентного отношения - это обобщённое значение конкурентного отношения для всей входной последовательности, на которой имеется участков повышения и снижения.
Следует отметить, что приведённая здесь стратегия двусторонней торговли не является оптимальной. Лучше всего это понять, если рассматривать торговлю как игру двух лиц: нашего трейдера и злонамеренного противника, который старается построить такую входную последовательность обменных курсов, на которой конкурентное отношение будет в максимальной степени отклоняться от 1. В случае односторонней торговли, который был рассмотрен в предыдущем номере журнала, неблаговидным поступком со стороны злонамеренного противника было следующее действие - "уронить" обменный курс до минимального значения m и удерживать его на этом уровне до истечения временного горизонта.
Однако нетрудно видеть, что в случае двусторонней торговли падение обменного курса до минимального значения m является идеальной ситуацией для покупки долларов - именно по этому курсу будет покупать доллары за рубли оптимальный офлайновый алгоритм OPT. А нашему трейдеру не останется ничего другого, как последовать этому примеру, так как он никогда не будет иметь более благоприятного обменного курса для покупки долларов и, следовательно, будет покупать доллары оптимальным образом, что обеспечит ему в этом локальном случае конкурентное отношение, равное 1.
Из сказанного следует, что значение для случая двусторонней торговли - это верхняя (самая плохая) граница обобщённого конкурентного отношения. Если же на половине (k/2) участков частное конкурентное отношение будет равно 1, то понятно, что нижняя граница обобщённого конкурентного отношения будет равна .
То обстоятельство, что верхняя и нижняя границы обобщённого конкурентного отношения для двусторонней торговли имеют экспоненциальный характер, несколько вводит в заблуждение. Кому-то может показаться, что дело обстоит хуже, чем оно есть на самом деле. Причина заключается в том, что доходы оптимального офлайнового алгоритма на входной последовательности обменных курсов с локальными минимумами и максимумами настолько экспоненциально велики, что конкурентные отношения, о которых идёт речь, вовсе не исключают возможности очень больших (экспоненциальных) доходов для трейдеров, осуществляющих двустороннюю торговлю в онлайне.
Торговля иными активами
Задачу двустороннего трейдинга валютой можно распространить (обобщить) на случай торговли любым активом. Будем считать, что всякий j-й интервал времени j = 1, ..., р) инициируется операцией покупки и заканчивается операцией продажи. Таким образом, внутри инвестиционного горизонта осуществляется р трейдов. Конкурентное отношение для операций купли-продажи измеряет эффективность онлайнового алгоритма A с точки зрения достигнутого дохода после осуществления трейдов. Онлайновые алгоритмы для двусторонней торговли активами, спроектированные либо для совершения одного трейда (p = 1), либо для последовательной торговли (p > 1), определяются следующим образом.
Однократная двусторонняя сделка. Внутри временного горизонта актив торгуется точно один раз. При этом цель заключается в том, чтобы купить один-единственный актив по наилучшей (близкой к его минимальной) цене и продать его позднее по наилучшей (близкой к его максимальной) цене .
Множественные двусторонние сделки. Внутри временного горизонта актив торгуется более одного раза. Цель заключается в совершении двусторонних торговых сделок последовательно p (p > 1) раз - купить актив p (p > 1) раз по ценам, близким к ценам локальных минимумов , и продать актив p (p > 1) раз по ценам, близким к локальным максимумам . Предполагается, что цены движутся в интервале [m, M]. Среди множественных двусторонних сделок можно различать торговлю одним активом последовательно p (p > 1) раз и торговлю p (p > 1) раз несколькими различными активами.
В обоих случаях расчёт конкурентного отношения идентичен. Пусть представляет собой алгоритм двусторонней торговли активами. Предполагаем, что алгоритмы торгуют последовательно и каждый j-й трейд состоит из одной операции покупки и одной операции продажи. Кроме того, мы предполагаем, что алгоритм X покупает раз по возможно более низкой цене и продаёт по возможно более высокой цене . Тогда доход алгоритма X для каждого j-го трейда, где j = 1..., р, равняется:
,
а полный доход после p-го трейда будет равен:
.
Онлайновый алгоритм A, решающий задачу максимизации ожидаемого дохода, принято называть "делающим деньги", если он гарантирует прибыльность в том случае, когда офлайновый алгоритм OPT является прибыльным, т.е. .
Совокупное конкурентное отношение для двусторонней торговли активами (p), если , может быть выведено двумя путями.
При совершении j-й операции покупки решается задача минимизации:
.
Однако при выполнении операции продажи решается задача максимизации:
.
В результате для j-го трейда получим:
.
Тогда совокупное конкурентное отношение будет равно:
.
Второй способ вывода совокупного конкурентного отношения определяется через доходы, которые аккумулируют офлайновый и онлайновый алгоритмы:
.
Таковы общие соображения по расчёту конкурентных отношений для двусторонней торговли.
* * *
Рассмотрим конкретный пример.
В каждом j-м трейде мы будем предполагать, что самый неблагоприятный временной ряд цен какого-то актива включает только минимум цен m(j) и максимум цен M(j). Тогда лучший алгоритм OPT будет покупать по цене m(j), а продавать по цене M(j), в результате чего оптимальный доход на j-м шаге будет равен OPT(j) = M(j) / m(j). В худшем случае онлайновый алгоритм A покупает по цене M(j) и продаёт по цене m(j), что даёт доход (на самом деле можно говорить об убытке) на j-м шаге, равный A(j) = m(j) / M(j) = 1 / OPT(j). В результате получаем конкурентное отношение по j-му трейду:
.
После завершения p трейдов полное конкурентное отношение в самом неблагоприятном случае будет равно:
.
Если предположить, что m(j) = m и M(j) = M являются константами, то выражение для полного конкурентного отношения упрощается:
.
Из последнего выражения видно, какую важную роль играет точное определение интервала [m, M], в котором движутся цены. Чем лучше оценка m и M, тем выше эффективность стратегий активной торговли по сравнению с банальной пассивной стратегией "покупай и держи". Нетрудно догадаться, что в пределах относительно коротких периодов (до четырёх недель) можно добиться более точной оценки значений m и M для периода такой длины. Чем больше длина периода, тем хуже относительная эффективность для всех активных стратегий. Это связано как раз с тем, что для более длинных периодов истории значения m и M оцениваются хуже по сравнению с более короткими периодами.
Управление портфелем
Одной из наиболее сложных задач в банковской практике является управление портфелем активов, который в самом общем случае может включать различные финансовые инструменты.
Будем считать, что задача выбора портфеля определяется следующим образом. Предположим, что на рынке существует m ценных бумаг, которые включают акции, облигации и т.д. Для каждого торгового дня , пусть представляет собой ценовой вектор, где - цена или курс j-й ценной бумаги, определённые в местной валюте для i-го периода. Для анализа часто более удобно оперировать относительными ценами, нежели обычными ценами, поэтому определим как относительную цену j-й ценной бумаги, отнесённую к i-му периоду. Заметим, что инвестирование денежной суммы d в j-ю ценную бумагу как раз перед i-м периодом даёт доход в размере . Обозначим через рыночный вектор относительных цен, соответствующий i-му дню. Таким образом, все компоненты вектора являются неотрицательными числами, причём разумно потребовать, чтобы по крайней мере одна компонента вектора не была равна нулю.
Портфель b представляет собой распределение наших денежных средств для инвестирования на рынке. Портфель определяется долями нашего текущего благосостояния, инвестированного в каждую из ценных бумаг:
, .
Доход портфеля b, принимая во внимание рыночный вектор x, равняется . Совокупный доход последовательности портфелей , учитывая рыночную динамику (т.е. последовательность , равняется:
.
Алгоритм выбора портфеля представляет собой любое детерминированное или случайное правило для спецификации портфелей. Если A является детерминированным (или случайным) алгоритмом выбора портфеля, тогда его ожидаемый доход со ссылкой на динамику рыночных цен или курсов (последовательность X) можно обозначить как A(X). Естественно, что нас будут интересовать главным образом онлайновые алгоритмы выбора портфеля, в которых решение о внесении изменений в портфель (т.е. о следующем портфеле) базируется только на рыночной истории до настоящего времени. Очевидная цель управления портфелем заключается в том, чтобы спроектировать алгоритмы, которые максимизируют A(X) и тем самым в максимальной степени приближают конкурентное отношение к 1.
Чтобы излишне не усложнять материал, придётся здесь игнорировать несколько важных факторов, таких как транзакционные издержки, бид-аск спрэд, толерантность к риску и т.д.
* * *
Самая простая стратегия, пропагандируемая многими финансовыми советниками, называется "покупай и держи" (Buy and Hold - BAH) и заключается в том, чтобы разделить всё количество доступных наличных, после чего купить различные ценные бумаги и удерживать портфель этих ценных бумаг на протяжении всего срока инвестирования. Такая стратегия имеет то достоинство, что минимизируются транзакционные издержки. Кроме того, она получает преимущество от естественной тенденции рынка к росту, а грамотная диверсификация вложений позволяет снизить риск от портфельных инвестиций, измеренный дисперсией доходов портфеля.
Принцип "Не следует класть все яйца в одну корзину" был известен достаточно давно, однако только Гарри Марковиц разработал строго сформулированную и пригодную для применения теорию для выбора инвестиционного портфеля в условиях неопределённости, за что и получил Нобелевскую премию в 1990 году, хотя основополагающая работа была выполнена им ещё в 1952 году. Он, в частности, показал, что при определённых заданных условиях выбор портфельных инвестиций может быть сведён к балансированию двух величин, а именно ожидаемого дохода от портфельных инвестиций и их изменения (дисперсии). Вследствие возможности уменьшить риск путём диверсификации, т.е. помещения капитала в разные ценные бумаги, риск будет зависеть не только от индивидуальных различий в прибыли от различных ценных бумаг, но также от попарных ковариаций всех ценных бумаг в совокупности. Отсюда следовало, что ключевым моментом подхода к риску инвестирования в ценные бумаги является не учёт риска каждой акции, взятой изолированно, а измерение доли каждого вида ценных бумаг в риске инвестиционного портфеля в целом.
Популярности пассивных инвестиций, к каковым относится стратегия "покупай и держи", способствовала работа известных экономистов Гэри Бринсона, Рэндольфа Худа и Гилберта Бибовера*(1). В ней авторы показали, что из всех факторов, определяющих эффективность портфельных инвестиций, львиная доля () приходится на грамотное распределение активов (Asset Allocation), примерно 4% - на выбор (Selection) конкретных объектов инвестирования (акций и т.д.) и только около 2% приходится на выбор удачного момента выхода на рынок и ухода с него (Timing). Мораль, которая должна вытекать из этой работы, сводится к достаточно простому вопросу: стоит ли заниматься активными инвестициями только для того, чтобы получить результат, на 4% превышающий результат, который дают пассивные инвестиции, и тем более стоит ли заниматься спекуляциями, чтобы получить результат всего лишь на 2% лучше того результата, который дают пассивные инвестиции? Каждый, кто намерен заниматься инвестициями, должен для себя решить этот вопрос.
Для того чтобы измерить эффективность онлайнового алгоритма выбора портфеля, часто полезно исследовать офлайновый вариант задачи. В действительности это основная стартовая точка конкурентного анализа. Нетрудно догадаться, что оптимальный офлайновый алгоритм (BAH-OPT) инвестирует все денежные средства в одну акцию, которая покажет самую высокую эффективность за рассматриваемый период. Большинство инвесторов считали бы себя очень успешными, если бы были способны достичь дохода, который обеспечивает алгоритм BAH-OPT.
* * *
Однако те, кто желает выжать из рынка всё, что можно, очень часто применяют альтернативный подход к управлению портфелем, который заключается в попытке получить преимущество из волатильности, проявляемой в ценовых колебаниях, и активной торговли на основе "день за днём". Такая активная торговля может принести доходы, которые в значительной степени превосходят эффективность самой лучшей ценной бумаги.
Например, рассмотрим класс алгоритмов с постоянной балансировкой (Constant Rebalanced Algorithm). Алгоритм этого класса, обозначаемый как , определяется фиксированным портфелем b и поддерживает постоянные веса (по стоимости) среди ценных бумаг. Таким образом, в начале каждого торгового периода алгоритм совершает торговые операции, производя балансировку своего портфеля так, чтобы он являлся b-сбалансированным. Алгоритмы постоянной балансировки мотивированы следующими соображениями.
Во-первых, можно показать, что оптимальный офлайновый алгоритм этого класса, CBAL-OPT, может принести экспоненциальные доходы, которые в значительной степени превосходят самую лучшую ценную бумагу.
Рассмотрим это на тривиальном примере, когда m = 2 (т.е. портфель состоит из наличных и одной акции). Представим рыночную последовательность:
.
Тогда .
В указанном примере доход экспоненциально зависит от n, тогда как цена нашей лучшей акции не имеет направленного движения. Отсюда видно, что по сравнению со стратегией "покупай и держи" стратегия CBAL может извлекать преимущество из рыночных колебаний, чтобы добиться дохода, превышающего доход алгоритма BAH-OPT.
Легко увидеть, что доход CBAL-OPT ограничен снизу доходом BAH-OPT, поскольку каждая BAH-стратегия может расцениваться как экстремальный случай CBAL-алгоритма. Рядом исследователей эмпирически было показано, что на реальных рыночных последовательностях доход алгоритма CBAL-OPT может существенно превосходить самую лучшую акцию, причём для некоторых рынков это справедливо даже при наличии умеренных комиссионных издержек.
Во-вторых, класс CBAL-алгоритмов является достаточно простым, поэтому сравнительное исследование таких онлайновых алгоритмов достаточно легко поддаётся обработке.
В-третьих, если сделать предположение, что движение цен акций не зависит одна от другой (у кого-то это вызовет сомнение: теорию случайных блужданий на рынках достаточно сложно обосновать), тогда можно показать, что любой алгоритм CBAL, который максимизирует ожидаемый доход, делает это так же хорошо или даже лучше, чем любая другая онлайновая стратегия.
В качестве примера постоянной балансировки портфеля можно привести онлайновый алгоритм, который базируется на трёх параметрах: r, w, . Параметр риска r находится в диапазоне от 0 до 1 и контролирует ту долю стоимости акций, которую алгоритм желает продать в любой данный торговый период (день). Дело в том, что каждая акция будет подвержена риску изменения её веса в портфеле, если она вырастет в стоимости и окажется в достаточной степени антикоррелирована с другими акциями. Если она окажется в достаточной степени антикоррелирована, то сумма, определяемая параметром r, распределяется среди падающих акций пропорционально коэффициенту корреляции.
Параметр "длина "окна" w" определяет длину "истории", которая используется для расчёта нового портфеля. Чтобы получить преимущество от краткосрочных движений, связанных сценами, целесообразно использовать небольшой размер "окна".
Параметр представляет собой порог корреляции, который определяет, в достаточной ли степени акция антикоррелирована по отношению к другой акции (если это так, то вес акции в портфеле изменяется).
Правило обновления (балансировки) портфеля, которое использует данный онлайновый алгоритм, заключается в следующем. Пока прошло недостаточно времени для того, чтобы сформировать полное "окно" длины w, алгоритм поддерживает однородный портфель, т.е. для t = 1 ... w:
.
Однако для любого дня t > w портфель обновляется согласно следующему описанию:
для определим .
Полученная матрица будет содержать логарифмы цен, привязанных к текущему "окну" (на момент времени t). Она используется для того, чтобы рассчитать эмпирический коэффициент корреляции CS (i, j) между i-й и j-й акциями. Кроме того, можно рассчитать - среднюю логарифмическую цену, соответствующую акции j на протяжении текущего временного окна.
Определим ссылку Claim (i, j) акции j на другую акцию i:
, если и , либо 0, если иначе.
Кроме того, пусть и , если , или 0 в противном случае.
Тогда новый портфель может быть определён в терминах приведённых обозначений следующим образом:
.
* * *
Наконец, кроме стратегий "покупай и держи", а также стратегий постоянной балансировки существуют стратегии переключений. Стратегия переключений предписывает такую линию управления портфелем, которая предполагает переключение его полного текущего благосостояния с акции на акцию . Алгоритм для генерации такой последовательности переключений может быть детерминированным или случайным. Были предложены различные алгоритмы последовательностей переключения, и хотя инвестиционные стратегии, построенные на последовательности переключений, могут показаться слишком спекулятивными, тем не менее с теоретической точки зрения они хорошо обоснованы. Более того, для любых рыночных последовательностей истинно оптимальный алгоритм как раз и является последовательностью переключений.
В качестве примера стратегии переключения рассмотрим онлайновый алгоритм A, основанный на так называемых резервных ценах RP. Резервная цена RP рассчитывается следующим образом: (где M - максимальное, а m - минимальное значение цены конкретной акции). Нетрудно догадаться, что резервная цена вычисляется на основании пропорции:
(M / RP) = (RP / m).
В каждом торговом периоде онлайновый алгоритм A рассчитывает резервные цены для каждой акции j на день t. В том случае если алгоритм A желает купить акцию j, то он выбирает такую, для которой:
.
Для продажи акции j онлайновый алгоритм A выбирает первую же цену такую, что . Если же такой цены не было, то продажа должна быть выполнена по цене закрытия торгового периода.
* * *
Одна из целей в исследовании проблемы выбора портфеля заключается в том, чтобы создать онлайновые торговые стратегии, которые гарантируют в некотором смысле хорошее выполнение. Первая трудность, которая возникает при попытке создать и оценить алгоритмы выбора портфеля, заключается в выборе меры эффективности. Поскольку мы сейчас фокусируемся главным образом на конкурентном анализе, то в силу этого эффективность онлайновой стратегии выбора портфеля должна сравниваться со стратегией эталонного алгоритма на каждой входной последовательности. В качестве эталона может выступить доход, который приносит самая лучшая акция. Однако для более активных стратегий оптимальный алгоритм (который имеет полное знание о будущем) мог бы обеспечить доходы настолько экстремальные, что любой другой подход будет обречён, если его рассматривать в сравнении с оптимальным алгоритмом.
В теории доказывается, что любой онлайновый алгоритм, конкурирующий с оптимальным офлайновым алгоритмом (OPT), является в самом лучшем случае -конкурентным, где n - количество торговых периодов (например, дней), а m - количество акций. Другими словами, для некоторых рыночных последовательностей отношение оптимального офлайнового дохода к онлайновому доходу равняется .
В заключение
Технические трудности, которые встречаются в большинстве традиционных подходов, обусловили возникновение конкурентного анализа и новых направлений исследований. Подход, базирующийся на конкурентном анализе, заключается в том, чтобы начать с минимума предположений, вывести алгоритмы для перспективы, рассчитанной на самый плохой случай, а затем по возможности добавить статистические предположения или предположения о распределении вероятностей, если необходимо получить аналитические результаты и (или) предложить эвристические усовершенствования первоначальных алгоритмов. Может показаться невероятным, что этот подход может быть плодотворным, но некоторые интересные результаты уже получены.
Возможно, наиболее выразительными являются некоторые предварительные экспериментальные результаты, показывающие, что определённые алгоритмы, которые ориентируются на приемлемое конкурентное исполнение, так же хорошо выглядят и на последовательностях исторических данных.
Целью этой статьи было познакомить читателя с новым подходом к разработке стратегий, которые применяются в банковской практике. При этом следует иметь в виду, что наибольший потенциал имеют те алгоритмы, которые мотивированы как конкурентными соображениями, так и попытками изучения статистических свойств данных.
А. Сперанский
"Бухгалтерия и банки", N 5-7, май-июль 2012 г.
-------------------------------------------------------------------------
*(1) Gary P. Brinson, L. Randolph Hood, Gilbert L. Beebower Determinants of Portfolio Performance // Financial Analysts Journal. 1986.
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Журнал "Бухгалтерия и банки"
Журнал зарегистрирован Федеральной службой по надзору в сфере связи и массовых коммуникаций. Свидетельство о регистрации ПИ N ФС77-35433 от 25 февраля 2009 г.
Издается с 1996 г.
Учредитель: ООО Издательский дом "Бухгалтерия и банки"
http://www.bib.bankir.ru