Михаил Михалев

Читают

User-icon
34

Записи

40

Оффтоп про авто, гараж, и внезапно здоровье

Лето началось с того, что в поездке на дачу порвался приводной ремень в авто. Вернулись домой на эвакуаторе. Бросил авто у автосервиса, записался на «через неделю». Как оказалось ремень лопнул из-за моторного масла, которое сочилось из сальника коленвала. (Оно там уже давно сочилось, уровень масла практически не падал, забил).

В любом случае, через месяц была запланирована поездка на Алтай, поэтому надо было заняться авто, потому что список мелких проблем стал уже довольно длинным.

В автосервисе при замене ремня сделали ещё диагностику подкапотного пространства, подвески и тормозной системы. Ну, тут всё как обычно, нашли то, чего нет, и не нашли то, что должны были найти:
1) Не нашли, что уровень антифриза меньше отметки min.
2) Не нашли, что тормозную жидкость пора менять.
3) Не нашли, что тормозные трубки около суппорта начали ржаветь.
4) Не нашли, что направляющие суппортов изношены и резинки порваны.
5) Не нашли, что отсутствуют резиновые подкладки под задними пружинами.
6) Не нашли, что одна стойка переднего стабилизатора изношена.



( Читать дальше )

Когда вселенная против того, чтобы ты трейдил

В догонку к предыдущему посту...

Немного модифицировал эксперимент, чтобы захватить те случаи, когда прогноз начинает работать хуже монетки:

1) Оптимизируем параметры при случайном направлении сделок 20 раз и берём медианные значения параметров.
2) В замерах вместо реального прогноза направления сделки в зависимости от рандома и заданной вероятности угадывания берём либо случайное направление, либо наиболее выгодное(через подглядывание в будущее), либо наименее выгодное. При -1 — всегда ошибаемся. При 0 — случайное направление. При 1 — всегда угадываем.
3) Прогоняем цикл по вероятности угадывания от -1 до 1 при разных значениях лимита недельной просадки от 0.5% до 5%
4) Для каждой вероятности и лимита прогоняем 20 раз и усредняем результат.
5) Выводим на графике кривые для каждого лимита просадок.

Параметры симуляции: спот, интрадэй, без плечей, комиссия 0.05%, среднее проскальзывание 0.025%
Когда вселенная против того, чтобы ты трейдил


При недельном лимите просадок в 1.5% наблюдается максимум cagr и отношение abs(max_cagr/min_cagr)  ~ 4.

( Читать дальше )

Никто не знает будущего

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

На этот раз такой эксперимент:
1) Вместо реального прогноза направления сделки в зависимости от рандома и заданной вероятности угадывания берём либо случайное направление, либо наиболее выгодное(через подглядывание в будущее).
2) Прогоняем цикл по вероятности угадывания от 0 до 1.
3) Для каждой вероятности прогоняем 20 раз оптимизацию параметров и усреднение результатов.
4) Выводим на графике.


Никто не знает будущего

Это на споте, интрадэй, без плечей.
MinCAGR > 0 при нулевой вероятности угадывания — это не случайность, а одна из фишек системы, — просто в зависимсти от прогноза направления дальше идёт ожидание наиболее выгодной точки входа.

Никто не знает будущего, но этого и не надо.


Слишком увлёкся созданием робота

Где-то три месяца назад структура моего робота выглядела примерно так:
Слишком увлёкся созданием робота
Т.е. был один прогноз и простой автомат с примитивным менеджером просадок. Даже при такой конфигурации оно может работать, если прогноз в среднем на длительном промежутке времени работает чуть лучше монетки. Но метрики страшные, например коэффициент вариации месячной прибыли может достигать 2 — это страшно, очень страшно. При этом CAGR/MaxDD на самых ликвидных фишках был в среднем 20%/10%, что тоже страшно. Такой робот не переживает тест на деградацию прогноза — когда прогноз начинает рандомить, то средняя прибыль около нуля.


На сегодняшний момент робот выглядит примерно так:


( Читать дальше )

Подгонка или оптимизация.

Продолжаю допиливать торговую систему и одновременно тестирую робота, который будет по ней торговать...

