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