2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Оптимизация функционала с модулем
Сообщение03.02.2025, 01:33 


07/03/11
693
Решаю задачу оптимальной стратегии ставок в упрощенном виде. Пусть $X_i$ -- оценка цены актива в момент $i$, т.е. случайная величина с известным распределением. $u_i$ -- кол-во купленных/проданных акций в момент $i$, $\varepsilon$ -- комиссия брокера. Тогда наш доход за $n+1$ периодов будет
$$L(\mathbf u) = \sum _{i=0}^n (X_{i+1} - X_i)(u_{i+1} - u_i) - \varepsilon X_i |u_{i+1} - u_i|,$$
где $u_0 = u_{n + 1} = 0$.
Вопрос: как найти $\mathbf u$ такое, что $J(\lambda )=\mathbb EL(\mathbf u) - \lambda \mathbb VL(\mathbf u) \to \max$ для заданного $\lambda > 0$?

В непрерывной формулировке
$$L(u(t)) = \int _0^T \dot X(t)\dot u(t) - \varepsilon X(t) |\dot u (t)|dt$$
Интегрируя по частям получаем
$$L(u(t)) = X(t)\dot u(t) | _0^T - \int _0^T X(t)\left[\ddot u(t) + \varepsilon |\dot u(t)|\right]dt,$$
где $u(0) = u(T) = 0$.
Вопрос: как найти $u(t)$ такое, что $J(\lambda )=\mathbb EL(u(t)) - \lambda \mathbb VL(u(t)) \to \max$ для заданного $\lambda > 0$?

(Оффтоп)

И общий вопрос, правильно ли я все делаю? :-)

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение03.02.2025, 13:14 
Заслуженный участник
Аватара пользователя


16/07/14
9370
Цюрих
vlad_light в сообщении #1672597 писал(а):
$u_i$ -- кол-во купленных/проданных акций в момент $i$
Видимо не купленных/проданных, а имеющихся? (а разности, соответственно - это купленные/проданные)
vlad_light в сообщении #1672597 писал(а):
Вопрос: как найти $\mathbf u$ такое, что $J(\lambda )=\mathbb EL(\mathbf u) - \lambda \mathbb VL(\mathbf u) \to \max$ для заданного $\lambda > 0$?
Так если распределение (вместе со всеми ковариациями) известно, то вся случайность переходит просто в коэффициенты. Если без модуля, то была бы просто задача квадратичной оптимизации. Но вроде бы и с ним должно получиться, что продавать в моменты, когда ожидается рост цены, не нужно, так что можно добавить ограничения, и использовать метод множителей Лагранжа.

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение03.02.2025, 14:52 
Заслуженный участник
Аватара пользователя


16/07/14
9370
Цюрих
vlad_light в сообщении #1672685 писал(а):
Как мне превратить мое уравнение в ограничения?
Я думал, что если $\mathbb E X_{i + 1} - X_i \geq 0$, то оптимальное решение имеет $u_{i + 1} - u_i \geq 0$ - не надо продавать, если цена вырастет. Но вроде бы это не так, если у нас на следующем шаге будет гигантская дисперсия, то может оказаться что лучше его пересидеть с деньгами, даже если в среднем будет прибыль.

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение03.02.2025, 18:40 


27/08/16
10911
mihaild в сообщении #1672693 писал(а):
Я думал, что если $\mathbb E X_{i + 1} - X_i \geq 0$, то оптимальное решение имеет $u_{i + 1} - u_i \geq 0$ - не надо продавать, если цена вырастет. Но вроде бы это не так, если у нас на следующем шаге будет гигантская дисперсия, то может оказаться что лучше его пересидеть с деньгами, даже если в среднем будет прибыль.
Вообще-то если ставка - это доля текущего капитала, то наверное правильнее оценивать матожидание логарифма, а оно меньше матожидания самой величины, особенно, при большой дисперсии. И все эти простые модели не учитывают риск полной потери капитала.

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение03.02.2025, 18:59 
Заслуженный участник
Аватара пользователя


16/07/14
9370
Цюрих
realeugene в сообщении #1672779 писал(а):
Вообще-то если ставка - это доля текущего капитала
Тут вроде бы $u_i$ это количество акций у нас в $i$-й момент времени, про капитал ничего не говорится.

Кстати такая модель немного странная, она говорит, что если $X_1 = 1$ п.н., а $X_2$ равномерно на $\{2, 3\}$, $\varepsilon = 0$, то нам всё равно надо покупать только $\frac{2}{\lambda}$ - потому что неопределенность в том, сколько именно мы получим, нас пугает настолько, что мы отказываемся от заведомо более выигрышной сделки.

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение03.02.2025, 19:23 


27/08/16
10911
mihaild в сообщении #1672790 писал(а):
Тут вроде бы $u_i$ это количество акций у нас в $i$-й момент времени, про капитал ничего не говорится.
Суммарная текущая стоимость акций и денежных остатков. Если нет плеча, прости господи.

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение03.02.2025, 19:30 
Заслуженный участник
Аватара пользователя


16/07/14
9370
Цюрих
realeugene в сообщении #1672806 писал(а):
Суммарная текущая стоимость акций и денежных остатков
vlad_light в сообщении #1672597 писал(а):
где $u_0 = u_{n + 1} = 0$.
Торговая стратегия, требующая начать с нуля и остаться в нуле - это было бы довольно забавно.
Я не знаю, какие тут приняты обозначения в экономике, но для математической постановки обозначения ТС вполне подходят, и говорится именно о количестве акций (на текущую стоимость надо умножать именно количество акций; можно требовать в конце продать все акции, но странно требовать остаться в конце без денег, и т.д.).

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение03.02.2025, 23:05 


