Как собрать аналитический дашборд Hyperliquid: от нуля до практики

6 мая 2026 г.

Для активного трейдера Hyperliquid или квант-исследователя личный аналитический дашборд с обновлением данных в реальном времени может заметно ускорить принятие решений. В этом гайде разберём, как собрать Hyperliquid analytics dashboard: от сбора и обработки данных до визуализации во фронтенде. В итоге получится дашборд для мониторинга позиций, отслеживания funding rate и анализа PnL — на открытых инструментах и без дополнительной платы.

Какие модули нужны в Hyperliquid-дэшборде

Практичный дашборд для Hyperliquid обычно включает несколько базовых блоков:

  • Состояние аккаунта: account value, доступная маржа, открытые позиции, плечо.
  • Мониторинг позиций: направление, размер позиции, цена входа, нереализованный PnL.
  • Funding rate: текущие и исторические ставки фондирования по выбранным монетам.
  • Рыночные данные: список активов, контекст рынка, последние сделки, стакан при необходимости.
  • Историческая аналитика: динамика PnL, изменения маржи, funding payments.
  • Алерты: уведомления при превышении заданных порогов по funding, плечу или просадке.

Полный список доступных типов Info Endpoint описан в официальной документации Hyperliquid.

Выбор технологического стека

Для open-source реализации можно использовать такой стек:

  • Сбор данных на бэкенде: Python + requests, либо aiohttp для асинхронного сбора.
  • Хранение данных: SQLite для лёгкого локального варианта или PostgreSQL + TimescaleDB для таймсерий.
  • Фреймворк дашборда: Grafana для мощного мониторинга или Streamlit для быстрого Python-прототипа.
  • Реалтайм-данные: Hyperliquid WebSocket API.

Если тебе нужно быстро проверить идею, удобнее начать со Streamlit. Если нужен более устойчивый вариант для продакшн-мониторинга, истории и алертов, лучше подойдёт Grafana + TimescaleDB.

Реализация слоя сбора данных

Сбор состояния аккаунта

import requests
import time

ENDPOINT = "https://api.hyperliquid.xyz/info"

def fetch_account_state(address: str) -> dict:
    payload = {"type": "clearinghouseState", "user": address}
    r = requests.post(ENDPOINT, json=payload, timeout=10)
    r.raise_for_status()
    return r.json()

def fetch_market_data() -> dict:
    payload = {"type": "metaAndAssetCtxs"}
    r = requests.post(ENDPOINT, json=payload, timeout=10)
    r.raise_for_status()
    return r.json()

Массовый сбор funding rate

def fetch_all_funding_rates(coins: list, days: int = 1) -> dict:
    end_ms = int(time.time() * 1000)
    start_ms = end_ms - days * 24 * 3600 * 1000
    results = {}

    for coin in coins:
        payload = {
            "type": "fundingHistory",
            "coin": coin,
            "startTime": start_ms,
        }
        r = requests.post(ENDPOINT, json=payload, timeout=10)
        if r.ok:
            results[coin] = r.json()

    return results

WebSocket-подписка в реальном времени

Если нужно показывать стакан или последние сделки в реальном времени, используй WebSocket API Hyperliquid:

import asyncio
import websockets
import json

WS_URL = "wss://api.hyperliquid.xyz/ws"

async def subscribe_trades(coin: str):
    async with websockets.connect(WS_URL) as ws:
        sub_msg = {
            "method": "subscribe",
            "subscription": {"type": "trades", "coin": coin}
        }
        await ws.send(json.dumps(sub_msg))

        while True:
            msg = await ws.recv()
            data = json.loads(msg)
            print(data)

asyncio.run(subscribe_trades("BTC"))

Типы WebSocket-подписок смотри в разделе WebSocket официальной документации Hyperliquid.

Дашборд UI на Streamlit

Streamlit хорош тем, что позволяет быстро собрать рабочий интерфейс без отдельного фронтенда:

import streamlit as st
import pandas as pd
import plotly.express as px

st.set_page_config(page_title="Hyperliquid Dashboard", layout="wide")

ADDRESS = st.sidebar.text_input("Введите адрес кошелька", value="0x...")

