А. Горчаков. О построении оптимальной торговой системы из набора систем.
Re: Технический (статистический) анализ. Механистические торговые системы -- admin3   Ответить Форум
Отправлено:
04/20/2004, 11:29:51

Author Profile e-mail автора
1. Случай одного актива

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

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

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

Предположение 1. Естественно, предположить, что если функция распределения доходности одной торговой системы меньше, либо равна функции распределения другой торговой системы, то "доходность", как функция от распределения, первой торговой системы не меньше, чем "доходность" второй торговой системы, а риск (опять же, как функция от распределения) у первой торговой системы не выше, чем у второй. Т. е. вторая система заведомо хуже первой.

Это достаточно простое предположение о свойствах функций "доходности" и риска, по необъяснимым для меня причинам редко встречается в литературе по доходности и риску, видимо, из-за сложившегося стереотипа – «чем выше "доходность", тем выше риск». Мы же для рассмотренного нами условия:
– функция распределения доходности первой системы меньше, либо равна функции распределения второй системы
де-факто формулируем обратное:
- «чем выше "доходность", тем ниже риск».

Но, если взглянуть внимательнее на наше условие, то это утверждение достаточно естественно. Ведь функция распределения – это вероятность, что случайная величина меньше некоторого заданного х, а значит для любого наперед заданного х вероятность, что доходность первой системы будет больше х БОЛЬШЕ, ЛИБО РАВНА аналогичной вероятности у второй системы и наоборот вероятность, что доходность первой системы меньше х МЕНЬШЕ ЛИБО РАВНА аналогичной вероятности у второй. И какие бы известные функции "доходности" и риска мы не рассматривали, мы увидим, что функция "доходности" у первой системы больше, либо равна функции доходности второй, а риск первой системы меньше, либо равен риску второй.

В то же время это предположение дает нам возможность отсеивания «плохих» систем при условии, если мы знаем функцию распределения доходности. Конечно мы ее не знаем точно, но при некоторых дополнительных условиях мы можем ее достаточно точно оценить.

Зададим проскальзование, имеющее место на данном активе для нашего объема средств, и комиссию на сделку, и для каждой из систем рассчитаем кривую капитала (эквити) для данной системы, которая имела место в прошлом – К(t,j) в рассматриваемые нами моменты времени t=0,1,2,…,T, j – порядковый номер системы, j=0,1,2,…,N.

Относительно последовательности векторов (К(t,j), j=0,1,2,…,N), t=0,1,2,…, сделаем два предположения. Сразу отметим, что эти предположения носят теоретико-вероятностный характер и нужны нам лишь для обоснования корректности предлагаемого алгоритма. Поэтому читателю, неискушенному в теории вероятностей и не желающему тратить на нее время, мы рекомендуем пропустить мелкий текст ниже и сразу перейти к сформулированной ниже теореме.

Итак

Предположение 2. Последовательность векторов (К(t+1,j)/К(t,j), j=0,1,2,…,N), t=0,1,2,…, – стационарна в узком смысле, т. е. для любых t(1) и t(2) распределения векторов (К(t(1)+1,j)/К(t(1),j), j=0,1,2,…,N) и (К(t(2)+1,j)/К(t(2),j), j=0,1,2,…,N) – совпадают.

Предположение 3. Последовательность векторов (К(t,j), j=0,1,2,…,N), t=0,1,2,…, – слабо зависима с коэффициентом слабой зависимости a(t)=МИН (1,b(t)*exp{-a*t)), b(t) – ограниченная неотрицательная невозрастающая функция от t, т. е. для любых t(1) меньше t(2) и t(2)-t(1)=t распределение вектора

