Анализирую разные подходы к созданию ботов и смотрю на их эффективность.
Раньше бегущую ленту люди изучали вручную, а теперь это может сделать робот. Главное, если поссоритесь, больше денег не давайте.
Чтобы ответить на вопрос о заработке с помощью торговых ботов, я потратил довольно много времени на изучение рынков акций и криптовалют. Короче говоря, любое свободное время вне работы и семьи тратилось на торговлю.
На сегодняшний день я открыл и пополнил счета в Тинькофф Инвестиции, Interactive Brokers, Binance, Alpaca (здесь только демо-счет для нерезидентов США), Okex и Forex Club, премиум на TradingView. С каждым из них я в той или иной степени использовал торговых ботов, изучал их API, торговлю в целом и алгоритмические методы торговли.
Чтобы ответить на вопрос об эффективности ботов, я потратил много времени на исследования в области нейронных сетей, алгоритмического трейдинга, криптотрейдинга и теперь могу сделать выводы для дальнейших исследований и практического применения.
Отказ от ответственности : Если вы читаете эту статью, я предполагаю, что вы знакомы с рынками акций/криптовалют и имеете общее представление о том, почему вам нужен бот, или вас просто интересует теория, лежащая в их основе.Эта статья не будет содержать частей кода и предназначена только для образовательных целей.
Если будет интерес, рассмотрю варианты реализации более подробно.
Торговые боты
Начнем с фактов.Идея торговых роботов не нова, о них много публикаций, их используют финансовые учреждения и банки, но действительно ли они помогают? На тему алгоритмического трейдинга существует довольно много исследований и мыслей, но все они приходят к смутному выводу.
Чаще всего авторами этих ботов являются либо трейдеры с какими-то мыслями и размышлениями, либо программисты без опыта торговли.
Постараюсь раскрыть эту тему насколько смогу.
Как разработчик и как трейдер.
Как человек, потерявший на торговле и заработавший большие суммы.
Если вы программист или знакомы с основами написания скриптов, вы сможете написать собственного бота за несколько часов.
Но принесет ли вам это достаточно денег? Будет ли стабильный доход? Достигнет ли он когда-нибудь годового дохода в 100 000 долларов? В этом посте я отвечу на эти вопросы и дам несколько советов, как двигаться дальше.
- Что такое торговый бот? Торговый бот — это алгоритм, который преобразует рыночные условия в торговые решения (обычно покупка, продажа или удержание).
Здесь нет ничего особенного.
- Какие типы торговых ботов существуют? Все типы, которые мог бы взять любой трейдер, поскольку бот — это алгоритм, написанный программистами, в него можно заложить любую логику.
По типам трейдеров и видам торговли можно выделить следующие варианты: • Трейдеры со стажем — инвесторы; • Свинг-трейдеры — те, кто размещает сделки на неделю, месяц или год; • Дневные трейдеры - тех, кто совершает небольшое количество сделок в течение дня, не перенося их на ночь; • Скальперы - те, кто совершает много сделок в день, час или даже минуту.
Все эти типы трейдеров можно реализовать в виде бота.
- Где торговый бот может размещать заказы? Где бы вы ни хотели и могли получить доступ к API брокера или посредством реверс-инжиниринга (некоторые брокеры могут считать это мошенничеством/взломом, поэтому лучше уточнить этот момент в их политике).
Но никто не запрещает вам самостоятельно моделировать брокерские условия, комиссии, спреды, цены и получать текущие цены на акции или криптовалюту, не имея средств непосредственно у брокера.
Таким образом, протестировать бота можно, не прибегая к реальной торговле, и в зависимости от качества реализации симулятора и выбранного типа торговли будет зависеть, насколько стратегия соответствует реальному рынку.
- Какие типы реализаций ботов существуют? Проще говоря, виды алгоритмической торговли.
Так как бот представляет собой полноценную программу, реализующую торговое поведение трейдера в автоматическом режиме.
• Нейронная сеть или искусственный интеллект — могут быть простые боты с одним перцептроном, основанные на нескольких нейронах, сложные LSTM-сети или даже анализ новостей на основе эвристики ключевых слов, семантического поиска с помощью NLP. • Количественная торговля - на основе стратегии, объединяющей любые критерии принятия решения, это может быть сравнение индикаторов, поведение цены, поиск закономерностей и т.п.
• Полуавтоматический бот-предупреждитель — будет использовать некоторые алгоритмы, чтобы говорить трейдерам, что делать.
К этому типу относятся индикаторы, основанные на какой-либо стратегии.
• Генетические алгоритмы - его можно классифицировать как часть машинного обучения/нейронных сетей, но на самом деле он недостаточно изучен, чтобы определить этот тип алгоритма как подход машинного обучения.
Реализации генетических алгоритмов различаются, исследуются университетами по всему миру и являются частью более широкой темы, выходящей за рамки данной публикации.
Итак, я ответил на четыре основных вопроса, которые уже могут раскрыть немного теории, прежде чем вы начнете писать своего бота.
Но что дальше? Как только мы поймем, что такое бот, мы сможем подумать об измерении его KPI.
Измерение качества ботов
Чтобы измерить качество бота, мы можем использовать метод бэктестинга ( бэктестинг ).Бэктестирование - методика, предполагающая моделирование торговли с использованием определенного временного диапазона ранее доступных данных и/или дополнительно смоделированных ситуаций (так называемые побочные случаи, к ним относятся кризис, внезапные обвалы или рост рынка, массовые перемещения акул и т. д.).
Давайте возьмем для работы некоторые эвристики, такие как доступные средства, временной интервал, с которым они работают, диапазоны стоп-лосса и тейк-профита.
Мы можем использовать другие эвристики, основанные на любой торговой стратегии, которую мы хотим использовать (например, боты нейронных сетей могут определять свою эвристику на основе рыночных условий, используя те же новости).
Лучший способ определить качество стратегии — написать ее прототип с помощью TradingView. Используя их документацию, вы можете легко написать стратегию на Pine Script (который имеет очень простой синтаксис).
Пример простой стратегии на основе скальпинга с ботом с коротким стоп-лоссом и тейк-профитом.
Как вы можете видеть на рисунке выше, я реализовал простую стратегию, основанную на длинном ордере после каждой зеленой свечи.
Однако, несмотря на экспоненциальный рост счета в TradingView, данная стратегия неприменима ни на одной из бирж, так как использует стоп-лосс 0,01% и прибыль 0,5%.
При таком проценте вы можете автоматизировать торговлю и даже разместить стоп-лимитный ордер в его диапазоне, но с комиссиями, которые предлагает брокер, вам не выжить.
Расчеты Binance предлагает комиссию в размере 0,04% за любую рыночную сделку (сделать ордер) на первом VIP-уровне.
Таким образом, любой стоп-лосс будет исполнен со следующим результатом: 0,01 + 0,04 * 2 = 0,09% убытка за 0,5% прибыли (умножаем на 2, так как комиссия взимается как за открытие сделки, так и за ее закрытие).
Эта стратегия не выживет с соотношением прибыли 1:5, так как у нас есть только 2,79% прибыли (это означает, что только 2% всех размещенных ордеров прибыльны, остальные исполняются со стоп-лоссом).
Используя достаточно подробную аналитику, взятую из TradingView, мы можем быстро разработать стратегии наших ботов, прежде чем использовать реальный рынок или демо-торговлю.
Особенно, если мы планируем создать серверного бота со сложной структурой и небольшим интерфейсом.
После того, как вы увидите что-то вроде этого:
Моя успешная реализация торгового алгоритма Если у вас хорошая чистая прибыль в сочетании с процентом прибыли выше 60 (как минимум), вы можете рассмотреть возможность внедрения настоящего торгового бота.
Означает ли это, что боты эффективны? Можем ли мы ответить на этот вопрос сейчас? Спойлер: да, конечно.
Они эффективны.
Но давайте подробнее рассмотрим этот вопрос.
Помогают ли торговые боты зарабатывать деньги?
Да, конечно.Вот почему многие хедж-фонды, банковские учреждения и крупные финансовые компании нанимают специалистов по машинному обучению и алгоритмам.
Эти люди отвечают за внедрение автоматизированных торговых ботов для торговли на крупных денежных рынках.
Так сколько денег они зарабатывают? Можем ли мы посчитать и ответить?
Стратегия с ежедневным ростом в 1% и сложными процентами даст около 40% ежемесячной доходности.
Но это реалистично только теоретически.
Это зависит от многих факторов.
По крайней мере, из эвристики, которую заложили программисты.
Управление рисками, рыночные условия, свободные средства и т. д. Можно отметить, что хороший прогноз в течение торгового дня при низкой волатильности может дать около 0,6-1% движения акций.
Если ваш бот не потеряет ни одной сделки в течение торгового месяца, вы будете зарабатывать около 20% каждый месяц, для стратегии «все в» счет в 10 000 долларов будет зарабатывать 2 000 долларов.
Мы можем использовать маржинальные счета и использовать кредитное плечо, управлять рисками или использовать пирамидирование , короткий стоп-лосс или длинный тейк-профит или различные типы торговых ботов — все они будут работать по-разному.
Вы должны понимать, что плохой алгоритм может уничтожить весь ваш депозит в случае допущенной какой-либо ошибки.
Поэтому убедитесь, что вы прошли все тесты и использовали своего бота для демо-торговли, прежде чем начинать использовать его на реальные деньги.
Так сможет ли он заработать 100 000 долларов в год? Конечно, правильное управление рисками, стратегия и пропорциональное количество денег могут дать вам такую прибыль.
Сравнение нейронных сетей и количественных алгоритмов
Это важная тема для обсуждения разницы между нейронными сетями и количественным анализом.Что могут алгоритмы машинного обучения или нейронных сетей? Они могут обнаруживать закономерности на основе исторических данных лучше, чем люди.
Пример набора весов для нейронов в одной из моих стратегий на TradingView Как они определяют закономерности? Это зависит от типа нейронной сети.
Вы можете реализовать широко используемую сеть LSTM или однослойный персептрон.
Для других типов сетей есть множество статей и исследований (часто магистерские/докторские диссертации по этой теме от иностранных студентов), так что это полностью зависит от вашего выбора.
? они эффективны? Да.
На самом деле они находят закономерности, используя правильно написанный алгоритм, используя обучение с учителем или без него.
Я реализовал нейронную сеть на C# (основной язык, который я использую в своей работе, поэтому и взял его) и разместил несколько индикаторов (некоторые из них самодельные, остальные — RSI, Bollinger Bands и Stochastic RSI).
Затем я написал алгоритм, который берет временной диапазон и собирает свечи, после которых происходит бычье или медвежье движение.
Второй алгоритм заключался в обучении нейронной сети с использованием свечных индикаторов и установке 1 или 0 в качестве выходного нейрона (1 — прогноз на покупку, а 0 — удержание).
Результаты прогнозов покупок с помощью нейросети на BTCUSDT. (4/7 сигналов верны) Далее я взял сгенерированные веса и написал стратегию с помощью TradingView для визуального представления прогнозов бота.
И результаты оказались лучше, чем я думал сначала.
Таким образом, этот подход имеет свое место, но требует изучения большего количества эвристики, например, где размещать стопы и лимитные ордера, какой риск использовать и т. д. Но это хороший пример использования нейронных сетей на практике, и он работает. Проблема также заключается в ограниченности временных рамок.
Сеть, обученная во времена до Covid, вряд ли будет работать во время Covid. Количественный подход аналогичен нейронным сетям, но вместо использования машинного обучения для выявления закономерностей программист должен определить их самостоятельно.
Это облегчает определение точной стратегии, момента выхода из позиции и управления рисками.
Более того, при количественном подходе можно сделать не автоматизированного бота, а отличный индикатор с набором сравниваемых условий, а трейдер сам будет принимать решение на основе этого анализа и общей ситуации на рынке.
Реализация стратегии, основанной на тенденциях.
На примере Unity на минутном таймфрейме сегодня (2 марта 2022 г.
)
Реализация интерфейса торгового робота в Telegram На скриншоте выше моя последняя стратегия, которую в ближайшее время я перенесу на сервер с интерфейсом, подключенным к Telegram. Это быстро и дешево, а главное эффективно.
В Интернете существует бесчисленное множество подобных стратегий; всегда старайтесь найти или разработать тот, который соответствует вашему стилю торговли.
Возможно, вы консервативный инвестор и вам достаточно инвестиционного бота, который время от времени собирает информацию об упавших компаниях из вашего портфеля и покупает их каждый месяц.
Насколько он стабилен?
Стабильность в наше время становится все более размытым понятием.Что касается постоянной прибыли, то она зависит от акций и рыночных условий, выбранной стратегии и типа алгоритма.
Бот может получить прибыль в размере 2% за пару часов, а затем рынок поменяет свое направление, и он несколько раз закроет позиции в минусе и в результате понесет убыток в 3% в конце дня.
Программисты должны заботиться об управлении рисками.
Для этого крайне важно изучить основы трейдинга.
Прочесть пару книг, даже «Мемуары биржевого спекулянта» Двина Лефевра — хороший выбор для начала.
Обвал NASDAQ в 2020 году на 30% за месяц.
Если бы бот откупил просадку в конце месяца, то за несколько недель роста он бы отыграл весь убыток.
Например, обычный подход — остановить бота, если ежедневный убыток или прибыль достигнет определенной точки.
Например, достаточно 1% убытка в день и 2% прибыли или наоборот, необычно, волатильность рынка слишком высока.
Например, акции Apple, которые растут более чем на 2% в день, обычно встречаются редко.
Рыночные условия меняются из года в год, месяц, день или даже минуту.
Фундаментальные новости (недавний крах российского рынка), рыночная паника (обвал биткойнов в 2017 году) или крупные покупки или продажи акул (например, Tesla покупает биткойны и поднимается выше 60 000 долларов).
Эти точки могут сломать многие алгоритмы, в том числе сложные нейронные сети, если в них не реализовано управление рисками и правильное размещение стопов ордеров.
Заключение
Торговые боты — это эффективный способ автоматизировать вашу торговлю или инвестирование, но его необходимо продумать и тщательно протестировать, прежде чем вы начнете использовать его на реальные деньги.На данный момент я дорабатываю собственного торгового бота для внутридневной торговли, а также имею бота, который оповещает меня о возможностях покупки/продажи инвестиционных активов на большом расстоянии (1-2 транзакции в месяц).
Это очень помогает в условиях, когда основной работы много и времени следить за движениями рынка просто нет. Убедитесь, что вы хорошо осведомлены о технологиях, которые вы используете для создания алгоритмической торговли.
Также хотелось бы предостеречь от покупки готовых ботов, которые предлагаются за высокую цену (многие из них работают на моделях всего 1-2 недели, в течение которых они проходят тестирование).
Позже я напишу несколько постов о практическом использовании алгоритмических ботов, о том, как писать хорошие стратегии в Pine Script, а также о примерах генетической торговли и моих исследованиях, так что следите за обновлениями! Предложения для будущих статей по этой теме приветствуются.
Дополнительные материалы
- stannot.es - мой блог о разработке игр, торговых ботах и мыслях о будущем;
- https://www.ozon.ru/product/vospominaniya-birzhevogo-spekulyanta-138113710/ - Мемуары биржевого спекулянта | Лефевр Одвин;
- http://dspace.unive.it/bitstream/handle/10579/12450/842777-1212885.pdfЭsequence=2 - магистерская работа по разработке бота с использованием нейронных сетей, интересный материал;
- https://eprints.soton.ac.uk/397453/1/Final%2520PhD%2520thesis%2520-%2520Ashley%2520Booth.pdf - научная работа по теме машинного обучения в сфере финансовых рынков.
-
Интервью С Главой Цмит Иваном Мошкиным
19 Oct, 24 -
Сталкер. 2 — Bethesda Продолжает Проект
19 Oct, 24 -
О Стандарте Displayport 1.2
19 Oct, 24