← Блог
автор: brotrades

Страницу сделок пересобрали — что изменилось и почему

На этой неделе мы пересобрали ту часть BroTrades, которой вы пользуетесь чаще всего: список ваших сделок и журнал к каждой из них. Здесь — каждое изменение, зачем мы его сделали и где ошибались по дороге.

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

Коротко

  • На этой неделе: сделки списком слева, выбранная сделка справа, журнал рядом с её уровнями.
  • На этой неделе: открытые позиции вверху списка с живым P&L, а их дата — от первого исполненного ордера.
  • На этой неделе: позиция, которую вы закрываете частями, остаётся одной сделкой в журнале и закрывается, когда части сойдутся.
  • Уже работает: тейк-профит, исполненный чуть дальше своей цены, помечен как TP, потому что так говорит биржа.
  • Уже работает: обновлённый календарь, автосинхронизация четыре раза в день и правильные множественные формы в украинской версии.

Скриншоты ниже сделаны на тестовом аккаунте с выдуманными сделками.

🗂 Список слева, сделка справа

Появится на этой неделе.

Дашборд BroTrades на широком экране: слева карточка баланса, три открытые позиции и закрытые сделки списком; справа закрытый лонг BTC с меткой TP и +2.72R, вверху вход, стоп, цель и выход, рядом все шесть ответов в журнале, ниже график входа

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

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

Справа:

  • Писать можно сразу. Первый вопрос без ответа уже стоит текстовым полем. Нажмите и пишите — кнопка сохранения появится, как только начнёте. После сохранения открывается следующий вопрос. С клавиатуры ⌘↵ сохраняет, Esc отменяет.
  • Журнал рядом с уровнями. Вход, стоп, цель, выход, размер и плечо — вверху, рядом с журналом, а не под графиком. Вы видите свой план, пока пишете, как всё прошло.
  • Причина закрытия — метка рядом с результатом: TP, SL, BE или «Вручную».
  • «Без журнала» оставляет в списке только сделки, о которых вы ещё не написали.
  • Стрелки, j/k или ↑/↓ переключают на следующую сделку.

На телефоне сначала список, а нажатие открывает сделку на весь экран с кнопками «Назад» и «Новее / Старее».

Дашборд BroTrades на телефоне: карточка баланса, список сделок с тремя открытыми позициями и их живым P&L, два лимитных ордера и первые закрытые сделки

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

Графики можно свернуть

Многие из вас разбирают график в TradingView, и наш график в журнале вам не нужен. Стрелка в строке Графики сворачивает их. Свёрнутые, они вообще не загружаются. Выбор сохраняется на вашем устройстве: на телефоне графики сначала свёрнуты, на больших экранах — развёрнуты.

Клик больше не грузит страницу

Раньше выбор сделки открывал новую страницу: на каждый клик сервер заново собирал весь дашборд. Сделка появлялась примерно за 0,4 с, а её графики — примерно за 1,5 с. Когда просматриваешь десять сделок подряд, это долго.

Теперь список уже содержит всё, что нужно для каждой сделки, так что клик просто меняет правую часть. В наших тестах сделка появляется быстрее чем за 0,1 с, а графики — за 0,1–0,3 с. Графики начинают грузиться, как только курсор останавливается на строке, а графики следующей сделки — пока вы читаете текущую.

📌 Открытые позиции — вверху списка

Появится на этой неделе.

Дашборд BroTrades с выбранным открытым шортом ETH: в списке три открытые позиции с меткой «Онлайн» и их P&L, два лимитных ордера в одной строке, дальше закрытые сделки; справа живой P&L, план и текущее положение в R, вход, стоп, цель, цена маркировки, безубыток и ликвидация, журнал со следующим вопросом, открытым для ответа, и график «С момента входа»

Раньше над сделками был отдельный блок «Активные позиции». Его больше нет. Открытые позиции теперь стоят вверху списка с живым P&L в каждой строке, а лимитные ордера свёрнуты в одну строку под ними.

Выберите открытую позицию — и справа будет видно, где она сейчас: P&L, сколько R она прошла относительно плана, цена маркировки, безубыток и ликвидация, а ещё журнал. Если вы ещё не начали вести по ней журнал, хватит одного нажатия.

Карточку баланса тоже перенесли в колонку со списком: общий капитал (его можно спрятать за «глазом»), P&L за сегодня и за месяц, процент прибыльных сделок за 30 дней и сколько сделок вы закрыли за 30 дней.

Живое обновление стало намного легче. Старый блок раз в минуту перерисовывал весь дашборд — это около 25 запросов в минуту из вашего браузера. Теперь страница спрашивает о позициях раз в минуту и только тогда, когда что-то открыто, вкладка на экране, а вы в сети. Один запрос в минуту, и сама страница больше не перезагружается.

Честная дата открытой позиции

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

Поэтому теперь мы читаем исполнения ваших ордеров и считаем позицию от первого из них. У открытой сделки один график, «С момента входа», с меткой на каждом исполнении: B — покупка, S — продажа. В лонге каждое добавление — это B, каждое частичное закрытие — S. Размер и вход показаны текущие, а не те, что были в день, когда вы начали журнал.

✂️ Частичные закрытия складываются в одну сделку

Появится на этой неделе.

Допустим, вы ведёте журнал по лонгу, пока он открыт, снимаете половину на первой цели, а остаток закрываете на следующий день. Биржа сообщает об этом как о двух ордерах на закрытие, у каждого свой P&L.

Раньше наша синхронизация закрывала сделку в журнале на первом из них. Сделка заканчивалась с половиной P&L, хотя позиция ещё была открыта, а вторая половина приходила отдельной сделкой без единой вашей заметки.

