+Впервые на top traders desk?
Деск сам считает рынок и публикует решения рядом со счётом, который по ним торгует. Короткий маршрут:
toptraders · кросс-лаборатория v2 · отчёт алгоритма
momts 4h, лонг и шорт — алгоритм фазы «бычка»
xl-momts-4h-ls · бар 4h · окно 2020-09-01 — 2026-08-13 · инструментов 548 · книга 1 млн $
Плечо 1.0: потерять больше счёта нельзя. Хеджа нет. Шорт есть, и он платит фандинг в свою сторону.
1. Что оно делает
- Вход: моментум временного ряда: доходность за окно вышла за полосу вокруг нуля
- Фильтр: цена выше своей длинной скользящей средней — сторона рынка совпадает со стороной правила
- Выход: по перевороту сигнала: позиция закрывается, когда то же правило печатает противоположный знак
- Сторона: лонг и шорт
- Решение принимается на закрытии бара, заявка идёт на открытии следующего. Данных после сигнального бара правило не видит.
2. Два ограничения
Плечо 1.0, хеджа нет: потерять больше счёта нельзя ни при каком движении цены.
Обе стороны сразу по одному инструменту не открываются; доля счёта держит одну позицию за раз. Шорт платит фандинг в свою сторону, и это учтено в каждом числе выше.
Кривая капитала
3. Контроли: с чем сравнивали
Каждое число выше сравнивается с распределением, а не со средним. p95 означает: пять процентов случайных прогонов вышли лучше этого уровня. Правило, стоящее внутри облака, ничего не доказало.
| с чем сравниваем | прогонов | правило | медиана контроля | p95 контроля | вывод |
|---|---|---|---|---|---|
| правило | — | +72% | — | — | — |
| случайный вход | 200 | +72% | +0% | +20% | бьёт p95 |
| перестановка имён | 200 | +72% | +0% | +8% | бьёт p95 |
| перестановка фильтра | 60 | +72% | +15% | +42% | бьёт p95 |
| случайный вход фазы «бычка» | 60 | +74% | +9% | +41% | бьёт p95 |
| альт-индекс: держать весь список | — | +72% | -18% | — | правило впереди |
| BTC купил-держит | — | +72% | +432% | — | обходит правило |
У каждого контроля напечатано число прогонов: p95 без своего n — это не полоса, а одно число неизвестной точности. Перестановка имён берёт ОДНУ фиксированную перестановку на прогон и держит её всё окно; перетасовка на каждом баре платила бы оборот, которого настоящая книга не платит, и занижала бы контроль.
Случайный вход своей фазы считается на той же фазе, а не на всём окне: сравнивать фазовый результат с полным итогом шума значило бы сравнивать три года с одним.
4. Чем оно торговало
Список инструментов собран поквартально по долларовому обороту, без отбора по дожившим: имя, бывшее большим и умершее, торгуется тем кварталом, в котором стояло в верхушке. Измерено имён: 548. Сделок в окне: 9029, сделок, начатых до окна: 0.
Не торговалось никогда: имена, которыми деск не торгует, плечевые токены и всё, что за швом ряда — за швом стоит другой инструмент.
5. Аудит тайминга
Вердикт: clean. Проверено сделок: 100 из 9029. Расхождений: 0.
DSR и число проб
| величина | число |
|---|---|
| DSR | 0.002 |
| порог | 0.50 |
| проб всего | 17046 |
| sharpe годовой | 0.45 |
| ожидаемый максимум шума | 1.64 |
Остальные метрики
Шесть плиток сверху — заголовок, а не набор. Ниже он целиком, включая проверку хвоста: доля лучших трёх сделок и итог без них. Одно без другого читается неправильно в обе стороны.
| величина | число |
|---|---|
| sortino | 0.66 |
| calmar | 0.16 |
| pf | 1.19 |
| recovery | 1.20 |
| застой, дней | 1033 |
| время в рынке | +30% |
| медиана сделки | -3.0% |
| медиана сделки в R | -0.958 |
| средняя сделка в R | 0.632 |
| выигрыш к убытку | 1.99 |
| убытков подряд | 62 |
| лучший месяц | +38.4% |
| худший месяц | -19.3% |
| положительных месяцев | +51% |
| доля лучших трёх сделок | +17.8% |
| итого без лучших трёх | +10646% |
Распределение сделок в R
R — сколько единиц риска принесла закрытая сделка. В паспорте лежат процентили, а не корзины, поэтому здесь стоят они: гистограмма по пяти числам дорисовала бы форму, которой никто не мерил.
| точка распределения | R |
|---|---|
| p5 | -10.06 |
| p25 | -2.87 |
| p50 | -0.96 |
| p75 | 2.13 |
| p95 | 13.22 |
| худшая сделка | -39.50 |
| средний убыток | -3.68 |
| средний выигрыш | 7.33 |
| лучшая сделка | 302.92 |
Правила целиком
Поле и что оно значит. Порогов, окон и множителей здесь нет: по ним алгоритм повторяется, и деск их не печатает. Бот читает их из внутреннего файла на своей машине.
| поле | что это значит |
|---|---|
| таймфрейм | бар 4h; решение на закрытии бара, исполнение на открытии следующего |
| вход | моментум временного ряда: доходность за окно вышла за полосу вокруг нуля |
| сторона | лонг и шорт |
| фильтр | цена выше своей длинной скользящей средней — сторона рынка совпадает со стороной правила |
| выход | по перевороту сигнала: позиция закрывается, когда то же правило печатает противоположный знак |
| проверка выхода | закрытие бара — то же правило, по которому вошли |
| исполнение выхода | открытие следующего бара после переворота знака |
| стоп внутри бара | нет: срабатывание считается по закрытию — иначе тест увидел бы цену, которой в момент решения не было |
| трейлинг | нет |
| усреднение | нет |
| % позиции от депозита | равные доли: счёт делится на список инструментов, каждая доля компаундит внутри себя |
| позиций одновременно | по одной на инструмент списка; доля держит одну позицию за раз |
| список инструментов | корзина таймфрейма: имена ранжируются по долларовому обороту поквартально, состав квартала известен на его первый день; измерено имён: 548 |
| исключено | имена, которыми деск не торгует; плечевые токены; ряд делится по швам, и доходность через шов не считается никогда |
| окно и его причина | 2020-09-01 — 2026-08-13; окно у каждого бара своё и печатается, а не обобщается |
| издержки | 0.1% на сторону: перп-тейкер и проскальзывание; фандинг начисляется всегда, лонг платит, шорт получает |
| плечо / шорт / хедж | 1.0 / есть / нет |
| движок | тот же файл считает и бэктест, и книгу бота |
Доходность по годам
Годы посчитаны из тех же месяцев, что и сетка ниже. Неполный год подписан диапазоном месяцев. У контролей помесячного ряда в артефакте нет — напечатан только их итог окна, и придумывать им годовые числа деск не станет.
| год | итого |
|---|---|
| 2020 (09-12) | +3.1% |
| 2021 | +87.7% |
| 2022 | -26.9% |
| 2023 | +21.7% |
| 2024 | +65.0% |
| 2025 | -42.6% |
| 2026 (01-08) | +5.2% |
| BTC купил-держит за всё окно | +431.9% |
| альт-индекс за всё окно | -18.2% |
Форма результата
Четыре фигуры ниже построены из тех же опубликованных величин, что и таблицы: помесячная сетка, просадка, sharpe окном и сделки в R. Настроек правила в них нет.
По месяцам
Знак месяца — цветом, величина — насыщенностью.
Просадка во времени
Сколько книга провела ниже своего максимума. Это честнее одного числа худшей просадки: видно и глубину, и длину.
Sharpe скользящим окном в шесть месяцев
Окно одно на все отчёты деска. Видно, куплен ли sharpe одним удачным отрезком.
Сделки в единицах риска
Половины окна
| отрезок | итого | годовых | просадка | sharpe | сделок | прибыльных |
|---|---|---|---|---|---|---|
| 2020-09-01..2023-08-23 | +30% | +9.3% | -46.0% | 0.44 | 4143 | +38% |
| 2023-08-23..2026-08-13 | +32% | +9.8% | -59.7% | 0.46 | 4886 | +40% |
| часть подбора | +137% | — | — | 0.84 | — | — |
| часть проверки | -28% | — | — | -0.44 | — | — |
Фазы цикла
Алгоритм не обязан работать во всех фазах. Лучшая фаза стоит в заголовке; вне своей фазы стата печатается тоже, и просадка вне фазы — часть паспорта, а не примечание.
| фаза | дней | доля времени | итого | годовых | sharpe | просадка |
|---|---|---|---|---|---|---|
| бычка | 1164 | 54% | +74.4% | +19.0% | 0.67 | -60.9% |
| медвежка | 605 | 28% | +5.7% | +3.4% | 0.27 | -15.5% |
| аккумуляция | 403 | 19% | -6.9% | -6.2% | -0.06 | -39.1% |
Издержки и фандинг
| прогон | итого | sharpe | разница с базой |
|---|---|---|---|
| x0 от тарифа | +86% | 0.49 | +14.4% |
| x2 от тарифа | +59% | 0.41 | -12.6% |
| x3 от тарифа | +48% | 0.37 | -23.7% |
| без фандинга | +97% | 0.52 | -25.5% |
На 1 млн $
| книга | итого | sharpe | просадка | сделок | заявок не влезло | доля пропусков |
|---|---|---|---|---|---|---|
| на бумаге | +72% | 0.45 | -59.7% | 9029 | — | — |
| 250 тыс. $ | +72% | 0.45 | -59.7% | 9027 | 7 | 0% |
| 500 тыс. $ | +72% | 0.45 | -59.7% | 9027 | 7 | 0% |
| 1 млн $ | +72% | 0.45 | -59.7% | 9027 | 7 | 0% |
| 2 млн $ | +72% | 0.45 | -59.7% | 9027 | 7 | 0% |
| 4 млн $ | +72% | 0.45 | -59.7% | 9027 | 7 | 0% |
- ВЫХОД ИСПОЛНЯЕТСЯ ВСЕГДА: позицию нельзя не закрыть, и перп, который деск держит, будет закрыт по любой цене. Потолок доли бара поэтому действует только на вход, а добавка выхода ограничена min(участие, 1), то есть потолком bps_at_full. Сколько выходов не влезло в свой бар — в поле exits_over_cap, самый тяжёлый — в max_exit_participation
- ВЫХОД НА БАРЕ БЕЗ ОБОРОТА считается отдельно (exits_without_turnover) и в max_exit_participation не входит: там участие неизмеримо, а не бесконечно велико. Пустое max_exit_participation означает «ни одного выхода с измеримым участием», а не «выходы бара не занимали»
- УЧАСТИЕ СЧИТАЕТСЯ ОТ ПОЛНОГО ОБОРОТА БАРА, то есть от величины, известной только на его закрытии; настоящая заявка видит книгу в момент отправки. Ошибка оптимистичная, поэтому доля пропусков здесь — НИЖНЯЯ граница
- модель не знает стакана: она не различает бар, оборот которого сделан одной сделкой, и бар, набранный тысячей
- ВЫХОД БАРА t ИСПОЛНЯЕТСЯ БОТОМ НА ОТКРЫТИИ t+1. Это системная оговорка бумажной топологии деска: движок закрывает сделку по своему правилу, а счёт бота двигается на следующем баре. Разница между ними — цена расписания, а не правила.
6. Что это оставляет
КОНТРОЛЬ НЕ ПРОЙДЕН: dsr, sharpe
Не пройдено: DSR, sharpe. Счёт и строка в админке такому алгоритму не заводятся. Строка остаётся здесь, потому что отрицательный результат публикуется так же, как выигравший.