В предыдущем посте о бэк-тестировании были приведены основные контраргументы против использования тестирования торговых стратегий на исторических данных. Ну, или, по крайней мере, были высказаны весьма скептические мнения.
Я не разделяю этого скепсиса.
Итак, напомню несколько основных тезисов «против»:
Про ликвидность я описал свое видение проблемы в том же посте. Если кратко, то эта проблема решается просто: не жадничайте!
Либо получите по Вашей цене столько, сколько дадут (или вообще нисколько не дадут); либо предлагайте невыгодную для себя цену и оплатите людям их риски и получите такой объем, какой Ваш нужен. Третьего не дано. Не нужно забывать, что скупой платит дважды!
Тема сегодняшнего поста – противоречие между сигналами на бэк-тестах и их отсутствие «в боевых условиях», а также о задаче постоянной оптимизации торговой системы.
С чего мы обычно начинаем, тестируя свою торговую стратегию?
Правильно, с подготовки данных, то бишь, со скачивания архивов цен по выбранному инструменту. И этим сами начинаем рыть огромную яму (почти черную дыру), в которой похороним не один депозит!
Почему?
Ответ простой, хотя и выглядит весьма парадоксально: база исторических данных, имеющая началом какой-нибудь 19… -лохматый год, не имеет, в общем смысле, ничего общего с той, по которой Вы будете торговать сегодня-завтра.
В чем же заключается эта разница и какова природа этой разницы?
Для ответа на эти вопросы давайте задумаемся над 4 вопросами:
Мне для меня лично абсолютно неважны два первых вопроса. Главное – это не я являюсь поставщиком данных и никак не могу повлиять на их качество.
Что гласит первое правило эффективного менеджмента? «С менеджера нельзя спрашивать за отклонения по факторам, которыми он не управляет.»
Следствие: «Грамотный менеджер должен исключить из области своих компетенций неуправляемые факторы.»
Поэтому ответ на четыре вопроса — один: я не пользуюсь базами исторических данных из источников, отличных от того, на котором я торгую! Вот, где я нахожусь по отношению к поставщикам данных для бэк-тестирования.
А вся «петрушка» тут закурчавилась из-за того, что в подавляющем большинстве статистических функций и алгоритмов анализа рынка используются «скользящие средние» или их ближайшие аналоги и модификации.
Дело в том, что «скользя» по историческим данным эти «чужие средние» тащат сквозь всю историю «тени» всех предыдущих событий на своем рынке. Другими словами, всё семейство «скользящих средних» и их «родственников» имеет крепкую, почти железную, память поколений исторических данных. НО: в пределах скачанной вами истории, «свистнутой» у кого-то и предоставленной Вам кем-то.
Если вдруг паче чаяния Вы спросите, что «думают» о своей истории «скользящие средние», рассчитанные на Вашем торговом месте, то, весьма вероятно, «память» у «Ваших средних» будет другой, и текущие значения «Ваших средних» будут отличаться, возможно, даже кардинально, от «чужих средних». Вы это увидите обязательно, но объяснить не сможете никак, кроме аргумента «рынок живой».
Это – «Уловка 22» (незнающих отсылаю в педивикию, там, на этот раз, толково описано). А Вы – герой этой «Уловки». Не знаю, кто Вас научил решать такими «универсальными» фразами свои «непонималки», но он явно не является ни Вашим коллегой, ни тем более – другом.
Следовательно, Ваш бэк-тест «чужих» исторических данных даст Вам информацию, что сегодня на закрытие сессии Вы должны иметь открытую (long / short) позицию на N контрактов (акций, фьючей, опционов), а Вы на основании «Ваших скользящих» открылись на M контрактов, и эти M и N не равны! От слова «совсем». Кто тут прав, какой расчет верен? Вы скажете «конечно тот, который старше, т.к. он содержит большее количество информации о жизни этого инструмента». На что я Вам посоветую перечитать предыдущий абзац.
Но тут же впору спросить себя: «Стоп! Но если я не могу применить стратегию, обкатанную на данных последних 20 лет истории торгов по инструменту, которая показывает 100% годовых прибыли, то как я могу гарантировать самому себе, что эта стратегия так же эффективна на «моих» данных, которые мне выдает торговый терминал»?
Так какими данными нужно пользоваться для бэк-тестирования, а по каким торговать в «боевых условиях»?
Отвечаю: только теми, которые Вы сам (сама) подготовили, и которые не изменятся на протяжении времени жизни инструмента или того, которое Вы желаете посвятить биржевым спекуляциям, красиво называемым «трейдинг».
С уважением и наилучшими пожеланиями!
По поводу «Qui prodest»… Нет тут злого умысла. Это — просто экономия серверных возможностей (производительность, в первую очередь, и объемы хранилищ) и пропускных возможностей линий коммуникаций.
Организатору торговли выгодно, когда профессионалы (институционалы) зарабатывают, и в этом можно усмотреть сговор биржи и маркетосов.
А рядовому спекулянту, конечно же, — беда…
А во-вторых, даже предложенные Вами параметры и закономерности нужно как-то проверять, чтобы удостовериться в Вашей правоте и воздать Вашей прозорливости. А значит, опять нужно бэк-тестирование! Никуда не денешься. )))
Если у вас сделка продолжительностью от нескольких минут — изменения уровней OHLC в истории из за сдвига времени (даже значительного) биржи и брокера не имеют никакого значения.
При тестировании «нормальной» рабочей стратегии, на результатах теста это никак не скажется.
А вообще, понятно, если ТС показывает плохие результаты, то, разумеется, виновата история, а не ТС. Кто ж еще? Понятно — данные плохие, не те.
И — нет, Вы спешите критиковать, а это контрпродуктивно. ТС не плоха, а очень даже хороша (100% годовых), и это лежит в основе моих рассуждений про тестирование. Но Ваш ход мыслей мне нравится! )))
романтика…