Дополнительные материалы
Модуль "BackTest"
Модуль BackTest предназначен для тестирования автоторговли и отработки навыков ручной торговли на исторических данных трейдов с разных бирж. Этот модуль доступен только в PRO версии терминала Moonbot и активируется за Moon Credits.
Важно!
В скальпинге не существует повторяемости результата при повторном прогоне одной и той же исторической записи рынка.
Подробное объяснение приведено в конце инструкции.
Кратко: так же, как два идентичных терминала Moonbot с одинаковыми стратегиями, запущенные на разных VDS, не будут торговать абсолютно одинаково на реальном рынке, точно так же и два прогона BackTest с одной стратегией не дадут полностью совпадающий результат.
BackTest в скальпинге, и особенно в терминале Moonbot, используется не для точного воспроизведения результата, а для анализа общего поведения стратегий в разных рыночных ситуациях и для их последующей оптимизации.
Обзор окна BackTest
Окно BackTest в терминале Moonbot открывается через меню Меню → BackTest и выглядит следующим образом (на примере архивов Binance Futures Daily и Gate Spot Monthly).
Окно BackTest состоит из двух основных областей управления:
Верхняя область — управление процессом бектеста
Здесь располагаются элементы, необходимые для запуска и управления проигрыванием .bin-файлов: Выбрать файл, Старт, Стоп, Скопировать файл, Вставить файл, Глаз (просмотр графика), Ножницы (обрезка данных), Шкала прогресса проигрывания .bin файла.
При нажатии на надпись Help откроется эта инструкция на сайте с подробным описанием работы BackTest.
Нижняя область — загрузка и управление архивами .bin
Используется для скачивания примеров .bin-файлов и загрузки исторических данных с различных бирж, включает в себя две зоны:
а) Зона Скачать примеры
содержит одну кнопку, позволяющую загрузить демонстрационные файлы BackTest
б) Зона Архивы бирж
позволяет выбрать и скачать реальные архивы исторических трейдов; содержит меню выбора биржи, меню Spot или Futures, меню для выбора скачивания архива за день (Daily) или за весь месяц (Monthly), поле для выбора монеты, меню для выбора конкретной даты или месяца, кнопки Use Bybit gz для работы с архивными данными биржи Bybit, кнопки Скачать данные со шкалой прогресса скачивания данных.
После нажатия на кнопку Скачать данные правее шкалы прогресса скачивания данных будут появляться записи вида:
-
Recvd 1 / 183 Mb ... Recvd 183 / 183 Mb (прогресс скачивания архива)
-
unpack data.. (распаковка архива)
-
Parsing 01.07.2025...Parsing 31.07.2025 (парсинг данных по дням)
-
Not Found (архивные данные для скачивания не обнаружены) - надпись появляется, если указать неверное название монеты или дату, за которую нет архивных данных на бирже.
После успешного завершения всех операций появится надпись Done.
Нижнюю область окна BackTest можно скрыть, если нажать на кнопку “...” (троеточие) для светлых тем или на кнопку Hide для тёмных тем.
Способы получения исторических данных
Бектест выполняется путём проигрывания файлов с историческими данными трейдов.
Такие файлы имеют расширение .bin. Их можно получить несколькими способами:
Скачивание заранее подготовленных примеров
Нажмите кнопку «Скачать примеры», чтобы загрузить готовые примеры волатильных участков графиков монет (файлы .bin) с нашего сервера.
Они будут сохранены в папку BackTest, которая создаётся автоматически в корневом каталоге Moonbot.
На данный момент загружаются следующие примеры:
-
Demo_BANANAS31 09-07-2025 10-18.bin
-
Demo_GMX 09-08-2025 23-14.bin
-
Demo_GMX 10-08-2025 06-33.bin
-
Demo_HAEDAL 21-05-2025 17-04.bin
-
Demo_LA 11-08-2025 00-39.bin
-
Demo_LAYER 10-08-2025 05-39.bin
-
Demo_REQ_05-21-04-23-57.bin
-
Demo_TREE_07-29-17-16-05.bin
Загрузка суточных или месячных архивов из окна BackTest
В нижней части окна BackTest можно скачать .bin-файлы с историческими данными разных бирж, для этого:
-
выберите биржу
-
укажите рынок (Spot или Futures)
-
выберите период: Daily или Monthly
-
введите монету
-
укажите дату или месяц
-
нажмите Скачать данные
Скачанные файлы исторических данных сохраняются в папку BackTest, в подпапку вида MONETA-ГГГГ-ММ (например, LTC-2025-07).
Доступные диапазоны исторических данных:
-
Binance Spot — начиная с 17.08.2017 (первый доступный файл Binance_BTC_spot 17-08-2017.bin).
-
Binance Futures — начиная с 01.01.2020 (первый доступный файл Binance_BTC_futures 01-01-2020.bin)
-
Gate Spot — начиная с 01.01.2018 (первый доступный файл Gate_BTC_spot 01-01-2018.bin)
-
Gate Futures — начиная с 18.11.2019 (первый доступный файл Gate_BTC_futures 18-11-2019.bin).
Для работы с архивными данными биржи Bybit нужно самостоятельно скачать архив с сайта биржи
🔗 https://public.bybit.com/ на компьютер, например архив
ETHUSDT2026-02-07.csv.gz. Затем в окне BackTest следует нажать на кнопку Use Bybit gz, указать путь к этому архиву на компьютере и нажать на кнопку Открыть. После этого в папке BackTest будет создана папка с указанием названии монеты, года и месяца, например ETH-2026-02, в которой будут находится файлы bin, например Bybit_ETH_spot 07-02-2026.bin. Далее этот файл можно открывать в окне BackTest и проигрывать его на графике этой монеты.
Использование готовых .bin-файлов из логов Moonbot
Исторические данные также можно взять:
а) из папки Logs — туда терминал записывает историю сделок, используемую для отображения в Таблице с отчётами.
б) из папок Logs\ImportantB и BackTest\Important — туда автоматически сохраняются .bin-файлы значимых сделок, если в отчётах нажать на строку сделки и поставить галочку «Важно».
Ранее такие файлы использовались только для просмотра сделки в «статичном» Pump Chart, теперь их можно проигрывать полностью через BackTest.
Воспроизведение файла .bin займет ровно столько же времени, какова его длительность на графике из отчёта, если открывать файл .bin из папки Logs, или ровно 1 сутки, если открывать скачанный файл .bin из архивов биржи.
Обработка .bin-файлов
Вырезание нужных фрагментов из длинных .bin-файлов
Чтобы быстро тестировать стратегию на конкретном участке графика, можно вырезать лишь нужный фрагмент, для этого:
-
Нажмите на кнопку «Глаз», выберите .bin-файл — он откроется в статичном виде в окне Pump Chart;
-
В окне BackTest нажмите на кнопку «Ножницы» ;
-
Зажмите Ctrl и левую кнопку мыши на графике — выберите начало фрагмента.
-
Не отпуская левую кнопку мыши протяните до конца фрагмента (область выделится зелёным).
-
Отпустите кнопку — Moonbot предложит сохранить этот участок как отдельный .bin-файл в папку BackTest.
⚠️ Важно: если на графике перед волатильным фрагментом есть длинная «пустая» область без крестиков, она тоже попадёт в итоговый файл. На разреженных графиках старайтесь захватывать первый крестик нужного участка.
Кнопкой «Ножницы» можно вырезать фрагменты как на графиках главного окна, так и в Chart-окнах, но только пока они отображаются крестиками-трейдами.
Когда график превращается в мини-свечи, записывать .bin уже нельзя.
Если попытаться проиграть такой «свечной» файл в BackTest, вместо имени файла появится сообщение: Nothing to play!
Объединение нескольких .bin-файлов в один с помощью окна BackTest
Если у Вас есть несколько фрагментов исторических данных по одной и той же монете — например, файлы BTC1.bin и BTC2.bin, записанные в разное время, — их можно объединить в один общий .bin-файл. Это удобно, когда Вы хотите протестировать стратегию на длинной последовательности рынка, собранной из нескольких участков.
Чтобы объединить файлы, выполните следующие действия:
-
Нажмите кнопку «Выбрать файл» и укажите первый фрагмент — BTC1.bin.
-
Нажмите «Старт», чтобы проиграть первый фрагмент на графике.
-
Снова нажмите «Выбрать файл» и укажите второй фрагмент — BTC2.bin.
-
Нажмите «Старт», чтобы проиграть второй фрагмент сразу вслед за первым.
-
После проигрывания обоих фрагментов нажмите «Ножницы», затем:
-
зажмите Ctrl и кликните левой кнопкой мыши в начале первого фрагмента
-
не отпуская левую кнопку мыши, протяните область выделения до конца второго фрагмента;
-
выделенная зона отобразится зелёным прямоугольником;
-
отпустите левую кнопку мыши, чтобы завершить выделение.
-
После выделения области на графике в терминале появится окно с подтверждением сохранения:
Warning
Шеф, сохраняем фрагмент графика BTC, интервал с 14:58:37 по 15:03:06 (269 сек) в файл BackTest*.bin ?
Да / Нет -
После подтверждения файл будет сохранён в папку BackTest под именем вида: Demo_BTC 23-08-2025 14-58.bin
Расшифровка обозначений в названии .bin-файла:
-
Demo — приставка, обозначающая, что это демонстрационный файл.
-
BTC — монета, для которой была записана историческая последовательность трейдов.
-
23-08-2025 — дата записи фрагмента (23 августа 2025 года).
-
14-58 — время начала записи (14 часов 58 минут).
«Склейка» нескольких фрагментов графиков в окне Pump Chart с помощью BackTest
«Склейка» нескольких фрагментов — это недокументированная функция терминала MoonBot, позволяющая объединять несколько .bin-файлов одной и той же монеты в единый непрерывный график.
Чтобы выполнить «склейку», при открытом окне BackTest последовательно откройте через Меню → Trades History или кнопку «Глаз» два и более .bin-файлов с одним и тем же названием монеты. В этом случае трейды из нового файла будут добавляться к графику предыдущего файла, а не заменять его.
Важно подбирать фрагменты без разрывов по времени. Например, если Ваши .bin-файлы содержат записи примерно по 10 минут, то оптимально склеивать их с интервалом 7–9 минут, чтобы избежать пропусков или наложений.
Обратите внимание:
– Нельзя проигрывать или «склеивать» .bin-файлы разных монет, присутствующих на бирже. Каждый .bin будет проигрываться только на графике своей монеты.
– Исключение — .bin-файлы монет, которые были удалены с биржи (например, Coin1Delist.bin и Coin2Delist.bin). Их можно проигрывать и склеивать на рынке ETH, так как делистнутые монеты всегда отображаются на его графике.
После подготовки необходимых .bin-файлов для удобства можно свернуть нижнюю область окна BackTest с помощью кнопки … или Hide, оставив только верхнюю панель управления загрузкой и воспроизведением .bin-файлов для последующего бектеста.
Запуск процедуры бектеста
Запуск процедуры бектеста рассмотрим на примере демо-файла из коллекции Moonbot.
-
Откройте окно BackTest
На главном окне терминала выберите Меню → BackTest — появится окно BackTest -
Скачайте демонстрационные примеры.
Нажмите кнопку Скачать примеры — в папку BackTest будут загружены готовые .bin-файлы из коллекции Moonbot. -
Выберите файл для воспроизведения.
Нажмите Выбрать файл, в открывшемся проводнике перейдите в папку BackTest, выберите демо-файл, например: Demo_LA 11-08-2025 00-39.bin, затем нажмите Ок. Выбранное имя файла появится в окне BackTest. -
Подготовьте стратегии и включите режим Эмулятора:
-
активируйте стратегии, которые хотите протестировать
-
включите режим ЭМУЛЯТОР через Меню → Режим эмуляции и убедитесь, что кнопка Autodetect: ON.
-
Запустите бектест.
Нажмите Старт.
Начнётся воспроизведение записи исторических трейдов из выбранного файла, и автоматически откроется график монеты LA. Если этой монеты больше нет на бирже, проигрывание всегда выполняется на рынке ETH. -
Следите за ходом воспроизведения.
Под именем файла отображается шкала прогресса загрузки .bin-фрагмента. -
Управляйте воспроизведением:
-
нажмите Стоп, чтобы остановить проигрывание в любой момент.
-
повторное нажатие Старт запустит воспроизведение файла .bin с самого начала.
⚠️ Внимание! Возможно одновременное проигрывание нескольких файлов .bin, в этом случае после нажатия на кнопку Выбрать файл можно выбрать не один файл .bin, а несколько.
После нажатия кнопки Старт в окне BackTest все эти файлы начнут проигрываться одновременно на своих графиках монет. Если в списке выбранных файлов есть файлы .bin от одинаковой монеты, то первый файл будет проигрываться на её собственном графике, второй на графике ETH, а третий и последующие на других свободных графиках монет.
Анализ результатов
Во время воспроизведения файла .bin будут срабатывать все активные стратегии, прошедшие фильтры.
После окончания бектеста:
-
Нажмите Отчёты на главном окне Moonbot.
-
Откройте Таблицу с отчётами.
-
Оцените результаты тестируемых стратегий.
При необходимости измените параметры стратегий и запустите файл заново.
Проводите цикл тестирования до тех пор, пока не получите желаемый результат.
С помощью кнопки Скопировать файл можно скопировать в буфер загруженный файл .bin в окно BackTest.
С помощью кнопки Вставить файл его можно вставить в окно BackTest другого терминала Moonbot или в сообщение Telegram-группы, чтобы поделиться файлом .bin с другими.
Особенности работы режима Эмулятора при запуске BackTest
⚠️ Важно! Если общий режим терминала Moonbot перед запуском BackTest не был вручную переключён в режим ЭМУЛЯТОР и случайно остался реальным, то при нажатии кнопки Старт в окне BackTest терминал автоматически включит защиту и сам переведёт общий режим в ЭМУЛЯТОР. Это предотвращает ситуацию, при которой во время бектеста могли бы выставляться ордера с использованием реального депозита.
Если во время воспроизведения .bin-файла попытаться вручную вернуть общий режим из ЭМУЛЯТОР обратно в реальный, сработает другая защитная функция:
– в окне BackTest автоматически будет нажата кнопка Стоп,
– проигрывание .bin-файла прекратится,
– на графике монеты начнут отображаться реальные трейды.
Кроме того, при тестировании стратегий с помощью BackTest в ведущем терминале Moonbot команды управления для ведомых терминалов по UDP не отправляются. Это сделано специально, чтобы исключить ложные сигналы и избежать непреднамеренного выполнения команд на ведомых терминалах.
Почему два прогона одинаковых исторических данных могут давать разные результаты
В классических алгоритмах, работающих по свечам, всё детерминировано: одинаковый вход — одинаковый результат. Можно десять раз посчитать «2+2» и всегда получить «4». В скальпинге это невозможно. Даже при двух одинаковых прогонах данных профит, количество сделок и структура входов могут отличаться.
Ниже разобраны основные причины такой «случайности» — на примере двух терминалов Moonbot, торгующих одну и ту же пару с одинаковыми настройками, но работающих на разных выделенных серверах (VDS).
1) Лаг получения трейдов
Если один терминал получает трейды на 10 мс позже другого, он поставит свой ордер тоже на 10 мс позже. Этого достаточно, чтобы сценарий торговли ушёл в другую сторону:
-
первый терминал купил и успел продать в плюс, первый терминал купил и успел продать в плюс,
-
второй купил позже, не попал в тот же пик и вышел по стопу.
Чем активнее рынок, тем сильнее выражен этот эффект. Самый яркий пример — стратегия MoonStrike, где один терминал успевает купить, а другой — нет.
Бектест работает в режиме Эмулятора и специально включает фактор случайной задержки, чтобы воспроизвести эту ситуацию максимально реалистично.
2) Дискретность пересчётов параметров
Расчёты параметров в терминале происходят не непрерывно, а с определённой частотой.
-
Первый терминал пересчитал состояние рынка в момент T1.
-
Второй сделал тот же расчёт в момент T2, отличающийся всего на 1 мс.
Но за эту 1 мс мог пройти новый трейд — и второй терминал увидит уже другую картину рынка.
Итог:
-
параметры ордера получатся другими,
-
детект может сработать у одного терминала и не сработать у другого.
В бектесте этот фактор также присутствует: момент нажатия «Старт» неминуемо не совпадает с внутренними циклами пересчёта.
3) Отличия при работе Sell-алгоритмов
Аналогичные расхождения возникают при работе Sell-ордеров, особенно если использованы динамические алгоритмы управления, такие как:
-
PriceDown — снижение Sell-ордера со временем;
-
SellLevel — подстройка под предыдущий максимум цены;
-
SellShot — движение ордера в заданных коридорах;
-
SellSpread — адаптация под текущий спред;
-
даже обычный StopLoss.
Перестановка Sell-ордера не мгновенна: она занимает 10–20 мс, как на реальной бирже. Разные моменты выполнения этой операции приводят к:
-
разным итоговым ценам закрытия,
-
разным траекториям сделки,
-
другим результатам стратегии.
В бектесте также эмулируется случайная задержка перестановки ордера, чтобы динамика поведения максимально соответствовала реальной торговле.