К статье
Справка XTester
XTester Studio

Симуляция

Настройте инструмент и период, проверьте условия расчёта и управляйте симуляцией.

Проверено: Для версий: 1.0.0-preview.1

Настройки запуска

Где открыть

«Симуляция» → вкладка «Настройки запуска». Окно открывается командой «XTester: Показать симуляцию».

Порядок действий
  1. Выберите «Класс актива», «Источник» и «Рынок».
  2. В поле «Пара» выберите инструмент, затем задайте «Таймфрейм».
  3. Если свечей нет, откройте «Данные» → «Скачать данные» и подготовьте нужную историю.
  4. Перейдите в «Настройки симуляции», чтобы проверить период и стартовые балансы.
Скриншот программыXTester 1.0.0-preview.1
Вкладка «Настройки запуска». В учебном проекте история ещё не скачана.Снимок интерфейса · XTester 1.0.0-preview.1
  1. Откройте «Настройки запуска».
  2. Выберите класс актива, источник и рынок.
  3. Пометка «нет свечей» означает, что сначала нужна история.
  4. Выберите таймфрейм.

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

Настройки симуляции

Где открыть

«Симуляция» → вкладка «Настройки симуляции».

Порядок действий
  1. Проверьте даты «Старт (UTC)» и «Конец (UTC)».
  2. Проверьте строку начального капитала; при необходимости откройте «Балансы…».
  3. Выберите нужные условия автопаузы.
  4. Проверьте настройки данных и нажмите «Применить настройки», если хотите применить изменения.
Скриншот программыXTester 1.0.0-preview.1
Период, начальные средства и автопауза в настройках симуляции.Снимок интерфейса · XTester 1.0.0-preview.1
  1. Откройте «Настройки симуляции».
  2. Задайте начало и конец периода в UTC.
  3. В примере стартовые средства берутся из таблицы проекта.
  4. Выберите события, на которых нужна автопауза.

В блоке «Период и счёт» задайте начало и конец расчёта в UTC. Строка «Старт» показывает, откуда берётся начальный капитал. Кнопка «Балансы…» открывает отдельное окно стартовых балансов и текущего счёта.

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

Профиль симуляции

Где открыть

палитра команд → «XTester: Профиль симуляции: комиссии, слиппедж, плечо».

Порядок действий
  1. Выберите биржу слева и просмотрите блок действующих значений.
  2. Выберите нужный рынок и включите свои издержки, если стандартных ставок недостаточно.
  3. Проверьте комиссии maker/taker, режим проскальзывания и остальные нужные поля.
  4. Нажмите соответствующую кнопку применения и снова проверьте действующие значения вверху.

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

Скриншот программыXTester 1.0.0-preview.1
Действующие параметры расчёта для выбранной биржи в учебном проекте.Снимок интерфейса · XTester 1.0.0-preview.1
  1. Выберите биржу в списке слева.
  2. Здесь показаны значения, которые реально использует расчёт.

В разделе «Рынок: комиссии, слиппедж и funding» выберите рынок. Чтобы задать свои ставки, включите «Свои издержки для этого рынка». Значения по умолчанию помечены рядом с полями. При выключенной настройке рынок использует стандартные издержки биржи.

Скриншот программыXTester 1.0.0-preview.1
Поля комиссий и проскальзывания. Свои издержки в примере ещё выключены.Снимок интерфейса · XTester 1.0.0-preview.1
  1. Выберите рынок выбранной биржи.
  2. Чтобы редактировать поля, включите свои издержки.
  3. Проверяйте комиссию и единицы измерения рядом с полем.
  4. Режим и величина проскальзывания настраиваются отдельно.

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

Запуск, наблюдение и отмена

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

Скриншот программыXTester 1.0.0-preview.1
Во время исторического прогона можно следить за графиком и показателями симуляции.Снимок интерфейса · XTester 1.0.0-preview.1

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

Что показывает бэктест

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

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

Автопауза

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

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

Статистика и сделки

Пока сессия движется, статистика перечитывается раз в секунду; на паузе и после конца периода — раз в пять секунд. Числа помечены ревизией движка: равные ревизии означают равные числа.

Скриншот программыXTester 1.0.0-preview.1
Во время исторического прогона можно следить за графиком и показателями симуляции.Снимок интерфейса · XTester 1.0.0-preview.1

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

Счёт

Панель «Баланс» показывает балансы, позиции и ордера сессии. Позиция закрывается целиком или частично, ордер снимается — это команды панели; «Изменить баланс…» и «Удалить баланс» открывают окно «Балансы» на этой строке.

Скриншот программыXTester 1.0.0-preview.1
Во время исторического прогона можно следить за графиком и показателями симуляции.Снимок интерфейса · XTester 1.0.0-preview.1

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

Балансы

Окно «Балансы» открывается кнопкой в заголовке панели «Баланс», строкой «Балансы» в её дереве, кнопками «Балансы…» окна «Симуляция» и командой «Балансы: стартовые и текущий счёт».

Вкладка «Стартовые» — таблица, с которой начинается каждая симуляция и каждый бэктест проекта: «Сохранить» записывает её в simulation.startingBalances файла xtester.strategy.json, так что она переживает перезапуск и уходит вместе с роботом; текущая сессия идёт со старым стартом.

Вкладка «Текущий счёт» правит счёт сессии: «Применить к счёту» меняет его сразу, правка действует до «Стоп», а следующий старт снова начинается со стартовых балансов; «Скопировать в стартовые» переносит этот счёт в таблицу — останется сохранить. Обе вкладки разбиты по рынкам биржи; в строке — «Актив», «Свободно», «Заблокировано» и «Всего» (свободно плюс заблокировано), новый актив выбирается из списка активов биржи.

