> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 指數價格

> 網路認定某項資產在外部市場值多少錢：資料來源如何加權、異常值如何約束，以及資料來源失效時指數如何降級運行。

指數價格回答的是**這項資產此刻在更廣闊的市場上值多少錢**。這是輸入，不是成交價格：沒有任何訂單按指數價格成交。指數錨定[標記價格](/zh-Hant/trading/mark-price)，為[資金費率](/zh-Hant/trading/funding)設定基準，並透過這兩者決定部位能否存活。

這讓指數價格成為系統所接受的、後果最重的外部輸入。下面這一切之所以存在，是因為價格只要推得動，強平機器就瞄得準。

<h2 id="why-the-venue-builds-its-own">
  為什麼自己構建
</h2>

另一種做法是直接消費別人的預言機，而這種安排的失效模式早有充分記錄：交易場所若引用一個反過來受自身市場影響的價格，就形成閉環——某處的一次扭曲，會在另一處變成一連串強制平倉。

自己構建意味著資料來源、權重和門檻全部可查、可調，而且沒有任何一項回指本交易場所自己的訂單簿。

<h2 id="from-venue-quotes-to-one-number">
  從各家報價到一個數
</h2>

<div className="dg" data-dg="index-price-build">
  <div className="dg-c" style={{aspectRatio:"720 / 406"}}>
    <svg className="dg-w" viewBox="0 0 720 406" aria-hidden="true">
      <path className="dg-wire" d="M 165.00 78.00 L 165.00 89.60" />

      <path className="dg-head" d="M 165.00 96.00 L 160.60 89.60 L 169.40 89.60 Z" />

      <path className="dg-wire" d="M 165.00 148.00 L 165.00 159.60" />

      <path className="dg-head" d="M 165.00 166.00 L 160.60 159.60 L 169.40 159.60 Z" />

      <path className="dg-wire" d="M 165.00 218.00 L 165.00 229.60" />

      <path className="dg-head" d="M 165.00 236.00 L 160.60 229.60 L 169.40 229.60 Z" />

      <path className="dg-wire" d="M 165.00 288.00 L 165.00 299.60" />

      <path className="dg-head" d="M 165.00 306.00 L 160.60 299.60 L 169.40 299.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"7.3892%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">正規化並換算計價貨幣</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"24.6305%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">把每個來源限幅至中位數 ± 帶寬</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"41.8719%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">按成交量、價差與穩定性加權</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"59.1133%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">限制任何單一場所能佔的權重</span></div>
    <div className="dg-b dg--green" style={{left:"0.0000%",top:"76.3547%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">指數價格</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"7.3892%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">這樣接下來的中位數才是在可比的數值之間取的</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"24.6305%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">主流加密資產 1% · 穩定幣 0.5% · 其他 3%</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"41.8719%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">穩定性拿近期成交量對比更長週期，某家場所的突然放量因此買不到影響力</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"59.1133%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">報價看起來再好也一樣</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"76.3547%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">這是輸入，不是成交價格 — 沒有任何訂單按指數價格成交</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"45.8333%"}}><div className="dg-n">交易所行情源進，一個數出</div></div>
    <div className="dg-free" style={{left:"50.0000%",top:"0.0000%",width:"50.0000%"}}><div className="dg-n">這一步堵掉了什麼</div></div>
    <div className="dg-free" style={{left:"0.0000%",top:"91.1330%",width:"100.0000%"}}><div className="dg-n">選擇限幅而不是剔除：一旦剔除，攻擊者只要把某一家推離就縮小了樣本，剩下每個來源的權重反而抬高。</div></div>
  </div>
</div>

每一步各堵掉一條能推動結果的路徑。

**正規化。** 各家行情源有自己的資料結構和計價貨幣。價格若以結算貨幣以外的貨幣計價，會先換算，再進入後面的步驟，這樣接下來的中位數才是在可比的數值之間取的。

**異常值限幅。** 先在所有資料來源上算出中位數，再把每個資料來源拉進以中位數為中心的帶寬內。市場越深，帶寬越窄。

| 標的類別   | 中位數附近的帶寬 |
| ------ | -------- |
| 主流加密資產 | 1%       |
| 穩定幣    | 0.5%     |
| 其他     | 3%       |

