Рекомендации новичку в алготрейдинге
Прошу советов у опытных алготрейдеров касательно этого непростого ремесла
Начнём с предыстории
На протяжении всей своей трейдинговой карьеры я руководствовался исключительно фундаменталом (старался анализировать показатели макроэкономики) и некоторыми паттернами на рынке, которые старался обторговывать ручками. Стоит сказать, что делал (и продолжаю делать) я это относительно успешно (стабильно 20-27% годовых), но в последнее время моё внимание очень привлёк алготрейдинг. Имея многолетний опыт в программировании и сильный интерес к математике, идея использования этих подходов на рынках меня очень заинтриговала.
А теперь, собственно, основная часть
Я прекрасно понимаю, что на смартлабе есть уже куча постов на данную тематику, но в силу постоянного прогресса в технологиях я предположил, что технологический стэк для алготрейдинга тоже меняется время от времени, оттого я решил написать этот пост.
Уважаемые господа, успешные алготрейдеры! Подскажите, пожалуйста, с чего стоит начать свой путь в этой сфере торговли? Какие хорошие источники посоветуете? Какие технологии здесь нынче в моде? Откуда стоит брать данные для анализа? С радостью и благодарностью постараюсь перенять лучшее из вашего опыта.
Программирование — если Квик -Lua. Если более продвинуты, то С++ или Python.
Мне, как и большинству, пришлось остановиться в точке, далёкой от исчерпания всего.
Самое модное нейросети и Питон. Под них книга «Deep Learning with Python 2Ed» Fransois Chollet. Для инстоляции miniconda. После установки около 3Гб на диске.
Для начала лучше Анаконда — все уже включено. Или, почти все.
Анаконда больше 6 Гб невесть чего.
Да, и конды отстают по версиям Python, что иногда существенно. В 3.11 быстродействие на 25-75% выше. На конде еще 3.10.
Но начинал я с Анаконды (чтоб не заморачиваться) и долго на ней сидел.
PS к 6+ Гб Анаконды придётся добавить ещё 1.5 Гб Tensorflow с Kerasо'м.
Тебе и горький хрен — малина,
А мне и бланманже — полынь!» ©
Вот пример Deep
это keras
Для scikit-learn нормальная документация у них на сайте.
Инструментарий должен использоваться в соответствии с моделью. Если Хайкин помогает спать спокойно и не на голодный желудок — то (извиняюсь заранее) это самые примитивные модели рынка (IMHO)
С уважением
P.S. Нет никаких продвинутых методов. Есть
1. Феноменологический подход. Берем рынок и пытаемся понять (а не представить) его действующие закономерности
2. Модельный подход (мы вообразили, что знаем, как устроен рынок). Берем рынок — и пытаемся натянуть Хайкина на глобус )))
1. Применимость аппарата случайных процессов к рыночным ценам вообще неочевидна. Т.к. мы имеем дело ровно с одной реализацией случайного процесса, а для применимости в таком разрезе нужна строгая стационарность. На рынках никакой строгой стационарности процессов нет и в помине (легко проверяется), но есть стационарность в некоем широком смысле
2. Неустойчивость — есть свойство не самого случайного процесса, но используемых статистик. Если статистики неустойчивые (а они все неустойчивые, кроме МО — и выборочная дисперсия, и выборочные АКФ, и т.д.) — то они ничего умного и не покажут...
Так что в данном конкретном случае дело не в зауми, а в использовании плохоработающего или неработающего инструментария.
Лично я (IMHO) уверен, что традиционный инструментарий вообще не работает, поэтому и разрабатываю свой.
С уважением
Я использую то, что есть. Но в вашей специальности это не изучается. Назовем это — теория сигналов.
Даже книги приводил тебе, по которым я обучался
(моя бытность работы в ВПК)
Просто пытался пояснить тебе, что
1. На реальных рынках модель сигнал + аддитивный шум не работает ввиду соотношения (мощности) 1:50 в пользу шума
2. Модель сигнал * мультипликативный шум ты точно не рассматриваешь (судя по твоим приведенным выкладкам)
3. Именно для этого и нужны кастомные статистики
4. А еще проще от модели сигнал+шум отказаться вообще )))
С уважением
Да шум не совсем аддитивный, но и аддитивная компонента присутствует и не маленькая.
У меня другая модель рынка (хотя, твою достоверно не знаю).
Пока на этом и порешили.
С уважением
P.S. Про свою я и не писал ничего ))) И пока особо не собираюсь )))
Тот простой факт, что данная стратегия, которая работала в прошлом, останется работающей в будущем — это сложная теорема.
Отдельно доказываемая для каждого вида стратегии.
И да — комбинации МАшек не работают...
С уважением
1. При маркетном исполнении работают безусловно, давая средний результат на сделку меньше спрэда — фтоппку
2. При лимитном исполнении не работают безусловно, сливают стабильно
3. При твоем окне тестов в 50к баров максимум вполне могут работать. Но лично я не запускаю в продакшн ни один алго без уверенного результата в плюс хотя бы на 1.5 млн. баров
А так — да. Накоротке можно приготовить все, что угодно — МАшку, моментум, Боллинджер, кошку, наконец )))
С уважением
сейчас средний результат на годовом тесте BTCBUSD ~40п на сделку, хотя все отлаживалось на последнем квартале 22 года.
Комиссию окупает, примерно 1/4 от прибыли.
А ты говоришь миллионы отсчетов.
Кстати, я еще и не закончил.)) Маловато будет.
Просто лично у меня от устойчивой теормодели до бабла в кармане путь долгий и чисто технологичный. Т.к. надобно
1. Обеспечить бесперебойную работу системы
2. Быстрое восстановление после сбоев
3. Контроль позиции после сбоев (если система использует для анализа длинный массив предыдущих данных)
4. Защиту от биржевых сбоев
5. Контроль неполного исполнения лимитных ордеров
6. Механизм принудительного зафилливания лимитных ордеров
7. Ужас, ужас, ужас...
И это даже вкратце не все. Но это важно на депо хотя бы от $100k. На $1k вполне хватает ручного круглосуточного контроля )))
С уважением
Всю дату беру из api биржи, если надо протестировать что то специфическое, то yfinance или другие крупные источники. Но в основном хватает yfinance.
Стэк python, если нужна база данных, то postgresql, если нужен веб интерфейс, то django или fastapi, если интерфейс в телеграм боте, то aiogram (но это для особых потребностей в управлении процессом, в основном хватает голого api телеграма). Если разработка проекта на заказ, то docker.
Стэк в любом случае зависит от языка программирования, так что лучше бы для начала определиться с ним. Если цель конечно написать полноценный работающий переносимый и масштабируемый проект, а не просто скрипт для tradingview или однофайловый бот и логикой в 50 строк кода.
1 для алго нужен прокаченный технический скилл + программирование… а если у тебя оно прокаченно, то зачем тебе биржа? итак будет зарплата в овердокуя баксов… я кстати жалею иногда о своем выборе… алго занялся в 2006ом а синие визы в ес появились в 2007ом...
2 алготрейдинг закрытая отрасль прежде чем начнешь шарить в теме пройдет лет 10… и без гарантий результата… т.е можно просто напрасно потерять время и стать при этом хиккой
3 обычно делают так — сначала придумают мтс… которую торгуют руками… затем делают частичную автоматизацию… затем полную автоматизацию..
4 попробуй просто делать исследования рынка… но тут нужны идеи которые нарабатываюся с опытом… обычно это простые вещи типа тест портфеля
5 наиболее прост — тслаб… не требует знаний программирования… и т.к все из стандартных кубиков — не требует отладки…
А дальше тестировать можно уже как угодно, хоть в Экселе, хоть тс лабом для начала
А так есть два подхода:
1) Наблюдать за рынком, искать закономерности, их бэктестить, и реализовывать
2) Укуриваться матаном, если нет матиматического образования или сопоставимой практики, особо не советую.
Но какие-то основы изучить можно, найди какой ни буть совсем простой учебник по матану и теорверу, разберись что такое плотность вероятности, корреляция, центральная предельная теорема, этого достаточно чтобы мозги встали в нужное русло.
Хреново конечно, что вы до сих пор ни одного коммента в своей теме не написали. Может опять какой chatgpt или бот
Но лично я уже года 3 как занимаюсь прототипированием, тестами и публикацией рабочих алго на Matlab.
Далее специально обученные программисты сшивают код алго с кодом модели исполнения (обычно это C#)
Низкоуровневые слои (коннекторы etc.) пишутся на чем угодно. Но обычно это тот же C# и С++.
Как-то так
С уважением
С уважением
Если ты надеешься в алготрейдинге найти (или вычислить, создать) прибыльную систему, то этого не будет, не поиогут не нейронные сети, ни присловутый ИИ.
Единственный смысл алготрейдинга это высвобождение времени от рутинных расчетов и убивания времни на сидение перед монитором. Все кто говорит что то другое просто врут.
А посему, если нашел свою стратегию (свой Грааль) не важно на каком яхыке и как ты его реализуешь в алго.
Если стратегии пока нет, займись поиском, а не алготрейдингом.
Единственное, чем тебе можно помочь, это уберечь от безполезных поисков в некоторых направлениях.
Сначала найти идею — в экселе или через питон. Потом сделать простой логгер на бесплатном брокерском апи и проверить идею.
И алго — это не запустил робота и уехал по делам, невозможно учесть все ошибки. Потому алго — запустил робота и постоянно проверяешь, как он работает.
Доходность 20-27% руками — отличная. На алго может быть чуть больше, но не в разы.
Вы и правы и не правы одновременно. Основа робота алгоритм, точнее идея алгоритма. Реализация алгоритма в роботе всегда вторична. Отладка кода не займет много времени.
Поэтому в принципе, запустил робота и уехал по делам, это вполне рабочий вариант.
Но с другой стороны, рынок не статичен, поэтому переодически возникают катаклизмы, когда цены выходят за расчетные в алгоритме параметры. В этом случае требуется либо просто менять параметры (следить как работает робот), либо искать идею как обработат исключения выхода цены за расчетные параметры алгоритма, СОВЕРШЕНСТВОВАТЬ РОБОТА, или алгоритм.
Я 5 лет оттачивал реализацию идеи в роботе, уже 2,5 года у меня работает последняя версия (пережила СВО без изменений), поэтому последние 2,5 года у меня работает принцип «включил и ушел по делам», вечером пришел посмотрел поведение рынка и как отработал робот.
Правда сейчас появилилось пара идей, которые собираюсь рееализовать в новой версии)).
«Доходность 20-27% руками — отличная. На алго может быть чуть больше, но не в разы.»
Совершенно верно, правда я думаю, алго с одной стороны не пропустит сделки, но с другой стороны алго это все же поиск компромисов. Поэтому однозначно говоритьбудет ли доходность алго больше ручной торговли, я бы не стал.
Например, комп с оперативкой 32гиг ловит примерно 4 битфлипа в сутки от космического излучения. И это может оказаться как раз тот самый bool, который отвечает за купить\продать.
Если Вы оставляете робота и «вечером пришел посмотрел» — ну успеха Вам, немало алго на этом погорели, будучи абсолютно уверенными в своем коде.
Код без ошибок все же бывает. Тем более код выверенный за промежуток в несколько лет.
«например вечерней сессии в день объединения бирж — и никакое совершенствование алгоритма не поможет,»
Тут вот вопрос не в коде, а в алгоритме. Вы думаете только у вас утренние вечерние выбросы? У меня алгоритм отрабатывает это нормально, в нем это предусмотрено.
«Или нефть по 8»
Это уже вопрос параметров алгоритма заложенный у вас)).
«брокер начинает транслировать неправильные позы, или бид начинает приходить выше аска. И таких причин настолько много, что учесть всё невозможно.»
опять же зависит от алгоритма, какими данными вы оперируете, у меня алгоритм работает по соверщенным сделкам, и нет сделок по рынку, только лимитки, поэтому все сказаное вами автоматически отфильтровывается алгоритмом.
«тот самый bool, который отвечает за купить\продать.»
И снова, лимитка отфильтровывает все эти bool, поверьте.
«Если Вы оставляете робота и «вечером пришел посмотрел» — ну успеха Вам, немало алго на этом погорели, будучи абсолютно уверенными в своем коде.»
Я уверен не в коде, а в алгоритме, и уверенность укрепляет работа до, в момент начала СВО и весь год течения СВО. И работа именно в режиме «включил и пошел по своим делам».
Возможно вы говорите об алго где определяет сделки не алгоритм, а именно «интелектуальная программа на нейронных сетях с продвинутым искусственным интелектом), купленная с 50% скидкой только 2 дня». Я не знаю, у меня алгоритм мною разработан, робот мною написан.
Про код без ошибок (на всех сторонах — и в роботе, и у всех провайдеров по пути, и у брокера и и биржи) — блажен верующий )
Должен заметить, что это был не первый и не последний сбой в системе биржи. Последний который наблюдал своими глазами был в январе 2023. У меня Роботы среагировали адекватно. Так, что вы ошибаетесь, я прекрасно представляю происходившее и происходящеее переодически.
«Про код без ошибок (на всех сторонах — и в роботе, и у всех провайдеров по пути, и у брокера и и биржи) — блажен верующий )»
Вы путаете код робота со сбоями связи, если судить по написанному вами. Сбои с передачей данных фиксируются переодически, но системы уже давно научились на низ реагировать путем подтверждения целостности «телегаммы» через возврат хеш функций. У меня пояляется сообщение «невозможно прочитать данные из транспортного потока».
Я не знаю вашего уровня, и вашего опыта в алго, но пока из того, что вы пишите ваши познания кажутся поверхностными.
Впрочем, полемика бессмысленна. Я реально Вам желаю работы робота без сбоев.
Так я именно это вам и написал, кто сделок не производил после клиринга, им все откатилось, кто кинулся позы исправлять, те влетели в убытки.
Да и вам удачных и прибыльных сделок.
Или, банальное — день экспиры, пошел вынести мусор, застрял, су..., лифт. До экспиры 3 часа, а в те годы надо было подавать заявки на экспиру голосом по телефону, не подал заявку — подарил деньги. Телефон в лифте не ловит сеть. После того случая в дни экспиры не выходил из дома.
Да… И проверьте это на истории)) глубину тестирования выберите сами.))
Да… И проверьте это на истории))»
А что у вас в истории есть и Йелоустоуна и Пришельцы? Я вообше не вижу особого смысла в глубоком тестировании алгоритма. Потому, что если на цену воздействуют периодические возмущения или сезонные факторы, то это легко закладывается в алгоритм, если происходит катаклизм, то его в истории не будет.
Тестирование алго имеет смысл только в выявлении явных ошибок в логике алгоритма, ну возможно в подборе каких то параметров (и то сомнительная идея постоянно подбирать параметры по истории)
Всегда найдётся что-то, что Вы не учли…
Точно, я в своем алгоритме закладывал возможность просадки 25-30%, а СВО обрушило на 50 и более))) В итоге роботы в какой то момент банально начали останавливаться из-за лимита средств выделенных роботу. Пришлось массово менять параметры для продолжения торгов. Как итог уменьшилась доходность алгоритма(( С этим не поспоспоришь, но роботы работать не перестали, с другой стороны не вижу смысла закладывать в алгоритм 50-70% просадку, это омертвление средств и как итог низкая доходность на портфель.
Это я вам как прибыльный алготрейдер с 7 летним стажем у которого более 200 роботов разных говорю… Тут можно только маленькие деньги выхватывать аккуратно. С минимальным эи плечами и максимальной диверсификацией по рынкам. Реально мне бизнес на недвижке больше дал.
Да и в недвиге тоже, у одних хлеб с икрой, а у других вошь на аркане.
А кто вам сказал, что нет миллиардеров на алго? Просто миллиардеры на алго не публичны, у них другие ниши в отличии от всяких Баффетов. Баффет зарабатывает на раскручивании собственного бренда, собственного фонда, поэтому вынужден постоянно рекламировать свою успешность. А алго любит тишину и спокойствие.
С другой стороны, возьмем Богла. Он же, по сути, тоже предложил рынку алготорговлю. Да, примитивную до ужаса. Но денег поднял, и чужих, и своих.
Вы не поняли, миллардеров владельцев брокерских контор и фондов НЕ БОЛЬШЕ, просто они публичны, это им жизненно необходимо, это их реклама и способ привлечения клиентов, на которых они собственно и зарабатывают.
Алготрейдин в своей основе несколько другое (я не имею в виду конторы продажники готовых роботов, это в 95% кидалово), вы создаете алгоритм, оптимизируете его под алго и тихонько зарабатываете, в какой то момент, когда ваш доход становится стабильно достаточен для удовлетворения потребностей, алготрейдинг переходит из разряда инструмента заработка в хобби. По крайней мере десятки моих знакомых алготрейдеров говорят, что роботы для них уже хобби.
Алготрейдинг, по моему мнению, более интелектуален, чем ручной трейдинг. Ведь в ручном трейдинге большинство сделок совершаются по «наитию», а в алготрейдинге все должно быть просчитано до мелочей. А интелектуалы очень редко публичны.