Блог им. Replikant_mih

Бэктесты на неликвидах.

Бэктесты на неликвидах.

 

А кто-то бэктестит на таком? Как исполнение организовано? Ещё бы конечно хотелось динамически исполнение подстраивать (речь всё ещё про бэктест) в зависимости от текущей оценки ликвидности, а не постфактум оценки какой-то.

 

Я на свечах тещщу всё.

У меня сейчас 2 вида исполнения в бэктестах – для ликвида и неликвида. Хочется более интеллектуально и адаптивно это делать. Может у кого-то опыт есть, какие-то лайфхаки.

 

Отличия в исполнении, например: если ты стоишь лимиткой под ценой, а потом раз и дневка открылась ниже цены заявки,  в ликвиде – тебе дадут на аукционе по цене открытия, а в неликвиде это скорее всего просто прострел и дай бог чтобы ликвидности хватило в твою-то заявку налить… по цене заявки, ясно.


Можно смотреть на проторгованные объемы, но это надо как-то инфляцию учесть, а-то ж это в разы или может десятки раз разница стоимости денег будет в разные периоды.

 

Можно по свечам оценивать, например, для внутридня что-то типа отношение на скользящем окне среднего abs(close текущей – open следующей) к ATR. Типа если дохрена оупен новой свечи от клоуза предыдущей улетает часто – видимо спреды запредельные. Да, наверно, что-то такое можно, с доп. подстраховкой через фильтр по деньгам или типа того.

24 комментария
Я запускаю вживую на небольшой кусок депозита и сравниваю результат с бэктестами. Иногда вообще нихрена практика с теорией не совпадает, так что как ни крути всякие фичи, лучший бэктест — живая торговля.
avatar
Антон Иванов, Ну это как этап, как доп. валидация того, что ты набэктестил, но хочется именно реалистичность самого бэктеста поднять.
avatar
От души скажу все эти бэктесты/форварды, подгонки/переподгонки, тестеры стратегий, периоды индикаторов, адаптации, нейросетки, это все ложный путь и маята. Ни один банк этим не страдает. Это все для физиков, чтобы искали и бегали в колесе сансары и генерировали ошибки и как следствие теряли деньги.
Главком Главком, да, ваша правда. В банках думать не принято. Вот как раз эта традиция и есть источник хлеба для тех, кто утруждает себя размышлениями.
avatar
bocha, «жираф большой, ему видней», стандартный мозговой слизень.
avatar
ves2010, Спасибо, интересно. Часть спорно и не верифицируемо, с чем-то согласен. Но на вопросы поста не отвечает).
avatar
начни уже торговать, и твои вопросы со временем изменятся кардинально.
по факту неликвиды это все тикеры на мосбирже.
какие-то прям ужас-ужас, какие-то почти дотягивают до терпимых.
проскальзывание которое видишь в стакане надо на порядок увеличивать и затем на 2.5 умножить, для более-менее реальной картины того что будет, и никакие ужимки не помогут это обойти. Пипл даже этого обычно не догоняет, от того и любовь к системам со средней сделкой меньше 0.5%, от того и потом плачут что тесты не работают.
avatar

Artemunak, 

начни уже торговать, и твои вопросы со временем изменятся кардинально.

А как, как мне понять, что я уже начал торговать? Как я это пойму, что должно произойти? Просвети!

 

проскальзывание которое видишь в стакане надо на порядок увеличивать и затем на 2.5 умножить, для более-менее реальной картины того что будет, и никакие ужимки не помогут это обойти. Пипл даже этого обычно не догоняет, от того и любовь к системам со средней сделкой меньше 0.5%, от того и потом плачут что тесты не работают.

Ликвидность — это не дискретная величина типа высокая/низкая. Более того, она меняется в разное время даже для одного инструмента. Когда тестишь на большом пуле тикеров, очень хочется уметь поэтому подстраивать исполнение в бэктестах налету. Я конечно могу заложить какой-то просто процент — этого будет достаточно для одних тикеров, адекватно для других и избыточно для третьих. Даже если среднее значение будет отвечать некоторому среднему значению, я все равно хочу сделать исполнение в бэктестах более smart.
avatar
Replikant_mih, Нет никакого большого пула тикеров. Есть первые 10 тикеров, если извращенец то чуть больше, но не пул, соответственно всё остальное это пустое теоретизирование. Коллега привёл проскальзывания, на мой взгляд это мегаоптимистично, но хоть что-то, и даже из него видно что пула там нет.
smart-lab.ru/blog/937198.php
по его постам кстати видно что человек торгует, может он тоже врёт конечно, но тогда получается что тут уж вообще никто не торгует, так что можешь как шаблон его посты применить чтобы свериться торгуешь ты или нет.
И у торговли есть пять стадий: отрицание, гнев… пока все пять не пройдёшь считай ещё не начинал. 
avatar
Artemunak, 
может он тоже врёт конечно

