Stock Screener
Market Scanner
Signature
pub async fn market_scanner( &self, req: MarketScannerRequest, ) -> Result<Option<ScannerResult>, TigerError>
Description
v1; market required; paging/cursor/filter JSON/sort optional; scanner permission.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.market | String | Required | None |
| req.page | Option<i32> | Optional | None (omitted) |
| req.page_size | Option<i32> | Optional | None (omitted) |
| req.cursor_id | Option<String> | Optional | None (omitted) |
| req.base_filter_list | Option<Vec<serde_json::Value>> | Optional | None (omitted) |
| req.accumulate_filter_list | Option<Vec<serde_json::Value>> | Optional | None (omitted) |
| req.financial_filter_list | Option<Vec<serde_json::Value>> | Optional | None (omitted) |
| req.multi_tags_filter_list | Option<Vec<serde_json::Value>> | Optional | None (omitted) |
| req.sort_field_data | Option<serde_json::Value> | Optional | None (omitted) |
| req.multi_tags_fields | Option<Vec<String>> | Optional | None (omitted) |
Return
QuoteClient: Result<Option<ScannerResult>, TigerError>.
ScannerResult fields:
| Field | Rust type | Description |
|---|---|---|
| page | i32 | Page number |
| total_page | i32 | Total page count |
| total_count | i32 | Total result count |
| page_size | i32 | Results per page |
| cursor_id | String | Cursor ID |
| items | Vec<ScannerResultItem> | Scanner result rows |
Each ScannerResultItem in items:
| Field | Rust type | Description |
|---|---|---|
| symbol | String | Symbol |
| market | String | Market |
| base_data_list | Vec<ScannerDataRow> | Base data |
| accumulate_data_list | Vec<ScannerDataRow> | Accumulated data |
| financial_data_list | Vec<ScannerDataRow> | Financial data |
| multi_tag_data_list | Vec<ScannerDataRow> | Multi-tag data |
Each ScannerDataRow in those four data lists:
| Field | Rust type | Description |
|---|---|---|
| index | i32 | Field index |
| name | String | Field name |
| value | String | String value |
| data | f64 | Numeric value |
Example
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(())
}
Response example
{
"page": 1,
"totalPage": 5,
"totalCount": 98,
"pageSize": 20,
"cursorId": "abc123",
"items": [{"symbol":"AAPL","market":"US","latestPrice":195.50}]
}Rate limit
The base rate limit is 10 requests/min.
Get Market Scanner Tags
Signature
pub async fn get_market_scanner_tags( &self, req: MarketScannerTagsRequest, ) -> Result<Vec<MarketScannerTagGroup>, TigerError>
Description
Optional market/fields; Rust multi_tags_fields maps to wire multi_tag_field_list.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.market | Option<String> | Optional | None (omitted) |
| req.multi_tags_fields | Option<Vec<String>> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
QuoteClient: Result<Vec<MarketScannerTagGroup>, TigerError>.
Each MarketScannerTagGroup:
| Field | Rust type | Description |
|---|---|---|
| market | String | Market |
| multi_tag_field | String | Multi-tag field |
| tag_list | Vec<MarketScannerTag> | Tag list |
Each MarketScannerTag in tag_list:
| Field | Rust type | Description |
|---|---|---|
| field | String | Tag field |
| name | String | Tag name |
| values | Vec<String> | Available tag values |
Example
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(())
}
Response example
[
{
"market": "",
"multiTagField": "",
"tagList": []
}
]Rate limit
The base rate limit is 10 requests/min.
Updated about 1 month ago
Did this page help you?
