Поведение Назад тестирует на портфеле

В этом примере показано, как провести задний тест на наборе запасов с помощью анализа операционных издержек от Kissell Research Group.

  • Анализируйте реализацию инвестиционной стратегии в определенный день или диапазон дат.

  • Оцените исторические затраты влияния на рынок и соответствующую долларовую стоимость для заданных исторических дат.

  • Анализируйте торговые издержки различных порядков на различные даты.

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

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

load KRGExampleData TradeDataBackTest

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

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

Определите количество запасов numRecords в портфеле.

numRecords = length(TradeDataBackTest.Symbol);

Предварительно выделите таблицу выходных данных o.

o = table(TradeDataBackTest.Symbol,TradeDataBackTest.Side, ...
    TradeDataBackTest.Date,NaN(numRecords,1),NaN(numRecords,1), ...
    'VariableNames',{'Symbol','Side','Date','MI','MIDollar'});

Убедитесь, что количество долей является положительным значением с помощью abs функция.

TradeDataBackTest.Shares = abs(TradeDataBackTest.Shares);

Преобразуйте торговую стратегию торговли времени в процент стратегии торговли объемом.

TradeDataBackTest.TradeTime = TradeDataBackTest.TradeTime ...
    .* TradeDataBackTest.ADV;
TradeDataBackTest.POV = krg.tradetime2pov(TradeDataBackTest.TradeTime, ...
    TradeDataBackTest.Shares);

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

Оцените исторические затраты влияния на рынок для каждого запаса в портфеле на различном использовании дат marketImpact. Преобразуйте стоимость влияния на рынок от десятичного числа в локальные доллары. Получите получившиеся данные в таблице выходных данных o.

for ii = 1:numRecords
    
    k.MiDate = TradeDataBackTest.Date(ii);
    k.MiCode = TradeDataBackTest.MICode(ii);

    o.MI(ii) = marketImpact(k,TradeDataBackTest(ii,:));
    MIDollars = (TradeDataBackTest.Shares(ii) * TradeDataBackTest.Price(ii)) ...
        * o.MI(ii)/10000 * TradeDataBackTest.FXRate(ii);

    o.MIDollar(ii) = MIDollars;
    
end

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

o(1:3,:)
ans = 

    Symbol    Side       Date        MI     MIDollar
    ______    ____    __________    ____    ________

    'A'       1.00    '5/1/2015'    1.04     103.91 
    'B'       1.00    '5/1/2015'    3.09    3864.44 
    'C'       1.00    '5/1/2015'    8.54    5335.03 

Выходные данные содержат эти переменные:

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

  • Сторона

  • Историческая торговая дата

  • Историческое влияние на рынок стоится в пунктах

  • Историческое значение влияния на рынок в локальных долларах

Ссылки

[1] Kissell, Роберт. “Создавая Динамические Предторговые Модели: Вне Черного квадрата”. Журнал Торговли. Издание 6, Номер 4, Осень 2011 года, стр 8–15.

[2] Kissell, Роберт. “TCA в Инвестиционном Процессе: Обзор”. Журнал Инвестирования индекса. Издание 2, Номер 1, Лето 2011 года, стр 60–64.

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

[4] Чанг, Грэйс и Роберт Кисселл. “Приложение Операционных издержек в Процессе Оптимизации Портфеля”. Журнал Торговли. Издание 11, Номер 2, Spring 2016, стр 11–20.

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

|

Похожие темы