Блог им. _sk_

Вопрос про адекватность простого тестера на тиках

    • 16 января 2017, 08:21
    • |
    • _sk_
  • Еще
Иногда есть желание проверить какую-нибудь стратегию на тиковых данных, используя информацию о времени сделки с точностью до миллисекунд, цены, объёма и направления сделки. Данные — это не ордер-лог, а то, что выгружается из квиковской таблицы обезличенных сделок. За ultra-true-hft погони нет, скорее это попытка перейти на уровень несколько ниже 1-минутных данных.

Моделирование происходит примерно так:


1) Последовательные тики, которые имеют одно и то же значение миллисекунд, одну и ту направленность (buy/sell), и последовательные номера trade_num, склеиваются и интерпретируются как будто бы это была рыночная заявка, удовлетворившая несколько лимитных заявок (далее, склейка).

2) При отправке заявки из алгоритма делается задержка, скажем 100 мс, прежде чем она «попадает на биржу».

3) Если заявка рыночная и, к примеру, на покупку, то ждём первый тик из склейки с направлением «покупка». Считаем, что заявка исполнилась по этой цене.

4) Если заявка лимитная и, к примеру, на покупку, то ждём тик с направлением «продажа», для которого цена строго ниже цены в лимитной заявке (цена тика строго пересекла уровень). Считаем, что в этом случае лимитная заявка удовлетворена полностью.

5) Ответ при исполнении заявки приходит в алгоритм мгновенно (задержка по аналогии с пунктом 2 кажется неважной).

Вопрос звучит так: насколько такой алгоритм адекватен в расчёте на сделки со временем удержания позиции от 15 секунд и выше? Сомнения, в основном, в пессимистичном пункте 4). На реальном рынке лимитная заявка может исполниться, а цена не перейдёт её уровень.

При торговле в основном лимитными заявками при реализации пункта 4 в пессимистичном варианте и в оптимистичном варианте (цена тика равна цене лимитной заявки) набегает ощутимая разница при большом количестве сделок.
★2
12 комментариев
данные которые выдаёт тестер очень отличается не ломайте голову если сами не супер вундеркинд или не готовы отдать лет 5-7 исследованиям и это без гарантий не успех…  
avatar
Пункт (3) тоже не ахти — надо учесть соотношение объемов ваших сделок с вероятностью проскальзывания. 

Для (4) могу предложить записывать стакан, потом сопоставлять проходящие сделки и смотреть насколько высока вероятность того, что ваш лимитник попал в прошедший объем. Надо только фильтровать спуф-ботов, если они есть в тестируемом инструменте.

Тестировать HFT не просто, да :)
avatar
1 делай просто… протесть… а потом запусти бота на пару дней… сам все увидишь… во сколько раз будет хуже... 
2  попробуй идею протестить на минутках… если минутках не работает то и на тиках тож работать не будет
3 избегай сложностей
avatar
ves2010, а тут идея не совсем в таймфрейме. _sk_ образно говоря вычисляет хорошие удары по рынку и смотрит, что дальше.
avatar
Андрей К, еще раз… идея такая… если заработает на минутках то еще лучше будет работать на мелких таймфреймах… но будет полюбому хуже чем на тиковых тестах… в разы
avatar
ves2010, спасибо!
Касательно 2 интуитивно кажется, что переход, скажем, с 15-минуток на 1-минутки приводит не к такому изменению количества информации, как переход с 1-минуток на тики. Хотя ещё не ясно, поможет ли эта информация выявить торговое преимущество.
avatar
_sk_, счас скажу из опыта… берем ри… натягиваем сетку из лимитников с шагом 20 пунктов… сколько сделок(вход+выход) будет в минуту??? ответ 1.5-2… вроде шаг всего 20пунктов… а нужен и вход и выход… и в стакане дополна народу толкется… и всего 1.5 сделки…  сам ожидал большего
avatar
 Если сделать прямой доступ на биржу, то первый пункт вычисляется наверняка, без каких либо предположений.
avatar

Исходя из своего опыта могу сказать, что задержка при выставлении заявки и режим ее исполнения значительно влияют на результаты тестирования. Причем тест с «пробитием цены» дает максимально приближенный к реальной торговле результат.

Посмотрите — Режимы исполнения заявок

avatar
SoftAlgoTrade, 
Причем тест с «пробитием цены» дает максимально приближенный к реальной торговле результат.
ОК.
avatar

Только реальный рынок скажет где правильно, а где нет.

Запустить бота на реальном рынке и потом сопоставить ордера/сделки с ордерами/сделками в тестере за тот-же период.

avatar
Основное, где находится ошибка, это допуск в 100мс, но и любое другое значение подходящим не будет. В результате, имея такие открытые параметры, нет никакого смысла бороться за точность.

П.С. Весьма примечательно, что что у вас вызвали сомнения совсем не те аспекты, которые имеют значение и убивают эффективность. Именно так обычно и бывает.
avatar

теги блога _sk_

....все тэги



UPDONW
Новый дизайн