exponenta event banner

Работа с транзакционными затратами

Разница между чистой и валовой доходностью портфеля - это операционные издержки. Представитель чистой доходности портфеля имеет различные пропорциональные затраты на покупку и продажу активов, которые поддерживаются в Portfolio свойства объекта BuyCost и SellCost. Операционные затраты выражены в единицах общей прибыли и, как таковые, пропорциональны цене актива, так что они вводят модель чистой прибыли портфеля в форме прибыли. Например, предположим, что у вас есть акции, цена которых в настоящее время составляет 40 долларов США, а ваши обычные операционные издержки составляют пять центов на акцию. Затем стоимость операции для запаса составляет 0,05/40 = 0,00125 (как определено в Чистой доходности портфеля). Затраты вводятся как положительные значения, а кредиты - как отрицательные значения.

Настройка операционных затрат с помощью Portfolio Функция

Чтобы настроить транзакционные затраты, необходимо указать начальный или текущий портфель в InitPort собственность. Если исходный портфель не задан при настройке свойств затрат по проводке, InitPort является 0. Свойства для переменных затрат можно задать с помощьюPortfolio объект. Например, предположим, что затраты на операции покупки и продажи находятся в переменных. bc и sc и начальный портфель находится в переменной x0, затем устанавливаются операционные затраты:

bc = [ 0.00125; 0.00125; 0.00125; 0.00125; 0.00125 ];
sc = [ 0.00125; 0.007; 0.00125; 0.00125; 0.0024 ];
x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ];
p = Portfolio('BuyCost', bc, 'SellCost', sc, 'InitPort', x0);
disp(p.NumAssets)
disp(p.BuyCost)
disp(p.SellCost)
disp(p.InitPort)
    5

    0.0013
    0.0013
    0.0013
    0.0013
    0.0013

    0.0013
    0.0070
    0.0013
    0.0013
    0.0024

    0.4000
    0.2000
    0.2000
    0.1000
    0.1000

Настройка операционных затрат с помощью setCosts Функция

Можно также установить свойства для переменных затрат с помощью setCosts. Предположим, что имеются те же затраты и начальный портфель, что и в предыдущем примере. Дано Portfolio объект p с уже установленным первоначальным портфелем, setCosts для настройки транзакционных затрат:

bc = [ 0.00125; 0.00125; 0.00125; 0.00125; 0.00125 ];
sc = [ 0.00125; 0.007; 0.00125; 0.00125; 0.0024 ];
x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ];

p = Portfolio('InitPort', x0);
p = setCosts(p, bc, sc);
        
disp(p.NumAssets)
disp(p.BuyCost)
disp(p.SellCost)
disp(p.InitPort) 
    5

    0.0013
    0.0013
    0.0013
    0.0013
    0.0013

    0.0013
    0.0070
    0.0013
    0.0013
    0.0024

    0.4000
    0.2000
    0.2000
    0.1000
    0.1000

Можно также настроить начальный портфель InitPort значение в качестве необязательного аргумента для setCosts таким образом, эквивалентным способом настройки операционных издержек является следующее:

bc = [ 0.00125; 0.00125; 0.00125; 0.00125; 0.00125 ];
sc = [ 0.00125; 0.007; 0.00125; 0.00125; 0.0024 ];
x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ];

p = Portfolio;
p = setCosts(p, bc, sc, x0);
        
disp(p.NumAssets)
disp(p.BuyCost)
disp(p.SellCost)
disp(p.InitPort) 
    5

    0.0013
    0.0013
    0.0013
    0.0013
    0.0013

    0.0013
    0.0070
    0.0013
    0.0013
    0.0024

    0.4000
    0.2000
    0.2000
    0.1000
    0.1000

Пример настройки затрат см. в разделе Анализ портфеля с ограничениями оборота.

Настройка затрат на транзакции со скалярным расширением

Оба Portfolio объект и setCosts функция реализует скалярное расширение аргументов для транзакционных затрат и начального портфеля. Если NumAssets свойство уже установлено в Portfolio объект, скалярные аргументы для этих свойств расширены, чтобы иметь одинаковое значение для всех измерений. Кроме того, setCosts позволяет указать NumAssets в качестве необязательного окончательного аргумента. Например, предположим, что у вас есть начальный портфель x0 и вы хотите установить общие операционные издержки для всех активов в вашей вселенной. Эти затраты можно установить любым из следующих эквивалентных способов:

x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ];
p = Portfolio('InitPort', x0, 'BuyCost', 0.002, 'SellCost', 0.002);

или

x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ];
p = Portfolio('InitPort', x0);
p = setCosts(p, 0.002, 0.002);

или

x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ];
p = Portfolio;
p = setCosts(p, 0.002, 0.002, x0);

Чтобы списать затраты с вашего Portfolio объект, используйте либо Portfolio объект или setCosts с пустыми вводами для очищаемых свойств. Например, можно очистить затраты на продажу из Portfolio объект p в предыдущем примере:

p = Portfolio(p, 'SellCost', []);

См. также

| | | |

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

Подробнее

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