Блог им. MihailMihalev

Я самый ленивый трейдер, часть 3

Прошёл уже почти год, как сделал надстройку над терминалом квик, чтобы торговать было не так лениво: Я самый ленивый трейдер. За всё это время воспользовался им всего несколько раз. Проблема в том, что какой бы ни был совершенный инструмент для торговли, без статистически подтвержденной стратегии шансы на удачу, даже краткосрочную, довольно невелики. А я человек простой: не вижу — не еду. Пересиживаю в фондах ликвидности и флоатерах, иногда запрыгиваю в акции, чтобы прокатиться на очевидной волне с минимальным риском.


Математическая постановка проблемы:

1) Допустим, есть исторические данные за год в секундном таймфрейме.

2) Есть торговая стратегия, алгоритм которой фиксирован, но имеет ряд параметров.

3) Допустим, параметров 6, по 10 значений в каждом параметре. Это уже миллион комбинаций.

4) Симуляция на питоне одного инструмента за год на секундном таймфрейме занимает ~4 секунды.

 

Миллион комбинаций на 4 секунды = 4 миллиона секунд ~ 12 дней симуляции, чтобы проверить один инструмент на одной стратегии. Это минимальная оценка при наивной реализации.

 

Умножаем оценку на количество попыток из-за:

1) Ошибки в алгоритме — 10 попыток (и это далеко не предел, в торговых алгоритмах есть весьма неочевидные сюрпризы)

2) Неверный выбор диапазона значений параметров — по 3 ошибки на параметр — 18 ошибок.

3) Вероятные ошибки в исходных данных и подготовке — пусть 2 ошибки, но это сверхоптимистично.

4) Ещё какие-то форс-мажоры — оставим на полях, но тут тоже может быть существенный коэффициент.

 

Получаем 10*18*2 = 360 (при допущении, что ошибки друг от друга не зависят)

Итого 4 миллиона умножаем на 360 = 1440 миллионов секунд симуляций. ~ 46 лет чтобы найти оптимальные параметры стратегии с 6 параметрами.

 

Хочу выразить благодарность тем, кто оставил дельные комментарии под моим первым постом на смартлабе: Девять месяцев инвестирования. Особенно ценны коментарии в духе «все сливают, и ты сольёшь». Это заставляет задуматься и действовать крайне осторожно. Всё правильно, среди этого миллиона комбинаций, при полном непонимании и случайном подборе параметров стратегии, да ещё за реальные деньги, слить — это дело времени.

 

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

 

Дальше идёт погромистская магия...

 

Спорим, что вы используете свою видеокарту неправильно?

4 секунды симуляции — это на голом питоне. Легким движением рук (если ты тру программист), ускоряем в 40-50раз. И получаем уже 0.1 сек на данных за год. Это на CPU и в один поток. Несколько потоков будут делать это быстрее (правда есть нюансики — быстро упираемся в ограниченную производительность памяти и ускорение не будет пропорционально количеству ядер).


Я самый ленивый трейдер,  часть 3


 

Когда нужен параллелизм, то смотрим в сторну GPU. GPU – это по своей сути такой многоядерный процессор, который за один такт может обрабатывать очень много данных по одной инструкции, но он тупой — имеет мало инструкций по сравнению с CPU. Зная это(а так же, и в первую очередь, как устроены контроллеры памяти, кэши, воркюниты, варпы, и прочая хардварная дичь) можно написать код торгового автомата, который весьма неплохо выполняется на GPU. И вот одна симуляция на данных за полгода происходит уже не 50 милисекунд, а внезапно 8 секунд… но есть один нюанс: параллельно вычисляются 160000 стратегий с разным набором параметров торгового автомата. (конечно на самом деле зависит от размерностей в архитектуре конкретной видеокарты, например моя скорее всего выполняла это в 64000 потоков одновременно).


Я самый ленивый трейдер,  часть 3

 

