BLACKBENCH

Все работы polygangster


Трейдинг · бэктесты · 2026

polygangster


Бэктест стратегии order block на реальных котировках бинарных опционов Polymarket.

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

Цифры

7
инструментов
4
таймфрейма: 5m, 15m, 1h, 4h
~50
модулей TypeScript
2
источника котировок: Binance и MetaTrader 5

Задача

У заказчика есть стратегия на order block из Smart Money Concepts и вопрос к ней: выживает ли она на настоящих ценах бинарных опционов. Считать на условной выплате 1:1 бессмысленно — на Polymarket цена ставки меняется поминутно, и один и тот же сигнал в разное время даёт разный результат. Значит, проверять надо на тех котировках, которые действительно стояли в стакане в момент входа.

Тут вмешивается устройство самих данных: Polymarket держит историю котировок около 30 дней, а книги заявок удаляет при расчёте рынка. Без собственного хранилища глубина проверки не растёт, а тает — вчерашний день уже не восстановить. Поэтому вопрос «на каком периоде вообще можно тестировать» здесь инженерный, а не аналитический. И ответ инструмента «стратегия не работает» — такой же законный результат, как и любой другой: ради этого бэктест и пишется.

Решение

Синхронизация копит котировки Polymarket вперёд и хранит их после того, как Polymarket их удаляет: глубина бэктеста равна времени, которое сервис проработал, а не тридцатидневному окну биржи.

Свечи Binance и MetaTrader 5 и котировки Polymarket синхронизируются независимо — у каждого источника свой бэкфилл и свой статус, поэтому сбой одного не портит данные другого и не останавливает расчёт.

Каждая ставка хранит геометрию сработавшего order block, глубину стакана на входе и торговый объём рынка. По журналу видно, почему сделка открылась, а не только чем закончилась, — и один и тот же сигнал можно пересчитать при других параметрах.

Стратегия описывается набором структур (OB-EXT, OB-IDM, SMT и их внутренние варианты) с лотами и таймфреймами. Тот же набор настроек запускает бэктест, dry-run и боевую сессию — режимы отличаются флагом, а не веткой кода, поэтому результаты сравнимы между собой.

Сессия ведётся с уведомлениями в Telegram и журналом сделок, а инструменты включаются по паре «монета × таймфрейм» — считается только то, что реально загружено.

Экраны

Синтетические данные. Все экраны этого кейса сняты с отдельной демо-базы polygangster_demo, заполненной генератором случайных чисел, а не с боевого архива: бэктесты, ставки и PnL на них ничего не измеряют и не описывают ни одного результата торговли.

Постановка бэктеста: инструменты, таймфреймы, набор структур и параметры ставки; ниже — журнал прошедших сессий. Win rate и PnL в этом журнале посчитаны по сгенерированным ставкам из изолированной демо-базы: они ничего не измеряют и ничего не обещают.
Свечи с размеченными order block: зелёный блок — ставка вниз, красный — вверх; ниже инспектор всех блоков со статусом «жив» или «затронут».
Загрузка и синхронизация: 7 инструментов на 4 таймфрейма в каталоге, включены три — BTC, ETH и SOL на 15m. У Binance и Polymarket отдельные статусы и своя глубина бэкфилла.
Каталог символов Binance: 200 символов на пять таймфреймов; включены те же три, и число загруженных свечей показано только у них.
Торговая сессия: dry-run на тех же настройках, что и бэктест; боевой режим — отдельный флаг, уведомления уходят в Telegram.

Стек

TypeScript, ~50 модулей
Веб-консоль на Vite
PostgreSQL для котировок, свечей и сессий
Polymarket, Binance, MetaTrader 5
Уведомления в Telegram