Multi-period change-ratio rank via stock_screen_v2
GET/api/v1.0/quote/rank/period-changeMulti-period change-ratio rank via stock_screen_v2. Sorted by the selected period and also returns 5-min / 5/10/20/60/120/250-day / YTD ratios plus last price, turnover, volume, market cap, PE/PB, turnover ratio, volume ratio and amplitude. Default filters: price >= 1, market cap >= 1e7, /period change/ <= 100000%, matching OpenD PeriodChangeRank. Markets: HK/US/SH/SZ/SG/JP/AU/CA/MY; period_type defaults to 5DAY. SH and SZ both map to CN.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
market | string | query | yes | Market code |
period_type | string | query | no | Rank period, default 5DAY |
sort_dir | string | query | no | Sort direction, default DESCENDING |
page_flag | string | query | no | Page cursor. Omit or pass empty on the first page; pass back pagination.page_flag. Stop only when pagination.completed is true |
page_size | int | query | no | Page size, default 10, max 200 |
price_filter | string | query | no | Price filter |
market_cap_min | number | query | no | Minimum market cap; omit to use OpenD default 1e7 |
market_cap_max | number | query | no | Maximum market cap; omit for no upper bound |
pe_min | number | query | no | Minimum PE; omit for no lower bound |
pe_max | number | query | no | Maximum PE; omit for no upper bound |
Example
bash
curl -X GET 'https://webapi.moomoo.com/api/v1.0/quote/rank/period-change?market=HK' \
-H 'Authorization: Bearer <AccessToken>' | jqResponse parameters
| Name | Type | Description |
|---|---|---|
data.items | object[] | |
data.items[].code | string | Symbol |
data.items[].name | string | Security name |
data.items[].cur_price | string | Last price |
data.items[].change_ratio | string | 1-day change ratio in percent, matching OpenD change_ratio; period ratios are in change_rate_* |
data.items[].turnover | string | Turnover |
data.items[].volume | string | Volume |
data.items[].market_cap | number | Market cap |
data.items[].change_rate_5min | number | 5-minute change ratio in percent |
data.items[].change_rate_5d | number | 5-day change ratio in percent |
data.items[].change_rate_10d | number | 10-day change ratio in percent |
data.items[].change_rate_20d | number | 20-day change ratio in percent |
data.items[].change_rate_60d | number | 60-day change ratio in percent |
data.items[].change_rate_120d | number | 120-day change ratio in percent |
data.items[].change_rate_250d | number | 250-day change ratio in percent |
data.items[].change_rate_ytd | number | Year-to-date change ratio in percent |
data.items[].pe_ttm | number | PE TTM |
data.items[].pb | number | PB |
data.items[].turnover_ratio | string | Turnover ratio in percent |
data.items[].volume_ratio | string | Volume ratio |
data.items[].amplitude | number | Amplitude in percent |
pagination.total | int | |
pagination.completed | bool | True when this is the last page. Stop paging only when completed is true |
pagination.page_flag | string | Next page cursor. Pass it back as page_flag while completed is false; empty on the last page |
Errors
| ret_code | error.code | Description |
|---|---|---|
| 0 | — | Success |
| -3 | invalid_parameter | Missing or invalid parameter |
| -8 | unsupported | Not supported |
| -10 | no_data | No data |
Response example
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"items": [
{
"code": "US.AAPL",
"name": "example",
"cur_price": "example",
"change_ratio": "example",
"turnover": "example",
"volume": "example",
"market_cap": 1.2,
"change_rate_5min": 1.2,
"change_rate_5d": 1.2,
"change_rate_10d": 1.2,
"change_rate_20d": 1.2,
"change_rate_60d": 1.2,
"change_rate_120d": 1.2,
"change_rate_250d": 1.2,
"change_rate_ytd": 1.2,
"pe_ttm": 1.2,
"pb": 1.2,
"turnover_ratio": "example",
"volume_ratio": "example",
"amplitude": 1.2
}
]
},
"pagination": {
"page_flag": "",
"completed": true,
"total": 0
}
}