방법론

Heat 점수, 항목별로

Heat는 0에서 100 사이의 유계 점수로, 밈코인을 시장 전체가 아니라 그 코인 자신의 규모에 견주어 지금 얼마나 많은 일이 벌어지고 있는지로 정렬합니다. 서버에서 단일 함수로 계산하며, 이 문서는 그 함수의 모든 항을 기록합니다.

Heat가 답하는 질문

시가총액 열은 가장 큰 코인을 위로 올립니다. 24시간 거래량 열도 결국 가장 큰 코인을 다시 위로 올립니다. 거래량은 규모에 비례하기 때문입니다. 한산한 날에는 보드에서 가장 큰 풀이 안에서 아무 일도 일어나지 않아도 작은 풀보다 더 많이 거래됩니다.

Heat는 다른 질문을 던집니다. 돈이 움직이는 대상의 규모에 견주어 돈은 어디에서 움직이고 있는가, 지난 한 시간이 그 이전보다 더 세게 움직이는가, 그 움직임을 만드는 쪽이 매수자인가 매도자인가, 그리고 그중 무엇이라도 실체가 되기에 풀이 충분히 깊은가.

모든 항은 유계입니다. 점수 전체가 그 설계 제약을 중심으로 만들어졌습니다. 어떤 단일 입력도 순위를 독차지할 수 없습니다. 4000퍼센트 오른 코인이 가격만으로 60퍼센트 오른 코인을 묻어버릴 수 없고, 아주 큰 풀이 거의 회전시키지 않는 거래량으로 순위를 살 수도 없습니다.

점수의 구조

다섯 개의 가중 구성요소가 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 )

가중치의 합은 정확히 1이므로, 활동 항은 무언가가 적용되기 전에 이미 0에서 1 범위로 제한되어 있습니다.

구성요소 가중치 무엇에 답하는가
Turnover0.30코인 자신의 규모 대비 거래량
Momentum0.22가격이 실제로 어디까지 갔는가, 감쇠 적용
Acceleration0.20지난 한 시간이 지난 여섯 시간보다 뜨거운가
Buy pressure0.14어느 쪽이 거래하고 있는가
Freshness0.14풀이 얼마나 어린가

두 개의 유계화 함수

두 함수 모두 무계 수치를 급격한 절단 없이 유계로 바꾸기 위해 존재합니다. 각각 무릎점 매개변수를 받는데, 출력이 절반에 도달하는 값입니다. 그 아래에서는 거의 선형이고, 그 위에서는 포화합니다.

soft(v, mid)     = v / (v + mid)                 for v > 0, else 0
signed(pct, mid) = sign(pct) * soft(|pct|, mid)

무릎점의 선택이 바로 판단이 자리한 지점이며, 값이 측정이 아니라 주장으로 정해지는 유일한 곳입니다. 아래에 각각을 근거와 함께 밝혔습니다.

회전율, 가중치 0.30

핵심 신호입니다. 지난 24시간 거래량을 코인의 규모로 나눕니다. 그래서 유통량 전부를 회전시킨 작은 풀이, 아주 일부만 회전시킨 큰 풀보다 높은 점수를 받습니다.

size     = max( 1, min( marketCap, liquidity * 40 ) )
turnover = soft( volume24h / size, 0.35 )

분모는 신고된 시가총액과 풀 유동성의 40배 중 작은 쪽을 취합니다. 이 안전장치가 중요합니다. 토큰은 아무도 보유하지 않는 공급을 발행해 거의 원하는 대로 시가총액을 신고할 수 있고, 그 부풀린 숫자로 나누면 아주 활발한 코인이 잠잠해 보이게 됩니다. 분모를 실제 풀의 40배로 제한하면 허구의 시가총액이 활동을 가리는 것도, 얇은 풀이 실제보다 활발해 보이는 것도 막습니다.

무릎점 0.35는 하루에 자기 규모의 35퍼센트를 회전시킨 코인이 이 항에서 절반 점수를 받는다는 뜻입니다. 시가총액이 없으면 완전 희석 가치로 대체합니다.

가속, 가중치 0.20

지금 움직이는 코인과 오늘 아침에 움직였던 코인을 가르는 것이 이 항입니다. 지난 한 시간을 6시간 진행 속도와 비교하고, 최근 5분에 대한 단기 항을 더합니다.

accel        = max(0, h1 - h6/6) + max(0, m5 * 3)
acceleration = soft( accel, 12 )

두 항 모두 하한이 0이라, 식어가는 코인은 음수가 되어 다른 구성요소와 싸우는 대신 여기서 그냥 점수를 받지 못합니다. 6시간 변동을 6으로 나누면 시간당 비율이 되어 비교가 동등해집니다. 무릎점 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퍼센트의 6시간이 각자의 구간에서 절반 점수에 해당한다고 말합니다. 마지막 줄은 부호가 있는 결과를 0에서 1로 다시 매핑하므로, 횡보하는 코인은 0이 아니라 0.5에 놓이고, 하락하는 코인은 배제되는 대신 중간점 아래 점수를 받습니다.