Скриншот программыXTester 1.0.0-preview.1
Черновик стартовых балансов в запущенном XTester.Снимок интерфейса · XTester 1.0.0-preview.1
  1. Выберите «Стартовые»: эта таблица используется при новом запуске.
  2. Измените свободную и заблокированную части выбранного актива.
  3. «Сохранить» записывает стартовую таблицу; точка у вкладки означает несохранённую правку.

Одно правило решает, с чем стартуют симуляция, бэктест, робот и предполётная проверка. Таблица финансирует старт, если биржа сессии совпадает с биржей проекта (или проект биржу не называет) и в таблице есть строки рынка инструмента. Иначе старт идёт с депозита: заданного в окне «Симуляция» для сессии или для бэктеста, иначе с депозита проекта depositUsdt, а без него — с 10 000 в котировке инструмента.

Депозит, заданный для сессии, сильнее таблицы и действует до «Стоп»; сохранение таблицы или депозита проекта его снимает. Свежий старт сначала очищает все виртуальные счета и лишь затем заводит на них таблицу или депозит. Во вкладках «Настройки симуляции» и «Фоновый бэктест» строка «Старт: …» показывает, с чем начнётся старт, а поле депозита спрятано там, где рынок задаёт таблица.

«Убрать таблицу — стартовать с депозита» возвращает старт к депозиту; пустая таблица тоже стартует с депозита, поэтому, чтобы начать без денег, оставьте строку с 0.

«Заблокировано» в стартовой таблице — часть актива, которую стратегия не может тратить: ни один ордер её не держит, но и свободной она не считается; в капитал она входит. Обычно это 0. В текущем счёте «Заблокировано» держат открытые ордера и маржа позиций, поэтому, пока на рынке есть ордера или позиции, там меняется только «Свободно», а актив с заблокированной частью убрать нельзя.

Текущий счёт правится только на обычной паузе симуляции: не во время хода, не на точке останова в коде, не во время прогрева и не после конца периода. Строки 0/0 видны в обеих вкладках — спот-ордеру нужна строка базовой монеты, пусть с нулём; строка «Нужно для …» показывает активы, которые нужны инструменту.

Скриншот программыXTester 1.0.0-preview.1
Текущий счёт до первого запуска симуляции.Снимок интерфейса · XTester 1.0.0-preview.1
  1. «Текущий счёт» относится к сессии, а не к сохранённой стартовой таблице.
  2. Сессии ещё нет, поэтому счёт пуст и правка недоступна. После запуска счёт можно менять на обычной паузе.

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

Монета в базе спота двигает капитал вместе с ценой даже без сделок. Правку текущего счёта статистика считает результатом: пополнение — прибылью, изъятие — убытком; как сделка правка не записывается.

Фоновый бэктест

Во вкладке «Фоновый бэктест» запускается расчёт без графика симуляции. Перед запуском проверьте инструмент, период и начальные средства. Результат завершённого расчёта открывается отдельно.

Скриншот программыXTester 1.0.0-preview.1
На вкладке «Фоновый бэктест» задайте период и стартовый депозит для отдельного расчёта.Снимок интерфейса · XTester 1.0.0-preview.1

Параметры стратегии

Где открыть

«Симуляция» → «Параметры стратегии». Это параметры скомпилированной стратегии, а не отдельные поля биржи, периода или профиля исполнения.

Порядок действий
  1. Выберите нужный проект и скомпилируйте его.
  2. Откройте «Параметры стратегии» и обновите список.
  3. Введите значения в пределах объявленных ограничений.
  4. Для проверки новых значений начните новый расчёт.
  5. Сравните условия и журнал нового прогона.
Скриншот программыXTester 1.0.0-preview.1
Поля Lookback и LogEveryBars появились после компиляции Parameter Demo. Рядом с ними указаны значения по умолчанию.Снимок интерфейса · XTester 1.0.0-preview.1
  1. Поля из кода стратегии.

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

Заданное вами значение переопределяет умолчание для этого проекта. Сброс возле параметра убирает переопределение. Отсутствующее значение и явно введённый ноль могут означать разное; не заменяйте одно другим без понимания кода.

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

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

Связанные команды

Команды в палитре
Название командыИдентификатор

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

Отменить ордерxtester.accountCancelOrder
Закрыть позицию…xtester.accountClosePosition
Удалить балансxtester.accountDeleteBalance
Изменить баланс…xtester.accountEditBalance
Загрузить балансы с биржи…xtester.accountLoadExchangeBalances
Балансы…xtester.accountOpenBalances
Уменьшить позицию…xtester.accountReducePosition
Обновить счётxtester.accountRefresh
История ордеровxtester.accountShowOrderHistory
Отменить бэктестxtester.cancelBacktest
Paper-сценарий…xtester.paperScenario
Бэктест активной стратегии…xtester.runBacktest
Запустить бэктест (быстрый ввод)xtester.runBacktestQuick
Показать симуляциюxtester.showSimulation
Балансы: стартовые и текущий счётxtester.showSimulationBalances
Профиль симуляции: комиссии, слиппедж, плечоxtester.showSimulationProfile
Пауза симуляцииxtester.simulationPause
Запустить симуляциюxtester.simulationStart
Шаг вперёдxtester.simulationStep
Несколько шагов вперёд…xtester.simulationStepMany
Остановить симуляциюxtester.simulationStop
Рассчитать стратегию…xtester.strategy.runBacktest
Показать симуляциюxtester.strategy.showSimulation