Longbridge Developers
立即开始

筛选器

该接口用于获取轮证行情列表数据,支持按不同字段排序和筛选轮证。

行情权限要求免费

开通 OpenAPI 后自动获得,无需额外购买。

>_ CLI
# 腾讯相关权证列表
longbridge warrant list 700.HK
# 阿里巴巴相关权证列表
longbridge warrant list 9988.HK
# 京东相关权证列表
longbridge warrant list 9618.HK

Info

业务指令23

Request

Parameters

NameTypeRequiredDescription
symbolstring标的代码,使用 ticker.region 格式,例如:700.HK
filter_configobject筛选条件
∟ sort_byint32根据哪一项数据进行排序,例如:0,序号见响应数据 OrderSequence 字段。
∟ sort_orderint32升降顺序,例如:1

可选值:
0 - 升序
1 - 降序
∟ sort_offsetint32分页的第一条数据偏移量,例如 0
∟ sort_countint32分页的每一页数量,例如 20, 填 0 时不分页
∟ typeint32[]筛选轮证类型 例如:[0,1]

可选值:
0 - 认购
1 - 认沽
2 - 牛证
3 - 熊证
4 - 界内证
∟ issuerint32[]筛选发行商,例如:[12,14]发行商 ID 通过接口获取
∟ expiry_dateint32[]筛选轮证过期时间,例如:[1]

可选值:
1 - 低于 3 个月
2 - 3 - 6 个月
3 - 6 - 12 个月
4 - 大于 12 个月
∟ price_typeint32[]筛选价内价外,例如:[2]

可选值:
1 - 价内
2 - 价外
∟ statusint32[]筛选状态,例如:[2]

可选值:
2- 终止交易
3 - 等待上市
4 - 正常
languageint32响应的语言,例如:[1]

可选值:
0 - 简体
1 - English
2 - 繁体

Protobuf

message WarrantFilterListRequest {
  string symbol = 1;
  FilterConfig filter_config = 2;
  int32 language = 3;
}

message FilterConfig {
  int32 sort_by = 1;
  int32 sort_order = 2;
  int32 sort_offset = 3;
  int32 sort_count = 4;
  repeated int32 type = 5;
  repeated int32 issuer = 6;
  repeated int32 expiry_date = 7;
  repeated int32 price_type = 8;
  repeated int32 status = 9;
}

Request Example

from longbridge.openapi import QuoteContext, Config, WarrantSortBy, SortOrderType, OAuthBuilder

oauth = OAuthBuilder("your-client-id").build(lambda url: print("Visit:", url))
config = Config.from_oauth(oauth)
ctx = QuoteContext(config)

resp = ctx.warrant_list("700.HK", WarrantSortBy.LastDone, SortOrderType.Ascending)
print(resp)
import asyncio
from longbridge.openapi import AsyncQuoteContext, Config, WarrantSortBy, SortOrderType, OAuthBuilder

async def main() -> None:
    oauth = await OAuthBuilder("your-client-id").build_async(lambda url: print("Visit:", url))
    config = Config.from_oauth(oauth)
    ctx = AsyncQuoteContext.create(config)

    resp = await ctx.warrant_list("700.HK", WarrantSortBy.LastDone, SortOrderType.Ascending)
    print(resp)

if __name__ == "__main__":
    asyncio.run(main())
const { Config, QuoteContext, OAuth, WarrantSortBy, SortOrderType } = require('longbridge')

async function main() {
  const oauth = await OAuth.build("your-client-id", (_, url) => { console.log("Open this URL to authorize: " + url) })
  const config = Config.fromOAuth(oauth)
  const ctx = QuoteContext.new(config)
  const resp = await ctx.warrantList("700.HK", WarrantSortBy.LastDone, SortOrderType.Ascending)
  console.log(resp)
}
main().catch(console.error)
import com.longbridge.*;
import com.longbridge.quote.*;

class Main {
    public static void main(String[] args) throws Exception {
        try (OAuth oauth = new OAuthBuilder("your-client-id").build(url -> System.out.println("Open to authorize: " + url)).get();
             Config config = Config.fromOAuth(oauth);
             QuoteContext ctx = QuoteContext.create(config)) {
            WarrantInfo[] resp = ctx.queryWarrantList(new QueryWarrantOptions("700.HK", WarrantSortBy.LastDone, SortOrderType.Ascending)).get();
            for (WarrantInfo w : resp) System.out.println(w);
        }
    }
}
use std::sync::Arc;
use longbridge::{oauth::OAuthBuilder, quote::{QuoteContext, WarrantSortBy, SortOrderType}, Config};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let oauth = OAuthBuilder::new("your-client-id").build(|url| println!("Open this URL to authorize: {url}")).await?;
    let config = Arc::new(Config::from_oauth(oauth));
    let (ctx, _) = QuoteContext::new(config);
    let resp = ctx.warrant_list("700.HK", WarrantSortBy::LastDone, SortOrderType::Ascending, None, None, None, None, None).await?;
    println!("{:?}", resp);
    Ok(())
}
#include &lt;iostream&gt;
#include <longbridge.hpp>

#ifdef WIN32
#include <windows.h>
#endif

using namespace longbridge;
using namespace longbridge::quote;

static void
run(const OAuth& oauth)
{
    Config config = Config::from_oauth(oauth);
    QuoteContext ctx = QuoteContext::create(config);

    ctx.warrant_list("700.HK", WarrantSortBy::Turnover, SortOrderType::Descending, {}, {}, {}, {}, {}, [](auto res) {
        if (!res) { std::cout << "failed: " << *res.status().message() << std::endl; return; }
        std::cout << "warrants: " << res->size() << std::endl;
    });
}

int main(int argc, char const* argv[]) {
#ifdef WIN32
    SetConsoleOutputCP(CP_UTF8);
#endif

    const std::string client_id = "your-client-id";
    OAuthBuilder(client_id).build(
    [](const std::string& url) {
        std::cout << "Open this URL to authorize: " << url << std::endl;
    },
    [](auto res) {
        if (!res) {
            std::cout << "authorization failed: " << *res.status().message() << std::endl;
            return;
        }
        run(*res);
    });

    std::cin.get();
    return 0;
}
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/longbridge/openapi-go/config"
	"github.com/longbridge/openapi-go/oauth"
	"github.com/longbridge/openapi-go/quote"
)

func main() {
	o := oauth.New("your-client-id").
		OnOpenURL(func(url string) { fmt.Println("Open this URL to authorize:", url) })
	if err := o.Build(context.Background()); err != nil {
		log.Fatal(err)
	}
	conf, err := config.New(config.WithOAuthClient(o))
	if err != nil {
		log.Fatal(err)
	}
	qctx, err := quote.NewFromCfg(conf)
	if err != nil {
		log.Fatal(err)
	}
	defer qctx.Close()
	list, err := qctx.WarrantList(context.Background(), "700.HK", quote.WarrantFilter{
		SortBy: quote.WarrantVolume, SortOrder: quote.WarrantDesc, SortOffset: 0, SortCount: 10,
	}, quote.WarrantEN)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("warrants:", len(list))
}

Response

Response Properties

NameTypeDescriptionOrderSequenceSupport_Call/PutSupport_Bull/BearSupport_Inline
warrant_listobject[]涡轮筛选数据列表
∟ symbolstring标的代码truetruetrue
∟ namestring标的名称truetruetrue
∟ last_donestring最新价0truetruetrue
∟ change_ratestring涨跌幅1truetruetrue
∟ change_valstring涨跌额2truetruetrue
∟ volumeint64成交量3truetruetrue
∟ turnoverstring成交额4truetruetrue
∟ expiry_datestring到期日,使用 YYMMDD 格式5truetruetrue
∟ strike_pricestring行权价6truetruefalse
∟ upper_strike_pricestring上限价7falsefalsetrue
∟ lower_strike_pricestring下限价8falsefalsetrue
∟ outstanding_qtystring街货量9truetruetrue
∟ outstanding_ratiostring街货比10truetruetrue
∟ premiumstring溢价率11truetruetrue
∟ itm_otmstring价内/价外12truetruefalse
∟ implied_volatilitystring引伸波幅13truefalsefalse
∟ deltastring对冲值14truefalsefalse
∟ call_pricestring收回价15falsetruefalse
∟ to_call_pricestring距收回价16falsetruefalse
∟ effective_leveragestring有效杠杆17truefalsefalse
∟ leverage_ratiostring杠杆比率18truetruetrue
∟ conversion_ratiostring换股比率19truetruefalse
∟ balance_pointstring打和点20truetruefalse
∟ statusint32状态,

可选值:
2- 终止交易
3 - 等待上市
4 - 正常交易
21truetruetrue
total_countint32符合条件的轮证总数量

Protobuf

message WarrantFilterListResponse {
  repeated FilterWarrant warrant_list = 1;
  int32 total_count = 2;
}

message FilterWarrant {
  string symbol = 1;
  string name = 2;
  string last_done = 3;
  string change_rate = 4;
  string change_val = 5;
  int64 volume = 6;
  string turnover = 7;
  string expiry_date = 8;
  string strike_price = 9;
  string upper_strike_price = 10;
  string lower_strike_price = 11;
  string outstanding_qty = 12;
  string outstanding_ratio = 13;
  string premium = 14;
  string itm_otm = 15;
  string implied_volatility = 16;
  string delta = 17;
  string call_price = 18;
  string to_call_price = 19;
  string effective_leverage = 20;
  string leverage_ratio = 21;
  string conversion_ratio = 22;
  string balance_point = 23;
  string status = 24;
}

Response JSON Example

{
  "warrant_list": [
    {
      "symbol": "13157.HK",
      "name": "腾讯麦银二七沽 A",
      "last_done": "2.26",
      "change_rate": "-0.0216450216450218",
      "change_val": "-0.050000000000000266",
      "turnover": "0",
      "expiry_date": "20220705",
      "strike_price": "442.233",
      "upper_strike_price": "0",
      "lower_strike_price": "0",
      "outstanding_qty": "5000",
      "outstanding_ratio": "0.0003",
      "premium": "0.016784269662921222",
      "itm_otm": "0.23524476916014864",
      "implied_volatility": "0.5275",
      "delta": "-0.8524",
      "call_price": "0",
      "effective_leverage": "-2.627683451852457",
      "leverage_ratio": "3.0826882353970637",
      "conversion_ratio": "48.544",
      "balance_point": "332.52356000000003",
      "status": 4
    },
    {
      "symbol": "13649.HK",
      "name": "腾讯摩通二五沽 A",
      "last_done": "1.14",
      "change_rate": "0",
      "change_val": "0",
      "turnover": "0",
      "expiry_date": "20220518",
      "strike_price": "445.223",
      "upper_strike_price": "0",
      "lower_strike_price": "0",
      "outstanding_qty": "80000",
      "outstanding_ratio": "0.0004",
      "premium": "0.010810703725606",
      "itm_otm": "0.24038066317328624",
      "implied_volatility": "0.5997",
      "delta": "-0.7964",
      "call_price": "0",
      "effective_leverage": "-2.4335424241487873",
      "leverage_ratio": "3.055678583813144",
      "conversion_ratio": "97.087",
      "balance_point": "334.54382000000004",
      "status": 4
    }
  ],
  "total_count": 1197
}

错误码

协议错误码业务错误码描述排查建议
3301600无效的请求请求参数有误或解包失败
3301606限流降低请求频次
7301602服务端内部错误请重试或联系技术人员处理
7301600请求标的不存在检查请求的 symbol 是否正确
7301603标的无行情标的没有请求的行情数据
7301604无权限没有获取标的行情的权限
7301607接口限制减少每页数据数量