- Откройте ссылку MOEX-Simulator
- Программа загрузится с интерфейсом из нескольких вкладок
MOEX Simulator — это веб-приложение для симуляции торговли на бирже. Программа позволяет:
- Загружать исторические данные по тикерам
- Отрабатывать торговые стратегии в режиме проигрывания
- Выставлять ордера на покупку/продажу и стоп-ордера
- Отслеживать прибыль, убытки и просадку по счету
- Анализировать результаты торговли
- Необходимые котировки можно скачать на сайте https://moex.backtrader.ru/
Программа использует для графиков библиотеку IguanaCharts .
Это основная вкладка для инициализации программы. Здесь вы настраиваете параметры торговли и загружаете данные.
-
Capital — начальная сумма денег на счете (по умолчанию: 1,000,000)
- Именно с этой суммой начинается симуляция
-
Risk in % — процент риска от капитала на одну сделку (по умолчанию: 0.3%)
- Используется при расчете размера позиции
-
Stop default — стоп-лосс по умолчанию в пунктах (по умолчанию: 100)
- Применяется при расчете стопа
-
Stop mode — режим расчета стопа (отключено, значение: "price")
- Зарезервировано для будущего использования
-
Data timeframe in min — таймфрейм данных в минутах (отключено, значение: 5)
- Зарезервировано для будущего использования
-
Screen Size — размер экрана (по умолчанию: 1980x1080)
- Влияет на масштабирование интерфейса и графиков
- Доступные опции: 1980x1080 (FHD), 2560x1440 (2K)
-
Mode — режим торговли (по умолчанию: Stock Exchange)
- Stock Exchange (int Count) — фондовая биржа, количество в целых числах
- Crypto Exchange (float Count) — крипто-биржа, количество в дробных числах
-
Start date (YYYYMMDD) — дата начала симуляции (по умолчанию: 20161213)
- Формат: YYYYMMDD (год-месяц-день)
- Пример: 20220101 = 1 января 2022 года
-
Play timeout (in ms) — время проигрывания одной свечи (по умолчанию: 200 мс)
- Чем меньше значение, тем быстрее идет симуляция
- В режиме Play программа обновляет данные на каждом таймауте
-
Ticker — основной тикер для торговли (по умолчанию: Si)
- Пример: Si (Si-5.21 - рубль), EUR, GAZP (Газпром), YNDX (Яндекс)
-
Ticker Data — загрузить CSV файл с данными по основному тикеру
- Должен содержать OHLCV данные (Open, High, Low, Close, Volume) в формате 5min
- Требуемый формат CSV (с разделителем точка-запятая):
или
DATE;TIME;OPEN;HIGH;LOW;CLOSE;VOLUME 20161017;1000;65300,0000000;65430,0000000;65263,0000000;65339,0000000;40 20161017;1005;65301,0000000;65319,0000000;65260,0000000;65294,0000000;418 20161017;1010;65297,0000000;65313,0000000;65290,0000000;65302,0000000;29 20161017;1015;65328,0000000;65328,0000000;65325,0000000;65325,0000000;50Необходимые котировки можно скачать на сайте https://moex.backtrader.ru/Datetime,Open,High,Low,Close,Volume 2024.11.01 00:00,2521.71,2522.3,2516.22,2520.1,3779.23 2024.11.01 00:05,2520.1,2521.59,2517.48,2519.61,1910.82
-
Indicator Ticker — дополнительный тикер для отображения (по умолчанию: USDTOM)
- Используется только для визуализации, не для торговли
- Пример: USDTOM (кросс-курс доллара)
-
Indicator Data — загрузить CSV файл с данными по индикаторному тикеру
- Тот же формат, что и для основного тикера:
или
DATE;TIME;OPEN;HIGH;LOW;CLOSE;VOLUME 20161017;1000;1,0500000;1,0530000;1,0490000;1,0510000;1000 20161017;1005;1,0510000;1,0520000;1,0500000;1,0515000;1200Datetime,Open,High,Low,Close,Volume 2024.11.01 00:00,2521.71,2522.3,2516.22,2520.1,3779.23 2024.11.01 00:05,2520.1,2521.59,2517.48,2519.61,1910.82
- Тот же формат, что и для основного тикера:
-
Equity — загрузить CSV файл с данными по капиталу счета
- Используется для загрузки предыдущего состояния или для анализа
- Формат CSV:
Date,Capital,DrawDown 2016-12-13 10:00:00,1000000,0 2016-12-13 10:05:00,1000100,0 ...
-
Trans — загрузить CSV файл с предыдущими транзакциями
- Помогает восстановить предыдущую торговлю
- Формат CSV:
Date,Mode,Price,Count,Sum,Profit,DrawDown,Comment 2016-12-13 10:05:00,buy,67.234,100,6723.4,0,0,New position ...
-
[Initialize] — инициализировать программу с выбранными параметрами
- После заполнения всех полей и загрузки CSV файлов нажмите эту кнопку
- Программа загрузит данные и вы сможете перейти на другие вкладки
-
[SAVE] — сохранить текущее состояние в локальном хранилище браузера
- Автосохранение состояния при закрытии браузера
-
[RESTORE] — восстановить состояние из локального хранилища браузера
- Загружает последнее сохраненное состояние
После нажатия кнопки [Initialize] становятся доступны вкладки с графиками:
- 5 MIN — график с таймфреймом 5 минут
- 1 H — график с таймфреймом 1 час
- 1 D — график с таймфреймом 1 день
-
Два графика рядом:
- Левый график — основной тикер (для торговли)
- Правый график — индикаторный тикер (для справки)
-
Кнопка "Play >>" (вверху слева):
- Нажмите для начала проигрывания исторических данных
- Во время проигрывания кнопка становится "Pause"
- Нажмите еще раз для паузы
-
Текущая дата/время (рядом с кнопкой Play)
- Показывает дату и время текущей свечи в режиме проигрывания
-
Левая панель управления ордерами (обычно слева от графиков):
- Здесь можно создавать новые ордера
- Просматривать и редактировать существующие ордера
- Устанавливать стоп-ордера
Создание нового ордера:
- На графике кликните на нужную цену или используйте диалог "New Order"
- Выберите тип: Buy (покупка) или Sell (продажа)
- Укажите цену и количество
- Нажмите кнопку для создания ордера
Редактирование ордера:
- Найдите ордер в списке текущих ордеров
- Кликните на него для редактирования
- Измените параметры и сохраните
Удаление ордера:
- Выберите ордер в списке
- Нажмите кнопку "Delete" или удалите вручную
Установка стоп-ордера:
- После создания основного ордера можно добавить стоп-лосс (SL) и тейк-профит (TP)
- SL (Stop-Loss) — ордер для закрытия позиции при убытке
- TP (Take-Profit) — ордер для закрытия позиции при прибыли
Вызывается при нажатии кнопки [New Order] в панели "Orders".
Основные параметры:
-
Mode — тип ордера (Buy/Sell)
- Buy — покупка (зеленый цвет)
- Sell — продажа (красный цвет)
-
Price — цена ордера
- Если оставить 0, то ордер срабатывает по цене открытия/закрытия свечи
- Две вспомогательные кнопки:
- [Get Market] — вставляет текущую цену тикера в поле Price
- [Calc Stop] — рассчитывает величину стопа по формуле:
Рассчитанная цена активации Stop вставляется в поле "Stop Activation"
Stop = 2 × ATR(100) if Stop > Stop_default: Stop = Stop_default
-
Count — количество контрактов/акций
- Кнопка [Calc Count] — автоматически рассчитывает количество исходя из:
- Установленного уровня риска (Risk in % на вкладке Load)
- Цены активации стопа (из поля "Stop Activation")
- Формула:
Count = (Capital × Risk%) / (Stop Activation - Price)
- Кнопка [Calc Count] — автоматически рассчитывает количество исходя из:
Параметры стоп-лосса:
-
Stop Activation — цена активации стоп-ордера
- Когда цена достигает этого уровня, сработает стоп-лосс
-
Stop — цена исполнения стоп-ордера
- Цена, по которой будет закрыта позиция при срабатывании стопа
Параметры тейк-профита:
-
Profit Activation — цена активации профит-ордера
- Когда цена достигает этого уровня, сработает тейк-профит
-
Profit — цена исполнения профит-ордера
- Цена, по которой будет закрыта позиция при срабатывании профита
Дополнительно:
- Comment — комментарий к ордеру
- Помогает отслеживать причину создания ордера
- Сохраняется в истории транзакций
Исполнение:
- При нажатии кнопки [Execute] будут выставлены:
- Основной ордер покупки/продажи
- Стоп-лосс ордер (если указаны Stop Activation и Stop)
- Тейк-профит ордер (если указаны Profit Activation и Profit)
Вызывается при нажатии кнопки [New Order] в панели "Stop Orders".
Используется для создания дополнительных BuyStop/SellStop ордеров.
Основные параметры:
- Mode — тип стоп-ордера
- BuyStop — стоп-ордер на покупку (зеленый цвет)
- SellStop — стоп-ордер на продажу (красный цвет)
Stop-Loss часть:
-
SL: Stop Activation — цена активации стоп-ордера для стоп-лосса
- Когда цена достигает этого уровня, сработает SL ордер
-
SL: Stop — цена исполнения стоп-ордера для стоп-лосса
- Цена закрытия позиции при срабатывании SL
-
SL: Count — количество контрактов/акций для стоп-лосса
- Отдельное количество для этого ордера
Take-Profit часть:
-
TP: Profit Activation — цена активации профит-ордера
- Когда цена достигает этого уровня, сработает TP ордер
-
TP: Profit — цена исполнения профит-ордера
- Цена закрытия позиции при срабатывании TP
-
TP: Count — количество контрактов/акций для профита
- Отдельное количество для этого ордера
Особенности:
- Стоп-ордера срабатывают автоматически при проигрывании данных (режим Play)
- Можно создавать несколько стоп-ордеров для одной позиции
- Каждый стоп-ордер независимо отслеживает уровни активации
Отображается отдельным окном и показывает:
-
Capital — текущий размер капитала на счете
-
DD (DrawDown) — максимальная просадка от пика капитала
- Показывает максимальный убыток с начала торговли
-
Cur Profit — текущая прибыль/убыток открытой позиции
-
Cur Pos — текущий объем открытой позиции (в количестве контрактов/акций)
-
Cur Sum — текущая сумма открытой позиции
-
[Close ALL] — закрыть все открытые позиции одной кнопкой и удаляет все неисполненные ордера
- Удобно для быстрого выхода из позиции без создания нового ордера
Таблица всех совершенных сделок:
| Поле | Описание |
|---|---|
| # | Номер сделки |
| Date | Дата и время совершения сделки |
| Mode | Тип: Buy (покупка) или Sell (продажа) |
| Price | Цена исполнения ордера |
| Count | Количество контрактов/акций |
| Sum | Сумма сделки (Price × Count) |
| Profit | Прибыль/убыток по сделке |
| DrawDown | Просадка на момент сделки |
| Comment | Комментарий к сделке |
Кнопка [Save] — сохранить таблицу транзакций в CSV файл для дальнейшего анализа
Таблица истории изменения капитала:
| Поле | Описание |
|---|---|
| Date | Дата и время |
| Capital | Размер капитала в этот момент |
| DrawDown | Просадка в этот момент |
Кнопка [Save] — сохранить таблицу капитала в CSV файл
- Подготовьте CSV файл с историческими данными тикера
- Формат CSV (с разделителем точка-запятая):
или
DATE;TIME;OPEN;HIGH;LOW;CLOSE;VOLUME 20161017;1000;65300,0000000;65430,0000000;65263,0000000;65339,0000000;40 20161017;1005;65301,0000000;65319,0000000;65260,0000000;65294,0000000;418 20161017;1010;65297,0000000;65313,0000000;65290,0000000;65302,0000000;29 20161017;1015;65328,0000000;65328,0000000;65325,0000000;65325,0000000;50Datetime,Open,High,Low,Close,Volume 2024.11.01 00:00,2521.71,2522.3,2516.22,2520.1,3779.23 2024.11.01 00:05,2520.1,2521.59,2517.48,2519.61,1910.82 - Важные моменты:
- Даты должны быть в порядке возрастания
- Время должно соответствовать таймфрейму (10:00, 10:05, 10:10 и т.д. для 5min)
- Откройте
index.htmlв браузере - На вкладке Load:
- Установите Capital (начальный капитал)
- Установите Risk in % (риск на сделку)
- Выберите Mode (Stock Exchange или Crypto Exchange)
- Установите Start date (дату начала)
- Установите Play timeout (скорость проигрывания)
- Загрузите CSV файл в Ticker Data
- (Опционально) Загрузите данные индикаторного тикера
- Нажмите [Initialize]
- Перейдите на вкладку 5 MIN (или 1H, 1D)
- Нажмите кнопку Play >> для начала проигрывания
- Выставляйте ордера по мере проигрывания данных
- Следите за прибылью/убытком в диалоге Status
- Перейдите на вкладку Trans для просмотра всех сделок
- Перейдите на вкладку Equity для просмотра истории капитала
- Сохраните данные кнопкой [Save] на каждой вкладке
- На вкладке Load нажмите [SAVE]
- Состояние будет сохранено в локальное хранилище браузера
- При следующем открытии нажмите [RESTORE] для восстановления
- Используйте данные в виде свечей (OHLCV)
- Убедитесь, что временные метки в порядке возрастания
- Проверьте, что стоимость находится в правильном масштабе (например, в копейках для рубля)
Stock Exchange (int Count):
- Используйте для акций, фьючерсов
- Количество всегда целое число
- Пример: 100 акций Газпрома
Crypto Exchange (float Count):
- Используйте для криптовалют
- Количество может быть дробным
- Пример: 0.5 BTC
- Play timeout: 100-500 мс для нормального темпа проигрывания
- Risk in %: 0.3-2% в зависимости от стратегии
- Stop default: 50-200 пунктов в зависимости от волатильности
- SL (Stop Loss): Активируется по цене, закрывает позицию с убытком
- TP (Take Profit): Активируется по цене, закрывает позицию с прибылью
- Оба типа ордеров срабатывают автоматически во время Play
- Play/Pause: Кнопка Play >> на каждой вкладке
- Close ALL: Кнопка в диалоге Status для быстрого закрытия всех позиций
- Chrome 60+
- Firefox 55+
- Edge 79+
- Safari 12+
Рекомендуется использование Chrome или Firefox для лучшей совместимости.
- Проверьте формат CSV файла
- Убедитесь, что даты начина корректны
- Попробуйте нажать [Initialize] еще раз
- Убедитесь, что включен режим Play
- Проверьте, что цена ордера находится в диапазоне текущих свечей
- Проверьте установку стоп-лосса и тейк-профита
- Проверьте, включено ли локальное хранилище в браузере (Local Storage)
- Попробуйте очистить кэш браузера
- Используйте приватный режим в браузере (может помешать сохранению)
Программа использует следующие библиотеки:
- jQuery 1.12.4
- UIKit
- jsRender
- PapaParse
- jQuery.qtip
- jQuery.easing
- jQuery-ui
- Hammer.js
- IguanaChart
Программа распространяется под лицензией GPL 3.0

