exponenta event banner

Проведение анализа чувствительности для оценки торговых затрат

В этом примере показано, как оценить изменения в торговых затратах из-за ликвидности, волатильности и чувствительности рынка к потоку заказов и сделкам. С помощью анализа затрат на транзакции из исследовательской группы Kissell Research Group можно смоделировать среду торговых затрат для сбора запасов. Анализ чувствительности позволяет оценить будущие торговые затраты для различных рыночных условий, чтобы определить соответствующее содержимое портфеля, соответствующее потребностям инвесторов.

Здесь оцените изменения в торговых издержках из-за снижения среднесуточного объема на 50% и удвоения волатильности. В примере данных используется стратегия торговли в процентах от объема (POV).

Для вызова кода примера введите edit KRGSensitivityAnalysisExample.m в командной строке.

Извлечение параметров влияния на рынок и загрузка переменных данных

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

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

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

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

k = krg(miData);

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

load KRGExampleData.mat

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

Оценка начальных торговых затрат

Оценка начальных торговых затрат с использованием данных примера TradeData. Торговые затраты:

  • Мгновенная торговая стоимость itc

  • Рыночные издержки mi

  • Риск таймирования tr

  • Повышение цены pa

Группировать все четыре торговые затраты в числовую матрицу initTCA.

itc = iStar(k,TradeData);
mi = marketImpact(k,TradeData);
tr = timingRisk(k,TradeData);
pa = priceAppreciation(k,TradeData);
initTCA = [itc mi tr pa];

Создать сценарий

Задайте переменные для создания сценария. Здесь сценарий снижает среднесуточный объем на 50% и удваивает волатильность. Цена акций, объем, оценочная альфа и торговая стратегия остаются неизменными по сравнению с данными примера. Значения этих переменных можно изменить для создания различных сценариев. Поля:

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

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

  • Цена акций

  • Объем

  • Альфа-оценка

  • Торговая стратегия POV

  • Торговая стратегия в отношении торгового времени

adjADV = 0.5;
adjVolatility = 2.0;
adjPrice = 1.0;
adjVolume = 1.0;
adjAlpha = 1.0;
adjPOV = 1.0;
adjTradeTime = 1.0;

Скорректируйте данные примера на основе переменных сценария.

TradeDataAdj = TradeData;
TradeDataAdj.Size = TradeData.Size .* (1./adjADV);
TradeDataAdj.ADV = TradeData.ADV .* adjADV;
TradeDataAdj.Volatility = TradeData.Volatility .* adjVolatility;
TradeDataAdj.Price = TradeData.Price .* adjPrice;
TradeDataAdj.Alpha_bp = TradeData.Alpha_bp .* adjAlpha;

TradeDataAdj содержит скорректированные данные. Размер удваивается, потому что среднесуточный объем уменьшается на 50%.

Преобразование торговой стратегии POV в торговую стратегию торгового времени.

[~,povFlag,timeFlag] = krg.krgDataFlags(TradeData);
if povFlag
    TradeDataAdj.POV = TradeData.POV.*adjPOV;
    TradeDataAdj.TradeTime = TradeDataAdj.Size .* ...
        ((1-TradeDataAdj.POV) ./ TradeDataAdj.POV) .* (1./adjVolume);
elseif timeFlag
    TradeDataAdj.TradeTime = tradedata.TradeTime .* adjTradeTime;
    TradeDataAdj.POV = TradeDataAdj.Size ./ ...
        (TradeDataAdj.Size + TradeDataAdj.TradeTime .* adjVolume);
end

Оценка торговых затрат для сценария

Оцените торговые затраты на основе скорректированных данных. Числовая матрица newTCA содержит торговые затраты для сценария.

itc = iStar(k,TradeDataAdj);
mi = marketImpact(k,TradeDataAdj);
tr = timingRisk(k,TradeDataAdj);
pa = priceAppreciation(k,TradeDataAdj);
newTCA = [itc mi tr pa];

Вычитайте торговые затраты из сценария из начальных торговых затрат.

rawWI = newTCA - initTCA;
wi = table(rawWI(:,1),rawWI(:,2),rawWI(:,3),rawWI(:,4), ...
    'VariableNames',{'ITC','MI','TR','PA'});

Стол wi содержит полное влияние этого сценария на торговые затраты.

Просмотр торговых затрат для первых трех строк в wi.

wi(1:3,:)
ans = 

     ITC        MI        TR       PA  
    ______    ______    ______    _____

     43.05      0.65    290.80    -9.49
    408.29    124.52    443.16     8.47
     80.92     13.79    114.97     0.93

Переменные в wi являются:

  • Мгновенная торговая стоимость

  • Рыночные издержки

  • Риск таймирования

  • Повышение цены

За подробной информацией о предыдущих расчетах обращайтесь в исследовательскую группу Kissell.

См. также

| | | |

Связанные темы