разговоры о трейдинге №20. Неучтенные риски алготрейдинга
Вопрос алготрейдерам.
1. запрогали систему
2. протестировали — гуд
3. запустили
спустя какое-то время бабах — и убытки (или большие убытки)
Что вы забыли учесть на тестах?
118 |
Читайте на SMART-LAB:
🎬Вторая серия «Бизнес-рост с А101»: от убытков до 1 млн рублей чистой прибыли
Выпуск «Вредных бесед» с участием ПАО «АПРИ»
💼 Выпуск «Вредных бесед» с участием ПАО «АПРИ»
💼 IR-директор ПАО «АПРИ» Игорь Файнман побывал в гостях у Вредного Инвестора...
💡 Ваш второй разум на фондовом рынке
Представляем «Интеллект» — новый сервис инвестиционного консультирования на базе ИИ. Как работают его нейроны? Вы заполняете анкету — ИИ...
Простые: не учли проскальзывание и комиссии, ошиблись в программе, бэктестили слишком маленький участов.
Сложные.
Оверфиттинг.
Есть вообще не ошибки в прямом смысле слова.
Изменился рынок. И так тоже бывает.
Любой человек, который только пришёл на рынок, подгоняет робота под стохастик, видит 100% в месяц на истории и запускает на реальные торги.
Сам проходил через это.
единственный критерий постоянство величины ошибки на тестовой и обучающей выборках
я бы еще разделил выборку на несколько групп (обучение + тестирование) для разных фаз рынка.
И разделял, и тестирование вперед и множество всяческих ухищрений применял.
Рынок нестационарен, собака. Поэтому то, что кажется кому-то критерием, на деле оказывается полезным приемом. Помогает отсечь явную чепуху, и даже неявную чепуху, но не гарантирует 100% качественный результат.
Первое и самое просто. Изменилось состояние рынка. Система тупо перестала работать.
Второе — гэпы и проскальзывания. Мы считали что всегда зайдем по OPEN а выйдем по CLOSE.
Третье — Комиссии.
Четвертое вытекает из первого, но чуть по другому. Когда попадаешь чувствуешь себя намного глупее чем в случае (1), хотя сама проблема сложнее.
Проблема заключается в том что при оценки системы мы не делали корректировку оценки относительно BUY&HOLD.
Т.е. на самом деле не было никакой системы.
Было нечто что иногда давало сигнал на покупку. Но фишка в том что инструмент и так все время рос.
*- Можно конечно сказать что стат данные уже ожидаются рынком, и отражены в торгах которые прошли, или даже что по графикам цены робот может делать какое-то подобие будущих стат данных, но утверждать что не бывает сюрпризов невозможно.
по секрету скажу, он даже котировки брал с интернета по http, а не с реального квика. (но заявки были настоящими)
но всё равно неплохо зарабатывал с января до конца марта 2014. а в 2015 пришлось много чему робота научить. как например можно было учесть, что в результате глюка на бирже перевернётся стакан? да никак пожалуй. вот я и потерял там 4%. правда удалось отбиться в тот же день. и каждую неделю в голову приходит что-то новое, что надо учесть. но это в основном когда у робота что-то неладится. когда всё хорошо, редко лезешь к нему. разве что из жадности и скуки. т.е. всего не учтёшь, а само «учитывание» — это постоянный итеративный процесс. опыт. как говориться дело не в том, чтобы уметь или не уметь, а в том, чтобы наматывать портянки ©
Многие алготрейдеры не четко понимают, что ядро торговой системы — это физматмодель рынка. Если идет слив — значит
модель используется некорректная, примитивная и неадекватная, с малым числом степеней свободы. Но самое важное — в структуру правильных (адекватных) моделей финрынка должны быть включены (встроены!) мощные адаптационные механизмы.
А могучие адаптационные механизмы — способ сделать переподгонку вечно длящейся :)
никто не отменял ручную ПРАВИЛЬНУЮ подстройку модели под рынок
многие не четко понимают что существующий софт полное Г который совсем не подходит под задачу а изначально заточен под оверфиттинг
Зависит от системы. Но для более-менее простых систем (не HFT, не паттерны в стакане) ответ может быть таким.
1. Корректное тестирование системы не было проведено (разные периоды рынка, кроссвалидация, shuffling).
2. Была неправильная оценка результатов оптимизации. Если например вы видите, что локальный максимум имеет «нехорошую» форму на графике зависимости распределения дохода от значений параметров, то это очень сильный сигнал к оверфиттингу. Что такое «нехорошая» форма? Это когда почти везде прибыль так себе или даже минус, а на каком-то узком диапазоне значений параметров прибыль очень высокая (в разы или порядки). У хорошей устойчивой системе доходности должны плавно расти и плавно падать в зависимости от параметров.
+ возможны ошибки в самом бектесте:
1. Неподготовленные данные. Тики или свечи с внебиржевыми сделками.
2. Некорректный просчет исполнения ордеров. Пакетные решения этим часто грешат. Не учитываются особенности бирж и тд.
3. Слипедж, непофиленный лимитник из-за очереди и тд.
4. Медленная работа алгоритма или датафида.
5. Косяк в реализации алгоритма.
чёткая тема
как сказал Тимофей Мартынов
я лучше сказать не смогу, просто скопирую
Тимофей Мартынов,
у меня в блокноте записано
я яндексом пользоваться не умею, но я попробую
нашел
jc-trader.livejournal.com/1350643.html
пс
1) Перенос позиции через сессию/клиринг на сильном движении. Единственный радикальный способ борьбы — закладывать в систему, что цена после открытия может упасть до нуля или улететь в бесконечность, и просчитывать риски таким образом, чтобы данная ситуация систему не убила.
2) Форс-мажор, из-за которого алготрейдер потерял возможность управлять позициями. Сюда входят стоп-торги, потеря связи с торговыми серверами, различные глюки на бирже и т.п. Единственный радикальный способ борьбы — держать открытую позицию не более того объёма, полное обнуление которого не убивает систему.
я вот такие вещи тут хотел увидеть
Разработка, тестирование и оптимизация торговых систем
для людей с мат подготовкой слабовато но для гуманитариев сойдет
в прошлый раз меня за подобную хрень забанили
30 убыточных сделок подряд)
1. Может вола уменьшилась и бот не дотягивает до профита(если профит по количеству пунктов)
2. При тестировании 90% сделок в плюс не означают, что не будет 100 подряд убыточных, затем будет 900 прибыльных, но депозит уже умрет. как вариант уменьшить позу и ждать те 900.
и т.д. и т.п.
Просто незапланированные убытки означают что в настоящий момент закономерность не работает. Такое ВСЕГДА случается у тех кто использует различные индикаторы, использует только одну систему или (как правило) не понимает что вообще найдено-закодено
Обратную реакцию кукла! На истории есть куча явлений, которые повторяются и кажется, что это неэффективности, особенно на мелких ТФ. Такие «закономерности» являются приманками. Часто эти приманки рассчитаны на горе-трейдеров, которые тестировали на истории и верят в свой грааль «до последнего цента». Как только кто-то реально начинает входить в рынок на ту или иную «закономерность» — она испаряется. Прямо с первого входа! Прям сразу, как только ваш алгоритм набрал позицию против кукла, начинается «непруха». Закономерность исчезает. И появляется обратно как только вы прекратите совершать входы.
«Закономерность» будет ждать следующую рыбку.
Особенно это актуально для HFT и коротких трейдов с малыми стопами и тейками. Либо для больших трейдов с большим объёмом позиции.
Алгоритм, который «не щупал» реальный рынок на реальный объём позиции — это всё равно что донжуан-девственник.
Фактически реальная ёмкость торговой системы не может быть просчитана на истории никаким методом. Даже если вы учли, что в стакане был нужный вам объём, по нужным вам ценам. Это ничего не значит.
Объём объёму рознь.
Например, что было бы, если бы кто-то взял дофигища путов на РТС перед «Крымнаш!»...
Хотя постойте-ка… Именно так и было. =)
Те сгоревшие 135-е путы все помнят?
Покупатель наверняка знал про «Крым наш». Был точный инсайд. Взял на всю котлету на точный срок...
Инсайд был верный, но деньги улетели куклу. Он любит жадных!
smart-lab.ru/blog/269074.php
Андрею Верникову отдельное спасибо за видео.