{
  "checked_at": "2026-09-14",
  "model": "original_cov_720h_168h_top5_hourly_v2",
  "sections": [
    {
      "id": "scope",
      "title": {
        "ru": "Версия и обозначения",
        "en": "Version and notation",
        "zh": "版本与符号"
      },
      "paragraphs": {
        "ru": [
          "Проверено по исходникам и настройкам проекта 14 сентября 2026 года. Плагин rs_rotation_v1, модель original_cov_720h_168h_top5_hourly_v2, политика continuous_target_v2. URL не содержит версии; старый адрес перенаправляет кодом 301. Это описание проверенного кода, а не подтверждение загрузки всех настроек ведущим счётом или их воспроизведения подписчиком.",
          "E — текущая equity всего счёта; f — выделяемая доля; A — выделенный капитал; G — целевой абсолютный номинал обеих сторон вместе; A₀ — первоначально выделенный капитал. q измеряется в контрактах, c — количество базового актива в контракте. BTC — только бенчмарк."
        ],
        "en": [
          "Checked against source and settings on September 14, 2026. Plugin rs_rotation_v1, model original_cov_720h_168h_top5_hourly_v2, policy continuous_target_v2. The URL is version independent; the old address redirects with HTTP 301. This documents checked code, not proof that every setting is currently loaded by the lead account or reproduced by followers.",
          "E is current account equity; f allocation fraction; A allocated capital; G total absolute target notional across both sides; A₀ initial allocated capital. q is contracts and c is base-asset quantity per contract. BTC is benchmark only."
        ],
        "zh": [
          "于 2026 年 9 月 14 日按源码和设置核对。插件 rs_rotation_v1，模型 original_cov_720h_168h_top5_hourly_v2，执行策略 continuous_target_v2。网址不含版本号，旧网址通过 HTTP 301 重定向。本文描述已核对代码，不证明带单账户此刻加载全部设置或跟单者完全复制。",
          "E 为当前账户净值，f 分配比例，A 分配资金，G 多空合计绝对目标名义价值，A₀ 初始分配资金。q 为合约张数，c 为每张基础资产数量。BTC 仅作基准。"
        ]
      },
      "formula": "A = fE; G = kA\nf = 1; k = 10; L_i = 10 for AVNT; 20 otherwise\nA₀ persists; it is not a high-water mark"
    },
    {
      "id": "data",
      "title": {
        "ru": "Полный universe и данные",
        "en": "Full universe and data",
        "zh": "完整资产池与数据"
      },
      "paragraphs": {
        "ru": [
          "Всего 58 монет: 50 основных и 8 дополнительных — ETHFI, RIVER, AVNT, 币安人生, JUP, 牛来, PONS, MARSCOIN. BTC служит отдельным бенчмарком и не входит в эти 58. Дополнительный актив участвует при полной часовой истории, обороте за 24 часа не менее 50 000 USDT и спреде не более 0,5%. При отсутствии истории или прохождении фильтров с ошибкой он исключается из текущего отбора; ошибка основных активов или BTC блокирует расчёт. Если по дополнительной монете уже есть позиция, отсутствие её истории блокирует новый план. Для дополнительных монет также проверяются доступность в каталоге и настроенное плечо; фильтр ликвидности повторяется перед входом. Все 58 монет относятся к одному портфелю и общему бюджету риска.",
          "История содержит 721 закрытую часовую свечу на каждый включённый актив и BTC: H = 721×(n+1)×6, где 50≤n≤58. При всех 58 активах: 721×59×6. Поля: время открытия, open, high, low, close, volume. Свечи должны быть конечными, согласованными и без пропусков; OHLC>0, volume≥0. Подстановка отсутствующих свечей не допускается. Порядок: основные активы, доступные дополнительные, BTC последним."
        ],
        "en": [
          "There are 58 coins: 50 core assets and 8 optional additions — ETHFI, RIVER, AVNT, 币安人生, JUP, 牛来, PONS, MARSCOIN. BTC is a separate benchmark and is not one of the 58. An optional asset needs complete hourly history, at least 50,000 USDT of 24-hour turnover and a spread no wider than 0.5%. Missing history or failed filters exclude it from current selection; a core-asset or BTC data error blocks calculation. If an optional coin is already held, missing history blocks the new plan. Optional coins also require catalog availability and aligned leverage; liquidity is checked again before entry. All 58 coins share one portfolio and risk budget.",
          "History contains 721 closed hourly candles for each included asset and BTC: H = 721×(n+1)×6, with 50≤n≤58. With all 58 assets: 721×59×6. Fields are opening timestamp, open, high, low, close, volume. Candles must be finite, consistent and gap-free; OHLC>0, volume≥0. Missing candles are never filled. Order is core assets, available optional assets, BTC last."
        ],
        "zh": [
          "共 58 种币：50 个核心资产与 8 个可选新增资产——ETHFI、RIVER、AVNT、币安人生、JUP、牛来、PONS、MARSCOIN。BTC 是独立基准，不计入这 58 种币。新增资产须有完整小时历史、24 小时成交额至少 50,000 USDT、价差不超过 0.5%。历史缺失或过滤失败时，该资产不参与当前筛选；核心资产或 BTC 数据错误会阻止计算。 若已持有新增币仓位，其历史缺失会阻止新计划。新增币还须通过目录可用性与杠杆一致性检查，入场前再次核验流动性。58 种币共享一个组合和风险预算。",
          "每个已纳入资产及 BTC 包含 721 根已收盘小时蜡烛：H = 721×(n+1)×6，50≤n≤58。全部 58 个资产时为 721×59×6。字段为开盘时间、open、high、low、close、volume。蜡烛须有限、一致、连续，OHLC>0、volume≥0，不填充缺失蜡烛。顺序为核心资产、可用新增资产、最后 BTC。"
        ]
      },
      "formula": "ETH SOL XRP DOGE BNB ADA SUI HYPE PEPE ZEC\nLTC FIL WLD TRX XAUT LINK ENA BCH ARB NEAR\nTRUMP DOT DASH SHIB WIF ASTER GRAM UNI AVAX ONDO\nORDI ETC OP TAO XLM ATOM XMR FLOKI BEAT FARTCOIN\nAPT PUMP ICP TIA PENGU LIT PEOPLE AAVE BONK SUSHI\nETHFI RIVER AVNT 币安人生 JUP 牛来 PONS MARSCOIN\n\nD mod 3600 = 0\ntimestamps = D−721h, …, D−1h\nhigh ≥ max(open,low,close); low ≤ min(open,high,close)\ninput_hash = SHA256(H: little-endian float64, C order)\nspread = (ask-bid)/((ask+bid)/2) ≤ 0.005\noptional turnover_24h ≥ 50000 USDT\nticker age ∈ [−5, 30] seconds"
    },
    {
      "id": "returns",
      "title": {
        "ru": "Доходности, beta и остаточный риск",
        "en": "Returns, beta and residual risk",
        "zh": "收益率、beta 与残差风险"
      },
      "paragraphs": {
        "ru": [
          "P — цены закрытия, B — BTC. Риск оценивается по 720 простым часовым доходностям. Выборочные оценки используют ddof=1 (знаменатель 719); beta оценивается с центрированием. Дисперсия BTC<10⁻¹² блокирует расчёт. Остаток e не включает отдельный intercept/alpha; σ — его часовая стандартная девиация, без годового пересчёта."
        ],
        "en": [
          "P is close and B is BTC. Risk uses 720 simple hourly returns. Sample estimates use ddof=1 (denominator 719); beta is centered. BTC variance<10⁻¹² blocks calculation. Residual e has no separate intercept/alpha; σ is its hourly standard deviation, not annualized."
        ],
        "zh": [
          "P 为收盘价，B 为 BTC。风险使用 720 个简单小时收益。样本采用 ddof=1（分母 719），beta 使用中心化收益。BTC 方差<10⁻¹² 则阻止。残差 e 无独立截距 alpha，σ 为小时标准差，不年化。"
        ]
      },
      "formula": "rₜ,ᵢ = Pₜ,ᵢ/Pₜ₋₁,ᵢ − 1, t=1,…,720\nr̄ᵢ = Σₜrₜ,ᵢ/720\nvB = Σₜ(rₜ,B−r̄B)²/719\nβᵢ = [Σₜ(rₜ,ᵢ−r̄ᵢ)(rₜ,B−r̄B)/719]/vB\neₜ,ᵢ = rₜ,ᵢ−βᵢrₜ,B\nσᵢ = sqrt[Σₜ(eₜ,ᵢ−ēᵢ)²/719]"
    },
    {
      "id": "score",
      "title": {
        "ru": "Score и фильтры пригодности",
        "en": "Score and eligibility",
        "zh": "Score 与合格条件"
      },
      "paragraphs": {
        "ru": [
          "Сигнал использует лог-доходность за 168 часов, а beta/σ — простые доходности за 720 часов. Это точная смесь реализации, не единая регрессия лог-доходностей. Score не прогноз доходности или вероятности успеха.",
          "Пригодность: β∈[0,2;3], σ строго >10⁻⁶ и volume>0 минимум у 90% последних 720 свечей. Корректный, но непригодный инструмент остаётся во входе. Funding и глубина стакана не включены в score."
        ],
        "en": [
          "The signal uses 168-hour log returns while beta/σ use 720 simple hourly returns. This explicit mixture is not a log-return regression. Score is not an expected return or success probability.",
          "Eligibility: β∈[0.2,3], σ strictly >10⁻⁶ and volume>0 in at least 90% of the last 720 candles. Valid ineligible assets remain in input. Funding and depth are not score inputs."
        ],
        "zh": [
          "信号用 168 小时对数收益，beta/σ 用 720 个简单小时收益。此明确组合不是对数收益回归，score 不是收益预测或成功概率。",
          "合格要求 β∈[0.2,3]、σ 严格>10⁻⁶，最近 720 根至少 90% 成交量>0。合法但不合格的资产仍留在输入。资金费和深度不进入 score。"
        ]
      },
      "formula": "Lᵢ = ln(P_last,ᵢ/P_last−168,ᵢ)\nscoreᵢ = (Lᵢ−βᵢLB)/max(σᵢ,10⁻⁶)/sqrt(168)\neligible = finite(β) AND 0.2≤β≤3 AND σ>10⁻⁶\n           AND count(volume>0)/720 ≥ 0.90"
    },
    {
      "id": "rank",
      "title": {
        "ru": "Отбор и равные ранги",
        "en": "Selection and ties",
        "zh": "筛选与并列排名"
      },
      "paragraphs": {
        "ru": [
          "При менее десяти пригодных возвращается нулевая цель insufficient_eligible, которая может закрывать позиции. Ошибка данных/solver не превращается в flat: новая цель не публикуется.",
          "Стабильная сортировка score по возрастанию: short — первые пять, long — последние пять в обратном порядке. При равных score действует порядок universe с разворотом long-хвоста. Знак score не фильтр. Нулевой QP-вес не исключает raw-кандидата."
        ],
        "en": [
          "Fewer than ten eligible produces the zero target insufficient_eligible, which may close positions. Data/solver errors do not mean flat: no new target is published.",
          "Stable ascending score sort: short takes first five, long takes last five reversed. Ties use universe order with the long tail reversed. Score sign is not a filter. Zero QP weight does not remove raw membership."
        ],
        "zh": [
          "合格不足十个返回 insufficient_eligible 零目标，可能平仓。数据/求解错误不代表清仓：不发布新目标。",
          "按 score 稳定升序，空头取前五，多头取后五并反转。并列依资产池顺序，多头尾部反转。score 正负不是筛选条件，零 QP 权重不移除 raw 候选。"
        ]
      },
      "formula": "rank = stable_argsort(score[eligible])\nshort = rank[:5]; long = reverse(rank[−5:])\nselected = long + short\ns = (+1,+1,+1,+1,+1,−1,−1,−1,−1,−1)"
    },
    {
      "id": "qp",
      "title": {
        "ru": "Ковариация и задача оптимизации",
        "en": "Covariance and optimization",
        "zh": "协方差与优化"
      },
      "paragraphs": {
        "ru": [
          "S рассчитывается по исходным простым доходностям активов, не остаткам e. Матрица смешивает 75% S и 25% диагонали. x — абсолютные доли G, w=s⊙x. Score определяет кандидатов, но отсутствует в objective: нет бонуса momentum, штрафа оборота, прогноза funding или оптимизации ожидаемой прибыли.",
          "Нулевые веса допустимы, long/short не обязаны иметь одинаковый долларовый номинал. Нет fallback на равные веса или простую волатильность."
        ],
        "en": [
          "S uses raw simple asset returns, not residual e. The matrix mixes 75% S and 25% diagonal. x is absolute G weight, w=s⊙x. Score selects candidates but is absent from the objective: no momentum reward, turnover penalty, funding forecast or expected-profit optimization.",
          "Zero weights are allowed; long/short dollar notionals need not match. No equal-weight or simple-volatility fallback."
        ],
        "zh": [
          "S 用资产原始简单收益，非残差 e。矩阵为 75% S 加 25% 对角项。x 为 G 的绝对权重，w=s⊙x。score 只选候选，不进入目标：无动量奖励、换手惩罚、资金费预测或预期利润优化。",
          "允许零权重，多空美元名义价值不必相等，不采用等权或简单波动率回退。"
        ]
      },
      "formula": "Sᵢⱼ = Σₜ(rₜ,ᵢ−r̄ᵢ)(rₜ,ⱼ−r̄ⱼ)/719\nΣ = 0.75S + 0.25diag(diag(S))\nQ = Σ_selected ⊙ (ssᵀ)\nminimize 0.5xᵀQx\nsubject to Σxᵢ=1; Σsᵢβᵢxᵢ=0; 0≤xᵢ≤0.15\nw=s⊙x"
    },
    {
      "id": "solver",
      "title": {
        "ru": "Численный протокол solver",
        "en": "Numerical solver protocol",
        "zh": "求解器数值协议"
      },
      "paragraphs": {
        "ru": [
          "Ровно 10 переменных, матрица 10×10, стороны 5+/5−, конечные значения, β∈[0,2;3]. Симметрия allclose: atol=10⁻¹², стандартный rtol=10⁻⁵; min eigenvalue≥−10⁻¹². Нормировка Q и 10⁻¹⁰I — численная регуляризация. Если начальная точка превышает cap+10⁻¹², блокировка, даже если существует другая допустимая точка.",
          "После solver allocate повторно проверяет finite, |gross−1|≤10⁻⁸, |w·β|≤10⁻⁸, cap≤0,15+10⁻⁹ и направление wᵢsᵢ≥−10⁻¹⁰. Ошибка/несходимость не даёт упрощённого портфеля. Preset должен целиком совпадать с параметрами модели."
        ],
        "en": [
          "Exactly 10 variables, 10×10 matrix, 5+/5− signs, finite values and β∈[0.2,3]. Symmetry allclose uses atol=10⁻¹² and default rtol=10⁻⁵; min eigenvalue≥−10⁻¹². Q scaling and 10⁻¹⁰I are numerical regularization. Initialization above cap+10⁻¹² blocks even if another feasible point exists.",
          "After solver, allocate rechecks finite, |gross−1|≤10⁻⁸, |w·β|≤10⁻⁸, cap≤0.15+10⁻⁹ and wᵢsᵢ≥−10⁻¹⁰. Errors/nonconvergence do not yield a simplified portfolio. The entire preset must match model parameters."
        ],
        "zh": [
          "严格 10 变量、10×10 矩阵、5+/5−方向、有限值及 β∈[0.2,3]。对称 allclose 用 atol=10⁻¹²、默认 rtol=10⁻⁵；最小特征值≥−10⁻¹²。Q 缩放与 10⁻¹⁰I 是数值正则化。初始点超 cap+10⁻¹² 则阻止，即便另有可行点。",
          "求解后 allocate 复查有限值、|gross−1|≤10⁻⁸、|w·β|≤10⁻⁸、cap≤0.15+10⁻⁹、wᵢsᵢ≥−10⁻¹⁰。错误或不收敛不生成简化组合。整个 preset 必须匹配模型参数。"
        ]
      },
      "formula": "Q̃ = Q/max(max(diag(Q)),10⁻¹²) + 10⁻¹⁰I\nbL=mean(β_long); bS=mean(β_short)\nx_long=bS/[5(bL+bS)]; x_short=bL/[5(bL+bS)]\nC=[1ᵀ; (s⊙β)ᵀ]; Cx=(1,0)ᵀ\nrepeat at most 500 iterations:\n  F = non-active coordinates; require |F|≥2\n  g=Q̃x\n  solve [Q̃_FF C_Fᵀ; C_F 0][d_F;λ]=[−g_F;0;0]\n    using least squares, rcond=10⁻¹²; d_active=0\n  if max|d|<10⁻¹⁰:\n    z=g+Cᵀλ\n    violation=−z_j at lower bound, +z_j at upper\n    if no active bounds or max violation<10⁻⁹:\n      clip x to [0,0.15]\n      require max|Cx−(1,0)|≤10⁻⁸, max(x)≤0.15+10⁻¹⁰\n      return x\n    else release most violated bound\n  else:\n    step starts at 1, reduced to first bound along d\n    |d_j|≤10⁻¹² does not set a bound\n    x←x+step*d; activate bound reached\notherwise: OptimizationBlocked"
    },
    {
      "id": "membership",
      "title": {
        "ru": "Подтверждение состава",
        "en": "Membership confirmation",
        "zh": "成分确认"
      },
      "paragraphs": {
        "ru": [
          "Только D−3600 — соседний отбор. По каждой стороне сначала сохраняются прежние пригодные участники, присутствующие в текущем или предыдущем raw; затем добавляются новые из обоих raw. Старые имеют приоритет; максимум пять. Первое выпадение сразу снимает поддержку входа, два соседних выпадения удаляют accepted. Потеря eligibility удаляет немедленно.",
          "После разрыва часов пригодные старые удерживаются, новые подтверждения начинаются заново. При пересечении сторон сохраняется прежняя (поиск long перед short). Новый вход требует supported, ненулевой raw-вес правильного знака и flat противоположной стороны. Пропущенные часы не доторговываются."
        ],
        "en": [
          "Only D−3600 is adjacent. Per side, retain eligible incumbents present in current or previous raw, then add new candidates present in both. Incumbents first, maximum five. First absence removes entry support; two adjacent absences remove accepted membership. Lost eligibility removes immediately.",
          "After a time gap, eligible incumbents remain and new confirmations restart. Overlap retains the previous side (long searched first). Entry requires supported, nonzero correctly signed raw weight and a flat opposite side. Missed hours are not traded retroactively."
        ],
        "zh": [
          "仅 D−3600 算相邻。每侧先保留当前或上次 raw 中合格旧成分，再加入两次均出现的新候选。旧成分优先，最多五个。首次缺席取消入场支持，连续两次缺席移除 accepted；失去合格性立即移除。",
          "小时中断后保留合格旧成分，确认重启。两侧重叠保留原方向（先查 long）。入场要求 supported、方向正确的非零 raw 权重和反向仓位为零，不追补错过小时。"
        ]
      },
      "formula": "adjacent = previous.D==D−3600\nraw_prev = previous.raw if adjacent else empty\nkept = previous.accepted ∩ eligible, filtered by\n       (in raw_now OR in raw_prev OR NOT adjacent)\nnew = raw_now ∩ raw_prev ∩ eligible, excluding kept\naccepted = first 5 of kept+new, per side\nsupported = accepted ∩ raw_now ∩ raw_prev\ndegraded = either accepted side has fewer than 5"
    },
    {
      "id": "partial",
      "title": {
        "ru": "Полная и частичная корзина",
        "en": "Complete and partial baskets",
        "zh": "完整与部分组合"
      },
      "paragraphs": {
        "ru": [
          "Полные accepted 5+5: QP пересчитывается на этом составе по текущей матрице, даже при отличающемся raw. Увеличения всё равно требуют supported и raw-веса правильного знака.",
          "При неполном составе неподдержанным удерживаемым сохраняется текущий объём, удалённым — ноль. Отдельные supported могут получить свои доли из полного текущего raw-QP после полной проверки округления. Отсутствующие доли не перераспределяются (confirmed_raw_targets_v1). Фактическая корзина может быть меньше 5+5 и целевого gross.",
          "Ошибка округления полной raw-цели блокирует выдачу новых частичных целей, но сохраняет удержания и удаление исключённых. Ошибка полной accepted-модели не заменяется частичным fallback."
        ],
        "en": [
          "Complete accepted 5+5: rerun QP on that membership with current risk even if raw differs. Increases still require supported membership and correctly signed raw weight.",
          "For incomplete membership, unsupported incumbents retain current volume and removed assets get zero. Individually supported assets can receive their shares from the complete current raw QP after full rounding validation. Missing shares are not redistributed (confirmed_raw_targets_v1); actual basket/gross can be smaller.",
          "Raw rounding failure blocks new partial targets but preserves holds and removed-asset exits. A complete accepted-model failure has no partial fallback."
        ],
        "zh": [
          "完整 accepted 5+5 按当前风险重算 QP，即使 raw 不同。增仓仍要求 supported 与正确 raw 权重。",
          "成分不全时，不受支持的保留成员维持数量，移除资产目标为零。独立确认 supported 可在完整 raw QP 取整校验后取得自己的份额，不重分配缺失份额（confirmed_raw_targets_v1）。实际成分和 gross 可小于完整目标。",
          "raw 取整失败阻止新部分目标，但保留持仓和退出；完整 accepted 失败不采用部分回退。"
        ]
      },
      "formula": ""
    },
    {
      "id": "rounding",
      "title": {
        "ru": "Размер контракта и округление",
        "en": "Contract sizing and rounding",
        "zh": "合约规模与取整"
      },
      "paragraphs": {
        "ru": [
          "Последний close — reference p. q округляется вниз по шагу; это контракты, не монеты. Проверяются биржевые минимумы количества и номинала; остатки не перераспределяются. ŵ нормирован на G, но beta после округления — на A. При k=10 допуск 0,03 от A означает 0,003 от G.",
          "Полная цель требует gross 98–100% G, обе стороны и cap 15% G. Нулевой insufficient_eligible освобождён от этих проверок. Частично исполненный портфель не обязан иметь gross≥98% G."
        ],
        "en": [
          "Last close is reference p. q rounds down to contract step, not coin quantity. Exchange quantity/notional minimums apply; leftovers are not redistributed. ŵ is normalized by G but rounded beta by A. At k=10, 0.03 of A means 0.003 of G.",
          "Full targets require gross 98–100% G, both sides and 15% G cap. Zero insufficient_eligible is exempt. Partial execution need not reach 98% G."
        ],
        "zh": [
          "最后 close 为参考 p，q 按合约步长向下取整，不是币数。校验交易所最小张数和名义价值，余量不重分配。ŵ 按 G 归一化，取整 beta 按 A；k=10 时 A 的 0.03 等于 G 的 0.003。",
          "完整目标要求 98–100% G、双侧、15% G 上限。零 insufficient_eligible 豁免，部分执行无需达到 98% G。"
        ]
      },
      "formula": "qᵢ=sign(wᵢ) floor_step(|wᵢ|G/(pᵢcᵢ))\nŵᵢ=qᵢpᵢcᵢ/G\n0.98≤Σ|ŵᵢ|≤1+10⁻⁸; max|ŵᵢ|≤0.15+10⁻⁹\nβ_A,target=(G/A)Σŵᵢβᵢ; |β_A,target|≤0.03\nexists ŵ>0 AND exists ŵ<0"
    },
    {
      "id": "margin",
      "title": {
        "ru": "Маржа и номинал",
        "en": "Margin and notional",
        "zh": "保证金与名义价值"
      },
      "paragraphs": {
        "ru": [
          "При E=A=1 000 USDT, k=10: G=10 000, cap актива 1 500; L=20 даёт около 500 начальной маржи плюс 20 резерва: 520≤900. Это расчёт, не гарантия доступности биржевой маржи. Плечо не умножает G повторно.",
          "Даже пустая/частичная цель проверяется по полной модели. Берётся максимум маржи полной модели и сохранённых контрактных целей плюс резерв. Падение equity не уменьшает старые контракты автоматически. Неизвестный состав/плечо означает недоступную оценку, не ноль.",
          "G_used и M_used включают позиции и remaining открывающих заявок по max(цена заявки, текущая цена). Закрывающие заявки не освобождают бюджет до доказанного fill. Все лимиты повторно проверяются перед отправкой.",
          "Биржевое плечо — 20× по умолчанию, для AVNT — 10× на обеих сторонах. Маржа считается отдельно по плечу каждого актива; при наличии AVNT оценка всего портфеля как G/20 неверна."
        ],
        "en": [
          "At E=A=1,000 USDT and k=10: G=10,000, asset cap 1,500; L=20 implies about 500 initial margin plus 20 reserve: 520≤900. This is a calculation, not guaranteed margin availability. Leverage does not multiply G again.",
          "Even empty/partial targets are assessed against the full model: maximum of full-model and saved-contract margin plus reserve. Falling equity does not shrink saved contracts automatically. Missing composition/leverage means unavailable, not zero.",
          "G_used/M_used include positions and remaining opening orders at max(order price,current price). Closing orders release nothing until proven fills. Limits are rechecked at dispatch.",
          "Exchange leverage defaults to 20×, with 10× for AVNT on both sides. Margin is calculated using each asset’s leverage; G/20 is not a valid portfolio estimate when AVNT is included."
        ],
        "zh": [
          "E=A=1,000、k=10 时，G=10,000，单资产上限 1,500。L=20 下初始保证金约 500 加储备 20，即 520≤900；仅为计算，不保证可用保证金。杠杆不再次乘入 G。",
          "空/部分目标仍按完整模型评估，取完整模型与保存合约目标保证金的较大值再加储备。净值下降不会自动缩小旧合约，缺成分/杠杆表示无法评估，不是零。",
          "G_used/M_used 包含持仓及剩余开仓单，按 max(订单价,当前价) 计值。平仓单确认成交前不释放预算，发送前复查限制。",
          "交易所杠杆默认 20×，AVNT 双侧为 10×。保证金按每个资产的杠杆分别计算；含 AVNT 时不能用 G/20 估计整个组合保证金。"
        ]
      },
      "formula": "R=0.02A; margin_limit=0.90E\nM_model=Σ|wᵢG|/Lᵢ; M_contracts=Σ|qᵢpᵢcᵢ|/Lᵢ\nmax(M_model,M_contracts)+R≤0.90E\n\nOpening order added notional N:\nM_used+N/L+R≤0.90E; N/L+R≤available_margin\nG_used+N≤min(G_saved,10A_current,10.3E_current)\nN_symbol+N≤0.15min(G_saved,10A_current)"
    },
    {
      "id": "delta",
      "title": {
        "ru": "Отклонения, deadband и порции",
        "en": "Differences, deadband and slices",
        "zh": "偏差、阈值与分片"
      },
      "paragraphs": {
        "ru": [
          "Разница цели и текущих контрактов вычисляется по каждой стороне. Обычная корректировка ненулевой цели пропускается при номинале разницы <1% A, по текущей цене и повторно по цене заявки. Нулевая цель, emergency и защитные сокращения обходят deadband.",
          "Начальная порция ≤10% A, не G. Далее её ограничивают gross, cap, маржа, beta, шаг и closeable. Если после сокращения остаётся недопустимый малый остаток, можно закрыть всю позицию больше обычной порции, только в пределах требуемого сокращения и жёсткой beta. Чужой объём не присваивается; available/frozen не вычитаются дважды."
        ],
        "en": [
          "Differences are computed per side. Ordinary nonzero-target adjustment skips a delta below 1% A, checked at current and order price. Zero target, emergency and protective reductions bypass deadband.",
          "Initial slice≤10% A, not G, then limited by gross, cap, margin, beta, step and closeability. To avoid an invalid tiny remainder, the whole position may exceed the usual slice only within required reduction and hard beta. Foreign volume is not adopted; available/frozen are not subtracted twice."
        ],
        "zh": [
          "分别计算各侧偏差。普通非零目标调整不足 1% A 时按当前及订单价检查后跳过；零目标、紧急和保护减仓豁免。",
          "初始子单≤10% A，非 G，再受 gross、cap、保证金、beta、步长及可平量限制。为避免非法小余仓，可超常规子单整仓平掉，但不能超所需减仓或硬 beta。不能认领外部数量，不重复扣除 available/frozen。"
        ]
      },
      "formula": "Δq_side=q_target,side−q_current,side\nordinary nonzero target: skip if |Δq|pc<0.01A\nq_child≤min(|Δq|,0.10A/(p_order c))\nclose_capacity=max(0,min(position.available,\n                        position.size−remaining_close_orders))"
    },
    {
      "id": "beta-envelope",
      "title": {
        "ru": "Beta и любые частичные исполнения",
        "en": "Beta and arbitrary partial fills",
        "zh": "Beta 与任意部分成交"
      },
      "paragraphs": {
        "ru": [
          "B_A нормируется на текущий A, не G. Pending считаются с независимым исполнением любой части: buy даёт положительное, sell отрицательное приращение независимо от open/close. Для заявки берётся max(order price, current price).",
          "Жёсткий диапазон ±0,10; обычная порция выбирается в ±0,09, оставляя 10% полосы на задержки и движение рынка. Финальный guard применяет ±0,10. Если исходная beta вне полосы, допустимо улучшение без худшего противоположного отклонения. Нарушение pending-полосы сначала отменяет крупнейший принадлежащий боту вклад в нарушенную границу, затем требует сверки."
        ],
        "en": [
          "B_A uses current A, not G. Pending orders may fill independently: buy adds positive, sell negative exposure regardless of open/close. Order valuation uses max(order,current price).",
          "Hard band ±0.10; ordinary slices use ±0.09, reserving 10% for latency/movement. Final guard uses ±0.10. Out-of-band beta may improve without a worse opposite excursion. A pending breach cancels the largest owned contributor to the breached edge, then reconciles."
        ],
        "zh": [
          "B_A 按当前 A，非 G。未成交单可独立部分成交，买增正敞口、卖增负敞口，与开平无关，计值取 max(订单价,当前价)。",
          "硬区间 ±0.10，普通子单用 ±0.09 留 10% 给延迟和价格变化，最终 guard 用 ±0.10。已越界时允许改善，不得产生更坏反向偏离。pending 越界先撤对越界边贡献最大的自有订单，再核对。"
        ]
      },
      "formula": "B_A=Σsign(position)q c mark β/A\nδ_o=sign(buy/sell)remaining_o c β max(order_price,current_price)/A\nB_low=B_A+Σmin(0,δ_o); B_high=B_A+Σmax(0,δ_o)\nL=min(−tolerance,B_A); U=max(tolerance,B_A)\nu=|cβ max(order_price,current_price)/A|\nroom=U−B_high (positive impact), B_low−L (negative)\nq_allowed=floor_step(max(0,min(q_requested,room/u)))\nexisting envelope outside [L,U] → q_allowed=0\nu<10⁻¹⁶ → floor_step(q_requested)"
    },
    {
      "id": "prices",
      "title": {
        "ru": "Пассивные цены и перестановка",
        "en": "Passive prices and repricing",
        "zh": "被动报价与改价"
      },
      "paragraphs": {
        "ru": [
          "b/a — лучший bid/ask, m — midpoint, σ — остаточная часовая волатильность. Начальное смещение фиксируется при создании перехода, затем линейно уменьшается по возрасту. Для сокращения с устаревшим планом или отсутствующим σ смещение нулевое.",
          "Пассивный вход 14 400 с (4 ч), сокращение 7 200 с (2 ч), затем возможен IOC. Buy округляется вниз, sell вверх до тика. Вход ограничен ±0,3% от midpoint текущей H1-авторизации. Post-only, пересекающий стакан, блокируется.",
          "Обычная перестановка только ближе к исполнению (buy выше, sell ниже), минимум 2 тика и спустя 120 с от последней отправки/перестановки. Потеря разрешения, несовместимая цель, смена фазы отменяются без этого ожидания."
        ],
        "en": [
          "b/a are best bid/ask, m midpoint, σ residual hourly volatility. Offset is fixed at transition creation then decays with age. Stale-plan or missing-σ reductions start at zero offset.",
          "Passive entry 14,400s (4h), reduction 7,200s (2h), then IOC may apply. Buy rounds down, sell up to tick. Entry is bounded ±0.3% from current H1 authorization midpoint. Crossing post-only is blocked.",
          "Ordinary reprice only moves toward a fill (buy higher,sell lower), at least 2 ticks and 120s since last submit/reprice. Lost authorization, incompatible target or phase change cancel without waiting."
        ],
        "zh": [
          "b/a 为最优买卖价，m 中间价，σ 小时残差波动。偏移在转换创建时固定，随年龄衰减。减仓计划过期或无 σ 时偏移为零。",
          "被动入场 14,400 秒（4h）、减仓 7,200 秒（2h），再可用 IOC。买向下、卖向上取整到 tick。入场限制当前 H1 授权中间价 ±0.3%，穿盘口 post-only 阻止。",
          "普通改价只向成交靠近（买升卖降），至少 2 tick 且距上次发送/改价 120 秒。授权丢失、目标冲突或换阶段立即撤销。"
        ]
      },
      "formula": "m=(b+a)/2\no₀=min(0.001,max((a−b)/m,0.10σ))\no(t)=o₀[1−min(1,elapsed/T_passive)]\np_buy=floor_tick[b(1−o(t))]\np_sell=ceil_tick[a(1+o(t))]\nentry buy≤m_auth*1.003; entry sell≥m_auth*0.997"
    },
    {
      "id": "ioc",
      "title": {
        "ru": "IOC, авторизация и срок входа",
        "en": "IOC, authorization and expiry",
        "zh": "IOC、授权与到期"
      },
      "paragraphs": {
        "ru": [
          "IOC — лимитная заявка, остаток после доступного исполнения отменяется. Buy ограничен ask×1,001, sell bid×0,999, вход дополнительно ±0,3% midpoint H1. После округления buy<ask или sell>bid — блокировка, без market fallback.",
          "До 3 IOC-попыток входа на авторизацию, интервал минимум 120 с. Новый подтверждённый H1 обновляет midpoint, срок и счётчик, но не arrival, начальное смещение или возраст. Вход истекает через 86 400 с. У обязательного выхода и emergency нет общего дедлайна; emergency повторяется не чаще 10 с.",
          "Исчезновение raw и новое подтверждение могут начать новый эпизод. Существенная дополнительная цель после expiry разрешает только добавку, старый остаток хранится отдельно и не омолаживается. Обратный ход часов блокирует вход. Неизвестный submit сохраняет обязательства."
        ],
        "en": [
          "IOC is a limit order canceling unfilled remainder. Buy bounded by ask×1.001, sell by bid×0.999, with ±0.3% H1 midpoint bound for entry. Rounded buy<ask or sell>bid blocks without market fallback.",
          "At most 3 entry IOC attempts per authorization, at least 120s apart. New confirmed H1 updates midpoint, expiry and attempts, not arrival, offset or age. Entry expires at 86,400s. Mandatory exit/emergency has no total deadline; emergency retries no more often than 10s.",
          "Raw disappearance and renewed confirmation can start a new episode. A material post-expiry target addition permits only the addition; old remainder is carried separately, not rejuvenated. Backward clocks block entry. Unknown submit retains obligations."
        ],
        "zh": [
          "IOC 是限价单，未成交余量取消。买限 ask×1.001、卖限 bid×0.999，入场另受 H1 中间价 ±0.3% 限制。取整买<ask 或卖>bid 则阻止，不回退市价。",
          "每授权最多 3 次入场 IOC，间隔≥120 秒。新确认 H1 更新中间价、到期和计数，不重置 arrival、偏移或年龄。入场 86,400 秒到期，必须退出/emergency 无总截止；紧急重试间隔≥10 秒。",
          "raw 消失再确认可建新阶段，到期后显著增量只授权新增，旧余量单独保留不刷新年龄。时钟倒退阻止入场，未知提交保留义务。"
        ]
      },
      "formula": "IOC buy=floor_tick(ask*1.001)\nIOC sell=ceil_tick(bid*0.999)\nentry buy=floor_tick(min(ask*1.001,m_auth*1.003))\nentry sell=ceil_tick(max(bid*0.999,m_auth*0.997))\nentry attempts/authorization≤3; entry age<86400s"
    },
    {
      "id": "schedule",
      "title": {
        "ru": "Свежесть, очередь и цели",
        "en": "Freshness, scheduling and targets",
        "zh": "新鲜度、调度与目标"
      },
      "paragraphs": {
        "ru": [
          "Новое D создаётся только внутри [D,D+3600), повтор уже обработанного D запрещён. Срок разрешения входа D+3720; без новой цели после него входы блокируются и resting entry отменяются. Допустимые выходы и защита продолжают обслуживаться.",
          "Public worker проверяет перекрытие истории и атомарно публикует полное окно; точные входы архивируются с SHA-256. В действующем runtime снимок и стакан не старше 30 с; отрицательный возраст запрещён. Экономическая выписка для входа проверена не более 120 с назад.",
          "Одна ordinary-заявка на инструмент/сторону. Очередь — самый давно обслуженный допустимый переход, затем сокращение, меньшая итоговая |beta|, символ. Перестановки в той же очереди. При защите сначала |beta|. Обычный выход не запрещает все остальные входы глобально."
        ],
        "en": [
          "New D is created only within [D,D+3600); duplicate processed D is forbidden. Entry expires D+3720; without a new target entries block and resting entries cancel. Permissible exits/protection continue.",
          "Public worker checks overlap and atomically publishes the complete history; exact inputs are SHA-256 archived. Runtime snapshot/book age≤30s and nonnegative. Entry economic statements verified within 120s.",
          "One ordinary order per instrument/side. Queue favors least recently serviced eligible transition, then reduction, smaller resulting |beta|, symbol. Reprices share the queue. Protection compares |beta| first. Ordinary exits do not globally block all openings."
        ],
        "zh": [
          "新 D 仅在 [D,D+3600) 创建，不重复已处理 D。入场 D+3720 到期，无新目标则阻止入场和撤挂单；合格退出/保护继续。",
          "Public worker 校验重叠并原子发布完整历史，按 SHA-256 存档。runtime 快照/盘口年龄非负且≤30 秒，入场经济流水核验距今≤120 秒。",
          "每标的/侧一张普通单，先服务最久未处理的合格转换，再减仓、较小最终 |beta|、符号；改价同队列。保护先比 |beta|。普通退出不全局禁止其他入场。"
        ]
      },
      "formula": "new plan: D≤now<D+3600\nentry expiry=D+3600+120\n0≤book_age≤30s; 0≤snapshot_age≤30s\nnormal priority=(last_service,reduce_before_open,|beta_after|,symbol)\nprotective priority=(|beta_after|,reduce_before_open,symbol)"
    },
    {
      "id": "protective",
      "title": {
        "ru": "Защита по beta, gross и марже",
        "en": "Beta, gross and margin protection",
        "zh": "Beta、gross 与保证金保护"
      },
      "paragraphs": {
        "ru": [
          "Защита включается при emergency, |B_A|>0,10, превышении gross или M_used+R>90% E. Новых открытий нет; сокращения IOC приоритетны. Модельная цель хранится отдельно от защитного исполнения.",
          "Gross/маржа уменьшаются пропорционально; позиция, увеличивающая избыточную beta, дополнительно сокращается к половине полосы (0,05). Объём ограничивается позицией, затем closeable, ценой и beta-конвертом. Перед отправкой причина защиты проверяется заново."
        ],
        "en": [
          "Protection triggers on emergency, |B_A|>0.10, gross excess or M_used+R>90% E. No openings; IOC reductions take priority. Model target remains separate from protective execution.",
          "Gross/margin reductions are proportional; a position worsening excess beta also reduces toward half-band (0.05). Quantity is capped by position then closeability, price and beta envelope. The cause is rechecked at dispatch."
        ],
        "zh": [
          "emergency、|B_A|>0.10、gross 超限或 M_used+R>90% E 触发保护。无新开仓，IOC 减仓优先，模型目标与保护执行分开。",
          "gross/保证金按比例缩减，恶化超额 beta 的持仓再减至半区间 0.05。数量受仓位、可平量、价格和 beta 包络限制，发送前复查原因。"
        ]
      },
      "formula": "G_limit=min(10.3E,1.03*10A)\nz=min(1,G_limit/max(G_used,10⁻¹²),\n      max(0,0.90E−R)/max(M_used,10⁻¹²))\nq_reduce=q_position*(1−z)\nif sign(position)βᵢB_A>0 and |B_A|>0.10:\n  q_reduce=max(q_reduce,(|B_A|−0.05)A/(mark*c*|βᵢ|))\nemergency: q_reduce=q_position\nq_reduce=min(q_position,q_reduce)"
    },
    {
      "id": "accounting",
      "title": {
        "ru": "PnL, funding и денежные потоки",
        "en": "PnL, funding and cash flows",
        "zh": "PnL、资金费与现金流"
      },
      "paragraphs": {
        "ru": [
          "Реализованный результат восстанавливается из подтверждённых исполнений с усреднением цены по стороне и защитой от повторных receipts. Закрытие сверх доказанного остатка блокирует учёт. Комиссия — положительный расход, rebate отрицательный. Открытый PnL — по текущим позициям. Funding суммируется со знаком по проверенным записям, cashflows отдельно.",
          "Wallet сверяется через equity и unrealized одного ответа баланса, не mark разных REST-снимков. Разрыв >0,01 USDT, неподтверждённые комиссии/несвежие выписки блокируют вход. Пополнение не PnL и не сбрасывает A₀. Оборот — сумма qpc всех fills. Диагностические maker/taker определяются типами post-only/IOC, не гарантированной биржевой классификацией."
        ],
        "en": [
          "Realized PnL is reconstructed from confirmed fills with per-side average entry and receipt deduplication. Closing beyond proven inventory blocks accounting. Fees are positive costs, rebates negative. Open PnL uses current positions; signed verified funding and cash flows are separate.",
          "Wallet reconciliation uses equity/unrealized from one balance response, not marks from separate REST reads. Gap>0.01 USDT, unverified fees/stale statements block entry. Deposits are not PnL and do not reset A₀. Turnover is Σqpc over fills. Diagnostic maker/taker follows post-only/IOC types, not guaranteed exchange classification."
        ],
        "zh": [
          "已实现 PnL 从确认成交按各侧平均入场价重建，凭据去重。超过已证明库存平仓会阻止记账。手续费正成本、返佣负值。未实现 PnL 用当前持仓，核验资金费按符号累加，现金流单列。",
          "钱包使用同一余额响应的 equity/unrealized 核对，不混用不同 REST 价格。差异>0.01 USDT、费用未证或流水过期阻止入场。充值非 PnL、不重置 A₀。换手是全部 Σqpc。maker/taker 诊断按 post-only/IOC 类型，不保证等同交易所分类。"
        ]
      },
      "formula": "avg_new=(q_old*avg_old+q_fill*p_fill)/(q_old+q_fill)\nPnL_close=sign(side)q_fill*c*(p_fill−avg_entry)\nPnL_open=Σsign(side)q_position*c*(mark−entry_price)\nPnL_trade=PnL_realized+PnL_open−fees+funding\nexpected_equity=E₀+PnL_trade+cashflows\nwallet_gap=(E−U_balance)\n  −(E₀−U_balance,0+PnL_realized−fees+funding+cashflows)\n|wallet_gap|≤0.01 USDT"
    },
    {
      "id": "emergency",
      "title": {
        "ru": "Аварийный убыток: точная граница",
        "en": "Emergency loss: exact boundary",
        "zh": "紧急亏损：精确边界"
      },
      "paragraphs": {
        "ru": [
          "Триггер — накопленный торговый PnL≤−10% A₀. Не trailing stop и не максимум просадки от пика. A₀=1 000, рост до 1 500 без cashflows оставляет порог около 900: падение от пика 40%. Gross 10A означает, что движение портфеля на 1% против него может стоить около 10% A до издержек.",
          "Emergency сохраняется и ставит исполняемые цели в ноль; хороший score его не отменяет. Нет общего дедлайна, но остаются цена, closeable, beta и частота попыток ≥10 с. Это локальная best-effort защита, зависящая от процесса, сети, учёта и ликвидности; биржевые управляемые TP/SL выключены.",
          "Если accounting выбрасывает ошибку, проверка loss недоступна в этом цикле и входы блокируются; самостоятельные beta/gross/маржа продолжаются при пригодном снимке. Неподтверждённый отчёт блокирует вход, но вычисленный отрицательный PnL всё ещё может вызвать emergency."
        ],
        "en": [
          "Trigger: cumulative trading PnL≤−10% A₀. Not trailing or peak drawdown. A₀=1,000 then growth to 1,500 without flows leaves threshold around 900: 40% from peak. Gross 10A means a 1% adverse portfolio move can cost about 10% A before costs.",
          "Emergency persists and sets execution targets to zero; a better score does not cancel it. No total deadline, but price, closeability, beta and retry interval≥10s remain. Local best-effort protection depends on process, network, accounting and liquidity; managed exchange TP/SL is off.",
          "Accounting exceptions make loss checking unavailable that cycle and block entry; independent beta/gross/margin checks continue with a usable snapshot. An unverified report blocks entry but its computed negative PnL can still trigger emergency."
        ],
        "zh": [
          "触发为累计交易 PnL≤−10% A₀，非追踪或峰值回撤。A₀=1,000 无现金流涨至 1,500 后阈值仍约 900，即峰值回撤 40%。Gross 10A 下逆向组合波动 1% 可约损失 10% A（未含成本）。",
          "Emergency 持久化并设执行目标为零，好 score 不取消。无总截止但仍受价格、可平量、beta 和重试≥10 秒限制；本地尽力保护依赖进程、网络、记账、流动性，交易所托管 TP/SL 关闭。",
          "Accounting 抛错使该周期 loss 不可查并阻止入场，快照有效时独立 beta/gross/保证金继续。报告未核验阻止入场，但算出的负 PnL 仍可能触发 emergency。"
        ]
      },
      "formula": "emergency ⇔ PnL_trade≤−0.10A₀\nA₀ survives restart/checkpoint/recovery\nA₀≠peak equity; A₀≠G\npersist emergency; executable_targets←0"
    },
    {
      "id": "state",
      "title": {
        "ru": "Журнал и блокирующие условия",
        "en": "Journal and blockers",
        "zh": "日志与阻止条件"
      },
      "paragraphs": {
        "ru": [
          "До биржевого запроса сохраняется intent с уникальным client_order_id и fsync; затем повторно проверяются версия цели, emergency, цена, возраст, капитал, beta, маржа, ownership и объём. Неизвестный submit/cancel не повторяется вслепую и не освобождает резерв. REST orders/positions не атомарны; расхождение не доказывает ручное закрытие.",
          "Вход блокируют чужие/неизвестные заявки, ownership mismatch, непроверенное состояние, неверный режим счёта, отсутствие leading-каталога, неподтверждённое настроенное плечо обеих сторон (AVNT 10×, остальные 20×), устаревшие данные, экономика, неподдержанный кандидат, противоположная позиция, маржа, лот, цена, beta/cap, expiry или обратный ход часов. Блокер входа не должен выключать допустимое сокращение известных объёмов.",
          "Schema 2 хранит хеши/ревизии, membership, возраст/авторизацию, экономическую историю и A₀. Checkpoint после 128 intents — только без unknown и с пригодным receipt checkpoint; обязательства сохраняются. Начальная база требует чистого счёта и нового журнала. Старое состояние требует явного recovery, без автообнуления."
        ],
        "en": [
          "Intent with unique client_order_id is persisted and fsynced before request; target revision, emergency, price, age, capital, beta, margin, ownership and size are then rechecked. Unknown submit/cancel is not blindly repeated and retains reserves. REST orders/positions are not atomic; mismatch does not prove manual closing.",
          "Entry blocks on foreign/unknown orders, ownership mismatch, unreconciled state, wrong account mode, unavailable leading catalog, unconfirmed configured leverage on both sides (AVNT 10×; others 20×), stale data, economics, unsupported candidate, opposite position, margin, lot, price, beta/cap, expiry or backward clock. Entry blockers must not disable permissible owned reductions.",
          "Schema 2 preserves hashes/revisions, membership, age/authorization, economics and A₀. Checkpoint after 128 intents requires no unknown outcomes and a valid receipt checkpoint; obligations persist. Initial baseline needs a clean account/new ledger. Old state requires explicit recovery, no auto-reset."
        ],
        "zh": [
          "请求前持久化唯一 client_order_id 的 intent 并 fsync，再检查目标版本、emergency、价格、年龄、资本、beta、保证金、归属和数量。未知提交/撤销不盲重发，不释放储备。REST 订单/持仓非原子，差异不证明手动平仓。",
          "外部/未知订单、归属冲突、未核状态、账户模式错误、目录不可用、58 资产双侧配置杠杆（AVNT 10×，其他 20×） 未确认、过期数据、经济错误、不受支持候选、反向仓位、保证金、数量、价格、beta/cap、到期或倒退时钟均阻止入场，但不应禁用合法自有减仓。",
          "Schema 2 保存哈希/版本、成分、年龄/授权、经济历史和 A₀。128 intents 后 checkpoint 要求无 unknown 且凭据检查点有效，保留义务。初始基准需干净账户和新日志；旧状态须显式恢复，不自动清零。"
        ]
      },
      "formula": ""
    },
    {
      "id": "limits",
      "title": {
        "ru": "Ограничения и стоимость копирования",
        "en": "Limits and copy trading costs",
        "zh": "限制与跟单费用"
      },
      "paragraphs": {
        "ru": [
          "Ни доходность, ни отсутствие ликвидации, ни точные 10% максимального убытка не гарантированы. Историческая beta к BTC не устраняет другие факторы, смену корреляций, funding/basis, ликвидность и биржевой риск. Веса не оптимизируют оборот; фильтр объёма не оценивает ёмкость рынка. Касание цены H1-свечой не доказывает limit fill.",
          "Правила и технические тесты не заменяют экономическую проверку. Исходники пока не опубликованы; документ раскрывает формулы и проверенный алгоритм, но не заменяет независимый аудит кода. История профиля может включать прежние версии.",
          "Без абонентской платы, вознаграждение 25% прибыли, комиссии/funding отдельно. HTX определяет период, базу распределения и перенос убытков: формула «25% каждой прибыльной сделки» без проверки условий была бы необоснованной. Результат подписчика зависит от собственных fills и настроек."
        ],
        "en": [
          "No guaranteed returns, liquidation immunity or exact 10% loss ceiling. Historical BTC beta leaves other factors, correlation changes, funding/basis, liquidity and exchange risk. Weights do not optimize turnover; the volume filter is not market capacity. An H1 candle touching price does not prove a limit fill.",
          "Rules/tests do not replace economic validation. Source is not yet public: this reveals formulas and checked algorithms, not an independent source audit. Profile history may include previous versions.",
          "No subscription fee; 25% profit share; fees/funding separate. HTX determines period, sharing base and loss carryforward: 25% of each winning trade would be unjustified without verifying terms. Followers have their own fills/settings."
        ],
        "zh": [
          "不保证收益、免清算或精确 10% 亏损上限。历史 BTC beta 不消除其他因子、相关性变化、资金费/基差、流动性和交易所风险。权重不优化换手，成交量过滤非容量评估。H1 触价不证明限价成交。",
          "规则/测试不替代经济验证。源码尚未公开，本文披露公式和已核算法，不代替独立源码审计。账户历史可能含旧版。",
          "无订阅费，25% 利润分成，费用/资金费另计。HTX 决定周期、基数和亏损结转，未经核验不能说每笔盈利扣 25%。跟单者有独立成交和设置。"
        ]
      },
      "formula": ""
    }
  ],
  "parameters": {
    "model_version": "original_cov_720h_168h_top5_hourly_v2",
    "risk_hours": 720,
    "signal_hours": 168,
    "candidates_per_side": 5,
    "weight_cap": 0.15,
    "diagonal_shrinkage": 0.25,
    "position_mode": "dual_side",
    "asset_mode": 2,
    "requested_leverage": 20,
    "protection_mode": "none",
    "max_margin_fraction": 0.9,
    "max_gross_fraction": 10.3,
    "capital_fraction": 1.0,
    "target_gross_multiplier": 10.0,
    "emergency_loss_fraction": 0.1,
    "cost_reserve_fraction": 0.02,
    "beta_tolerance": 0.1,
    "rounding_gross_min": 0.98,
    "rounding_beta_tolerance": 0.03,
    "ioc_slippage": 0.001,
    "entry_deviation": 0.003,
    "reprice_seconds": 120,
    "poll_seconds": 10,
    "accounting_tolerance_usdt": 0.01,
    "entry_passive_seconds": 14400,
    "exit_passive_seconds": 7200,
    "entry_max_age_seconds": 86400,
    "max_passive_seconds": 86400,
    "signal_publish_grace_seconds": 120,
    "child_order_max_equity_fraction": 0.1,
    "rebalance_delta_equity_fraction": 0.01,
    "initial_offset_max_fraction": 0.001,
    "initial_offset_volatility_fraction": 0.1,
    "reprice_min_ticks": 2,
    "strict_target_margin_feasibility": true,
    "membership_confirmation_bars": 2,
    "max_ioc_attempts_per_authorization": 3,
    "ioc_retry_seconds": 120,
    "live_enabled": true,
    "post_only_open_confirmed": true,
    "post_only_close_confirmed": true,
    "ioc_confirmed": true,
    "max_ioc_attempts": 3,
    "universe_count": 58,
    "core_universe_count": 50,
    "optional_universe_count": 8,
    "leverage_override_AVNT": 10,
    "optional_min_turnover_usdt_24h": 50000,
    "optional_max_spread_fraction": 0.005
  },
  "universe": [
    "ETH",
    "SOL",
    "XRP",
    "DOGE",
    "BNB",
    "ADA",
    "SUI",
    "HYPE",
    "PEPE",
    "ZEC",
    "LTC",
    "FIL",
    "WLD",
    "TRX",
    "XAUT",
    "LINK",
    "ENA",
    "BCH",
    "ARB",
    "NEAR",
    "TRUMP",
    "DOT",
    "DASH",
    "SHIB",
    "WIF",
    "ASTER",
    "GRAM",
    "UNI",
    "AVAX",
    "ONDO",
    "ORDI",
    "ETC",
    "OP",
    "TAO",
    "XLM",
    "ATOM",
    "XMR",
    "FLOKI",
    "BEAT",
    "FARTCOIN",
    "APT",
    "PUMP",
    "ICP",
    "TIA",
    "PENGU",
    "LIT",
    "PEOPLE",
    "AAVE",
    "BONK",
    "SUSHI",
    "ETHFI",
    "RIVER",
    "AVNT",
    "币安人生",
    "JUP",
    "牛来",
    "PONS",
    "MARSCOIN"
  ],
  "source_sha256": {
    "strategies/rs_rotation_v1/signal_engine.py": "1e8ab8ae76f5e6408ec95a83d8f19fd62c6c686d01650fcf0a2ed7bce924a8a8",
    "strategies/rs_rotation_v1/plugin.py": "88ee68a3bb86d9785dc233d98f1a91ee7d3c2d85101fcfb018d6931046fd9daa",
    "strategies/rs_rotation_v1/parameters.toml": "358014490dd8ac61526898b58933f1df2f34e1499ad98a1295dbb13be7537003",
    "htxbot/portfolio_targets.py": "232a1e43ab22309d7e2122de6a7d7759a7d7f93016087b3399f43e908e59654e",
    "htxbot/portfolio_continuous.py": "0f0e9bdf9eb802e484cb7a9070219bbdc97dff429d2572c2415be7e8084d0695",
    "htxbot/portfolio_risk.py": "29bc694ee279e058a4fb5a8317c94d08a749d997304a6b953b072b01fe2e7b3d",
    "htxbot/portfolio_state.py": "7350fec1a3319e679900bcf63d9629e5bd7796abfa7118764026ca224c7e16cb",
    "htxbot/portfolio_engine.py": "e54c8653f4efa342e3705cdddc4e8d84bb265df99958c4835fcd8213cabc966f",
    "htxbot/copytrade_execution.py": "530903e1684dacb158ac66f72debab06d8f42416ddb30cd352f1de02ddf10b20",
    "htxbot/portfolio_runtime.py": "fbb47883114e61679c282b5f25093b404ab9d6991240e1742f39d25adabc4484",
    "htxbot/portfolio_history.py": "08730a203490b7e0298eb0c466147eb2b9c9eacb93d602d37719735933d83396",
    "copytrade_config.py": "9c9e9ae67e25535f5f63c395b8997ab6bbc0d7debace7412094ec4c585a9bb27",
    "htxbot/secondary_universe.py": "838d47a30c91378244d41bbc2f174d5fff1c032a1b6274726c97cd36ab6e686c",
    "config/copytrade.toml": "f027564adbe3b7e0680184a0a63f6690bf5a7cd3216cd3b06bb98898360f75fa"
  }
}
