{{ currentNav.label }}

{{ currentNav.description }}

{{ dashboard?.provider?.state || 'LOADING' }}
Источник данных{{ providerName }}{{ dashboard?.provider?.state || '—' }}
Активные инструменты{{ dashboard?.activeInstruments ?? '—' }}из {{ dashboard?.totalInstruments ?? '—' }}
Подключённые клиенты{{ dashboard?.websocketClients ?? 0 }}WebSocket
Активные сценарии{{ dashboard?.activeScenarios ?? 0 }}учебный режим
Задержка потока{{ dashboard?.provider?.latencyMs ?? 0 }} msпоследний тик
Uptime{{ formatDuration(dashboard?.uptimeSec || 0) }}локальный сервер

Состояние системы

Основные локальные компоненты

Backend APINode.js local service
ONLINE
Хранилище{{ dashboard?.database }}
ONLINE
Кэш{{ dashboard?.redis }}
ONLINE
Market Stream{{ dashboard?.provider?.message }}
{{ dashboard?.provider?.state }}

Текущие цены

Real Layer и Display Layer

ПараRealDisplayРежим
{{ item.externalSymbol }} {{ formatInstrumentPrice(item, item.realPrice) }} {{ formatInstrumentPrice(item, item.displayPrice) }} {{ item.mode === 'simulation' ? 'SIMULATION' : 'REAL' }}

Быстрый запуск сценария

Запускает учебное движение для выбранной пары

Real Price{{ scenarioPrice ? formatCurrentPrice(scenarioPrice.realPrice) : '—' }}
Display Price{{ scenarioPrice ? formatCurrentPrice(scenarioPrice.displayPrice) : '—' }}
Difference{{ scenarioPrice?.simulation ? Number(scenarioPrice.simulation.differencePercent || 0).toFixed(3) + '%' : '0.000%' }}
Status{{ scenarioPrice?.simulation?.status || 'REAL' }}
{{ Math.round((scenarioPrice.simulation.progress || 0) * 100) }}% сценария

Своя траектория

Контрольные точки: время сценария и отклонение от базовой цены

ПозицияИзменение ценыИнтерполяция

Сохранённые сценарии

Черновики и история созданных сценариев

НазваниеИнструментСтатусДлительностьОбновлён
{{ item.name }}{{ item.symbol }}{{ item.status }}{{ item.durationSec }} сек.{{ formatDate(item.updatedAt) }}
Сценарии ещё не сохранены.

Настоящие свечи

Real Layer доступен только для чтения

Время UTCOHLC

Учебная копия свечи

Изменения попадут только в Simulation Layer

Выберите свечу слева.
Open time{{ formatDate(candleDraft.openTime) }}REAL НЕ ИЗМЕНЯЕТСЯ
{{ candleValidation.ok ? 'OHLC корректны' : 'Ошибка OHLC' }}{{ candleValidation.error || 'High/Low соответствуют Open и Close.' }}

Изменённые свечи: {{ candleOverrides.length }}

{{ formatCandleTime(item.openTime) }}O {{ item.open }} · H {{ item.high }} · L {{ item.low }} · C {{ item.close }}
DEMO CONTROLВсе счета и операции виртуальные. Изменения фиксируются в Audit Log.
DEMO TRADE EDITORОригинал сделки сохраняется, каждое изменение получает revision и запись аудита.

Закрытые сделки

Выберите сделку для редактирования

У аккаунта пока нет закрытых сделок.

Редактор закрытой сделки

Цена ↔ прибыль пересчитываются автоматически

Выберите закрытую сделку слева.
Расчётная цена закрытия{{ Number(tradePreview.closePrice).toLocaleString('ru-RU', { maximumFractionDigits: 8 }) }}
Расчётный PnL{{ formatMoney(tradePreview.realizedPnl) }}
Комиссии{{ formatMoney(Number(tradePreview.openFee) + Number(tradePreview.closeFee)) }}
DEMO CANDLE MATCHER Модуль проверяет математику сделки и попадание цен в диапазоны OHLC. Это не биржевое подтверждение исполнения и не содержит точной внутрисвечной последовательности тиков.

