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 ] 

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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