if ADDRESS.startswith("0x"):
    state = fetch_account_state(ADDRESS)
    margin = state.get("marginSummary", {})

    col1, col2, col3 = st.columns(3)
    col1.metric("Стоимость аккаунта (USDC)", f"${float(margin.get('accountValue', 0)):,.2f}")
    col2.metric("Доступная маржа", f"${float(margin.get('withdrawable', 0)):,.2f}")
    col3.metric(
        "Плечо",
        f"{float(margin.get('totalRawUsd', 0)) / max(float(margin.get('accountValue', 1)), 1):.1f}x"
    )

    positions = state.get("assetPositions", [])

    if positions:
        pos_data = []
        for p in positions:
            pos = p.get("position", {})
            pos_data.append({
                "Монета": pos.get("coin"),
                "Направление": "Лонг" if float(pos.get("szi", 0)) > 0 else "Шорт",
                "Размер позиции": abs(float(pos.get("szi", 0))),
                "Нереализованный PnL": float(pos.get("unrealizedPnl", 0)),
                "Цена входа": float(pos.get("entryPx", 0)),
            })

        df = pd.DataFrame(pos_data)
        st.dataframe(df)

        fig = px.bar(
            df,
            x="Монета",
            y="Нереализованный PnL",
            color="Направление",
            title="Нереализованный PnL по позициям"
        )
        st.plotly_chart(fig, use_container_width=True)

Такой вариант уже покрывает базовый мониторинг аккаунта: стоимость, доступную маржу, текущее плечо и PnL по открытым позициям.

Продакшн-дашборд на Grafana

Если тебе нужны командная работа, хранение истории и полноценные алерты, лучше смотреть в сторону Grafana:

  1. Запусти локальную Grafana: docker run -d -p 3000:3000 grafana/grafana.
  2. Настрой источник данных PostgreSQL + TimescaleDB.
  3. Напиши Python-скрипт, который раз в минуту забирает данные из Hyperliquid API и пишет их в базу.
  4. Создай панели в Grafana и построй графики через SQL-запросы.
  5. Настрой алерты, например уведомление при превышении funding rate заданного порога.

Официальная документация Grafana содержит подробные инструкции по настройке панелей и алертов.

OneKey Wallet: безопасная база для дашборда

Сам дашборд запрашивает данные по адресу кошелька в режиме read-only. Но как только ты хочешь действовать по сигналам из мониторинга — открывать или закрывать позиции, менять плечо, торговать бессрочники — безопасность приватных ключей становится критичной.

OneKey Hardware Wallet хранит приватные ключи в физическом защищённом чипе. Даже если компьютер заражён вредоносным ПО, приватный ключ не должен покидать устройство.

В связке с OneKey Perps ты можешь использовать практичный workflow: анализировать данные в своём Hyperliquid-дэшборде, а затем безопасно исполнять сделки по Hyperliquid perpetuals через аппаратную подпись. Это создаёт понятную связку: аналитика данных + безопасное исполнение.

Попробуй скачать OneKey и использовать OneKey Perps как более безопасный способ работать с бессрочниками, особенно если ты регулярно торгуешь с плечом и хочешь снизить операционные риски вокруг приватных ключей.

Частые вопросы

Q1: Есть ли у Hyperliquid официальный плагин источника данных для Grafana?

Нет, официального Grafana-плагина сейчас нет. Но можно подключаться к Hyperliquid API через JSON API datasource или Infinity plugin в Grafana, либо сохранять данные в промежуточную базу данных и уже из неё строить графики.

Q2: Может ли WebSocket-соединение отваливаться?

Да. При долгом отсутствии активности WebSocket-соединение может завершиться по таймауту. В коде лучше реализовать heartbeat-механику через ping/pong и автоматическое переподключение, чтобы сбор данных не прерывался.

Q3: Можно ли показывать данные чужого аккаунта?

Да. Данные аккаунтов Hyperliquid публичны, и для запроса достаточно указать любой валидный Ethereum-адрес. Это также означает, что твои собственные данные тоже видны другим пользователям.

Q4: Как настроить алерт на аномальный funding rate?

Можно добавить условие в скрипт сбора данных: если funding rate превышает заданный порог, например 0,1% в час, отправлять уведомление через Telegram Bot API или email. В Grafana также есть встроенная система алертов.

Q5: Что лучше для новичка — Streamlit или Grafana?

Streamlit проще, если ты уже пишешь на Python: несколько десятков строк кода — и у тебя есть таблицы и графики. Grafana лучше для долгосрочного мониторинга, командного доступа и продакшн-алертов, но порог входа немного выше.

Риск-предупреждение

Этот материал — технический гайд и не является инвестиционной рекомендацией, юридическим или финансовым советом. Крипторынок крайне волатилен, а данные дашборда предназначены только для анализа и не предсказывают будущую доходность. Принимай торговые решения только после самостоятельной оценки рисков.

Защитите свое криптопутешествие с OneKey

View details for Магазин OneKeyМагазин OneKey

Магазин OneKey

Самый продвинутый аппаратный кошелек в мире.

View details for Загрузить приложениеЗагрузить приложение

Загрузить приложение

Предупреждения о мошенничестве. Поддержка всех монет.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

Ясность в криптовалюте — на расстоянии одного звонка.