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

Между чистыми и валовыми возвратами портфеля различия транзакционные издержки. Прокси чистой прибыли портфеля имеет определенные пропорциональные затраты на покупку и продажу активов, которые поддерживаются в PortfolioCVaR свойства объекта BuyCost и SellCost. Транзакционные затраты указаны в единицах общей отдачи и как таковые пропорциональны цене актива, так что они вводят модель для чистых возвратов портфеля в форме возврата. Например, предположим, что у вас есть акции по цене $40 и ваши обычные транзакционные расходы составляют 5 центов на акцию. Затем стоимость транзакции для запаса составляет 0,05/40 = 0,00125 (как определено в Чистых возвратах портфеля). Затраты вводятся как положительные значения, а кредиты - как отрицательные значения.

Настройка транзакционных затрат с использованием PortfolioCVaR Функция

Для настройки транзакционных издержек необходимо указать начальный или текущий портфель в InitPort свойство. Если начальный портфель не установлен при настройке свойств транзакционных затрат, InitPort является 0. Свойства транзакционных затрат можно задать с помощью PortfolioCVaR объект. Например, предположим, что транзакционные затраты на покупку и продажу указаны в переменных 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 = PortfolioCVaR('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. Предположим, что у вас те же затраты и начальный портфель, что и в предыдущем примере. Учитывая PortfolioCVaR 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 = PortfolioCVaR('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 = PortfolioCVaR;
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

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

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

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

или

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

или

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

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

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

См. также

| | | | | |

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

Подробнее о

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

Для просмотра документации необходимо авторизоваться на сайте