Как научиться писать ботов для криптобиржи
Перейти к содержимому

Как научиться писать ботов для криптобиржи

  • автор:

Боты для торговли криптовалютой: гайд для новичков

Внимание! Данная статья носит исключительно информационный характер и не содержит инвестиционных рекомендаций и советов по торговле.

Статья подготовлена командой терминала для торговли криптовалютой CScalp. Чтобы получить CScalp бесплатно, оставьте e-mail в форме ниже

Оглавление

  • Что такое боты криптовалют?
  • Виды ботов для торговли криптовалютой
  • Что нужно учитывать при выборе криптобота
  • Нужен ли новичку бот для торговли криптовалютой?
  • Каталог ботов для торговли на криптовалютных биржах
  • Заключение

Что такое боты криптовалют?

Криптовалютный бот – это программный код для автоматизированной торговли. Робот исполняет условия, заранее заданные пользователем. Боты используются для того, чтобы освободить трейдера от монотонной механической работы. Нередко они рассматриваются как инструменты для получения пассивного заработка.

Виды ботов для торговли криптовалютой

Существует несколько видов ботов криптовалют. Начнем с самых распространенных:

  1. Простые торговые боты. Действуют в рамках предустановленной стратегии и принимают решение о покупке/продаже актива на основании индикаторов технического анализа.
  2. Продвинутые боты. Роботы без предустановленной стратегии или частично настроенные. Их функционал позволяет трейдеру самостоятельно настроить стратегию.
  3. Скриптовые боты. Криптовалютные боты с открытым исходным кодом. Требуют от трейдера навыков программирования.
  4. Сигналы боты. Такие боты не выполняют торговые операции. Они собирают данные из разных источников и формируют торговые рекомендации “продавать или покупать».

Рассмотрим менее распространенных типы ботов для торговли криптовалютой. К ним относятся:

  1. Арбитражные боты. Работают на разнице цены между биржами или между торговыми парами. Чем больше однотипных арбитражных роботов на рынке, тем меньше их эффективность. Поэтому качественных арбитражных роботов найти в открытом доступе практически невозможно.
  2. Статистический арбитраж. Роботы анализируют рынок в поиске недооцененных и переоцененных криптовалют. Их задача – выявить закономерности разных монет и определить корреляцию между ними. Как правило, такие боты криптовалют используются хедж-фондами и недоступны для рядовых трейдеров.

Также существуют боты-маркетмэйкеры. Они создают ликвидность рынка через выставление заявок в обе стороны стакана (книги заявок) – на покупку и продажу. Такие боты предназначены для работы с крупными объемами.

Что нужно учитывать при выборе криптобота

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

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

Нужен ли новичку бот для торговли криптовалютой?

Новичок должен понимать, что стабильно зарабатывающих автономных ботов криптовалют не существует. Идея “запустил и забыл” не работает – легких денег не бывает. Трейдер должен уметь настраивать торгового робота или самостоятельно писать алгоритмические стратегии. Только тогда он сможет создать прибыльную стратегию.

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

Каталог ботов для торговли на криптовалютных биржах

Статья в разработке…

Заключение

Боты криптовалют облегчают торговый процесс, но не гарантируют стабильной прибыли. Хорошие торговые роботы требуют индивидуальной настройки. Для этого трейдер должен понимать рыночные механизмы, что приходит с опытом. Одной теории для эффективного запуска бота не хватит. Если трейдер хочет зарабатывать на криптоботах, он должен научиться торговать самостоятельно, без помощи алгоритмов. С опытом и пониманием рынка можно переходить к ботам криптовалют.

Платформы для торговли на криптовалютных биржах вы найдете в нашем каталоге.

Больше интересного в блоге CScalp!

Рекомендуем начинающим трейдерам ознакомиться с нашим бесплатным курсом скальпинга. Также вы можете использовать наши бесплатные сигналы и анализировать торговую историю в Дневнике трейдера.

Как создать умных ботов для торговли: гайд по платформе RevenueBot

Рынок цифровых активов непрерывно развивается, и с ним растет и спрос на инновационные инструменты для успешной торговли. В криптовалютной индустрии существует множество сервисов, но лишь некоторые из них действительно выделяются своей эффективностью и удобством использования. RevenueBot — это сервис, который предлагает уникальные возможности для создания и управления торговыми ботами.

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

Что такое RevenueBot

RevenueBot — это сервис, предоставляющий возможность создания и управления торговыми ботами для автоматизации процесса трейдинга на криптовалютных биржах. Этот сервис обладает передовыми функциональными возможностями, которые позволяют трейдерам максимизировать потенциальную прибыль и снизить риски.

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

