Как решить вопрос оптимизации портфеля с помощью обобщенной целевой функции?

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

Стандартная проблема минимальной дисперсии гласит

Min! ( portfolio volatility )

где
r имеет 252 ежедневных доходности пяти акций,
d имеет ожидаемый годовой доход от дивидендов (где firm_A платит 1 %, firm_B платит 2 % и т. д.)

и я запрограммировал это следующим образом

dat = rep( rnorm( 10, mean = 0, sd = 1 ), 252*5 )
r   = matrix( dat, nr = 252, nc = 5 )
d   = matrix( c( 1, 2, 1, 2, 2 ) )

library(quadprog)
# Dmat (covariance) and dvec (penalized returns) are generated easily

risk.param = 0.5
Dmat = cov(r)
Dmat[is.na(Dmat)]=0

dvec = matrix(colMeans(r) * risk.param)
dvec[is.na(dvec)]=1e-5

# The weights sum up to 1
n   = 5
A   = matrix( rep( 1, n ), nr = n )
b   = 1
meq = 1

res = solve.QP( Dmat, dvec, A, b, meq = 1 )

Очевидно, что доходы в r стандартная норма, следовательно, каждая акция получает около 20% веса.

Q1: Как я могу объяснить тот факт, что firm_A выплачивает дивиденд 1, firm_B дивиденд от 2 и т. д.?

Новая целевая функция гласит:

Max! ( 0.5 * Portfolio_div - 0.5 * Portfolio_variance )

но я не знаю, как это жестко закодировать. Дисперсию портфеля было легко положить в Dmat но новая целевая функция имеет Portfolio_div элемент определяется как Portfolio_div = w * d где w имеет пять весов.

Большое спасибо.

EDIT: Может быть, имеет смысл добавить описание проблемы более высокого уровня: я могу использовать оптимизацию с минимальной дисперсией с кодом выше. Минимизация дисперсии портфеля означает оптимизацию весов матрицы вариации-ковариации Dmat (размером 5х5). Тем не менее, я хочу добавить дополнительную часть для оптимизации, которые дивиденды в d умножается на веса (отсюда размерности 5x1). Те же веса также используются для Dmat,

Q2: Как я могу добавить вектор d к коду?

EDIT2: Я думаю, что ответ просто использовать

dvec = -1/d

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

Q3: Может кто-нибудь сказать мне, если это правильно?

1 ответ

Открытие банки с червями:

TLDR В то время как я уважаю большую работу, проделанную Гарри МАРКОВИЦОМ (Нобелевская премия 1990 года), я ценю гораздо больше его удивительной основы детерминированного моделирования CACI Simulation COMET III, чем предположение теории Портфолио, что variance per se - это правящий драйвер минимизации для процесса оптимизации портфеля.

Вождение этой основной точки зрения

(что все еще может встретить немного плохо сформированную мотивацию больших средств,
которые живут счастливо от их сборов 2 на 20
из-за характера и масштаба "своей" перекошенной перспективы восприятия того, что являются прямыми потерями,
которые они признают неприобретенным здоровенным и безрисковым сбором за управление
связанные с оттоком паники толпы, приписываемой эрозии AUM,
вместо реальных прибылей и убытков, полученных из-за их (не) способности приносить любые доходы AUM выше среднего)

в дальнейшем,
ближе к вашей идее
проблема заключается в правильной формулировке { penalty | utility } функция

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

Наоборот, dividend это прямая выгода, абсолют utility, входя в max! Процесс оптимизации.

Итак, первый шаг в Q3 & Q1 должен быть дизайн последовательного utility function изолированный от относительных, не связанных с доходом факторов, но содержащий все другие абсолютные факторы - затраты на вход, транзакционные издержки, затраты на перебалансировку - иначе ваша полезная модель будет вводить в заблуждение вашу стратегию управления активами портфеля.

A2: Без этого заранее разработанного свойства никто не может утверждать, что модель стоит одного ЦП, чтобы даже начать глобальную оптимизацию модели.

Другие вопросы по тегам