07/03/11
693
mihaild в сообщении #1672790 писал(а):
Тут вроде бы $u_i$ это количество акций у нас в $i$-й момент времени

Да, все так
mihaild в сообщении #1672790 писал(а):
Кстати такая модель немного странная, она говорит, что если $X_1 = 1$ п.н., а $X_2$ равномерно на $\{2, 3\}$, $\varepsilon = 0$, то нам всё равно надо покупать только $\frac{2}{\lambda}$ - потому что неопредленность в том, сколько именно мы получим, нас пугает настолько, что мы не отказываемся от заведомо более выигрышной сделки.

Согласен, я просто взял первое, что пришло в голову. Если убрать $\lambda \mathbb VL(u(t))$, то в этом случае у нас $u$ будет неограниченно, что плохо. А так я думал подбирать $\lambda$ под капитал. Возможно, у Вас есть идеи, какой функционал лучше оптимизировать?

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение04.02.2025, 01:04 
Заслуженный участник
Аватара пользователя


16/07/14
9370
Цюрих
Первая идея - ввести таки ограничение на капитал - завести две переменные (деньги и число акций) и добавить ограничения "и то и другое неотрицательно, и за все акции платим".
Корректная стратегия, если ей точно сказать, в какую сторону пойдет курс, даже если не говорить, на сколько именно, при нулевых комиссиях должна каждый раз продавать перед понижением и покупать перед повышением. А вот что-то менее тривиальное на коленке уже вряд ли придумать получится (но наверняка про это написаны тонны умеренно полезной литературы).

 Профиль  
                  
 
 Re: Оптимизация функционала с модулем
Сообщение07.02.2025, 01:18 


07/03/11
693
Нашел у себя глупую ошибку, в прибыли должно быть $u_{i+1}$, а не $u_{i+1} - u_i$ :facepalm:
mihaild в сообщении #1672790 писал(а):
Кстати такая модель немного странная, она говорит, что если $X_1 = 1$ п.н., а $X_2$ равномерно на $\{2, 3\}$, $\varepsilon = 0$, то нам всё равно надо покупать только $\frac{2}{\lambda}$ - потому что неопределенность в том, сколько именно мы получим, нас пугает настолько, что мы отказываемся от заведомо более выигрышной сделки.

Своим примером Вы натолкнули меня на мысль, за что Вам благодарен.
Пусть
$$L_n(\mathbf u) = \sum _{i=0}^n (X_{i+1} - X_i)u_{i+1} - \varepsilon |u_{i+1} - u_i|$$
наш функционал прибыли и мы хотим, чтоб матожидание прибыли было как можно больше при условии, что вероятность убытка убывала очень быстро с его размером. Бдуем решать следующую задачу:
$$\mathbb EL_n(\mathbf u) \to \max _{\mathbf u}$$
$$\forall C < 0: \mathbb P(\min _{0\leq k \leq n}L_k(\mathbf u) < C) < \exp(\lambda C)$$
По неравенству Дуба, если $X_i \leq \mathbb E[X_{i+1}|\mathcal F_i]$, то $\mathbb P(\max _{k\leq n} \geq C)\leq \frac {\mathbb EX_n}{C}$. Тогда
$$\mathbb P(\min _{0\leq k \leq n}L_k(\mathbf u) < C) = \mathbb P\left(\max _{0\leq k \leq n} \exp (-\lambda L_k(\mathbf u)) \geq \exp (-\lambda C)\right) \leq \exp (\lambda C)\mathbb E\exp (-\lambda L_n)$$

(Оффтоп)

Тут вроде бы $\exp (-\lambda L_k(\mathbf u))$ не является субмартингалом :/

Следовательно, наше условие выполняется, когда $\mathbb E\exp (-\lambda L_n(\mathbf u)) \leq 1$. С другой стороны максимизация $\mathbb EL_n(\mathbf u)$ эквивалентна минимизации $\mathbb E\exp (-\lambda L_n(\mathbf u))$. Таким образом, мы свели нашу изначальную задачу с ограничением к задаче
$$\mathbb E\exp (\lambda L_n(\mathbf u)) \to \max _{\mathbf u}$$
В моем случае приросты хорошо описываются $\alpha$-устойчивым распределением с $\beta =0$, $1 < \alpha <2$ и фиксированным $\gamma$. Используя характеристическую функцию
$$\varphi _Z(t) = \mathbb E[\exp(itZ)] = \exp(i\mu t - \gamma ^\alpha |t|^\alpha)$$
подставляя $t:= -i\lambda u_{i+1}$, получим
$$\mathbb E\exp (\lambda L_n(\mathbf u)) = \exp\left(\sum_{i=1}^n \lambda (\mu_{i+1} - \mu_i)u_{i+1} - \gamma ^\alpha \lambda ^{\alpha} |u_{i+1}|^\alpha - \lambda \varepsilon |u_{i+1} - u_i|\right)$$
Т.е. наша задача сводится к оптимизации
$$\sum_{i=1}^n (\mu_{i+1} - \mu_i)u_{i+1} - \gamma ^\alpha \lambda ^{\alpha - 1} |u_{i+1}|^\alpha - \varepsilon |u_{i+1} - u_i| \to \max _{\mathbf u}$$
Реализовал алгоритм на Python, вроде работает.
Подскажите, пожалуйста, все ли тут законно?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group