portfolioCostCurves

Оценка рыночных затрат на выполнение порядков для портфеля

Описание

пример

pcc = portfolioCostCurves(k,portfolio,tradeQuantity,tqRange,tradeStrategy,tsRange) возвращает рыночную стоимость выполнения порядка для портфеля, используя:

  • Объект анализа затрат транзакций Kissell Research Group (KRG) k

  • Данные портфеля portfolio

  • Торговое количество tradeQuantity с областью значений значений tqRange

  • Стратегии торговли tradeStrategy с областью значений значений tsRange

Примеры

свернуть все

Получение данных о влиянии на рынок с сайта KRG FTP. Подключитесь к FTP-сайту с помощью ftp функция с именем пользователя и паролем. Перейдите к MI_Parameters папка и извлечение данных о влиянии рынка в MI_Encrypted_Parameters.csv файл. miData содержит зашифрованную дату влияния на рынок, код и параметры.

f = ftp('ftp.kissellresearch.com','username','pwd');
mget(f,'MI_Encrypted_Parameters.csv');

miData = readtable('MI_Encrypted_Parameters.csv','delimiter', ...
    ',','ReadRowNames',false,'ReadVariableNames',true);

Создайте объект анализа затрат на транзакцию Kissell Research Group k.

k = krg(miData);

Загрузите примеры данных портфеля из файла KRGExampleData.mat, который входит в комплект поставки Datafeed Toolbox™.

load KRGExampleData

Переменная PortfolioData появляется в MATLAB® рабочей области.

PortfolioData содержит следующие переменные:

  • Символ штока

  • Локальная цена

  • Цена в другой валюте, если применимо

  • Среднесуточный объем

  • Изменчивость

  • Количество акций

Описание примерных данных см. в разделе Наборы данных исследовательской группы Kissell.

Оценка затрат на влияние рынка на выполнение порядка на портфель активов. Задайте торговое количество следующим DollarValue. Задайте торговую область значений количества tqRange с шагами 10 000 000 долларов. Начните с общего значения портфеля $100,000,000 и закончите с $500,000,000. Установите процент стратегии торговли объемами POV. Укажите область значений торговой стратегии tsRange с шагами 10%, начиная с процента объема 10% и заканчивая 40%.

tqRange = (100000000:10000000:500000000); 
tsRange = (0.10:0.10:0.40);

pcc = portfolioCostCurves(k,PortfolioData,'DollarValue',tqRange,...
'POV',tsRange);

Отображение первых трех строк данных о рыночных затратах.

pcc(1:3,:)
ans = 

    Size      Shares       TradeValue     AbsTradeValue    POV     TradeTime    Cost_bp    Cost_DollarsPerShare    Cost_Dollars
    ____    __________    ____________    _____________    ____    _________    _______    ____________________    ____________

    0.02    5612057.03    100000000.00    328737579.09     0.10    0.18         38.74      0.07                    387447.95   
    0.02    5612057.03    100000000.00    328737579.09     0.20    0.08         61.18      0.11                    611819.30   
    0.02    5612057.03    100000000.00    328737579.09     0.30    0.05         80.07      0.14                    800683.38   

Данные о затратах, влияющих на рынок, содержат:

  • Средний размер торговли по всем акциям в портфеле

  • Количество акций в сделке

  • Сумма торгуемого значения по всем акциям портфеля

  • Сумма абсолютного значения торгового значения по всем акциям портфеля

  • Средний процент выполнения от объема для завершения количества акций

  • Среднее время торговли в процентах от дня для завершения количества акций

  • Рыночная стоимость в базисных точках локальной цены

  • Рыночная стоимость в долларах на акцию

  • Рыночная стоимость в общем долларовом значении

Отображение кривых стоимости портфеля для процента объемных ставок: 10%, 20%, 30% и 40%.

figure
size10 = pcc.Size(1:4:end)*100;
size20 = pcc.Size(2:4:end)*100;
size30 = pcc.Size(3:4:end)*100;
size40 = pcc.Size(4:4:end)*100;
cost10 = pcc.Cost_bp(1:4:end);
cost20 = pcc.Cost_bp(2:4:end);
cost30 = pcc.Cost_bp(3:4:end);
cost40 = pcc.Cost_bp(4:4:end);
plot(size10,cost10,size20,cost20,size30,cost30,size40,cost40)
grid on
axis([2 11 25 200]) 
xlabel({'Size','(%ADV)'}) 
ylabel({'Cost','(bps)'}) 
legend('POV = 10%','POV = 20%','POV = 30%','POV = 40%',...
'Location','northwest') 
title('Portfolio Costs') 
a = gca; 
a.XAxis.TickLabelFormat = '%g%%';