(К(t1+1,j)/К(t1,j), (К(t2+1,j)/К(t2,j), t1=0,1,…,t(1), t2=t(2), t(2)+1,…, j=0,1,2,…,N)

отличается от распределения того же вектора, в предположении, что вектора

(К(t1+1,j)/К(t1,j) t1=0,1,…,t(1), j=0,1,2,…,N) и (К(t2+1,j)/К(t2,j), t2=t(2), t(2)+1,…, j=0,1,2,…,N),

независимы, на величину не превосходящую a(t) (отметим, что 1 – тривиальная оценка сверху для этого отличия и потому взятие МИН в формуле для a(t) выше не ограничивает нас никаким образом).

Примечание 1. Очень часто возражением против стационарности в узком смысле является утверждение типа: «доходность нестационарна, так как для растущего и падающего рынка мы будем иметь разные доходности». Это возражение некорректно, так как в нем речь идет НЕ О БЕЗУСЛОВНОМ РАСПРЕДЕЛЕНИИ К(t+1,j)/К(t,j), а об УСЛОВНОМ, т. е. при условии соответствующего состояния рынка. Однако, как давно показано в теории вероятностей, различие условных распределений вовсе не означает нестационарность безусловных.

Примечание 2. Часто возражением против слабой зависимости является возражение типа: «какая может быть слабая зависимость, если мы в момент времени t «в деньгах», то с вероятностью 1 К(t+1,j)/К(t,j)=1?». И снова этим возражением путается зависимость на 1 шаг со слабой зависимостью. Ведь близости к независимости на 1 шаг никто не обещал. А аналогичное утверждение на достаточно большое число шагов k: «если мы в момент времени t (!) «в деньгах», то с вероятностью 1 К(t+k+1,j)/К(t+k,j)=1» вряд ли кто-нибудь возьмется сформулировать, как истинное.

Примечание 3. Косвенным подтверждением корректности предположения о слабой зависимости может быть экспоненциальное убывание автокорреляционной функции для каждой из последовательностей К(t+1,j)/К(t,j). В то же время отсутствие такого убывания хотя бы для одного j укажет нам на несоответствие модельного предположения реальности.

Примечание 4. Условию слабой зависимости удовлетворяет подавляющее большинство зависимых последовательностей, изучаемых в теории вероятностей и имеющие приложения в самых разных областях, в частности, цепи Маркова и АРПСС-модели. Поэтому это условие взято нами «не с потолка», а является естественным обобщением целого ряда зависимостей, возникающих в реальном мире.

Примечание 5. В условиях слабой зависимости и большом k безусловное распределение доходности СУММ (w(j)*К(Т+m+k,j))/СУММ (w(j)*К(T+k,j)) является нашим единственно возможным апостериорным знанием в момент времени Т о будущей доходности портфеля систем с момента времени Т+k до Т+k+m.

В рамках предположений 2 и 3 известна предельная теорема, что при достаточно большой величине (Т-m)/CУММ{a(t), t=0,1,…}~30-40 для любых w(j), CУММ (w(j))=1, w(j) больше либо равно 0, выборочное распределение СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)), построенное по последовательности СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)), t=0,1,…,Т практически совпадает с безусловным распределением СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)) (в силу предположения 2 последнее распределение тоже стационарно, т. е. не зависит от t).

Примечание 6. Отметим, что важно считать именно выборочные распределения СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)), так как они могут существенно отличаться от распределения ПРОИЗВ (СУММ (w(j)*К(t+i,j))/СУММ (w(j)*К(t+i-1,j)), i=1,2,3,…,m), в предположении, что множители НЕЗАВИСИМЫ – так как скользящие произведения в слабо зависимых последовательностях и независимых, как правило, имеют РАЗЛИЧНЫЕ распределения, даже при совпадении одномерных распределений.

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

Алгоритм 1

На первом шаге мы выбираем некоторый вектор w(j), CУММ (w(j))=1, w(j) больше либо равно 0, и отбрасываем все такие вектора v(j), CУММ (v(j))=1, v(j) больше либо равно 0, что выборочная функция распределения СУММ (v(j)*К(t+m,j))/СУММ (v(j)*К(t,j)) больше либо равна выборочной функции распределения СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)).
На следующем шаге выбираем из оставшегося множества другой вектор w(j), CУММ (w(j))=1, w(j) больше либо равно 0, и повторяем эту процедуру для оставшегося множества.
И на выходе мы получим такие наборы w(j), CУММ (w(j))=1, w(j) больше либо равно 0, выборочные функции распределений СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)) для которых обязательно пересекаются. И из этих портфелей мы уже выбираем оптимальную, исходя из наших конкретных функций "доходности" и риска.

Но этот алгоритм имеет слишком большую трудоемкость, если N велико, а выбор w(j), CУММ (w(j))=1, w(j) больше либо равно 0, на каждом шаге происходит по принципу «как Бог на душу положит».

