Об оптимальном f

posted by admin @ 0:27 ДП
23 Ноябрь 2009

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

Прежде всего отмечу, что автор-грамотный человек. Я и сейчас не нашел в его книге глупостей, и это радует. Далее, как физику (но не как трейдеру) мне импонирует идея оптимального f из-за ее простоты и прозрачности. Итак, что такое оптимальное f? Пусть у нас есть некоторая система, дающая некоторый поток результатов на вложенный в нее капитал. Вопрос: какую часть капитала вкладывать в каждую сделку? Оптимальное f-это частный случай торговли фиксированной долей капитала. То есть вопрос, на который пытается ответить Винс, звучит так-пусть мы вкладываем в каждую сделку f% от капитала на момент сделки. Как правильно выбрать это f? Идея Винса (хотя я бы не сказал, что здесь есть что-то суперумное) заключается в том, что в зависимости капитала после некоторого количества сделок от f  есть максимум при некотором, вполне определенном f. Это f он и называет оптимальным.

Покажу, почему действительно существует оптимальное f (оптимальное с точки зрения максимизации финансового результата при реинвестировании).  Пусть система генерирует n сделок с итогами x1,x2,…,xn (в процентах на вложенный в сделку капитал). Тогда финансовым результатом (ФР) применения этой системы при вкладывании в каждую сделку f% от имеющегося на момент ее заключения капитала равен:

100*{(1+(f/100)*(x1/100))*(1+(f/100)*(x2/100))*…*(1+(f/100)*(xn/100))-1}

Рассмотрим предельные случаи в этой формуле:

1) f=0%. В этом случае финансовый результат применения системы равен:

100*(1*1*…*1-1)=100*0=0%, т. е. мы остались при своих.

2) f=100*(100/|x_maxDD|), где x_maxDD-максимальный по модулю отрицательный результат системы, т.е. x_maxDD=min(x1,x2,..xn). В этом случае финансовый результат применения системы будет равен:

100*{(1+(f/100)*(x1/100))*(1+(f/100)*(x2/100))*…*(1+x_maxDD/|x_maxDD|)*…*(1+(f/100)*(xn/100))-1}=

= 100*{(1+(f/100)*(x1/100))*(1+(f/100)*(x2/100))*… *0*…*(1+(f/100)*(xn/100))-1}= 100*{0-1}=-100%,

т. е. мы банкроты. Поскольку зависимость финансового результата от f непрерывна  и существуют f при которых ФР>0 (для систем с положительным матожиданием), то есть f, при котором ФР масимален, т.е. оптимальное f. Вот и вся идея.

Приведу пример расчета оптимального f. Пусть наша система сгенерировала 3 сделки: x1=+50%, x2=+100%, x3=-40%. При этом матожидание равно +36.6% на сделку. Финансовым результатом при вкладывании f% будет:

ФР=100*{(1+(f/100)*0.5)*(1+(f/100)*1)*(1-(f/100)*0.4)-1}.

Очевидно, при f=0% ФР=0%, а при f=250% и более мы получим маржин-колл, т. е. ФР=-100%. Зависимость ФР(f) является кубичной, и может быть легко проанализирована на максимум стандартными методами. Расчет дает оптимальное f, равное 120%, при этом ФР=+83% (см. рисунок).

145.JPG

Аналогичным образом можно расчитать оптимальное f  для любого потока результатов, и этим Винс занимается на протяжении книги, приводя формулы для нормального распределения результатов, моделируя различным образом реальные распределения, и.т.д.

Как видно, идея оптимального f прозрачна и проста и этим она мне нравится. Однако в реальной торговле я, конечно, использую торговлю фиксированной долей, но эта доля не соотвтетствует оптимальному f Винса. Объясню почему. Формула для оптимального f весьма чувствительна к величине максимальной убыточной сделки. Например, если в вышеприведенном примере третью убыточную сделку сделать не -40%, а -60%, а первую не +50% а +70%, то оптимальное f станет не 120%, а в районе 75%, а финансовый результат при f=120% в этом случае близок к нулю. Плохо то, что мы не можем хорошо предсказать размер максимальной убыточной сделки, поскольку эта величина не является никаким средним по всем сделкам (а более или менее хорошо предсказывать можно только такие средние). Поэтому и от оптимального f толку, на мой взгляд, не особо много, т. к. немного ошибившись в размере максимальной убыточной сделки (что вполне легко сделать на рынках с их тяжелохвостовыми распределениями приращений), мы рискуем схватить неприемлемые убытки, а то и маржин-колл.

