Оценка Heat, член за членом
Heat это ограниченная оценка от 0 до 100, которая ранжирует мем-коин по тому, сколько в нём происходит прямо сейчас, измеряя это относительно его собственного размера, а не относительно остального рынка. Она вычисляется на сервере одной функцией, и эта страница документирует каждый её член.
На какой вопрос отвечает Heat
Колонка рыночной капитализации ранжирует самые крупные монеты. Колонка объёма за 24 часа снова ранжирует самые крупные, потому что объём растёт вместе с размером: крупнейший пул на доске наторгует больше маленького в спокойный день, даже если внутри него ничего не происходит.
Heat задаёт другой вопрос. Где движутся деньги относительно размера того, в чём они движутся; движутся ли они сильнее за последний час, чем раньше; кто это движение создаёт, покупатели или продавцы; и достаточно ли глубок пул, чтобы хоть что-то из этого было настоящим.
Каждый член ограничен. Это проектное ограничение, вокруг которого построена вся оценка: ни один отдельный вход не может захватить рейтинг. Монета, выросшая на четыре тысячи процентов, не может похоронить монету, выросшую на шестьдесят процентов, одной лишь ценой, а очень крупный пул не может купить место объёмом, который он едва оборачивает.
Устройство оценки
Пять взвешенных компонентов дают оценку активности от 0 до 1. Затем она умножается на направляющий множитель и на применимые штрафы, ограничивается и выводится по шкале от 0 до 100 с одним знаком после запятой.
activity = SUM( weight[i] * part[i] ) for the five parts below
score = activity * direction * PRODUCT(penalties)
reported = round( clamp(score, 0, 1) * 100, 1 )
Веса в сумме дают ровно единицу, поэтому член активности уже ограничен диапазоном от 0 до 1 ещё до того, как к нему что-либо применяется.
| Компонент | Вес | На что отвечает |
|---|---|---|
| Turnover | 0.30 | Объём относительно собственного размера монеты |
| Momentum | 0.22 | Куда цена действительно пришла, с затуханием |
| Acceleration | 0.20 | Горячее ли последний час, чем последние шесть |
| Buy pressure | 0.14 | Какая сторона торгует |
| Freshness | 0.14 | Насколько молод пул |
Две ограничивающие функции
Обе функции существуют, чтобы превратить неограниченную величину в ограниченную без жёсткого обрезания. Каждая принимает параметр перегиба, то значение, при котором выход достигает половины. Ниже него функция почти линейна, выше она выходит на насыщение.
soft(v, mid) = v / (v + mid) for v > 0, else 0
signed(pct, mid) = sign(pct) * soft(|pct|, mid)
Выбор точки перегиба это и есть место, где живёт суждение, и единственное место, где значение утверждается, а не измеряется. Каждое приведено ниже с обоснованием.
Оборачиваемость, вес 0,30
Основной сигнал. Объём за последние 24 часа, делённый на размер монеты, так что маленький пул, оборачивающий весь свой free float, получает больше, чем крупный пул, оборачивающий лишь его долю.
size = max( 1, min( marketCap, liquidity * 40 ) )
turnover = soft( volume24h / size, 0.35 )
Знаменатель берёт меньшее из заявленной капитализации и сорокакратной ликвидности пула. Эта защита важна: токен может заявить почти любую капитализацию, выпустив предложение, которого никто не держит, и деление на это раздутое число заставило бы очень активную монету выглядеть спокойной. Ограничение знаменателя сорокакратным размером реального пула не даёт фиктивной капитализации скрыть активность и не даёт тонкому пулу казаться оживлённее, чем он есть.
Перегиб 0,35 означает, что монета, оборачивающая тридцать пять процентов своего размера за день, получает половину баллов по этому члену. При отсутствии капитализации используется полностью разводнённая оценка.
Ускорение, вес 0,20
Именно это отделяет монету, которая движется сейчас, от монеты, которая двигалась утром. Сравнивается последний час с шестичасовым темпом и добавляется краткосрочный член за последние пять минут.
accel = max(0, h1 - h6/6) + max(0, m5 * 3)
acceleration = soft( accel, 12 )
У обоих членов нижняя граница ноль, поэтому остывающая монета просто не получает здесь баллов, а не уходит в минус и не борется с остальными компонентами. Деление шестичасового изменения на шесть переводит его в часовую скорость, чтобы сравнение было сопоставимым. Перегиб 12 означает, что монета, идущая примерно на двенадцать процентных пунктов в час быстрее собственного недавнего темпа, получает половину баллов.
Импульс, вес 0,22
Куда цена действительно пришла, на двух горизонтах, с сильным затуханием, чтобы старая парабола угасала, а не удерживала вершину доски целый день.
raw = 0.65 * signed(change24h, 45) + 0.35 * signed(change6h, 20)
momentum = clamp(raw, -1, 1) * 0.5 + 0.5
Точки перегиба говорят, что день на 45 процентов и шесть часов на 20 процентов стоят по половине баллов каждый на своём горизонте. Последняя строка переносит знаковый результат в диапазон от 0 до 1, поэтому стоящая на месте монета оказывается на 0,5, а не на нуле, а падающая получает баллы ниже середины, а не исключается вовсе.
Давление покупателей, вес 0,14
Какая сторона торгует, взвешенно по количеству свидетельств. Соотношение покупок девять к одному на одиннадцати сделках значит очень мало; то же соотношение на двух тысячах сделок значит очень много.
ratio = buys / (buys + sells) 0.5 when there are no trades
confidence = soft( buys + sells, 150 )
buyPressure = 0.5 + (ratio - 0.5) * confidence * 2
Ключевая часть это коэффициент уверенности. При малом числе сделок член схлопывается к нейтральным 0,5, каким бы перекошенным ни выглядело соотношение, поэтому горстка сделок не может сфабриковать сигнал. На 150 сделках соотношение засчитывается вполсилы и дальше приближается к полной силе.
Свежесть, вес 0,14
Экспоненциальное затухание по возрасту пула с постоянной времени 96 часов.
freshness = exp( -ageHours / 96 ) 0.25 when the age is unknown
Это даёт почти полный балл в первый день, около 0,47 на трёх днях, около 0,13 на неделе и около 0,03 после двух недель. Это самый пристрастный член оценки, и включён он по одной причине: мем-движения подавляюще часто начинаются в молодых пулах. Токену, возраст которого установить не удаётся, даётся фиксированные 0,25, а не ноль и не максимум, так что отсутствующая отметка времени его ни поощряет, ни уничтожает.
Направляющий множитель
Одной активности недостаточно, чтобы считаться жаром, и на практике именно эта поправка важнее всего. Монета, обваливающаяся на семьдесят процентов, печатает огромный объём, резко ускоряется и показывает высокое число сделок, пока все уходят. По одним лишь членам активности она возглавляет доску. Это рейтинг, который никто не хочет читать.
direction = clamp( 0.55 + 0.45 * signed(change24h, 45)
+ 0.25 * max(0, signed(change1h, 8)),
0.12, 1.15 )
Оценка активности умножается на этот множитель. Монета, потерявшая за день 70 процентов и не восстановившаяся за последний час, сохраняет около 28 процентов своей оценки активности. Монета, которая упала, но отскакивает в последний час, сохраняет заметно больше, потому что отскок после сброса действительно интересен. Растущую монету оставляют как есть или поднимают не более чем на пятнадцать процентов.
Нижняя граница 0,12, а не ноль, выбрана намеренно. Резкий обвал следует опускать вниз доски, а не стирать с неё: это по-прежнему информация, и скрывать её значило бы сделать рейтинг менее честным, а не более безопасным.
Штрафы
Направление берёт на себя множитель. Штрафы берут на себя другой класс проблем: условия, при которых высокая оценка становится бессмысленной, а не просто завышенной. Каждый из них множитель, поэтому они накапливаются.
| Условие | Множитель | Почему |
|---|---|---|
| liquidity < $15,000 | liquidity / 15,000, floored at 0.15 | Ниже этой глубины входы выше это в основном шум |
| liquidity = 0 | 0.15 | Не против чего торговать |
| marketCap / liquidity > 5,000 | 0.35 | Оценка, далеко превосходящая поддерживающий её пул |
| trades < 10 | 0.4 | Им почти никто не торгует, что бы ни показывал график |
| price is stale | 0.5 | Цена, которой мы больше не доверяем, не должна возглавлять живой рейтинг |
Как распределение выглядит на самом деле
Приведённые ниже цифры это замороженный снимок, а не живой запрос, чтобы их можно было проверить по тому же файлу, из которого написана эта страница. Скачайте его и пересчитайте.
/data/heat-snapshot.json снимок от 2026-09-09
| Показатель | Значение |
|---|---|
| Оценено токенов | 336 |
| Наивысшая оценка | 59.7 |
| 90-й процентиль | 23.1 |
| Медиана | 11.4 |
| 10-й процентиль | 7.6 |
| Наименьшая оценка | 0.2 |
| На отметке 45 и выше | 5 |
Важна именно форма. Медиана держится около 11, и в любом снимке лишь считаные монеты переходят 45. Оценка в сорока с чем-то действительно необычна, и именно поэтому интерфейс отмечает монету как горячую начиная с 45. Оценка 90 не то, что эта функция создана производить: всем членам пришлось бы одновременно оказаться у своих потолков, при растущей цене и без единого штрафа.
Разбор на примере
Тот же снимок, вершина доски, каждый член показан таким, каким он вошёл во взвешенную сумму. Их создаёт сама функция оценки, а не её переписанная копия, поэтому эта таблица не может разойтись с кодом, который она документирует.
| Токен | Heat | Оборот | Ускор. | Импульс | Покупки | Свежесть | Напр. |
|---|---|---|---|---|---|---|---|
| DUO | 59.7 | 0.95 | 0.11 | 0.88 | 0.45 | 0.57 | 0.93 |
| USEFUL | 58.8 | 0.74 | 0.76 | 0.73 | 0.57 | 0.35 | 0.89 |
| PURR | 57.2 | 0.63 | 0.76 | 0.87 | 0.66 | 0.01 | 0.91 |
| Stonks | 46.8 | 0.84 | 0.41 | 0.61 | 0.59 | 0.26 | 0.8 |
| PURPS | 45.6 | 0.93 | 0 | 0.64 | 0.56 | 0.01 | 0.91 |
| BTC | 44.7 | 0.56 | 0 | 0.92 | 0.69 | 0.09 | 0.93 |
Прочитайте строку слева направо, и рейтинг объяснит себя сам. Монета может лидировать по оборачиваемости и не получить ничего по ускорению, что означает: деньги там есть, но движение не разгоняется. Другая может держать доску за счёт свежести и давления покупателей при скромной оборачиваемости, и это интересно уже по-другому.
Чем Heat не является
Heat измеряет активность. Это не рейтинг безопасности. Монета может быть предельно горячей и при этом ловушкой, и оценка намеренно не притворяется, будто это не так: штрафы понижают оценки, которые бессмысленны, а не оценки, которые опасны.
Это не прогноз. Ничто в функции не смотрит вперёд, и ни один член не подогнан под будущую доходность. Это сводка недавнего прошлого, ограниченная так, чтобы ни один вход не доминировал.
Это не инвестиционный совет. Мем-коины высокорискованны, и большинство из них теряет в цене. Прежде чем действовать, пользуйтесь проверками безопасности и страницей токена, а не одним числом.
Как воспроизвести
Определение одно, и оно работает на сервере, поэтому одна и та же оценка появляется и в таблице, и в порядке сортировки, и в API. Клиент никогда её не пересчитывает.
| Где | Что |
|---|---|
scripts/token-heat.mjs | Функция оценки и веса |
test/token-heat.test.mjs | Поведенческие тесты, фиксирующие эти числа |
GET /api/tokens | Возвращает heat и heatRank в каждой строке |
/data/heat-snapshot.json | Замороженный снимок, который цитирует эта страница |
Одну оговорку стоит сказать прямо. Сводные страницы, перечисляющие токены по сети, используют более простой порядок, вычисляемый при сборке: объём за 24 часа, взвешенный трендом за 24 часа, и описывают его на тех страницах ровно этими словами. Этот порядок не является колонкой Heat и не разделяет её границ.
Частые вопросы
- Высокая оценка Heat это сигнал к покупке?
- Нет. Heat измеряет, сколько активности у монеты относительно её размера за недавнее прошлое. В ней нет ни одного члена, смотрящего вперёд, и она не подогнана под будущую доходность. Обваливающаяся монета всё ещё может показывать реальную активность, именно поэтому существует направляющий множитель и именно поэтому оценка не является рейтингом безопасности.
- Почему оценка ограничена сотней, если объём не ограничен?
- Каждый компонент проходит через ограничивающую функцию, выходящую на насыщение, поэтому ни один вход не может захватить рейтинг. Без этого одна монета, выросшая на несколько тысяч процентов, или один очень крупный пул доминировали бы на доске за счёт единственного члена, а остальные четыре перестали бы что-либо значить.
- Почему молодой пул получает больше, чем старый?
- Свежесть имеет вес 0,14 и затухает экспоненциально с постоянной времени 96 часов, потому что мем-движения подавляюще часто начинаются в молодых пулах. Это самый пристрастный член оценки. В одиночку он монету не вытянет: при полном балле он даёт 14 пунктов до направляющего множителя и любых штрафов.
- Что происходит с монетой, у которой почти нет ликвидности?
- Ниже 15 000 долларов ликвидности оценка умножается на ликвидность, делённую на 15 000, с нижней границей 0,15. При полном отсутствии ликвидности множитель равен фиксированным 0,15. Входы по-прежнему вычисляются, им просто не доверяют возглавлять рейтинг.
- Совпадает ли колонка Heat с порядком на сводных страницах по сетям?
- Нет. Страницы сетей используют более простой порядок, вычисляемый при сборке: объём за 24 часа, взвешенный трендом за 24 часа, и прямо говорят об этом на странице. Колонка Heat это ограниченная оценка от 0 до 100, описанная здесь.
Keep reading
Nothing here is financial advice. Meme coins are high risk and most lose value. Read the full risk disclosure before trading.