exponenta event banner

Анализ портфеля с ограничениями по обороту

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

Импорт данных для портфельных холдингов

Загрузка информации о текущих портфелях из электронной таблицы Microsoft ® Excel ® в таблицу с помощью MATLAB ®readtable функция.

AssetHoldingData = readtable('portfolio.xls');
% Create a normalized current holdings vector that shows the respective
% investments as a percentage of total capital:
W = AssetHoldingData.Value/sum(AssetHoldingData.Value);

Импорт рыночных данных для цен акций

Импортируйте рыночные данные из источника данных, поддерживаемого Toolbox™ Datafeed, который составляет три года закрытия цен на акции, перечисленные в портфеле.

load SharePrices

Создать Portfolio Объект

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

P = Portfolio('Name', 'Sample Turnover Constraint Portfolio');
P = estimateAssetMoments(P,data,'DataFormat','Prices');

% You can assign text names to each asset in the portfolio.
P = setAssetList(P,AssetHoldingData.Symbol);

% Provide the current holdings.
P = setInitPort(P,W);

Оптимизация портфеля без ограничения оборота

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

P = setDefaultConstraints(P);

Визуализация этой эффективной границы с помощью plotFrontier функция.

plotFrontier(P)

Визуализация операционных затрат и оборота

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

TurnoverPlot(P)

Оптимизация портфеля с ограничением оборота

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

P10 = setTurnover(P,0.10);
plotFrontier(P10)

Визуализация эффективной границы при различных порогах оборота

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

turnovers = 0.05:0.05:0.25;
TurnoverConstraintPlot(P,turnovers)

Portfolio объект является мощным и эффективным инструментом для выполнения различных задач анализа портфеля. В дополнение к ограничениям оборота, можно также оптимизировать Portfolio объект для операционных затрат на покупку и продажу портфельных активов с использованием setCosts функция.

См. также

| | | | | | | | |

Связанные примеры

Подробнее

Внешние веб-сайты