Теперь каждое частичное закрытие записывается в ту же сделку из журнала. Она остаётся открытой, пока закрытые части не сложатся в размер, который вы записали. Тогда она закрывается один раз — с суммарным P&L, суммарным размером и средними ценами входа и выхода. До этого её P&L остаётся нулевым, так что каждая часть учитывается ровно один раз: в статистике, календаре и профиле. Если биржа показывает, что позиции уже нет, а одной части не хватает, сделка всё равно закрывается, так что открытой навсегда она не останется.

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

🎯 Метки TP и SL берём у биржи

Уже работает.

Каждая закрытая сделка получает метку: TP, SL, BE или «Вручную». До сих пор мы угадывали её по цене: если выход был в пределах 0,2% от цели, это TP.

Но тейк-профит обычно запускает рыночный ордер, когда цена касается цели, и этот ордер может исполниться чуть дальше. Один шорт, закрытый собственным тейк-профитом, исполнился на 0,33% за целью — и мы пометили его как «Вручную».

Биржа и так говорит, каким ордером закрыта позиция. Теперь, если Bybit сообщает, что позицию закрыл ваш тейк-профит или стоп-лосс, метка будет именно такой. Стоп, сработавший в плюсе, потому что вы перенесли его за вход, помечен как BE. Правило 0,2% осталось запасным — на случай, когда биржа ничего не говорит. Синхронизация переразмечает сделки Bybit за последние семь дней; более старые пока сохраняют свою метку. Для Binance та же проверка работает на ордерах, которые мы и так получаем, но на настоящих данных Binance мы её ещё не видели.

📅 Календарь, который читается с одного взгляда

Уже работает.

Календарь BroTrades за месяц на широком экране: чистый P&L +$13.6k, процент прибыльных сделок, число сделок, EV и профит-фактор в одной строке, дальше сетка дней с зелёным и красным P&L; день больше десяти тысяч показан как +13.4k, итог недели — как +12.3k

Мы пересобрали месячный, недельный и годовой вид календаря и сделали для него нормальную версию на телефоне.

  • Большие суммы — коротко. От 10 000 суммы пишутся как +17.5k или +1.2M, так что помещаются в клетку дня.
  • Дни — по киевскому времени. Сделка, закрытая сразу после полуночи, попадала не в тот день, и нажатие на день её не показывало. Теперь день и список его сделок совпадают.
  • Пустой месяц подсказывает. Если в месяце нет сделок, календарь называет ближайшие дни, где они есть.
  • Валюты больше не смешиваются (появится вместе с видом в две колонки). Если за период есть сделки и в EUR, и в USD, мы больше не складываем их вместе. Чистый P&L показывает «—» с подсказкой «Разные валюты».

👥 Публичный профиль в том же виде

Появится на этой неделе.

Публичный профиль BroTrades глазами посетителя без входа: имя с логотипом школы TaranenkoTrade рядом, карточка результатов с чистым P&L и маленькой кривой капитала, процент прибыльных сделок, профит-фактор и текущая серия, три открытые позиции, дальше сделки списком рядом с выбранной сделкой

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

Карточка результатов вверху избавилась от серого мелкого текста. Каждый показатель — это название и значение: чистый P&L, процент прибыльных сделок, профит-фактор, текущая серия, средний R, лучшая сделка, среднее время удержания. Где маленькая картинка говорит больше предложения, она есть: кривая капитала рядом с чистым P&L, полоска под процентом прибыльных. Доллары — целые. Подробности никуда не делись: на компьютере наведите курсор на показатель.

Почему так: мы всё время добавляли ещё одно число. Каждая лишняя строка прятала те, что действительно важны.

🔄 Ещё два исправления

Уже работает.

  • Автосинхронизация четыре раза в день. Сделки с биржи теперь синхронизируются в 01:00, 10:00, 15:00 и 19:00 по Киеву, а не раз в день. Кнопка синхронизации на дашборде работает в любое время.
  • Украинские множественные формы. У наших украинских страниц код ua. Это код страны, а не языка (язык — uk). Библиотека форматирования его не узнавала и переходила на английские правила, так что приложение писало «5 угоди» вместо «5 угод». Теперь везде действуют украинские правила, а числа и даты тоже в украинском формате. Русской версии это не коснулось.

💡 Чему мы научились

  • Запись биржи надёжнее догадки. Мы размечали закрытия по цене, потому что это было просто. А биржа уже знала, какой ордер закрыл сделку. Если ответ уже есть в ваших данных, прочитайте его.
  • Дата от биржи может значить совсем другое. «Позиция создана» звучало как день, когда вы открыли сделку. На деле это был день создания слота, на несколько месяцев раньше. Прежде чем что-то строить на поле, проверьте на настоящем аккаунте, что оно значит.
  • Один ордер на закрытие — ещё не одна сделка. Биржи сообщают о закрытии частями. Журнал должен собрать их обратно.
  • Новая страница на каждый клик — слишком медленно для журнала. Сделки просматривают одну за другой. Когда клик стал занимать не 0,4 с, а меньше 0,1 с, страница начала ощущаться иначе — сильнее, чем от любого нового макета.
  • Меньше чисел — лучше. Каждая серая строка по отдельности казалась полезной. Вместе они прятали цифры, которые имеют значение.

Как попробовать

  1. Откройте свой дашборд.
  2. Выберите сделку и ответьте на первый вопрос, пока помните.
  3. Нажмите Без журнала, чтобы найти сделки, о которых вы ещё не написали.

Журнал, заполненный в тот же день, стоит больше, чем идеальный, который вы когда-то собирались написать.