选股器
选股器
签名
pub async fn market_scanner( &self, req: MarketScannerRequest, ) -> Result<Option<ScannerResult>, TigerError>
说明
v1;market 必填;页码、游标、过滤 JSON 和排序可选;需选股器权限。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.market | String | 必填 | 无 |
| req.page | Option<i32> | 可选 | None(不序列化) |
| req.page_size | Option<i32> | 可选 | None(不序列化) |
| req.cursor_id | Option<String> | 可选 | None(不序列化) |
| req.base_filter_list | Option<Vec<serde_json::Value>> | 可选 | None(不序列化) |
| req.accumulate_filter_list | Option<Vec<serde_json::Value>> | 可选 | None(不序列化) |
| req.financial_filter_list | Option<Vec<serde_json::Value>> | 可选 | None(不序列化) |
| req.multi_tags_filter_list | Option<Vec<serde_json::Value>> | 可选 | None(不序列化) |
| req.sort_field_data | Option<serde_json::Value> | 可选 | None(不序列化) |
| req.multi_tags_fields | Option<Vec<String>> | 可选 | None(不序列化) |
返回
QuoteClient: Result<Option<ScannerResult>, TigerError>。
ScannerResult 字段:
| 字段 | Rust 类型 | 说明 |
|---|---|---|
| page | i32 | 页码 |
| total_page | i32 | 总页数 |
| total_count | i32 | 总记录数 |
| page_size | i32 | 每页数量 |
| cursor_id | String | 游标 ID |
| items | Vec<ScannerResultItem> | 扫描结果行 |
items 中每个 ScannerResultItem 字段:
| 字段 | Rust 类型 | 说明 |
|---|---|---|
| symbol | String | 标的代码 |
| market | String | 市场 |
| base_data_list | Vec<ScannerDataRow> | 基础数据 |
| accumulate_data_list | Vec<ScannerDataRow> | 累计数据 |
| financial_data_list | Vec<ScannerDataRow> | 财务数据 |
| multi_tag_data_list | Vec<ScannerDataRow> | 多标签数据 |
以上四个数据列表中的每个 ScannerDataRow 字段:
| 字段 | Rust 类型 | 说明 |
|---|---|---|
| index | i32 | 字段索引 |
| name | String | 字段名称 |
| value | String | 字段字符串值 |
| data | f64 | 字段数值 |
示例
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_market_scanner(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.market_scanner(MarketScannerRequest { market: "US".into(), ..Default::default() }).await?;
Ok(())
}
返回示例
{
"page": 1,
"totalPage": 5,
"totalCount": 98,
"pageSize": 20,
"cursorId": "abc123",
"items": [{"symbol":"AAPL","market":"US","latestPrice":195.50}]
}请求频率
基础限流为 10 次/分钟。
获取选股器标签
签名
pub async fn get_market_scanner_tags( &self, req: MarketScannerTagsRequest, ) -> Result<Vec<MarketScannerTagGroup>, TigerError>
说明
市场与字段列表可选;Rust 字段 multi_tags_fields wire 为 multi_tag_field_list。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.market | Option<String> | 可选 | None(不序列化) |
| req.multi_tags_fields | Option<Vec<String>> | 可选 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
QuoteClient: Result<Vec<MarketScannerTagGroup>, TigerError>。
每个 MarketScannerTagGroup 字段:
| 字段 | Rust 类型 | 说明 |
|---|---|---|
| market | String | 市场 |
| multi_tag_field | String | 多标签字段 |
| tag_list | Vec<MarketScannerTag> | 标签列表 |
tag_list 中每个 MarketScannerTag 字段:
| 字段 | Rust 类型 | 说明 |
|---|---|---|
| field | String | 标签字段 |
| name | String | 标签名称 |
| values | Vec<String> | 可用标签值 |
示例
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_market_scanner_tags(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_market_scanner_tags(MarketScannerTagsRequest { ..Default::default() }).await?;
Ok(())
}
返回示例
[
{
"market": "",
"multiTagField": "",
"tagList": []
}
]请求频率
基础限流为 10 次/分钟。
Updated about 1 month ago
Did this page help you?