選擇**限幅**而不是**剔除**，是刻意的。一旦剔除異常值，攻擊者只要把某一家推離就縮小了樣本，剩下每個資料來源的權重反而抬高。限幅則讓每個資料來源都還算數，同時限定任何一家能拉多遠。

**按品質加權。** 各資料來源以加權平均而非等權方式合併，依據三個因子：

* **成交量**——真實換手更多的場所攜帶更多資訊
* **價差**——更窄的訂單簿意味著更有把握的報價
* **穩定性**——近期成交量與更長週期均值的對比，這樣某家場所的突然放量買不到影響力

**單場所權重上限。** 即便某個資料來源在三個因子上都表現優異，權重一樣有上限；報價看起來再好，也沒有任何一家能主導結果。

綜合效果是給操縱設了一條成本下限：要有意義地推動指數，你必須同時推動數家彼此獨立的場所，在它們真實的深度上推，而且還得撐住。

<h2 id="when-a-source-misbehaves">
  資料來源出問題時
</h2>

三道防線持續運行，各自應對一種不同的失效。

| 防線           | 觸發條件            | 回應                    |
| ------------ | --------------- | --------------------- |
| **異常值限幅**    | 某資料來源偏離中位數超出其帶寬 | 拉回帶寬邊緣                |
| **過時降權**     | 某資料來源停止更新       | 寬限期內沿用最後一個有效價格，之後權重歸零 |
| **訂單簿有效性檢查** | 買賣盤交叉，或任一側不足三檔  | 拒絕該次更新，保留上一個價格        |

當某個資料來源的權重歸零時，其餘權重按比例放大。指數不會因為一家場所斷線而跳空。

<Note>
  買賣盤交叉——買價等於或高於賣價——不是可交易的市場，是壞掉的行情源。接受它，等於讓一家故障的場所把任意中間價注入聚合結果。
</Note>

<h2 id="update-cadence-and-staleness">
  更新節奏與過時判定
</h2>

指數大約每三秒重算一次，並在共識內完成認證，因此一筆交易結算所依據的價格，就是由提交該交易的那一組驗證者法定人數簽章的。認證如何運作參見[預言機](/zh-Hant/protocol/architecture/oracle)。

驗證者簽章之前會檢查新鮮度：讀數過時就不提交，寧可沒有，也不送出舊值。在下游，[標記價格](/zh-Hant/trading/mark-price)會把超過約十秒的指數視為該區塊內不可用，然後不帶指數繼續計算。

<h2 id="index-price-is-not-mark-price">
  指數價格不是標記價格
</h2>

|           | 指數價格          | 標記價格           |
| --------- | ------------- | -------------- |
| 回答的問題     | 這項資產在外部值多少？   | 這個部位在這裡值多少？    |
| 構建自       | 外部場所行情源       | 四個輸入，其中之一是指數   |
| 用於        | 資金費率基準、標記價格輸入 | 保證金、強制平倉、未實現損益 |
| 是否反映本所訂單簿 | 否             | 是，部分反映         |

把兩者分開，標記價格才能反映本地狀況——本交易場所上真實存在的溢價或折價——又不至於讓本地狀況變成標記價格唯一反映的東西。

<Warning>
  這些機制限定的是單一資料來源能把指數推多遠，並不能讓指數正確。碰上全市場範圍的價格錯位，或數家主要場所協同推動的行情，指數就會跟著市場走——因為到那個地步，指數不是被操縱，而是在如實報告。參見[風險揭露](/zh-Hant/protocol/security/risks)。
</Warning>

<h2 id="where-to-go-next">
  後續閱讀
</h2>

<CardGroup cols={2}>
  <Card title="標記價格" href="/zh-Hant/trading/mark-price">
    指數如何變成那個主宰你部位的數字。
  </Card>

  <Card title="資金費率" href="/zh-Hant/trading/funding">
    標記價格與指數之間的差距如何定價與結算。
  </Card>

  <Card title="預言機" href="/zh-Hant/protocol/architecture/oracle">
    共識內的認證，以及為什麼價格可用性會限制出塊。
  </Card>

  <Card title="風險揭露" href="/zh-Hant/protocol/security/risks">
    還剩下哪些價格風險，以及可能付出什麼代價。
  </Card>
</CardGroup>
