Анализируйте торговые результаты выполнения

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

Чтобы получить доступ к примеру кода, введите edit KRGPostTradeAnalysisExample.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);

Создайте аналитический объект k операционных издержек Kissell Research Group.

k = krg(miData);

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

load KRGExampleData.mat PostTradeData

Для описания данных в качестве примера смотрите Наборы данных Kissell Research Group.

Определите затраты недостатка реализации

Определите компоненты затрат недостатка реализации в пунктах. Компоненты:

  • Фиксированные затраты ISFixed

  • Задержитесь стоит ISDelayCost

  • Выполнение стоило ISExecutionCost

  • Альтернативные издержки ISOpportunityCost

Для получения дополнительной информации о компонентах стоимости, см. Аналитические Метрические Определения После торгов.

PostTradeData.ISDollars = ...
    PostTradeData.OrderShares .* PostTradeData.ISDecisionPrice;
PostTradeData.ISFixed = ...
    PostTradeData.ISFixedDollars ./ PostTradeData.ISDollars*10000;
PostTradeData.ISDelayCost = ...
    PostTradeData.OrderShares .* ...
    (PostTradeData.ISArrivalPrice-PostTradeData.ISDecisionPrice).* ...
    PostTradeData.SideIndicator ./ PostTradeData.ISDollars*1000;
PostTradeData.ISExecutionCost = ...
    PostTradeData.TradedShares .* ...
    (PostTradeData.AvgExecPrice-PostTradeData.ISArrivalPrice).* ...
    PostTradeData.SideIndicator ./ PostTradeData.ISDollars*1000;
PostTradeData.ISOpportunityCost = ...
    (PostTradeData.OrderShares-PostTradeData.TradedShares).* ...
    (PostTradeData.ISEndPrice-PostTradeData.ISArrivalPrice).* ...
    PostTradeData.SideIndicator ./ PostTradeData.ISDollars*1000;

Решите, что общий недостаток реализации стоил ISCost.

PostTradeData.ISCost = PostTradeData.ISFixed + ...
    PostTradeData.ISDelayCost + PostTradeData.ISExecutionCost + ...
    PostTradeData.ISOpportunityCost;

Определите прибыль

Решите, что альфа получает Alpha_CapturePct. Разделите реализованную прибыль Alpha_Realized потенциальной прибылью Alpha_TotalPeriod.

PostTradeData.Alpha_Realized = ...
    (PostTradeData.ISEndPrice-PostTradeData.AvgExecPrice).* ...
    PostTradeData.TradedShares .* PostTradeData.SideIndicator ./ ...
    (PostTradeData.TradedShares .* PostTradeData.ISArrivalPrice)*10000;
PostTradeData.Alpha_TotalPeriod = ...
    (PostTradeData.ISEndPrice-PostTradeData.ISArrivalPrice).* ...
    PostTradeData.TradedShares .* PostTradeData.SideIndicator ./ ...
    (PostTradeData.TradedShares .* PostTradeData.ISArrivalPrice)*10000;
lenAlpha_Realized = length(PostTradeData.Alpha_Realized);
PostTradeData.Alpha_CapturePct = zeros(lenAlpha_Realized,1);
for ii = 1:lenAlpha_Realized
    if PostTradeData.Alpha_TotalPeriod(ii) > 0
        PostTradeData.Alpha_CapturePct(ii) = ...
        PostTradeData.Alpha_Realized(ii) ./ ...
        PostTradeData.Alpha_TotalPeriod(ii);
    else
        PostTradeData.Alpha_CapturePct(ii) = ...
        -(PostTradeData.Alpha_Realized(ii) - ...
        PostTradeData.Alpha_TotalPeriod(ii)) ./ ...
        PostTradeData.Alpha_TotalPeriod(ii);
    end
end

Определите сравнительный тест и торговые издержки

Определите затраты сравнительного теста в пунктах. Здесь, базисные цены:

  • Окончательная цена предыдущего дня PrevClose_Cost

  • Цена открытия Open_Cost

  • Окончательная цена Close_Cost

  • Прибытие стоило Arrival_Cost

  • Период VWAP PeriodVWAP_Cost

PostTradeData.PrevClose_Cost = ...
    (PostTradeData.AvgExecPrice-PostTradeData.PrevClose).* ...
    PostTradeData.SideIndicator ./ PostTradeData.PrevClose*10000;
PostTradeData.Open_Cost = ...
    (PostTradeData.AvgExecPrice-PostTradeData.Open).* ...
    PostTradeData.SideIndicator ./ PostTradeData.Open*10000;
PostTradeData.Close_Cost = (PostTradeData.AvgExecPrice-PostTradeData.Close).* ...
    PostTradeData.SideIndicator ./ PostTradeData.Close*10000;
PostTradeData.Arrival_Cost = (PostTradeData.AvgExecPrice- ...
    PostTradeData.ArrivalPrice).* ...
    PostTradeData.SideIndicator ./ PostTradeData.ArrivalPrice*10000;
PostTradeData.PeriodVWAP_Cost = (PostTradeData.AvgExecPrice- ...
    PostTradeData.PeriodVWAP).* ...
    PostTradeData.SideIndicator ./ PostTradeData.PeriodVWAP*10000;

Оцените влияние на рынок miCost и синхронизация риска tr затраты.

PostTradeData.Size = PostTradeData.TradedShares ./ PostTradeData.ADV;
PostTradeData.Price = PostTradeData.ArrivalPrice;
PostTradeData.miCost = marketImpact(k,PostTradeData);
PostTradeData.tr = timingRisk(k,PostTradeData);

Решите, что значение брокера добавляет и Z-счет

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

PostTradeData.ValueAdd = (PostTradeData.Arrival_Cost-PostTradeData.miCost) * -1;

Решите, что Z-счет с помощью значения брокера добавляет и синхронизирующий риск.

PostTradeData.zScore = PostTradeData.ValueAdd./PostTradeData.tr;

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

Смотрите также

| |

Похожие темы

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