RevenueBot также предоставляет пользователям гибкую настройку торговых стратегий. Трейдеры могут определить свои собственные критерии для сигналов покупки и продажи, установить уровни стоп-лосса и тейк-профита, а также определить правила управления капиталом. Это позволяет трейдерам создавать торговые боты, отвечающие их индивидуальным инвестиционным стратегиям.

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

Важно отметить, что RevenueBot интегрируется с популярными криптовалютными биржами, такими как Binance,Bybit,Gate.io,Bitget и другими. Это позволяет трейдерам связывать свои биржевые аккаунты с сервисом и выполнять торговые операции непосредственно через платформу RevenueBot.

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

Регистрация на платформе

Перед тем, как приступить к процессу регистрации, необходимо перейти на официальный сайт платформы.

После загрузки главной страницы, вы увидите выделенную вкладку с надписью «Регистрация». Просто щелкните на ней, чтобы продолжить.

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

Затем следует ввести API-ключ выбранной платформы и придумать имя для вашего бота.

Если вы хотите быстро начать и создать торгового бота, вы можете воспользоваться функцией «Быстрый старт», которая предоставит вам полезные подсказки. Однако вы также можете отказаться от помощи и настроить все самостоятельно, просто перейдя в раздел «Боты».

На платформе вы можете ознакомиться с предложениями от других пользователей и приобрести готовую конфигурацию бота, доступные в «Маркетплейсе». Там вы найдете широкий выбор ботов, из которых можно выбрать наиболее подходящий вариант.

В случае, если вам потребуется помощь опытных пользователей, вы можете обратиться к разделу с наставниками. Там собраны пользователи разного уровня, и, естественно, их рейтинг будет влиять на стоимость получения советов или помощи. Минимальная плата за услугу «Наставничество» составляет 0.001 BTC. После отправки вашего вопроса выбранному наставнику, стоимость его услуги будет временно заморожена на вашем аккаунте. Как только наставник поможет вам решить проблему, плата будет автоматически переведена ему.

Комиссии сервиса

Начинать использование торгового бота можно абсолютно бесплатно. Платформа взимает комиссию в размере 20% с прибыльных сделок, но она ограничена суммой в $50 в месяц. Как только достигается этот порог, дальнейшие списания приостанавливаются до начала следующего месяца.

Важно отметить, что боты осуществляют торговлю с использованием внутреннего баланса, не имея прямого доступа к счетам на бирже. Это означает, что комиссия не будет удерживаться напрямую с биржи. У каждого пользователя платформы RevenueBot есть свой собственный баланс на сервисе, с которого будет производиться учет комиссии. В случае, если баланс пользователя не позволяет покрыть комиссию, он может стать отрицательным. В такой ситуации пользователю предоставляется три дня на погашение задолженности. В течение этого периода ограничения на работу ботов не применяются. Однако, если пользователь не пополнит свой счет до окончания установленного срока, работа ботов будет приостановлена.

Возможности платформы

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

  • Мониторинг и аналитика: RevenueBot предоставляет мониторинг и аналитические инструменты, которые позволяют трейдерам следить за производительностью своих торговых ботов в режиме реального времени. Вы можете отслеживать выполненные сделки, прибыльность стратегий, анализировать статистику и принимать информированные решения для оптимизации торговли.
  • Автоматическое переключение торговых пар: Для максимизации прибыли и избежания простоев в периоды низкой волатильности, бот оснащен уникальным механизмом автоматического переключения торговых пар. С помощью специального анализатора волатильности, бот определяет оптимальную торговую пару, основываясь на текущих изменениях цен на рынке. Это позволяет ему всегда оставаться активным и совершать прибыльные сделки, даже в условиях неподвижности цены. Механизм автоматического переключения торговых пар значительно увеличивает количество успешных операций, обеспечивая трейдерам непрерывный поток дохода.
  • Автоматическое переворачивание алгоритмов: Для минимизации рисков в торговле были разработаны функции автоматического изменения алгоритма бота. Когда цена движется в неправильном направлении, вступает в действие второй бот, работающий на противоположном алгоритме. Таким образом, достигается автоматическая смена алгоритма бота на оптимальный для текущего тренда цены торговой пары, позволяя эффективно адаптироваться к изменяющимся условиям рынка и следовать тренду цены. Это инновационное решение обеспечивает надежное хеджирование рисков и повышает успешность торговых операций.
  • Бэктестинг и симуляция: RevenueBot предлагает возможность проводить бэктестинг и симуляцию стратегий на исторических данных. Это позволяет трейдерам оценить производительность своих стратегий на прошлых данных, прежде чем запустить их в реальном режиме торговли.
  • У платформы гибкие настройки и параметры, которые позволяют трейдерам точно определить условия для входа и выхода из сделок. Вы можете настроить различные индикаторы и условия сигналов, определить уровни стоп-лосса и тейк-профита, а также управлять размером позиции и риском.
  • Техническая поддержка: RevenueBot имеет круглосуточную техническую поддержку для пользователей. Если у вас возникли вопросы или проблемы, вы можете обратиться к команде поддержки, чтобы получить необходимую помощь и решить любые технические вопросы.
  • Интеграция TradingView. Платформа, завоевавшая широкую популярность среди трейдеров, благодаря своей простоте в использовании, высокой точности предоставляемых данных и обширному набору торговых индикаторов.
  • LONG и SHORT: В зависимости от заданных параметров, бот будет применять алгоритмы Long и Short. Long — бот покупает монету по одной цене, чтобы продать ее спустя время по более высокой стоимости. Short — бот сначала продает монету, затем покупает ее по более низкой цене.
  • Сетка страховочных ордеров в трейдинге: Бот использует подход при торговле, называемый «сетка страховочных ордеров». Вместо использования всего депозита сразу, бот разделяет его на несколько частей и размещает заранее рассчитанную сетку на бирже.
  • Фильтры старта бота: Для определения оптимального момента начала торговли, бот использует популярные индикаторы, такие как RSI, CCI и Полосы Боллинджера. Настраивая фильтры старта, вы задаете значение индикаторов, при достижении которых бот начнет торговлю.
  • Торговля фьючерсами: С помощью ботов также можно торговать фьючерсами на крипту. Кредитное плечо дает возможность открывать большие позиции с небольшими вложениями. Некоторые торговые пары могут использовать кредитное плечо до x125.
  • Реферальная программа: Пользователи платформы могут заработать с помощью реферальной программы 30% от прибыли приглашенного пользователя.

Кому подойдет RevenueBot

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

Начинающим трейдерам доступны следующие полезные функции:

  • Сервис предоставляет поддержку при настройке торгового бота, помогая новичкам освоиться в процессе;
  • В случае возникновения проблем, пользователи могут обратиться за помощью к опытным наставникам или службе поддержки, чтобы получить решения и советы;
  • Если вы предпочитаете сэкономить время на настройке бота, RevenueBot предлагает маркетплейс, где можно найти готовые боты, соответствующие вашим требованиям и стратегиям.

Опытным трейдерам предлагаются более продвинутые возможности:

  • RevenueBot позволяет заниматься трейдингом с использованием бессрочных фьючерсов на криптовалюты, открывая новые перспективы для опытных трейдеров;
  • Опытные трейдеры могут не только торговать, но и стать наставниками, предоставляя свои знания и получая дополнительную прибыль;
  • Присутствие реферальной программы дает возможность трейдерам получать дополнительный доход за привлечение новых пользователей;
  • Более опытные трейдеры могут глубже погрузиться в настройки бота, осуществлять более точную настройку стратегий и максимизировать свою прибыль.

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

Пользователям, которые зарегистрируются по этой ссылке и пополнят свой аккаунт, насчитается бонус 20% от пополнения.

Как работают торговые боты в трейдинге криптовалюты

Как работают торговые боты в трейдинге криптовалюты

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

Что такое торговый бот

Давайте сначала разберемся с самим обозначением «торговый бот». По сути, это специальная программа, работающая по заданным настройкам, которая подключается к терминалу на бирже и осуществляет установленные для нее действия по триггерам. Создатель бота самостоятельно выбирает условия, при которых он будет входить в сделки, выходить из них или просто давать сигналы.

Самостоятельный анализ графиков пары перед использованием торгового бота

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

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

Какие бывают виды работы с торговым ботом

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

  • Скальпинг. Пожалуй, самый популярный тип трейдинга для бота, используемый на многих биржах и платформах. При таком типе торговли сделки открываются много раз за несколько часов, за всеми ними нужно следить, устанавливать тейк-профит и стоп-лосс. Вместо этого можно задать автоматизацию через бота, указав для него количество сеток и диапазон, в котором он будет работать. Все сделки будут открываться и закрываться без участия трейдера.
  • Дейтрейдинг. В этом случае сделок не так много, но все же они открываются и закрываются на протяжении дня. Здесь работает такой же тип автоматизации через выбранного трейдером бота.
  • Свинг и среднесрочный трейдинг. Эти типы трейдинга подразумевают открытие сделок на несколько дней, недель или даже месяцев. Боты в этом случае используются реже, но все же такой подход может быть использован.
  • Инвестиции на длительное время. Для длительного инвестирования боты практически не используются, поскольку не имеют значительных преимуществ. Вы самостоятельно всегда сможете зайти и оценить состояние рынка, чтобы понять, в какие моменты докупить или вывести монету.

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

Как подобрать и где можно использовать ботов

Программ для торговли большое количество. Их все можно использовать на любой бирже с поддержкой API. Есть специальные сайты, предоставляющие свои услуги по подключению ботов к одной или сразу нескольким биржам. Вы создаете учетную запись, подключаете туда свои трейдерские счета, выбираете бота, задаете настройки и начинаете автоматическую торговлю. Правда, чаще всего для этого сначала понадобится оформить подписку на бота, поскольку такие виды услуг практически не оказываются бесплатно.

Ознакомление с сайтами по предоставлению услуг торговых ботов

Не все боты работают одинаково, у каждого из них есть своя эффективность. Проверяется она при помощи теста, который называется «BackTesting». В этом случае боту доверяют работу с графиком прошлого и смотрят, как он будет реагировать на ситуации. Осуществляется симуляция реальной торговли, после чего уже создатели или покупатели бота делают выводы о его эффективности и решают, использовать его в своих целях или нет.

Читайте также

Что такое копитрейдинг

Какие бывают криптовалютные кошельки: типы, свойства, особенности

Простой пример использования торгового бота

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

  1. Для перехода к разделу с торговыми ботами на данной бирже разверните меню «Торговать» и найдите в нем пункт с соответствующим названием. Переход к разделу на сайте для создания торгового бота на бирже ByBit
  2. Как я уже и сказал выше, ByBit позволяет использовать уже готовые боты, которые за время своей активности принесли большую прибыль. Вы видите суточный и недельный рейтинг. При копировании такого бота вы полностью сохраняете его настройки, но вводите свою сумму для инвестирования. Просмотр самых прибыльных настроек для создания торгового бота на бирже ByBit
  3. Если нужно создать своего бота, кликните по «Создать еще». Кнопка для перехода к ручным настройкам для создания торгового бота на бирже ByBit
  4. Теперь приступите к его настройкам. Для начала указывается одна из доступных торговых пар, а затем задается минимальный и максимальный диапазон цен. Исходя из этого, бот и будет предпринимать решения по покупке и продаже, отталкиваясь от количества сеток. Выбор пары и диапазона для создания торгового бота на бирже ByBit
  5. Количеством сеток называется число сделок, которые будут открыты в указанном вами диапазоне. Бот может закупаться на падении несколько раз, усредняя цену, и так же продавать, минимизируя риски. Ввод количества сеток для создания торгового бота на бирже ByBit
  6. Остается только указать объем инвестиций, то есть сумму, которой сможет управлять бот для открытия сделок во всех своих сетках. После этого подтвердите создание бота и начните наблюдать за тем, как он работает. Ввод депозита для создания торгового бота на бирже ByBit
  7. ByBit отображает довольно развернутую статистику, показывая доходность, количество сделок и время работы бота. Просмотр общего состояния созданного бота на бирже ByBit
  8. Если открыть детальные настройки программы и перейти в историю, вы увидите, в какие моменты бот осуществляет покупку и продажу токена и сколько раз это уже было выполнено. Просмотр истории сделок после создания торгового бота на бирже ByBit

Бот на ByBit работает таким образом, что если цена опускается ниже установленного минимума, он просто прекращает свою работу, а у вас остаются купленные им токены. Это минимизирует риски, но все же монеты остаются у вас, и они могут обесцениться. В этом случае вы уже самостоятельно принимаете решение, обменивать их по текущему курсу или ждать, пока бот вернется в диапазон и начнет торговать.

Плюсы и минусы торговых ботов

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

Плюсы:

  • Автоматическая работа с большим количеством сделок. Вы можете создать множество ботов для разных пар со своими настройками и количеством сеток. При этом все они будут работать автоматически, а вы в это время сможете заниматься другими делами.
  • Реагирование на цены. Бот не отвлекается на какие-то посторонние дела и не «отходит» от компьютера. Он всегда следит за ценой и моментально реагирует на любые изменения, если это прописано в его поведении. Он работает быстрее, чем обычный человек, обеспечивая наибольшее количество суточных сделок.
  • Круглосуточная работа. Даже если вы выключите компьютер, уйдете спать или уедете в отпуск, бот продолжит работать и будет делать это до тех пор, пока у него на балансе есть средства и цена на пару держится в указанном диапазоне.
  • Отсутствие человеческого фактора. Некоторые воспринимают трейдинг не как работу, а как азартную игру. В этом случае трейдер подвержен эмоциям, может очень быстро слить свой депозит, предпринимая необдуманные решения. Бот не будет отклоняться от заданной стратегии.

Минусы:

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

Для некоторых трейдеров бот действительно станет той самой кнопкой «бабло», которую нужно только нажать, и прибыль полетит в карманы. Однако хороших результатов удастся достичь только тем, кто самостоятельно разбирается в рынке и настраивает ботов под себя, рассчитывая на свои значения, технический анализ и другие параметры. Либо можно быть просто удачливым и купить программу, которая в моменте покажет большую прибыль (но это не гарантируется на длительной дистанции).

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

Пошаговое руководство по созданию торгового бота на любом языке программирования

У меня нет квалификации, позволяющей давать советы, касающиеся инвестиций, законов, или чего-то подобного. Я и не пытаюсь этого делать. Цель руководства заключается в том, чтобы, в учебных целях, рассказать о программировании торговых ботов. Вы должны понимать, что, создав бота, вы несёте ответственность за принимаемые им решения, за выполняемые им инвестиционные операции, за те риски, которые сопряжены с торговой деятельностью. Я не могу отвечать за те решения, которые вы примете после прочтения данного материала. Помните, что боты способны потерять большие деньги, поэтому используйте их с осторожностью.

Часто можно встретить статьи, которые называются примерно так: «10 проектов, которые нужно реализовать программисту». Часто в списки этих статей входят торговые боты. Я считаю, что разработка торгового бота — это достойное вложение сил. Поэтому я решил уделить некоторое время тому, чтобы написать учебное руководство об этом.

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

Поэтом я расскажу о том, что полезно знать для разработки торгового бота, и о том, что для этого нужно (от работы с биржами до реализации простой торговой стратегии). Здесь же я коснусь вопросов, связанных с архитектурой и внутренним устройством простых торговых ботов, с идеями, которые лежат в их основе.

Я буду демонстрировать примеры, написанные на псевдокоде. Поэтому вы сможете читать это руководство и тут же писать собственного бота на выбранном вами языке программирования.

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

Вы выберете оружие, а я научу вас владеть этим оружием.

Шаг 1. Выбираем оружие

На первом шаге этого руководства вы выберете язык программирования, которым будете пользоваться. Этот вопрос вы должны решить самостоятельно.

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

Шаг 2. Ищем поле битвы

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

Итак, вашим первым шагом будет принятие решения о том, чем именно вы собираетесь торговать (акциями, валютами, криптовалютами), и решения о том, где именно вы будете торговать.

Если говорить о биржевых активах, то я посоветовал бы обратить внимание на криптовалюты. Причина такой рекомендации заключается не в том, что я являюсь сторонником блокчейн-технологий и криптовалют (я полностью открыт в этом вопросе), а всего лишь в том, что криптовалютные рынки работают круглые сутки 7 дней в неделю.

Более «традиционными» активами можно торговать только в определённые временные промежутки, и часто — только по будним дням. Рынки акций, например, обычно открыты с 9 утра до 4 вечера и по выходным они не работают. Рынки FOREX, хотя и могут работать круглосуточно, обычно закрыты в выходные.

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

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

  1. У вас должна быть законная возможность торговать на выбранной бирже и работать с предлагаемыми ей торговыми инструментами. Если говорить о криптовалютах, то в некоторых странах торговля ими запрещена. Учитывайте это, выбирая инструменты и биржу.
  2. Биржа должна обладать API, который доступен её клиентам. Нельзя создать торгового бота, который не отправляет запросы к бирже и не получает от неё ответов.

И ещё, что так же важно, как и всё остальное, я порекомендовал бы оценить объём торгов биржи. Биржи с низкими объёмами имеют свойство «отставать» от ценовых движений. На них, кроме того, сложнее бывает выполнять лимитные заявки (подробнее об этом мы поговорим ниже).

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

Шаг 3. Строим лагерь

Если биржа — это поле битвы, то теперь мы поговорим о том месте, из которого будем отправлять на поле битвы свои войска. Кстати, мне, пожалуй, пора завязывать с такими аналогиями.

Здесь я говорю о сервере. Код бота должен выполняться на некоем сервере, что позволит боту отправлять запросы к API биржи.

Во время тестирования бота, естественно, в роли сервера может выступать ваш компьютер. Но если вам нужно, чтобы бот работал бы постоянно, обычный компьютер — это, определённо, не лучший выбор.

Тут у меня есть два предложения:

  1. Роль сервера может выполнять Raspberry Pi (этот подход интереснее).
  2. Сервером может быть некая облачная служба (а этот подход лучше).

Но большинство создателей ботов, вероятно, остановят свой выбор на каком-нибудь провайдере облачных услуг вроде AWS, Azure, GCS или Digital Ocean.

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

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

Шаг 4. Создаём бота

А вот теперь начинается самое интересное. Но, прежде чем приступать к этой части нашего проекта, проверьте, выполнено ли следующее:

  1. Вы зарегистрировались на бирже и получили необходимые разрешения на работу с ней.
  2. У вас есть возможность работать с API биржи, у вас имеется ключ API.
  3. Вы выбрали хостинг для бота.

▍Простейший бот

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

У нашего бота будут некоторые ограничения:

  1. Бот сможет пребывать лишь в одном из двух состояний: BUY (покупка) или SELL (продажа). Он не будет постоянно размещать заявки на покупку или на продажу по разным ценам. Если последней операцией была продажа, то следующей операцией, которую попытается выполнить бот, будет покупка.
  2. Бот будет использовать фиксированные пороговые значения для принятия решений о покупке и продаже. Более интеллектуальный бот может быть способен самостоятельно настраивать подобные значения, основываясь на различных индикаторах, но стратегия и ограничения нашего бота будут задаваться вручную.
  3. Он будет торговать только одной валютной парой. Например — BTC/USD.

▍Механизм принятия решений

Вот простая диаграмма, дающая общий обзор функционирования нашего бота.

А теперь можно приступать к планированию архитектуры бота.

Нам, для начала, понадобится переменная, в которой будут храниться сведения о том, в каком именно состоянии находится бот в текущий момент. Это либо BUY, либо — SELL. Для хранения подобных сведений хорошо подойдёт логическая переменная или перечисление.

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

Например, если я купил что-то по цене в $100, а в настоящий момент цена составляет $102, то мы имеем дело с увеличением цены на 2%. Если порог для операции SELL установлен на однопроцентное увеличение цены, то бот, увидев эти 2%, продаст актив, так как он уже получил прибыль, превышающую заданное нами пороговое значение.

В нашем случае подобные значения будут константами. Нам понадобится 4 таких значения — по 2 на каждое состояние бота.

▍Пороговые значения для выполнения операции BUY (если бот находится в состоянии SELL)

  • DIP_THRESHOLD : бот выполняет операцию покупки в том случае, если цена уменьшилась на значение, большее, чем задано DIP_THRESHOLD . Смысл этого заключается в реализации стратегии «покупай дёшево, продавай дорого». То есть, бот будет пытаться купить актив по заниженной цене, ожидая роста цены и возможности выгодной продажи актива.
  • UPWARD_TREND_THRESHOLD : бот покупает актив в том случае, если цена выросла на значение, превышающее то, что задано этой константой. Этот ход противоречит философии «покупай дёшево, продавай дорого». Его цель заключается в том, чтобы выявить восходящий тренд и не пропустить возможность покупки до ещё большего роста цены.

Если мы выполнили операцию SELL в момент, отмеченный на рисунке красным маркером SELL, то после этого бот, принимая решение о выполнении операции BUY, будет руководствоваться пороговыми значениями DIP_THRESHOLD и UPWARD_TREND_THRESHOLD .

Если цена уйдёт ниже нижней зелёной линии или выше верхней зелёной линии, мы выполним операцию BUY. В ситуации, показанной на рисунке, цена ушла выше верхнего предела. Поэтому мы, руководствуясь значением UPWARD_TREND_THRESHOLD , выполнили операцию BUY.

▍Пороговые значения для выполнения операции SELL (если бот находится в состоянии BUY)

  • PROFIT_THRESHOLD : бот продаёт актив в том случае, если цена стала выше цены, вычисленной на основе этого значения, так как ранее актив был куплен по более низкой цене. Именно так мы получаем прибыль. Мы продаём актив по цене, которая выше той, что была в момент его покупки.
  • STOP_LOSS_THRESHOLD : в идеальной ситуации мы хотели бы, чтобы бот продавал бы активы только тогда, когда продажа приносит нам прибыль. Но, возможно, произошло сильное движение рынка вниз. В такой ситуации мы решим выйти из сделки до того, как понесём слишком большие убытки, и позже купить актив по более низкой цене. Это пороговое значение используется для закрытия позиции с убытком. Цель этой операции — предотвращение более сильных потерь.

Тут показана ситуация, когда там, где стоит маркер BUY, была сделана покупка. После этого цена достигает предела, заданного PROFIT_THRESHOLD , и мы продаём актив с прибылью. Именно так боты зарабатывают.

Теперь, после того, как у нас сформировалось общее понимание того, как функционирует бот, пришло время рассмотреть псевдокод.

▍Вспомогательные функции для работы с API

Первое, что понадобится боту, это возможности обмена данными с API биржи. Эти возможности мы реализуем с помощью нескольких вспомогательных функций:

FUNCTION getBalances(): DO: Выполнить GET-запрос к API биржи для получения сведений о балансах RETURN: Сведения о балансах FUNCTION getMarketPrices(): DO: Выполнить GET-запрос к API биржи для получение текущей цены актива RETURN: Текущая цена актива FUNCTION placeSellOrder(): DO: 1. Вычислить количество актива для продажи (на основе некоего заданного порогового значения, например, 50% общего баланса) 2. Отправить POST-запрос к API биржи для выполнения операции SELL RETURN: Цена совершения сделки FUNCTION placeBuyOrder(): DO: 1. Вычислить количество актива для покупки (на основе некоего заданного порогового значения, например, 50% общего баланса) 2. Отправить POST-запрос к API биржи для выполнения операции BUY RETURN: Цена совершения сделки // Необязательная функция, которая предназначена для // получения подтверждения выполнения операций FUNCTION getOperationDetails(): DO: Выполнить GET-запрос к API биржи для получения сведений об операции RETURN: Сведения об операции 

Вышеприведённый код должен быть понятен без особых объяснений. Но, реализуя этот функционал, вы должны точно знать о том, какие именно данные нужно передать API при выполнении POST-запросов, инициирующих покупку или продажу чего-либо.

Часто, например, когда торгуют парой XAU/USD (золото и доллары США), при выполнении запроса можно указать или то, сколько золота нужно купить, или то, сколько долларов нужно продать. При выполнении подобных запросов очень важно чётко понимать смысл производимых действий.

▍Главный цикл бота

Теперь, когда мы подготовили вспомогательные функции, приступим к описанию действий бота. Для начала нам нужно создать бесконечный цикл, выполняемый с некоторой периодичностью. Предположим, нам нужно, чтобы бот пытался бы выполнить некую операцию каждые 30 секунд. Вот как может выглядеть такой цикл:

FUNCTION startBot(): INFINITE LOOP: attemptToMakeTrade() sleep(30 seconds) 

Далее — настроим переменные и константы, о которых мы говорили выше, и напишем логику бота, позволяющую ему принимать решения. В результате, помимо вспомогательных функций и главного цикла, основной код бота будет выглядеть так:

bool isNextOperationBuy = True const UPWARD_TREND_THRESHOLD = 1.50 const DIP_THRESHOLD = -2.25 const PROFIT_THRESHOLD = 1.25 const STOP_LOSS_THRESHOLD = -2.00 float lastOpPrice = 100.00 FUNCTION attemptToMakeTrade(): float currentPrice = getMarketPrice() float percentageDiff = (currentPrice - lastOpPrice)/lastOpPrice*100 IF isNextOperationBuy: tryToBuy(percentageDiff) ELSE: tryToSell(percentageDiff) FUNCTION tryToBuy(float percentageDiff): IF percentageDiff >= UPWARD_TREND_THRESHOLD OR percentageDiff = PROFIT_THRESHOLD OR percentageDiff  

Обратите внимание на то, что пороговые значения в этом коде выбраны произвольным образом. Вам следует подобрать эти значения самостоятельно, в соответствии с применяемой вами торговой стратегией.

Если вышеприведённый код совместить со вспомогательными функциями и с главным циклом бота, который может быть представлен чем-то вроде функции main , это будет означать, что теперь в нашем распоряжении имеется очень простой работающий бот, обладающий основными возможностями, характерными для ботов.

На каждой итерации цикла бот будет проверять своё текущее состояние (BUY или SELL) и будет пытаться выполнить торговую операцию, используя при анализе текущей ситуации жёстко заданные в его коде пороговые значения. Затем, если операция будет выполнена, бот обновит сведения о своём текущем состоянии и данные о цене, по которой была совершена последняя операция.

Шаг 5. Улучшаем бота

Базовая архитектура нашего бота готова. Но мы, вероятно, можем его немного улучшить, оснастив его некоторыми дополнительными возможностями.

▍Журналы

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

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

[BALANCE] USD Balance = 22.15$ [BUY] Bought 0.002 BTC for 22.15 USD [PRICE] Last Operation Price updated to 11,171.40 (BTC/USD) [ERROR] Could not perform SELL operation - Insufficient balance 

То, что попадает в файл журнала, снабжается отметками времени. В результате, если я подключаюсь к серверу раз в день, и вижу, например, сообщение об ошибке, я могу узнать о том, когда именно произошла ошибка, и о том, чем бот занимался всё это время.

Оснастить бота подобными возможностями — значит написать функцию, которую можно назвать createLog . Эта функция должна вызываться на каждом шаге главного цикла бота. Вот как может выглядеть эта функция:

FUNCTION createLog(string msg): DO: 1. Вывести msg в терминал 2. Записать msg в файл журнала, добавив отметку времени 

▍Идентификация трендов

Главная цель нашего бота заключается в том, чтобы дёшево покупать активы и продавать их, получая прибыль. Но в его коде есть две константы, символизирующие два пороговых значения, которые отчасти этой цели противоречат. Это UPWARD_TREND_THRESHOLD и STOP_LOSS_THRESHOLD .

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

То, как сейчас устроен анализ цены, очень сильно нас ограничивает. Анализ цены, проводимый путём сравнения пары показателей, далёк от механизма, позволяющего выявлять тренды.

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

Нам нужно лишь организовать наблюдение за большим количеством ценовых значений, чем раньше. А раньше мы хранили сведения лишь об одном ценовом показателе — о стоимости актива на момент последней операции ( lastOpPrice ). Можно, например, хранить сведения о ценах за 10 или 20 последних итераций цикла бота и сравнивать с текущей ценой их, а не только lastOpPrice . Это, вероятно, позволит лучше идентифицировать тренды, так как при таком подходе мы можем уловить краткосрочные колебания цены, а не колебания, происходящие за долгое время.

▍База данных?

Простому боту, на самом деле, база данных не нужна. Ведь он оперирует весьма небольшими объёмами данных и хранит всю необходимую ему информацию в памяти.

Но что произойдёт в том случае, если, например, бот будет аварийно остановлен? Как ему узнать, без вмешательства человека, о том, каким было значение lastOpPrice ?

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

При таком подходе бот, запускаясь, может не использовать значения, жёстко заданные в коде. Вместо этого он обращается к сохранённым данным и продолжает работу с того места, где она была прервана.

В зависимости от того, насколько простой, по вашему мнению, должна быть эта «база данных», вы можете даже решить использовать в таком качестве обычные .txt- или .json-файлы, так как, в любом случае, речь идёт о хранении весьма ограниченного набора данных.

▍Панель управления

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

Это потребует наличия у бота собственного серверного API, предназначенного для управления его функционалом.

Подобный подход, например, позволит легко менять пороговые значения.

Существует множество шаблонов панелей управления, а значит вам, если вы решите сделать что-то подобное, даже не придётся создавать такую панель с нуля. Взгляните, например, на Start Bootstrap и Creative Tim.

▍Тестирование стратегий на исторических данных

Многие биржи дают клиентам доступ к историческим ценовым данным. Кроме того, если вам нужны такие данные, их обычно несложно достать.

Их использование весьма полезно для тестирования торговых стратегий перед их реальным применением. Это позволяет запустить симуляцию, используя исторические данные и «ненастоящие» деньги. Благодаря этому можно узнать о том, насколько удачно показали бы себя пороговые значения, и, если нужно, поменять эти значения.

▍Дополнительные сведения о пороговых значениях и заявках

При размещении заявок нужно учитывать несколько моментов.

Во-первых, нужно знать о том, что существуют два типа заявок: лимитные и рыночные. Если вы совсем ничего об этом не знаете — вам, определённо, стоит почитать специальную литературу. Я тут объясню эти идеи буквально в двух словах.

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

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

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

Кроме того, к таким заявкам обычно применяются более низкие комиссии, чем к рыночным. Это так из-за того, что к рыночным заявкам обычно применимо то, что называется «taker fee» («комиссия получателя»), а к лимитным заявкам — то, что обычно называется «maker fee» («комиссия создателя»).

Причины, по которым эти комиссии называются именно так, заключаются в том, что тот, кто размещает рыночную заявку, просто принимает («taking») текущую рыночную цену. А лимитные заявки находятся за пределами рыночных цен, они добавляют рынку ликвидности и, в результате, «создают рынок», за что их создатели вознаграждаются более низкими комиссиями.

Обратите внимание на то, что бот, который мы тут рассматриваем, лучше всего подходит для работы с рыночными заявками.

И, завершая разговор о комиссиях, хочу отметить, что задавая значение PROFIT_THRESHOLD нужно учитывать и комиссии.

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

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

Поразмыслим об этом, исходя из предположения о применении комиссий, не зависящих от суммы заявки и от вида операции. Итак, комиссия за покупку актива на $100,00 составляет $0,50. Если этот актив будет продан за $100,75 и при этом будет взята такая же комиссия, то окажется, что валовая прибыль составляет 0,75%. Но, на самом деле, тут мы имеем дело с чистым убытком в 0,25%.

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

Итоги

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

Я исходил из предположения о том, что читатели этого материала знают о том, как, пользуясь выбранным ими языком программирования, выполнять HTTP-запросы. Поэтому в детали программирования я не вдавался, сосредоточившись на других вещах.

Я рассказал вам о разработке торговых ботов всё, что хотел. Надеюсь, теперь вы сможете создать собственного бота.

А вы пользуетесь торговыми ботами?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *