# 行情相關

# Q1:訂閲失敗

A: 訂閲接口返回錯誤,有以下兩類常見情況:

  • 訂閲額度不足:

    訂閲額度規則參見 訂閲額度 & 歷史 K 線額度

  • 訂閲權限不足:

    支持訂閲的行情權限見下表


    市場 品種 支持訂閲的行情權限
    香港市場 股票 LV1, LV2, SF
    期權 LV1, LV2
    期貨 LV1, LV2
    美國市場 股票 LV1, LV2
    期權 LV1
    期貨 LV1, LV2
    A 股市場 股票 LV1

    獲取行情權限的方式參見 行情權限

    注意:若賬號擁有上述權限,但仍訂閲失敗,可能存在被其他終端 踢掉行情權限 的情況。

# Q2:取消訂閱失敗

A: 訂閲至少一分鐘後才能取消訂閱。

# Q3:取消訂閱成功但沒釋放額度

A: 所有連接都對該行情取消訂閱,才會釋放額度。

舉例:A 連接和 B 連接都在訂閲 HK.00700 的掛盤,當 A 連接取消訂閱後,由於 B 連接仍在調用騰訊的掛盤數據,因此 OpenD 的額度不會釋放,直至所有連接都取消訂閱 HK.00700 的掛盤。

# Q4:訂閲不足一分鐘關閉程式連接,會釋放額度嗎?

A: 不會。連接關閉後,訂閲時長不足一分鐘的標的類型,會在達到一分鐘後才自動取消訂閱,並釋放相應的訂閲額度。

# Q5:請求頻率限制的具體限制邏輯是怎樣?

A: 30 秒內最多 n 次,是指第 1 次和第 n+1 次請求間隔需要大於 30 秒。

# Q6:自選股添加不上是什麼原因?

A: 請先檢查是否有超出上限,或者刪除一部分自選。

# Q7:為什麼 OpenAPI 端的美股報價和牛牛顯示端的全美綜合報價有不同?

A: 由於美股交易分散在很多家交易所,富途有提供兩種美股基本報價行情,一種是 Nasdaq Basic(Nasdaq 交易所的報價),另一種是全美綜合報價(全美13家交易所的報價)。而 OpenAPI 的美股正股行情目前僅支持通過行情卡購買的方式獲取 Nasdaq Basic,不支持全美綜合報價。因此,如果您同時購買了顯示端的全美綜合報價行情卡,和僅用於 OpenAPI 的 Nasdaq Basic 行情卡,確實有可能出現牛牛顯示端和 OpenAPI 端的報價差異。
因此,如果您發現美股當天開市價與客戶端顯示不一致,這是因為OpenAPI實時上游行情僅會獲取 Nasdaq Basic 數據。

# Q8:OpenAPI 行情卡在哪裏購買?

# Q9:為什麼有時候,獲取實時數據的 get 接口響應比較慢?

A: 因為獲取實時數據的 get 接口需要先訂閲,並依賴後台給 OpenD 的推送。如果用戶剛訂閲就立刻用 get 接口請求,OpenD 有可能尚未收到後台推送。為了防止這種情況的發生,get 接口內置了等待邏輯,3 秒內收到推送會立刻返回給程式,超過 3 秒仍未收到後台推送,才會給程式返回空數據。
涉及的 get 接口包括:get_rt_ticker、get_rt_data、get_cur_kline、get_order_book、get_broker_queue、get_stock_quote。因此,當發現獲取實時數據的 get 接口響應比較慢時,可以先檢查一下是否是無成交數據的原因。

# Q10:購買 OpenAPI 美股 Nasdaq Basic 行情卡後,可以獲取哪些數據?

A: Nasdaq Basic 行情卡購買啟用後,可以獲取的品類涵蓋 Nasdaq、NYSE、NYSE MKT 交易所上市證券(包括美股正股和 ETF,不包括美股期貨和美股期權)。
支持的數據接口包括:快照,歷史 K 線,實時逐筆訂閲,實時一檔掛盤訂閲,實時 K 線訂閲,實時報價訂閲,實時分時訂閲,到價提醒。

# Q11:各個行情品類的掛盤支持多少檔?

A:

行情品類 LV1 LV2 SF
港股(含正股、窩輪、牛熊、界內證) / 10 全盤+千筆明細
港股期權期貨 1 10 /
美股(含 ETF) 1 60檔 /
美股期權 1 / /
美股期貨 / 40檔 /
A 股 5 / /

# Q12:為什麼我購買啟用了行情卡之後,OpenD 仍然沒有行情權限?

A:

  1. 由於 OpenAPI 的行情權限跟 APP 的行情權限不完全一樣,部分行情卡僅適用於 APP 端(例如:OpenAPI美股行情卡需單獨購買)。請先確認您所購買的行情卡是否是 OpenD 適用的。
    我們已將 OpenAPI 適用的 所有 行情卡列在《權限與限制》一節,請點擊 這裏 查看。
  2. 行情卡購買啟用成功後,是立即生效的。請 重新啟動 OpenD 後,再次查看權限狀態。

# Q13:如何通過訂閲接口獲取實時行情?

第一步:訂閲

將標的的代碼和數據類型傳入 訂閲接口,完成訂閲。

訂閲接口支持了實時報價、實時掛盤、實時逐筆、實時分時、實時 K 線、實時經紀隊列數據的獲取。訂閲成功後,OpenD 會持續收到富途服務器的實時數據推送。

注意:訂閲額度會根據您的總資產、交易筆數和交易量,來進行分配,具體規則參見 訂閲額度 & 歷史 K 線額度。所以,如果您的訂閲額度不足,可以先檢查一下是否有無用的訂閲在佔用額度,及時 取消訂閱 即可釋放已佔用的訂閲額度。

第二步:取得數據

如何將訂閲推送的數據從 OpenD 取回程式呢?我們提供瞭如下兩種方式:

方式 1:實時數據回調
設置相應的回調函數,來異步處理 OpenD 收到的數據推送。

設置好回調函數後,OpenD 會將收到的實時數據,立即推給程式的回調函數進行處理。

如果所訂閲的標的比較活躍,此時的推送數據可能數據量較大且頻率較高。如果您希望適當降低 OpenD 給程式的推送頻率,建議在 OpenD 啟動參數 中設定 API 推送頻率(qot_push_frequency)。

方式 1 涉及的接口包括:實時報價回調實時掛盤迴調實時 K 線回調實時分時回調實時逐筆回調實時經紀隊列回調

方式 2:獲取實時數據
通過獲取實時數據接口,可以將 OpenD 收到的最新的數據,取回程式。這種方式更加靈活,程式不需要處理海量的推送。只要 OpenD 在持續接收富途服務器的推送,程式可以隨用隨取,不用不取。

由於是從 OpenD 接收的推送數據中取,所以這類接口沒有頻率限制。

方式 2 涉及的接口包括:獲取實時報價獲取實時掛盤獲取實時 K 線獲取實時分時獲取實時逐筆獲取實時經紀隊列

# Q14:各個市場狀態對應什麼時間段?

A:

市場 品類 市場狀態 時間段(當地時間)
香港市場 證券類產品(含股票、ETFs、窩輪、牛熊、界內證) * NONE:無交易 CST 08:55 - 09:00
* AUCTION:盤前競價 CST 09:00 - 09:20
* WAITING_OPEN:等待開市 CST 09:20 - 09:30
* MORNING:早盤 CST 09:30 - 12:00
* REST: 午間休市 CST 12:00 - 13:00
* AFTERNOON:午盤 CST 13:00 - 16:00
* HK_CAS:港股盤後競價(港股市場增加 CAS 機制對應的市場狀態) CST 16:00 - 16:08
* CLOSED:收市 CST 16:08 - 08:55(T+1)
期權、期貨(僅日市) * NONE:期權待開市 CST 08:55 - 09:30
* MORNING:早盤 CST 09:30 - 12:00
* REST: 午間休市 CST 12:00 - 13:00
* AFTERNOON:午盤 CST 13:00 - 16:00
* CLOSED:收市 CST 16:00 - 08:55(T+1)
期貨(日夜市) * FUTURE_DAY_WAIT_FOR_OPEN:期貨待開市 不同品種交易時間不同
* NIGHT_OPEN: 夜市交易時段
* NIGHT_END:夜市收市
* FUTURE_DAY_WAIT_FOR_OPEN:期貨待開市
* FUTURE_DAY_OPEN:日市交易時段
* FUTURE_DAY_CLOSE:日市收市
美國市場 證券類產品(含股票、ETFs) * PRE_MARKET_BEGIN:美股盤前交易時段 EST 04:00 - 09:30
* AFTERNOON:美股持續交易時段 EST 09:30 - 16:00
* AFTER_HOURS_BEGIN:美股盤後交易時段 EST 16:00 - 20:00
* AFTER_HOURS_END:美股盤後收市 EST 20:00 - 04:00(T+1)
* OVERNIGHT:美股夜盤交易時段 EST 20:00 - 04:00(T+1)
期權 * NONE:期權待開市 不同品種交易時間不同
* REST:美指期權午間休市
* AFTERNOON:美股持續交易時段
* TRADE_AT_LAST:美指期權盤尾交易時段
* NIGHT:美指期權夜市交易時段
* CLOSED:收市
期貨 * FUTURE_SWITCH_DATE:美期待開市 不同品種交易時間不同
* FUTURE_OPEN:美期交易時段
* FUTURE_BREAK:美期中盤休息
* FUTRUE_BREAK_OVER:美期休息後交易時段
* FUTURE_CLOSE:美期收市
A股市場 證券類產品(含股票、ETFs) * NONE:無交易 CST 08:55 - 09:15
* Auction:盤前競價 CST 09:15 - 09:25
* WAITING_OPEN:等待開市 CST 09:25 - 09:30
* MORNING:早盤 CST 09:30 - 11:30
* REST:午間休市 CST 11:30 - 13:00
* AFTERNOON:午盤 CST 13:00 - 15:00
* CLOSED:收市 CST 15:00 - 08:55(T+1)
新加坡市場 期貨 * FUTURE_DAY_WAIT_FOR_OPEN:期貨待開市 不同品種交易時間不同
* NIGHT_OPEN:夜市交易時段
* NIGHT_END:夜市收市
* FUTURE_DAY_OPEN:日市交易時段
* FUTURE_DAY_CLOSE:日市收市
日本市場 期貨 * FUTURE_DAY_WAIT_FOR_OPEN:期貨待開市 JST 16:25(T-1)- 16:30(T-1)
* NIGHT_OPEN:夜市交易時段 JST 16:30(T-1) - 05:30
* NIGHT_END:夜市收市 JST 05:30 - 08:45
* FUTURE_DAY_OPEN:日市交易時段 JST 08:45 - 15:15
* FUTURE_DAY_CLOSE:日市收市 JST 15:15 - 16:25
* CST, EST, JST 分別表示中國時間,美東時間,日本時間

# Q15:接口參數股票代碼的格式

A:

  • 使用不同程式語言的用戶,需要的股票代碼的格式不同:

    • Python 用戶
      股票代碼 code 格式:行情市場.代碼
      例如:騰訊控股,參數 code 傳入'HK.00700'。

    • 非 Python 用戶
      股票結構參見 Security
      例如:騰訊控股,參數 market 傳入 QotMarket_HK_Security,參數 code 傳入'00700'。

  • 查詢方式:
    通過 APP 查看代碼和行情市場:行情 > 自選 > 全部。
    行情市場定義,請參考 這裏
    code

# Q16:復權因子相關

A:

# 概述

所謂 復權 就是對股價和成交量進行權息修復,按照股票的實際漲跌繪製股價走勢圖,並把成交量調整為相同的股本口徑。
公司行動(如:拆股、合股、送股、轉增股、配股、增發股、分紅)均可能對股價產生影響,而復權計算可對量價進行調整,剔除公司行動的影響,保持股價走勢的連續性。

# 名詞解釋

  • 公司行動:上市公司進行一些股權、股票等影響公司股價和股東持倉變化的行為。
  • 前復權:保持現有的股價不變,以當前的股價為基準,對以前的股價進行復權計算。
  • 後復權:保持先前的股價不變,以過去的股價為基準,對以後的股價進行復權計算。
  • 復權因子:即權息修複比例,用於計算復權後的價格及持倉數量。
  • 除權除息日:即股權登記日下一個交易日。在股票的除權除息日,證券交易所都要計算出股票的除權除息價,以作為股民在除權除息日開市的參考。其意義是股票股利分配給股東的日期。

# 復權方法

主流的復權計算方法分為兩種:事件法和連乘法;而 OpenAPI 針對不同市場使用不同的計算方法。

  • 事件復權法:通過還原除權除息的各類事件進行復權;存在兩個復權因子(復權因子 A 和 復權因子 B),復權因子 B 主要調整現金分紅對股價的影響,而復權因子 A 調整其他公司行動對股價的影響。
  • 連乘復權法:通過復權因子連乘的方式進行復權,只保留 復權因子 A(或將 復權因子 B 置為0),復權因子 A 為 除權除息日前收市價/該日經權息調整後的前收市價。

提示

  • OpenAPI 對美股前復權使用連乘法,即將 復權因子 B 置為0。
  • OpenAPI 對除美股以外的標的(A股、港股、新加坡股票等)及美股後復權使用事件法。

# 計算公式

# 單次復權

  • 前復權:
    前復權價格 = 不復權價格 × 前復權因子 A + 前復權因子 B
  • 後復權:
    後復權價格 = 不復權價格 × 後復權因子 A + 後復權因子 B

# 多次復權

  • 前復權:按照時間順序,篩選出大於計算日期的復權因子,優先使用時間較早的復權因子進行復權計算。以兩次復權為例:

    code

  • 後復權:按照時間倒序,篩選出小於等於計算日期的復權因子,優先使用時間較晚的復權因子進行復權計算。以兩次復權為例:

    code

# 示例

# 單次前復權示例

以牧原股份為例:

  • 篩選復權因子如下:
除權除息日 股票代碼 方案説明 前復權因子 A 前復權因子 B
2021/06/03 SZ.002714 10轉4.0股派14.61元(含税) 0.71429 -1.04357
  • 不復權數據如下:
日期 股票代碼 不復權收市價
2021/06/02 SZ.002714 93.11
2021/06/03 SZ.002714 66.25
  • 前復權數據如下:
日期 股票代碼 前復權收市價
2021/06/02 SZ.002714 65.4639719
2021/06/03 SZ.002714 66.25
  • 前復權數據計算方法:
    牧原股份在 2021/06/03 進行拆股及現金分紅行動(10轉4.0股派14.61元),根據前復權計算公式對 2021/06/02 的收市價進行調整計算,則:前復權價格(65.4639719) = 不復權價格(93.11) × 前復權因子 A(0.71429) + 前復權因子 B(-1.04357)

    code

# 多次後復權示例

接上一個例子,計算牧原股份在 2021/06/02 的後復權價格:

  • 篩選復權因子如下:
除權除息日 股票代碼 方案説明 後復權因子 A 後復權因子 B
2014/07/04 SZ.002714 10派2.34元(含税) 1 0.234
2015-06-10 SZ.002714 10轉10.0股派0.61元(含税) 2 0.061
2016-07-08 SZ.002714 10轉10.0股派3.53元(含税) 2 0.353
2017-07-11 SZ.002714 10轉8.0股派6.9元(含税) 1.8 0.69
2018-07-03 SZ.002714 10派6.91元(含税) 1 0.691
2019-07-04 SZ.002714 10派0.5元(含税) 1 0.05
2020-06-04 SZ.002714 10轉7.0股派5.5元(含税) 1.7 0.55
  • 不復權數據如下:
日期 股票代碼 不復權收市價
2021/06/02 SZ.002714 93.11
  • 後復權數據如下:
日期 股票代碼 後復權收市價
2021/06/02 SZ.002714 1152.7226
  • 後復權數據計算方法:
    為了計算牧原股份在 2021/06/02 的後復權價格,需要將早於 2021/06/02 的復權事件進行一一復權,得到最後的後復權價格,具體計算如下:

    code