Блог им. 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. Почему секундный таймфрейм? Потому что могу:)

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

М5 за глаза для интрадея. 1-2 сделки в день. Считаем бары и пункты прошлого движения, от них ищем пропорции (которые одни и те же) в будущее. Индюк для МТ4 давно в бесплатном доступе (только без мануала, как им правильно пользоваться). Алгоритм поиска мат. закономерностей описан 100 лет назад. До сих пор ничего на рынках не изменилось.
avatar
смысла от этих симуляций, особенно посекундных? не знаешь же в какой момент Трамп, Зеленский или еще кто откроют рот. 
avatar
Сиделец, Вот как раз на секундах то и можно успевать реагировать на рыжего маркетмейкера:)
avatar

Читайте на SMART-LAB:
Фото
#итогиsofl2025: ИТ-лидерство в финансовом секторе
Финансовый сектор — один из лидеров цифровизации в России. По данным ЦБ, Россия входит в топ-5 стран по общему количеству платежных транзакций и в...
Предварительные итоги года на рынке жилья и ипотеки
Аналитический центр ДОМ.РФ подводит предварительные итоги года. Объём продаж жилья по договорам долевого участия (ДДУ) в 2025 г. (в рамках...
Ответы на вопросы о выкупе акций
Всем привет! В связи с процедурой выкупа акций SFI нам поступает много вопросов! Мы подготовили ответы на основные из них: В каком случае я...

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

....все тэги



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