setOneWayTurnover

Настройте односторонние ограничения оборота портфеля

Синтаксис

obj = setOneWayTurnover(obj,BuyTurnover)
obj = setOneWayTurnover(obj,BuyTurnover,SellTurnover,InitPort,NumAssets)

Описание

пример

obj = setOneWayTurnover(obj,BuyTurnover) настраивает односторонние ограничения оборота портфеля для Portfolio, PortfolioCVaR или объектов PortfolioMAD. Для получения дополнительной информации на соответствующих рабочих процессах при использовании этих различных объектов, смотрите Рабочий процесс Объекта Портфеля, Рабочий процесс Объекта PortfolioCVaR и Рабочий процесс Объекта PortfolioMAD.

пример

obj = setOneWayTurnover(obj,BuyTurnover,SellTurnover,InitPort,NumAssets) настраивает односторонние ограничения оборота портфеля для объектов портфеля с дополнительными опциями, заданными для SellTurnover, InitPort и NumAssets.

Учитывая начальный портфель в InitPort и верхней границе для оборота портфеля на покупках в BuyTurnover или продажах в SellTurnover, односторонние ограничения оборота требуют, чтобы любой портфель Port удовлетворил следующее:

1' * max{0, Port - InitPort} <= BuyTurnover
1' * max{0, InitPort - Port} <= SellTurnover

Примечание

Если Turnover =BuyTurnover = SellTurnover, ограничение не эквивалентно:

1' * | Port - InitPort | <= Turnover
Чтобы установить это ограничение, используйте setTurnover.

Примеры

свернуть все

Установите односторонние ограничения оборота.

p = Portfolio('AssetMean',[0.1, 0.2, 0.15], 'AssetCovar',...
[ 0.005, -0.010,  0.004; -0.010,  0.040, -0.002;  0.004, -0.002,  0.023]);
p = setBudget(p, 1, 1);
p = setOneWayTurnover(p, 1.3, 0.3, 0); %130-30 portfolio
plotFrontier(p);

Установите односторонние ограничения оборота.

x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; 
p = PortfolioCVaR('InitPort', x0);
p = setOneWayTurnover(p, 0.3, 0.2);
disp(p.NumAssets);
    10
disp(p.BuyTurnover)
    0.3000
disp(p.SellTurnover)
    0.2000
disp(p.InitPort);
    0.1200
    0.0900
    0.0800
    0.0700
    0.1000
    0.1000
    0.1500
    0.1100
    0.0800
    0.1000

Установите односторонние ограничения оборота.

x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; 
p = PortfolioMAD('InitPort', x0);
p = setOneWayTurnover(p, 0.3, 0.2);
disp(p.NumAssets);
    10
disp(p.BuyTurnover)
    0.3000
disp(p.SellTurnover)
    0.2000
disp(p.InitPort);
    0.1200
    0.0900
    0.0800
    0.0700
    0.1000
    0.1000
    0.1500
    0.1100
    0.0800
    0.1000

Входные параметры

свернуть все

Объект для портфеля, заданное использование Portfolio, PortfolioCVaR или объект PortfolioMAD. Для получения дополнительной информации о создании объекта портфеля смотрите

Типы данных: object

Ограничение оборота на покупки, заданные как неотрицательный и конечный скаляр для Portfolio, PortfolioCVaR или входного объекта PortfolioMAD (obj).

Ограничение оборота на продажи, заданные как неотрицательный и конечный скаляр для Portfolio, PortfolioCVaR или входного объекта PortfolioMAD (obj).

Начальные или текущие веса портфеля, заданные как конечный вектор с NumAssets> элементы 0 для Portfolio, PortfolioCVaR, входного объекта PortfolioMAD (obj).

Примечание

Если никакой InitPort не задан, то значение принято, чтобы быть 0.

Если InitPort задан как скаляр, и NumAssets существует, то InitPort подвергается скалярному расширению.

Типы данных: double

Количество активов в портфеле, заданном как скаляр для Portfolio, PortfolioCVaR или входного объекта PortfolioMAD (obj).

Примечание

Если не возможно получить значение для NumAssets, это принято, что NumAssets является 1.

Типы данных: double

Выходные аргументы

свернуть все

Обновленный объект портфеля, возвращенный как Portfolio, PortfolioCVaR или объект PortfolioMAD. Для получения дополнительной информации о создании объекта портфеля смотрите

Больше о

свернуть все

Одностороннее ограничение оборота

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

Ограничения принимают форму

1Tmax {0,xx0}τB

1Tmax {0,x0x}τS

с

  • x Портфель (вектор NumAssets)

  • x0 Начальный портфель (вектор NumAssets)

  • τB — Верхняя граница для ограничения оборота на покупки (скаляр)

  • τS — Верхняя граница для ограничения оборота на продажи (скаляр)

Задайте односторонние ограничения оборота с помощью следующих свойств в поддерживаемом объекте портфеля: BuyTurnover для τB, SellTurnover для τS и InitPort для x0.

Примечание

Ограничение среднего оборота (который установлен с помощью setTurnover) не является только комбинацией односторонних ограничений оборота с тем же значением для ограничения.

Советы

Можно также использовать запись через точку, чтобы настроить односторонние ограничения оборота портфеля.

obj = obj.setOneWayTurnover(BuyTurnover,SellTurnover,InitPort,NumAssets)

Введенный в R2011a