Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
228 changes: 213 additions & 15 deletions docs/API_REFERENCE.md

Large diffs are not rendered by default.

154 changes: 148 additions & 6 deletions src/ftshare/apis/bond.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from typing import Any

from ..endpoints import ENDPOINTS
from ..params import symbols_to_json_string


class BondApiMixin:
Expand All @@ -26,20 +27,20 @@ def convertible_bond_candlesticks(
as_dataframe: bool = True,
**kwargs: Any,
) -> Any:
"""可转债K线.
"""可转债历史K线.

Endpoint: ``api/v1/market/data/convertible-bond-candlesticks``.
Method: ``GET``.
Documented endpoint: ``convertible_bond_candlesticks``.

Args:
symbol: 可转债代码,如 113027.XSHG、128048.XSHE;也接受 .SH、.SZ 短后缀 (type: string; required: Y).
interval_unit: 周期单位:Minute/Day/Week/Month/Year (type: enum; required: Y).
interval_value: 间隔数值,默认 1;例如 Minute+5 表示 5 分钟 K 线 (type: int; required: N).
symbol: 单只可转债代码,如 113042.SH;也接受 .XSHG、.XSHE 后缀 (type: string; required: Y).
interval_unit: 周期单位:Day/Week/Month/Year,大小写不敏感 (type: enum; required: Y).
interval_value: 可省略;周期查询无需设置 (type: int; required: N).
adjust_kind: 复权:None(默认,不复权)/Forward(前复权)/Backward(后复权) (type: enum; required: N).
since_ts_millis: 开始时间戳,单位毫秒;分钟 K 线与 until 的跨度 ≤3 天 (type: int(ms); required: N).
since_ts_millis: 起始时间戳,单位毫秒;不得晚于 until,且与 until 相差不超过 12 个自然月 (type: int(ms); required: Y).
until_ts_millis: 结束时间戳,单位毫秒 (type: int(ms); required: Y).
limit: 返回条数上限;未传 since 和 limit 时默认最多返回 50 根 K 线 (type: int; required: N).
limit: 保留最新 K 线条数上限;省略返回窗口内全部记录 (type: int; required: N).
raw: Return the decoded JSON payload without tabular extraction.
fields: Optional field list or comma-separated field string applied after extraction.
as_dataframe: Return a pandas ``DataFrame`` by default; set to ``False`` for Python rows.
Expand All @@ -59,6 +60,147 @@ def convertible_bond_candlesticks(
as_dataframe=as_dataframe,
**request_params,
)

def convertible_bond_candlesticks_batch(
self,
symbols: Any | None = None,
interval_unit: Any | None = None,
interval_value: Any | None = None,
adjust_kind: Any | None = None,
since_ts_millis: Any | None = None,
until_ts_millis: Any | None = None,
limit: Any | None = None,
*,
raw: bool = False,
fields: Sequence[str] | str | None = None,
as_dataframe: bool = True,
**kwargs: Any,
) -> Any:
"""批量可转债历史K线.

Endpoint: ``api/v2/market/data/convertible-bond-candlesticks/batch``.
Method: ``GET``.
Documented endpoint: ``convertible_bond_candlesticks_batch``.

Args:
symbols: 可转债代码列表,1~20 个;支持重复参数、逗号分隔或 JSON 字符串数组 (type: string[]; required: Y).
interval_unit: 周期单位:Day/Week/Month/Year,大小写不敏感 (type: enum; required: Y).
interval_value: 可省略;周期查询无需设置 (type: int; required: N).
adjust_kind: 复权:None(默认,不复权)/Forward(前复权)/Backward(后复权) (type: enum; required: N).
since_ts_millis: 起始时间戳,单位毫秒;不得晚于 until,且与 until 相差不超过 12 个自然月 (type: int(ms); required: Y).
until_ts_millis: 结束时间戳,单位毫秒 (type: int(ms); required: Y).
limit: 每个标的最新 K 线条数上限;省略返回窗口内全部记录 (type: int; required: N).
raw: Return the decoded JSON payload without tabular extraction.
fields: Optional field list or comma-separated field string applied after extraction.
as_dataframe: Return a pandas ``DataFrame`` by default; set to ``False`` for Python rows.
**kwargs: Extra request parameters forwarded unchanged. Useful when the service adds parameters before the SDK is regenerated.

Returns:
A pandas ``DataFrame`` by default, Python rows when
``as_dataframe=False``, raw JSON when ``raw=True``, or raw page
payloads when multi-page fetching is used with ``raw=True``.
"""
request_params = {'symbols': symbols, 'interval_unit': interval_unit, 'interval_value': interval_value, 'adjust_kind': adjust_kind, 'since_ts_millis': since_ts_millis, 'until_ts_millis': until_ts_millis, 'limit': limit}
request_params.update(kwargs)
return self._call_endpoint(
'convertible_bond_candlesticks_batch',
raw=raw,
fields=fields,
as_dataframe=as_dataframe,
**request_params,
)