Т.е. одним нажатием кнопки бабло SearchParams я нахожу лучшие параметры стратегии из 160000 комбинаций за 8 секунд. т. е. Миллион комбинаций я переберу за минуту. Это уже не десятки лет как было в наивной первоначальной оценке. Это уже вполне конечное время, и за несколько попыток в течение очень короткого времени умный поймёт, что играть с казино крайне опасно, а упорный — продолжит эксперименты, потому что если к грубой программерской силе подключить математическую смекалку, то внезапно окажется, что некоторые параметры друг от друга зависят и образуют причудливые многомерные объёмы, а значит реальное количество комбинаций, которое нужно перебирать, сильно снижается, что даёт возможность добавлять ещё параметры и усложнять стратегии.


P.S. Почему секундный таймфрейм? Потому что могу:)

209
#111 по плюсам, #17 по комментариям
11 комментариев
Че ты здесь делаешь, судя по посту, все деньги  мира должны быть уже у тебя)))))
avatar
Silent Hamster, Да я только вчера закончил делать эту утилиту. В любом случае, этим инструментом можно проверять только те стратегии, которые оперируют небольшим объемом ликвидности, т.к. иначе я сам буду влиять на цену. Для крупных денег — совсем другие стратегии, и как их симулировать, я пока понятия не имею.
«Проблема в том, что какой бы ни был совершенный инструмент для торговли, без статистически подтвержденной стратегии шансы на удачу, даже краткосрочную, довольно невелики.»- Я вижу Вашу «проблему» в другом-Трейдинг  для Вас это лишь хобби, не удивлюсь что одно из многих. И результат поэтому  для Вас пока вторичен. Это как  например ходить в спортзал иногда.
Дмитрий Киреев, С одной стороны проблема, с другой возможность.
Михаил Михалёв, вот я и говорю, когда трейдинг у Вас перейдет из разряда -не срочно/не важно, хотя бы в разряд -важно/но не срочно, ваша лень сразу пропадёт. И перейдёт из проблемы в возможности. Только если Вы сами по натуре не очень ленивый человек.
Дмитрий Киреев, Мне вручную торговать лень, а написать армию торговых роботов не лень:)
Надо было написать в заголовке «неленивый программер». 
Если таймфрейм минута и параметров максимум 3, можно уже не так напрягаться со скоростью. 
Причем тут глобальная развилка. Или уже не секунда, а миллисекунда, не квик, а Си++ в коллокации биржи и реальное ХФТ. Высокая трудоемкость и доходность, ограниченная в объеме ниша.
Или средне-долгосрок, прикидка разумности параметров уже на дневках, доха в текущих условиях порядка 30 годовых и питона (и даже LUA, в пределе экселя ) вполне достаточно.  
avatar
SergeyJu, Я пока копаю в направлении интрадей на секундах, и буду туда копать, пока не упрусь. А вообще, в моей концепции, таймфрейм — это всего-лишь один из параметров препроцессора(подготовка данных для генератора сигналов торгового автомата), который тоже может участвовать в автопоиске параметров.
Михаил Михалёв, пробуйте. 
Но по моему опыту, между среднесроком (время удержания позиции в среднем 2-4 дня) и ХФТ денег почти нет. 
avatar
смысла от этих симуляций, особенно посекундных? не знаешь же в какой момент Трамп, Зеленский или еще кто откроют рот. 
avatar
Сиделец, Вот как раз на секундах то и можно успевать реагировать на рыжего маркетмейкера:)

Читайте на SMART-LAB:
Январское списание налога: готовы ли вы к встрече с налоговым агентом?
Январь — время не только новых надежд, но и автоматического списания налога с вашего брокерского счета. Чтобы эта встреча прошла без неприятных...
Фото
Операционные результаты Группы «Аэрофлот» за ноябрь 2025 года
✈️ Объем перевозок вырос на 2,8% по сравнению с ноябрем 2024 года и достиг 4,1 млн пассажиров.   ✈️ На внутренних линиях перевезено 3,0 млн...
Фото
❗️ ПАО «МГКЛ» — выпуск облигаций серии 001PS-01
Финальная ставка купона по выпуску составила 24,00%. Доходность к погашению (YTM) — 26,83% Книга заявок закрыта. Новые заявки не...

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

....все тэги



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