Используйте Excel для построения графика эффективной границы портфеля из трех ценных бумаг
David Johnk
0:00 / 0:00
Используйте Excel для построения графика эффективной границы портфеля из трех ценных бумаг
171 807 просмотров · 4 года назад
David Johnk
8,25 тыс. подписчиков
171 807 просмотров · 4 года назад
ОБРАТИТЕ ВНИМАНИЕ — В ВИДЕО Я ДОПУСТИЛ ОШИБКУ: не нужно извлекать квадратный корень при расчёте корреляционной матрицы, это была моя ошибка, извините! Эта ошибка не повлияла на общие результаты, поскольку корреляционная матрица в этом видео использовалась в информационных целях.
Загрузите данные по акциям, постройте матрицу дисперсии-ковариации и используйте Excel Solver для оптимизации портфелей. Видео демонстрирует, как рандомизировать инвестиционные веса для построения графика эффективной границы портфеля из трёх акций. Вот ссылка на файл, который я использовал: https://bit.ly/2ZIjMsk
Важные примечания: После публикации этого видео я обнаружил, что оно не обновляется автоматически при нажатии F9, обычно только до нескольких тысяч строк.
/* Эти лямбда-функции Excel рассчитывают различные статистические данные портфеля на основе списка цен (P), отсортированных по возрастанию (от старых к новым), и весов портфеля (w) */
/* Обратите внимание: */
/* 1) Ожидаемые значения не являются гарантированными, они основаны на исторических данных */
/* 2) Результаты могут различаться в зависимости от частоты (ежедневно, ежемесячно и т. д.) и количества наблюдений */
/* 3) Дэвид В. Джонк не несет ответственности за любые ошибки или упущения. Информация предоставляется «как есть» без гарантий полноты, точности, полезности или актуальности. */
/* см. мое видео на YouTube: • Excel Lambda functions which easily calcul... */
periodicreturns = LAMBDA(P,OFFSET(P,1,0,ROWS(P)-1)/OFFSET(P,0,0,ROWS(P)-1)-1);
Ожидаемые_возвраты = LAMBDA(P,BYCOL(периодические_возвраты(P),LAMBDA(массив,СРЗНАЧ(массив))));
Стандартные_отклонения = LAMBDA(P,BYCOL(периодические_возвраты(P),LAMBDA(массив,Стандартное_отклонение.p(массив))));
Варианты_возвратов = LAMBDA(P,BYCOL(периодические_возвраты(P),LAMBDA(массив,переменная_отклонение.p(массив))));
Избыточные_возвраты = LAMBDA(P,периодические_возвраты(P)-ожидаемые_возвраты(P));
Varcovarmatrix = LAMBDA(P,MMULT(ТРАНСПОЗ(избыточные_возвраты(P)),избыточные_возвраты(P))/(СТРОКИ(P) - 1));
correlmatrix = LAMBDA(P,varcovarmatrix(P)/mmult(transpose(stdevrets(P)),stdevrets(P)));
portexpectedret = LAMBDA(w,P,sumproduct(w,expectedrets(P)));
portstddev = LAMBDA(w,P,SQRT(MMULT(MMULT(w,varcovarmatrix(P)),TRANSPOSE(w))));