Предварительный отсев систем

В то же время почти всегда среди наших систем присутствуют системы с большой выборочной корреляцией последовательностей К(t+m,j)/К(t,j) для разных j. Одновременное включение таких систем в портфель несет в себе явную избыточность портфеля. Поэтому естественной редукцией числа систем является выбор только систем с относительно небольшой корреляцией. Этот отбор можно осуществлять стандартными методами линейной регрессии в условиях мультиколлениарности (методы присоединения, присоединения-удаления, удаления), если мы в качестве предсказываемой величины возьмем «идеальную» последовательность доходностей с таким выборочным распределением, что выборочная функция распределения этой последовательности меньше, либо равна выборочной функции распределения СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)) при любом фиксированном w(j) и для каждого t совпадает с хотя бы одной величиной СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)). Из неравенства Йенсена следует, что в качестве такой последовательности можно взять последовательность D(t)=МАКС (К(t+m,j)/К(t,j), j=0,1,…,N).

Примечание 7. Решение уравнения регрессии

D(t)=СУММ (v(j)*К(t+m,j))/К(t,j))+Ошибка(t)

мы используем лишь для отбора таких v(j), которые в этом уравнении должны быть существенно отличны от нуля и поэтому на этом этапе в ограничении CУММ (v(j))=1, v(j) больше либо равно 0, нет необходимости, что позволяет нам использовать на этом этапе процедуры линейной регрессии с методами присоединения, присоединения-удаления, удаления, заданные практически в любом стандартном статистическом пакете, например, в SPSS (обозначения методов Stepwise, Forward, Backward, Remove).

Примечание 8. Если на этом этапе мы найдем j такой, что

D(t)=К(t+m,j))/К(t,j)

то наша задача выбора оптимальной стратегии решена.

Примечание 9. Если выборочное распределение D(t) не удовлетворяет нашем условиям на функции "доходности" и риска, то работу по построению торговых систем надо начинать сначала.

Отсеяв на этом этапе (N-N1)~N систем, мы оставляем для дальнейшей обработки небольшое число N1 «существенных» систем.

Модифицированный алгоритм 1

Далее мы начинаем применять алгоритм 1, выбирая на первом шаге такой набор w(j), CУММ (w(j))=1, w(j) больше либо равно 0, что

СУММ (СУММ (w(j)*(К(t+m,j)-К(t,j))*D(t)),j=0,1,..N1)^2, t=0,1,…,Т)

минимальна, т. е. такой портфель, который имеет наименьшее среднеквадратичное отклонение от «идеального» с доходностями D(t).

При небольшом N1 найти такой набор легко в Excel поиском решения.

Доходности это портфеля СУММ (w(j)*К(t+m,j))/СУММ (w(j)*К(t,j)). мы обозначим D(t,1).

На втором этапе мы в качестве начального набора w(j), CУММ (w(j))=1, w(j) больше либо равно 0, берм такой набор, что

СУММ (СУММ (w(j)*(К(t+m,j)-К(t,j))*D(t,1)),j=0,1,..N1)^2, t=0,1,…,Т)

минимальна и т. д..

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

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

"Доходность" - «средняя типичная доходность» - средняя доходность после отбрасывания р(1)% максимальных и минимальных доходностей.
Риск - р(2)% процентиль выборочного распределения доходностей.

Примечание 10. Предположение о стационарности распределений векторов векторов (К(t+1,j)/К(t,j), j=0,1,2,…,N), t=0,1,2,…, является несколько избыточным и может быть заменено на условие «медленной изменчивости распределений». В этом случае необходимо периодически с помощью описанного алгоритма пересчитывать веса оптимальных портфелей торговых систем, отбрасывая самые ранние доходности и добавляя самые последние.

2. Случай нескольких активов

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

Допустима и другая модификация, когда мы отбираем оптимальные портфели систем с помощью алгоритма, описанного выше, для каждого актива, а потом к объединенному по активам набору портфелей систем применяем модифицированный алгоритм 1.

Для уменьшения трудоемкости на этом этапе я предпочитаю использовать второй вариант.

Ответить   Назад |Вперед |Текущая страница
Rambler's Top100