매수 압력, 가중치 0.14

어느 쪽이 거래하고 있는지를, 근거가 얼마나 되는지로 가중합니다. 열한 건의 거래에서 9대1의 매수 비율은 거의 의미가 없지만, 이천 건의 거래에서 같은 비율은 대단히 큰 의미를 가집니다.

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

첫날에는 거의 만점, 3일에 약 0.47, 일주일에 약 0.13, 2주 뒤에는 약 0.03이 됩니다. 점수에서 가장 주관이 뚜렷한 항이며, 포함한 이유는 하나입니다. 밈의 움직임은 압도적으로 어린 풀에서 시작하기 때문입니다. 나이를 확인할 수 없는 토큰에는 0이나 만점 대신 고정값 0.25를 주어, 누락된 타임스탬프가 그 토큰을 보상하지도 파괴하지도 않게 합니다.

방향 게이트

활동만으로는 열기가 아니며, 실무에서 가장 크게 작용하는 보정이 바로 이것입니다. 70퍼센트 무너지는 코인은 모두가 떠나는 동안 엄청난 거래량을 찍고, 세게 가속하며, 높은 거래 건수를 보입니다. 활동 항만 놓고 보면 보드 최상단에 올라섭니다. 그것은 아무도 읽고 싶어 하지 않는 순위입니다.

direction = clamp( 0.55 + 0.45 * signed(change24h, 45)
                        + 0.25 * max(0, signed(change1h, 8)),
                   0.12, 1.15 )

활동 점수에 이 게이트를 곱합니다. 하루에 70퍼센트 하락하고 최근 한 시간에 회복이 없는 코인은 활동 점수의 약 28퍼센트를 유지합니다. 하락했지만 최근 한 시간에 반등 중인 코인은 훨씬 더 많이 유지합니다. 투매 뒤의 반등은 실제로 흥미롭기 때문입니다. 상승 중인 코인은 그대로 두거나 최대 15퍼센트까지 올려줍니다.

하한을 0이 아니라 0.12로 둔 것은 의도적입니다. 격렬한 붕괴는 보드 아래로 밀려나야지 보드에서 지워져서는 안 됩니다. 그것도 여전히 정보이며, 감추면 순위는 더 안전해지는 것이 아니라 덜 정직해집니다.

감점

방향은 게이트가 처리합니다. 감점은 다른 종류의 문제를 처리합니다. 높은 점수를 단지 지나치게 높은 것이 아니라 무의미하게 만드는 조건들입니다. 각각이 곱셈 계수이므로 겹치면 누적됩니다.

조건 계수 이유
liquidity < $15,000liquidity / 15,000, floored at 0.15 이 깊이 아래에서는 위 입력들이 대체로 잡음입니다
liquidity = 00.15 거래 상대가 될 것이 없습니다
marketCap / liquidity > 5,0000.35 이를 떠받치는 풀을 한참 넘어서는 평가액
trades < 100.4 차트가 무어라 하든 거의 아무도 거래하지 않습니다
price is stale0.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를 넘는 것은 손에 꼽습니다. 40점대는 정말로 드물며, 인터페이스가 45부터 코인을 뜨겁다고 표시하는 이유가 그것입니다. 90점은 이 함수가 만들어내도록 설계된 값이 아닙니다. 모든 항이 동시에 상한 가까이 있어야 하고, 가격은 오르고 있어야 하며, 감점이 하나도 없어야 합니다.

실제 분해 예시

같은 스냅샷의 보드 상단을, 각 항이 가중합에 들어간 그대로 보여줍니다. 재구현이 아니라 채점 함수 자체가 생성하므로, 이 표가 그것이 기록하는 코드와 어긋날 수는 없습니다.

토큰Heat 회전 가속 모멘텀 매수 신선도 방향
DUO59.70.950.110.880.450.570.93
USEFUL58.80.740.760.730.570.350.89
PURR57.20.630.760.870.660.010.91
Stonks46.80.840.410.610.590.260.8
PURPS45.60.9300.640.560.010.91
BTC44.70.5600.920.690.090.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는 최근 과거에 대해, 코인의 규모 대비 활동량을 측정합니다. 앞을 내다보는 항이 없고 미래 수익률에 맞춰 적합시키지도 않았습니다. 무너지는 코인도 실제 활동을 보일 수 있으며, 방향 게이트가 존재하는 이유이자 이 점수가 안전 등급이 아닌 이유가 그것입니다.
거래량에는 상한이 없는데 왜 점수는 100에서 멈추나요?
모든 구성요소가 포화하는 유계화 함수를 통과하므로 어떤 입력도 순위를 독차지할 수 없습니다. 그것이 없다면 수천 퍼센트 오른 코인 하나, 또는 아주 큰 풀 하나가 단일 항으로 보드를 지배하고 나머지 네 항은 의미를 잃게 됩니다.
왜 어린 풀이 오래된 풀보다 높은 점수를 받나요?
신선도는 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.