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

Между чистыми и валовыми возвратами портфеля различия транзакционные издержки. Прокси чистой прибыли портфеля имеет определенные пропорциональные затраты на покупку и продажу активов, которые поддерживаются в 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', []);

См. также

| | | |

Похожие примеры

Подробнее о

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