Подбор сделки по историческим свечам

Введите желаемый PnL, сумму сделки и плечо. Система найдёт ближайшие варианты, где цена входа и выхода укладывается в реальные диапазоны свечей.

Найденные варианты

Проверено свечей: {{ tradeMatcherResult.searchedCandles }} · точных совпадений: {{ tradeMatcherResult.exactCount }} · показано: {{ tradeCandidates.length }}

Запустите поиск, чтобы увидеть математически согласованные варианты.

{{ candidate.exact ? 'ТОЧНО ПО OHLC' : 'БЛИЖАЙШИЙ ВАРИАНТ' }}

{{ candidate.symbol }} · {{ candidate.side }} · {{ candidate.leverage }}×

{{ candidate.score }}/100
Целевой PnL {{ formatMoney(candidate.targetPnl) }} Расчётный PnL {{ formatMoney(candidate.actualPnl) }} Отклонение {{ formatMoney(candidate.deviation) }}
Вход{{ Number(candidate.entryPrice).toLocaleString('ru-RU', { maximumFractionDigits: 8 }) }}{{ candidate.entrySource }} · {{ formatDate(candidate.openedAt) }}
Выход{{ Number(candidate.closePrice).toLocaleString('ru-RU', { maximumFractionDigits: 8 }) }}{{ formatDate(candidate.closedAt) }}
Свеча входа: {{ candidate.entryCandle.low }} — {{ candidate.entryCandle.high }} Свеча выхода: {{ candidate.exitCandle.low }} — {{ candidate.exitCandle.high }} Удержание: {{ candidate.holdingBars }} свечей Комиссии: {{ formatMoney(Number(candidate.openFee) + Number(candidate.closeFee)) }}

{{ candidate.evidence.note }}

Варианты пока не рассчитаны.
VIRTUAL FINANCEНикаких реальных платежей: только презентационные пополнения и выводы.

Новая виртуальная операция

Операция сразу отражается на демо-балансе при статусе COMPLETED

Баланс{{ formatMoney(accountSnapshot?.account?.balance) }}
Всего пополнено{{ formatMoney(accountSnapshot?.account?.totalDeposits) }}
Всего выведено{{ formatMoney(accountSnapshot?.account?.totalWithdrawals) }}
Комиссии{{ formatMoney(accountSnapshot?.account?.feesPaid) }}

История операций

Отдельная история для выбранного аккаунта

ДатаТипМетодСтатусСумма
{{ formatDate(tx.requestedAt) }}{{ tx.type }}{{ tx.method }}{{ tx.status }}{{ tx.type === 'DEPOSIT' ? '+' : '−' }}{{ formatMoney(tx.amount) }}
Операций ещё нет.

Источник котировок

API-ключ никогда не передаётся в пользовательский браузер

Состояние подключения

Технические параметры потока

Provider mode{{ providerData?.settings?.providerMode }}
State{{ providerData?.status?.state }}
Active symbols{{ providerData?.status?.activeSymbols }}
Last event{{ formatDate(providerData?.status?.lastEventAt) }}
Latency{{ providerData?.status?.latencyMs ?? 0 }} ms
Reconnect count{{ providerData?.status?.reconnectCount ?? 0 }}
Rejected events{{ providerData?.status?.rejectedEvents ?? 0 }}
WebSocket clients{{ providerData?.status?.websocketClients ?? 0 }}
{{ providerData?.status?.message }}

Инструменты

Централизованное управление списком подписок

ИнструментTwelve Data symbolТочностьTick sizeСтатус
{{ item.symbol }}{{ item.name }}{{ item.externalSymbol }}{{ item.precision }}{{ item.tickSize }}{{ item.active ? 'ACTIVE' : 'OFF' }}

Audit Log

Неизменяемый журнал административных действий

ДатаАдминистраторДействиеСущностьРезультат
{{ formatDate(item.at) }}{{ item.actor }}{{ item.role }}{{ item.action }}{{ item.entity }}{{ item.result }}
Журнал пока пуст.
{{ toast.message }}