Анатомія trading-cockpit: один екран, вісім віджетів і що їх живить
Референс-стіл розібраний плитка за плиткою — що таке кожен віджет, яке підключення його годує, які дроти з’єднують і що працює при закритій вкладці. Скоріше карта, ніж release note.
Більшість того, що ми публікуємо тут, — release note: щось вийшло, ось що воно робить. Цей пост іншого типу. Нічого з наведеного нижче не є новим. Це один готовий екран, розібраний, щоб ви побачили, як частини, які ми випускаємо окремо, насправді складаються разом.
Стіл — crypto cockpit: вісім віджетів на одному екрані, побудованих із публічних ринкових даних, без ключів ніде. Нічого в ньому особливого. У цьому і суть: кожну частину можна відтворити, просто описавши її.
Екран
- Свічки. Якірна плитка. Один символ, один інтервал, жива остання свічка. Усе інше на екрані або годує її, або слідує за нею.
- Глибина order book. Bids і asks як укладені стовпчики, щоб тонка книга була видима, а не здогадана.
- Watchlist. Кілька символів, один обраний. Ця плитка — кермо екрана — про це нижче.
- Баланси гаманця. Публічна адреса, лише читання, через wallet connection. Без підпису, без ключів, нічого затверджувати.
- Funding rates. Funding перпів за останні кілька вікон, позитивний і негативний з обох боків нульової лінії.
- Heatmap. Той самий всесвіт, що й у watchlist, з розміром і відтінком — для погляду, а не читання.
- Prediction markets. Що оцінює натовп, поруч із тим, що оцінює order book. Цікаво, коли вони не збігаються.
- Inbox алертів. Більшість дня порожній. Його наповнює bot, який працює з закритою вкладкою.
Екран — одна розстановка віджетів. Workspace містить кілька таких. Полотно вільне — ви розміщуєте елементи де хочете, а групи можуть складати плитки в мозаїки чи вкладки — але це полотно з краями, а не нескінченна площина, в якій губишся.
Простежте одну плитку до самого низу
Кожна плитка на цьому екрані має однакові чотири шари під собою. Візьмемо watchlist:
- Підключення. Один із 90 live connectors — тут публічні ринкові дані, які взагалі не потребують облікових даних. Підключення — це інвентар, а не конфігурація: ви прикріплюєте одне до віджета, і віджет перебудовується, знаючи, як ним користуватися.
- Згенерований код. Ви описали watchlist; build написав її. Є історія версій, і можна прочитати кожен хід розмови, що її створив.
- Працюючий віджет. Виконується в sandbox. Віджет, що поводиться погано, псує лише свою плитку і нічого більше на екрані — єдина причина, чому розумно запускати код, який ви не читали.
- Wire назовні. Плитка емітить, коли ви клікаєте рядок. Сама по собі це нікуди не веде. Те, що робить з цього cockpit, а не вісім окремих плиток, — наступна частина.
Тримає разом wiring, а не код
За одним словом wire стоять два механізми, і відмінність видно на діаграмі як суцільне проти пунктирного:
- Widget to widget — це glue link: справжній згенерований код зі своєю історією версій, що працює у власному прихованому runtime і мапить те, що емітить одна плитка, на те, що очікує інша. Дуга між watchlist і графіком двостороння: змініть символ в будь-якому з них — обидва слідують. Двосторонні wire без допомоги лунали б вічно, тому доставлене значення запам’ятовується, а ідентичний відскок відкидається один раз.
- Widget to connection, bot або agent — це attachment: запис того, чому rebuild навчив власний код віджета. Це пунктирні лінії. Поетапно, а не автоматично — переглянути п’ять джерел поспіль коштує один rebuild, а не п’ять.
На цьому екрані wiring навмисно тонкий: watchlist керує графіком в обидва боки і order book з funding — в один. Три wire. Четвертий для heatmap спокушав і був помилкою — плитка, що змінюється, коли ви на неї не дивитеся, — плитка, якій ви перестаєте довіряти.
Редактор wire має панель Тест саме для цього. Оберіть topic і value, визначте, який кінець прикидається емітентом, і надішліть справжню подію через справжній runtime. Вердикт відрізняє цей wire не працює від він спрацював, але нічого не переслав для цього topic від переслав, але того віджета немає на екрані, щоб прийняти. До цього зламаний wire і wire на інший екран виглядали однаково: нічого не відбувалося.
Що працює, коли вкладку закрито
Плитка 8 — єдина, що насправді не віджет у звичному сенсі. Це inbox, і його наповнює bot.
Bots навмисно негламурні — фіксований каталог процесорів (threshold, change, crossover, RSI, volume spike, digest, new trade, wallet activity, wallet balance) над рівно трьома типами речей: ринкові свічки, broker account, публічна адреса гаманця. У циклі немає моделі — саме тому один можна залишити на місяць. Коли спрацьовує, розходиться одразу в чотири місця: inbox алертів, widget bus (щоб плитка 8 оновлювалась наживо), webhook і підключена база даних.
Agents — інша половина, протилежної форми: загального призначення, з окремими grants для web search, social, market data, databases, memory та ін., на manual або trigger від 15 хвилин до щоденного. Agent — коли питання «підсумуй, що сталося за ніч», а не «скажи, коли це перетне те». Обидва годують плитку 8; лише один дешево залишити без нагляду.
Чого цей екран навмисно не робить
Він не торгує. Тут нічого не ставить ордер — це окремий grant, окремий connector, і поставити його на той самий екран, що heatmap, на який кидаєш погляд, — так трапляються аварії.
Він не зберігає ключ. Кожне джерело публічне: свічки, depth, funding, prediction markets, read-only адреса. Стіл, який можна передати комусь без відкликання чогось потім, цінніший за стіл із двома зайвими плитками.
І він не «закінчений», бо це не стан, якого досягає екран. Чесна версія цього розбору: layout вище — четвертий; перші три мали більше плиток і говорили менше.
Запустіть Nexow і опишіть першу плитку. Решта сім — простіше.
Побудуйте свій перший віджет на наступну хвилину
Попередній перегляд доступний й безплатний для спробування. Без реєстрації, без налаштування — просто опишіть, що ви хочете бачити.

