Files
k 4c3c8c6f87 KOL count: 29 → 25 across marketing/SEO copy
Backend KOL_FEEDS trimmed from 29 to 25 (dead feeds removed).
Sync all hardcoded count mentions:
- layout.tsx JSON-LD, page.tsx (metric + comparison + copy)
- kol/page.tsx, KolPageClient.tsx ("and 26 more" → "and 22 more")
- glossary/page.tsx, opengraph-image.tsx
- public/llms.txt, llms-full.txt
- drop removed KOLs (Dragonfly Capital, Nic Carter) from named lists

Bundles other in-flight frontend work already in the working tree.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 22:55:27 +08:00

461 lines
19 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata } from 'next'
import Link from 'next/link'
import Breadcrumbs from '@/components/seo/Breadcrumbs'
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://trumpsignal.com'
type GlossaryTerm = {
term: string
abbr?: string
category: string
definition: string
extra?: string
}
type GlossaryCopy = {
title: string
description: string
keywords: string[]
ogTitle: string
ogDescription: string
heroTitle: string
heroSubtitle: string
intro: string
terms: GlossaryTerm[]
footerLead: string
footerContact: string
footerMethodology: string
footerCaseStudies: string
}
function getCopy(locale: string): GlossaryCopy {
const isZh = false // i18n shelved — Chinese branches kept as dead code for future revival; see messages/zh.json
if (isZh) {
return {
title: '加密信号术语表 - Trump Alpha',
description:
'系统化定义 Trump Alpha 使用的核心术语,包括 AHR999、Pi Cycle Bottom、200 周均线、KOL、言行偏离、资金费率、Conviction Score、逐仓等。',
keywords: [
'AHR999 定义',
'Pi Cycle Bottom 是什么',
'200周均线',
'KOL 是什么',
'言行偏离',
'资金费率',
'逐仓',
'加密信号术语表',
],
ogTitle: 'Crypto Signals Glossary | Trump Alpha',
ogDescription:
'Trump Alpha 核心术语的清晰定义,适合搜索摘录、AI 引用和快速查阅。',
heroTitle: '术语表',
heroSubtitle: '把页面里所有关键实体和专业词说清楚',
intro:
'这份术语表服务两个目标:第一,帮助用户快速理解平台内的指标和信号;第二,让搜索引擎和 LLM 能稳定识别这些实体之间的关系。每个词条都尽量给出定义、上下文和在 Trump Alpha 里的具体用法。',
terms: [
{
term: 'AHR999',
category: '宏观底部指标',
definition:
'AHR999 是中文加密圈常用的比特币估值指标,通常结合长期趋势和成本锚来判断 BTC 是否进入深度价值区。在 Trump Alpha 里,AHR999 低于 0.45 被视为一个经典底部信号。',
extra: '它是当前 BTC 2-of-3 周期底部扫描器中的三大输入之一。',
},
{
term: 'Pi Cycle Bottom',
category: '宏观底部指标',
definition:
'Pi Cycle Bottom 是一种基于长周期均线关系的比特币底部判定方法。Trump Alpha 使用的条件是 150 日 EMA 低于 471 日 SMA 乘以 0.745。',
extra: '它也是 BTC 周期底部扫描器的三项核心输入之一。',
},
{
term: '200-week Moving Average',
category: '宏观底部指标',
definition:
'200 周均线是比特币最常见的超长周期趋势锚之一。历史上,多轮熊市低点都出现在这个区域附近。Trump Alpha 将价格接近或跌破该均线视为底部共振条件的一部分。',
},
{
term: 'KOL',
abbr: 'Key Opinion Leader',
category: '平台术语',
definition:
'在加密语境里,KOL 指的是能持续影响市场叙事或零售情绪的分析师、基金经理、内容创作者或节目主持人。Trump Alpha 跟踪的是带有长期内容产出的 KOL,而不是只发碎片推文的账号。',
},
{
term: 'Talks-vs-Trades Divergence',
category: '平台术语',
definition:
'言行偏离指 KOL 公开表达的方向与链上钱包实际操作方向相反。例如公开看多 ETH,但钱包在同一周内减仓 ETH。Trump Alpha 把链上动作视作更高优先级的真实信号。',
extra: '这是平台里信息密度最高的信号之一,因为它把公开叙事和真实仓位拆开来看。',
},
{
term: 'Conviction Score',
category: '平台术语',
definition:
'Conviction Score 是 AI 给每条 KOL 观点分配的强度分,范围通常在 0.0 到 1.0。分数越高,说明作者表达越明确、重复度越高,且更可能带有仓位、时间或执行语气。',
},
{
term: 'Funding Rate',
category: '衍生品术语',
definition:
'资金费率是永续合约用来锚定现货价格的周期性支付机制。多头付空头代表市场做多拥挤,空头付多头则代表市场做空拥挤。极端 funding 往往出现在清算前夜。',
},
{
term: 'Isolated Margin',
category: '交易术语',
definition:
'逐仓模式意味着每笔仓位只使用自己的保证金,不会和账户内其他持仓共用风险池。即使某笔交易被强平,也不会拖累其他持仓。',
extra: 'Trump Alpha 的自动执行层默认按逐仓方式工作。',
},
{
term: 'TP / SL',
abbr: 'Take-Profit / Stop-Loss',
category: '交易术语',
definition:
'TP 和 SL 分别表示止盈和止损条件单。Trump Alpha 的自动交易在开仓时就会挂好,而不是事后补挂。',
},
{
term: 'UTXO',
abbr: 'Unspent Transaction Output',
category: '比特币术语',
definition:
'UTXO 是比特币网络中的基础记账单元。虽然 Trump Alpha 当前线上 BTC 信号不再直接使用 UTXO 花费行为,但理解 UTXO 仍有助于读懂很多经典链上研究。',
},
{
term: 'Perpetual Future',
abbr: 'Perp',
category: '衍生品术语',
definition:
'Perp 是没有到期日的永续合约。它依靠资金费率和标记价格机制尽量贴近现货。Hyperliquid 就是提供 perp 交易的去中心化交易平台之一。',
},
{
term: 'Substack Signal',
category: '平台术语',
definition:
'Substack Signal 指从 KOL 的长文订阅、博客或深度文章中提取出的资产观点。相比短推文,这类内容通常更完整,因此更适合做高质量的观点抽取。',
},
{
term: 'Capitulation',
category: '市场术语',
definition:
'Capitulation 指持有者在持续亏损后集中放弃、被迫卖出的一段市场阶段。它往往出现在熊市尾声,也是 BTC 底部扫描器最希望捕捉的环境之一。',
},
{
term: 'EMA',
abbr: 'Exponential Moving Average',
category: '技术术语',
definition:
'EMA 是指数移动平均线,对最近价格赋予更高权重,因此比简单均线更敏感。Trump Alpha 在 Pi Cycle Bottom 条件中使用 150 日 EMA。',
},
],
footerLead: '缺少某个词条?',
footerContact: '联系我们',
footerMethodology: '方法论',
footerCaseStudies: '案例研究',
}
}
return {
title: 'Crypto Signals Glossary — AHR999, Pi Cycle Bottom, KOL Divergence',
description:
'Definitions of every core term used in Trump Alpha, including AHR999, Pi Cycle Bottom, 200-week moving average, KOL, talks-vs-trades divergence, funding rate, conviction score, and isolated margin.',
keywords: [
'AHR999 definition',
'Pi Cycle Bottom explained',
'200-week moving average Bitcoin',
'what is KOL crypto',
'talks vs trades definition',
'funding rate crypto',
'isolated margin perpetual',
'crypto signal glossary',
],
ogTitle: 'Crypto Signals Glossary | Trump Alpha',
ogDescription:
'Clear definitions of Trump Alpha\'s core terms, optimized for search, AI retrieval, and fast reference.',
heroTitle: 'Glossary',
heroSubtitle: 'Every term on the platform, defined precisely.',
intro:
'Quick definitions for the terms you\'ll encounter on this platform.',
terms: [
{
term: 'AHR999',
category: 'Macro-bottom signal',
definition:
'A Bitcoin valuation score. Below 0.45 = BTC is historically cheap and in a potential bottom zone. Above 1.2 = overvalued, bottom thesis is off. One of three conditions in the BTC bottom scanner.',
},
{
term: 'Pi Cycle Bottom',
category: 'Macro-bottom signal',
definition:
'A long-term moving-average signal that has historically aligned with Bitcoin cycle lows. Fires when the 150-day EMA crosses below the 471-day SMA × 0.745. Binary — either confirmed or not.',
},
{
term: '200-week Moving Average',
category: 'Macro-bottom signal',
definition:
'BTC\'s most-watched long-term support level. Every major bear-market low in history formed at or near it. The scanner counts price ≤ 200WMA × 1.05 as a bottom vote.',
},
{
term: 'KOL',
abbr: 'Key Opinion Leader',
category: 'Platform term',
definition:
'An analyst, fund manager, podcast host, or creator whose calls move crypto narrative. The platform tracks 25 KOLs — Arthur Hayes, Delphi, Bankless, and others — cross-checking what they say publicly against what their wallets actually do.',
},
{
term: 'Talks-vs-Trades Divergence',
category: 'Platform term',
definition:
'When a KOL\'s public call and their wallet move in opposite directions on the same asset. Example: publicly bullish ETH while quietly reducing ETH on-chain. The wallet is treated as the real signal — it\'s harder to fake than words.',
extra: 'Highest-conviction signal category on the platform.',
},
{
term: 'Aligned',
category: 'Platform term',
definition:
'A KOL\'s public call and their tracked wallet activity agree — e.g., bullish on BTC and the wallet is adding BTC. Reinforces the signal.',
},
{
term: 'Mismatch',
category: 'Platform term',
definition:
'A KOL\'s public call contradicts their wallet move. Bullish in public, selling on-chain = mismatch. This is the divergence signal you actually want to act on.',
},
{
term: 'Paper mode',
category: 'Platform term',
definition:
'Simulated trading — the bot runs through all its logic and tracks positions, but no real orders are sent to Hyperliquid. Use it to see how the bot would have performed before risking real money.',
},
{
term: '/adopt',
category: 'Platform term',
definition:
'A Telegram bot command. When a Macro Vibes signal fires, you open the position yourself on Hyperliquid, then send /adopt in the bot. The bot then takes over managing the exit — stop ladder, partial de-risk, pyramiding — without you having to watch it.',
},
{
term: 'AI Confidence',
category: 'Platform term',
definition:
'A percentage score (0100%) the AI assigns to each Trump post signal. Higher = the post language is clearer and more explicitly directional. The default threshold is 70% — signals below this are not traded.',
},
{
term: 'Funding Rate',
category: 'Derivatives term',
definition:
'The periodic payment between long and short traders on a perp exchange, designed to keep the contract price close to spot. Extreme positive funding = crowded longs. Extreme negative = crowded shorts. Extreme readings often precede sharp reversals when the crowded side gets squeezed.',
},
{
term: 'Isolated Margin',
category: 'Trading term',
definition:
'Each trade uses only its own dedicated margin — if it gets liquidated, it doesn\'t touch your other positions. Trump Alpha always uses isolated margin so one bad trade can\'t wipe the account.',
},
{
term: 'TP / SL',
abbr: 'Take-Profit / Stop-Loss',
category: 'Trading term',
definition:
'Automatic exit orders placed at entry. TP closes the trade in profit at your target. SL closes it to cut losses. Trump Alpha attaches both the moment a trade opens.',
},
{
term: 'Perpetual Future',
abbr: 'Perp',
category: 'Derivatives term',
definition:
'A futures contract with no expiry. You stay in the trade until you close it or get liquidated. Trump Alpha executes on Hyperliquid perps.',
},
{
term: 'Capitulation',
category: 'Market term',
definition:
'The phase near a bear market bottom where panicked holders give up and sell en masse. Creates the washout conditions that the BTC macro-bottom scanner is designed to detect.',
},
],
footerLead: 'Missing a term?',
footerContact: 'Contact us',
footerMethodology: 'Methodology',
footerCaseStudies: 'Case Studies',
}
}
export async function generateMetadata({
params,
}: {
params: Promise<{ locale: string }>
}): Promise<Metadata> {
const { locale } = await params
const copy = getCopy(locale)
return {
title: copy.title,
description: copy.description,
keywords: copy.keywords,
openGraph: {
title: copy.ogTitle,
description: copy.ogDescription,
},
alternates: {
canonical: `${siteUrl}/en/glossary`,
languages: {
en: `${siteUrl}/en/glossary`,
'x-default': `${siteUrl}/en/glossary`,
},
},
}
}
// Glossary JSON-LD: DefinedTermSet + individual DefinedTerm entries.
// LLMs and Google's Knowledge Graph use this to understand what each term
// means *in context of this product*, which improves citation accuracy when
// users ask "what is [term]" in ChatGPT/Perplexity.
function buildGlossaryJsonLd(terms: { term: string; definition: string; extra?: string }[]) {
return {
'@context': 'https://schema.org',
'@type': 'DefinedTermSet',
'@id': `${siteUrl}/en/glossary#termset`,
name: 'Trump Alpha Crypto Glossary',
url: `${siteUrl}/en/glossary`,
description: 'Definitions of key terms, indicators, and signal concepts used in the Trump Alpha crypto intelligence platform.',
inLanguage: 'en',
hasDefinedTerm: terms.map(t => ({
'@type': 'DefinedTerm',
name: t.term,
description: t.extra ? `${t.definition} ${t.extra}` : t.definition,
url: `${siteUrl}/en/glossary#${t.term.toLowerCase().replace(/[^a-z0-9]+/g, '-')}`,
inDefinedTermSet: `${siteUrl}/en/glossary#termset`,
})),
}
}
const CATEGORY_COLOR: Record<string, string> = {
'Macro-bottom metric': '#a78bfa',
'宏观底部指标': '#a78bfa',
'Platform term': '#f5a524',
'平台术语': '#f5a524',
'Trading term': '#22c55e',
'交易术语': '#22c55e',
'Derivatives term': '#60a5fa',
'衍生品术语': '#60a5fa',
'Bitcoin term': '#fb923c',
'比特币术语': '#fb923c',
'Market term': '#f87171',
'市场术语': '#f87171',
'Technical term': '#94a3b8',
'技术术语': '#94a3b8',
}
export default async function GlossaryPage({ params }: { params: Promise<{ locale: string }> }) {
const { locale } = await params
const copy = getCopy(locale)
const categories = Array.from(new Set(copy.terms.map(t => t.category)))
const enTerms = locale === 'en' ? copy.terms : getCopy('en').terms
const glossaryJsonLd = buildGlossaryJsonLd(enTerms)
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(glossaryJsonLd) }}
/>
<Breadcrumbs items={[{ name: copy.heroTitle, path: `/${locale}/glossary` }]} />
<div className="page" style={{ maxWidth: 760 }}>
<div className="page-head">
<div>
<h1 className="page-title">{copy.heroTitle}</h1>
<p className="page-sub">{copy.heroSubtitle}</p>
</div>
</div>
<p style={{
fontSize: 13, color: 'var(--ink-3)', lineHeight: 1.7,
marginBottom: 20, fontStyle: 'italic',
}}>
{copy.intro}
</p>
<div style={{ display: 'flex', flexWrap: 'wrap', gap: 8, marginBottom: 24 }}>
{categories.map(cat => (
<span key={cat} style={{
fontSize: 11, fontWeight: 700, letterSpacing: '0.06em',
textTransform: 'uppercase', fontFamily: 'monospace',
padding: '4px 10px', borderRadius: 999,
background: `color-mix(in srgb, ${CATEGORY_COLOR[cat] ?? '#888'} 12%, transparent)`,
color: CATEGORY_COLOR[cat] ?? '#888',
border: `1px solid color-mix(in srgb, ${CATEGORY_COLOR[cat] ?? '#888'} 25%, transparent)`,
}}>
{cat}
</span>
))}
</div>
<div style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>
{copy.terms.map((term) => (
<div
key={term.term}
id={term.term.toLowerCase().replace(/[^a-z0-9]+/g, '-')}
className="card"
style={{ padding: '20px 24px' }}
itemScope
itemType="https://schema.org/DefinedTerm"
>
<div style={{ display: 'flex', alignItems: 'flex-start', gap: 12, flexWrap: 'wrap' }}>
<h2
itemProp="name"
style={{ fontSize: 16, fontWeight: 700, color: 'var(--ink)', margin: 0, flex: '1 1 auto' }}
>
{term.term}
</h2>
<span style={{
fontSize: 10, fontWeight: 700, letterSpacing: '0.07em',
textTransform: 'uppercase', fontFamily: 'monospace',
padding: '3px 8px', borderRadius: 4, flexShrink: 0,
background: `color-mix(in srgb, ${CATEGORY_COLOR[term.category] ?? '#888'} 12%, transparent)`,
color: CATEGORY_COLOR[term.category] ?? '#888',
}}>
{term.category}
</span>
</div>
{term.abbr && (
<p style={{ fontSize: 12, color: 'var(--ink-4)', margin: '4px 0 0', fontStyle: 'italic' }}>
{term.abbr}
</p>
)}
<p
itemProp="description"
style={{ fontSize: 14, color: 'var(--ink-2)', lineHeight: 1.7, margin: '10px 0 0' }}
>
{term.definition}
</p>
{term.extra && (
<p style={{
fontSize: 13, color: 'var(--ink-3)', lineHeight: 1.65,
margin: '8px 0 0', paddingLeft: 12,
borderLeft: `2px solid ${CATEGORY_COLOR[term.category] ?? 'var(--amber)'}`,
}}>
{term.extra}
</p>
)}
</div>
))}
</div>
<div className="card" style={{ padding: '20px 24px', marginTop: 12 }}>
<p style={{ fontSize: 13, color: 'var(--ink-4)', lineHeight: 1.6, margin: 0 }}>
{copy.footerLead}{' '}
<Link href={`/${locale}/contact`} style={{ color: 'var(--amber)' }}>{copy.footerContact}</Link>.
{' '}{locale === 'zh' ? '另见:' : 'See also:'}{' '}
<Link href={`/${locale}/methodology`} style={{ color: 'var(--amber)' }}>{copy.footerMethodology}</Link>
{' '}·{' '}
<Link href={`/${locale}/case-studies`} style={{ color: 'var(--amber)' }}>{copy.footerCaseStudies}</Link>.
</p>
</div>
</div>
</>
)
}