До этого момента у меня были Out-Of-Sample тесты в виде чередования недель для оптимизации параметров и валидации, walk-forward расширяющимся и скольящим окном. Решил немного улучшить способ с чередованием недель:
  1. Берем на всей истории случайных N% недель для оптимизации параметров.
  2. Для валидации берём недели, не попавшие в первый список.
  3. Оптимизируем параметры и снимаем метрики по первому и второму списку.
  4. Повторяем 1-3 пункт 100 раз и записываем показания.
  5. Выводим распределения метрик и их отношений в виде гистограмм.
  6. Выводим распределения параметров в виде гистограмм.
  7. Считаем коэффициент деградации метрик на Out-Of-Sample

Истории мало, только с 2025-01-27, — тогда появилась утренняя сессия. Убраны плечи и используется только одна прогнозная модель.

Если разделить недели 50% на 50%, то получается вот что:
Подгонка или оптимизация.

Коэффициент деградации стратегии на Out-Of-Sample можно выразить как единица минус среднее геометрическое от отношений прибыли, просадки^-1, средней сделки: 1 — (0.65*(1/1.68)*0.67)^(1/3) = 0.36 = 36%. 

( Читать дальше )

Альфа распад

Вот вроде бы ты нашёл новый источник альфы, но смотришь на графики и понимашь, что его больше нет, распался полгода назад:

Альфа распад

А всё потому, что есть люди, которых очень печалит твоя прибыль:) Есть такие закономерности, которые легко обнаружить и замаскировать шумом, если у тебя хватает ликвидности.
В общем, придётся ещё и делать детекторы распада к каждому источнику, чтобы заранее перестать их использовать.

Голосование прогнозов в трейдинге

Допустим, у вас есть несколько прогнозных моделей, которые имеют разную точность и охват. Как организовать голосование при принятии решений при входе в позицию?

Например так. Вместо тысячи слов нарисовал коллажик:) 

Голосование прогнозов в трейдинге

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

Проскальзывание GAZP в шагах цены по неделям

Проскальзывание довольно сильно ухудшает доходность стратегий на больших объёмах. Я в симуляциях обычно ставлю 4 шага цены, но это от балды, а хочется чего-то более точного.

1) Берём обезличенные сделки с 2025-02-03(начало первой целой недели, когда появилась утренняя сессия).
2) Группируем их по микросекундам и направлению. (без группировки у нас будет куча мелких встречных заявок, а не то, что нужно).
3) Фильтруем сделки по объёму.
4) Считаем количество шагов цены в каждой сгруппированной сделке. 0 шагов — нет проскальзывания — минимальная и максимальная цена исполнения равны.
5) Вычисляем средние количества шагов в неделю для: всего дня, утренней, основной и вечерней сессии.
6) Заодно выводим суммарный объём торгов.

Вот что получилось на объёме от 2 до 4 млн:
Проскальзывание GAZP в шагах цены по неделям

На объёме от 16 до 32 млн совсем всё грустно:


( Читать дальше )

Да это всё подгонка!

Продолжаю пилить армию роботов. Запустил на тесте с 16 марта на этот раз 10 роботов, наблюдаю. 6 из 10 роботов в плюсе, общий счёт в плюсе.


Да это всё подгонка!

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

Сами роботы сейчас используют только одну голую закономерность без улучшений, фильтров режимов и т. п. Соответственно, в последние недели они часто падают в защиту на внезапно изменившемся рынке из-за drawdown manager. Пока они работают, я тоже работаю над их улучшением.

Кстати, 10 роботов крутятся на апельсинке и весьма немного тратят электроэнергии:



( Читать дальше )

Т-банк брокер прилёг

Любителям конкуренции и прочих либеральных ценностей посвящается.
Кому как, а мне не нужно 100500 видов дерьма, мне нужен один, но лучший брокер, который работает всегда и выдерживает пиковые нагрузки.

Мои роботы все ушли в ошибку. Работают на tinkoff-api через python. Ничего не потерял, потому что роботы работают на демосчетах, но осадочек остался.

Т-банк брокер прилёг

Upd: 13:45 GMT — отлёг.

теги блога Михаил Михалев

....все тэги



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