def convertible_bond_minute_candlesticks(
self,
symbol: Any | None = None,
symbols: Any | None = None,
interval_value: Any | None = None,
since_ts_millis: Any | None = None,
until_ts_millis: Any | None = None,
limit: Any | None = None,
*,
raw: bool = False,
fields: Sequence[str] | str | None = None,
as_dataframe: bool = True,
**kwargs: Any,
) -> Any:
"""可转债历史分钟K线.

Endpoint: ``api/v2/market/data/convertible-bond-minute-candlesticks``.
Method: ``GET``.
Documented endpoint: ``convertible_bond_minute_candlesticks``.

Args:
symbol: 单只可转债代码(与 symbols 二选一,不能同时传) (type: string; required: N).
symbols: 1~20 个可转债代码;支持重复参数、逗号分隔或 JSON 字符串数组(与 symbol 二选一) (type: string[]; required: N).
interval_value: 分钟周期:仅支持 1、5、15,默认 1 (type: enum; required: N).
since_ts_millis: 起始时间戳,单位毫秒;单只、批量都必须提供 (type: int(ms); required: Y).
until_ts_millis: 结束时间戳,单位毫秒;不得早于 since,且单次跨度不超过 3 个自然日 (type: int(ms); required: Y).
limit: 每只标的聚合后最多返回条数,范围 1~1000;省略返回窗口内全部记录 (type: int; required: N).
raw: Return the decoded JSON payload without tabular extraction.
fields: Optional field list or comma-separated field string applied after extraction.
as_dataframe: Return a pandas ``DataFrame`` by default; set to ``False`` for Python rows.
**kwargs: Extra request parameters forwarded unchanged. Useful when the service adds parameters before the SDK is regenerated.

Returns:
A pandas ``DataFrame`` by default, Python rows when
``as_dataframe=False``, raw JSON when ``raw=True``, or raw page
payloads when multi-page fetching is used with ``raw=True``.
"""
request_params = {'symbol': symbol, 'symbols': symbols, 'interval_value': interval_value, 'since_ts_millis': since_ts_millis, 'until_ts_millis': until_ts_millis, 'limit': limit}
request_params.update(kwargs)
return self._call_endpoint(
'convertible_bond_minute_candlesticks',
raw=raw,
fields=fields,
as_dataframe=as_dataframe,
**request_params,
)

def convertible_bond_realtime_day_kline(self, symbols: Any | None = None, *, raw: bool = False, fields: Sequence[str] | str | None = None, as_dataframe: bool = True, **kwargs: Any) -> Any:
"""可转债实时日K线.

Endpoint: ``api/v4/market/data/convertible-bond-realtime-day-kline``.
Method: ``GET``.
Documented endpoint: ``convertible_bond_realtime_day_kline``.

Args:
symbols: 1~20 个可转债代码的 JSON 字符串数组,如 ``["113042.SH","123107.SZ"]``;单只也必须传单元素数组 (type: string; required: Y).
raw: Return the decoded JSON payload without tabular extraction.
fields: Optional field list or comma-separated field string applied after extraction.
as_dataframe: Return a pandas ``DataFrame`` by default; set to ``False`` for Python rows.
**kwargs: Extra request parameters forwarded unchanged. Useful when the service adds parameters before the SDK is regenerated.

Returns:
A pandas ``DataFrame`` by default, Python rows when
``as_dataframe=False``, or raw JSON when ``raw=True``.
"""
params = {'symbols': symbols_to_json_string(symbols)}
params.update(kwargs)
return self._call_endpoint('convertible_bond_realtime_day_kline', raw=raw, fields=fields, as_dataframe=as_dataframe, **params)

def convertible_bond_realtime_minute_kline(self, symbols: Any | None = None, *, raw: bool = False, fields: Sequence[str] | str | None = None, as_dataframe: bool = True, **kwargs: Any) -> Any:
"""可转债实时分钟K线.

Endpoint: ``api/v4/market/data/convertible-bond-realtime-minute-kline``.
Method: ``GET``.
Documented endpoint: ``convertible_bond_realtime_minute_kline``.

Args:
symbols: 1~20 个可转债代码的 JSON 字符串数组,如 ``["113042.SH","123107.SZ"]``;单只也必须传单元素数组 (type: string; required: Y).
raw: Return the decoded JSON payload without tabular extraction.
fields: Optional field list or comma-separated field string applied after extraction.
as_dataframe: Return a pandas ``DataFrame`` by default; set to ``False`` for Python rows.
**kwargs: Extra request parameters forwarded unchanged. Useful when the service adds parameters before the SDK is regenerated.

Returns:
A pandas ``DataFrame`` by default, Python rows when
``as_dataframe=False``, or raw JSON when ``raw=True``.
"""
params = {'symbols': symbols_to_json_string(symbols)}
params.update(kwargs)
return self._call_endpoint('convertible_bond_realtime_minute_kline', raw=raw, fields=fields, as_dataframe=as_dataframe, **params)

def szse_convertible_bond_matching_trades(self, security_code: Any | None = None, trade_date: Any | None = None, start_date: Any | None = None, end_date: Any | None = None, page: int | None = None, page_size: int | None = None, *, raw: bool = False, fields: Sequence[str] | str | None = None, as_dataframe: bool = True, **kwargs: Any) -> Any:
"""深交所可转债匹配成交."""
params = {'security_code': security_code, 'trade_date': trade_date, 'start_date': start_date, 'end_date': end_date, 'page': page, 'page_size': page_size}
Expand Down
58 changes: 58 additions & 0 deletions src/ftshare/apis/llm_corpus.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,3 +224,61 @@ def stock_reports(
as_dataframe=as_dataframe,
**request_params,
)

def stock_prospectuses(
self,
stock_code: Any | None = None,
start_date: Any | None = None,
end_date: Any | None = None,
page: int | None = None,
page_size: int | None = None,
limit: int | None = None,
all_pages: bool = False,
max_pages: int | None = None,
*,
raw: bool = False,
fields: Sequence[str] | str | None = None,
as_dataframe: bool = True,
**kwargs: Any,
) -> Any:
"""招股书列表.

Endpoint: ``api/v2/market/data/announcements/stock-prospectuses``.
Method: ``GET``.
Documented endpoint: ``stock_prospectuses``.

Args:
stock_code: 股票代码;按标的查询时必填,支持裸代码、短后缀和长后缀 (type: string; required: N).
start_date: 披露日期 YYYYMMDD;未提供 stock_code 时必填 (type: string; required: N).
end_date: 披露日期 YYYYMMDD;不填默认等于 start_date,传入时必须等于 start_date (type: string; required: N).
page: Page number, starting from 1. If omitted, the server default is used unless ``limit`` or ``all_pages`` is set.
page_size: Rows per page. The SDK validates this against the endpoint-specific maximum.
limit: Maximum number of rows to return. The SDK may fetch multiple pages to satisfy this limit.
all_pages: Fetch and combine pages until the server reports the last page.
max_pages: Optional safety cap for ``all_pages``.
raw: Return the decoded JSON payload without tabular extraction.
fields: Optional field list or comma-separated field string applied after extraction.
as_dataframe: Return a pandas ``DataFrame`` by default; set to ``False`` for Python rows.
**kwargs: Extra request parameters forwarded unchanged. Useful when the service adds parameters before the SDK is regenerated.

Returns:
A pandas ``DataFrame`` by default, Python rows when
``as_dataframe=False``, raw JSON when ``raw=True``, or raw page
payloads when multi-page fetching is used with ``raw=True``.
"""
request_params = {'stock_code': stock_code, 'start_date': start_date, 'end_date': end_date}
request_params.update(kwargs)
path = ENDPOINTS['stock_prospectuses'].path
return self.get_paginated(
path,
page=page,
page_size=page_size,
limit=limit,
all_pages=all_pages,
max_pages=max_pages,
max_page_size=ENDPOINTS['stock_prospectuses'].max_page_size,
raw=raw,
fields=fields,
as_dataframe=as_dataframe,
**request_params,
)
42 changes: 42 additions & 0 deletions src/ftshare/apis/stock.py
Original file line number Diff line number Diff line change
Expand Up @@ -3708,6 +3708,48 @@ def stock_prev_close(
**request_params,
)

def stock_intraday(
self,
symbol: Any | None = None,
range: Any | None = None,
days: Any | None = None,
ts_ms: Any | None = None,
*,
raw: bool = False,
fields: Sequence[str] | str | None = None,
as_dataframe: bool = True,
**kwargs: Any,
) -> Any:
"""股票跨日分时行情.

Endpoint: ``api/v4/market/data/stock-intraday``.
Method: ``GET``.
Documented endpoint: ``stock_intraday``.

Args:
symbol: 股票代码,需带市场后缀,如 600000.SH、000001.SZ;不接受裸代码 (type: string; required: Y).
range: 预置时间区间:Today(当日)/ FiveDays(当日及此前 4 个交易日,默认),大小写敏感 (type: string; required: N).
days: 1~5;查询当日及此前 N-1 个交易日,1 表示当日 (type: int; required: N).
ts_ms: 当日过滤起点,Unix 毫秒时间戳,包含起点;不能通过它指定历史日期 (type: int(ms); required: N).
raw: Return the decoded JSON payload without tabular extraction.
fields: Optional field list or comma-separated field string applied after extraction.
as_dataframe: Return a pandas ``DataFrame`` by default; set to ``False`` for Python rows.
**kwargs: Extra request parameters forwarded unchanged. Useful when the service adds parameters before the SDK is regenerated.

Returns:
A pandas ``DataFrame`` by default, Python rows when
``as_dataframe=False``, or raw JSON when ``raw=True``.
"""
request_params = {'symbol': symbol, 'range': range, 'days': days, 'ts_ms': ts_ms}
request_params.update(kwargs)
return self._call_endpoint(
'stock_intraday',
raw=raw,
fields=fields,
as_dataframe=as_dataframe,
**request_params,
)

def stock_intraday_prices(
self,
symbol: Any | None = None,
Expand Down
37 changes: 35 additions & 2 deletions src/ftshare/endpoints/bond.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,45 @@
ENDPOINTS: dict[str, Endpoint] = build_endpoints({
'convertible_bond_candlesticks': {
'path': 'api/v1/market/data/convertible-bond-candlesticks',
'title': '可转债K线',
'doc_file': '可转债K线.md',
'title': '可转债历史K线',
'doc_file': '可转债历史K线.md',
'original_api': 'convertible_bond_candlesticks',
'method': 'GET',
'params': ('symbol', 'interval_unit', 'interval_value', 'adjust_kind', 'since_ts_millis', 'until_ts_millis', 'limit'),
},

'convertible_bond_candlesticks_batch': {
'path': 'api/v2/market/data/convertible-bond-candlesticks/batch',
'title': '批量可转债历史K线',
'doc_file': '批量可转债历史K线.md',
'original_api': 'convertible_bond_candlesticks_batch',
'params': ('symbols', 'interval_unit', 'interval_value', 'adjust_kind', 'since_ts_millis', 'until_ts_millis', 'limit'),
},

'convertible_bond_minute_candlesticks': {
'path': 'api/v2/market/data/convertible-bond-minute-candlesticks',
'title': '可转债历史分钟K线',
'doc_file': '可转债历史分钟K线.md',
'original_api': 'convertible_bond_minute_candlesticks',
'params': ('symbol', 'symbols', 'interval_value', 'since_ts_millis', 'until_ts_millis', 'limit'),
},

'convertible_bond_realtime_day_kline': {
'path': 'api/v4/market/data/convertible-bond-realtime-day-kline',
'title': '可转债实时日K线',
'doc_file': '可转债实时日K线.md',
'original_api': 'convertible_bond_realtime_day_kline',
'params': ('symbols',),
},

'convertible_bond_realtime_minute_kline': {
'path': 'api/v4/market/data/convertible-bond-realtime-minute-kline',
'title': '可转债实时分钟K线',
'doc_file': '可转债实时分钟K线.md',
'original_api': 'convertible_bond_realtime_minute_kline',
'params': ('symbols',),
},

'szse_convertible_bond_matching_trades': {
'path': 'api/v1/market/data/convertible-bond/szse/matching-trades',
'title': '深交所可转债匹配成交',
Expand Down
8 changes: 8 additions & 0 deletions src/ftshare/endpoints/llm_corpus.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,12 @@
'original_api': 'stock_reports',
'params': ('stock_code', 'start_date', 'end_date', 'type', 'page', 'page_size'),
},
'stock_prospectuses': {
'path': 'api/v2/market/data/announcements/stock-prospectuses',
'title': '招股书列表',
'doc_file': '招股书列表.md',
'original_api': 'stock_prospectuses',
'params': ('stock_code', 'start_date', 'end_date', 'page', 'page_size'),
'max_page_size': 500,
},
})
7 changes: 7 additions & 0 deletions src/ftshare/endpoints/stock.py
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,13 @@
'original_api': 'get_stock_institution_share_holdings',
'params': ('institution_id', 'year', 'report_type', 'invest_type'),
},
'stock_intraday': {
'path': 'api/v4/market/data/stock-intraday',
'title': '股票跨日分时行情',
'doc_file': '股票跨日分时行情.md',
'original_api': 'stock_intraday',
'params': ('symbol', 'range', 'days', 'ts_ms'),
},
'stock_intraday_auction_volume': {
'path': 'api/v2/market/data/intraday-auction-volume',
'title': '连续竞价成交量',
Expand Down
Loading
Loading