— Наверное врёт.

— Ах, как этo глупo! Из ревнoсти oскoрблять челoвека! Не может же он каждую минуту врать. ©

 

так что можешь как шаблон его посты применить чтобы свериться торгуешь ты или нет

Теперь полегче должно стать — есть лучик в тёмном царстве.
avatar
Replikant_mih, 

обрати внимание на свой тестировщик что он деает с пустыми свечами… т.е например таймфрейм 1 минута и 15 минут нет ни одной сделки… как заполняет он эти дыры? или игнорирует отсутствие свечей



avatar
ves2010, Ничего не делает, не заполняет, а что?
avatar
Replikant_mih, блииин… смотри… добавляешь второй тикер неторгуемый… с максимальной ликвидностью например сбер или индекс имоекс ... 
и в неликвидном тикере сразу появятся пустые свечи… и смотришь сделки идут где… в пустых свечах или полных...

не пойму как ты тестил если свечей нет?
avatar

ves2010, Ну да, в неликвиде могут свечи отсутствовать, это понятно. Проверка в стратегии триггерится свечой, есть свеча — триггерится проверка, нет — не триггерится. Тут всё понятно.

Отсутствие свечей тоже хороший маркер ликвидности кстати, просто такую проверку геморней органзизовать.

Я уже написал кастомную меру ликвидносит — как писал в посте — сделал через среднюю разницу клоуза свечи к оупену следующей / ATR, + долю свечей на скользящем окне где хай равен лоу — более легко отслеживаемый маркер для низкой ликвидности, по сути примерно то же, что пропущенная свеча.

avatar
Artemunak, если бы сейчас был финал налогового периода, то 1/2 моего НДФЛ сделала бы система со средней сделкой 0.10%. Интрадей но не хфт, на свечках M1. В том числе не самый ликвидный фьюч из первой 20-ки, на нем кстати лучше всего перформанс. Просто не надо заниматься метанием рыночных ордеров размером с полдепо, и вселенная станет к вам добрее.
avatar
Тестить пустые стаканы на свечках — это гениально!
avatar
Sprite, Не благодари.

avatar
Replikant_mih, но запрет на сделку при v=0 в бэктестере все же поставьте :)
avatar
Кирилл Гудков, Ну если прям ноль, в моем и не будет сделки). Свеча — это ж агрегированные обезличенные сделки, для свечи (хай будет равен лоу в этом случае) нужна хотя бы одна сделка. Нет сделок — нет свечи, нет свечи, нечему триггерить условия.
avatar
Replikant_mih, если в системе используются какие-нибудь там скользяшки, то гонять ее лучше с пустыми барами, иначе на неликвиде периоды будут плавать. Но сделок на них не совершать.
avatar
Комбинировать отсечки по: 1)Общий оборот в деньгах с начала торговой сессии 2) медиана оборота в каждой баре (например минутки) 3) должны быть все бары по количеству например каждую минуту (опционально)
avatar

wrmngr, 1. Да, но если за большой период смотреть — надо как-то инфляцию учитывать — геморно, но один из лучших вариантов, конечно, самый прямой. 2. То, же что в (1) — тоже хорошо, тоже не тривиально обыграть тему с инфляцией. 3. Да, правильная история, но тоже чёт не тривиальная реализация.

 

В общем пока остановился на мере ликвидности через долю свечей где high==low (аналог пропущенных свечей) и отношение среднего close минус open соседней к ATR. Сделал, что порог по этой комплексной мере ликвидности в моменте выбирает как вычислять — как хай ликвидный или как лоу. Но хочу доработать чтобы лоу ликвидный был в зависимости от меры ликвидности — потому что там тоже очень разная ликвидность может быть от «вменяемый стакан — редкие трейды» до «стакан пустой, если ударишь — пробьёшь до дна».

avatar
Replikant_mih, я практикую на неликвидах только короткие спекулятивные сделки, поэтому инфляция не беспокоит. Мои фильтры дают понимание, что в конкретной бумаге в моменте появилась активность и ликвидность (и она сохраниться какое-то время). И именно здесь имеет смысл находить точки входа. И это косвенно дает оценку мгновенной ликвидности без заглядывания в стакан. Грубо говоря если с начала дня к обеду уже набили миллиард рублей оборота, то стакан будет явно не пустой. Равенство хая и лоя не валидно для полностью пустых баров. 
avatar

теги блога Replikant_mih

....все тэги



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