Этот рисунок демонстрирует использование портфельных затрат для создания портфеля и управления содержимым портфеля. Анализируя портфельные затраты, можно определить оптимальный размер портфеля.

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

свернуть все

Анализ транзакционных издержек, заданный как объект KRG, созданный с помощью krg.

Данные портфеля, описывающие запасы в портфеле, заданные как таблица или структура. portfolio должны содержать эти переменные или имена полей.

Имя переменной или поляОписание

Symbol

Символ запаса.

Price_Local

Локальная цена.

Price_Currency

Цена, заданная как цена акций с другой валютой, если акции торгуются за пределами США. Если акции торгуются в Соединенных Штатах, значение равняется местной цене.

ADV

Среднесуточный объем.

Volatility

Волатильность.

Shares

Количество акций.

Количество символов в данных портфеля должно совпадать с количеством значений для каждого параметра влияния рынка в miData свойство k. Для получения дополнительной информации о параметрах влияния на рынок обратитесь в исследовательскую группу Kissell.

Пример: portfolio = table({'XYZ'},100.00,100.00,860000,0.27,550,'VariableNames',{'Symbol' 'Price_Local' 'Price_Currency' 'ADV' 'Volatility' 'Shares'})

Пример: portfolio = struct('Symbol','XYZ','Price_Local',100.00,'Price_Currency',100.00,'ADV',860000,'Volatility',0.27,'Shares',550)

Эти примеры не представляют реальных рыночных данных.

Типы данных: struct | table

Торговое количество, заданное в качестве одного из следующих значений.

ЗначениеОписание торгового количества

'DollarValue'

Общее значение портфеля в долларах

'PercentValue'

Процент от общего значения портфеля в долларах США

Торговая область значений количества, заданный как вектор. portfolioCostCurves использует эти значения со значениями области значений торговой стратегии для оценки затрат на влияние на рынок для различных количеств и стратегий.

Пример: 'Size',(0.01:0.01:1) задает область значений количества с шагами 0,01, начиная с 0,01 и заканчивая на единице

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

Торговая стратегия, указанная в качестве одного из таких значений.

ЗначенияИмя торговой стратегии

'POV'

Процент объема

'TradeTime'

Время торговли в процентах от дня

Торговая стратегия области значений, заданная в качестве вектора. portfolioCostCurves использует эти значения со значениями области значений торгового количества для оценки затрат на влияние на рынок для различных количеств и стратегий.

Пример: 'POV',(0.05:0.05:0.5) задает область значений торговой стратегии с шагами 0,05, начиная с 0,05 и заканчивая на 0,5

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

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

свернуть все

Кривые стоимости портфеля, возвращенные как таблица или структура с этими именами переменных или полями.

Имя переменной или поля Описание

Size

Средний размер торговли по всем акциям в портфеле.

Shares

Количество акций в транзакции.

TradeValue

Торговое значение или общее долларовое значение позиции акций в портфеле с поправкой на сторону. Позиции Long/Buy имеют положительное торговое значение, а позиции Short/Sell - отрицательное торговое значение.

AbsTradeValue

Сумма абсолютного значения торгового значения по всем акциям портфеля.

POV

Средний процент выполнения тома для завершения количества акций.

TradeTime

Среднее время торговли в процентах от дня для завершения количества акций.

Cost_bp

Рыночная стоимость в базисных точках локальной цены.

Cost_DollarsPerShare

Рыночная стоимость в долларах на акцию.

Cost_Dollars

Рыночная стоимость в общем долларовом значении.

Совет

  • Для тестирования нескольких транзакций портфеля можно использовать различные области значений. Можно изменить процент акций в транзакции или использовать другую торговую стратегию. Для получения дополнительной информации смотрите Входные параметры.

  • Для получения дополнительной информации о расчетах свяжитесь с Kissell Research Group.

Ссылки

[1] Кисселл, Роберт. «Практическая среда анализа транзакционных издержек». Торговый журнал. Том 3, № 2, лето 2008, с. 29-37.

[2] Кисселл, Роберт. «Алгоритмические торговые стратегии». Доктор философии. Дипломная работа. Фордемский университет, май 2006 года.

[3] Кисселл, Роберт. «TCA в инвестиционном процессе: обзор». Журнал Индекса инвестиций. Том 2, № 1, лето 2011, с. 60-64.

[4] Кисселл, Роберт. Наука об алгоритмической торговле и управлении портфелем. Cambridge, MA: Elsevier/Academic Press, 2013.

[5] Кисселл, Роберт и Мортон Гланц. Оптимальные торговые стратегии. Нью-Йорк, Нью-Йорк: AMACOM, Inc., 2003.

Введенный в R2016a