Why Wallet Age Beats Recent PnL for Copy Trading Filters
By @CoinMarketMan - 14-Jul-2026
Почему возраст кошелька важнее недавнего PnL для фильтров копитрейдинга
Кошелёк занял первое место в 7-дневном лидерборде Hyperliquid с шестизначной суммой реализованной прибыли. Вы добавили его в список для копитрейдинга и повторили следующие три сделки. Все три оказались убыточными. К следующей неделе кошелёк полностью исчез из лидерборда.
Это самая распространённая ошибка в онchain-копитрейдинге, и она не связана ни со скоростью исполнения, ни со слиппейджем. Проблема в самом фильтре. 7-дневный лидерборд по PnL показывает, кто недавно выиграл. Он ничего не говорит о том, кто выигрывает стабильно, потому что кошельки, которые потеряли деньги на прошлой неделе, уже исчезли из списка. Вы выбираете из пула, который уже отсеяло выживание: сигнал, который вы думаете, что читаете, в основном является шумом.
Возраст кошелька, измеряемый как накопленный PnL за всё время торговли на протяжении многих месяцев, является более надёжной основой для фильтров копитрейдинга. Он не заменяет проверку актуальности. Но он меняет порядок операций: сначала вы изучаете глубину послужного списка, а затем подтверждаете недавнюю активность, а не наоборот.
В этом руководстве объясняется, почему такой порядок важен, как предвзятость выжившего искажает краткосрочные лидерборды и как построить рабочий процесс фильтрации на основе возраста с использованием данных когорт HyperTracker на Hyperliquid.
Предвзятость выжившего, скрытая в вашем лидерборде
Каждый 7-дневный лидерборд по PnL — это снимок выживших. Кошельки, потерявшие деньги, ликвидированные или прекратившие торговать в этот период, в нём не отображаются. Вы видите только тех, кто пережил этот отрезок, что создаёт искажённое представление о том, как выглядит «хороший результат».
Представьте, что в понедельник начинают торговать тысяча кошельков. К пятнице двести из них ликвидированы или прекратили торговлю после больших потерь. Из оставшихся восьмисот пятьдесят лучших по PnL выглядят впечатляюще. Но эти пятьдесят не обязательно опытны. Это те, чьи направленные ставки совпали с движением рынка на той неделе. Некоторые из них использовали чрезмерное плечо по одному активу и просто повезло. Другие поймали одно крупное движение и закрыли позицию в нужный момент случайно.
Когда вы фильтруете по 7-дневному лидерборду, вы неявно говорите: «Покажи мне тех, кто выжил на этой неделе». Это полезная точка данных, но слабая. Вероятность того, что кошелёк попал в недельный лидерборд благодаря мастерству, а не случайности, невелика: выборки из одной недели торговли недостаточно, чтобы отличить сигнал от шума.
Решение — изменить источник фильтрации. Начните с накопленного послужного списка и убедитесь, что кошелёк по-прежнему активен. Одной лишь недавней доходности слишком мало, чтобы отличить мастерство от случайности.
Что на самом деле измеряет возраст кошелька
В контексте фильтров копитрейдинга «возраст кошелька» — это не буквальный возраст адреса. Это косвенный показатель глубины послужного списка: сколько месяцев или рыночных циклов торговой истории накопил кошелёк и каков совокупный результат всей этой активности.
Кошелёк с шестью месяцами истории торговли бессрочными контрактами и $500K в реализованном PnL за всё время говорит вам нечто иное, чем кошелёк с двумя неделями истории и $50K в PnL. Первый торговал через коррекции, смены режимов ставок финансирования, периоды низкой волатильности, когда стратегии пробоя не работают, и периоды высокой волатильности, когда не работают стратегии возврата к среднему. Второй торговал в условиях одной рыночной среды. Вы понятия не имеете, как он поведёт себя при изменении условий.
Почему накопленный PnL важнее недавнего для первичного фильтра
Накопленный PnL за всё время сложнее «подделать» случайностью. Кошелёк с +$1M в накопленной прибыли по перпам сгенерировал эту сумму за сотни или тысячи сделок на протяжении многих месяцев. Вероятность того, что чистая удача принесла $1M накопленной прибыли, крайне мала: на больших выборках случайность нивелируется в обе стороны. Полосы удач заканчиваются. Полосы неудач тоже. Остаётся только преимущество — если оно есть.
Кошелёк с +$50K за 7 дней мог достичь этого результата за три сделки с плечом, все из которых пошли в том же направлении, что и рынок. Вероятность такого исхода при случайном стечении обстоятельств весьма высока, поскольку три сделки — статистически незначимая выборка.
В этом и состоит главный аргумент в пользу фильтрации по возрасту: накопленный послужной список — лучший априорный показатель мастерства, поскольку он охватывает достаточно сделок и рыночных режимов, чтобы снизить вклад случайности.
Когорты PnL HyperTracker как косвенный показатель возраста
HyperTracker классифицирует каждый кошелёк на Hyperliquid в одну из 16 поведенческих когорт. Восемь основаны на размере счёта (от Shrimp при $0 до $250 до Leviathan при $5M+), а восемь — на PnL за всё время. Когорты по PnL — это те, которые важны для фильтров копитрейдинга по возрасту:
| Когорта | Диапазон PnL за всё время | Сигнал для копитрейдинга | | --- | --- | --- | | Money Printer | Выше +$1M | Самый сильный послужной список. Фильтр с наибольшей уверенностью. | | Smart Money | +$100K до +$1M | Стабильная работа на нескольких циклах. Стоит следить с подтверждением. | | Consistent Grinder | +$10K до +$100K | Прибыльный, но меньшая выборка. Использовать осторожно. | | Humble Earner | $0 до +$10K | Маргинальная прибыльность. Недостаточный сигнал для копирования. | | Exit Liquidity | -$10K до $0 | Продемонстрировано отрицательное преимущество. Не копировать. | | Semi-Rekt | -$100K до -$10K | Не копировать. | | Full Rekt | -$1M до -$100K | Не копировать. | | Giga-Rekt | Ниже -$1M | Не копировать. |
Классификация по когортам действует как предварительный фильтр. Прежде чем смотреть на любые данные о недавних результатах, вы можете исключить из пула кандидатов для копитрейдинга все кошельки ниже Consistent Grinder. Это структурное преимущество перед подходами на основе лидерборда, поскольку оно устраняет кошельки с доказанным отрицательным преимуществом до того, как они смогут попасть в ваш пайплайн благодаря удачной неделе.
Актуальность по-прежнему важна, просто не на первом месте
Фильтрация по возрасту не означает игнорирования недавних результатов. Она означает изменение порядка. Когорта по накопленному PnL используется как первый шлюз, а недавние результаты — как второй, чтобы подтвердить, что преимущество по-прежнему актуально.
Кошелёк Money Printer с $2M в накопленном PnL за всё время, но с -$80K за месяц, заслуживает иного отношения, чем кошелёк Money Printer с $2M в накопленном PnL и +$150K за месяц. Оба проходят первый фильтр. Только второй проходит подтверждение актуальности.
Рабочий процесс с приоритетом возраста
- Фильтровать по когорте PnL. Оставить кошельки Money Printer и Smart Money. Опционально включить Consistent Grinder с меньшими весами аллокации. Всё остальное — отсеять.
- Проверить возраст кошелька. Используя исторические данные о позициях HyperTracker (которые восходят к апрелю 2025 года), убедитесь, что кошелёк активно торговал несколько месяцев. Кошелёк, появившийся на прошлой неделе с $200K PnL от одной крупной сделки, — это не то же самое, что кошелёк, накопивший $200K за шесть месяцев стабильной активности.
- Подтвердить недавние результаты. Убедитесь, что недавний реализованный PnL (например, за последние 30 дней) положителен. Опытный кошелёк в активной просадке — кандидат в список наблюдения. Вернитесь к нему, когда просадка закончится.
- Проверить количество сделок. Требуйте достаточного числа закрытых сделок за жизнь кошелька, чтобы показатель PnL имел статистический вес. Кошелёк с десятью сделками и $500K прибыли мог достичь этого за счёт одной крупной позиции. Кошелёк с тремястами сделками и $500K прибыли демонстрирует повторяемое преимущество.
Каждый шаг сужает пул кандидатов. К четвёртому шагу вы работаете с кошельками, которые демонстрировали устойчивую прибыльность на протяжении нескольких рыночных режимов, в данный момент активны и показывают результат, а объём их сделок делает показатель PnL статистически значимым.
Построение фильтра с помощью API HyperTracker
Практическая реализация использует два эндпоинта API HyperTracker. Первый — эндпоинт лидерборда, который ранжирует кошельки по накопленному PnL за всё время. Второй — эндпоинт отдельного кошелька, который предоставляет детальную историю сделок, необходимую для оценки возраста и стабильности.
import requests
API_BASE = "https://ht-api.coinmarketman.com/api/external"
headers = {"Authorization": "Bearer YOUR_TOKEN"}
# Step 1: Get the all-time PnL leaderboard
leaderboard = requests.get(
f"{API_BASE}/leaderboard",
headers=headers,
params={"period": "allTime", "limit": 100}
).json()
# Step 2: For each candidate, check trade history depth
candidates = []
for wallet in leaderboard["traders"]:
address = wallet["address"]
# Get earliest positions to estimate wallet age
positions = requests.get(
f"{API_BASE}/positions",
headers=headers,
params={
"address[]": address,
"start": "2025-04-15T00:00:00.000Z"
}
).json()
# Get closed trades for trade count
fills = requests.get(
f"{API_BASE}/fills",
headers=headers,
params={
"address[]": address,
"start": "2025-07-31T00:00:00.000Z"
}
).json()
trade_count = len(fills.get("fills", []))
has_history = len(positions.get("positions", [])) > 0
# Example threshold (adjust based on your strategy)
if has_history and trade_count > 50:
candidates.append({
"address": address,
"alltime_pnl": wallet["pnl"],
"trade_count": trade_count,
"earliest_data": "2025-04" if has_history else "recent"
})
print(f"Filtered {len(candidates)} candidates from {len(leaderboard['traders'])} leaderboard entries")
Приведённый выше код получает лидерборд за всё время, затем проверяет каждого кандидата на глубину истории. Кошельки без торговой активности, уходящей к наиболее раннему доступному окну данных, а также кошельки с менее чем пятьюдесятью закрытыми сделками — отфильтровываются. Остаётся подмножество кошельков из лидерборда, у которых есть как накопленная прибыльность, так и история торговли для её подтверждения.
Добавление подтверждения актуальности
# Step 3: Confirm recent performance
from datetime import datetime, timedelta
recent_start = (datetime.utcnow() - timedelta(days=30)).strftime(
"%Y-%m-%dT00:00:00.000Z"
)
confirmed = []
for c in candidates:
recent_fills = requests.get(
f"{API_BASE}/fills",
headers=headers,
params={
"address[]": c["address"],
"start": recent_start
}
).json()
recent_pnl = sum(
float(f.get("closedPnl", 0))
for f in recent_fills.get("fills", [])
)
if recent_pnl > 0:
c["recent_30d_pnl"] = recent_pnl
confirmed.append(c)
print(f"{len(confirmed)} wallets passed all filters")
После этого шага у вас есть список кошельков, прошедших три шлюза: рейтинг в лидерборде по накопленному PnL за всё время (сигнал мастерства), глубина истории торговли (сигнал возраста) и положительный реализованный PnL за 30 дней (сигнал актуальности). Это ваши кандидаты для копитрейдинга.
Когда стоит отойти от возрастного фильтра
Ни один фильтр не является абсолютным. Есть ситуации, когда более молодой кошелёк заслуживает внимания, несмотря на короткий послужной список.
Миграция кошельков. Опытные трейдеры иногда создают новые кошельки. Кошелёк, появившийся два месяца назад, но торгующий с точностью и паттернами управления размером позиции, характерными для ветерана, может быть миграцией со старого адреса. Наши данные из когортной системы классифицируют его по накопленному PnL на этом адресе, но показатель PnL будет ниже реального послужного списка трейдера, поскольку учитывает только активность с момента миграции.
Смена рыночного режима. Некоторые кошельки бездействуют в боковых рынках и активируются только при сильных трендах. Кошелёк, неактивный три месяца, но с $800K в накопленном PnL за всё время от предыдущих активных периодов, — это не мёртвый кошелёк. Это избирательный трейдер. Когда он активируется, когорта по накопленному PnL по-прежнему применяется, даже если недавний PnL был нулевым в период бездействия.
Новичок на Hyperliquid, опытный в других местах. Трейдер, переходящий с централизованной биржи на Hyperliquid, начнёт с нового кошелька и нулевой историей на блокчейне. Возрастной фильтр изначально исключит его — и это правильное поведение. Проверить его историю с CEX на блокчейне невозможно. Как только он накопит достаточно истории на Hyperliquid, он естественным образом перейдёт в соответствующую когорту по PnL.
Создайте свой возрастной фильтр кошельков
API HyperTracker предоставляет лидерборды по накопленному PnL за всё время, историю сделок по каждому кошельку начиная с апреля 2025 года и когортную классификацию для каждого активного кошелька на Hyperliquid. Запросите лидерборд, проверьте глубину истории и подтвердите актуальность, прежде чем добавлять кошелёк в пайплайн копитрейдинга.
Начать работу с бесплатным тарифом
Чеклист для фильтров копитрейдинга с приоритетом возраста
- Начинайте с лидерборда за всё время. Получайте кошельки, ранжированные по накопленному PnL. Это ваш первоначальный пул кандидатов.
- Применяйте когортный шлюз. Оставляйте когорты Money Printer и Smart Money. Рассмотрите Consistent Grinder с пониженным весом. Полностью исключайте когорты с отрицательным PnL.
- Проверяйте глубину истории. Убедитесь, что кошелёк торговал несколько месяцев с достаточным объёмом сделок, чтобы показатель PnL имел статистическую значимость.
- Убедитесь, что недавний PnL положителен. Проверьте недавний период (например, 30 дней). Ветераны в активных просадках попадают в список наблюдения. Они возвращаются в пул кандидатов, когда просадка заканчивается.
- Мониторьте непрерывно. Кошелёк, прошедший все четыре фильтра сегодня, может не пройти их в следующем месяце. Запускайте фильтр еженедельно и исключайте кошельки, опускающиеся ниже порога актуальности.
Сначала возраст. Потом актуальность. Именно такой порядок защищает вас от предвзятости выжившего, отделяет удачу от мастерства и строит пайплайн копитрейдинга, который выдерживает больше одной удачной недели.