3 Responses to “Об оптимальном f”

  1. Владимир Says:

    Анатолий, интересный сайт, хорошо пишешь. Это я вообще хотел сказать, потом заметил твои научные работы и возникла вторая мысль:

    Мне нужна консультация специалиста по спектральному анализу в целях рисерча. Я хочу выделить цикличную компоненту временной серии, если таковая присутствует. Что то вроде: если цена представляет в некотором приближении синусоиду, в какой фазе эта синусоида находится? Ты бы не мог меня прокунсультировать как применить для этого скажем разложение Фурье?

    Владимир.

  2. carga Says:

    Для того, чтобы ограничить размер максимальной убыточной сделки используют стоп-лоссы. Понятно, что при расчете OptimalF в качестве макс. убытка надо брать не максимальный убыток на истории, а ещё прибавить мысленно небольшой запас на проскальзывание и всякие аварийные ситуации. Имхо 1-5-10% запаса должно хватать.

    Успехов!

  3. admin Says:

    Зависимость f от МДД очень резкая и в этом проблема. При небольшом изменении МДД оптимальное f может чрезвычайно измениться. Это очень большая проблема, т.к она приводит к банкротству. Расчеты показывают, что запас по МДД надо брать не “на 1-5-10%” а “в 2-3-5 раза”.

    Приведу пример. Смоделируем такую весьма возможную ситуацию: вы построили систему, ее матожидание равно 1% на сделку, МДД на истории был 10%. Грубо, оптимальное f можно оценить так: будем считать, что система генерирует 9 сделок с итогом +2.2% и десятую с итогом -10% (тогда, как нетрудно видеть, МО=+1%). При вкладывании доли f капитала в такую стратегию финансовый результат будет: ФР=(1+f*0.022)^9*(1-f*0.1)-1. Это соотношение, как функция f легко исследуется на максимум стандартными методами. Приведу такое исследование в общем виде: если система генерирует n положительных сделок с исходом А и последнюю сделку с исходом B, то ФР=(1+f*A)^n*(1-f*B)-1 (*), а положение максимума достигается при f=(n*A/B-1)/(A(n+1)) (**). Из этого соотношения видно, что при A=0.022, n=9, B=0.1 получится f=450%.

    Теперь предположим, что в реале МДД оказался не 10% а 20% (на рынке это ведь запросто, без проблем :) ). Чтобы смоделировать такую ситуацию, мы дожны взять, например, 18 сделок по +2.2% и девятнадцатую -20% (как нетрудно видеть, МО опять равно +1%). Из формулы (**) оптимальное f в этом случае равно 239%, что в почти в два раза меньше. Грубо, правило такое: если мы увеличили МДД в два раза, то оптимальное f должно быть уменьшено также в два раза.

    И последнее: если бы мы в последнем случае торговали бы с долей 450%, то ФР был бы -55% (мы потеряли половину (!) капитала), тогда как при оптимальной доле 239% ФР=+30%. Таким образом, сравнительно небольшая и непредсказуемая ошибка в определении МДД весьма сильно влияет на результат, что недопустимо в реальных торгах. Для реальных торгов необходимо брать доли, существенно меньшие оптимального f Винса, иначе смерть :)

Leave a Reply


ИСПОЛЬЗОВАНИЕ CAPTCHA: CAPTCHA ИНОГДА ГЛЮЧИТ. ПОЭТОМУ ПОСЛЕ НАБОРА КОММЕНТА (ОСОБЕННО ДЛИННОГО) КРАЙНЕ РЕКОМЕНДУЮ СКОПИРОВАТЬ ЕГО В ТЕКСТОВЫЙ РЕДАКТОР, А УЖЕ ПОТОМ ВВОДИТЬ КОД ДЛЯ CAPTCHA.

*

Anti-Spam Image

счетчик посещений