Подсистема "Управление Активами" - страница 5

 
TheXpert >>:

Таки погорячился. Всего-то надо подобрать процент от депо, при котором достигаются максимально приемлемые результаты.

Подобрать надо исходя из известных параметров системы при ее работе без ММ. На нобелевскую вроде не тянет. По крайней мере в таком простом варианте.

Таки не погорячился.


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

Вынос вышеупомянутых параметров в целевую функцию позволит увеличить прибыль.


Интересно будет посмотреть на Вашу модель в терминах линейного программирования.

 
TheXpert писал(а) >>

Таки погорячился. Всего-то надо подобрать процент от депо, при котором достигаются максимально приемлемые результаты.

Подобрать надо исходя из известных параметров системы при ее работе без ММ. На нобелевскую вроде не тянет. По крайней мере в таком простом варианте.

А давайте попробуем реализовать схему оптимального ММ.

Я когда-то что-то похожее видел у Ежёва в выводе функционала для НС.

Итак, у нас имеется относительное приращение цены x=dS/S за время удержания открытой позиции и относительное приращение нашего капитала dK/K=Lever*x, где Lever - торговое плечо.

Тогда приращение капитала на следующем шаге: K[1]=K[0]*(1+p*|x|*Lever), где 1/2+р - вероятность правильно предсказанного ТС направления движения цены. Прибыль через время t составит K[t]/K[0]=(1+p*|x|*Lever)^t. Логарифмируя правую и левую части тождества и разделяя все взятки на "удачные" и "неудачные", получаем среднюю прибыль (скобки <> обозначают процедуру усреднения величины по некоторой немалой выборке):

<ln(K[t]/K[0])>=t*<(1/2+p)*ln(1+|x|*Lever)+(1/2-p)*ln(1-|x|*Lever)>

Собственно, правая часть этого выражения и является тем самым функционалом, который нам нужно максимизировать относительно величины торгового плеча Lever. Продифференцируем это выражение по Lever и приравняв к нулю найдём его оптимальное значение как функцию от среднего значения процента правильных предсказаний р и x=dS/S (по сути - волатильность взяток).

Lever=2р/<|x|> или с учётом формы функции плотности распределения (например, толстые хвосты в распределении взяток повышают риски):

Lever=2ра/<|x|>, где а=<|x|>^2/<x^2> =0.8 для гауссового распределения и 0.25 для экспоненциального (что вероятнее всего для Форекс).

Полученное значение торгового плеча, даст самый максимальный доход для конкретной ТС из всех возможных. Любое увеличение или уменьшение Lever изменит норму прибыли в сторону минуса. Это и есть оптимальный ММ!

Например, для ТС с процентом правильно угаданных знаков 50+1% и dS=50 пунктов (средний размер взятки на транзакцию) получается вот такой график для средней нормы прибыли K[i]/K[i-1] на дну транзакцию как функцию от торгового плеча:

Т.е. оптимальное плечо равно 4, если мы из 100 входов в в рынок 51 раз остаёмся в плюсе. Для большего процента правильно угаданных входов, оптимальное Lever будет больше.

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

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

 

to TheXpert

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

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

Интересно будет посмотреть на Вашу модель в терминах линейного программирования.

Да, скоро думаю, выложу. Но есть сомнение, что оно сразу будет вся из себя правильная. Так, что не ругайте, я ведь только осваиваю всякие научные премудрости и хитрости. :о)


to Neutron

Интересная информация, беру таймаут поразмыслить, да и пора уже по делам спешить :о(

 
Neutron >>:

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

Есть еще анализатор портфеля :) .

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

На точность решение не претендует, но, имхо, работать будет.

 
grasn >>:

to TheXpert

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

Да нет :)

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

 

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

 

Так как понятие портфель не обязательно связан с разными валютными парами, то

к анализу портфеля я подошел следующим образом.

1. Подобрал N стратегий торговли и подготовил експерты для M валют

2. Оптимизировал их на истории на максимальную доходность с процентом просадки <50%

3. Вставил в каждый советник код, который в тестере стратегий каждый день сохранял в файл csv:

OrdersTotal(),LastBallance,AccountBalance(),AccountEquity()

где LastBallance - максимальный достигнутый экспертом баланс на момент сохранения данных.

4. В итоге получил N*M файлов

5. Загрузил это все в Excel, посчитал доход (убыток) на каждый день

6. Посчитал максимальное значение относительного дохода и убытка для каждой стратегии в % за весь период тестирования 

7. Посчитал максимальное значение относительного дохода и убытка для портфеля из нескольких стратегий в % за весь период тестирования 

На этом этапе портфель я формировал сам.

Я действовал примерно так:

-  брал какую-либо стратегию

- находил дни с самой большой просадкой

-  искал, у какой стратегии в этот день была хотя бы небольшая прибыль

- потом уже суммировал данные за каждый день по двум стратегиям

- добавлял следующую стратегию


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

(многие почему-то думают, что портфельная торговля обязана увеличить доходность).

В перспективе я планирую написать программу (скорее всего скрипт), которая будет автоматически подбирать портфель

без использования Excel.




 
grasn писал(а) >>

to anubis

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

Буду разбираться! Периодически сталкиваюсь с проблемой производительности при использовании высоких порядков, че дальше будет страшно думать -)

С точностью особо не парюсь, рано еще

Что касается задачи – присоединяйся и сразу станет ясно.

Было бы очень интересно, у меня были подобные мысли,но пока опыта маловато, ковыряюсь пока с алгоритмами....

ps а что за закрытый раздел? туда можно обычным "смернтым" попасть ? =)

 
thecore писал(а) >>

...многие почему-то думают, что портфельная торговля обязана увеличить доходность.

А разве не так?

Пусть, для определённости, мы имеем доходную ТС и несколько не коррелирующих инструментов, доходности по которым равны или выравнены путём различной капитализации. Рассмотрим случай работы с одним инструментом. Кривую дохода (КД) можно представить в виде прямой линии, проведённой через неё методом наименьших квадратов. Тогда, доход ТС пропорционален тангенсу наклона прямой, а риски пропорциональны безразмерной величине, равной отношению стандартного отклонению точек КД от этой прямой к величине капитала, поставленного на этот инструмент. Пусть, согласно выбранному ММ, для нас приемлим уровень риска R%.

Разобъём теперь наш капитал, учавствовавший в торгах на одном инструменте, на n равных частей, по числу всех инструментов. Тогда, доход по каждому инструменту упадёт в n раз, риски останутся прежними и не коррелирующими между собой. Для такого портфеля, общий доход будет аддитивен и равен доходу при капитализации одной-единственной позиции, а стандартные отклонения КД по каждому инструменту будут складываться как случайные величины, и в первом приближении равны корню квадратному из суммы их квадратов, что для совокупного риска даст оценку R%/SQRT(n) (см. выше определение риска). Но, согласно ММ, мы можем принять на себя риски не меньше R%, что позволяет нам увеличить капитализацию портфеля по сравнению с исходной в SQRT(n) раз! Доход, в свою очередь, пропорционален капитализации позиции, поэтому, можно утверждать, что разбивая капитал между n не коррелирующих инструментов, мы не увеличивая риска повышаем доходность совокупной позиции как корень из n раз.

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

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

 
логичнее увеличивать капитализацию -)) как говорится зачем деньгам лежать? пусть работают, жалко колличество инструментов(валютных пар) ограничено...
Причина обращения: