Page cover image

Основные концепции

Что это такое

BotBrains - это no-code платформа для разработки торговых роботов. Это значит, что вы можете создавать торговых роботов без программирования.

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

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

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

Категории блоков

Ниже представлена таблица категорий доступных блоков. Полный список всех доступных блоков представлен в статье "Список блоков".

Категория

Описание

События

Блоки активируются, когда наступает определенное торговое событие, например, изменение цены графика или изменение стакана цен.

Условие

Блок условия выполняет проверку.

Цикл

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

Индикаторы

Индикатор - один из основных инструментов технического анализа. В BotBrains представлен широкий спектр индикаторов: от простых объемов до облаков Ишимоку.

Анализ графика

Например, можно получать информацию о конкретной свече, получать максимальную/минимальную цену за определенный промежуток времени. Также можно рисовать вертикальные и горизонтальные линии на графике.

Анализ стакана

Получение информации о спреде и полях стакана.

Транзакции

Выставление рыночных, лимитных и стоп ордеров. Снятие лимитных и стоп ордеров. Закрытие позиций.

Переменные

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

Звуки

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

Получение информации

Получение информации о: счете, торговой сессии, активных лимитных/стоп ордерах, символе, времени, исторических лимитных/стоп ордерах, исторических сделках.

Перечисления

Перебор списка символов, перебор списка активных лимитных и стоп ордеров. Перебор исторических лимитных/стоп ордеров и сделок.

Телеграм

Отправка сообщений и скриншотов графиков себе в телеграм.

Интерфейс

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

Предопределенные константы

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

Отладка

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

Прочие блоки

Закрытие терминала, полное прекращение работы робота, временное приостановление работы робота. Лог в файл, уведомление в терминале, комментарий на графике.

Математические операции

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

Логические операторы

Есть логические операторы для построения условий: И, ИЛИ, НЕ.

Телепорт

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

Блоки приведения к типу

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

Выбор переменной или константы

Выбор переменной или константы.

Ввод значения

Ввод значения.

Связывание блоков

Блоки можно комбинировать путем связывания. Откроем редактор BotBrains и перетащим на схему 2 блока: "таймер" и "сообщение в журнал", затем проведем связь между этими двумя блоками:

Откроем настройки блока "Таймер":

По умолчанию блок "Таймер" вызывается 1 раз в секунду - вы можете изменять параметры блоков, чтобы обеспечить требуемое поведение.

Откроем настройки блока "Сообщение в журнал":

У этого блока также всего один параметр: "текст сообщения".

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

Генерация кода робота

Чтобы сгенерировать код робота, нужно нажать на клавишу "~" (русская буква ё). После генерации кода перейдем во вкладку "Код":

Код нашего простого торгового робота был успешно сгенерирован и мы можем посмотреть на финальный результат.

Установка зависимостей

Чтобы запустить торгового робота, сделанного на BotBrains, нужно установить зависимости:

  • Библиотека botbrains_lib.ex5

  • Включаемый файл botbrains_lib.mqh

  • Включаемый файл botbrains_constants.mqh

  • Файлы звуков

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

Перейдите в терминал и откройте встроенный редактор кода MQL5, для этого нажмите на кнопку "Редактор MetaQuotes Language":

В редакторе кода MQL5 в окне "Навигатор" нажмите правой кнопкой мыши по папке "MQL5", в контекстном меню выберите "Открыть папку":

Затем скачайте .zip архив со всеми зависимостями по ссылке и перетащите файлы из архива в соответствующие папки терминала.

Разрешаем запросы к серверу

Чтобы робот мог проверить лицензионный ключ, нужно соединение с сервером. Для этого нужно добавить https://botbrains.app в список разрешенных URL для веб-запросов.

Откройте терминал, перейдите в "Сервис -> Настройки -> Советники". Отметьте галочку "Разрешить WebRequest для следующих URL". В таблицу ниже добавьте следующий url: https://botbrains.app

Для корректной работы блоков телеграм, добавьте следующий url в таблицу: https://api.telegram.org

Запуск робота

Можно просто создать .mq5 файл в папке терминала "Experts", скопировать сгенерированный код робота и просто вставить его в созданный файл.

Также можно скачать сгенерированный код в виде .mq5 файла. Для этого сохраните проект и нажмите на кнопку скачивания проекта в правой панели инструментов:

В появившемся окне предлагается выбор:

  • Скачать только .mq5 файл с кодом робота

  • Либо скачать архив с .mq5 файлом с кодом робота и всеми зависимостями

Перенесите скачанный .mq5 файл в папку "Experts" терминала.

Затем откройте добавленный файл в редакторе MetaQuotes Language и скомпилируйте код робота:

После компиляции обратите внимание на вкладку "Ошибки" окна "Инструменты":

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

Перейдите в терминал и найдите файл робота в окне "Навигатор" и запустите робота кликнув дважды по файлу робота.

Убедимся, что наш робот работает, перейдя в журнал сообщений:

Поведение робота полностью соответствует созданной нами схеме - ровно раз в секунду выводится указанное сообщение.

Предупреждение

Тестируйте роботов только на демонстрационном счете! Не переходите на реальную торговлю, если вы полностью не протестировали работоспособность робота!

Предложение идей

Если у вас есть пожелания по работе и развитию приложения, предложите идею - мы постараемся учесть ваше мнение. Вы всегда сможете связаться с нами по следующему email: support@botbrains.app

Last updated