diff --git a/.agents/skills/joinquant-docs-sync/SKILL.md b/.agents/skills/joinquant-docs-sync/SKILL.md new file mode 100644 index 0000000..b3ec319 --- /dev/null +++ b/.agents/skills/joinquant-docs-sync/SKILL.md @@ -0,0 +1,39 @@ +--- +name: joinquant-docs-sync +description: Use when 用户或 Agent 需要预览、同步或校验聚宽官方帮助文档,生成可离线查询的 API(接口)索引,检查文档变化,或维护 `docs/joinquant-api/` 本地快照。 +--- + +# 聚宽文档同步 + +所有动作只调用 `scripts/jq_docs_sync.py`;不要在对话中另写抓取脚本。只同步 `references/sources.json` 明确列出的聚宽官方公开页面,不登录、不读取 Cookie(浏览器凭证)或 Token(访问令牌)。 + +## 执行流程 + +1. 先运行 `preview`(预览)。读取结果中的新增、修改、删除文档和 API(接口)稳定键;预览不得写入目标目录。 +2. 只有调用者已明确要求同步时才运行 `sync`(同步)。任一来源未通过正文、最小长度或错误页门禁时停止,不覆盖上次完整版本。 +3. 同步后立即运行 `verify`(校验),从文件重新计算 SHA-256(完整性摘要)并核对清单与 API(接口)索引。 +4. 修改脚本、来源清单或转换规则后运行 `self-test`(自检)。该入口使用内置离线页面,在临时目录覆盖预览、首次同步、重复同步、校验和篡改检测,不访问网络。 + +统一命令: + +```powershell +& .\.venv\Scripts\python.exe .agents\skills\joinquant-docs-sync\scripts\jq_docs_sync.py --help +``` + +默认目标目录是 `docs/joinquant-api/`。需要试验其他来源或目标时,使用 `--sources` 和 `--output` 传入明确路径;不要临时修改生产清单。 + +## 结果判断 + +- `preview`(预览):只报告差异;出现 `failed` 时不得继续同步。 +- `sync`(同步):`changed` 只列出实际写入文件;内容摘要不变时必须是空列表。 +- `verify`(校验):只有 `status=ok` 才能声称本地快照完整。 +- API(接口)稳定键使用 `source_id:kind:name`,同名函数在不同来源必须保留为不同条目。 + +## 安全边界 + +- 不安装浏览器或 Python(编程语言)依赖;缺失时报告项目 `.venv`(虚拟环境)的具体缺项。 +- 不把本地文档或索引当作正式回测、模拟交易或实时 JQData(聚宽本地数据)结果。 +- 不自动删除来源清单之外的文件,不自动提交 Git(版本管理)变更。 +- 首次实际同步或 API(接口)数量明显下降时,先展示预览并等待用户确认。 + +默认官方来源和输出文件映射见 `references/sources.json`。 diff --git a/.agents/skills/joinquant-docs-sync/agents/openai.yaml b/.agents/skills/joinquant-docs-sync/agents/openai.yaml new file mode 100644 index 0000000..6058292 --- /dev/null +++ b/.agents/skills/joinquant-docs-sync/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "聚宽文档同步" + short_description: "安全同步聚宽官方文档并生成可核验的 API 接口索引" + default_prompt: "使用 $joinquant-docs-sync 预览聚宽官方文档变化并生成 API(接口)索引。" diff --git a/.agents/skills/joinquant-docs-sync/references/sources.json b/.agents/skills/joinquant-docs-sync/references/sources.json new file mode 100644 index 0000000..772424e --- /dev/null +++ b/.agents/skills/joinquant-docs-sync/references/sources.json @@ -0,0 +1,107 @@ +{ + "version": 1, + "sources": [ + { + "source_id": "jqdata", + "url": "https://www.joinquant.com/help/api/help?name=JQData", + "output": "JQData.md", + "selector": ".help-api-right", + "min_chars": 5000 + }, + { + "source_id": "platform-api", + "url": "https://www.joinquant.com/help/api/help?name=api", + "output": "API.md", + "selector": ".help-api-right", + "min_chars": 2000 + }, + { + "source_id": "stock", + "url": "https://www.joinquant.com/help/api/help?name=Stock", + "output": "JQ_股票数据.md", + "selector": ".help-api-right", + "min_chars": 1000 + }, + { + "source_id": "fund", + "url": "https://www.joinquant.com/help/api/help?name=fund", + "output": "JQ_场内基金数据.md", + "selector": ".help-api-right", + "min_chars": 1000 + }, + { + "source_id": "future", + "url": "https://www.joinquant.com/help/api/help?name=Future", + "output": "JQ_期货数据.md", + "selector": ".help-api-right", + "min_chars": 1000 + }, + { + "source_id": "option", + "url": "https://www.joinquant.com/help/api/help?name=Option", + "output": "JQ_期权数据.md", + "selector": ".help-api-right", + "min_chars": 1000 + }, + { + "source_id": "index", + "url": "https://www.joinquant.com/help/api/help?name=index", + "output": "JQ_指数数据.md", + "selector": ".help-api-right", + "min_chars": 1000 + }, + { + "source_id": "plate-data", + "url": "https://www.joinquant.com/help/api/help?name=plateData", + "output": "JQ_行业概念数据.md", + "selector": ".help-api-right", + "min_chars": 1000 + }, + { + "source_id": "macro-data", + "url": "https://www.joinquant.com/help/api/help?name=macroData", + "output": "JQ_宏观经济数据.md", + "selector": ".help-api-right", + "min_chars": 1000, + "required_markers": ["old_dependency_ratio"] + }, + { + "source_id": "faq", + "url": "https://www.joinquant.com/help/api/help?name=faq", + "output": "JQ_常见问题.md", + "selector": ".help-api-right", + "min_chars": 1000 + }, + { + "source_id": "factor-values", + "url": "https://www.joinquant.com/help/api/help?name=factor_values", + "output": "JQ_聚宽因子库.md", + "selector": ".help-api-right", + "min_chars": 1000 + }, + { + "source_id": "alpha101", + "url": "https://www.joinquant.com/help/api/help?name=Alpha101", + "output": "JQ_Alpha101.md", + "selector": ".help-api-right", + "min_chars": 1000, + "required_markers": ["alpha_101("] + }, + { + "source_id": "alpha191", + "url": "https://www.joinquant.com/help/api/help?name=Alpha191", + "output": "JQ_Alpha191.md", + "selector": ".help-api-right", + "min_chars": 1000, + "required_markers": ["alpha_191("] + }, + { + "source_id": "technical-analysis", + "url": "https://www.joinquant.com/help/api/help?name=technicalanalysis", + "output": "JQ_技术分析指标.md", + "selector": ".help-api-right", + "min_chars": 1000, + "required_markers": ["PUCU("] + } + ] +} diff --git a/.agents/skills/joinquant-docs-sync/scripts/jq_docs_sync.py b/.agents/skills/joinquant-docs-sync/scripts/jq_docs_sync.py new file mode 100644 index 0000000..18c19aa --- /dev/null +++ b/.agents/skills/joinquant-docs-sync/scripts/jq_docs_sync.py @@ -0,0 +1,830 @@ +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import re +import sys +import tempfile +from datetime import datetime, timezone +from pathlib import Path +from typing import Any +from urllib.parse import urljoin, urlparse + +from bs4 import BeautifulSoup, NavigableString, Tag + + +SKILL_ROOT = Path(__file__).resolve().parents[1] +REPO_ROOT = Path(__file__).resolve().parents[4] +DEFAULT_SOURCES = SKILL_ROOT / "references" / "sources.json" +DEFAULT_OUTPUT = REPO_ROOT / "docs" / "joinquant-api" +ERROR_MARKERS = ("页面不存在", "系统错误", "访问被拒绝") +FUNCTION_RE = re.compile(r"\b([A-Za-z_][A-Za-z0-9_]*)\s*\([^()\n]{0,240}\)") +TABLE_RE = re.compile( + r"\b(?:finance|macro|opt|bond|fund|jy|valuation)\.[A-Z][A-Z0-9_]+\b" +) +FENCE_TOKEN_RE = re.compile(r"```([A-Za-z0-9_+-]+)?") +FACTOR_SOURCE_IDS = {"alpha101", "alpha191", "technical-analysis"} +ALPHA_HELPER_NOISE_NAMES = {"a", "i"} +ALPHA_HEADING_RE = re.compile(r"^(alpha_\d{3})(?:$|[((])") +TECHNICAL_HEADING_RE = re.compile( + r"^([A-Z][A-Z0-9_]*(?:-[A-Z][A-Z0-9_]*)*)\s*-\s*[\u4e00-\u9fff]" +) +TECHNICAL_HEADING_OVERRIDES = { + "BOLL-": "Bollinger_Bands", + "CDP-STD-": "CDP_STD", + "LWR-LWR": "LWR", + "SG-LB-": "SG_LB", + "SG-PF-": "SG_PF", + "SG-SMX-": "SG_SMX", + "TBP-STD-": "TBP_STD", +} +NON_API_CALL_NAMES = { + "DataFrame", + "BytesIO", + "DECIMAL", + "Dict", + "INTEGER", + "LOG", + "MyObject", + "Rank", + "STD", + "TTM", + "Series", + "ST", + "StringIO", + "TINYINT", + "VARCHAR", + "XDCE", + "XSGE", + "__init__", + "a", + "all", + "any", + "append", + "array", + "Aroon", + "AVEDEV", + "AvgQ", + "char", + "code", + "conbond", + "date", + "decode", + "decimal", + "datetime", + "dict", + "display_name", + "end_date", + "enumerate", + "etf", + "factor", + "filter", + "float", + "format", + "func", + "func1", + "groupby", + "head", + "i", + "in_", + "index", + "int", + "isnan", + "isoweekday", + "items", + "keys", + "len", + "like", + "limit", + "list", + "loads", + "map", + "major_xs", + "max", + "mean", + "min", + "minor_xs", + "now", + "open", + "options", + "pcf_ratio", + "print", + "ps_ratio", + "rand", + "range", + "read", + "report_type", + "repr", + "round", + "set", + "sorted", + "sort_values", + "std", + "stock", + "str", + "strftime", + "sum", + "tail", + "time", + "today", + "to_csv", + "tuple", + "type", + "values", + "write", + "weight", + "xs", + "varchar", + "futures", + "zip", +} +DETAIL_HEADINGS = { + "调用方法", + "参数", + "输入", + "返回", + "返回值", + "输出", + "示例", + "注意", + "字段", + "字段说明", +} + + +class SyncError(RuntimeError): + pass + + +def _sha256_bytes(data: bytes) -> str: + return hashlib.sha256(data).hexdigest() + + +def _json_text(value: Any) -> str: + return json.dumps(value, ensure_ascii=False, indent=2, sort_keys=True) + "\n" + + +def load_sources(path: Path) -> list[dict[str, Any]]: + try: + raw = json.loads(path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as exc: + raise SyncError(f"无法读取来源清单: {path}: {exc}") from exc + sources = raw.get("sources") if isinstance(raw, dict) else None + if not isinstance(sources, list) or not sources: + raise SyncError("来源清单必须包含非空 sources 列表") + + seen: dict[str, set[str]] = {"source_id": set(), "url": set(), "output": set()} + normalized: list[dict[str, Any]] = [] + for index, source in enumerate(sources, start=1): + if not isinstance(source, dict): + raise SyncError(f"来源 #{index} 必须是对象") + item = { + "source_id": str(source.get("source_id", "")).strip(), + "url": str(source.get("url", "")).strip(), + "output": str(source.get("output", "")).strip(), + "selector": str(source.get("selector", "")).strip(), + "min_chars": source.get("min_chars"), + "required_markers": source.get("required_markers", []), + } + if not all((item["source_id"], item["url"], item["output"], item["selector"])): + raise SyncError(f"来源 #{index} 缺少必填字段") + parsed = urlparse(item["url"]) + if parsed.scheme != "https" or not ( + parsed.hostname == "joinquant.com" + or (parsed.hostname or "").endswith(".joinquant.com") + ): + raise SyncError(f"来源必须是聚宽 HTTPS 官方地址: {item['url']}") + output = Path(item["output"]) + if output.name != item["output"] or output.suffix.lower() != ".md": + raise SyncError(f"目标文件必须是目录内 Markdown 文件名: {item['output']}") + try: + item["min_chars"] = int(item["min_chars"]) + except (TypeError, ValueError) as exc: + raise SyncError(f"来源 {item['source_id']} 的 min_chars 无效") from exc + if item["min_chars"] < 1: + raise SyncError(f"来源 {item['source_id']} 的 min_chars 必须大于 0") + markers = item["required_markers"] + if not isinstance(markers, list) or any( + not isinstance(marker, str) or not marker.strip() for marker in markers + ): + raise SyncError(f"来源 {item['source_id']} 的 required_markers 无效") + item["required_markers"] = [marker.strip() for marker in markers] + for field in seen: + value = str(item[field]) + if value in seen[field]: + raise SyncError(f"来源清单 {field} 冲突: {value}") + seen[field].add(value) + normalized.append(item) + return normalized + + +def _inline(node: Tag | NavigableString) -> str: + if isinstance(node, NavigableString): + return re.sub(r"\s+", " ", str(node)) + if node.name in {"script", "style", "noscript", "svg"}: + return "" + if node.name == "br": + return "\n" + text = "".join(_inline(child) for child in node.children).strip() + if node.name == "a" and text: + href = str(node.get("href", "")).strip() + if href.startswith("/"): + href = urljoin("https://www.joinquant.com", href) + return f"[{text}]({href})" if href else text + if node.name == "code" and text: + return f"`{text}`" + if node.name in {"strong", "b"} and text: + return f"**{text}**" + if node.name in {"em", "i"} and text: + return f"*{text}*" + return text + + +def _table_to_markdown(table: Tag) -> str: + rows: list[list[str]] = [] + for row in table.find_all("tr"): + cells = [ + re.sub(r"\s+", " ", _inline(cell)).strip() + for cell in row.find_all(["th", "td"]) + ] + if cells: + rows.append(cells) + if not rows: + return "" + width = max(len(row) for row in rows) + rows = [row + [""] * (width - len(row)) for row in rows] + rendered = ["| " + " | ".join(row) + " |" for row in rows] + rendered.insert(1, "| " + " | ".join(["---"] * width) + " |") + return "\n".join(rendered) + "\n\n" + + +def _block(node: Tag | NavigableString) -> str: + if isinstance(node, NavigableString): + return "" if not str(node).strip() else _inline(node) + name = node.name or "" + if name in {"script", "style", "noscript", "svg", "button", "form"}: + return "" + if re.fullmatch(r"h[1-6]", name): + level = int(name[1]) + return f"{'#' * level} {_inline(node)}\n\n" + if name == "pre": + code = node.get_text("", strip=False).strip().replace("```", "`` `") + return f"```\n{code}\n```\n\n" + if name == "table": + return _table_to_markdown(node) + if name in {"ul", "ol"}: + lines: list[str] = [] + ordered = name == "ol" + for number, item in enumerate(node.find_all("li", recursive=False), start=1): + prefix = f"{number}. " if ordered else "- " + inline_parts: list[str] = [] + nested_blocks: list[str] = [] + for child in item.children: + if isinstance(child, Tag) and child.name in { + "blockquote", + "ol", + "pre", + "table", + "ul", + }: + nested_blocks.append(_block(child).strip()) + else: + inline_parts.append(_inline(child)) + inline_text = re.sub(r"\s+", " ", "".join(inline_parts)).strip() + rendered = prefix + inline_text + if nested_blocks: + rendered += "\n\n" + "\n\n".join(nested_blocks) + lines.append(rendered.rstrip()) + return "\n".join(lines) + "\n\n" if lines else "" + if name == "blockquote": + text = node.get_text(" ", strip=True) + return "\n".join(f"> {line}" for line in text.splitlines()) + "\n\n" + if name in {"p", "figcaption"}: + text = _inline(node).strip() + return f"{text}\n\n" if text else "" + if name == "hr": + return "---\n\n" + return "".join(_block(child) for child in node.children) + + +def _normalize_markdown_fences(markdown: str) -> str: + parts: list[str] = [] + position = 0 + for match in FENCE_TOKEN_RE.finditer(markdown): + before = markdown[position : match.start()].rstrip(" \t") + parts.append(before) + if before and not before.endswith("\n"): + parts.append("\n") + parts.append(f"```{match.group(1) or ''}\n") + position = match.end() + while position < len(markdown) and markdown[position] in " \t": + position += 1 + parts.append(markdown[position:]) + return "".join(parts) + + +def _validate_markdown_fences(markdown: str) -> None: + fence_lines = [line for line in markdown.splitlines() if "```" in line] + if any(not re.fullmatch(r"```[A-Za-z0-9_+-]*", line) for line in fence_lines): + raise SyncError("Markdown 包含行内代码围栏") + if len(fence_lines) % 2: + raise SyncError("Markdown 代码围栏未闭合") + + +def html_to_markdown( + html: str, selector: str, min_chars: int, required_markers: list[str] +) -> str: + soup = BeautifulSoup(html, "html.parser") + container = soup.select_one(selector) + if container is None: + raise SyncError(f"找不到正文选择器: {selector}") + plain = re.sub(r"\s+", " ", container.get_text(" ", strip=True)).strip() + if len(plain) < min_chars: + raise SyncError(f"正文长度 {len(plain)} 低于门禁 {min_chars}") + if any(marker in plain[:500] for marker in ERROR_MARKERS): + raise SyncError("页面命中错误页特征") + missing_markers = [marker for marker in required_markers if marker not in plain] + if missing_markers: + raise SyncError(f"正文缺少完整性标记: {', '.join(missing_markers)}") + markdown = _normalize_markdown_fences(_block(container)) + markdown = re.sub( + r"\]\((/[^)\s]+)\)", + lambda match: f"]({urljoin('https://www.joinquant.com', match.group(1))})", + markdown, + ) + markdown = re.sub(r"[ \t]+\n", "\n", markdown) + markdown = re.sub(r"\n{3,}", "\n\n", markdown).strip() + "\n" + _validate_markdown_fences(markdown) + return markdown + + +def extract_api_entries(markdown: str, source_id: str) -> list[dict[str, str]]: + sections: list[tuple[str, str]] = [] + heading = "" + body: list[str] = [] + in_fence = False + for line in markdown.splitlines(): + if line.startswith("```"): + in_fence = not in_fence + heading_match = None if in_fence else re.match(r"^#{1,6} (.+)$", line) + if heading_match and heading_match.group(1).strip() not in DETAIL_HEADINGS: + if heading or body: + sections.append((heading, "\n".join(body))) + heading = heading_match.group(1).strip() + body = [] + else: + body.append(line) + if heading or body: + sections.append((heading, "\n".join(body))) + + entries: dict[str, dict[str, str]] = {} + for current_heading, section in sections: + catalog_match = None + catalog_name = None + if source_id in {"alpha101", "alpha191"}: + catalog_match = ALPHA_HEADING_RE.match(current_heading) + elif source_id == "technical-analysis": + catalog_name = next( + ( + name + for prefix, name in TECHNICAL_HEADING_OVERRIDES.items() + if current_heading.startswith(prefix) + ), + None, + ) + if catalog_name is None: + catalog_match = TECHNICAL_HEADING_RE.match(current_heading) + if catalog_match or catalog_name: + name = catalog_name or catalog_match.group(1) + key = f"{source_id}:factor:{name}" + entries[key] = { + "key": key, + "source_id": source_id, + "kind": "factor", + "name": name, + "heading": current_heading, + "evidence": current_heading, + } + if source_id in {"alpha101", "alpha191"} and current_heading.startswith( + "alpha(" + ): + key = f"{source_id}:function:alpha" + entries[key] = { + "key": key, + "source_id": source_id, + "kind": "function", + "name": "alpha", + "heading": current_heading, + "evidence": current_heading, + } + if ( + source_id in {"alpha101", "alpha191"} + and current_heading == "公用函数说明" + ): + for match in FUNCTION_RE.finditer(section): + name = match.group(1) + if name in ALPHA_HELPER_NOISE_NAMES: + continue + key = f"{source_id}:function:{name}" + entries[key] = { + "key": key, + "source_id": source_id, + "kind": "function", + "name": name, + "heading": current_heading, + "evidence": match.group(0), + } + has_input = "参数" in section or "输入" in section + has_output = "返回" in section or "输出" in section + if has_input and has_output and source_id not in FACTOR_SOURCE_IDS: + for match in FUNCTION_RE.finditer(section): + name = match.group(1) + if name in NON_API_CALL_NAMES: + continue + kind = ( + "factor" + if name.startswith("alpha_") or source_id in FACTOR_SOURCE_IDS + else "function" + ) + key = f"{source_id}:{kind}:{name}" + entries[key] = { + "key": key, + "source_id": source_id, + "kind": kind, + "name": name, + "heading": current_heading, + "evidence": match.group(0), + } + for table in TABLE_RE.findall(section): + key = f"{source_id}:table:{table}" + entries[key] = { + "key": key, + "source_id": source_id, + "kind": "table", + "name": table, + "heading": current_heading, + "evidence": table, + } + if source_id == "factor-values": + in_factor_table = False + for line in markdown.splitlines(): + if not line.startswith("|"): + in_factor_table = False + continue + cells = [cell.strip() for cell in line.strip("|").split("|")] + if cells and cells[0].replace(" ", "").lower() == "因子code": + in_factor_table = True + continue + if not in_factor_table or not cells: + continue + name = cells[0] + if not re.fullmatch(r"[A-Za-z][A-Za-z0-9_]*", name): + continue + key = f"{source_id}:factor:{name}" + entries[key] = { + "key": key, + "source_id": source_id, + "kind": "factor", + "name": name, + "heading": "因子目录", + "evidence": line, + } + if source_id == "macro-data": + for match in re.finditer(r"表名[::]\s*(MAC_[A-Z0-9_]+)", markdown): + table = f"macro.{match.group(1)}" + key = f"{source_id}:table:{table}" + entries[key] = { + "key": key, + "source_id": source_id, + "kind": "table", + "name": table, + "heading": "宏观数据表", + "evidence": match.group(0), + } + return [entries[key] for key in sorted(entries)] + + +def _fixture_html(source: dict[str, Any], html_dir: Path) -> str: + path = html_dir / f"{source['source_id']}.html" + try: + return path.read_text(encoding="utf-8") + except OSError as exc: + raise SyncError(f"无法读取离线页面: {path}: {exc}") from exc + + +def _live_html(sources: list[dict[str, Any]]) -> dict[str, str]: + try: + from playwright.sync_api import sync_playwright + except ImportError as exc: + raise SyncError("项目 .venv 缺少 Playwright,请安装仓库运行依赖") from exc + rendered: dict[str, str] = {} + with sync_playwright() as playwright: + browser = playwright.chromium.launch(headless=True) + try: + page = browser.new_page() + for source in sources: + response = page.goto(source["url"], wait_until="domcontentloaded") + if response is None or response.status >= 400: + status = "无响应" if response is None else response.status + raise SyncError(f"来源 {source['source_id']} 请求失败: {status}") + page.wait_for_function( + "([selector, minChars, markers]) => { const text = document.querySelector(selector)?.innerText || ''; return text.length >= minChars && markers.every(marker => text.includes(marker)); }", + arg=[ + source["selector"], + source["min_chars"], + source["required_markers"], + ], + timeout=30_000, + ) + final_host = urlparse(page.url).hostname or "" + if final_host != "joinquant.com" and not final_host.endswith( + ".joinquant.com" + ): + raise SyncError(f"来源 {source['source_id']} 被重定向到非聚宽域名") + rendered[source["source_id"]] = page.content() + finally: + browser.close() + return rendered + + +def build_candidates( + sources: list[dict[str, Any]], html_dir: Path | None +) -> tuple[dict[str, bytes], list[dict[str, str]]]: + html_by_id = ( + {source["source_id"]: _fixture_html(source, html_dir) for source in sources} + if html_dir is not None + else _live_html(sources) + ) + candidates: dict[str, bytes] = {} + entries: list[dict[str, str]] = [] + for source in sources: + markdown = html_to_markdown( + html_by_id[source["source_id"]], + source["selector"], + source["min_chars"], + source["required_markers"], + ) + candidates[source["output"]] = markdown.encode("utf-8") + entries.extend(extract_api_entries(markdown, source["source_id"])) + keys = [entry["key"] for entry in entries] + if len(keys) != len(set(keys)): + raise SyncError("API 稳定键发生冲突") + entries.sort(key=lambda entry: entry["key"]) + candidates["api-index.json"] = _json_text( + {"version": 1, "entries": entries} + ).encode("utf-8") + return candidates, entries + + +def _changed_files(output: Path, candidates: dict[str, bytes]) -> list[str]: + changed: list[str] = [] + for name, data in candidates.items(): + path = output / name + if not path.is_file() or path.read_bytes() != data: + changed.append(name) + return sorted(changed) + + +def _read_json_if_present(path: Path) -> dict[str, Any] | None: + if not path.exists(): + return None + try: + value = json.loads(path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as exc: + raise SyncError(f"无法读取现有 JSON 文件: {path}: {exc}") from exc + if not isinstance(value, dict): + raise SyncError(f"现有 JSON 文件必须是对象: {path}") + return value + + +def _preview_changes( + sources: list[dict[str, Any]], + output: Path, + candidates: dict[str, bytes], + entries: list[dict[str, str]], +) -> tuple[dict[str, list[str]], dict[str, list[str]]]: + document_names = {source["output"] for source in sources} + added = sorted(name for name in document_names if not (output / name).is_file()) + modified = sorted( + name + for name in document_names + if (output / name).is_file() + and (output / name).read_bytes() != candidates[name] + ) + previous_manifest = _read_json_if_present(output / "manifest.json") + previous_outputs = { + str(source.get("output")) + for source in (previous_manifest or {}).get("sources", []) + if isinstance(source, dict) and source.get("output") + } + removed = sorted(previous_outputs - document_names) + + previous_index = _read_json_if_present(output / "api-index.json") + previous_entries = { + str(entry["key"]): entry + for entry in (previous_index or {}).get("entries", []) + if isinstance(entry, dict) and entry.get("key") + } + current_entries = {entry["key"]: entry for entry in entries} + previous_keys = set(previous_entries) + current_keys = set(current_entries) + api_changes = { + "added": sorted(current_keys - previous_keys), + "modified": sorted( + key + for key in current_keys & previous_keys + if current_entries[key] != previous_entries[key] + ), + "removed": sorted(previous_keys - current_keys), + } + documents = {"added": added, "modified": modified, "removed": removed} + return documents, api_changes + + +def preview(sources_path: Path, output: Path, html_dir: Path | None) -> dict[str, Any]: + sources = load_sources(sources_path) + candidates, entries = build_candidates(sources, html_dir) + documents, api_changes = _preview_changes(sources, output, candidates, entries) + return { + "status": "ok", + "changed": _changed_files(output, candidates), + "api_entries": len(entries), + "documents": documents, + "api_changes": api_changes, + } + + +def sync(sources_path: Path, output: Path, html_dir: Path | None) -> dict[str, Any]: + sources = load_sources(sources_path) + candidates, entries = build_candidates(sources, html_dir) + changed = _changed_files(output, candidates) + if not changed and (output / "manifest.json").is_file(): + return {"status": "ok", "changed": [], "api_entries": len(entries)} + + manifest = { + "version": 1, + "generated_at": datetime.now(timezone.utc).isoformat(), + "sources": [ + { + "source_id": source["source_id"], + "url": source["url"], + "output": source["output"], + } + for source in sources + ], + "files": { + name: {"sha256": _sha256_bytes(data), "bytes": len(data)} + for name, data in sorted(candidates.items()) + }, + "api_entries": len(entries), + } + output.parent.mkdir(parents=True, exist_ok=True) + with tempfile.TemporaryDirectory( + prefix=".joinquant-docs-sync-", dir=output.parent + ) as temp: + stage = Path(temp) + for name, data in candidates.items(): + (stage / name).write_bytes(data) + (stage / "manifest.json").write_text(_json_text(manifest), encoding="utf-8") + output.mkdir(parents=True, exist_ok=True) + for name in changed: + os.replace(stage / name, output / name) + os.replace(stage / "manifest.json", output / "manifest.json") + return {"status": "ok", "changed": changed, "api_entries": len(entries)} + + +def verify(sources_path: Path, output: Path) -> dict[str, Any]: + sources = load_sources(sources_path) + manifest_path = output / "manifest.json" + try: + manifest = json.loads(manifest_path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as exc: + raise SyncError(f"无法读取同步清单: {manifest_path}: {exc}") from exc + expected_names = {source["output"] for source in sources} | {"api-index.json"} + files = manifest.get("files") + if not isinstance(files, dict) or set(files) != expected_names: + raise SyncError("同步清单文件集合不匹配") + for name in sorted(expected_names): + path = output / name + try: + data = path.read_bytes() + except OSError as exc: + raise SyncError(f"无法读取同步文件: {path}: {exc}") from exc + if _sha256_bytes(data) != files[name].get("sha256"): + raise SyncError(f"文件摘要不匹配: {name}") + if len(data) != files[name].get("bytes"): + raise SyncError(f"文件大小不匹配: {name}") + + try: + index = json.loads((output / "api-index.json").read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as exc: + raise SyncError(f"API 索引无效: {exc}") from exc + actual_entries: list[dict[str, str]] = [] + for source in sources: + markdown = (output / source["output"]).read_text(encoding="utf-8") + actual_entries.extend(extract_api_entries(markdown, source["source_id"])) + actual_entries.sort(key=lambda entry: entry["key"]) + if index.get("entries") != actual_entries: + raise SyncError("API 索引与文档重算结果不一致") + keys = [entry["key"] for entry in actual_entries] + if len(keys) != len(set(keys)): + raise SyncError("API 索引包含重复稳定键") + if manifest.get("api_entries") != len(actual_entries): + raise SyncError("API 条目数量与清单不一致") + return {"status": "ok", "files": len(expected_names), "api_entries": len(keys)} + + +def self_test() -> dict[str, Any]: + with tempfile.TemporaryDirectory(prefix="joinquant-docs-self-test-") as temp: + root = Path(temp) + html_dir = root / "html" + html_dir.mkdir() + common = "离线聚宽帮助正文。" * 20 + fixture = ( + '

股票数据

' + "

获取概况

调用方法

get_security_info(code)
" + f"

参数

code

返回

对象

{common}

" + "
" + ) + (html_dir / "stock.html").write_text(fixture, encoding="utf-8") + sources_path = root / "sources.json" + sources_path.write_text( + _json_text( + { + "version": 1, + "sources": [ + { + "source_id": "stock", + "url": "https://www.joinquant.com/help/api/help?name=Stock", + "output": "Stock.md", + "selector": ".js-app", + "min_chars": 100, + } + ], + } + ), + encoding="utf-8", + ) + output = root / "output" + preview(sources_path, output, html_dir) + sync(sources_path, output, html_dir) + second = sync(sources_path, output, html_dir) + if second["changed"]: + raise SyncError("离线重复同步不是幂等的") + verify(sources_path, output) + (output / "Stock.md").write_text("tampered", encoding="utf-8") + try: + verify(sources_path, output) + except SyncError: + pass + else: + raise SyncError("离线篡改未被校验发现") + return { + "status": "ok", + "steps": ["preview", "sync", "idempotent", "verify", "tamper-detected"], + } + + +def _common_arguments(parser: argparse.ArgumentParser, include_html: bool) -> None: + parser.add_argument("--sources", type=Path, default=DEFAULT_SOURCES) + parser.add_argument("--output", type=Path, default=DEFAULT_OUTPUT) + if include_html: + parser.add_argument("--html-dir", type=Path) + + +def build_parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser(prog="jq_docs_sync.py") + subparsers = parser.add_subparsers(dest="command", required=True) + for command in ("preview", "sync"): + subparser = subparsers.add_parser(command) + _common_arguments(subparser, include_html=True) + verify_parser = subparsers.add_parser("verify") + _common_arguments(verify_parser, include_html=False) + subparsers.add_parser("self-test") + return parser + + +def main(argv: list[str] | None = None) -> int: + if hasattr(sys.stdout, "reconfigure"): + sys.stdout.reconfigure(encoding="utf-8") + args = build_parser().parse_args(argv) + try: + if args.command == "preview": + result = preview(args.sources, args.output, args.html_dir) + elif args.command == "sync": + result = sync(args.sources, args.output, args.html_dir) + elif args.command == "verify": + result = verify(args.sources, args.output) + else: + result = self_test() + except (SyncError, OSError, ValueError) as exc: + print(_json_text({"status": "failed", "error": str(exc)}), end="") + return 2 + print(_json_text(result), end="") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/.build-and-verify/config.json b/.build-and-verify/config.json index 4b844a9..dbd2390 100644 --- a/.build-and-verify/config.json +++ b/.build-and-verify/config.json @@ -27,7 +27,9 @@ "tests\\test_skill_layout.py" ], "paths": [ + ".agents/skills/joinquant-docs-sync/**", ".agents/skills/joinquant-archive-sync/**", + ".claude/skills/joinquant-docs-sync", ".claude/skills/joinquant-archive-sync", ".gitattributes", "requirements*.txt", @@ -35,7 +37,9 @@ "tests/test_skill_layout.py" ], "inputs": [ + ".agents/skills/joinquant-docs-sync/**", ".agents/skills/joinquant-archive-sync/**", + ".claude/skills/joinquant-docs-sync", ".claude/skills/joinquant-archive-sync", ".gitattributes", "requirements.txt", @@ -46,6 +50,32 @@ "checkParallel": true, "pytestXdistWorkers": 4 }, + { + "id": "verify.docs-sync", + "command": [ + ".\\.venv\\Scripts\\python.exe", + "-m", + "pytest", + "tests\\joinquant_docs_sync\\test_cli.py" + ], + "paths": [ + ".agents/skills/joinquant-docs-sync/**", + ".claude/skills/joinquant-docs-sync", + "requirements*.txt", + "tests/conftest.py", + "tests/joinquant_docs_sync/test_cli.py" + ], + "inputs": [ + ".agents/skills/joinquant-docs-sync/**", + ".claude/skills/joinquant-docs-sync", + "requirements.txt", + "requirements-dev.txt", + "tests/conftest.py", + "tests/joinquant_docs_sync/test_cli.py" + ], + "checkParallel": true, + "pytestXdistWorkers": 4 + }, { "id": "verify.archive", "command": [ diff --git a/.claude/skills/joinquant-docs-sync b/.claude/skills/joinquant-docs-sync new file mode 120000 index 0000000..90f5a31 --- /dev/null +++ b/.claude/skills/joinquant-docs-sync @@ -0,0 +1 @@ +../../.agents/skills/joinquant-docs-sync \ No newline at end of file diff --git a/docs/joinquant-api/API.md b/docs/joinquant-api/API.md new file mode 100644 index 0000000..ff2f113 --- /dev/null +++ b/docs/joinquant-api/API.md @@ -0,0 +1,3996 @@ +## API文档 + +感谢您使用JoinQuant(聚宽)量化平台,以下内容主要介绍聚宽量化平台的API使用方法,目录中带有"♠" 标识的API是 `"回测环境/模拟"`的专用API,**不支持在[投资研究](https://www.joinquant.com/research)模块中调用**。 + +内容较多,可使用`Ctrl+F`进行搜索。 + +如果以下内容仍没有解决您的问题,请您查看[常见问题](https://www.joinquant.com/help/api/help?name=faq)、[常见Bug或者警告解决方法](https://www.joinquant.com/view/community/detail/6cab768c4b2fa259385a45927089367f)或者通过[社区提问](https://www.joinquant.com/community)的方式告诉我们。此外您也可以通过在线客服免费咨询 + +## 开始写策略 + +### 简单但是完整的策略 + +先来看一个简单但是完整的策略: + +``` + +def initialize(context): + # 定义一个全局变量, 保存要操作的股票 + g.security = '000001.XSHE' + # 运行函数 + run_daily(market_open, time='every_bar') + +def market_open(context): + if g.security not in context.portfolio.positions: + order(g.security, 1000) + else: + order(g.security, -800) +``` + +一个完整策略只需要两步: + +- 设置初始化函数: [initialize](#initialize),上面的例子中, 只操作一支股票: '000001.XSHE', 平安银行 +- 实现一个函数, 来根据历史数据调整仓位. + +这个策略里, 每当我们没有股票时就买入1000股, 每当我们有股票时又卖出800股, 具体的下单API请看[order](#order-method)函数. + +这个策略里, 我们有了交易, 但是只是无意义的交易, 没有依据当前的数据做出合理的分析 + +下面我们来看一个真正实用的策略 + +### 实用的策略 + +在这个策略里, 我们会根据历史价格做出判断: + +- 如果上一时间点价格高出五天平均价1%, 则全仓买入 +- 如果上一时间点价格低于五天平均价, 则空仓卖出 + +``` + +# 导入聚宽函数库 +import jqdata + +# 初始化函数,设定要操作的股票、基准等等 +def initialize(context): + # 定义一个全局变量, 保存要操作的股票 + # 000001(股票:平安银行) + g.security = '000001.XSHE' + # 设定沪深300作为基准 + set_benchmark('000300.XSHG') + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + # 运行函数 + run_daily(market_open, time='every_bar') + +# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次 +def market_open(context): + security = g.security + # 获取股票的收盘价 + close_data = attribute_history(security, 5, '1d', ['close']) + # 取得过去五天的平均价格 + MA5 = close_data['close'].mean() + # 取得上一时间点价格 + current_price = close_data['close'][-1] + # 取得当前的现金 + cash = context.portfolio.available_cash + + # 如果上一时间点价格高出五天平均价1%, 则全仓买入 + if current_price > 1.01*MA5: + # 用所有 cash 买入股票 + order_value(security, cash) + # 记录这次买入 + log.info("Buying %s" % (security)) + # 如果上一时间点价格低于五天平均价, 则空仓卖出 + elif current_price < MA5 and context.portfolio.positions[security].closeable_amount > 0: + # 卖出所有股票,使这只股票的最终持有量为0 + order_target(security, 0) + # 记录这次卖出 + log.info("Selling %s" % (security)) + # 画出上一时间点价格 + record(stock_price=current_price) +``` + +## 策略引擎介绍 + +### 安全 + +1. 保证您的策略安全是我们的第一要务 +2. 在您使用我们网站的过程中, 我们全程使用https传输 +3. 策略会加密存储在数据库 +4. 请不要在其他非聚宽平台登录聚宽账号。 +5. 回测时您的策略会在一个安全的进程中执行, 我们使用了进程隔离的方案来确保系统不会被任何用户的代码攻击, 每个用户的代码都运行在一个有很强限制的进程中: + +- 只能读指定的一些python库文件 +- 不能写和执行任何文件, 如果您需要保存和读取私有文件, 请看[write_file](#write_file)/[read_file](#read_file) +- 限制了cpu和内存, 堆栈的使用,当使用多核时,回测耗时按CPU占用耗时计算 +- 可以访问网络, 但是对带宽做了限制, 下载最大带宽为500Kbps, 上传带宽为10Kbps +- 有严格的超时机制, 如果handle_data超过30分钟则立即停止运行 对于读取回测所需要的数据, 和输出回测结果, 我们使用一个辅助进程来帮它完成, 两者之间通过管道连接. 我们使用了linux内核级别的apparmer技术来实现这一点. 有了这些限制我们确保了任何用户不能侵入我们的系统, 更别提盗取他人的策略了. + +### 数据 + +1. 股票数据:我们拥有所有A股上市公司2005年以来的[股票行情数据](https://www.joinquant.com/help/api/help?name=Stock#%E8%8E%B7%E5%8F%96%E8%82%A1%E7%A5%A8%E6%95%B0%E6%8D%AE)、[财务数据](https://www.joinquant.com/help/api/help?name=Stock#%E8%8E%B7%E5%8F%96%E5%8D%95%E5%AD%A3%E5%BA%A6%E5%B9%B4%E5%BA%A6%E8%B4%A2%E5%8A%A1%E6%95%B0%E6%8D%AE)、[上市公司基本信息](https://www.joinquant.com/help/api/help?name=Stock#%E4%B8%8A%E5%B8%82%E5%85%AC%E5%8F%B8%E6%A6%82%E5%86%B5)、[融资融券信息](https://www.joinquant.com/help/api/help?name=Stock#%E8%8E%B7%E5%8F%96%E8%9E%8D%E8%B5%84%E8%9E%8D%E5%88%B8%E6%A0%87%E7%9A%84%E5%88%97%E8%A1%A8)等。为了避免幸存者偏差,我们包括了已经退市的股票数据。其中volume(成交量)字段单位是股。 +2. 基金数据:我们目前提供了600多种在交易所上市的基金的行情、净值等数据,包含ETF、LOF、分级A/B基金以及货币基金的完整的行情、净值数据等,请点击[基金数据](https://www.joinquant.com/help/api/help?name=fund)查看。 +3. 金融期货数据:我们提供中金所推出的所有[金融期货产品](https://www.joinquant.com/help/api/help?name=Future)的行情数据,并包含历史产品的数据。 +4. 股票指数:我们支持近600种[指数数据](https://www.joinquant.com/help/api/help?name=index),包括指数的行情数据以及成分股数据。为了避免未来函数,我们支持获取历史任意时刻的指数成分股信息,具体见[get_index_stocks](#get_index_stocks)。 +5. 行业板块:我们支持按行业、按板块选股,具体见[get_industry_stocks](#get_industry_stocks) +6. 概念板块:我们支持按概念板块选股,具体见[get_concept_stocks](#get_concept_stocks) +7. 所有的行情数据我们均已处理好前复权信息。 +8. 我们当日的回测数据会在收盘后通过多数据源进行校验,并在T+1(第二天)的00:01更新。 +9. 我们提供的所有行情K线数据为后对齐,标识K线的时间为数据的结束时间。在一分钟K线上,没有09:30,从09:31开始,有15:00的K线,共计240根。表示时间为09:31的一分钟K线,其数据时间为09:25:00~09:30:59,这一分钟的开盘价是09:25的集合竞价的价格。 +10. 期货K线的划分方式:将标的当天的开盘时间到收盘时间的日历时间按照划分单位划分区间,然后将同一个区间的分钟bar合并。例如,某个标的的开盘时间为09:30,收盘时间为15:00,然后划分单位为5m,划分bar的逻辑如下:将09:30-15:00按照5m划分区间,然后将这个标当天行情在同一个区间的分钟bar合并。 + +### 运行频率 + +聚宽支持天、分钟及tick频率,其他频率您可以在此基础上自己根据时间判断,有关[运行频率解析及隔固定时间运行方法请点击查看](https://www.joinquant.com/view/community/detail/6797d703ee45325b51079374439b1ca5),下面是运行频率的详细说明。 + +**1. Bar 的概念** + +在一定时间段内的时间序列就构成了一根 K 线(日本蜡烛图),单根 K 线被称为 Bar。 + +如果是一分钟内的 Tick 序列,即构成一根分钟 K 线,又称分钟 Bar; + 如果是一天内的分钟序列,即构成一根日线 K 线,又称日线 Bar; + +Bar 的示意图如下所示: + +Bar 就是时间维度上,价格在空间维度上变化构成的数据单元。如下图所示,多个数据单元 Bar 构成的一个时间序列。 + +**2. 频率详解** + +下列图片中齿轮为 handle_data(context, data) 的运行时间,before_trading_start(context) 等其他函数运行时间详见[相关API](#alg_frame)。 + +**频率:天** + +当选择天频率时, 算法在每根日线 Bar 都会运行一次,即每天运行一次。 + +在算法中,可以获取任何粒度的数据。 + +**频率:分钟** + +当选择分钟频率时, 算法在每根分钟 Bar 都会运行一次,即每分钟运行一次。 + +在算法中,可以获取任何粒度的数据。 + +**频率:Tick** + +当选择 Tick 频率时,每当新来一个 Tick,算法都会被执行一次。 + +执行示意图如下图所示: + +### 运行时间 + +设置您的策略什么时候运行,主要由设置策略频率(天、分钟或者tick)与[控制策略运行时间的API](https://www.joinquant.com/help/api/help?name=api#%E7%AD%96%E7%95%A5%E7%A8%8B%E5%BA%8F%E6%9E%B6%E6%9E%84%E2%99%A6)共同完成 + +- 开盘前(9:00)运行: + +- [run_monthly](#run_monthly)/[run_weekly](#run_weekly)/[run_daily](#run_daily)中指定time='09:00'运行的函数 +- [before_trading_start](#before_trading_start) +- 盘中运行: + +- [run_monthly](#run_monthly)/[run_weekly](#run_weekly)/[run_daily](#run_daily)中在指定交易时间执行的函数, 执行时间为这分钟的第一秒. 例如: `run_daily(func, '14:50')` 会在每天的14:50:00(精确到秒)执行 +- [handle_data](#handle_data) + +- 按日回测/模拟, 在9:30:00(精确到秒)运行, [data](#data)为昨天的天数据 +- 按分钟回测/模拟, 在每分钟的第一秒运行, 每天执行240次, 不包括11:30和15:00这两分钟, [data](#data)是上一分钟的分钟数据. 例如: 当天第一次执行是在9:30:00, [data](#data)是昨天14:59至15:00这一分钟的分钟数据, 当天最后一次执行是在14:59:00, [data](#data)是14:58至14:59:00这一分钟的分钟数据. +- 收盘后(15:00后半小时内)运行: + +- [run_monthly](#run_monthly)/[run_weekly](#run_weekly)/[run_daily](#run_daily)中指定time='15:30'运行的函数 +- [after_trading_end](#after_trading_end) +- 同一个时间点, 总是先运行 run_xxx 指定的函数, 然后是 [before_trading_start](#before_trading_start) , [handle_data](#handle_data) 和 [after_trading_end](#after_trading_end) +- 注意: + +- **为了避免您换算错误,建议设置time为具体的时间(例如:time='9:30')**; +- run_xxx指run_monthly/run_weekly/run_daily中的任意一个 +- run_xxx 指定的函数只能有一个参数 [context](#Context), [data](#data) 不再提供, 请使用 [history](#history)等获取; +- initialize / before_trading_start / after_trading_end / handle_data 都是可选的, 如果不是必须的, 不要实现这些函数, 一个空函数会降低运行速度; +- run_xxx和handle_data不要在同一个策略中使用,建议使用run_xxxx; +- 一个策略中可以写多个run_xxx函数,例如需要每分钟运行和定时运行的话,可以这样设置: + +``` + +## func1, func2, func3都是您自己实现的函数 +# 每分钟运行 +run_daily(func1, time='every_bar') +# 11:00定时运行 +run_daily(func2, time='11:00') +# 14:00定时运行 +run_daily(func3, time='14:00') +# 14:50定时运行 +run_daily(func2, time='14:50') +``` + +### 订单处理 + +订单处理总体过程: + +- 从委托到成交的流程: 订单创建->订单检查->报单->确认委托->撮合,在订单检查时未通过则订单取消; +- 回测模式整个过程是同步进行,order_*函数执行成功后会创建一个order对象,市价单的order对象撮合后(交易时间下单立即撮合)会立即获得交易的结果,限价单的order对象每次成交后都会立即更新; +- 目前官网的模拟盘过程同回测; +- 所有未完成订单将在本交易日结束后撤销。 + +| 运行频率 | 委托类型 | 关闭盘口撮合 | 启用盘口撮合 | +| --- | --- | --- | --- | +| 天 | 市价单 | 按最新价+滑点撮合 | 按盘口撮合 | +| | 限价单 | 下单时尝试按最新价+滑点撮合,剩余部分挂单每分钟尝试按分钟Bar撮合 | 下单时按盘口撮合,剩余部分挂单每分钟尝试按分钟Bar撮合 | +| 分钟 | 市价单 | 按最新价+滑点撮合 | 按盘口撮合 | +| | 限价单 | 下单时尝试按最新价+滑点撮合,剩余部分挂单每分钟尝试按分钟Bar撮合 | 下单时按盘口撮合,剩余部分挂单每分钟尝试按分钟Bar撮合 | +| tick | 市价单 | 按最新价+滑点撮合 | 按盘口撮合 | +| | 限价单 | 下单时尝试按最新价+滑点撮合,剩余部分挂单每tick按tick撮合 | 下单时按盘口撮合,剩余部分挂单每tick按tick撮合 | + +## 撮合流程 + +- 在回测和模拟交易中,所有的委托(无论市价单还是限价单)在下单后都将尝试进行撮合,撮合的逻辑根据是否打开盘口撮合进行选择; +- 若委托未能完全成交且为限价单,则挂单,然后根据挂单撮合逻辑进行后续的流程。 + +### 下单时的撮合逻辑 + +#### 未启用盘口撮合时 + +- 当 “最新价+滑点” 在涨跌停范围内将尝试进行撮合,若满足以下条件则成交,成交价为最新价+滑点: + +- 买入/开多/平空时,委托价 >= 最新价+滑点; +- 卖出/开空/平多时,委托价 <= 最新价-滑点; +- 若标的“最新价+滑点”不低于涨停或者不高于跌停时: + +- 跌停时市价卖单会被撤销,涨停时市价买单会被撤销; +- 限价单会挂单等待撮合。 +- 交易价格: 最新价 + 滑点,如果在开盘时刻运行, 最新价格为开盘价。 其他情况下, 为上一分钟的最后一个价格或上一个tick的最新价。 +- 满足撮合条件时成交量的限制: + +- 回测:不超过当日总成交量 * order_volume_ratio; +- 模拟交易:全部成交; +- 超出最大成交量的部分: + +- 对于市价单,剩余部分将撤单; +- 对于限价单,将按委托价挂单,根据策略频率使用不同的后续逻辑。 + +##### 注意: + +- 回测中可通过选项 order_volume_ratio 设置每日最大的成交量, 例如: 0.25 表示下单成交量不会超过本日成交量的 25%; + +- 通过选项 order_volume_ratio 设置每日最大的成交量仅限制了每个订单的成交量, 虽然你可以通过多次下单来超过该限制, 但是为了对你的回测负责请不要这么做; +- context.portfolio 中的持仓价格会使用上一分钟的最后一个价格更新。 + +#### 启用盘口撮合时 + +仅在模拟交易中可启用盘口撮合。 + +- 根据对手盘盘口进行撮合; +- 优先从一档(买一/卖一)开始撮合,根据成交量算出加权均价; +- 盘口撮合不限制成交量; +- 若无盘口数据,**使用未启用盘口撮合时的逻辑尝试进行撮合**; +- 当盘口无法完全成交时: + +- 对于市价单,剩余部分将全部按最高一档盘口撮合; +- 对于限价单,将按委托价挂单,根据策略频率使用不同的后续逻辑; +- 对涨跌停情况的处理: + +- 若涨跌停时存在对手盘,则按盘口正常撮合; +- 若没有对手盘,此时转入未启用盘口时的撮合逻辑:跌停时市价卖单会被撤销,涨停时市价买单会被撤销;限价单会挂单等待撮合。 + +### 挂单时的撮合逻辑 + +针对不同频率(天/分钟,tick)的策略,挂单的限价单将有以下撮合逻辑 + +#### 按分钟Bar撮合 + +- 天/分钟频率的策略,挂单的限价单每分钟都将尝试在本分钟Bar结束时按照Bar信息尝试进行撮合,若满足以下条件则成交,成交价为委托价: + +- 买入/开多/平空时,委托价 > Bar的最低价; +- 卖出/开空/平多时,委托价 < Bar的最高价; +- 成交量限制: + +- 模拟交易中不超过本分钟Bar成交量; +- 回测中不超过本分钟Bar成交量 * order_volume_ratio; +- 若订单未完全成交,剩余部分将在每个分钟bar结束时继续尝试撮合直到全部成交或收盘; + +#### 按tick撮合 + +- 挂单的限价单每个tick都将尝试在tick结束时按照tick信息尝试进行撮合,若满足以下条件则成交,成交价为委托价: + +- 买入/开多/平空时,若委托价 > tick的最新价,则进行撮合; +- 卖出/开空/平多时,若委托价 < tick的最新价,则进行撮合; +- 成交量限制:**按tick撮合时不检查成交量**,当出现满足撮合条件的价格后,剩余部分全部以委托价成交。 + +## 非交易时段下单的特别说明 + +- 如果非交易时间下单且不撮合,不管是市价单还是限价单,都会挂单 +- 对于日频级策略,会在开盘时尝试进行撮合;对于分钟或者tick频率的策略,会在下一个分钟bar或者tick完成时尝试撮合 +- 市价单挂单后开始交易时会按照下单时的逻辑撮合,限价单按照bar/tick来撮合 +- 如果用户在 11:30:01 下单,那么订单挂单,引擎退出;下午开盘前引擎恢复运行时,账户初始化会定位未完成订单的对应频率的数据,如果是tick,**可能会影响用户的tick订阅数量** + +### 拆分合并与分红 + +- **传统前复权回测模式:**当股票发生拆分,合并或者分红时,股票价格会受到影响,为了保证价格的连续性, 我们使用前复权来处理之前的股票价格,给您的所有股票价格已经是前复权的价格。 +- **真实价格(动态复权)回测模式:**当股票发生拆分,合并或者分红时,会按照历史情况,对账户进行处理,会在账户账户中增加现金或持股数量发生变化,并会有日志提示。 + +内容传统前复权回测模式 与 真实价格(动态复权)回测模式 区别 使用前复权价格,不论回测开始时间、结束时间是何时,使用的数据都是基于今天(回测当天)或某个时间的复权因子进行前复权获得的价格,因此使用前复权价格进行回测,回测结果肯定有问题。示意图如下: ![传统回测模式](https://image.joinquant.com/cfa8e207b0590a821c236f374eaed457) 不论历史时刻1或历史时刻2,拿到的数据都是基于未来某一天的前复权价格,使用这样的数据存在未来函数(未来函数是回测最大的敌人之一) ![开启真实价格回测](https://image.joinquant.com/b85f579811e3ee8209ac311761ee5d74) 使用真实价格回测模式,回测到历史时刻1,使用历史时刻1的真实价格撮合成交;如果需要复权,会使用的历史时刻1的复权因子,对“历史时刻1"之前的价格进行前复权,这样有效避免了未来函数,因为回测全程都不可能使用未来的数据。 你可能没有看懂,下面举个例子: ![p3](https://image.joinquant.com/37a5167160afbf57fa155aa12f391a99) 如现有一只股票,股价一直没有波动,只进行了拆分。 - 前复权回测模式 - 站在“历史时刻3”看历史数据:因为使用今天的复权因子,“历史时刻3”之前的股价均为2; - 站在“历史时刻2”看历史数据:因为使用今天的复权因子,“历史时刻3”的股价是2; - 站在“历史时刻1”看历史数据,因为使用今天的复权因子,“历史时刻2”和“历史时刻3”的股价是2; - 真实价格回测模式 - 站在“历史时刻3”看历史数据:因为使用历史时刻3的复权因子,“历史时刻3”之前的股价均为8 - 站在“历史时刻2”看历史数据:因为使用历史时刻2的复权因子,“历史时刻3”的股价是4; - 站在“历史时刻1”看历史数据:因为使用历史时刻1的复权因子,“历史时刻2”和“历史时刻3”的股价是2; **因为使用了未来的复权因子,前复权回测模式,回测过程中使用的价格是不正确的。** 下面再举一个真实的例子,比较一下前复权回测模式和真实价格回测模式的区别 ![GL_pre](https://image.joinquant.com/d5c3445c18c7b5f76f61e075521137d2) 2007-01-30,波导股份的真实股价(绿色曲线)是低于格力电器(黑色曲线)的;但使用前复权价格,波导股份的价格会高于格力电器。 采用最简单的交易思路,购买股价低的股票并持有,前复权模式会买入格力电器,真实价格回测模式会买入波导股份。 下面我们进行回测,根据2007-01-30当天格力电器与波导股份的收盘价,买入低价位股票并持有到现在。回测结果如下所示: **前复权回测模式的回测结果:** 初始资金:100,000 策略收益:776.54% 沪深300收益:21.98% 最大回撤:64.98% ![gbzs](https://image.joinquant.com/933bf07aa1ab7143e5c8c45c55be41e3) **真实价格回测模式的回测结果:** 初始资金:100,000 策略收益:78.35% 沪深300收益:21.98% 最大回撤:79.78% ![kqzs](https://image.joinquant.com/cc3e42eaba4988ae2a21622673f6e0f7) **由回测结果不难看出,前复权回测模式因为存在未来函数,结果是不准确的,使用前复权回测模式可能会让你获得非常高的收益,但实盘时,效果却非常一般;在某些策略中,如使用到价格因子,前复权模式会导致回测中买卖信号与实际中不一致,从而导致回测结果不准确,影响策略在真实场景中的应用。** 开启真实价格回测功能 其实很简单,只需一步即可搞定: 在initialize中使用set_option即可,如下所示: +``` + +def initialize(context): + set_option('use_real_price', True) +``` + +是否开启动态复权(真实价格)模式对模拟交易的影响 近来,很多用户反馈在模拟盘看到的有些股票价格与在炒股软件上看到的不一样,对此表示很疑惑。 这是因为在模拟交易中,在未开启动态复权(真实价格)模式时,我们是使用基于模拟交易创建日期的[**后复权**](http://baike.baidu.com/link?url=2BW9tBKYan9fZ9cWCoBTR-DQDMaIahEOwu26zCe1UfrMMflYDE05aZHX4Kxmii0XrOQrJ1fUHV7OPD6ZyrPnXK)价格。 后复权模式示意图如下图所示: ![enter image description here](https://image.joinquant.com/e7e990d4843ff92075e3455433982e03) 不开启真实价格模拟盘的运算结果是没有错误,只是会让您理解起来更费劲一些。 用户如果想知道今天的真实价格,还需知道模拟创建的日期,并进行复权计算。 为了让用户使用更便于理解、更真实的模拟系统,我们强烈建议您**开启动态复权(真实价格)模式**。开启方式:用户可在代码中调用`set_option('use_real_price', True)`. 开启动态复权(真实价格)模式示意图如下图所示: ![enter image description here](https://image.joinquant.com/de558a4acb2c52d45a2f9f9305f48875) **开启动态复权(真实)模式后,您看到的价格都是最新的,每到新的一天, 如果持仓中有股票发生了拆合或者分红或者其他可能影响复权因子的情形, 我们会根据复权因子自动调整股票的数量. 但不要跨日期缓存这些 API 返回的结果** ### 我们强烈建议您开启动态复权(真实价格)模式,进行模拟与回测! ### **注意:** 1. 开启真实价格回测之后,为了让编写代码简单, 通过history/attribute_history/get_price/SecurityUnitData.mavg/vwap 等 API 拿到的都是基于当天日期的前复权价格. 另一方面, 你在不同日期调用 history/attribute_history/get_price/SecurityUnitData.mavg/vwap 返回的价格可能是不一样的, 因为我们在不同日期看到的前复权价格是不一样的. **所以不要跨日期缓存这些 API 返回的结果**. 2. 每到新的一天, **如果持仓中有股票发生了拆合或者分红或者其他可能影响复权因子的情形, 我们会根据复权因子自动调整股票的数量, 如果调整后的数量是小数, 则向下取整到整数,** 最后为了保证context.portfolio.total_value不变, context.portfolio.available_cash可能有略微调整. ### 股息红利税的计算 + +真实的税率计算方式如下: + +- 分红派息的时候,不扣税; +- 等你卖出该只股票时,会根据你的股票持有时间(自你买进之日,算到你卖出之日的前一天,下同)超过一年的免税。2015年9月之前的政策是,满一年的收5%。现在执行的是,2015年9月份的新优惠政策:满一年的免税; +- 等你卖出股票时,你的持有时间在1个月以内(含1个月)的,补交红利的20%税款,券商会在你卖出股票当日清算时直接扣收; +- 等你卖出股票时,你的持有时间在1个月至1年间(含1年)的,补交红利的10%税款,券商直接扣; +- 分次买入的股票,一律按照“先进先出”原则,对应计算持股时间; +- 当日有买进卖出的(即所谓做盘中T+0),收盘后系统计算你当日净额,净额为买入,则记录为今日新买入。净额为卖出,则按照先进先出原则,算成你卖出了你最早买入的对应数量持股,并考虑是否扣税和税率问题。 + +在回测及模拟交易中,由于需要在分红当天将扣税后的分红现金发放到账户,因此无法准确计算用户的持仓时间(不知道股票卖出时间),我们的计算方式是,统一按照 20% 的税率计算的。 + +### 滑点 + +在实战交易中,往往最终成交价和预期价格有一定偏差,因此我们加入了滑点模式来帮助您更好地模拟真实市场的表现,可以使用[set_slippage](#set_slippage)设置滑点。 + +### 交易税费 + +交易税费包含券商手续费和印花税。您可以通过[set_order_cost](#set_order_cost)来设置具体的交易税费的参数。 + +##### 券商手续费 + +中国A股市场目前为双边收费,券商手续费系默认值为万分之三,即0.03%,最少5元。 + +##### 印花税 + +印花税对卖方单边征收,对买方不再征收,系统默认为千分之一,即0.1%。 + +### 风险指标 + +风险指标数据有利于您对策略进行一个客观的评价。 + +**注意**: 无论是回测还是模拟, 所有风险指标(年化收益/alpha/beta/sharpe/max_drawdown等指标)都只会**每天于17:00左右更新一次, 也只根据每天收盘后的收益计算, 并不考虑每天盘中的收益情况**. 例外: + +- 分钟和TICK模拟盘每分钟会更新策略收益和基准收益 +- 按天模拟盘每天开盘后和收盘后会更新策略收益和基准收益 +- 基准收益的计算起点取的是回测开始时间前一个交易日的收盘价 + +那么可能会造成这种现象: 模拟时收益曲线中有回撤, 但是 max_drawdown 可能为0. + +名称描述Total Returns策略收益TotalReturns=(Pend−Pstart)/Pstart∗100%Pend=策略最终股票和现金的总价值Pstart=策略开始股票和现金的总价值Total Annualized Returns策略年化收益TotalAnnualizedReturns=Rp=((1+P)250n−1)∗100%P=策略收益n=策略执行天数Alpha阿尔法 投资中面临着系统性风险(即Beta)和非系统性风险(即Alpha),Alpha是投资者获得与市场波动无关的回报。比如投资者获得了15%的回报,其基准获得了10%的回报,那么Alpha或者价值增值的部分就是5%。 Alpha=α=Rp−[Rf+βp(Rm−Rf)]Rp=策略年化收益率Rm=基准年化收益率Rf=无风险利率(默认0.04)βp=策略beta值 Alpha值 | 解释 --------|-------- α>0|策略相对于风险,获得了超额收益 α=0|策略相对于风险,获得了适当收益 α<0|策略相对于风险,获得了较少收益 Beta贝塔 表示投资的系统性风险,反映了策略对大盘变化的敏感性。例如一个策略的Beta为1.5,则大盘涨1%的时候,策略可能涨1.5%,反之亦然;如果一个策略的Beta为-1.5,说明大盘涨1%的时候,策略可能跌1.5%,反之亦然。 Beta=βp=Cov(Dp,Dm)Var(Dm)Dp=策略每日收益Dm=基准每日收益Cov(Dp,Dm)=策略每日收益与基准每日收益的协方差Var(Dm)=基准每日收益的方差 Beta值 | 解释 --------|-------- β<0|投资组合和基准的走向通常反方向,如空头头寸类 β=0|投资组合和基准的走向没有相关性,如固定收益类 0<β<1|投资组合和基准的走向相同,但是比基准的移动幅度更小 β=1|投资组合和基准的走向相同,并且和基准的移动幅度贴近 β>1|投资组合和基准的走向相同,但是比基准的移动幅度更大 Sharpe夏普比率 表示每承受一单位总风险,会产生多少的超额报酬,可以同时对策略的收益与风险进行综合考虑。 SharpeRatio=Rp−RfσpRp=策略年化收益率Rf=无风险利率(默认0.04)σp=策略收益波动率Sortino索提诺比率 表示每承担一单位的下行风险,将会获得多少超额回报。 SortinoRatio=Rp−RfσpdRp=策略年化收益率Rf=无风险利率(默认0.04)σpd=策略下行波动率Information Ratio信息比率 衡量单位超额风险带来的超额收益。信息比率越大,说明该策略单位跟踪误差所获得的超额收益越高,因此,信息比率较大的策略的表现要优于信息比率较低的基准。合理的投资目标应该是在承担适度风险下,尽可能追求高信息比率。 InformationRatio=Rp−RmσtRp=策略年化收益率Rm=基准年化收益率σt=策略与基准每日收益差值的年化标准差Algorithm Volatility策略波动率 用来测量策略的风险性,波动越大代表策略风险越高。 AlgorithmVolatility=σp=√250n−1n∑i=1(rp−¯rp)2rp=策略每日收益率¯rp=策略每日收益率的平均值=1nn∑i=1rpin=策略执行天数Benchmark Volatility基准波动率 用来测量基准的风险性,波动越大代表基准风险越高。 BenchmarkVolatility=σm=√250n−1n∑i=1(rm−¯rm)2rm=基准每日收益率¯rm=基准每日收益率的平均值=1nn∑i=1rmin=基准执行天数Max Drawdown最大回撤 描述策略可能出现的最糟糕的情况,最极端可能的亏损情况。 MaxDrawdown=Max((Px−Py)/Px)Px,Py=策略某日股票和现金的总价值,y>xDownside Risk下行波动率 策略收益下行波动率。和普通收益波动率相比,下行标准差区分了好的和坏的波动。 DownsideRisk=σpd=√250nn∑i=1(rp−¯rpi)2f(t)rp=策略每日收益率¯rpi=策略至第i日平均收益率=1ii∑j=1rjn=策略执行天数f(t)=1ifrp<¯rpif(t)=0ifrp>=¯rpi胜率胜率(%) 盈利次数在总交易次数中的占比(每次卖出记为一次交易)。 胜率=盈利交易次数总交易次数日胜率日胜率(%) 策略盈利超过基准盈利的天数在总交易数中的占比。 日胜率=当日策略收益跑赢当日基准收益的天数总交易日数盈亏比盈亏比 周期盈利亏损的比例(每次卖出记为一次交易)。 盈亏比=总盈利额总亏损额AEI日均超额收益 衡量策略产生的超额收益的总体情况。 AEI=n∑i=1(EIi−EIi−1)/n 其中EI为超额收益。 EI=策略收益+100%基准收益+100%−100%超额收益最大回撤超额收益最大回撤 描述策略可能出现的跑输基准的最糟糕情况。 EIMaxDrawdown=Max(EIx−EIy)/EIx 其中EI为超额收益。 EI=策略收益+100%基准收益+100%−100%超额收益夏普比率超额收益夏普比率 表示每承受一单位总风险,策略相对于基准会产生多少的超额报酬,可以同时对策略的收益与风险进行综合考虑。 EISharpeRatio=RpEI−RfσpEIRp=年化超额收益率Rf=无风险利率(默认0.04)σpEI=超额收益波动率超额收益除法版超额收益率说明 由于投资的资产变动是有复利效应的,所以净值的变动是符合几何增长过程的,在这种情况中,最自然的“减法”不是减法,而是除法,所以一个更合理的超额收益算法是: 策略收益+100%基准收益+100%−100% 先看一眼这条线的效果,第一印象就可以发现它和策略线分开了,不是继续黏在一起。 ![3.png](https://image.joinquant.com/bedfd19ba1c6dffb277f74fa176ecc7c) 回到上面的例子,假如在时间T时策略的净值S是基准B的十倍,那么超额收益线就是: SB−100%=900% 假设在从 T 之后的一年里,策略涨幅 2% 并且基准涨幅 10%,那么,一年之后的超额收益线是: S∗1.02B∗1.10−100%=1000%∗92.7%−100%=827% 低于了之前的 900%,它表明了在这一年里策略跑输了基准。跑输了多少呢?算一下 827%+100%900%+100%=S∗1.02B∗1.10∗BS=1.021.10=92.7% 告诉我们如果我们在时间T的时候用一块钱策略和一块钱基准一起跑(注意这很重要,不是十块钱策略对一块钱基准),那么在一年之后策略的净值只有基准的 92.7%。 使用除法产生的超额收益线上任意两点的数值都可以进行上面的计算,当然这里要展示的并不是教大家如何去算这个数,而是要让大家明白,**只要除法版的超额收益线发生了回撤,就说明在这段时间里策略跑输了基准,而只要超额收益上涨了,就说明策略跑赢了基准**,我们不需要再改时间重新回测就可以知道这个信息了。 举一个可以看出效果的例子,看下图标为 1 和 2 的部分: ![4.png](https://image.joinquant.com/453d3f78415b17b4e9c7bc74204d7adc) - 在 1 的地方,策略和基准都涨了。谁涨的多?看黄线下跌了,所以是基准涨的多。 - 在 2 的地方策略和基准都跌了。谁跌的多?看黄线又是下跌了,所以是策略跌的多。 - 在 1 和 2 哪个地方策略输于基准更厉害?在1的地方黄线挖了一个坑,而在 2 的地方黄线下降并不多,所以虽然看起来2的地方策略跌得很厉害,但其实1的那段输于基准更多。 除此之外,我们知道回测在14年7月4号的超额收益指标是 150% 左右,并且在16年6月24号是接近 200%,并且根据这条黄线的形状,我们可以判断出:如果我从14年7月4号开始运行这个策略,它会在很长一段时间里跑输基准,然后在红色竖线的地方追平,最后在16年6月24号的地方净值大于基准;我们甚至不需要知道策略和基准的收益曲线都可以做出这个判断。 对数轴对数轴说明 除法版超额收益线解决了多个时间序列在截面上比对的问题,但是同一序列在不同时间的对比还存在着问题。什么问题呢?就是我们没法看清策略在两个不同时间段的涨跌幅的区别。再回顾之前的一个回测的话, ![5.png](https://image.joinquant.com/11520ee05b4140738f83a5db07a01d63) 要不是图上标出了最大回撤的位置,我们肯定目测不出最大回撤的位置。这是因为08年的时候策略净值还相对小,回撤个80%所损失的钱也不是那么多;而15年的时候净值是之前的几十倍,就算回撤20%损失也比之前回撤80%的损失多,所以在图上根本对比不出来。再者说,基准线呢?根本都看不见了啊。 和之前一样,这是由于策略净值有着复合增长效应,导致净值上很难表现出很多的信息。这里的解决办法就是把竖轴做一个变换,改成对数轴。 在对数轴的图上,策略(或者基准)在时间T时显示的高度是: log(在时间T的净值) 就像我们之前从减法改成用除法一样,对数log可以把乘法变加法,把除法变减法, log(x∗y)=log(x)+log(y)log(x/y)=log(x)−log(y) 这样,在对数轴的图上,涨跌幅的倍数就不再是乘除关系而是加法关系,这样回测图上就能看出更丰富的信息了。 **举例来说**,策略在时间T的时候净值是 S,在 T+1 时是 2S,在 T+2 时是 4S,也就是说在每个时间段都翻了一倍。那么在普通轴上我们可以看出 T+1 的净值比 T 的净值高很多,但是 T+2 的净值比 T+1 高出更多,然而哪个是阶段的涨幅更大却很难看出。如果改用对数轴,那么在 T 时对数轴上高度是 log(S);在 T+1 时是 log(2S)=log(2)+log(S);在 T+2 时是 log(4S)=2log(2)+log(S)。这三个数构成一个等差数列,也就是说在对数轴上它们相互之间的距离是一样的,很容易通过目测看出每个时间段的涨跌幅是一样的。 再举个最大回撤的例子。假设一策略在 08 年高峰时的净值是 S,并且在随后的股灾中回撤 80%,即损失 0.8S;它在 15 年高峰时净值有之前的五十倍,50S,并在股灾中回撤 50%,即 25S。在普通轴上我们根本不可能目测出哪个回撤更大,但如果换到对数轴上,在08年高峰和低点的对数值分别是 log(S) 和 log(S/5)=log(S)−log(5),那么对数轴上的回撤是 log(5);在15年高峰和低点的对数值分别是 log(50S) 和 log(25S)=log(50S/2)=log(50S)−log(2),在对数轴上的回撤是 log(2)。由于 log(5)>log(2),我们可以很明显地看出 08 年的回撤大于 16 年。 除此之外,策略和基准在同一时间段中的对比也更简单了。假设基准在一段时间里翻了一倍,策略只涨了 50%,那么如果策略净值太大的话我们在普通轴上根本看不出基准有什么变动。在上边我们提到可以根据除法版超额收益的回撤来观测,而另一个方法就是在对数轴上看:在这段时间里基准在对数轴上上升了log(2) 个单位,而基准只上升了 log(1.5) 个单位,很直观,上升多的那个就是赢了。 ![6.png](https://image.joinquant.com/07bfeb28dc2c4cfaaa982f9af0c525fc) 我们把之前的回测放到对数轴上,净值规模造成的问题荡然无存。08 年回撤巨大,在图上清晰可见。相比之下,16 年的股灾(标注 3 的地方)虽然净值损失很多,但是实际上回撤比 08 年温柔很多,同时凭目测可以看出标注2的阴跌部分回撤和 16 年股灾中差不多。 对数轴上的超额收益对数轴上的超额收益的计算方法 对数轴上的超额收益的计算方法为: log(策略净值基准净值)=log(策略净值)−log(基准净值) 也就是说,普通轴上的除法版超额收益可以很方便地移植到对数轴上,只要取一个 log 就好。这条曲线集成了上面说过的所有优点。首先,由于log函数是单调的(x小于y的话就有log(x)小于log(y)),那么只要超额收益线在对数轴上上升或下降,就说明它在普通轴上同样也上升或下降,于是可以看出策略在这段时间里是跑赢还是跑输了大盘。另外,在对数轴上,净值的规模效应也被消除了。举例来说,在时间T的时候策略净值 S,基准净值 B,一年之后变动为 3S 和 2B,再假设在多年后的某个时间点策略和基准的净值分别是 10S 和 B,一年后变成 30S 和 2B。在这两个一年期里都是策略翻两倍基准翻一倍,实际上是一样的涨跌幅。在基准轴上超额收益分别是从 S/B-100% 变到3S/2B-100%以及从 10S/B-100% 变到30S/2B-100%,由于净资产规模的影响,后者在图像上的变动是前者的 10 倍。但是如果改用对数轴,我们看到两个一年期内超额收益的对数分别是从 log(S/B) 变到 log(3/2)+log(S/B) 以及从 log(10S/B) 变到 log(3/2)+log(10S/B),都是得到了log(3/2) 的增长,反映了在这两个一年期里,策略相对于大盘的表现是一样的。 如何看一个策略是否有稳定的alpha收益?**最直观的方法莫过于看它在对数轴上的超额收益线了,如果那条线是稳定斜向向上的就对了。** ![7.png](https://image.joinquant.com/5e63f5f850cfd3b4ece524e6c7aef28e) 先看这个回测,它有着整体很高的超额收益,但是我们也发现了几个明显的黄线回撤,说明它在这些时段跑输大盘的地方。而下面这个策略虽然收益不如上面的高,但是超额收益高稳定得多,黄线看不出明显回撤说明它基本没有跑输大盘的时候。 ![8.png](https://image.joinquant.com/22c55425f87fc438d4ba8b826a64bb64) 进一步,我们也可以看出这个策略的超额收益都产生于哪些时候。在第一根红线之前超额收益超额收益斜率较大,说明超额收益很高;两根红线的之间的超额收益基本为零;第二根红线之后又开始有了超额收益,但远没有第一个阶段里高。策略什么时候强什么时候弱,哪些时段需要额外的分析研究,或者很多其他的重要信息,都在一条线上一目了然,这是一条不简单的线。 ### 回测环境 + +1. 回测引擎可在Python2.7与Python3.6上运行,默认使用Python3.6。我们将在未来逐步停止对Python2.7引擎的更新,强烈建议您使用Python3.6开发策略。 +2. 我们支持所有的Python标准库和部分常用第三方库, 具体请看: [研究和回测(模拟)中都支持哪些第三方Python库](https://www.joinquant.com/view/community/detail/0b6bcc1ada0ab018f2d7dc2a342cf4ca). 另外您可以把.py文件放在研究根目录, 回测中可以直接import, 具体请看: [自定义python库](#自定义python库) +3. 安全是平台的重中之重, 您的策略的运行也会受到一些限制, 具体请看: [安全](#安全) + +### 回测过程 + +1. 准备好您的策略, 选择要操作的股票池, 实现handle_data函数 +2. 选定一个回测开始和结束日期, 选择初始资金、调仓间隔(每天还是每分钟), 开始回测 +3. 引擎根据您选择的股票池和日期, 取得股票数据, 然后每一天或者每一分钟调用一次您的handle_data函数, 同时告诉您现金、持仓情况和股票在上一天或者分钟的数据. 在此函数中, 您还可以调用函数获取任何多天的历史数据, 然后做出调仓决定. +4. 当您下单后, 我们会根据接下来时间的实际交易情况, 处理您的订单. 具体细节参见[订单处理](#订单处理) +5. 下单后您可以调用get_open_orders取得所有未完成的订单, 调用cancel_order取消订单 +6. 您可以在handle_data里面调用record()函数记录某些数据, 我们会以图表的方式显示在回测结果页面 +7. 您可以在任何时候调用log.info/debug/warn/error函数来打印一些日志 +8. 回测结束后我们会画出您的收益和基准(参见[set_benchmark](#set_benchmark))收益的曲线, 列出每日持仓,每日交易和一系列风险数据。 + +### 模拟盘注意事项 + +- 模拟交易是根据回测的策略创建的,因此需要先回测,再创建模拟交易,[如何创建模拟交易?](https://www.joinquant.com/help/api/help?name=faq#%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E6%A8%A1%E6%8B%9F%E4%BA%A4%E6%98%93%EF%BC%9F) +- 模拟盘有10s系统延迟, 日志中的时间并非实际时间而是逻辑时间(同回测) ,如需获取实际时间请print(datetime.datetime.now()) +- 模拟盘进程启动时,可能存在两三分钟内的延迟 +- 为了避免以不合理的价格对标的进行下单,模拟盘在下单时会检查开盘(例如股票为9:25)到下单时刻的累积成交量,若为0则会拒绝,提示:WARNING - 该标的截至到目前成交量为0 ,暂时无法成交。 +- 模拟盘中因尽量避免在距离开盘时间较早的时间点进行下单, 比如9点以前对股票下单,可能导致当时还没有拿到涨跌停价而产生比较异常的委托甚至委托失败。 +- 在日级模拟中使用时,使用handle_data或者run_daily中time='9:30',策略的实际运行时间是9:27~9:30之间;股指期货在9:27~9:30之间有可能没有产生集合竞价,会出现9:30下单提示**该标的截至到目前成交量为0**,可以忽略或者在9:31及之后运行; +- 模拟盘在每天运行结束后会保存状态, 结束进程(相当于休眠). 然后在第二天恢复. +- 进程结束时会保存这些状态: + +- 用户账户, 持仓 +- 使用 pickle 保存 [g](#g) 对象. 注意 + +- g 中以 '__' 开头的变量将被忽略, 不会被保存 +- g 中不能序列化的变量不会被保存, 重启后会不存在. 如果你写了如下的代码: + +``` + +def initialize(context): + g.query = query(valuation) +``` + +- [g](#g) 将不能被保存, 因为 query() 返回的对象并不能被持久化. 重启后也不会再执行 [initialize](#initialize), 使用 g.query 将会抛出 AttributeError 异常。正确的做法是, 在 [process_initialize](#process_initialize) 中初始化它, 并且名字以 '__' 开头. + +``` + +def process_initialize(context): + g.__query = query(valuation) +``` + +- 注意: 涉及到IO(打开的文件, 网络连接, 数据库连接)的对象是不能被序列化的: + +- `query(valuation)` : 数据库连接 +- `open("some/path")` : 打开的文件 +- `requests.get('')` : 网络连接 +- 使用 pickle保存 [context](#Context) 对象, 处理方式跟 [g](#g) 一样 +- 为了防止恶意攻击, 序列化之后的状态大小不能超过 30M, 如果超出将在保存状态时运行失败. 当超过 20M 时日志中会有警告提示, 请注意日志. +- 恢复过程是这样的: + +1. 加载策略代码, 因为python是动态语言, 编译即运行, 所以全局的(在函数外写的)代码会被执行一遍. +2. 使用保存的状态恢复 [g](#g), [context](#Context), 和函数外定义的全局变量. +3. 如果策略代码和上一次运行时发生了修改,而且代码中定义了 after_code_changed 函数,则会运行 after_code_changed(#after_code_changed) 函数。 +4. 执行 [process_initialize](#process_initialize), 每次启动时都会执行这个函数. +- 重启后不再执行 [initialize](#initialize) 函数, [initialize](#initialize) 函数在整个模拟盘的生命周期中只执行一次. 即使是更改回测后, [initialize](#initialize) 也不会执行. +- 模拟盘更改回测之后上述的全局变量(包括 g 和 context 中保存的)不会丢失. 新代码中 [initialize](#initialize) 不会执行. 如果需要修改原来的值, 可以在 [after_code_changed](#after_code_changed) 函数里面修改, 比如, 原来代码是: 代码改成: 执行时, g.stock 仍然是 '000001.XSHE', 要修改他们的值, 必须定义 [after_code_changed](#after_code_changed): + +``` + +def initialize(context): + g.stock = '000001.XSHE' +``` + +``` + +def initialize(context): + g.stock = '000002.XSHE' +``` + +``` + +def after_code_changed(context): + g.stock = '000002.XSHE' +``` + +- 创建模拟交易时, 如果选择的日期是今天, 则从今天当前时间点开始运行, 应该在当前时间点之前运行的函数不再运行. 比如: 今天10:00创建了**按天**的模拟交易, 选择日期是今天, 代码中实现了 handle_data 和 after_trading_end, 则 handle_data 今天不运行, 而 after_trading_end 会在 15:30 运行 +- 当模拟交易在A时间点失败后, 然后在B时间点"重跑", 那么 A-B 之间的时间点应该运行的函数不再运行 +- 因为模拟盘资源有限, 为了防止用户创建之后长期搁置浪费资源, 我们做出如下限制: 如果满足下面条件, 则暂缓运行: 当用户重新使用网站后, 第二天会继续运行(会把之前的交易日执行一遍, 并不会跳过日期) + +- 延时模拟盘 , 所有者在最近一个月内没有访问过聚宽网站 +- 实时模拟盘 , 所有者在最近三个月内没有访问过聚宽网站 +- 由于模拟盘资源有限及防止恶意攻击, 我们设置:(1)模拟交易序列化之后的状态大小不能超过 30M;(2)每个函数运行时间不能超过1800s;(3)进程占用内存不能超过3G。如果日志中出现这样的提示或者模拟交易因此提示而失败的话,请优化策略,具体的参考[常见Bug或者警告解决方法](https://www.joinquant.com/view/community/detail/14050)。 +- 强烈建议模拟盘使用真实价格成交, 即调用 `set_option('use_real_price', True)`. [更多细节](#use_real_price) +- [模拟交易替换代码参考教程](https://www.joinquant.com/view/community/detail/0fd4ee9e029c205c4beb48547c582f00?type=1) +- 替换代码时,版本模拟交易和回测的版本需要对应,python2(python3)版本的模拟交易不能使用python3(python2)版本的回测替换 + +### 模拟交易和回测的差别 + +比较的前提是策略、起始资金、时间区间及频率等完全一致。模拟交易现在和回测还是有些微小的差别, 具体原因如下: + +- 策略运行的环境如果不相同的话,可能导致不同,例如Python2和Python3,聚宽官网和一创聚宽; +- 策略中有随机因素,例如:使用随机数、不稳定的排序、遍历 dict中的元素等; +- 回测的策略使用了未来数据,例如开盘前获取当天的收盘价、财务数据、技术指标等; +- 替换代码:回测不支持替换代码,模拟交易中间替换了代码,回测使用替换后的代码,导致策略不一致; +- 暂停及重启策略:回测中不支持暂停,模拟交易可以暂停策略,暂停期间策略不运行; +- 回测只有一个进程,但模拟盘会在每天结束后关闭,次日再重启,涉及全局变量的持久化保存问题,请规范使用全局变量,具体见策略API介绍-对象-全局变量对象g部分。 + +### 期货交割日 + +期货持仓到交割日,没有手动交割,系统会以当天结算价平仓, 没有手续费, 不会有交易记录. + +### 还券细则 + +- T+1, 当日融的券当日不能还 +- 还券时要扣除利息 +- 直接还券时, 可以使用当日买入的券还(不受T+1限制), 且优先使用当日买入的券还 + +### 投资组合优化器 + +**投资组合优化**是指应用概率论与数理统计、最优化方法以及线性代数等相关数学理论方法,根据既定目标收益和风险容许程度(例如最大化收益,最小化风险,风险平价等),将投资重新组合,分散风险的过程,它体现了投资者的意愿和投资者所受到的约束,即在一定风险水平下收益最大化或一定收益水平下的风险最小化。 + +投资组合管理者在设定了投资收益预期、风险预算、相关约束和风险模型之后, 依托优化器的快速计算优势,得到资产配置最优化结果。 + +由于不同的约束条件、目标函数,会形成不同的优化器,优化器的处理结果依赖用户输入的相关信息,因此投资者对收益率的预期和风险模型本身估计的准确性,都会影响最终的分析结果,再考虑到交易成本等各类因素的影响,所以从用户使用上而言, 没有绝对意义上最好的优化器。对于资产组合优化问题, 我们可以通过使用优化器,进行一个较长时间的回测,测试整个投资过程,在所有组合输入一致的情况下通过策略的绩效对比来看哪一个优化器有更好的表现, 或者更符合自己的需求。 + +组合优化器支持对股票、基金进行投资优化,支持如下优化模型: + +- MinVariance - 组合风险最小化(均值-方差优化) +- MaxProfit - 组合收益最大化 +- MaxSharpeRatio - 组合夏普比率最大化 +- MinTrackingError - 追踪误差最小化 +- RiskParity - 风险平价 +- MaxScore - 组合标的打分最大化 +- MinScore - 组合标的打分最小化 +- MaxFactorValue - 因子值最大化 +- MinFactorValue - 因子值最小化 +- 自定义约束条件的优化模型 + +对使用优化器的投资组合管理者来说,只需根据收益预期、风险预算,选择恰当的优化模型,并设定相关的约束限制条件。优化器程序可以基于选定的优化模型,输出优化后的投资权重调整建议。我们会对投资组合优化器的进行持续创新与改进。 + +#### 示例 + +下面选出上证50成分股的一部分与选定的ETF基金进行组合构成股票池,设定不同的投资组合优化约束条件,并进行回测,测试投资组合优化器对整个投资的影响。 + +- **模型1:等权重配置** + +- **模型2:组合风险平价;股票的总权重限制为0到90%,ETF的总权重限制为0到10%;每只标的权重不超过10%** + +- **模型3:组合风险最小化(最小化组合方差);组合总权重限制为90%到100%;组合年化收益率目标下限为10%** + +- **模型4:'人气指标5日均值'最大化;组合年化收益率目标下限为10%;每只标的权重不超过20%** + +- **模型5:组合夏普比率最大化;每只标的权重不超过10%** + +回测代码如下, 优化函数API详情见 [portfolio_optimizer - 投资组合优化](https://www.joinquant.com/help/api/help#name:optimizer): + +``` + +# 导入函数库 +import pandas as pd +from jqdata import * +from jqfactor import Factor +from jqlib.optimizer import * + +# 初始化函数,设定基准等等 +def initialize(context): + # 设定沪深300作为基准 + set_benchmark('000300.XSHG') + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + + # 过滤掉order系列API产生的比error级别低的log + # log.set_level('order', 'error') + + ### 股票相关设定 ### + # 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱 + set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, + min_commission=5), type='stock') + + # 优化器设置 + g.optimizer = 2 #设定使用的优化模型 + optimize_model = { + 1:"模型1:等权重配置", + 2:"模型2:组合风险平价;股票的总权重限制为0到90%,ETF的总权重限制为0到10%;每只标的权重不超过10%", + 3:"模型3:组合风险最小化(最小化组合方差);组合总权重限制为90%到100%;组合年化收益率目标下限为10%", + 4:"模型4:'人气指标5日均值'最大化;组合年化收益率目标下限为10%;每只标的权重不超过20%", + 5:"模型5:组合夏普比率最大化;每只标的权重不超过10%" + } + print("优化%s"%(optimize_model[g.optimizer])) + + ## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的) + # 开盘前运行 + run_monthly(before_market_open, monthday=1, time='9:00', reference_security='000300.XSHG') + # 开盘运行 + run_monthly(market_open, monthday=1, time='9:30', reference_security='000300.XSHG') + +## 开盘前运行函数 +def before_market_open(context): + print('调仓日期:%s'%context.current_dt.date()) + + # 选出上证50成分股的一部分与选定的ETF基金进行组合,构成股票池。 + etf = [ + '159902.XSHE', + '159903.XSHE', + '510050.XSHG', + '510880.XSHG', + '510440.XSHG', + ] + g.buy_list = list(get_index_stocks('000016.XSHG')[-15:]) + etf + +## 开盘时运行函数 +def market_open(context): + # 将不在股票池中的股票卖出 + sell_list = set(context.portfolio.positions.keys()) - set(g.buy_list) + for stock in sell_list: + order_target_value(stock, 0) + + # 组合优化模型 + if g.optimizer == 1: + # 模型1:等权重配置 + optimized_weight = pd.Series(data=[1.0/len(g.buy_list)]*len(g.buy_list), + index=g.buy_list) + elif g.optimizer == 2: + # 模型2:组合风险平价;股票的总权重限制为0到90%,ETF的总权重限制为0到10%;每只标的权重不超过10% + optimized_weight = portfolio_optimizer(date=context.previous_date, + securities = g.buy_list, + target = RiskParity(count=250, risk_budget=None),# risk_budget 为 None默认为每只股票贡献相等 + constraints = [MarketConstraint('stock', low=0.0, high=0.9), + MarketConstraint('etf', low=0.0, high=0.1)], + bounds=[Bound(0, 0.1)], + default_port_weight_range=[0., 1.0], + ftol=1e-09, + return_none_if_fail=True) + elif g.optimizer == 3: + # 模型3:组合风险最小化(最小化组合方差);组合总权重限制为90%到100%;组合年化收益率目标下限为10% + optimized_weight = portfolio_optimizer(date=context.previous_date, + securities = g.buy_list, + target = MinVariance(count=250), + constraints = [WeightConstraint(low=0.9, high=1.0), + AnnualProfitConstraint(limit=0.1, count=250)], + bounds=[], + default_port_weight_range=[0., 1.0], + ftol=1e-09, + return_none_if_fail=True) + elif g.optimizer == 4: + # 模型4:组合标的因子值最大化 + + # 定义因子:人气指标5日均值 + class AR(Factor): + name = 'ar' + # 每天获取过去五日的数据 + max_window = 5 + # 获取的数据是人气指标 + dependencies = ['AR'] + def calc(self, data): + return data['AR'].mean() + # 模型4:'人气指标5日均值'最大化;组合年化收益率目标下限为10%;每只标的权重不超过20% + optimized_weight = portfolio_optimizer(date=context.previous_date, + securities = g.buy_list, + target = MaxFactorValue(factor=AR, count=1), + constraints = [AnnualProfitConstraint(limit=0.2, count=250)], + bounds=[Bound(0, 0.2)], + default_port_weight_range=[0., 1.0], + ftol=1e-09, + return_none_if_fail=True) + elif g.optimizer == 5: + # 模型5:组合夏普比率最大化;每只标的权重不超过10% + optimized_weight = portfolio_optimizer(date=context.previous_date, + securities = g.buy_list, + target = MaxSharpeRatio(rf=0.0,weight_sum_equal=0.5, count=250),#无风险利率为0,最大化夏普比率需要约束组合权重的和为0.5 + constraints = [], + bounds=[Bound(0, 0.1)], + default_port_weight_range=[0., 1.0], + ftol=1e-09, + return_none_if_fail=True) + + # 查看优化结果 + print(optimized_weight) + + # 优化失败,给予警告 + if type(optimized_weight) == type(None): + print('警告:组合优化失败') + # 按优化结果,执行调仓操作 + else: + total_value = context.portfolio.total_value # 获取总资产 + for stock in optimized_weight.keys(): + value = total_value * optimized_weight[stock] # 确定每个标的的权重 + order_target_value(stock, value) # 调整标的至目标权重 +``` + +## 策略程序架构♠ + +名称描述initialize 初始化函数 +``` + +initialize(context) +``` + + 初始化方法,在整个回测、模拟中最开始执行一次,用于初始一些全局变量 **参数** context: [Context](#Context)对象, 存放有当前的账户/股票持仓信息 **注意** 该函数只在开始模拟交易的时候运行一次, 直接替换/修改代码导致的初始化函数变动并不会在模拟盘中生效 , 应该使用after_code_changed等函数 **返回** None **示例** +``` + +def initialize(context): + # g为全局变量 + g.security = "000001.XSHE" +``` + +run_daily/run_weekly/run_monthly 定时运行策略(可选) - run_monthly - run_weekly - run_daily +``` + +def initialize(context): + ## func是您自己定义的函数 + # 按月运行 + run_monthly(func, monthday, time='9:30', reference_security, force=False) + # 按周运行 + run_weekly(func, weekday, time='9:30', reference_security, force=False) + # 每天内何时运行(没有force属性) + run_daily(func, time='9:30', reference_security) +``` + + **回测环境/模拟专用API** 指定每月, 每周或者每天要运行的函数, 可以在具体每月/周的第几个交易日(或者倒数第几天)的某一分钟执行。 在日级模拟中使用时,如果设置time='9:30',策略的实际运行时间是9:27~9:30之间。策略内获取到逻辑时间(context.current_dt)仍然是 9:30。 注意只有在使用相同的参照标的时,定时运行函数的优先级别为:run_monthly>run_weekly>run_daily且与函数被注册的顺序无关;handle_data与handle_tick的执行顺序与前述函数无关。用户策略不应该依赖于这些计划任务执行的顺序。 **调用这些函数后, handle_data可以不实现** **参数** 参数|解释 ---|--- func|一个自定义的函数, 此函数必须接受context参数;例如自定义函数名market_open(context) force|run_weekly和run_monthly中使用,**run_daily不可使用**;表示若注册回调函数的时间晚于第一次回调的执行时间是否就近执行;默认为True,**建议使用False** monthday|每月的第几个交易日, 可以是负数, 表示倒数第几个交易日。开始策略的那个月会运行的,开始这个月第几个交易日不是从当月第一天开始算的,而是从开始运行当天开始算的(举例说明:假设您策略是3月20号开始运行的,3月1号和3月20都是交易日,系统会认为3月20是3月的第一个交易日,4月不会受影响的)。force=True时如果超出每月总交易日个数,则取临近的交易日执行。force=False,若注册回调函数的时间晚于第一次回调的执行时间不会就近执行。(具体见下方注意中的示例) weekday|每周的第几个交易日, 可以是负数, 表示倒数第几个交易日。开始策略的那一周第一个交易日是从策略开始的那一天 计算的。force=True如果超出每周总交易日个数,则取临近的交易日执行;force=False,若注册回调函数的时间晚于第一次回调的执行时间不会就近执行。(具体见下方注意中的示例) time|具体执行时间,一个字符串格式的时间,有三种方式:(1) 24小时内的任意时间,例如"10:00", "01:00";在tick频率的策略中,可以精确到秒。指定为具体时间时,不可设置reference_security参数 (2)time="every_bar",只能在 run_daily 中调用,运行时间和您设置的频率(回测页面右上方设置)一致,按天会在交易日的开盘时调用一次,按分钟会在交易时间每分钟运行, tick级别不支持设置为every_bar 。(3) 'open' 或 'open+5m'或'open-10m' 这种形式,代表在reference_security对应标的开盘时间(或加减X分钟)运行一次,一般用于期货,因为期货有夜盘,开盘时间点不定。 reference_security|时间的参照标的代码,字符串类型,默认为‘000001.XSHG’。 如参照 '000001.XSHG',交易时间为 9:30\-15:00;如参照'IF9999.CCFX',2016-01-01之后的交易时间为 9:30\-15:00,在此之前为 9:15\-15:15;如参照'A9999.XDCE',因为有夜盘,因此开始时间为21:00,结束时间为15:00。期货策略一定要修改参考标的,建议修改为对应的主力合约。当time为具体时间时请勿设置此参数 **返回值** None **注意** - **一个策略中尽量不要同时使用run_daily和handle_data,更不能使用run_daily(handle_data, "xx:xx")** - 建议使用run_daily; - [【API解析】策略运行频率(附隔固定时间运行方法)](https://www.joinquant.com/view/community/detail/6797d703ee45325b51079374439b1ca5) - run_daily中的函数只能有一个参数context,具体示例如下: +``` + +def initialize(context): + run_daily(func, time='10:00') + +def func(context): + parm1 = 'JoinQuant' + func1(context, parm1) + +def func1(context, parm1): + print(parm1) + print(context.current_dt) + print('-'*50) +``` + + - **参数 func 必须是一个全局的函数, 不能是类的成员函数**, 示例: +``` + +def on_week_start(context): + pass + +class MyObject(object): + def on_week_start2(self, context): + pass + +def initialize(context): + # OK + run_weekly(on_week_start, 1) + # 错误, 下面的语句会报错 + run_weekly(MyObject().on_week_start2, 1) +``` + + - 通过[history](#history)/[attribute_history](#attribute_history)取天数据时, **是不包括当天的数据的**(即使在15:00和after_close里面也是如此), 要取得当天数据, 只能取分钟的 - 这些函数可以**重复调用**, 比如下面的代码可以在每周的第一个交易日和最后一个交易日分别调用两个函数: +``` + +def on_week_start(context): + pass +def on_week_end(context): + pass +def initialize(context): + run_weekly(on_week_start, 1) + run_weekly(on_week_end, -1) +``` + + - 每次调用这些函数都会产生一个新的定时任务, 如果想修改或者删除旧的定时任务, 请先调用 [unschedule_all](#unschedule_all) 来删除所有定时任务, 然后再添加新的. - 在一月/一周交易日数不够以致于monthday/weekday无法满足时, 我们会找这周内最近的一个日期来执行, 比如, 如果某一周只有4个交易日: - 若 weekday == 5, 我们会在第4个交易日执行 - 若 weekday == -5, 我们会在第1个交易日执行 如果要避免这样的行为, 您可以这样做: +``` + +def initialize(context): + run_weekly(weekly, 1) + +def weekly(context): + if context.current_dt.isoweekday() != 1: + # 不在周一, 跳过执行 + return +``` + + **示例** +``` + +def initialize(context): + run_weekly(market_open, weekday=2, force=False) + +def market_open(context): + print("今天是周内第二个交易日") #注意策略开始的那一周,第一个交易日是按策略开始的日期开始计算的 +``` + +``` + +def weekly(context): + print('weekly %s %s' % (context.current_dt, context.current_dt.isoweekday())) + +def monthly(context): + print('monthly %s %s' % (context.current_dt, context.current_dt.month)) + +def daily(context): + print('daily %s' % context.current_dt) + +def initialize(context): + + # 指定每月第一个交易日, 在开盘后十分钟执行 + # 注意策略开始的那一月,第一个交易日是按策略开始的日期开始计算的 + run_monthly(monthly, 1, '09:40') + + # 指定每周倒数第一个交易日, 在开盘前执行 + run_weekly(weekly, -1, '9:00') + + # 指定每天收盘前10分钟运行 + run_daily(daily, '14:50') + + # 指定每天收盘后执行 + run_daily(daily, '15:30') + + # 指定在每天的10:00运行 + run_daily(daily, '10:00') + + # 指定在每天的01:00运行 + run_daily(daily, '01:00') + + # 参照股指期货的时间每分钟运行一次, 必须选择分钟回测, 否则每天执行 + run_daily(daily, 'every_bar', reference_security='IF9999.CCFX') +``` + +handle_data 运行策略(可选) +``` + +handle_data(context, data) +``` + + 该函数每个单位时间会调用一次, 如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次 ,tick频率不支持这个函数。 **该函数依据的时间是股票的交易时间,即 9:30 - 15:00. 期货请使用[定时运行](#task_func)函数。** 该函数在回测中的非交易日是不会触发的(如回测结束日期为2016年1月5日,则程序在2016年1月1日-3日时,handle_data不会运行,4日继续运行)。 对于使用当日开盘价撮合的日级模拟盘,在9:25集合竞价完成时就可以获取到开盘价,出于减少并发运行模拟盘数量的目的,我们会提前到9:27~9:30之间运行, 策略内获取到逻辑时间(context.current_dt)仍然是 9:30。 **参数** context: [Context](#Context)对象, 存放有当前的账户/标的持仓信息 data: 一个字典(dict), key是股票代码, value是当时的[SecurityUnitData](#SecurityUnitData) 对象. 存放前一个单位时间(按天回测, 是前一天, 按分钟回测, 则是前一分钟) 的数据. **注意**: - 为了加速, data 里面的数据是按需获取的, 每次 handle_data 被调用时, data 是空的 dict, 当你使用 `data[security]` 时该 security 的数据才会被获取. - data 只在这一个时间点有效, 请不要存起来到下一个 handle_data 再用 - 注意, 要获取回测当天的开盘价/是否停牌/涨跌停价, 请使用 [get_current_data](#get_current_data) **返回** None **示例** +``` + +def handle_data(context, data): + order("000001.XSHE",100) +``` + +on_event 事件回调(可选) +``` + +on_event(context, event) +``` + + 用户在策略中定义on_event,在账户中持仓的标的发生对应的事件时on_event会被调用。建议用户使用isinstance对事件类型进行判断。 目前已支持的事件有: - DividendsEvent:分红送股事件 - ForcedLiquidationEvent:强行平仓事件 **参数** - context: [Context](#Context)对象, 存放有当前的账户/标的持仓信息 - event: 发生的事件,一个事件对象。详见[事件对象](#Event) **返回** None before_trading_start 开盘前运行策略(可选) +``` + +before_trading_start(context) +``` + + 该函数会在每天开始交易前被调用一次, 您可以在这里添加一些每天都要初始化的东西. **该函数依据的时间是股票的交易时间,即该函数启动时间为'09:00'. 期货请使用[定时运行](#task_func)函数,time 参数设定为'08:30' 。** **参数** context: [Context](#Context)对象, 存放有当前的账户/股票持仓信息 **返回** None **示例** +``` + +def before_trading_start(context): + log.info(str(context.current_dt)) +``` + +after_trading_end 收盘后运行策略(可选) +``` + +after_trading_end(context) +``` + + 该函数会在每天结束交易后被调用一次, 您可以在这里添加一些每天收盘后要执行的内容. 这个时候所有未完成的订单已经取消. **该函数依据的时间是股票的交易时间,即该函数启动时间为 15:30. 期货请使用[定时运行](#task_func)函数,time 参数设定为'15:30' 。** **参数** context: [Context](#Context)对象, 存放有当前的账户/股票持仓信息 **返回** None **示例** +``` + +def after_trading_end(context): + log.info(str(context.current_dt)) +``` + +on_strategy_end 策略运行结束时调用(可选) +``` + +def on_strategy_end(context) +``` + + 在回测、模拟交易正常结束时被调用, 失败时不会被调用。 在模拟交易到期结束时也会被调用, 手动在到期前关闭不会被调用。 **参数** context: [Context](#Context)对象, 存放有当前的账户/股票持仓信息 **返回** None **示例** +``` + +def on_strategy_end(context): + print('回测结束') +``` + +process_initialize 每次程序启动时运行函数(可选) +``` + +process_initialize(context) +``` + + 该函数会在每次模拟盘/回测进程重启时执行, 一般用来初始化一些**不能持久化保存**的内容. 在 [initialize](#initialize) 后执行. 因为模拟盘会每天重启(只在注册的定时运行时间点才会启动,任务结束后进程关闭), 所以这个函数会每天都执行. **参数** context: [Context](#Context)对象, 存放有当前的账户/股票持仓信息 **返回** None **示例** +``` + +def process_initialize(context): + # query 对象不能被 pickle 序列化, 所以不能持久保存, 所以每次进程重启时都给它初始化 + # 以两个下划线开始, 系统序列化 [g](#g) 时就会自动忽略这个变量, 更多信息, 请看 [g](#g) 和 [模拟盘注意事项](#simulation_matters) + g.__q = query(valuation) + +def handle_data(context, data): + get_fundamentals(g.__q) +``` + +after_code_changed 模拟交易更换代码后运行函数(可选) +``` + +after_code_changed(context) +``` + + 模拟盘在每天的交易时间结束后会休眠,第二天开盘时会恢复,如果在恢复时发现代码已经发生了修改,则会在恢复时执行这个函数。 具体的使用场景:可以利用这个函数修改一些模拟盘的数据。 注意: 因为一些原因, 执行回测时这个函数也会被执行一次, 在 [process_initialize](#process_initialize) 执行之前执行. **参数** context: [Context](#Context)对象, 存放有当前的账户/股票持仓信息 **返回** None **示例** +``` + +def after_code_changed(context): + g.stock = '000001.XSHE' +``` + +unschedule_all取消所有定时运行(可选) +``` + +# 取消所有定时运行 +unschedule_all() +``` + + **示例** +``` + +def after_code_changed(context): + # 取消所有定时运行 + unschedule_all() + # 设定新的定时运行函数,指定函数在每天的10:00运行 + run_daily(func, '10:00') +``` + +## 策略API介绍 + +### 注意事项 + +- 【取数据函数】【其它函数】目录中带有"♠" 标识的API是 `"回测环境/模拟"`专用的API,**不能在研究模块中调用**。整个 【jqdata 模块】在研究环境与回测环境下都可以使用. +- 所有价格单位是元 +- 时间表示: + +- 所有时间都是北京时间, 时区:UTC+8 +- 所有时间都是[datetime.datetime](https://docs.python.org/2/library/datetime.html#datetime.date)对象 +- 每个交易日结束时自动撤销所有未完成订单, 例如A股是在17:00之后。 +- 下文中提到 Context, SecurityUnitData, Portfolio, Position, Order 对象都是只读的, 尝试修改他们会报错或者无效. +- 没有python基础的同学请注意, 有的函数的定义中, 某些参数是有值的, 这个值是参数的默认值, 这个参数是可选的, 可以不传. +- 回测和模拟中,每日下单的最大数量为10000笔 + +如需使用**策略组合或分仓操作**,请看[策略组合操作](#fencang). + +### 策略设置函数 + +名称描述set_benchmark 设置基准 +``` + +set_benchmark(security) +``` + + 默认我们选定了沪深300指数的每日价格作为判断您策略好坏和一系列风险值计算的基准. 您也可以使用set_benchmark指定其他股票/指数/ETF/自定义组合的价格作为基准。 如果在期货策略中不希望看到基准,可以这样设置:set_benchmark({"000001.XSHG":0}),策略可以正常运行 (但无法计算alpha等收益)。 **参数** - security:股票/指数/ETF代码,或者一个dict,key为股票/指数/ETF代码,value为小于1的浮点数,代表对应标的的权重,权重之和必须小于等于1(小于1代表基准中部分资金闲置)。 **返回** None **示例一** +``` + +set_benchmark('600000.XSHG') +``` + + **示例二,设置自定义组合为基准** +``` + +set_benchmark({'000001.XSHG':0.5,'000300.XSHG':0.3,'600000.XSHG':0.2}) +``` + +set_order_cost 设置佣金/印花税 +``` + +set_order_cost(cost, type, ref=None) +``` + + 指定每笔交易要收取的手续费, 系统会根据用户指定的费率计算每笔交易的手续费 **参数** - cost: OrderCost 对象 - open_tax,买入时印花税 (只股票类标的收取,基金与期货不收) - close_tax,卖出时印花税 (只股票类标的收取,基金与期货不收) - open_commission,买入时佣金 - close_commission, 卖出时佣金 - close_today_commission, 平今仓佣金 - min_commission, 最低佣金,不包含印花税 - type: 股票、场内基金、场内交易的货币基金、分级A基金、分级B基金、分级母基金、金融期货、期货、债券基金、股票基金、QDII 基金、混合基金,'stock'/ 'fund' / 'mmf' /'fja'/'fjb'/ 'fjm'/ 'index_futures' / 'futures' / 'bond_fund' / 'stock_fund' / 'QDII_fund' / / ‘mixture_fund' / - ref: 参考代码,支持股票代码/基金代码/期货合约代码,以及期货的品种,如 '000001.XSHE'/'510180.XSHG'/'IF1709'/'IF'/'000300.OF' **注意:针对特定的交易品种类别设置手续费时,必须将ref设为None;若针对特定的交易品种或者标的,需要将type设置为对应的交易品种类别,将ref设置为对应的交易品种或者标的** **默认与示例** +``` + +# 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱 +set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=0.0003, close_commission=0.0003, close_today_commission=0, min_commission=5), type='stock') + +# 期货类每笔交易时的手续费是:买入时万分之0.23,卖出时万分之0.23,平今仓为万分之23 +set_order_cost(OrderCost(open_tax=0, close_tax=0, open_commission=0.000023, close_commission=0.000023, close_today_commission=0.0023, min_commission=0), type='index_futures') + +# 单独设置 000300.XSHG 的费用 +set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=0.0003, close_commission=0.0003, close_today_commission=0, min_commission=5), type='stock', ref='000300.XSHG') + +# 设置所有期货(包括金融指数期货)的费用 +set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=0.0003, close_commission=0.0003, close_today_commission=0, min_commission=5), type='futures') + +# 对 IF/IH/IC 三个品种有效 +set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=0.0003, close_commission=0.0003, close_today_commission=0, min_commission=5), type='index_futures') + +# 单独设置AU期货品种的费用 +set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=0.0003, close_commission=0.0003, close_today_commission=0, min_commission=5), type='futures', ref='AU') + +# 单独设置AU1709合约的费用 +set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=0.0003, close_commission=0.0003, close_today_commission=0, min_commission=5), type='futures', ref='AU1709') +``` + + **注:期货持仓到交割日会以当天结算价平仓, 没有手续费, 不会有交易记录.** set_slippage 设置滑点 +``` + +set_slippage(object,type=None, ref=None) +``` + + 设定滑点,回测/模拟时有效. 当您下单后, 真实的成交价格与下单时预期的价格总会有一定偏差, 因此我们加入了滑点模式来帮您更好的模拟真实市场的表现. 我们也支持为交易品种和特定的交易标的设置滑点。 **参数** - type:交易品种,支持股票、基金、金融期货、期货、债券基金、股票基金、QDII 基金、货币基金、混合基金,'stock'/ 'fund' / 'index_futures' (金融期货)/ 'futures'(包含股指期货和商品期货) / 'bond_fund' / 'stock_fund' / 'QDII_fund' / 'money_market_fund' / ‘mixture_fund' 。为None时则应用于全局。当type被设定而ref为None时,表示将滑点应用于交易品种为type的所有交易标的。 - ref: 标的代码。如要为特定交易标的单独设置滑点,必须同时设置type为交易标的的交易品种。 **固定滑点** 当您使用固定滑点的时候, 我们认为您的落单的多少并不会影响您最后的成交价格. 您只需要指定一个价差, 当您下达一个买单指令的时候, 成交的价格等于当时(您执行order函数所在的单位时间)的平均价格加上价差的一半;当您下达一个卖出指令的时候,卖出的价格等于当时的平均价格减去价差的一半. 价差可以设定为一个固定值或者按照百分比设定。 - 固定值: 这个价差可以是一个固定的值(比如0.02元, 交易时加减0.01元), 设定方式为:FixedSlippage(0.02) - 百分比: 这个价差可以是是当时价格的一个百分比(比如0.2%, 交易时加减当时价格的0.1%), 设定方式为:PriceRelatedSlippage(0.002) - 跳数(期货专用,双边): 这个价差可以是合约的价格变动单位(跳数),比如2跳,设定方式为: StepRelatedSlippage(2);滑点为小数时,向下取整,例如设置为3跳,单边1.5,向下取整为1跳。 +``` + +# 为全部交易品种设定固定值滑点 +set_slippage(FixedSlippage(0.02)) + +# 为股票设定滑点为百分比滑点 +set_slippage(PriceRelatedSlippage(0.00246),type='stock') + +# 设置CU品种的滑点为跳数滑点2 +set_slippage(StepRelatedSlippage(2),type='futures',ref = 'CU') + +# 为螺纹钢RB1809设定滑点为跳数滑点(注意只是这一个合约,不是所有的RB合约) +set_slippage(StepRelatedSlippage(2),type='futures', ref="RB1809.XSGE") +# StepRelatedSlippage(2)表示开平的单边滑点为1个价格最小单位,螺纹钢价格最小变动单位为1元/吨 +# 如果以市价单进行开多仓(或者平空仓),现价3000元,成交价3000+1*2/2=3001元 +# 如果以市价单进行开空仓(或者平多仓),现价3000元,成交价3000-1*2/2=2999元 +``` + + **注:(1)如果您没有调用 set_slippage 函数, 系统默认的滑点是 PriceRelatedSlippage(0.00246);(2)所有类型为 "mmf"与"money_market_fund"的标的滑点默认为0,且调用set_slippage重新设置也不会生效。** use_real_price 设置动态复权(真实价格)模式,建议开启 +``` + +set_option('use_real_price', value) +``` + + **该设定必须在[initialize](#initialize)中调用,建议开启** 设置是否开启动态复权(真实价格)模式,默认是False(主要是为了让旧的策略不会出错)。 是否开启动态复权模式对模拟交易是有影响的,原理参考[拆分合并与分红](https://www.joinquant.com/help/api/help?name=api#%E6%8B%86%E5%88%86%E5%90%88%E5%B9%B6%E4%B8%8E%E5%88%86%E7%BA%A2),[【API解析】| 动态复权与技术指标](https://www.joinquant.com/view/community/detail/48502bfa85355991258093e990d74f35?type=1)。 **参数** - value: True / False **示例** +``` + +# 开启动态复权模式 +set_option('use_real_price', True) +``` + + **是否开启动态复权对于回测及模拟交易的影响(原理参考[拆分合并与分红](https://www.joinquant.com/help/api/help?name=api#%E6%8B%86%E5%88%86%E5%90%88%E5%B9%B6%E4%B8%8E%E5%88%86%E7%BA%A2)):** - **开启**,value 值为 True: 回测过程中: - 每天看到的当天的价格都是真实的(不复权的) - 使用真实的价格下单, 交易详情和持仓详情里看到的都是真实价格 - 为了让编写代码简单, 通过[数据获取函数API](#数据获取函数) **拿到的都是基于当天日期的前复权价格**. 比如: 回测运行到了2015-01-01这一天, 那么`history(3, '1d', 'close')`取得的就是你穿越到2015-01-01这一天所看到的前复权价格. 另一方面, 你在不同日期调用[数据获取函数API](#数据获取函数)返回的价格可能是不一样的, 因为我们在不同日期看到的前复权价格是不一样的. 所以**不要跨日期缓存这些API返回的结果.** - 每到新的一天, **如果持仓中有股票发生了送股或者分红,对应的股数/现金会自动在账户中体现 - 注意事项: - 如上所说, 不要跨日期缓存[数据获取函数API](#数据获取函数)返回的结果 - 开启真实价格回测之后, 回测结果可能会之前不一样, 因为交易时买入数量必须是100的倍数, 使用前复权价格和实际价格能买入的数量是不一样的. - 如果想通过 history 拿到昨天的真实价格, 还是需要用取得价格除以factor, 因为可能今天发生了拆合分红, 导致拿到的昨天的价格是相对于今天的前复权价格. +```python +s = '000001.XSHE' df = attribute_history(s, 1, '1d', fields=['close', 'factor']) real_close = df['close'][-1] / df['factor'][-1] +``` +- **关闭**,value 值为 False: 此选项的核心是选定一个日期作为基准, 保证这个日期的价格是真实价格, 然后调整其他日期的价格. 最终保证所有价格是连续的, 在回测或者模拟交易过程中不同日期看到的价格是一致的. 下面分回测和模拟交易单独做介绍: - 回测: 基准日期是建立回测的日期, 回测过程中所看到的所有价格都是基于此日期的前复权价格. 比如说, 我昨天跑了一个回测, 那么回测过程所有价格都是在昨天所看到的前复权价格. 这会导致两个问题: - 回测过程中使用了前复权价格下单, 这是违背真实场景的. - 不同的日期建立的回测跑出来的结果可能会有差异, 因为如果这两次回测之间回测的股票发生了拆合或者分红, 会导致回测中看到前复权价格会不一致. - 模拟交易: 基准日期是建立模拟交易的日期, 模拟交易过程所看到的所有价格都是基于此日期调整过的. 为了方便计算, 我举一个虚拟的例子: 某只股票在如下三个日期的实际价格和后复权因子分别是: |日期|价格|后复权因子| |--|--|--| |2015-09-01|1|1| |2015-10-01|2|2| |2015-11-01|4|4| - 如果你在 09-01 建立了一个模拟交易, 你在不同日期看到的所有价格都是 1 - 如果你在 10-01 建立了一个模拟交易, 你在不同日期看到的所有价格都是 2 - 如果你在 11-01 建立了一个模拟交易, 你在不同日期看到的所有价格都是 4 - 为了更好的模拟, 建议大家都设成 True. **注意:** (1)对期货不生效,对场内基金会生效, 但因场内基金在拆分/合并时除权日披露不标准,目前采用的是折算基准日,和实际除权日可能有差异,鉴于此原因不建议给含有场内基金的策略开启动态复权 (2) 设置 use_real_price 为 True之后, 如下的按天回测的代码是不对的: +``` + +def initialize(context): + g.cached_data = [] + g.s = '000001.XSHE' + +def handle_data(content, data): + g.cached_data.append(data) + if len(g.cached_data) > 1: + # 如果昨天收盘价比前天涨了5%, 则买入. 这是不对的, 如果昨天早上发生了拆合, 则昨天和前天的股价不具可比性. + if g.cached_data[-1][g.s].close > g.cached_data[-2][g.s].close * 1.05: + order(g.s, 1000) +``` + +order_volume_ratio 设置成交量比例 +``` + +set_option('order_volume_ratio', value) +``` + + 设定成交量比例,根据实际行情限制每个订单的成交量. **参数** - value: value 是一个 float 值, 默认为1.0, 根据实际行情限制每个订单的成交量. - 对于每一笔订单: - 如果是市价单, 成交量不超过: 每日成交量 * value - 如果是限价单, [限价单撮合](#订单处理)时设定分价表中每一个价格的成交量的比率, 假设某一分钟分价表如下: 价格|成交量 ---|--- 10.0 | 10 10.1 | 11 10.2 | 12 - 撮合时, 按价格 10.0 成交 10 * value 股, 按价格 10.1 成交 11 * value 股, 按价格 10.2 成交 12 * value 股 **示例** +``` + +# 设定成交量比例 +set_option('order_volume_ratio', 0.25) # 成交量不超过总成交量的四分之一 +``` + + **注意** 当下单量超过了当日全市场所有的成交量,系统成交数量是直接取全市场所有的成交量 match_with_order_book 设置是否开启盘口撮合模式 +``` + +set_option('match_with_order_book', value) +``` + + 设定是否使用盘口撮合模式. **此选项只对模拟盘生效,默认关闭** **参数** - value: 默认关闭 - True,开启,使用盘口进行撮合,撮合方式详见[订单处理](#订单处理) - False,关闭,使用 Bar 进行撮合,撮合方式详见[订单处理](#订单处理) set_universe(history专用) 设定股票池 +``` + +set_universe(security_list) +``` + + 设置或者更新此策略要操作的股票池 context.universe. 请注意: - **该函数现在只用于设定history函数的默认security_list, 除此之外并无其他用处。** **参数** - security_list: 股票列表 **返回** None **示例** +``` + +set_universe(['000001.XSHE', '600000.XSHG']) +``` + +set_commission(已废弃)设定费率 +``` + +set_commission(object) +``` + + **已废弃。请使用[set_order_cost](#set_order_cost)替代** 指定每笔交易要收取的手续费, 系统会根据用户指定的费率计算每笔交易的手续费 **此函数已废弃,请使用 [set_order_cost - 设置佣金/印花税](#set_order_cost)** **参数** object: 一个PerTrade对象 - PerTrade.buy_cost,买入时手续费 - PerTrade.sell_cost,卖出时手续费 - PerTrade.min_cost,最少的手续费 默认:PerTrade(buy_cost=0.0003, sell_cost=0.0013, min_cost=5) 每笔交易时的手续费是, 买入时万分之三,卖出时万分之三加千分之一印花税, 每笔交易最低扣5块钱 disable_cache关闭缓存 +``` + +disable_cache() +``` + + 在默认情况下系统启用了缓存以加快运行速度,但在策略内存占用较大时容易超过设置的内存上限而触发系统杀死进程。若用户反复出现策略因内存占用超限而被终止的情况,可以考虑在initialize函数中调用disable_cache来关闭缓存机制。 **注意在关闭缓存后会导致策略运行速度明显下降**。 实验性设置项实验性设置项 为了方便用户进行策略研究,我们开放了部分实验性的设置项。开启这些设置项后,系统将允许策略进行一些不符合交易规则的非常规操作。 +``` + +# T+0模式,A股买入后可以立刻卖出 +set_option("t0_mode", True) +# 总是撮合市价单,支持在非交易时间下市价单,按照最新的数据立即撮合 +set_option("always_match_market_order", True) +# 强制撮合,仅支持限价单。使用限价单进行委托时将不对委托价格和成交数量进行任何检查而直接成交,当开启此设置项时,市价单的成交价也不会受滑点的影响 +set_option("match_by_signal", True) +``` + +avoid_future_data设置是否开启避免未来数据模式 +``` + +set_option("avoid_future_data", True) +``` + + 设置回测是否开启避免未来数据模式,默认关闭 [【API解析】避免未来数据](https://www.joinquant.com/view/community/detail/a440d870ad04fb06c0ca2dfcfb0c07ea) **参数** - False, 关闭,回测可能带入未来数据 - True,开启,系统会提示或者处理未来数据 **未来函数,未来数据** 回测中能够引入未来数据的函数,即可以返回未来数据的函数;通过未来函数获取到的数据为未来数据;例如开盘使用get_price获取当天的收盘价,则get_price为未来函数,当天的收盘价为未来数据。 更多的数据可以参考[数据更新频率](https://www.joinquant.com/help/api/help?name=JQData#JQData%E6%8F%90%E4%BE%9B%E5%93%AA%E4%BA%9B%E6%95%B0%E6%8D%AE%E5%8F%8A%E6%95%B0%E6%8D%AE%E6%9B%B4%E6%96%B0%E9%A2%91%E7%8E%87) **使用方法** 在策略中使用set_option("avoid_future_data", True)来开启此功能,该选项默认为False,表示关闭。开启此功能之后,如果用户在策略中调用API的过程中,尝试通过API获取未来数据,就会抛出FutureDataError。 **未来数据类型及处理方法** - 可以通过时间参数避免的未来数据:回测中使用我们提供的包含时间参数的API去取current_dt之后的数据(比如get_bars取current_dt之后的分钟数据);设置"avoid_future_data"为True后,如果获取未来数据则抛出异常; - 没法通过时间参数主动避免的未来数据:对于用户没法通过函数参数主动避免的未来数据(比如get_call_auction);设置"avoid_future_data"为True后,如果获取未来数据,我们会将返回结果中的未来数据剔除掉,而不会抛出异常。 **注意** - avoid_future_data只是帮助大家在写策略过程中,避免一些常见引入未来数据的问题; - avoid_future_data不是万能的,不是包含所有检测未来数据的方法; - 写策略过程中,如果引入外部数据(自己本地数据、连网获取数据等)也有可能带入未来数据,这些使用avoid_future_data是检测不到的; - 策略中设置固定的股票池,设置固定时间点交易一些标的,也有可能引入未来数据,例如设置一些历史上涨幅比较大的标的在低点买入高点卖出; ### 数据获取函数 + +小提示: + +- 在日级策略中可以获取分钟级K线数据,反之亦然; +- 取多支标的的数据时,**不要获取交易时段不同的标的(例如:不同交易时间的期货标的)**,否则会报错; +- 天、分钟、tick行情里成交量单位是股,复权数据中成交量也是复权后的成交量; +- **更多数据,请访问[数据](https://www.joinquant.com/data?f=home&m=memu)页面查看**。 +- [聚宽目前提供哪些数据及数据更新频率](https://www.joinquant.com/help/api/help?name=JQData#JQData%E6%8F%90%E4%BE%9B%E5%93%AA%E4%BA%9B%E6%95%B0%E6%8D%AE%E5%8F%8A%E6%95%B0%E6%8D%AE%E6%9B%B4%E6%96%B0%E9%A2%91%E7%8E%87) +- 获取频率非一天或者非一分钟的数据,请使用get_bars. +- 获取数据参考教程: [聚宽新手指南-获取数据教程](https://www.joinquant.com/view/community/detail/5e4d0eac18d9ddb774452a7eb8f58bd4) [数据相关教程](https://www.joinquant.com/view/community/detail/881bec72247daa104540d7baaf70d70d) [Query及查询财务数据的简单教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) [数据常见疑问汇总](https://www.joinquant.com/view/community/detail/1226a48b1f9b7bd90dc3516feea8b5cc?type=2) [数据获取问题快问快答](https://www.joinquant.com/view/community/detail/257fd6954ae160e2011fd4d206e37588) [JQData安装的问题](https://www.joinquant.com/view/community/detail/01b452d8a0c3fb3a7d83ef9c072134cc) [常用数据获取及计算系列](https://www.joinquant.com/view/community/detail/9e5eca0d1005952dfba1ee13af0dbb45) [外部数据获取及分享](https://www.joinquant.com/view/community/detail/b25a17821b24d57faa6ec0291c51af09) [【集合贴】数据相关](https://www.joinquant.com/view/community/detail/881bec72247daa104540d7baaf70d70d) [【API解析】有关数据获取方法](https://www.joinquant.com/view/community/detail/90f9f2600ed92f9f59b450d772ee8559) [【API解析】get_bars 定义和逻辑](https://www.joinquant.com/view/community/detail/f05b9cbce3612bb2fad36740551d28be) + +名称描述get_price 获取历史数据,可查询多个标的多个数据字段,返回数据格式为 DataFrame +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None, panel=True, fill_paused=True) +``` + + 获取一支或者多只股票的行情数据, 按天或者按分钟,这里在使用时注意 end_date 的设置, 传入的值不要大于context.current_dt,否则会引入未来函数。 **关于停牌**: 因为此API可以获取多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充(请看 [SecurityUnitData](https://www.joinquant.com/help/api/help?name=api#SecurityUnitData) 的 paused 属性). 如想跳过, 请使用 skip_paused=True 参数, 注意当 panel=True 且获取多标的时不支持(panel结构需要索引对齐) **参数** - security: 一支股票代码或者一个股票代码的list - count: **与 start_date 二选一,不可同时使用**. 数量, 返回的结果集的行数, 即表示获取 end_date 之前几个 frequency 的数据 - start_date: **与 count 二选一,不可同时使用**. 字符串或者 datetime.datetime/datetime.date 对象, 开始时间. - 如果 count 和 start_date 参数都没有, 则 start_date 生效, 值是 '2015-01-01'. 注意: - 当取分钟数据时, 时间可以精确到分钟, 比如: 传入 `datetime.datetime(2015, 1, 1, 10, 0, 0)` 或者 `'2015-01-01 10:00:00'`. - 当取分钟数据时, 如果只传入日期, 则日内时间是当日的 00:00:00. - 当取天数据时, 传入的日内时间会被忽略 - end_date: 格式同上, 结束时间, 默认是'2015-12-31', 包含此日期. **注意: 当取分钟数据时, 如果 end_date 只有日期, 则日内时间等同于 00:00:00, 所以返回的数据是不包括 end_date 这一天的**. - frequency: 单位时间长度, 几天或者几分钟, 现在支持'Xd','Xm', 'daily'(等同于'1d'), 'minute'(等同于'1m'), X是一个正整数, 分别表示X天和X分钟(不论是按天还是按分钟回测都能拿到这两种单位的数据), 注意, 当X > 1时, fields只支持['open', 'close', 'high', 'low', 'volume', 'money']这几个标准字段,**合成数据的逻辑见下文**. 默认值是daily - fields: 字符串list, 选择要获取的行情数据字段, 默认是None(表示['open', 'close', 'high', 'low', 'volume', 'money']这几个标准字段), 支持[SecurityUnitData](#SecurityUnitData)里面的所有基本属性,,包含:['open', 'close', 'low', 'high', 'volume', 'money', 'factor', 'high_limit','low_limit', 'avg', 'pre_close', 'paused','open_interest'],其中paused为1表示停牌。 - skip_paused: 是否跳过不交易日期(包括停牌, 未上市或者退市后的日期). 如果不跳过, 停牌时会使用停牌前的数据填充(具体请看[SecurityUnitData](#SecurityUnitData)的paused属性), 上市前或者退市后数据都为 nan, 但要注意: - 默认为 False - 当 skip_paused 是 True 时, 获取多个标的时需要将panel参数设置为False(panel结构需要索引对齐) - fq: 复权选项(对股票/基金的价格字段、成交量字段及factor字段生效) : - `'pre'`, 前复权(根据'use_real_price'选项不同含义会有所不同, 参见[set_option]), 默认是前复权 - `None`,不复权, 返回实际价格 - `'post'`,后复权 - panel:在pandas 0.25版后,panel被彻底移除。获取多标的数据时建议设置panel为False,返回等效的dataframe - fill_paused:对于停牌股票的价格处理,默认为True;True表示用pre_close价格填充;False 表示使用NAN填充停牌的数据。 **合成数据的逻辑** 当frequency为X天和X分钟时,代表使用以X为长度的滑动窗口进行合并数据。举例: - 9:33:00调用get_price获取1个单位的数据,frequency='5min',表示使用上一交易日14:58、14:59、15:00、本交易日9:31、9:32这5根1分钟K线来合成数据; - 9:37:00调用get_price获取1个单位的数据,frequency='5min',表示使用本交易日9:32、9:33、9:34、9:35、9:36这5根1分钟K线来合成数据; **返回** - **请注意, 为了方便比较一只股票的多个属性, 同时也满足对比多只股票的一个属性的需求, 我们在security参数是一只股票和多只股票时返回的结构完全不一样(默认panel=False时)** - 如果是一支股票, 则返回[pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是行情字段名字, 比如'open'/'close'. 比如: `get_price('000300.XSHG')[:2]` 返回: |---|open|close|high|low|volume|money| |---|---|---|---|---|---|---| |2015-01-05|3566.09|3641.54|3669.04|3551.51|451198098.0|519849817448.0| |2015-01-06|3608.43|3641.06|3683.23|3587.23|420962185.0|498529588258.0| - 如果是多支股票, 则返回[pandas.Panel]对象, 里面是很多[pandas.DataFrame]对象, 索引是行情字段(open/close/...), 每个[pandas.DataFrame]的行索引是[datetime.datetime]对象, 列索引是股票代号. 比如`get_price(['000300.XSHG', '000001.XSHE'])['open'][:2]`返回: |---|000300.XSHG|000001.XSHE| |---|---|---| |2015-01-05|3566.09|13.21| |2015-01-06|3608.43|13.09| **示例** +``` + +# 获取一支股票 +df = get_price('000001.XSHE') # 获取000001.XSHE的2015年的按天数据 +df = get_price('000001.XSHE', start_date='2015-01-01', end_date='2015-01-31 23:00:00', frequency='1m', fields=['open', 'close']) # 获得000001.XSHG的2015年01月的分钟数据, 只获取open+close字段 +df = get_price('000001.XSHE', count = 2, end_date='2015-01-31', frequency='daily', fields=['open', 'close']) # 获取获得000001.XSHG在2015年01月31日前2个交易日的数据 +df = get_price('000001.XSHE', start_date='2015-12-01 14:00:00', end_date='2015-12-02 12:00:00', frequency='1m') # 获得000001.XSHG的2015年12月1号14:00-2015年12月2日12:00的分钟数据 + +# 获取多只股票 +panel = get_price(get_index_stocks('000903.XSHG')) # 获取中证100的所有成分股的2015年的天数据, 返回一个[pandas.Panel] +df_open = panel['open'] # 获取开盘价的[pandas.DataFrame], 行索引是[datetime.datetime]对象, 列索引是股票代号 +df_volume = panel['volume'] # 获取交易量的[pandas.DataFrame] + +df_open['000001.XSHE'] # 获取平安银行的2015年每天的开盘价数据 +``` + +history 获取历史数据,可查询多个标的单个数据字段,返回数据格式为 DataFrame 或 Dict(字典) +``` + +history(count, unit='1d', field='avg', security_list=None, df=True, skip_paused=False, fq='pre') +``` + + **回测环境/模拟专用API,可以在投资研究中获取** 查看历史的行情数据。 **关于停牌**: 因为获取了多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充(请看[SecurityUnitData]的paused属性). 如想跳过, 请使用 skip_paused=True 参数 **当取天数据时, 不包括当天的, 即使是在收盘后;分钟数据不包括当前分钟的数据,没有未来** **参数** - count: 数量, 返回的结果集的行数 - unit: 单位时间长度, 几天或者几分钟, 现在支持'Xd','Xm', X是一个正整数, 分别表示X天和X分钟(不论是按天还是按分钟回测都能拿到这两种单位的数据), 注意, 当X > 1时, field只支持['open', 'close', 'high', 'low', 'volume', 'money']这几个标准字段. - field: 要获取的数据类型, 支持[SecurityUnitData](#SecurityUnitData)里面的所有基本属性,,包含:['open', ' close', 'low', 'high', 'volume', 'money', 'factor', 'high_limit',' low_limit', 'avg', ' pre_close', 'paused'] - security_list: - 要获取数据的股票列表 - None 表示查询 context.universe 中所有股票的数据,context.universe 需要使用[set_universe](#set_universe)进行设定,形如:set_universe(['000001.XSHE', '600000.XSHG'])。 - df: 若是True, 返回[pandas.DataFrame], 否则返回一个dict, 具体请看下面的返回值介绍. 默认是True. 我们之所以增加df参数, 是因为[pandas.DataFrame]创建和操作速度太慢, 很多情况并不需要使用它. 为了保持向上兼容, df默认是True, 但是如果你的回测速度很慢, 请考虑把df设成False. - skip_paused: 是否跳过不交易日期(包括停牌, 未上市或者退市后的日期). 如果不跳过, 停牌时会使用停牌前的数据填充(具体请看SecurityUnitData的paused属性), 上市前或者退市后数据都为 nan, 但要注意: - 默认为 False - 如果跳过, 则行索引不再是日期, 因为不同股票的实际交易日期可能不一样 - fq: 复权选项(对股票/基金的价格字段、成交量字段及factor字段生效) : - `'pre'`: 前复权(根据'use_real_price'选项不同含义会有所不同, 参见[set_option]), 默认是前复权 - `None`: 不复权, 返回实际价格 - `'post'`: 后复权 **返回** - df=True: [pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是股票代号. 比如: 如果当前时间是2015-01-07, universe是['000300.XSHG', '000001.XSHE'], `history(2, '1d', 'open')`将返回: |---|000300.XSHG|000001.XSHE| |---|---|---| |2015-01-05|3566.09|13.21| |2015-01-06|3608.43|13.09| 关于numpy和pandas, 请看下面的第三方库介绍 - df=False: dict, key是股票代码, value是一个numpy数组[numpy.ndarray], 对应上面的DataFrame的每一列, 例如`history(2, '1d', 'open', df=False)`将返回: +```python +{ '000300.XSHG': array([ 3566.09, 3608.43]), '000001.XSHE': array([ 13.21, 13.09]) } +``` +**示例** +``` + +h = history(5, security_list=['000001.XSHE', '000002.XSHE']) +h['000001.XSHE'] #000001(平安银行)过去5天的每天的平均价, 一个pd.Series对象, index是datatime +h['000001.XSHE'][-1] #000001(平安银行)昨天(数组最后一项)的平均价 +h.iloc[-1] #所有股票在昨天的平均价, 一个pd.Series对象, index是股票代号 +h.iloc[-1]['000001.XSHE'] #000001(平安银行)昨天(数组最后一项)的平均价 +h.mean() # 取得每一列的平均值 +``` + +``` + +## set_universe 之后可以,调用 history 可以不用指定 security_list +set_universe(['000001.XSHE']) # 设定universe +history(5) # 获取universe中股票的过去5天(不包含今天)的每天的平均价 +history(5, '1m') # 获取universe中股票的过去5分钟(不包含当前分钟)的每分钟的平均价 +history(5, '1m', 'price') # 获取universe中股票的过去5分钟(不包含当前分钟)的每分钟的平均价 +history(5, '1m', 'volume') # 获取universe中股票的过去5分钟(不包含当前分钟)的每分钟的交易额 +history(5, '1m', 'price', ['000001.XSHE']) # 获取平安银行的过去5分钟(不包含当前分钟)的每分钟的平均价 +``` + +``` + +h = history(5, security_list=['000001.XSHE', '000002.XSHE'], df=False) +h['000001.XSHE'] #h 是一个 dict,获取 h 中 000001.XSHE 对应的值。 +h['000001.XSHE'][0] #返回000001.XSHE第五天的数据 +h['000001.XSHE'][-1] #返回000001.XSHE最新一日的数据 +h['000001.XSHE'].sum() #对返回的五日数据求和 +h['000001.XSHE'].mean() # 对返回的五日数据求平均 +# 因为h本身是一个dict, 下列panda.DataFrame的特性将不可用: +# h.illoc[-1] +# h.sum() +``` + +attribute_history 获取历史数据,可查询单个标的多个数据字段,返回数据格式为 DataFrame 或 Dict(字典) +``` + +attribute_history(security, count, unit='1d', + fields=['open', 'close', 'high', 'low', 'volume', 'money'], + skip_paused=True, df=True, fq='pre') +``` + + **回测环境/模拟专用API** 查看某一支股票的历史数据, 可以选这只股票的多个属性, **默认跳过停牌日期**. **当取天数据时, 不包括当天的, 即使是在收盘后;分钟数据不包括当前分钟的数据,没有未来;** **参数** - security: 股票代码 - count: 数量, 返回的结果集的行数 - unit: 单位时间长度, 几天或者几分钟, 现在支持 'Xd', 'Xm', X是一个正整数, 分别表示X天和X分钟(不论是按天还是按分钟回测都能拿到这两种单位的数据), 注意, 当 X > 1 时, field 只支持 ['open', 'close', 'high', 'low', 'volume', 'money'] 这几个标准字段. - fields: 股票属性的list, 支持[SecurityUnitData](#SecurityUnitData)里面的所有基本属性,包含:['open', ' close', 'low', 'high', 'volume', 'money', 'factor', 'high_limit',' low_limit', 'avg', ' pre_close', 'paused'] - skip_paused: 是否跳过不交易日期(包括停牌, 未上市或者退市后的日期). 如果不跳过, 停牌时会使用停牌前的数据填充(具体请看[SecurityUnitData]的paused属性), 上市前或者退市后数据都为 nan, **默认是True** - df: 若是True, 返回[pandas.DataFrame], 否则返回一个dict, 具体请看下面的返回值介绍. 默认是True.我们之所以增加df参数, 是因为[pandas.DataFrame]创建和操作速度太慢, 很多情况并不需要使用它. 为了保持向上兼容, df默认是True, 但是如果你的回测速度很慢, 请考虑把df设成False. - fq: 复权选项(对股票/基金的价格字段、成交量字段及factor字段生效) : - `'pre'`: 前复权(根据'use_real_price'选项不同含义会有所不同, 参见[set_option]), 默认是前复权 - `None`: 不复权, 返回实际价格 - `'post'`: 后复权 **返回** - df=True [pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是属性名字. 比如: 如果当前时间是2015-01-07, `attribute_history('000300.XSHG', 2)`将返回: |---|open|close|high|low|volume|money| |---|---|---|---|---|---|---| |2015-01-05|3566.09|3641.54|3669.04|3551.51|451198098.0|519849817448.0| |2015-01-06|3608.43|3641.06|3683.23|3587.23|420962185.0|498529588258.0| - df=False: dict, key是fields中的属性, value是一个numpy数组[numpy.ndarray], 对应上面的DataFrame的每一列, 例如`attribute_history('000300.XSHG', 2, df=False)`将返回: +```python +{ 'volume': array([ 4.51198098e+08, 4.20962185e+08]), 'money': array([ 5.19849817e+11, 4.98529588e+11]), 'high': array([ 3669.04, 3683.23]), 'low': array([ 3551.51, 3587.23]), 'close': array([ 3641.54, 3641.06]), 'open': array([ 3566.09, 3608.43]) } +``` +**示例** +``` + +stock = '000001.XSHE' +h = attribute_history(stock, 5, '1d', ('open','close', 'volume', 'factor')) # 取得000001(平安银行)过去5天的每天的开盘价, 收盘价, 交易量, 复权因子 +# 不管df等于True还是False, 下列用法都是可以的 +h['open'] #过去5天的每天的开盘价, 一个pd.Series对象, index是datatime +h['close'][-1] #昨天的收盘价 +h['open'].mean() + +# 下面的pandas.DataFrame的特性, df=False时将不可用 +# 行的索引可以是整数, 也可以是日期的各种形式: +h['open']['2015-01-05'] +h['open'][datetime.date(2015, 1, 5)] +h['open'][datetime.datetime(2015, 1, 5)] + +# 按行取数据 +h.iloc[-1] #昨天的开盘价和收盘价, 一个pd.Series对象, index是字符串:'open'/'close' +h.iloc[-1]['open'] #昨天的开盘价 +h.loc['2015-01-05']['open'] + +# 高级运算 +h = h[h['volume'] > 1000000] # 只保留交易量>1000000股的行 +h['open'] = h['open']/h['factor'] #让open列都跟factor列相除, 把价格都转化成原始价格 +h['close'] = h['close']/h['factor'] +``` + +get_bars获取历史数据(包含快照数据),可查询单个或多个标的多个数据字段,返回数据格式为 numpy.ndarray或DataFrame +``` + +get_bars(security, count, unit='1d',fields=['date', 'open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None, df=False) +``` + + 获取各种时间周期的 bar 数据, bar 的分割方式与主流股票软件相同, 而且支持返回当前时刻所在 bar 的数据; get_bars 开盘时取的bar高开低收都是当天的开盘价,成交量成交额为0; get_bars 没有跳过停牌选项,所获取的数据都是不包含停牌的数据,如果bar个数少于count个,则返回实际个数,并不会填充。 更详细的get_bars解释,[【API解析】get_bars 定义和逻辑](https://www.joinquant.com/view/community/detail/f05b9cbce3612bb2fad36740551d28be?type=1) **参数** - security: 标的代码或包含交易代码的列表,支持一个或多个标的,多个标的用list或tuple。 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位, 支持标准bar和非标准bar 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流股票软件类似,期货的bar各平台也许稍微有差异,我们与文华接近; 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', 'open_interest'(持仓量,是期货和期权特有的字段), 'factor'(后复权因子) - include_now: 取值True 或者False。 表示是否包含当前bar, 比如策略时间是9:33,unit参数为5m, 如果 include_now=True,则返回9:30-9:33这个分钟 bar。 - end_dt:查询的截止时间,支持的类型为datetime.datetime或None或str。默认值为None - 在回测/模拟环境下默认为context.current_dt - 在投资研究环境下默认为datetime.now() - 由于bar的最小单位是一分钟,所以end_dt的秒和毫秒没有什么意义,会被替换为0,例如:end_dt=datetime.datetime(2019, 11, 22, 9, 35, 23) 和 end_dt=datetime.datetime(2019, 11, 22, 9, 35, 00) 是一样的 - fq_ref_date:复权基准日期,支持的类型为datetime.datetime或None,为None时为不复权数据。 - 投资研究环境中默认为 datetime.date.today() - 回测/模拟环境中默认为 context.current_dt.date() - 如果用户输入 fq_ref_date = None, 则获取到的是不复权的数据 - 如果用户想获取后复权的数据,可以将fq_ref_date 指定为一个很早的日期,比如 datetime.date(2000, 1, 1) - 定点复权,以某一天价格点位为参照物,进行的前复权或后复权。设置为datetime.datetime.now()即返回前复权数据 ; 设置为context.current_dt返回动态复权数据,[更多关于动态复权解释](https://www.joinquant.com/view/community/detail/48502bfa85355991258093e990d74f35) - 对股票/基金的价格字段、成交量字段生效 ,factor字段不受影响,只返回后复权因子 - df:是否返回pandas.DataFrame对象,默认为False,返回的是numpy.ndarray对象 **返回值** - df = False - 若security为字符串格式的标的代码时,返回一个 numpy.ndarry 对象。 - 若security为list或者tuple格式的标的代码时,返回一个dict,key为标的代码,value为numpy.ndarry 对象。 - df = True - 若security为字符串格式的标的代码时,返回pandas.DataFrame,dataframe 的index是一个整数数组 - 若security为list或者tuple格式的标的代码时,返回pandas.DataFrame,dataframe 的index是一个MultiIndex **示例** +``` + +get_bars(["ER8888.XZCE", "AP1905.XZCE"], end_dt=datetime.datetime.now(), count=3,include_now=False) + +array = get_bars('000001.XSHG', 5, unit='1d',fields=['open','close'],include_now=False) +array['close'] + +# 设置复权基准日为 2018-01-05 , 取得的最近5条包括 end_dt 的天数据 +get_bars('600507.XSHG',5,unit='1d', fields=('date','open', 'high', 'low', 'close'), + include_now=True, end_dt='2018-01-05 11:00:00', fq_ref_date=datetime.date(2018,1,5)) + +# 取得距离 2018-01-05 最近五周不包括这一周的 不复权的周数据 +get_bars('600507.XSHG',5,unit='1w', fields=('date','open', 'high', 'low', 'close'), + include_now=False, end_dt='2018-01-05', fq_ref_date=None) + +# 取得最近五个月不包括这一月的 前复权数据(和行情软件上看到的前复权数据一致) +now = datetime.datetime.now().date() +get_bars('600507.XSHG',5,unit='1M', fields=('date','open', 'high', 'low', 'close'), + include_now=False, end_dt='2018-01-05', fq_ref_date=now) + +# 取2019-03-04平安银行的不复权收盘价(end_dt如果输入2019-03-04,默认2019-03-04 00:00:00) +array = get_bars('000001.XSHE', count=1, unit='1d', + fields=['date', 'close'], + include_now=True, end_dt='2019-03-04 15:30:00', fq_ref_date=None) +print(array[0][1]) +``` + +get_current_tick♠获取最新的 tick 数据 +``` + +get_current_tick(security, dt=None, df=False) +``` + + #### **参数** - security: 标的代码, 支持股票、场内基金、商品期货和股指期货以及包含标的代码的列表。 期货需要使用具体合约代码,不可以使用主力合约和指数合约代码。 - dt: datetime格式的时刻。指定时代表返回离指定时刻最近的一条tick。默认为None。 - df: 默认为False,表示用Tick对象来封装tick数据,df=True的时候,tick数据使用dataframe返回。 #### **返回** - 当传入参数为标的代码时,返回[tick 对象](#tick对象); - 当传入包含标的代码的列表则返回一个dict,key是标的代码,value和传入一个字符串的返回值一样 - 当参数df = True时,返回Dataframe格式数据 #### **注意** - 目前不支持在研究中使用,支持回测及模拟交易的tick、分钟及天频率中使用; - get_current_tick 依赖上下文,可以在run_daily、handle_data 或handle_tick 中调用; - 当天截至当天时刻未产生tick时返回None; #### **示例** +``` + +import datetime +def initialize(context): + run_daily(market_open, time='10:00') +def market_open(context): + print(get_current_tick('000001.XSHE')) + print(get_current_tick(['000001.XSHE', '600000.XSHG'])) + print(get_current_tick('000001.XSHE', dt=datetime.datetime(2018,11,1,10,00,00))) +``` + +get_ticks 获取股票、期货、50ETF期权、股票指数及场内基金的 tick 数据 +``` + +get_ticks(security, end_dt, start_dt=None, count=None, fields=['time', 'current', 'high', 'low', 'volume', 'money'], skip=True, df=False) +``` + + #### **参数**: - security: 一只str格式的股票代码或期货代码,或者一个list格式的股票或者期货列表 - end_dt: 结束日期 - start_dt: 开始日期, 与count参数二选一 - count: 取出指定时间区间内前多少条的tick数据, 与start_dt参数二选一 - fields: 选择要获取的行情数据字段,默认为["time", "current", "high", "low", "volume", "money"], **默认的fields没有a1_v~a5_v等数据,需要这些字段的话,需要您在fields中自己添加,即可获取** - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据(股票自2013年1月1日以后;期货自2019年8月19日以后) - df:默认为False,返回numpy.ndarray格式的tick数据;df=True的时候,返回pandas.Dataframe格式的数据。 #### **返回值** - df为False 返回numpy.ndarray格式的数据。ndarray打印输出没有附带字段名,但您仍然可以通过array[field]的形式获取对应字段的数据。 - df为True 返回pandasDataframe格式的数据 - **股票tick返回结果** | 字段名 | 说明 | 字段类型 | | --------- | ---------- | ------- | | time | 时间 | float | | open | 当日开盘价 | float | | current | 当前价 | float | | high | 截至到当前时刻的日内最高价 | float | | low | 截至到当前时刻的日内最低价 | float | | volume | 累计成交量 | float | | money | 累计成交额 | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | - **期货tick返回结果:** | 字段名 | 说明 | 字段类型 | | -------- | ----------| -------- | | time | 时间 | float | | current | 当前价 | float | | open | 当日开盘价 | float | | high | 截至到当前时刻的日内最高价 | float | | low | 截至到当前时刻的日内最低价 | float | | volume | 累计成交量 | float | | money | 累计成交额 | float | | position | 持仓量 | float | | a1_v | 一档卖量 | float | | a1_p | 一档卖价 | float | | b1_v | 一档买量 | float | | b1_p | 一档买价 | float | #### **注意** - 股票及场内基金部分, 支持 2010-01-01 至今的tick数据,提供买五卖五数据; - 期货部分, 支持 2010-01-01 至今的tick数据,提供买一卖一数据。** 如果要获取主力合约的tick数据,可以先使用get_dominant_future(underlying_symbol,dt)获取主力合约对应的标的,然后再用get_ticks()获取该合约的tick数据; - 期权部分,上交所ETF(2017-01-01起),商品期权(2019-12-02起),提供买五卖五数据;目前期权仅提供数据,不支持回测模拟等; - 支持在tick、分钟及天频率的策略中使用; - 集合竞价期间, 不产生成交(skip=True时不会返回) ,a1_p/b1_p 是虚拟匹配价 , a1_v/b1_v 是虚拟匹配量 , a2_v/b2_v是虚拟匹配价下的剩余未匹配量 #### **示例** - 股票tick数据示例 +``` + +#获取平安银行2018-07-01的tick数据,start_dt和count只能有一个不为None值, 不带时分秒时,默认00:00:00 +d = get_ticks("000001.XSHE",start_dt=None, end_dt="2018-07-02", count=10) +print(d) + +[(20180629145636.0, 9.1, 9.13, 8.96, 66367900.0, 600781695.0) + (20180629145639.0, 9.09, 9.13, 8.96, 66373200.0, 600829823.0) + (20180629145642.0, 9.1, 9.13, 8.96, 66374900.0, 600845311.0) + (20180629145645.0, 9.1, 9.13, 8.96, 66375900.0, 600854399.0) + (20180629145648.0, 9.1, 9.13, 8.96, 66436600.0, 601406783.0) + (20180629145651.0, 9.1, 9.13, 8.96, 66447200.0, 601503231.0) + (20180629145654.0, 9.1, 9.13, 8.96, 66461700.0, 601635199.0) + (20180629145657.0, 9.09, 9.13, 8.96, 66462000.0, 601637887.0) + (20180629145700.0, 9.1, 9.13, 8.96, 66468300.0, 601695231.0) + (20180629150003.0, 9.09, 9.13, 8.96, 67530000.0, 611346111.0)] +``` + +``` + +# skip=True,返回空值 +d = get_ticks("000068.XSHE",start_dt="2019-10-11 09:15:00", +end_dt="2019-10-11 09:25:00", count=None, +fields=['time', 'current', 'volume','money','a1_v','a2_v', 'b1_v', 'b2_v'], skip=True) +print(d) +``` + +``` + +# skip=False,有数据 +d = get_ticks("000068.XSHE",start_dt="2019-10-11 09:15:00", +end_dt="2019-10-11 09:25:00", count=None, +fields=['time', 'current', 'volume','money','a1_v','a2_v', 'b1_v', 'b2_v'], skip=False) +print(d) +``` + +``` + +# df=True,返回DataFrame格式的数据 +df2 = get_ticks('000001.XSHE', end_dt='2019-11-05 10:40:10', +start_dt='2019-11-05 10:40:00', df=True) +print(df2) +``` + + - 期货tick数据示例 +``` + +#获取AU1812期货合约在2018-07-03的tick数据,start_dt和count只能有一个不为None值 +d = get_ticks('AU1812.XSGE',start_dt='2018-07-02 21:00:00',end_dt='2018-07-03 15:30:00',count=None) +print(d) + +[(20180702210000.0, 272.9, 272.95, 272.9, 492.0, 134285000.0) + (20180702210001.0, 272.85, 272.95, 272.85, 884.0, 241270200.0) + (20180702210001.5, 272.9, 272.95, 272.85, 1280.0, 349320300.0) ... + (20180703145958.5, 271.9, 272.95, 271.3, 123526.0, 33623516800.0) + (20180703145959.0, 271.85, 272.95, 271.3, 123528.0, 33624060500.0) + (20180703150000.0, 271.9, 272.95, 271.3, 123536.0, 33626235700.0)] +``` + +get_current_data ♠ 获取当前时间数据 +``` + +get_current_data() +``` + + **回测环境/模拟专用API** 获取当前单位时间(当天/当前分钟)的涨跌停价, 是否停牌,当天的开盘价等。 回测时, 通过其他获取数据的API获取到的是前一个单位时间(天/分钟)的数据, 而有些数据, 我们在这个单位时间是知道的, 比如涨跌停价, 是否停牌, 当天的开盘价. 我们添加了这个API用来获取这些数据. **参数** - 现在不需要传入, 即使传入了, 返回的 dict 也是空的, dict 的 value 会按需获取. **返回值** 一个dict, 其中 key 是股票代码, value 是拥有如下属性的对象 - last_price : 最新价,09:30之前获取返回昨日收盘价 - high_limit: 涨停价 - low_limit: 跌停价 - paused: 是否停止或者暂停了交易, 当停牌、未上市或者退市后返回 True - is_st: 是否是 ST(包括ST, *ST),是则返回 True,否则返回 False - day_open: 当天开盘价,当天的开盘价至少09:27分之后才可获取 - name: 股票现在的名称, 可以用这个来判断股票当天是否是 ST, *ST, 是否快要退市 - industry_code: 股票现在所属行业代码, 参见 [行业概念数据](https://www.joinquant.com/help/api/help?name=plateData) **注意** - 为了加速, 返回的 dict 里面的数据是按需获取的, dict 初始是空的, 当你使用 current_data = get_current_data(); current_data[security]时(假设 current_data 是返回的 dict), 该 security 的数据才会被获取. - 返回的结果只在当天有效, 请不要存起来到隔天再用 - 该函数仅仅限在要获取数据的标的**在交易时段**时调用 **示例** +``` + +def handle_data(context, data): + current_data = get_current_data() + print(current_data) + print(current_data['000001.XSHE'].last_price) + print(current_data['000001.XSHE'].paused) + print(current_data['000001.XSHE'].day_open) +``` + +get_extras 获取基金单位/累计净值,期货结算价/持仓量等 +``` + +get_extras(info, security_list, start_date='2015-01-01', end_date='2015-12-31', df=True, count=None) +``` + + 得到多只标的在一段时间的如下额外的数据: - is_st: 是否股改s, st,*st和退市整理期标的 - acc_net_value: 基金累计净值 - unit_net_value: 基金单位净值 - futures_sett_price: 期货结算价 - futures_positions: 期货持仓量 - adj_net_value: 场外基金的复权净值 **参数** - info: ['is_st', 'acc_net_value', 'unit_net_value', 'futures_sett_price', 'futures_positions', 'adj_net_value'] 中的一个 - security_list: 股票列表 - start_date/end_date: 开始结束日期, 同 [get_price](#get_price) - df: 返回[pandas.DataFrame]对象还是一个dict, 同 [history] - count: 数量, **与 start_date 二选一, 不可同时使用**, 必须大于 0. 表示取 end_date 往前的 count 个交易日的数据 **返回值** - df=True: [pandas.DataFrame]对象, 列索引是股票代号, 行索引是[datetime.datetime], 比如`get_extras('acc_net_value', ['510300.XSHG', '510050.XSHG'], start_date='2015-12-01', end_date='2015-12-03')`返回: |---|510300.XSHG|510050.XSHG| |---|---|---| |2015-12-01|1.395|3.119| |2015-12-02|1.4432|3.251| |2015-12-03|1.4535|3.254| `get_extras('is_st', ['000001.XSHE', '000018.XSHE'], start_date='2013-12-01', end_date='2013-12-03')`返回: |---|000001.XSHE|000018.XSHE| |---|---|---| |2013-12-02|False|True| |2013-12-03|False|True| - df=False 一个dict, key是基金代号, value是[numpy.ndarray], 比如`get_extras('acc_net_value', ['510300.XSHG', '510050.XSHG'], start_date='2015-12-01', end_date='2015-12-03', df=False)` 返回: +``` + +{ + u'510050.XSHG': array([ 3.119, 3.251, 3.254]), + u'510300.XSHG': array([ 1.395 , 1.4432, 1.4535]) +} +``` + + **示例** +``` + +info = 'acc_net_value' +security_list = ['519671.OF', '110003.OF'] +df = get_extras(info, security_list, start_date='2019-05-10', end_date='2019-05-15') +print(df) +``` + +get_all_factors 获取聚宽因子库中所有因子的信息 +``` + +get_all_factors() +``` + + **参数** - 无 **返回** pandas.DataFrame,包含因子代码、因子名称、因子分类 **示例** +``` + +from jqfactor import get_all_factors +print(get_all_factors()) + +# 输出 + +index factor factor_intro category \ +0 administration_expense_ttm 管理费用TTM basics +1 asset_impairment_loss_ttm 资产减值损失TTM basics +2 EBIT 息税前利润 basics +3 EBITDA 息税折旧摊销前利润 basics +4 financial_expense_ttm 财务费用TTM basics +5 goods_sale_and_service_render_cash_ttm 销售商品提供劳务收到的现金 basics +...... +``` + +get_factor_values 质量、基础、情绪、成长、风险、每股等数百个因子数据 +``` + +# 导入函数库 +from jqfactor import get_factor_values +# 取值函数 +get_factor_values(securities, factors, start_date, end_date, count) +``` + + 获取质量因子、基础因子、情绪因子、成长因子、风险因子、每股因子等数百个因子数据,详细的因子列表请参考[因子库](https://www.joinquant.com/help/api/help?name=factor_values) **参数** - securities:股票池,单只股票(字符串)或一个股票列表 - factors: 因子名称,单个因子(字符串)或一个因子列表 - start_date:开始日期,字符串或 datetime 对象,与 coun t参数二选一 - end_date: 结束日期, 字符串或 datetime 对象,可以与 start_date 或 count 配合使用 - count: 截止 end_date 之前交易日的数量(含 end_date 当日),与 start_date 参数二选一 **返回** - 一个 dict: key 是因子名称, value 是 pandas.dataframe。 - dataframe 的 index 是日期, column 是股票代码, value 是因子值 - 为了防止单次返回数据时间过长,每次调用 api 请求的因子值(因子数×股票数×交易日数)不能超过 200000 个 **示例** +``` + +# 导入函数库 +from jqfactor import get_factor_values + +# 获取因子Skewness60(个股收益的60日偏度)从 2017-01-01 至 2017-03-04 的因子值 +factor_data = get_factor_values(securities=['000001.XSHE'], factors=['Skewness60'], start_date='2017-01-01', end_date='2017-03-04') +# 查看因子值 +factor_data['Skewness60'] +``` + +get_factor_kanban_values 获取因子看板列表数据 +``` + +from jqfactor import * +df = get_factor_kanban_values(universe='hs300',bt_cycle='month_3',model='long_only',category=['quality','basics','emotion','growth','risk','pershare'],skip_paused=False,commision_slippage=0) +print(df) +``` + + **参数** - universe:股票池 - 'hs300': 沪深300 - 'zz500': 中证500 - 'zz800': 中证800 - 'zz1000': 中证1000 - 'zzqz': 中证全指 - bt_cycle:测试周期 - 'month_3':近三个月 - 'year_1':近一年 - year_3':近三年 - year_10':近十年 - model:组合构建模型 - 'long_only':纯多头组合 - 'long_short':多空组合 - category:分类 - 'quality': 质量类 - 'basics': 基础类 - 'emotion': 情绪类 - 'growth': 成长类 - 'risk': 风险类 - 'pershare': 每股类 - 'style': 风险因子 - 风格因子 - 'technical': 技术类 - 'momentum': 动量类 - skip_paused: 过滤涨停及停牌股 - False: 否 - True: 是 - commision_slippage: 手续费及滑点 - 0: 无 - 1: 3‱佣金+1‰印花税+无滑点 - 2: 3‱佣金+1‰印花税+1‰滑点 **返回** pandas.DataFrame 针对 [model - 组合构建模型]选择的不同,返回的结构有所差异 一、long_only - 纯多头组合 - index:自然增长的数字,从0开始,无意义 - column: - date:数据的更新日期,因子的收益需要下一交易日才可得到 ,因此实际数据的时间比date晚一天(T日收盘后的因子收益需要T+1的收盘价才可得出,数据需要在T+2日凌晨3点计算之后才可得到) - universe: 股票池 - bt_cycle: 测试周期 - skip_paused: 过滤涨停及停牌股 - commision_slippage: 手续费及滑点 - category: 因子分类 - code:因子代码 - compound_return_1q:一分位数累积收益 - compound_return_5q:五分位数累积收益 - annualized_return_1q:一分位数年化收益率 - annualized_return_5q:五分位数年化收益率 - max_drawdown_1q:一分位数最大回撤 - max_drawdown_5q:五分位数最大回撤 - sharpe_1q:一分位数夏普比率 - sharpe_5q:五分位数夏普比率 - turnover_ratio_1q:一分位数换手率 - turnover_ratio_5q:五分位数换手率 - annual_return_bm:基准指数年化收益率 - ic_mean:IC均值 - ir:IR值 - good_ic:IC绝对值大于0.02的比率 二、long_short - 多空组合 - index:自然增长的数字,从0开始,无意义 - column: - date:数据的更新日期,因子的收益需要下一交易日才可得到 ,因此实际数据的时间比date晚一天(T日收盘后的因子收益需要T+1的收盘价才可得出,数据需要在T+2日凌晨3点计算之后才可得到) - universe: 股票池 - bt_cycle: 测试周期 - skip_paused: 过滤涨停及停牌股 - commision_slippage: 手续费及滑点 - category: 因子分类 - code:因子代码 - compound_return_ls:累积收益 - annualized_return_ls:年化收益率 - max_drawdown_ls:最大回撤 - sharpe_ls:夏普比率 - turnover_ratio_ls:换手率 - annual_return_bm:基准指数年化收益率 - ic_mean:IC均值 - ir:IR值 - good_ic:IC绝对值大于0.02的比率 get_fundamentals 查询财务数据 +``` + +get_fundamentals(query_object, date=None, statDate=None) +``` + + 查询财务数据,详细的财务数据表及字段描述请点击财务数据文档查看,Query 对象的使用方法请参考[Query的简单教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) date和statDate参数只能传入一个: - 传入date时, 查询**指定日期date收盘后所能看到的最近(对市值表来说, 最近一天, 对其他表来说, 最近一个季度)的数据**, 默认我们会查找上市公司在当前日期之前发布的数据, 不会有未来函数.不要传递当天的日期取获取估值表,pe/市值等依赖收盘价的指标是盘后更新的。 - 传入statDate时, 查询 **statDate 指定的季度或者年份的财务数据**. 注意: 1. 由于公司发布财报不及时, 一般是看不到当季度或年份的财务报表的, 回测中使用这个数据可能会有未来函数, 请注意规避. 2. 由于估值表每天更新, 当按季度或者年份查询时, 返回季度或者年份最后一天的数据 3. 由于“资产负债数据”这个表是存量性质的, 查询年度数据是返回第四季度的数据。 4. 银行业、券商、保险专项数据只有年报数据,需传入statDate参数,当传入 date 参数 或 statDate 传入季度时返回空,请自行避免未来函数。 当 date 和 statDate 都不传入时, 相当于使用 date 参数, date 的默认值下面会描述. **参数** - query_object: 一个[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html), 可以通过全局的 query 函数获取 Query 对象,[Query对象的简单使用教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: 1. 回测模块: 默认值会随着回测日期变化而变化, 等于 context.current_dt 的前一天(实际生活中我们只能看到前一天的财报和市值数据, 所以要用前一天) 2. 研究模块: 使用平台财务数据的最新日期, 一般是昨天. - statDate: 财报统计的季度或者年份, 一个字符串, 有两种格式: 1. 季度: 格式是: **年 + 'q' + 季度序号**, 例如: '2015q1', '2013q4'. 2. 年份: 格式就是年份的数字, 例如: '2015', '2016'. **返回** 返回一个 [pandas.DataFrame], 每一行对应数据库返回的每一行(可能是几个表的联合查询结果的一行), 列索引是你查询的所有字段 注意: 1. 为了防止返回数据量过大, 我们每次最多返回5000行 2. 当相关股票上市前、退市后,财务数据返回各字段为空 **示例** +``` + +# 查询'000001.XSHE'的所有市值数据, 时间是2015-10-15 +q = query( + valuation +).filter( + valuation.code == '000001.XSHE' +) +df = get_fundamentals(q, '2015-10-15') +# 打印出总市值 +log.info(df['market_cap'][0]) +``` + +``` + +# 获取多只股票在某一日期的市值, 利润 +df = get_fundamentals(query( + valuation, income + ).filter( + # 这里不能使用 in 操作, 要使用in_()函数 + valuation.code.in_(['000001.XSHE', '600000.XSHG']) + ), date='2015-10-15') +``` + +``` + +# 选出所有的总市值大于1000亿元, 市盈率小于10, 营业总收入大于200亿元的股票 +df = get_fundamentals(query( + valuation.code, valuation.market_cap, valuation.pe_ratio, income.total_operating_revenue + ).filter( + valuation.market_cap > 1000, + valuation.pe_ratio < 10, + income.total_operating_revenue > 2e10 + ).order_by( + # 按市值降序排列 + valuation.market_cap.desc() + ).limit( + # 最多返回100个 + 100 + ), date='2015-10-15') +``` + +``` + +# 使用 or_ 函数: 查询总市值大于1000亿元 **或者** 市盈率小于10的股票 +from sqlalchemy.sql.expression import or_ +get_fundamentals(query( + valuation.code + ).filter( + or_( + valuation.market_cap > 1000, + valuation.pe_ratio < 10 + ) + )) +``` + +``` + +# 查询平安银行2014年四个季度的季报, 放到数组中 +q = query( + income.statDate, + income.code, + income.basic_eps, + balance.cash_equivalents, + cash_flow.goods_sale_and_service_render_cash + ).filter( + income.code == '000001.XSHE', + ) + +rets = [get_fundamentals(q, statDate='2014q'+str(i)) for i in range(1, 5)] +``` + +``` + +# 查询平安银行2014年的年报 +q = query( + income.statDate, + income.code, + income.basic_eps, + cash_flow.goods_sale_and_service_render_cash + ).filter( + income.code == '000001.XSHE', + ) + +ret = get_fundamentals(q, statDate='2014') +``` + +get_fundamentals_continuously 查询多日的财务数据 +``` + +get_fundamentals_continuously(query_object, end_date=None,count=None, panel=True) +``` + + 查询多日财务数据,详细的财务数据表及字段描述请点击财务数据文档查看,Query 对象的使用方法请参考[Query的简单教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) **参数** - query_object: 一个[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html), 可以通过全局的 query 函数获取 Query 对象,[Query对象的简单使用教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) - end_date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: 1. 回测模块: 默认值会随着回测日期变化而变化, 等于 context.current_dt 的前一天(实际生活中我们只能看到前一天的财报和市值数据, 所以要用前一天) 2. 研究模块: 使用平台财务数据的最新日期, 一般是昨天. - count: 获取 end_date 前 count 个日期的数据 - panel:在pandas 0.24版后,panel被彻底移除。获取多标的数据时建议设置panel为False,返回等效的dataframe **返回** - 默认panel=True,返回一个 pandas.Panel; - 建议设置panel为False,返回等效的dataframe; **出于性能方面考虑,我们做出了返回总条数不超过5000条的限制。 也就是说:查询的股票数量\*count 要小于5000。 否则,返回的数据会不完整。** **示例** +``` + +>>> q = query(valuation.turnover_ratio, + valuation.market_cap, + indicator.eps + ).filter(valuation.code.in_(['000001.XSHE', '600000.XSHG'])) + +>>> panel = get_fundamentals_continuously(q, end_date='2018-01-01', count=5) + +>>> panel + +\ +Dimensions: 3 (items) x 5 (major_axis) x 2 (minor_axis) +Items axis: turnover_ratio to eps +Major_axis axis: 2017-12-25 to 2017-12-29 +Minor_axis axis: 000001.XSHE to 600000.XSHG + +>>> panel.minor_xs('600000.XSHG') + +turnover_ratio market_cap eps +day +2017-12-25 0.0687 3695.4270 0.48 +2017-12-26 0.0542 3710.1030 0.48 +2017-12-27 0.1165 3704.2324 0.48 +2017-12-28 0.0849 3680.7510 0.48 +2017-12-29 0.0582 3695.4270 0.48 + +>>> panel.major_xs('2017-12-25') + +turnover_ratio market_cap eps +code +000001.XSHE 0.9372 2275.0796 0.38 +600000.XSHG 0.0687 3695.4270 0.48 + +>>> panel.xs('turnover_ratio',axis=0) +# axis=0 表示 items axis; axis=1 表示 major axis; axis=2 表示 minor axis + +code 000001.XSHE 600000.XSHG +day +2017-12-25 0.9372 0.0687 +2017-12-26 0.6642 0.0542 +2017-12-27 0.8078 0.1165 +2017-12-28 0.9180 0.0849 +2017-12-29 0.5810 0.0582 +``` + +finance.run_query深沪港通股东信息等数据 +``` + +from jqdata import * +finance.run_query(query_object) +``` + + 查询深沪港通、股东信息、公司概况等数据,详细的数据字段描述请点击[市场通(沪港通深港通和港股通)](https://www.joinquant.com/help/api/help?name=Stock#%E5%B8%82%E5%9C%BA%E9%80%9A%EF%BC%88%E6%B2%AA%E6%B8%AF%E9%80%9A%E6%B7%B1%E6%B8%AF%E9%80%9A%E5%92%8C%E6%B8%AF%E8%82%A1%E9%80%9A%EF%BC%89)查看 **参数** * query_object: 一个[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html), 可以通过全局的query函数获取Query对象。 **返回** 返回一个 dataframe, 每一行对应数据库返回的每一行, 列索引是你所查询的字段 注意 1. **为了防止返回数据量过大, 我们每次最多返回4000行** 2. 不能进行连表查询,即同时查询多张表内数据 **示例** +``` + +# 查询万科 AH 股价格的前10条数据 +q=query(finance.STK_AH_PRICE_COMP + ).filter( + finance.STK_AH_PRICE_COMP.a_code=='000002.XSHE' + ).order_by( + finance.STK_AH_PRICE_COMP.day + ).limit(10) +df=finance.run_query(q) +``` + +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的十大股东情况,限定返回条数为10条 +q=query(finance.STK_SHAREHOLDER_TOP10 + ).filter( + finance.STK_SHAREHOLDER_TOP10.code=='600276.XSHG', + finance.STK_SHAREHOLDER_TOP10.pub_date>'2015-01-01' + ).limit(10) +df=finance.run_query(q) +``` + +macro.run_query 获取聚宽宏观经济数据 **数据调用方法** +``` + +from jqdata import * +macro.run_query(query_object) +``` + + 查询宏观经济数据,详细的数据字段描述请点击[宏观经济数据](https://www.joinquant.com/help/api/help?name=macroData)查看 **参数** * query_object: 一个[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html), 可以通过全局的query函数获取Query对象。 **返回** 返回一个 dataframe, 每一行对应数据库返回的每一行, 列索引是你所查询的字段 注意 1. 为了防止返回数据量过大, 我们每次最多返回4000行 2. 不能进行连表查询,即同时查询多张表内数据 **示例** +``` + +# 查询分地区农林牧渔业总产值表(季度累计) 的前10条数据 +q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER + ).limit(10) +df = macro.run_query(q) +``` + +``` + +# 查询2014年的分地区农林牧渔业总产值表(年度) +q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR + ).filter(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR.stat_year=='2014') +df = macro.run_query(q) +``` + +get_billboard_list 获取龙虎榜数据 +``` + +get_billboard_list(stock_list, start_date, end_date, count) +``` + + 获取指定日期区间内的龙虎榜数据 **参数** - stock_list: 一个股票代码的 list。 当值为 None 时, 返回指定日期的所有股票。 - start_date:开始日期 - end_date: 结束日期 - count: 交易日数量, 可以与 end_date 同时使用, 表示获取 end_date 前 count 个交易日的数据(含 end_date 当日) **返回值** - pandas.DataFrame, 各 column 的含义如下: - code: 股票代码 - day: 日期 - direction: ALL 表示『汇总』,SELL 表示『卖』,BUY 表示『买』 - abnormal_code: 异常波动类型 - abnormal_name: 异常波动名称 - sales_depart_name: 营业部名称 - rank: 0 表示汇总, 1~5 表示买一到买5, 6~10 表示卖一到卖五 - buy_value:买入金额 - buy_rate:买入金额占比(买入金额/市场总成交额) - sell_value:卖出金额 - sell_rate:卖出金额占比(卖出金额/市场总成交额) - net_value:净额(买入金额 - 卖出金额) - amount:市场总成交额 - total_value:买入卖出金额之和(买入金额+卖出金额) **示例** +``` + +# 在策略中获取前一日的龙虎榜数据 +get_billboard_list(stock_list=None, end_date = context.previous_date, count =1) +``` + +get_index_stocks 获取指数成份股 +``` + +get_index_stocks(index_symbol, date=None) +``` + + 获取一个指数给定日期在平台可交易的成分股列表,请点击[指数列表](https://www.joinquant.com/help/api/help?name=index)查看指数信息 **参数** - index_symbol: 指数代码 - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者datetime.date/datetime.datetime对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: 1. 回测模块: 默认值会随着回测日期变化而变化, 等于context.current_dt 2. 研究模块: 默认是今天 **返回** 返回股票代码的list **示例** +``` + +# 获取所有沪深300的股票 +stocks = get_index_stocks('000300.XSHG') +log.info(stocks) +``` + +get_index_weights获取指数成分股权重 +``` + +get_index_weights(index_id, date=None) +``` + + 获取指数成分股权重,每月更新一次,一般在月底或者月初 **参数** - index_id: 必选参数,代表指数的标准形式代码, 形式:指数代码.交易所代码,例如"000001.XSHG"。若代码格式错误或传入无效的指数代码,报错。 - date: 可选参数, 查询权重信息的日期,形式:"%Y-%m-%d",例如"2018-05-03",除此之外其他日期格式报错。当date为None,在回测、模拟环境中,默认为context.current_dt.date();在研究环境中,默认为datetime.now().date()。 **返回** - 查询到对应日期,且有权重数据,返回 pandas.DataFrame, index 是股票代码,columns 为 display_name(股票名称), date(日期), weight(权重); - 查询到对应日期,且无权重数据, 返回距离查询日期最近日期的权重信息; - 找不到对应日期的权重信息, 返回距离查询日期最近日期的权重信息; **示例** +``` + +>>> get_index_weights(index_id="000001.XSHG", date="2018-05-09") + +=========== ============ =========== ====== + code display_name date weight +=========== ============ =========== ====== +000002.XSHG 万科A 2018-04-27 1.43 +000001.XSHG 平安银行 2018-04-27 0.93 +=========== ============ =========== ====== +``` + +get_industry_stocks 获取行业成份股 +``` + +get_industry_stocks(industry_code, date=None) +``` + + 获取在给定日期一个行业的所有股票,行业分类列表见数据页面-[行业概念数据](https://www.joinquant.com/help/api/help?name=plateData)。 **参数** - industry_code: 行业编码 - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: 1. 回测模块: 默认值会随着回测日期变化而变化, 等于context.current_dt 2. 研究模块: 默认是今天 **返回** 返回股票代码的list **示例** +``` + +# 获取计算机/互联网行业的成分股 +stocks = get_industry_stocks('I64') +``` + +get_concept_stocks 获取概念成份股 +``` + +get_concept_stocks(concept_code, date=None) +``` + + 获取在给定日期一个概念板块的所有股票,概念板块分类列表见数据页面-[行业概念数据](https://www.joinquant.com/help/api/help?name=plateData)。 **参数** - concept_code: 概念板块编码 - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: 1. 回测模块: 默认值会随着回测日期变化而变化, 等于context.current_dt 2. 研究模块: 默认是今天 **返回** 返回股票代码的list **示例** +``` + +# 获取风电概念板块的成分股 +stocks = get_concept_stocks('SC0084', date='2019-04-16') +print(stocks) +``` + + **注意** - 申万在2014年2月21做了调整,2014年2月21日有几个行业被剔除了,同时又增加了新的行业,2014年2月21日之后的行业是28个,之前是23个,历史上总共有34个。 get_industries 获取行业列表 +``` + +from jqdata import * +get_industries(name, date=None) +``` + + 按照行业分类获取行业列表。 **参数** - name: 行业代码, 取值如下: - "sw_l1": 申万一级行业 - "sw_l2": 申万二级行业 - "sw_l3": 申万三级行业 - "jq_l1": 聚宽一级行业 - "jq_l2": 聚宽二级行业 - "zjw": 证监会行业 - date: 获取数据的日期,默认为None,返回历史上所有行业;传入date,返回date当天存在的行业;研究和回测中返回结果相同; **返回值** - pandas.DataFrame, 各 column 的含义如下: - index: 行业代码 - name: 行业名称 - start_date: 开始日期 **示例** +``` + +from jqdata import * +get_industries(name='zjw') +get_industries(name='zjw', date='2016-01-01') +``` + +get_concepts 获取概念列表 +``` + +from jqdata import * +get_concepts() +``` + + 获取所有的概念板块列表,行业分类列表见数据页面-[行业概念数据](https://www.joinquant.com/help/api/help#plateData:%E6%A6%82%E5%BF%B5%E6%9D%BF%E5%9D%97)。 **返回值** - pandas.DataFrame, 各 column 的含义如下: - index: 概念代码 - name: 概念名称 - start_date: 开始日期 get_all_securities 获取所有标的信息 +``` + +get_all_securities(types=[], date=None) +``` + + 获取平台支持的所有股票、基金、指数、期货、期权信息 **参数** - types: list: 用来过滤securities的类型, list元素可选: 'stock', 'fund', 'index', 'futures', 'options', 'etf', 'lof', 'fja', 'fjb', 'open_fund', 'bond_fund', 'stock_fund', 'QDII_fund'(QDII基金), 'money_market_fund', 'mixture_fund'。 **types为空时返回所有股票, 不包括基金,指数和期货** - date: 日期, 一个字符串或者 datetime.datetime /datetime.date 对象, 用于获取某日期还在上市的股票信息. 默认值为 None, 表示获取所有日期的股票信息.**建议使用时添加上指定date** **返回** [pandas.DataFrame], 比如:`get_all_securities()[:2]`返回: |---|display_name|name|start_date|end_date|type| |---|---|---|---|---|---| |000001.XSHE|平安银行|PAYH|1991-04-03|9999-01-01|stock| |000002.XSHE|万 科A|WKA|1991-01-29|9999-01-01|stock| - display_name: 中文名称,只返回最新的,判断是否st请使用get_extras - name: 缩写简称,同上 - start_date: 上市日期 - end_date: 退市日期(股票是最后一个交易日,不同于摘牌日期),如果没有退市则为2200-01-01; - type: 类型,stock(股票),index(指数),etf(场内ETF基金),fja(场内分级A),fjb(场内分级B),fjm(场内分级母基金),mmf(场内交易的货币基金),lof(上市型开放基金),open_fund(开放式基金), bond_fund(债券基金), stock_fund(股票型基金), money_market_fund(场外交易的货币基金), mixture_fund(混合型基金),fund_fund(联接基金) options(期权), **示例** +``` + +def initialize(context): + #获得所有股票列表 + log.info(get_all_securities()) + log.info(get_all_securities(['stock'])) + + #将所有股票列表转换成数组 + stocks = list(get_all_securities(['stock']).index) + + #获得所有指数列表 + get_all_securities(['index']) + + #获得所有基金列表 + df = get_all_securities(['fund']) + + #获取所有期货列表 + get_all_securities(['futures']) + + #获取所有期货列表 + get_all_securities(['options']) + + #获得etf基金列表 + df = get_all_securities(['etf']) + #获得lof基金列表 + df = get_all_securities(['lof']) + #获得分级A基金列表 + df = get_all_securities(['fja']) + #获得分级B基金列表 + df = get_all_securities(['fjb']) + + #获得2015年10月10日还在上市的所有股票列表 + get_all_securities(date='2015-10-10') + #获得2015年10月10日还在上市的 etf 和 lof 基金列表 + get_all_securities(['etf', 'lof'], '2015-10-10') +``` + +get_security_info 获取单个标的信息 +``` + +get_security_info(code, date=None) +``` + + 获取股票/基金/指数/期货的信息. **参数** - code: 证券代码 - date:查询日期,默认为None,仅支持股票 **返回值** - 一个对象, 有如下属性: - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期, [datetime.date] 类型 - end_date: 退市日期(股票是最后一个交易日,不同于摘牌日期), [datetime.date] 类型, 如果没有退市则为2200-01-01 - type: 股票、基金、金融期货、期货、债券基金、股票基金、QDII 基金、货币基金、混合基金、场外基金,'stock'/ 'fund' / 'index_futures' / 'futures' / 'etf'/'bond_fund' / 'stock_fund' / 'QDII_fund' / 'money_market_fund' / ‘mixture_fund' / 'open_fund' - parent: 分级基金的母基金代码 **示例** +``` + +# 获取000001.XSHE的上市时间 +start_date = get_security_info('000001.XSHE').start_date +print(start_date) +``` + +get_industry查询股票所属行业 +``` + +get_industry(security, date=None) +``` + + **参数** - security:标的代码。类型为字符串,形式如"000001.XSHE";或为包含标的代码字符串的列表,形如["000001.XSHE", "000002.XSHE"] - date:查询的日期。类型为字符串,形如"2018-06-01"或"2018-06-01 09:00:00";或为datetime.datetime对象和datetime.date。*注意传入对象的时分秒将被忽略*。默认值为None,研究中默认值为当天,回测中默认值会随着回测日期变化而变化, 等于context.current_dt。 **返回结果** 一个dict, key是标的代码。 **示例** +``` + +>>> get_industry(security=['000001.XSHE','000002.XSHE'], date="2018-06-01") + +{'000001.XSHE': {'jq_l1': {'industry_code': 'HY007', 'industry_name': '金融指数'}, + 'jq_l2': {'industry_code': 'HY493', 'industry_name': '多元化银行指数'}, + 'sw_l1': {'industry_code': '801780', 'industry_name': '银行I'}, + 'sw_l2': {'industry_code': '801192', 'industry_name': '银行II'}, + 'sw_l3': {'industry_code': '851911', 'industry_name': '银行III'}, + 'zjw': {'industry_code': 'J66', 'industry_name': '货币金融服务'} + }, + '000002.XSHE': {'jq_l1': {'industry_code': 'HY011', 'industry_name': '房地产指数'}, + 'jq_l2': {'industry_code': 'HY509', 'industry_name': '房地产开发指数'}, + 'sw_l1': {'industry_code': '801180', 'industry_name': '房地产I'}, + 'sw_l2': {'industry_code': '801181', 'industry_name': '房地产开发II'}, + 'sw_l3': {'industry_code': '851811', 'industry_name': '房地产开发III'}, + 'zjw': {'industry_code': 'K70', 'industry_name': '房地产业'} + } +} +``` + + **注意** +``` + +# python2中print打印一个unicode对象的时候,调用的是这个对象的"__str__",而打印一个类似{"a": u"中文"}的时候,调用的是"__repr__"。因此可以这样使用: + +res = get_industry(security=['000001.XSHE','000002.XSHE'], date="2018-06-01") +print(repr(res).decode("unicode-escape")) +``` + +get_all_trade_days 获取所有交易日 +``` + +from jqdata import * +get_all_trade_days() +``` + + 获取所有交易日, 不需要传入参数, 返回一个包含所有交易日的 numpy.ndarray, 每个元素为一个datetime.date类型. **注: 需导入 jqdata 模块,即在策略或研究起始位置加入`import jqdata`** get_trade_days 获取指定范围交易日 +``` + +from jqdata import * +get_trade_days(start_date=None, end_date=None, count=None) +``` + + 获取指定日期范围内的所有交易日, 返回一个包含datetime.date object的列表, 包含指定的 start_date 和 end_date, 默认返回至 datetime.date.today() 的所有交易日 **注意get_trade_days最多只能获取到截至现实时间的当前年份的最后一天的交易日数据** **注: 需导入 jqdata 模块,即在策略或研究起始位置加入`import jqdata`** **参数** - start_date: 开始日期, **与 count 二选一, 不可同时使用**. str/datetime.date/datetime.datetime 对象 - end_date: 结束日期, str/datetime.date/datetime.datetime 对象, 默认为 datetime.date.today() - count: 数量, **与 start_date 二选一, 不可同时使用**, 必须大于 0. 表示取 end_date 往前的 count 个交易日,包含 end_date 当天。 get_money_flow 获取资金流信息 +``` + +from jqdata import * +get_money_flow(security_list, start_date=None, end_date=None, fields=None, count=None) +``` + + 获取一只或者多只股票在一个时间段内的资金流向数据,仅包含股票数据,不可用于获取期货数据; 提供2010年至今的数据,数据频率为天; 净额 : 为正是资金流入, 为负为资金流出; **参数** - security_list: 一只股票代码或者一个股票代码的 list - start_date: 开始日期, **与 count 二选一, 不可同时使用**, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 默认为平台提供的数据的最早日期 - end_date: 结束日期, 一个字符串或者 datetime.date/datetime.datetime 对象, 默认为 datetime.date.today() - count: 数量, **与 start_date 二选一,不可同时使用**, 必须大于 0. 表示返回 end_date 之前 count 个交易日的数据, 包含 end_date - fields: 字段名或者 list, 可选. 默认为 None, 表示取全部字段, 各字段含义如下: |字段名|含义|备注| |---|---|---| |date|日期|---| |sec_code|股票代码|---| |change_pct|涨跌幅(%)|---| |net_amount_main|主力净额(万)|主力净额 = 超大单净额 + 大单净额| |net_pct_main|主力净占比(%)|主力净占比 = 主力净额 / 成交额| |net_amount_xl|超大单净额(万)|超大单:大于等于50万股或者100万元的成交单| |net_pct_xl|超大单净占比(%)|超大单净占比 = 超大单净额 / 成交额| |net_amount_l|大单净额(万)|大单:大于等于10万股或者20万元且小于50万股或者100万元的成交单| |net_pct_l|大单净占比(%)|大单净占比 = 大单净额 / 成交额| |net_amount_m|中单净额(万)|中单:大于等于2万股或者4万元且小于10万股或者20万元的成交单| |net_pct_m|中单净占比(%)|中单净占比 = 中单净额 / 成交额| |net_amount_s|小单净额(万)|小单:小于2万股或者4万元的成交单| |net_pct_s|小单净占比(%)|小单净占比 = 小单净额 / 成交额| **返回** 返回一个 pandas.DataFrame 对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应. **示例** +``` + +from jqdata import * + +# 获取一只股票在一个时间段内的资金流量数据 +get_money_flow('000001.XSHE', '2016-02-01', '2016-02-04') +get_money_flow('000001.XSHE', '2015-10-01', '2015-12-30', fields="change_pct") +get_money_flow(['000001.XSHE'], '2010-01-01', '2010-01-30', ["date", "sec_code", "change_pct", "net_amount_main", "net_pct_l", "net_amount_m"]) + +# — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — + +# 获取多只股票在一个时间段内的资金流向数据 +get_money_flow(['000001.XSHE', '000040.XSHE', '000099.XSHE'], '2010-01-01', '2010-01-30') +# 获取多只股票在某一天的资金流向数据 +get_money_flow(['000001.XSHE', '000040.XSHE', '000099.XSHE'], '2016-04-01', '2016-04-01') + +# — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — + +# 获取股票 000001.XSHE 在日期 2016-06-30 往前 20 个交易日的资金流量数据 +get_money_flow('000001.XSHE', end_date="2016-06-30", count=20) +# 获取股票 000001.XSHE 往前 20 个交易日的资金流量数据 +get_money_flow('000001.XSHE', count=20) +``` + + **注意** - 需要导入:from jqdata import * - 在回测中,为避免未来函数,无法获取回测当前逻辑时间的那一条数据(所以有时会出现实际获取数据比count少一条的现象) get_concept获取股票所属概念板块 **数据调用方法** +``` + +get_concept(security, date=None) +``` + + 获取股票所属概念板块。返回一个dict,key为标的代码,value详见示例。 - security:标的代码或包含标的代码的列表 - query_dt:时刻,datetime或时刻形式的字符串,只传入日期代表日内时间为00:00:00. - security: 标的代码或标的列表 - date: 要查询的日期,日期字符串/date对象/datetime对象,注意传入datetime对象时忽略日内时间;默认值为None,研究中默认值为当天,回测中默认值会随着回测日期变化而变化, 等于context.current_dt。 示例: +``` + +{code: { 'jq_concept':[ + { 'concept_code': XX1; 'concept_name': YY1 }, + { 'concept_code': XX2; 'concept_name': YY2 }, + { 'concept_code': XX3; 'concept_name': YY3 }] + } +} +``` + + code是传入的股票代码;多个code返回嵌套的多个字典。 ‘jq_concept’代表聚宽概念; XX是code所在的概念代码; YY是code所在的概念名称。 **示例** +``` + +dict1 = get_concept('000001.XSHE', date='2019-07-15') +print(dict1) +``` + +get_call_auction获取指定时间区间内集合竞价时的 tick 数据 获取指定时间区间内交易日09:25的集合竞价数据,支持股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)和上交所ETF期权(2017年至今)的集合竞价数据,当日的集合竞价数据最晚于9:28分返回。 +``` + +from jqdata import * +get_call_auction(security, start_date=None, end_date=None, fields=None) +``` + + **参数**: - security: 标的代码或者标的代码组成的列表,支持股票、指数、50ETF期权 - start_date: 开始日期,一个时间字符串, 比如"2019-01-01" - end_date: 结束日期,一个时间字符, 比如"2019-02-01" - fields: 选择要获取的行情字段(类似tick数据的每一个字段),字段介绍如下: | 字段名 | 说明 | 字段类型 | | :-------: | :--------------: | :------: | | time | 时间 | datetime | | current | 当前价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | **返回值** 返回一个dataframe,索引为pandas默认的整数索引。 **注意** - fields为None的时候,默认获取全部字段; - start_date和end_date不能为None,否则将抛出异常; - 为了防止返回数据量过大, 我们每次最多返回5000行; **示例** +``` + +from jqdata import * +d = get_call_auction(['000001.XSHE', '000002.XSHE'], start_date='2019-01-01', end_date='2019-10-10',fields=['time', 'current', 'a1_v', 'b1_v']) +print(d) + code time current a1_v b1_v +0 000001.XSHE 2019-01-02 09:25:03 9.3900 13400.0 183300.0 +1 000001.XSHE 2019-01-03 09:25:03 9.1800 99200.0 37200.0 +2 000001.XSHE 2019-01-04 09:25:03 9.2400 47000.0 56500.0 +3 000001.XSHE 2019-01-07 09:25:03 9.8400 186300.0 47300.0 +.. ... ... ... ... ... +352 000002.XSHE 2019-09-19 09:25:03 27.0500 32300.0 18200.0 +353 000002.XSHE 2019-09-20 09:25:03 26.8900 17280.0 700.0 +354 000002.XSHE 2019-09-23 09:25:03 26.4900 199614.0 32300.0 +355 000002.XSHE 2019-09-24 09:25:03 26.2400 701.0 7300.0 + +[356 rows x 5 columns] +``` + +``` + +from jqdata import * +#fields不填,默认获取全部字段数据 +d = get_call_auction('000001.XSHE','2019-08-10','2019-08-20') +print(d) + code time current ... a3_p a4_p a5_p +0 000001.XSHE 2019-08-12 09:25:03 14.61 ... 14.63 14.64 14.65 +1 000001.XSHE 2019-08-13 09:25:03 15.00 ... 15.02 15.03 15.04 +2 000001.XSHE 2019-08-14 09:25:03 15.14 ... 15.17 15.18 15.19 +3 000001.XSHE 2019-08-15 09:25:03 14.64 ... 14.66 14.67 14.68 +4 000001.XSHE 2019-08-16 09:25:03 15.09 ... 15.11 15.12 15.13 +5 000001.XSHE 2019-08-19 09:25:03 14.91 ... 14.93 14.94 14.95 +6 000001.XSHE 2019-08-20 09:25:03 14.92 ... 14.94 14.95 14.96 + +[7 rows x 25 columns] +``` + +get_trade_day根据标的获取指定时刻标的对应的交易日 获取指定时刻标的对应的交易日。返回一个dict,key为标的代码,value为标的在此时刻对应的交易日。 +``` + +get_trade_day(security, query_dt) +``` + + 示例: +``` + +>>> get_trade_day(["RB1901.XSGE", "000001.XSHE"], query_dt="2019-01-04 22:00:00") +{'RB1901.XSGE': datetime.date(2019, 1, 7), '000001.XSHE': datetime.date(2019, 1, 4)} +``` + + **备注** - 对于A股,交易日即为传入时刻的日期; - 对于有夜盘的交易标的: - 若传入时刻处于夜盘,则返回下一个交易日的日期 - 对于错误的标的代码,抛出异常提示代码无效 - 对于未上市或退市标的也返回None - 对于非交易日dt,返回None - dt不提供默认值 - 交易日的定义: - 对于无夜盘品种,以每日0点作为一个交易日的开始,至下一个交易日0点结束; - 对于有夜盘品种,以夜盘集合竞价开始时作为一个交易日开始,至下一个交易日夜盘集合竞价开始时结束; - 如果传入的dt在两个交易日之间,返回上一个交易日; get_history_fundamentals获取多个季度/年度的历史财务数据 获取多个季度/年度的三大财务报表和财务指标数据. 可指定单季度数据, 也可以指定年度数据。可以指定观察日期, 也可以指定最后一个报告期的结束日期 +``` + +get_history_fundamentals(security, fields, watch_date=None, stat_date=None, count=1, interval='1q', stat_by_year=False) +``` + + ##### **参数** - security:股票代码或者股票代码列表。 - fields:要查询的财务数据的列表, 季度数据和年度数据可选择的列不同。示例: [balance.cash_equivalents, cash_flow.net_deposit_increase, income.total_operating_revenue] - watch_date:观察日期, 如果指定, 将返回 watch_date 日期前(包含该日期)发布的报表数据 - stat_date:统计日期, 可以是 '2019'/'2019q1'/'2018q4' 格式, 如果指定, 将返回 stat_date 对应报告期及之前的历史报告期的报表数据 - watch_date 和 stat_date 只能指定一个, 而且必须指定一个 - 如果没有 stat_date 指定报告期的数据, 则该数据会缺失一行. - count:查询历史的多个报告期时, 指定的报告期数量. 如果股票历史报告期的数量小于 count, 则该股票返回的数据行数将小于 count - interval:查询多个报告期数据时, 指定报告期间隔, 可选值: '1q'/'1y', 表示间隔一季度或者一年, 举例说明: - stat_date='2019q1', interval='1q', count=4, 将返回 2018q2,2018q3,2018q4,2019q1 的数据 - stat_date='2019q1', interval='1y', count=4, 将返回 2016q1,2017q1,2018q1,2019q1 的数据 - stat_by_year=True, stat_date='2018', interval='1y', count=4 将返回 2015/2016/2017/2018 年度的年报数据 - stat_by_year:bool, 是否返回年度数据. 默认返回的按季度统计的数据(比如income表中只有单个季度的利润). - 如果是True: - interval必须是 '1y' - 如果指定了 stat_date 的话, stat_date 必须是一个代表年份整数、字符串, 表明统计的年份,比如2019, "2019"。但不能是"20191q"这种格式。 - fields 可以选择 balance/income/cash_flow/indicator/bank_indicator/security_indicator/insurance_indicator 表中的列 - 如果是False: fields只能选择balance/income/cash_flow/indicator 表中的列 ##### **返回值** pandas.DataFrame, 数据库查询结果. 数据格式同 get_fundamentals. 每个股票每个报告期(一季度或者一年)的数据占用一行. ##### **注意** - 不支持valuation市值表 - 推荐用户对结果使用pandas的[groupby](https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.DataFrame.groupby.html)方法来进行分组分析数据 - 每次最多返回5000条数据,更多数据需要根据标的或者时间分多次获取 ##### **示例** +``` + +from jqdata import * +security = ['000001.XSHE', '600000.XSHG'] +df = get_history_fundamentals(security, fields=[balance.cash_equivalents, + cash_flow.net_deposit_increase, income.total_operating_revenue], + watch_date=None, stat_date='2019q1', count=5, interval='1q', stat_by_year=False) +print(df) +print(df.groupby('code').mean()) +``` + +get_valuation 获取多个标的在指定交易日范围内的市值表数据 +``` + +from jqdata import * +get_valuation(security, start_date=None, end_date=None, fields=None, count=None) +``` + + 获取多个标的在指定交易日范围内的市值表数据 ##### **参数** - security: 标的code字符串列表或者单个标的字符串 - end_date: 查询结束时间 - start_date: 查询开始时间,不能与count共用 - count: 表示往前查询每一个标的count个交易日的数据,如果期间标的停牌,则该标的返回的市值数据数量小于count - fields: 财务数据中市值表的字段,返回结果中总会包含code、day字段,可用字段如下: |字段|释义| |--|--| |code| 股票代码 带后缀.XSHE/.XSHG| |day |日期 取数据的日期| | capitalization |总股本(万股)| |circulating_cap| 流通股本(万股)| |market_cap |总市值(亿元)| |circulating_market_cap| 流通市值(亿元)| |turnover_ratio |换手率(%)| |pe_ratio |市盈率(PE, TTM)| |pe_ratio_lyr |市盈率(PE)| |pb_ratio |市净率(PB)| | ps_ratio| 市销率(PS, TTM)| |pcf_ratio| 市现率(PCF, 现金净流量TTM)| ##### **返回值** - 返回一个dataframe,索引默认是pandas的整数索引,返回的结果中总会包含code、day字段。 #### **注意** - 每次最多返回5000条数据,更多数据需要根据标的或者时间分多次获取 - 不要获取当天的估值数据,pe/市值等依赖收盘价的指标是盘后更新的。 ##### **示例** +``` + +from jqdata import * +# 传入单个标的 +df1 = get_valuation('000001.XSHE', end_date="2019-11-18", count=3, fields=['capitalization', 'market_cap']) +print(df1) + +# 传入多个标的 +df2 = get_valuation(['000001.XSHE', '000002.XSHE'], end_date="2019-11-18", count=3, fields=['capitalization', 'market_cap']) +print(df2) +``` + +### jqlib + +名称描述alpha101 Alpha 101 因子 **因子来源** 根据 WorldQuant LLC 发表的论文 [*101 Formulaic Alphas*](https://arxiv.org/ftp/arxiv/papers/1601/1601.00991.pdf) 中给出的 101 个 Alphas 因子公式,我们将公式编写成了函数,方便大家使用。 **详细介绍** 函数计算公式、API 调用方法,输入输出值详情请见:[数据字典 - Alpha 101](https://www.joinquant.com/help/api/help?name=Alpha101). **使用方法** +``` + +# 导入 Alpha101 库 +>>> from jqlib.alpha101 import * + +# 获取沪深300成分股的 alpha_001 因子值 +>>> a = alpha_001('2017-03-10','000300.XSHG') + +# 查看前5行的因子值 +>>> a.head() +000001.XSHE -0.496667 +000002.XSHE 0.226667 +000008.XSHE -0.043333 +000009.XSHE -0.093333 +000027.XSHE -0.030000 +Name: rank_value_boolean, dtype: float64 + +# 查看平安银行的因子值 +>>> a['000001.XSHE'] +-0.49666666666666665 + +# 获取所有股票 alpha_007 的因子值 +>>> a = alpha_007('2014-10-22') +# 查看欣旺达(300207)的因子值 +>>> a['300207.XSHE'] +0.8 + +# 查询函数说明 +>>> alpha_101? +Type: cython_function_or_method +String form: +Docstring: +公式: +((close - open) / ((high - low) + .001)) + +Inputs: + enddate: 查询日期 + index: 股票池 + +Outputs: + 因子的值 +``` + +alpha191 Alpha 191 因子 **因子来源** 根据国泰君安数量化专题研究报告 - [基于短周期价量特征的多因子选股体系](https://file.joinquant.com/198f09d54939dbcd27819bb96f67ac15/%E5%9B%BD%E6%B3%B0%E5%90%9B%E5%AE%89-%E6%95%B0%E9%87%8F%E5%8C%96%E4%B8%93%E9%A2%98%E4%B9%8B%E4%B9%9D%E5%8D%81%E4%B8%89%EF%BC%9A%E5%9F%BA%E4%BA%8E%E7%9F%AD%E5%91%A8%E6%9C%9F%E4%BB%B7%E9%87%8F%E7%89%B9%E5%BE%81%E7%9A%84%E5%A4%9A%E5%9B%A0%E5%AD%90%E9%80%89%E8%82%A1%E4%BD%93%E7%B3%BB-2017-06-16.pdf?_upd=%E5%9B%BD%E6%B3%B0%E5%90%9B%E5%AE%89-%E6%95%B0%E9%87%8F%E5%8C%96%E4%B8%93%E9%A2%98%E4%B9%8B%E4%B9%9D%E5%8D%81%E4%B8%89%EF%BC%9A%E5%9F%BA%E4%BA%8E%E7%9F%AD%E5%91%A8%E6%9C%9F%E4%BB%B7%E9%87%8F%E7%89%B9%E5%BE%81%E7%9A%84%E5%A4%9A%E5%9B%A0%E5%AD%90%E9%80%89%E8%82%A1%E4%BD%93%E7%B3%BB-2017-06-16.pdf)给出了 191 个短周期交易型阿尔法因子,方便大家使用。 **详细介绍** 函数计算公式、API 调用方法,输入输出值详情请见:[数据字典 - Alpha 191](https://www.joinquant.com/help/api/help?name=Alpha191). **使用方法** +``` + +# 导入 Alpha191 库 +>>> from jqlib.alpha191 import * + +# 获取所有股票 alpha_007 的因子值 +>>>end_date = '2017-04-04' +>>>code = list(get_all_securities(['stock'],date=end_date).index) +>>> a = alpha_007(code,end_date) +# 查看欣旺达(300207)的因子值 +>>> a['300207.XSHE'] +1.2494895018526142 + +# 查询函数说明 +>>> alpha_001? +Signature: alpha_001(code, end_date=None) +Docstring: +公式: + (-1 * CORR(RANK(DELTA(LOG(VOLUME),1)),RANK(((CLOSE-OPEN)/OPEN)),6) +Inputs: + code: 股票池 + end_date: 查询日期 +Outputs: + 因子的值 +File: ~/alpha191.py +Type: function +``` + +technical_analysis 技术分析指标 **因子说明** 为了让用户有更多可直接调用的技术分析指标因子,我们计划基于通达信、东方财富、同花顺等的公式,来完善我们的技术分析指标因子库。 我们给出了公式的API、参数说明、返回值的结果及类型说明、备注(相较于上述三家结果及算法的比对)、用法注释及示例,旨在帮助您更方便、更快速的在策略研究中使用这些因子函数。 [技术指标常见问题-动态复权与技术指标](https://www.joinquant.com/view/community/detail/48502bfa85355991258093e990d74f35) **详细介绍** 函数计算公式、API 调用方法,用法注释, 输入输出值详情请见:[数据字典 - 技术分析指标](https://www.joinquant.com/help/api/help?name=technicalanalysis). **使用方法** +``` + +# 导入 Alpha101 库 +>>> from jqlib.technical_analysis import * + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 GDX 值,分别返回:济安线、压力线和支撑线的值。 +gdx_jax, gdx_ylx, gdx_zcx = GDX(security_list1,check_date='2017-01-04', N = 30, M = 9) +print(gdx_jax[security_list1]) +print(gdx_ylx[security_list1]) +print(gdx_zcx[security_list1]) + +# 输出 security_list2 的 GDX 值 +gdx_jax, gdx_ylx, gdx_zcx = GDX(security_list2,check_date='2017-01-04', N = 30, M = 9) +for stock in security_list2: + print(gdx_jax[stock]) + print(gdx_ylx[stock]) + print(gdx_zcx[stock]) + +# 查询函数说明 +>>> GDX? +Signature: GDX(security_list, check_date, N=30, M=9) +Docstring: + 计算公式: + AA:=ABS((2*CLOSE+HIGH+LOW)/4-MA(CLOSE,N))/MA(CLOSE,N); + JAX:DMA(CLOSE,AA); + 压力线:(1+M/100)*JAX; + 支撑线:(1-M/100)*JAX; + AA赋值:(2*收盘价+最高价+最低价)/4-收盘价的N日简单移动平均的绝对值/收盘价的N日简单移动平均 + 输出济安线 = 以AA为权重收盘价的动态移动平均 + 输出压力线 = (1+M/100)*JAX + 输出支撑线 = (1-M/100)*JAX +输入: + security_list:股票列表 + check_date:要查询数据的日期 + N:统计的天数 N + M:统计的天数 M +输出: + 济安线、压力线和支撑线的值。 +输出结果类型: + 字典(dict):键(key)为股票代码,值(value)为数据。 +``` + +### 数据处理函数 + +名称描述neutralize中性化 +``` + +neutralize(series, how=None, date=None, axis=1, fillna=None, add_constant=False) +``` + + **参数** - data: pd.Series/pd.DataFrame , 待中性化的序列,序列的 index 为股票的 code - how: str list 。 中性化使用的因子名称列表。默认为 ['jq_l1', 'market_cap'] 支持的内容包括: - 财务数据:如 'market_cap', 'net_profit'等;也可以输入对数市值'ln_market_cap' 和 对数流通市值 'ln_circulating_market_cap'; - 行业数据:可输入行业分类代码(如 'jq_l1', 'sw_l1')或行业代码(如 'HY001') 行业代码分类会被替换为行业代码,例如输入 how=['jq_l1'] 和 how=['HY001','HY002','HY003','HY004','HY005','HY006','HY007', 'HY008','HY009','HY010','HY011'] 是等价的 - 'jq_l1': 聚宽一级行业 - 'jq_l2': 聚宽二级行业 - 'sw_l1': 申万一级行业 - 'sw_l2': 申万二级行业 - 'sw_l3': 申万三级行业 - [聚宽因子库](https://www.joinquant.com/help/api/help?name=factor_values#%E5%9B%A0%E5%AD%90%E5%88%97%E8%A1%A8)因子名称,如 'operating_profit_ttm', 'VOL240' - 风险因子:可以使用的风险因子包括: ['size', 'beta', 'momentum', 'residual_volatility', 'non_linear_size', 'book_to_price_ratio', 'liquidity', 'earnings_yield', 'growth', 'leverage'] - date: 日期格式 str 将用 date 这天的相关变量数据对 series 进行中性化;请注意date不要为实时数据中的天(例如设置date=datetime.date.today()),因为此时处理依赖的当天财务数据还没有更新,默认依赖数据为Nan;如果依赖数据为Nan , 直接忽略,返回原始数据, 不中性化; - axis: 默认为 1。仅在 data 为 pd.DataFrame 时生效。 表示沿哪个方向做中性化,0 为对每列做中性化,1 为对每行做中性化 - fillna: 缺失值填充方式,默认为None,表示不填充。支持的值: - 'jq_l1': 聚宽一级行业 - 'jq_l2': 聚宽二级行业 - 'sw_l1': 申万一级行业 - 'sw_l2': 申万二级行业 - 'sw_l3': 申万三级行业 表示使用某行业分类的均值进行填充。 - add_constant: 中性化时是否添加常数项, 默认为 False **返回** 中性化后的因子数据 **示例** +``` + +# 导入需要的函数库 +import pandas as pd +import numpy as np +from jqfactor import neutralize +# 生成数据 +data = pd.DataFrame(np.random.rand(3,300), columns=get_index_stocks('000300.XSHG', date='2018-05-02'),index=['a', 'b', 'c']) +# 数据中性化 +neutralize(data, how=['jq_l1', 'market_cap'], date='2018-05-02', axis=1) +``` + +winsorize去极值 +``` + +winsorize(series, scale=None, range=None, qrange=None, inclusive=True, inf2nan=True, axis=1) +``` + + **参数** - data: pd.Series/pd.DataFrame/np.array, 待缩尾的序列 - scale: 标准差倍数,与 range,qrange 三选一,不可同时使用。会将位于 [mu - scale * sigma, mu + scale * sigma] 边界之外的值替换为边界值 - range: 列表, 缩尾的上下边界。与 scale,qrange 三选一,不可同时使用。 - qrange: 列表,缩尾的上下分位数边界,值应在 0 到 1 之间,如 [0.05, 0.95]。与 scale,range 三选一,不可同时使用。 - inclusive: 是否将位于边界之外的值替换为边界值,默认为 True。如果为 True,则将边界之外的值替换为边界值,否则则替换为 np.nan - inf2nan: 是否将 np.inf 和 -np.inf 替换成 np.nan,默认为 True如果为 True,在缩尾之前会先将 np.inf 和 -np.inf 替换成 np.nan,缩尾的时候不会考虑 np.nan,否则 inf 被认为是在上界之上,-inf 被认为在下界之下 - axis: 在 data 为 pd.DataFrame 时使用,沿哪个方向做标准化,默认为 1。 0 为对每列做缩尾,1 为对每行做缩尾。 **返回** 去极值处理之后的因子数据 **示例** +``` + +# 导入需要的函数库 +import pandas as pd +import numpy as np +from jqfactor import winsorize +# 生成数据 +data = pd.DataFrame(np.random.rand(3,300), columns=get_index_stocks('000300.XSHG', date='2018-05-02'),index=['a', 'b', 'c']) +# 数据去极值 +winsorize(data, qrange=[0.05,0.93], inclusive=True, inf2nan=True, axis=1) +``` + +winsorize_med中位数去极值 +``` + +winsorize_med(series, scale=1, inclusive=True, inf2nan=True, axis=1) +``` + + **参数** - data: pd.Series/pd.DataFrame/np.array, 待缩尾的序列 - scale: 倍数,默认为 1.0。会将位于 [med - scale * distance, med + scale * distance] 边界之外的值替换为边界值/np.nan - inclusive bool 是否将位于边界之外的值替换为边界值,默认为 True。 如果为 True,则将边界之外的值替换为边界值,否则则替换为 np.nan - inf2nan: 是否将 np.inf 和 -np.inf 替换成 np.nan,默认为 True。如果为 True,在缩尾之前会先将 np.inf 和 -np.inf 替换成 np.nan,缩尾的时候不会考虑 np.nan,否则 inf 被认为是在上界之上,-inf 被认为在下界之下 - axis: 在 data 为 pd.DataFrame 时使用,沿哪个方向做标准化,默认为 1。0 为对每列做缩尾,1 为对每行做缩尾 **返回** 中位数去极值之后的因子数据 **示例** +``` + +# 导入需要的函数库 +import pandas as pd +import numpy as np +from jqfactor import winsorize_med +# 生成数据 +data = pd.DataFrame(np.random.rand(3,300), columns=get_index_stocks('000300.XSHG', date='2018-05-02'),index=['a', 'b', 'c']) +# 数据中位数去极值 +winsorize_med(data, scale=1, inclusive=True, inf2nan=True, axis=0) +``` + +standardlize标准化(z-score) +``` + +standardlize(series, inf2nan=True, axis=1) +``` + + **参数** - data: pd.Series/pd.DataFrame/np.array, 待标准化的序列 - inf2nan: 是否将 np.inf 和 -np.inf 替换成 np.nan。默认为 True - axis=1: 在 data 为 pd.DataFrame 时使用,如果 series 为 pd.DataFrame,沿哪个方向做标准化。0 为对每列做标准化,1 为对每行做标准化 **返回** 标准化后的因子数据 **示例** +``` + +# 导入需要的函数库 +import pandas as pd +import numpy as np +from jqfactor import standardlize +# 生成数据 +data = pd.DataFrame(np.random.rand(3,300), columns=get_index_stocks('000300.XSHG', date='2018-05-02'),index=['a', 'b', 'c']) +# 数据标准化 +standardlize(data, inf2nan=True, axis=0) +``` + +### 组合优化函数 + +##### portfolio_optimizer - 投资组合优化 + +``` + +portfolio_optimizer(date, securities, target, constraints, bounds=[Bound(0.0, 1.0)], default_port_weight_range=[0.0, 1.0], ftol=1e-9, return_none_if_fail=True) +``` + +优化函数, 用于计算在某些约束条件下的最优组合权重 + +- 参数 + +- date: 优化发生的日期,请注意未来函数 +- securities: 股票代码列表 +- target: 优化目标函数,只能选择一个,目标函数详见下方 +- constraints: 限制函数,用以对组合总权重进行限制,可设置一个或多个相同/不同类别的函数,限制函数详见下方 +- bounds: 边界函数,用以对组合中单标的权重进行限制,可设置一个或多个相同/不同类别的函数,边界函数详见下方。如果不填,默认为 Bound(0., 1.);如果有多个 bound,则一只股票的权重下限取所有 Bound 的最大值,上限取所有 Bound 的最小值 +- default_port_weight_range: 长度为2的列表,默认的组合权重之和的范围,默认值为 [0.0, 1.0]。如果限制函数(constraints) 中没有 WeightConstraint 或 WeightEqualConstraint 限制,则会添加 WeightConstraint(low=default_port_weight_range[0], high=default_port_weight_range[1]) 到 constraints列表中。 +- ftol: 默认为 1e-9,优化函数触发结束的函数值。当求解结果精度不够时可以适当降低 ftol 的值,当求解时间过长时可以适当提高 ftol 值 +- return_none_if_fail: 默认为 True,如果优化失败,当 return_none_if_fail 为 True 时返回 None,为 False 时返回全为 0 的组合权重 + +#### 相关参数 + +参数名称描述目标函数(target)优化目标函数,只能选择一个 - MinVariance(count=250) - 组合风险最小化(最小化组合方差) ​ 最小化组合方差 - 参数: count: 默认为 250,向前取 returns 的天数 - 示例: target = MinVariance(count=250) - MaxProfit(count=250) - 组合收益最大化 - 参数: count: 默认为 250,向前取 returns 的天数 - 示例: target = MaxProfit(count=250) - MaxSharpeRatio(rf=0.0, weight_sum_equal=1.0, count=250) - 组合夏普比率最大化 - 参数: rf: 年化无风险利率,默认为 0 weight_sum_equal:组合总权重的值(默认值为1.0),在该权重下进行优化,使得组合的夏普比率最大化 count: 默认为 250,向前取 returns 的天数 - 示例: target = MaxSharpeRatio(count=250) - MinTrackingError(benchmark, count=250) - 追踪误差最小化 - 参数: benchmark: 基准的 ticker,例如 '000300.XSHG' count: 默认为 250,向前取 returns 的天数 - 示例: target = MinTrackingError(benchmark='000300.XSHG', count=250) - RiskParity(count=250, risk_budget=None) - 风险平价 风险平价(Risk Parity)是对投资组合中不同资产分配相同的风险权重的一种资产配置理念,资产配置的风险平价方法允许投资者针对具体的风险水平,并在整个投资组合中平均分配风险,以实现每个投资者的最佳投资组合多元化。 - 参数: count: 默认为 250,向前取 returns 的天数 risk_budget: pandas.Series,风险预算,股票的每只对组合风险的贡献,risk_budget 为 None默认为每只股票贡献相等 - 示例: target = RiskParity(count=250, risk_budget=pd.Series([0.3, 0.3, 0.4], index=['000001.XSHE', '000002.XSHE', '000005.XSHE'])) - MaxScore(scores) - 打分最大化 在满足约束条件的情况下,给予打分高的标的更高权重(前提假设:用户已知晓打分大的标的表现更好)。 如有经过因子分析检验,打分越高越有正向效果的[A,B,C] 三只标的,打分分别为 [3,2,1] , 约束条件为年化波动率小于15%。 如果组合全部配置A可获得最高的收益,但波动率大于15%,不满足约束条件;通过优化器优化,则会配置一定比例的B与C,在满足波动率小于15%的条件下,获得最高收益。 - 参数: scores: pandas.Series,每只股票的打分 - 示例: target = MaxScore(scores=pd.Series([0.1, 0.2, 0.3], index=['000001.XSHE', '000002.XSHE', '000005.XSHE'])) - MinScore(scores) - 打分最小化 在满足约束条件的情况下,给予打分低的标的更高权重(前提假设:用户已知晓打分小的标的表现更好)。可参考 [打分最大化] 的示例说明。 - 参数: scores: pandas.Series,每只股票的打分 - 示例: target = MinScore(scores=pd.Series([0.1, 0.2, 0.3], index=['000001.XSHE', '000002.XSHE', '000005.XSHE'])) - MaxFactorValue(factor, count=1) - 因子值最大化(只支持股票) 在满足约束条件的情况下,给予因子值大的标的更高权重(前提假设:用户已知晓因子值大的标的表现更好)。可参考 [打分最大化] 的示例说明。 - 参数: factor: Factor 的子类 count: 默认为 1,用过去几天的因子取平均 - 示例: +```python +from jqfactor import Factor # 定义因子:人气指标5日均值 class AR(Factor): name = 'AR_M5' # 每天获取过去五日的数据 max_window = 5 # 获取的数据是人气指标 dependencies = ['AR'] def calc(self, data): return data['AR'].mean() target = MaxFactorValue(factor=AR, count=1) +``` +- MinFactorValue(factor, count=1) - 因子值最小化(只支持股票) 在满足约束条件的情况下,给予因子值小的标的更高权重(前提假设:用户已知晓因子值小的标的表现更好)。可参考 [打分最大化] 的示例说明。 - 参数: factor: Factor 的子类 count: 默认为 1,用过去几天的因子取平均 - 示例: 参考 [因子值最大化] 的示例 限制函数(constraints)用以对组合总权重进行限制,可设置一个或多个相同/不同类别的函数 - WeightConstraint(low=0.0, high=1.0) - 组合总权重限制 设定组合优化结果总权重的上下限,即优化结果的总权重在此范围间。 - 参数: low: 默认为 0.0,权重下限 high: 默认为 1.0,权重上限 - 示例: constraint = WeightConstraint(low=0.5, high=0.9) - WeightEqualConstraint(limit=1.0) - 组合总权重和限制 设定组合优化结果总权重的和,即优化结果的总权重等于该值。 - 参数: limit: 默认为 1.0,组合权重等式约束 - 示例: constraint = WeightEqualConstraint(limit=0.5) - AnnualStdConstraint(limit, count=250) - 组合年化收益率标准差限制 - 参数: limit: 标准差上限 count: 默认为 250,向前取 returns 的天数 - 示例: constraint = AnnualStdConstraint(limit=0.15, count=250) - AnnualProfitConstraint(limit, count=250) - 组合年化收益率预期限制 - 参数: limit: 收益率预期下限 count: 默认为 250,向前取 returns 的天数 - 示例: constraint = AnnualProfitConstraint(limit=0.1, count=250) - IndustryConstraint(industry_code, low=0.0, high=1.0) - 组合行业权重限制 - 参数: industry_code: 单一或多个[行业代码](https://www.joinquant.com/help/api/help?name=plateData),如 'HY001'。如果为多个行业代码的列表,则表示所有属于列表中行业的股票的权重之和满足限制条件 low: 默认为 0.0,行业权重下限 high: 默认为 1.0,行业权重上限 - 示例: constraint = IndustryConstraint(['HY007'], low=0.0, high=0.2) - IndustriesConstraint(industry_code, low=0.0, high=1.0)- 组合行业分类权重限制 - 参数: industry_code: [行业分类代码](https://www.joinquant.com/help/api/help?name=api#get_industries),如 'jq_l1'。表示这个行业分类下的所有行业都需满足权重限制 low: 默认为 0.0,行业权重下限 high: 默认为 1.0,行业权重上限 - 示例: constraint = IndustriesConstraint('jq_l1', low=0.0, high=0.2) - MarketConstraint(market_type, low=0.0, high=1.0) - 组合市场权重限制 - 参数: market_type: ('stock', 'index', 'fund', 'futures', 'etf', 'lof', 'fja', 'fjb', 'open_fund', 'bond_fund', 'stock_fund', 'QDII_fund', 'money_market_fund', 'mixture_fund') 中的一种 low: 默认为 0.0,市场权重下限 high: 默认为 1.0,市场权重上限 - 示例: constraint = MarketConstraint('stock', low=0.0, high=0.2) - ExposureConstraint(factor, low=0.0, high=1.0, count=1) - 因子暴露限制 - 参数: factor: Factor 的子类 low: 默认为 0.0,因子暴露度下限 high: 默认为 1.0,因子暴露度上限 count: 默认为 1,用过去几天的因子取平均 - 示例: +```python +from jqfactor import Factor # 定义因子:人气指标5日均值 class AR(Factor): name = 'AR_M5' # 每天获取过去五日的数据 max_window = 5 # 获取的数据是人气指标 dependencies = ['AR'] def calc(self, data): return data['AR'].mean() constraint = ExposureConstraint(AR, low=0.0, high=10.0, count=1) +``` +- 风险暴露限制函数 - BarraConstraint(size=None, beta=None, momentum=None, residual_volatility=None, no_linear_size=None, book_to_price=None, liquidity=None, earning_yield=None, growth=None, leverage=None, standardlize=True, winsorize=True) - 参数: - 其中 size/beta/momentum/residual_volatility/no_linear_size/book_to_price/liquidity/earning_yield/growth/leverage - 分别代表'市值因子'/'贝塔因子'/'动量因子'/'残差波动因子'/'非线性市值因子'/'账面市值比因子'/'流动性因子'/'盈利预期因子'/'成长因子'/'杠杆因子'; - 需传入长度为2的列表, 代表对应因子的上下限, 如 [-0.5, 0.5], 默认为 None, 即无限制 - standardlize: 是否对因子值进行标准化处理, 默认为 True - winsorize: 是否对因子值去极值, 默认为 True, 即将因子值 [MED-3*MEDMED, MED+3*MEDMED] 之外的因子值赋成边界值 (MED 为因子值的中位数, MEDMED 为 ABS(因子值-MED) 的中位数) - 示例: +```python +constraint = BarraConstraint(size=[-0.5, 0.5], beta=[None, 1.5], winsorize=False) +``` +- IndustryDeviationConstraint - 行业偏离度限制 某一行业权重与基准权重偏离度限制 IndustryDeviationConstraint(industry_code, benchmark, limit) - 参数: industry_code: 单一[行业代码](https://www.joinquant.com/help/api/help?name=plateData)或者行业代码的列表,如 'HY001'。 benchmark: 基准指数代码 limit: 偏离度限制 - 例子: constraint = IndustryDeviationConstraint(industry_code='HY001', benchmark='000300.XSHG', limit=0.05) - IndustriesDeviationConstraint - 行业分类偏离度限制 行业分类权重与基准权重偏离度限制 IndustriesDeviationConstraint(industry_code, benchmark, limit) - 参数: industry_code: [行业分类代码](https://www.joinquant.com/help/api/help?name=api#get_industries),如 'jq_l1'。表示这个行业分类下的所有行业都需满足权重限制 benchmark: 基准指数代码 limit: 偏离度限制 - 例子: constraint = IndustriesDeviationConstraint(industry_code='HY001', benchmark='000300.XSHG', limit=0.05) - TrackingErrorConstraint - 追踪误差限制 TrackingErrorConstraint(benchmark, limit, count=250) - 参数: benchmark: 基准的 ticker,例如 '000001.XSHE' limit: (年化)追踪误差限制 count: 默认为 250,向前取 returns 的天数 - 例子: constraint = TrackingErrorConstraint(benchmark='000001.XSHE', limit=0.1, count=250) - TurnoverConstraint - 换手率限制 TurnoverConstraint(limit, current_portfolio=None) - 参数: limit: 换手率限制 current_portfolio: 默认为 None,当前投资组合权重,如果为 None 则认为是空仓 - 例子: constraint = TurnoverConstraint(limit=0.5, current_portfolio=pd.Series([0.1, 0.2, 0.3, 0.4], index=['000001.XSHE', '000002.XSHE', '000004.XSHE', '000005.XSHE'])) - RatioConstraint - 比率限制 RatioConstraint(ratio, low=None, high=None, rf=None, benchmark=None, count=250) - 参数: ratio: 比率名称,可选 "sharpe_ratio" / "information_ratio" / "calmar_ratio" / "omega_ratio" / "sortino_ratio" / "var" / "cvar" low: 默认为 None,比率的下限,如果为 None 则无下限 high: 默认为 None,比率的上限,如果为 None 则无上限 rf: 默认为 None, 无风险利率,适用于 "sharpe_ratio" / "omega_ratio",如果为 None 则认为是 0 benchmark: 默认为 None, 基准,适用于 "information_ratio"。如果为 None 则认为是 '000300.XSHG' count: 默认为 250,向前取 returns 的天数 - 例子: constraint = RatioConstraint('var', low=-0.03) constraint = RatioConstraint('sharpe_ratio', low=1, rf=0.02, count=300) - MaxDrawdownConstraint(limit, count=250) - 最大回撤限制 - 参数: limit: 最大回撤限制,如 -0.25 count: 默认为 250,向前取 returns 的天数 - 例子: constraint = MaxDrawdownConstraint(-0.25) 边界函数(bounds)用以对组合中单标的权重进行限制,可设置一个或多个相同/不同类别的函数 - Bound(low=0.0, high=1.0) - 每只标的的权重限制 - 参数: low: 默认为 0.0,每只标的的权重下限 high: 默认为 1.0,每只标的的权重上限 - 示例: bound = Bound(low=0.0, high=0.1) - IndustryBound(industry_code, low=0.0, high=1.0) - 属于某一行业的每只股票的权重限制 - 参数: industry_code: 单一[行业代码](https://www.joinquant.com/help/api/help?name=plateData)或者行业代码的列表。 low: 默认为 0.0,如果一只股票属于所选行业,则股票权重的下限为 low,否则下限为 0 high: 默认为 1.0,如果一只股票属于所选行业,则股票权重的上限为 high,否则上限为 1 - 示例: bound = IndustryBound(['HY001', 'HY007'], low=0.0, high=0.05) - LiquidityBound(limit, capital, count=1, subset=None) - 流动性限制 购买数量不超过成交量的百分比 - 参数: limit: 成交量百分比限制,如 0.5 capital: 目前可用资金,如 1000000 count: 前几个交易日的平均成交量,默认为 1 subset: 股票代码的列表,限制只有特定的股票需要满足流动性限制,如 ['000001.XSHE', '000002.XSHE'],默认为 None,即所有股票都要满足流动性限制 - 例子: +```python +bound = LiquidityBound(0.5, capital=1000000) bound = LiquidityBound(0.25, capital=1000000, count=5, subset=['000001.XSHE', '000002.XSHE']) +``` +- CapBound(limit, capital, count=1, subset=None) - 市值限制 购买金额不超过总市值的百分比 - 参数: limit: 市值百分比限制,如 0.025 capital: 目前可用资金,如 100000000 count: 前几个交易日的平均市值,默认为 1 subset: 股票代码的列表,限制只有特定的股票需要满足市值限制,如 ['000001.XSHE', '000002.XSHE'],默认为 None,即所有股票都要满足市值限制 - 例子: bound = CapBound(0.025, capital=100000000, subset=['000001.XSHE', '000002.XSHE']) 示例代码给了五个应用示例,修改参数即可生效 +``` + +# 导入函数库 +import pandas as pd +from jqdata import * +from jqfactor import Factor +from jqlib.optimizer import * + +# 初始化函数,设定基准等等 +def initialize(context): + # 设定沪深300作为基准 + set_benchmark('000300.XSHG') + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + + # 过滤掉order系列API产生的比error级别低的log + # log.set_level('order', 'error') + + ### 股票相关设定 ### + # 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱 + set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, + min_commission=5), type='stock') + + # 优化器设置 + g.optimizer = 2 #设定使用的优化模型 + optimize_model = { + 1:"模型1:等权重配置", + 2:"模型2:组合风险平价;股票的总权重限制为0到90%,ETF的总权重限制为0到10%;每只标的权重不超过10%", + 3:"模型3:组合风险最小化(最小化组合方差);组合总权重限制为90%到100%;组合年化收益率目标下限为10%", + 4:"模型4:'人气指标5日均值'最大化;组合年化收益率目标下限为10%;每只标的权重不超过20%", + 5:"模型5:组合夏普比率最大化;每只标的权重不超过10%" + } + print("优化%s"%(optimize_model[g.optimizer])) + + ## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的) + # 开盘前运行 + run_monthly(before_market_open, monthday=1, time='09:00', reference_security='000300.XSHG') + # 开盘运行 + run_monthly(market_open, monthday=1, time='09:30', reference_security='000300.XSHG') + +## 开盘前运行函数 +def before_market_open(context): + print('调仓日期:%s'%context.current_dt.date()) + + # 选出上证50成分股的一部分与选定的ETF基金进行组合,构成股票池。 + etf = [ + '159902.XSHE', + '159903.XSHE', + '510050.XSHG', + '510880.XSHG', + '510440.XSHG', + ] + g.buy_list = list(get_index_stocks('000016.XSHG')[-15:]) + etf + +## 开盘时运行函数 +def market_open(context): + # 将不在股票池中的股票卖出 + sell_list = set(context.portfolio.positions.keys()) - set(g.buy_list) + for stock in sell_list: + order_target_value(stock, 0) + + # 组合优化模型 + if g.optimizer == 1: + # 模型1:等权重配置 + optimized_weight = pd.Series(data=[1.0/len(g.buy_list)]*len(g.buy_list), + index=g.buy_list) + elif g.optimizer == 2: + # 模型2:组合风险平价;股票的总权重限制为0到90%,ETF的总权重限制为0到10%;每只标的权重不超过10% + optimized_weight = portfolio_optimizer(date=context.previous_date, + securities = g.buy_list, + target = RiskParity(count=250, risk_budget=None),# risk_budget 为 None默认为每只股票贡献相等 + constraints = [MarketConstraint('stock', low=0.0, high=0.9), + MarketConstraint('etf', low=0.0, high=0.1)], + bounds=[Bound(0, 0.1)], + default_port_weight_range=[0., 1.0], + ftol=1e-09, + return_none_if_fail=True) + elif g.optimizer == 3: + # 模型3:组合风险最小化(最小化组合方差);组合总权重限制为90%到100%;组合年化收益率目标下限为10% + optimized_weight = portfolio_optimizer(date=context.previous_date, + securities = g.buy_list, + target = MinVariance(count=250), + constraints = [WeightConstraint(low=0.9, high=1.0), + AnnualProfitConstraint(limit=0.1, count=250)], + bounds=[], + default_port_weight_range=[0., 1.0], + ftol=1e-09, + return_none_if_fail=True) + elif g.optimizer == 4: + # 模型4:组合标的因子值最大化 + + # 定义因子:人气指标5日均值 + class AR(Factor): + name = 'ar' + # 每天获取过去五日的数据 + max_window = 5 + # 获取的数据是人气指标 + dependencies = ['AR'] + def calc(self, data): + return data['AR'].mean() + # 模型4:'人气指标5日均值'最大化;组合年化收益率目标下限为10%;每只标的权重不超过20% + optimized_weight = portfolio_optimizer(date=context.previous_date, + securities = g.buy_list, + target = MaxFactorValue(factor=AR, count=1), + constraints = [AnnualProfitConstraint(limit=0.2, count=250)], + bounds=[Bound(0, 0.2)], + default_port_weight_range=[0., 1.0], + ftol=1e-09, + return_none_if_fail=True) + elif g.optimizer == 5: + # 模型5:组合夏普比率最大化;每只标的权重不超过10% + optimized_weight = portfolio_optimizer(date=context.previous_date, + securities = g.buy_list, + target = MaxSharpeRatio(rf=0.0,weight_sum_equal=0.5, count=250),#无风险利率为0,最大化夏普比率需要约束组合权重的和为0.5 + constraints = [], + bounds=[Bound(0, 0.1)], + default_port_weight_range=[0., 1.0], + ftol=1e-09, + return_none_if_fail=True) + + # 查看优化结果 + print(optimized_weight) + + # 优化失败,给予警告 + if type(optimized_weight) == type(None): + print('警告:组合优化失败') + # 按优化结果,执行调仓操作 + else: + total_value = context.portfolio.total_value # 获取总资产 + for stock in optimized_weight.keys(): + value = total_value * optimized_weight[stock] # 确定每个标的的权重 + order_target_value(stock, value) # 调整标的至目标权重 +``` + +### 交易函数 + +**提示** + +- 所有下单函数可以在 handle_data中 与 [定时运行函数](#task_func) 的 time 参数为 "every_bar"或具体的时间点(例如:time='10:00')时使用 +- 创建订单失败(返回None)的可能原因: 股票停牌;标的代码错误、已退市、未上市;账户错误(如给股票下单,指定pindex为期货账户);调整下单手数为0;股票下空单等 +- 了解更多:[关于下单函数的说明](https://www.joinquant.com/view/community/detail/3c7c9e987e011d531cf81222c83f7925) + +名称描述order 按股数下单 +``` + +order(security, amount, style=None, side='long', pindex=0, close_today=False) +``` + + 买卖标的。调用成功后, 您将可以调用[get_open_orders]取得所有未完成的交易, 也可以调用[cancel_order]取消交易 **参数** - security: 标的代码 - amount: 交易数量, 正数表示买入, 负数表示卖出 - style: 参见[OrderStyle](https://www.joinquant.com/help/api/help#api:OrderStyle), None代表MarketOrder - side: 'long'/'short',操作多单还是空单。默认为多单,**股票、基金暂不支持开空单**。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0 指定第一个 subportfolio, 1 指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 - 不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。 **返回** Order对象或者None, 如果创建订单成功, 则返回Order对象, 失败则返回None **示例** +``` + +#买入平安银行股票100股 +order('000001.XSHE', 100) # 下一个市价单 +order('000001.XSHE', 100, MarketOrderStyle()) # 下一个市价单, 功能同上(科创板市价单需要指定保护价) +order('688001.XSHG', 100, MarketOrderStyle(10)) #科创板设置保护价, 买入时成交价不得高于10元 +order('000001.XSHE', 100, LimitOrderStyle(10.0)) # 以10块价格下一个限价单 +``` + + **可能的失败原因**: 1. 股票数量经调整后变成0 (请看下面的说明) 2. 股票停牌 3. 股票未上市或者退市 4. 股票不存在 5. 为股票、基金开了空单 6. 选择了不存在的仓位号,如没有建立多个仓位,而设定pindex的数大于0 7. 科创板市价单未指定保护价 **注意**: - 因为下列原因, 有时候实际买入或者卖出的股票数量跟您设置的不一样,这个时候我们会在您的log中添加警告信息。 1. 买入时会根据您当前的现金来限制您买入的数量 2. 卖出时会根据您持有股票的数量来限制您卖出的数量 3. 我们会遵守A股交易规则: 每次交易数量只能是100的整数倍, 但是卖光所有股票时不受这个限制(科创板200起可交易200以上的零散股) - 根据交易所规则, 每天结束时会取消所有未完成交易 order_target 目标股数下单 +``` + +order_target(security, amount, style=None, side='long', pindex=0, close_today=False) +``` + + 买卖标的, 使最终标的的数量达到指定的amount,注意使用此接口下单时若指定的标的有未完成的订单,则先前未完成的订单将会被取消 **参数** - security: 标的代码 - amount: 期望的最终数量 - style: 参见[OrderStyle](https://www.joinquant.com/help/api/help#api:OrderStyle), None代表MarketOrder - side: 'long'/'short',操作多单还是空单。默认为多单。默认为多单,**股票、基金暂不支持开空单**。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 - 不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None **示例** +``` + +# 卖出平安银行所有股票 +order_target('000001.XSHE', 0) +# 买入平安银行所有股票到100股 +order_target('000001.XSHE', 100) +order_target('688001.XSHG', 100, MarketOrderStyle(10)) #科创板设置保护价, 买入时成交价不得高于10 +``` + +order_value 按价值下单 +``` + +order_value(security, value, style=None, side='long', pindex=0, close_today=False) +``` + + 买卖价值为value的标的。 **参数** - security: 股票名字 - value: 股票价值,value = 最新价 * 手数 * 保证金率(股票为1) * 乘数(股票为100) - style: 参见[OrderStyle](https://www.joinquant.com/help/api/help#api:OrderStyle), None代表MarketOrder - side: 'long'/'short',操作多单还是空单。默认为多单。默认为多单,**股票、基金暂不支持开空单**。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 - 不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None **示例** +``` + +#卖出价值为10000元的平安银行股票 +order_value('000001.XSHE', -10000) +#买入价值为10000元的平安银行股票 +order_value('000001.XSHE', 10000) +order_value('688001.XSHG', 100, MarketOrderStyle(10)) #科创板设置保护价, 买入时成交价不得高于10元 +``` + +order_target_value 目标价值下单 +``` + +order_target_value(security, value, style=None, side='long', pindex=0, close_today=False) +``` + + 调整标的仓位到value价值,注意使用此接口下单时若指定的标的有未完成的订单,则先前未完成的订单将会被取消 **参数** - security: 标的名字 - value: 期望的标的最终价值,value = 最新价 * 手数 * 保证金率(股票为1) * 乘数(股票为100) - style: 参见[OrderStyle](https://www.joinquant.com/help/api/help#api:OrderStyle), None代表MarketOrder - side: 'long'/'short',操作多单还是空单。默认为多单。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 - 不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None **示例** +``` + +#卖出平安银行所有股票 +order_target_value('000001.XSHE', 0) +#调整平安银行股票仓位到10000元价值 +order_target_value('000001.XSHE', 10000) +order_target_value('688001.XSHG', 100, MarketOrderStyle(10)) #科创板设置保护价, 买入时成交价不得高于10元 +``` + +cancel_order 撤单 +``` + +cancel_order(order) +``` + + 取消订单 **参数** - order: [Order]对象或者order_id **返回** Order对象或者None, 如果取消委托成功, 则返回Order对象, 委托不存在返回None **示例** +``` + +#每个交易日结束运行 +def after_trading_end(context): + # 得到当前未完成订单 + orders = get_open_orders() + # 循环,撤销订单 + for _order in orders.values(): + cancel_order(_order) +``` + +get_open_orders 获取未完成订单 +``` + +get_open_orders() +``` + + 获得当天的所有未完成的订单 **参数** 无 **返回** 返回一个dict, key是order_id, value是[Order]对象 **示例** +``` + +#每个交易日结束运行 +def after_trading_end(context): + #得到当前未完成订单 + orders = get_open_orders() + for _order in orders.values(): + log.info(_order.order_id) +``` + +get_orders 获取订单信息 +``` + +get_orders(order_id=None, security=None, status=None) +``` + + 获取当天的所有订单 **参数** - order_id: 订单 id - security: 标的代码,可以用来查询指定标的的所有订单 - status: [OrderStatus], 查询特定订单状态的所有订单 **返回** 返回一个dict, key是order_id, value是[Order]对象 **示例** +``` + +#每个交易日结束运行 +def after_trading_end(context): + #得到当天所有订单 + orders = get_orders() + for _order in orders.values(): + log.info(_order.order_id) + + # 根据订单id查询订单 + get_orders(order_id='1517627499') + + # 查询所有标的为 000002.XSHE 的订单 + get_orders(security='000002.XSHE') + + # 查询订单状态为 OrderStatus.held 的所有订单 + get_orders(status=OrderStatus.held) + + # 查询标的为 000002.XSHE 且状态为 OrderStatus.held 的所有订单 + get_orders(security='000002.XSHE', status=OrderStatus.held) +``` + + **注意** 非交易时间下单,开盘后订单状态会从new变为open;new是指订单新创建未委托;open是指已委托未完成。 get_trades 获取成交信息 +``` + +get_trades() +``` + + 获取当天的所有成交记录, 一个订单可能分多次成交 **参数** 无 **返回** 返回一个dict, key是trade_id, value是[Trade]对象 **示例** +``` + +#每个交易日结束运行 +def after_trading_end(context): + #得到当天所有成交记录 + trades = get_trades() + for _trade in trades.values(): + log.info(_trade.trade_id) +``` + +inout_cash账户出入金 +``` + +inout_cash(cash, pindex=0) +``` + + 账户转入或转出资金,当日的出入金从当日开始记入成本,用于计算收益,即当日结束计算收益时的本金是包含当日出入金金额的; **参数** - cash: 可正可负,正为入金,负为出金。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,默认为0。 **示例** +``` + +# 查看账户可用资金 +log.info('账户可用资金:',context.portfolio.subportfolios[0].available_cash) +# 增加资金:6666 +inout_cash(6666, pindex=0) +# 查看增加资金之后账户的可用资金 +log.info('账户可用资金:',context.portfolio.subportfolios[0].available_cash) +``` + +batch_submit_orders篮子下单 +``` + +batch_submit_orders(orders) +``` + + 对一系列标的进行批量委托,委托时会对每一个委托进行验资验券,若其中任一个委托校验失败,则整个委托将会失败 **参数** orders: 一个list,元素是包含订单信息的dict +``` + +[{ +'security': 'xxxx', +'amount': 'xxxx', # amount > 0 为买入,< 0 为卖出 +'style': xxxx, # 同 order()的style参数, 可选, 默认是 None + 'side': 'long', # 默认是'long' +}, + ... +] +``` + + - security: 标的代码 - amount: 交易数量, 正数表示买入, 负数表示卖出 - style: 参见[order styles], None代表MarketOrder - side: 'long'/'short',操作多单还是空单。默认为多单,**股票、基金暂不支持开空单**。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0 指定第一个 subportfolio, 1 指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 - 对其他交易所标的: - close_today = True, 优先平今,超出则平昨仓 - close_today = False, 优先平昨,超出则平今仓 **返回** 一个包含Order对象的list **示例** +``` + +#买入平安银行和福耀玻璃各股票100股 +orders=[{ + "security":"000001.XSHE", + "amount":100, + "pindex":0}, +{ + "security":"600660.XSHG", + "amount":100, + "pindex":0}, +] + +batch_submit_orders(orders) +``` + +batch_cancel_orders篮子撤单 +``` + +batch_cancel_orders(orders) +``` + + 批量撤单 **参数** - orders:列表,包含订单对象或订单ID。 ### 对象♠ + +名称描述 g全局变量对象 全局对象 g,用来存储用户的各类可被pickle.dumps函数序列化的全局数据 在模拟盘中,进程每天都会重启,我们会使用[pickle.dumps]序列化所有的g下面的变量内容, 保存到磁盘中,再启动的时候模拟盘就不会有任何数据影响。如果没有用g声明,会出现模拟盘重启后,变量数据丢失的问题。 **如果不想 g 中的某个变量被序列化, 可以让变量以 '__' 开头, 这样, 这个变量在序列化时就会被忽略** **注意保存的大小有限制,上限30M,超出后将报错** **注意避免对context及其下属的order/trade/position等对象进行持久化保存,因为账户信息是可变的,这种操作可能导致异常** **注意尽量不要将全局变量的声明/初始化放在函数体外, 否则每次进程重启时都会被执行** 更多模拟盘细节, 请看 [模拟盘注意事项](https://www.joinquant.com/help/api/help#api:%E6%A8%A1%E6%8B%9F%E7%9B%98%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9). +``` + +def initialize(context): + g.security = "000001.XSHE" + g.count = 1 + g.flag = 0 + +def process_initialize(context): + # 保存不能被序列化的对象, 进程每次重启都初始化, 更多信息, 请看 [process_initialize] + g.__q = query(valuation) + +def handle_data(context, data): + log.info(g.security) + log.info(g.count) + log.info(g.flag) +``` + +Context策略信息总览,包含账户、时间等信息 - subportfolios: 当前单个操作仓位的资金、标的信息,是一个[SubPortfolio](#subportfolios) 的数组 - portfolio: 账户信息,即subportfolios 的汇总信息, [Portfolio](#portfolio)对象,单个操作仓位时,portfolio 指向 subportfolios[0] - current_dt: 当前单位时间的开始时间, [datetime.datetime]对象 - previous_date: 前一个交易日, [datetime.date]对象, 注意, 这是一个日期, 是 date, 而不是 datetime - universe: 查询set_universe()设定的股票池, 比如: ['000001.XSHE', '600000.XSHG'] - run_params: 表示此次运行的参数, 有如下属性 - start_date: 回测/模拟开始日期, [datetime.date]对象 - end_date: 回测/模拟结束日期, [datetime.date]对象 - type: 运行方式, 如下四个字符串之一 'simple_backtest': 回测, 通过点击'编译运行'运行 'full_backtest': 回测, 通过点击'运行回测'运行 'sim_trade': 模拟交易 - frequency: 运行频率, 如下三个字符串之一 'day' 'minute' 'tick' - 为了让从其他平台迁移过来的同学更顺手的使用系统, 我们对此对象也做了和 [g] 一样的处理: - 可以添加自己的变量, 每次进程关闭时持久保存, 进程重启时恢复. - 以 '__' 开头的变量不会被持久保存 - 如果添加的变量与系统的冲突, 将覆盖掉系统变量, 如果想恢复系统变量, 请删除自己的变量. 示例: +```python +def handle_data(context, data): # 执行下面的语句之后, context.portfolio 的整数 1 context.portfolio = 1 log.info(context.portfolio) # 要恢复系统的变量, 只需要使用下面的语句即可 del context.portfolio # 此时, context.portfolio 将变成账户信息. log.info(context.portfolio.total_value) +``` +- 我们以后可能会往 context 添加新的变量来支持更多功能, 为了减少不必要的迷惑, 还是建议大家使用 [g](#g) - [context对象综述及获取方法](https://www.joinquant.com/view/community/detail/4adb8722188f906bbe11f59999e08db4) **示例** +``` + +def handle_data(context, data): + + #获得当前回测相关时间 + year = context.current_dt.year + month = context.current_dt.month + day = context.current_dt.day + hour = context.current_dt.hour + minute = context.current_dt.minute + second = context.current_dt.second + #得到"年-月-日"格式 + date = context.current_dt.strftime("%Y-%m-%d") + #得到周几 + weekday = context.current_dt.isoweekday() + + # 获取总账户的持仓价值 + positions_value = context.portfolio.positions_value + + # 总权益的累计收益 + returns = context.portfolio.returns + + # 获取仓位subportfolios[0]的可用资金 + available_cash = context.subportfolios[0].available_cash + + # 获取subportfolios[0]中多头仓位的security的持仓成本 + hold_cost = context.subportfolios[0].long_positions[security].hold_cost + + # 这是一个dict,键是标的代码,值是对应的position对象 + long_positions_dict = context.subportfolios[0].long_positions + for position in list(long_positions_dict.values()): + print("标的:{0},总仓位:{1},标的价值:{2}".format(position.security,position.total_amount,position.value)) +``` + +SubPortfolio子账户信息 某个仓位的资金,标的信息,如未使用 SubPortfolioConfig 设置多仓位,默认只有subportfolios[0]一个仓位,Portfolio 指向该仓位。 - inout_cash: 累计出入金, 比如初始资金 1000, 后来转移出去 100, 则这个值是 1000 - 100 - available_cash: 可用资金, 可用来购买证券的资金 - transferable_cash: 可取资金, 即可以提现的资金, 不包括今日卖出证券所得资金 - locked_cash: 挂单锁住资金 - type: 账户所属类型 - long_positions: 多单的仓位, 一个 dict, key 是标的代码, value 是 [Position]对象 - short_positions: 空单的仓位, 一个 dict, key 是标的代码, value 是 [Position]对象 - positions_value: 持仓价值 - total_value: 总资产, 包括现金, 保证金(期货)或者仓位(股票)的总价值, 可用来计算收益 - total_liability: 总负债, 等于融资负债、融券负债、利息总负债的总和 - net_value: 净资产, 等于总资产减去总负债 - cash_liability: 融资负债 - sec_liability: 融券负债 - interest: 利息总负债 - maintenance_margin_rate: 维持担保比例 - available_margin: 融资融券可用保证金 - margin: 保证金,股票、基金保证金都为100%;融资融券保证金为0;期货保证金会实时更新, 总是等于当前期货价值 乘以 保证金比率, 当保证金不足时, 强制平仓. 平仓顺序是: 亏损多的(相对于开仓均价)先平仓 +``` + +print("累计出入金:{0}".format(context.subportfolios[0].inout_cash)) +print("可用资金:{0}".format(context.subportfolios[0].available_cash)) +print("可取资金:{0}".format(context.subportfolios[0].transferable_cash)) +print("挂单锁住资金:{0}".format(context.subportfolios[0].locked_cash)) +print("账户所属类型:{0}".format(context.subportfolios[0].type)) +# 这是一个dict,键是标的代码,值是对应的position对象 +long_positions_dict = context.subportfolios[0].long_positions +for position in list(long_positions_dict.values()): + print(" 标的:{0},总仓位:{1},标的价值:{2}".format(position.security,position.total_amount,position.value)) +print("持仓价值:{0}".format(context.subportfolios[0].positions_value)) +print("总资产:{0}".format(context.subportfolios[0].total_value)) +``` + +Portfolio总账户信息 账户当前的资金,标的信息,即所有标的操作仓位的信息汇总。如未使用 SubPortfolioConfig 设置多仓位,默认只有subportfolios[0]一个仓位,Portfolio 指向该仓位。注意区分多仓和空仓。 - inout_cash: 累计出入金, 比如初始资金 1000, 后来转移出去 100, 则这个值是 1000 - 100 - available_cash: 可用资金, 可用来购买证券的资金 - transferable_cash: 可取资金, 即可以提现的资金, 不包括今日卖出证券所得资金 - locked_cash: 挂单锁住资金 - margin: 保证金,股票、基金保证金都为100% - positions: 等同于 long_positions - long_positions: 多单的仓位, 一个 dict, key 是证券代码, value 是 [Position]对象 - short_positions: 空单的仓位, 一个 dict, key 是证券代码, value 是 [Position]对象 - total_value: 总的权益, 包括现金, 保证金(期货)或者仓位(股票)的总价值, 可用来计算收益 - returns: 前一日总权益的累计收益;(前一交易日total_value / inout_cash) ; - starting_cash: 初始资金, 现在等于 inout_cash - positions_value: 持仓价值 - ~~cash: **已过时**,等价于 available_cash~~ - ~~portfolio_value: **已过时**,等价于 total_value~~ - ~~unsell_positions: **已过时, 请使用 positions 代替**, 当前持有的不可以卖出的持仓(比如在A股T+1市场, 今天购票的股票), 并没有考虑股票今天是否停牌, 一个dict, key是股票代码, value是[Position]对象.~~ +``` + +print("多单的仓位:{0}".format(context.portfolio.long_positions)) +print("空单的仓位:{0}".format(context.portfolio.short_positions)) +print("总权益:{0}".format(context.portfolio.total_value)) +print("总权益的累计收益:{0}".format(context.portfolio.returns)) +print("初始资金:{0}".format(context.portfolio.starting_cash)) +print("持仓价值:{0}".format(context.portfolio.positions_value)) +``` + +Position持仓标的信息 持有的某个标的的信息,注意区分多仓和空仓 - security: 标的代码 - price: 最新行情价格 - acc_avg_cost 是累计的持仓成本,在清仓/减仓时也会更新,该持仓累积的收益都会用于计算成本(一开始acc_avg_cost为0,amount也为0),加仓:new_acc_avg_cost = (acc_avg_cost * amount + trade_value + commission) / (amount + trade_amount);减仓:new_acc_avg_cost = (acc_avg_cost * amount - trade_value + commission) / (amount - trade_amount) 说明:commission是本次买入或者卖出的手续费 - avg_cost 是当前持仓成本,只有在开仓/加仓时会更新: new_avg_cost = (position_value + trade_value + commission) / (position_amount + trade_amount) 每次买入后会调整avg_cost, 卖出时avg_cost不变. 这个值也会被用来计算浮动盈亏. - hold_cost: 当日持仓成本,计算方法:当日无收益:hold_cost = 前收价 (清算后),加仓:hold_cost = (hold_cost * amount + trade_value)/(amount + trade_amount),减仓:hold_cost = (hold_cost * amount - trade_value)/(amount - trade_amount);trade_value = trade_price * trade_amount - init_time: 建仓时间,格式为 datetime.datetime - transact_time: 最后交易时间,格式为 datetime.datetime - locked_amount: 挂单冻结仓位 - total_amount: 总仓位, 但不包括挂单冻结仓位( 如果要获取当前持仓的仓位,需要将locked_amount和total_amount相加) - closeable_amount: 可卖出的仓位 - today_amount: 今天开的仓位 - value: 标的价值,计算方法是: price * total_amount * multiplier, 其中股票、基金的multiplier为1,期货为相应的合约乘数 - side: 多/空,'long' or 'short' - pindex: 仓位索引,subportfolio index - ~~sellable_amount: **已过时**, 为了向前兼容, 等同于 closeable_amount~~ - ~~amount: **已过时**, 为了向前兼容, 等同于 closeable_amount~~ +``` + +print(type(context.portfolio.long_positions)) +long_positions_dict = context.portfolio.long_positions +for position in list(long_positions_dict.values()): + print("标的:{0},总仓位:{1},标的价值:{2}, 建仓时间:{3}".format(position.security, position.total_amount, position.value, position.init_time)) +print(type(context.subportfolios[0].short_positions)) +short_positions_dict = context.portfolio.short_positions +for position in list(short_positions_dict.values()): + print("标的:{0},总仓位:{1},标的价值:{2}, 建仓时间:{3}".format(position.security, position.total_amount, position.value, position.init_time)) +``` + +SecurityUnitDatadata对象 一个单位时间内的股票的数据 **为了向前兼容,保留data对象,由于效率问题不推荐使用** ##### 基本属性 **以下属性也能通过history/attribute_history/get_price获取到** - open: 时间段开始时价格(当天天级别的开盘价至少需要09:27分之后才可获取) - close: 时间段结束时价格 - low: 时间段中的最低价 - high: 时间段中的最高价 - volume: 时间段中的成交的股票数量 - money: 时间段中的成交的金额 - factor: 前复权因子, 我们提供的价格都是前复权后的, 但是利用这个值可以算出原始价格, 方法是价格除以factor, 比如: `close/factor` - high_limit: 时间段中的涨停价 - low_limit: 时间段中的跌停价 - avg: 这段时间的平均价。计算方法(1)天级别:股票是成交额除以成交量;期货是直接从CTP行情获取的,计算方法为成交额除以成交量再除以合约乘数;(2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 - ~~price: **已经过时**, 为了向前兼容, 等同于 avg~~ - pre_close: 前一个单位时间结束时的价格, 按天则是前一天的收盘价(期货中pre_close是前前一天结算价,建议使用get_extras获取结算价), **注意:在分钟频率下pre_close=open;** - paused: bool值, 这只股票是否停牌, 停牌时open/close/low/high/pre_close依然有值,都等于停牌前的收盘价, volume=money=0 ##### 额外的属性和方法 - security: 股票代码, 比如'000001.XSHE' - returns: 股票在这个单位时间的相对收益比例, 等于 `(close-pre_close)/pre_close` - isnan(): 数据是否有效, 当股票未上市或者退市时, 无数据, isnan()返回True - `mavg(days, field='close')`: 过去days天的每天收盘价的平均值, 把field设成'avg'(等同于已过时的'price')则为每天均价的平均价, 下同 - `vwap(days)`: 过去days天的每天均价的加权平均值, 以days=2为例子, 算法是: +``` + +(avg1 * volume1 + avg2 * volume2) / (volume1 + volume2) +``` + + - `stddev(days)`: 过去days天的每天收盘价的标准差 - 注:mavg/vwap/stddev:都会跳过停牌日期, 如果历史交易天数不足, 则返回nan tick 对象tick 对象 一个 tick 所包含的信息。 tick 中的信息是在 tick 事件发生时, 盘面的一个快照。 - code: 标的的代码 - datetime: tick 发生的时间 - current: 最新价 - open:当日开盘价 - high: 截至到当前时刻的最高价 - low: 截至到当前时刻的最低价 - volume: 截至到当前时刻的成交量 - money: 截至到当前时刻的成交额 - position: 截至到当前时刻的持仓量,只适用于期货 tick 对象 - a1_v ~ a5_v: 卖一量到卖五量,对于期货,只有卖一量 - a1_p ~ a5_p: 卖一价到卖五价,对于期货,只有卖一价 - b1_v ~ b5_v: 买一量到买五量,对于期货,只有买一量 - b1_p ~ b5_p: 买一价到买五价,对于期货,只有买一价 Trade对象订单的一次交易记录,一个订单可能分多次交易. 订单的一次交易记录,一个订单可能分多次交易 [关于order/trader对象及订单处理](https://www.joinquant.com/view/community/detail/2ecedbc451f8345c2aefdc11fcd0d1a6) - time: 交易时间, [datetime.datetime]对象 - security:标的代码 - amount: 交易数量 - price: 交易价格 - trade_id: 交易记录id - order_id: 对应的订单id +``` + +trades = get_trades() +for _trade in trades.values(): + print('成交记录:'+str(_trade)) + print('交易时间:{0}'.format(_trade.time)) + print('对应的订单id:{0}'.format(_trade.order_id)) +``` + +Order对象买卖订单信息 买卖订单 [关于order/trader对象及订单处理](https://www.joinquant.com/view/community/detail/2ecedbc451f8345c2aefdc11fcd0d1a6) [以csv格式保存order、trade、position数据](https://www.joinquant.com/view/community/detail/19535) - status: 状态, 一个[OrderStatus](https://www.joinquant.com/help/api/help#api:OrderStatus)值 - add_time: 订单添加时间, [datetime.datetime]对象 - is_buy: bool值, 买还是卖,对于期货: 开多/平空 -> 买 开空/平多 -> 卖 - amount: 下单数量, 不管是买还是卖, 都是正数 - filled: 已经成交的股票数量, 正数 - security: 股票代码 - order_id: 订单ID - price: 平均成交价格, 已经成交的股票的平均成交价格(一个订单可能分多次成交) - avg_cost: 卖出时表示下卖单前的此股票的持仓成本, 用来计算此次卖出的收益. 买入时表示此次买入的均价(等同于price). - side: 多/空,'long'/'short' - action: 开/平, 'open'/'close' - commission:交易费用(佣金、税费等) +``` + +orders = order('000001.XSHE', 100) +print(orders) +if orders is None: + print("创建订单失败...") +else: + print("交易费用单:{0}".format(orders.commission)) + print("是否买单:{0}".format(orders.is_buy)) + print("订单状态:{0}".format(orders.status)) + print("订单平均成交价格:{0}".format(orders.price)) +``` + + **注意** - 不可以在策略中保存当天的订单信息到下一个或者之后的交易日使用; OrderStatus订单状态 订单状态, Enum特性使用的第三方库(https://pypi.python.org/pypi/enum34) 获取订单状态的方法请参考上面**Order对象** +``` + +class OrderStatus(Enum): + # 订单新创建未委托,用于盘前/隔夜单,订单在开盘时变为 open 状态开始撮合 + new = 8 + + # 订单未完成, 无任何成交 + open = 0 + + # 订单未完成, 部分成交 + filled = 1 + + # 订单完成, 已撤销, 可能有成交, 需要看 Order.filled 字段 + canceled = 2 + + # 订单完成, 交易所已拒绝, 可能有成交, 需要看 Order.filled 字段 + rejected = 3 + + # 订单完成, 全部成交, Order.filled 等于 Order.amount + held = 4 +``` + + **注意** 订单状态数据类型为Enum,判断时可以转为字符串,示例代码如下: +``` + +def initialize(context): + run_daily(market_open, time='every_bar') + +def market_open(context): + orders = order('000001.XSHE', 100) + print(orders) + # 如果创建订单成功, 则返回Order对象, 失败则返回None + if orders is None: + print("创建订单成功失败...") + else: + print(orders.is_buy) + print(orders.price) + print(orders.status) + # 注意返回的status数据类型为,enum 'OrderStatus' + print(type(orders.status)) + # 判断订单的状态是否指定的状态,需要先转换为str类型 + print(str(orders.status) == 'open') + print(str(orders.status) == 'held') + print('='*50) +``` + +OrderStyle下单方式 具体订单处理方法请查看[订单处理>>>](https://www.joinquant.com/help/api/help?name=api#%E8%AE%A2%E5%8D%95%E5%A4%84%E7%90%86) 下单方式, 有如下子类 - 市价单 +``` + +class MarketOrderStyle(OrderStyle): + def __init__(self, limit_price=None): + self.limit_price = limit_price +``` + + 市价单示例 参数: - limit_price:科创板市价单的保护价,对非科创板标的无效。 +``` + +# 在仓位0,以市价单买入平安银行股票100股 +order('000001.XSHE', 100) +# 在仓位0,以市价单买入平安银行股票100股G +order('000001.XSHE', 100, MarketOrderStyle()) +# 在仓位0中开一手沪深300指数期货的多单 +order('IF1412.CCFX', 1 , side='long', pindex=0) +# 在仓位0,以市价单买入科创板天准科技股票200股,保护价为200 +order('688003.XSHG', 200, MarketOrderStyle(200)) +``` + + 科创板保护价逻辑: 市价买入时成交的最高价格不高于本价格,若最优一档的价格高于该价格,剩余未成交部分撤单; 市价卖出时成交的最低价格不低于本价格,若最优一档的价格低于该价格,剩余未成交部分撤单; - 限价单 +``` + +class LimitOrderStyle(OrderStyle): + def __init__(self, limit_price): + self.limit_price = limit_price +``` + + 限价单示例 +``` + +# 以10块价格下一个限价单 +order('000001.XSHE', 100, LimitOrderStyle(10.0)) +# 在仓位1中以3600的限价单,平一手沪深300指数期货的空单 +order('IF1412.CCFX', -1 , LimitOrderStyle(3600.0), side='short', pindex=1) +``` + + - 停止单 `StopMarketOrderStyle(mode, stop_price)` `StopLimitOrderStyle(mode, stop_price, limit_price)` 使用方法: 在order/order_target/order_value/order_target_value函数中指定委托类型为停止单。停止单会在标的价格突破(向上或向下)时转化为对应的市价单或限价单 参数 mode:"stop_loss", "take_profit",指定该停止单是止盈模式还是止损模式,具体解释见下文 stop_price:停止单被触发的价格,当价格突破(向上或向下)时将停止单转为对应种类(市价单/限价单)的订单 limit_price:限价,同限价单 止盈模式与止损模式 若为止损单模式,平空、做多或买入时触发价必须大于最新价,平多、做空或卖出时触发价必须小于最新价; 若为止盈单模式,平多、做空或卖出时触发价必须大于最新价,平空、做多或买入时触发价必须小于最新价; 若触发价不满足条件,该停止单会立即触发 备注 - 停止单不会提前锁定持仓和资金,触发时不满足委托条件(如资金不足或可交易数量不足)直接委托失败 - 订单生效的时间仅限于标的交易时间,当天未完成的停止单盘后撤销 - order_value/order_target_value使用停止单进行委托时,由value计算实际委托数量的规则: - 实际委托数量 = value / 价格 / 保证金率 / 乘数 - StopMarketOrderStyle以stop_price计算实际委托数量 - StopLimitOrderStyle以limit_price计算实际委托数量 Event事件对象 #### DividendsEvent - 分红送股事件 ##### 属性 - name:事件的名称,这里为Dividends - pindex:子账户索引 - security:标的代码 - side:仓位方向,long/short - dividends:分红配送信息,一个字典列表,直接从数据中获取,通常只有一个元素。例如,税前分红可以用dividends[0]['bonus_pre_tax']表示,所有可能的key如下: - date:发生分红送股的日期 - scale_factor:配送股比例(股票,场内基金) - bonus_pre_tax:税前分红(股票,场内基金) - bonus_post_tax:税后分红(场内基金) #### ForcedLiquidationEvent:强行平仓事件 ##### 属性 - name:事件的名称,这里为ForcedLiquidation - pindex:子账户索引 - security:标的 - side:仓位方向,long/short - amount:平仓数量 ### 其他函数 + +名称描述record ♠画图函数 +``` + +record(**kwargs) +``` + + **回测环境/模拟专用API** **如调用该函数,需要从回测开始时调用,不支持在回测周期中间时段调用** 我们会帮您在图表上画出收益曲线和基准的收益曲线,您也可以调用record函数来描画额外的曲线。 因为我们是按天展现的,如果您使用按分钟回测,我们画出的点是您最后一次调用record的值(不是每分钟的)。 以16:00为界限,16:00之后绘制的属于第二天。 **参数** 一个或多个key=value形式的参数,key为曲线名称,value为值(不能是列表) **返回** None **示例** +``` + +# 初始化函数,设定基准等等 +def initialize(context): + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + # 设置日志级别为info + log.set_level('order', 'info') + +def handle_data(context, data): + d = data['000001.XSHE'] + # d是一个SecurityUnitData结构体,会画出每个单元时间(天或分钟)的平均价,开始价,结束价 + record(price=d.price, open=d.open, close=d.close) + # 也可以画一条值为100的直线 + record(price=100) +``` + +send_message ♠发送自定义消息 #### +``` + +send_message(message, channel='weixin') +``` + + **聚宽官网实时运行模拟交易专用API** 给用户自己发送消息, 暂时只支持微信消息. **参数** message: 消息内容. 字符串. channel: 消息渠道, 暂时只支持微信: weixin. 默认值是 weixin **返回值** True/False, 表示是否发送成功. 当发送失败时, 会在日志中显示错误信息. **注意** - 要使用模拟交易发送微信功能, 必须[绑定及开启微信通知](https://www.joinquant.com/help/api/help?name=faq#%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF%E5%BE%AE%E4%BF%A1%E9%80%9A%E7%9F%A5%EF%BC%9F); - 此功能只能在 **聚宽官网的实时运行模拟交易** 中使用, 回测中使用会直接忽略, 无任何提示;有关[实时和延时运行](https://www.joinquant.com/help/api/help?name=faq#%E5%BB%B6%E6%97%B6%E8%BF%90%E8%A1%8C) - 请注意区分自定义消息和下单通知,send_message对应的是自定义微信消息,下单通知是模拟交易策略有下单时(交易详情页面有下单记录)同时发送微信消息; - 自定义消息只要绑定了微信,都会发送;下单信息只有开启具体模拟交易的**微信通知**开关,此策略才发送微信消息; - 下单通知:每个账号每天最多60条;自定义消息每个账号每天最多 **5** 条, 超出会发送失败,需要更多条数可以使用[积分兑换](https://www.joinquant.com/view/credits/list) - 自定义消息长度不得超过 **200** 个字符, 也不能包含回车和换行这些特殊字符,否则会发送失败 - 一个账号模拟交易只能被一个用户绑定,多个微信绑定后,前面失效,以最后一个绑定的微信号为准 **示例** +``` + +send_message("测试消息") +``` + + log 日志log信息 +``` + +log.error(content) +log.warn(content) +log.info(content) +log.debug(content) +print(content1, content2, ...) +``` + + 分级别打log,跟python的logging模块一致 print输出的结果等同于log.info, 但是print后面的每一个元素会占用一行 **参数** 参数可以是字符串、对象等 **返回** None **示例** +``` + +log.info(history(10)) # 打印出 history(10)返回的结果 +log.info("Selling %s, amount=%s", security, amount) # 打印出一个格式化后的字符串 +print(history(10), data, context.portfolio) +``` + + ##### 设定log级别:log.set_level +``` + +log.set_level(name, level) +``` + + 设置不同种类的log的级别, 低于这个级别的log不会输出. 所有log的默认级别是debug,为了降低排查问题的难度,建议**日志级别保持为默认级别(不设置日志级别,或者设置log.set_level('order', 'info'))**。 **参数** name: 字符串, log种类, 必须是'order', 'history', 'strategy'中的一个, 含义分别是: - order: 调用order系列API产生的log - history: 调用history系列API(history/attribute_history/get_price)产生的log - strategy: 您自己在策略代码中打的log - system:系统日志,除以上三类之外的日志 level: 字符串, 必须是'debug', 'info', 'warning', 'error'中的一个, 级别: debug < info < warning < error **返回** None **示例** +``` + +# 设置日志级别为debug +log.set_level('order', 'debug') + +**注意** + - 尽量设置日志级别为debug,或者不设置(使用系统默认级别),有利于您快速的发现问题; + - 模拟交易中,需要修改日志级别,可以在after_code_changed中,重新设置日志级别。 +``` + +write_file将回测或模拟交易数据写入到投资研究文件中 +``` + +write_file(path, content, append=False) +``` + + 将回测或者模拟交易的数据写入[投资研究](https://www.joinquant.com/research)path文件, 写入后, 您可以立即在研究模块中看到这个文件,默认在投资研究的根目录 [在回测及模拟交易中读取/写入研究中不同格式的文件](https://www.joinquant.com/view/community/detail/a9f7577b37265f78ffc2c6bb2467d47e?type=1) **参数** - path: 相对路径, 相对于您的私有空间的根目录的路径 - content: 文件内容, str或者unicode, 如果是unicode, 则会使用UTF-8编码再存储.可以是二进制内容. - append: 是否是追加模式, 当为False会清除原有文件内容,默认为False. **返回** None 如果写入失败(一般是因为路径不合法), 会抛出异常 **示例** +``` + +write_file("test.txt", "hello world") + +# 写入沪深300的股票到HS300.stocks.json文件中 +import json +write_file('HS300.stocks.json', json.dumps(get_index_stocks('000300.XSHG'))) + +# 把 DataFrame 表保存到文件 +df = attribute_history('000001.XSHE', 5, '1d') #获取DataFrame表 +write_file('df.csv', df.to_csv(), append=False) #写到文件中 + +## 详细用法可以参考文档:https://www.joinquant.com/post/580 以及 https://www.joinquant.com/view/community/detail/a9f7577b37265f78ffc2c6bb2467d47e?type=1 +``` + +read_file在回测或者模拟交易中读取您研究中文件 +``` + +read_file(path) +``` + + 在回测及模拟交易中读取你的私有文件(您的私有文件可以在研究模块中看到) [在回测及模拟交易中读取/写入研究中不同格式的文件](https://www.joinquant.com/view/community/detail/a9f7577b37265f78ffc2c6bb2467d47e?type=1) **参数** path: 相对路径, 相对于您的私有空间的根目录的路径 **返回** 返回文件的原始内容, 不做任何decode. **示例** +``` + +#解析json文件 +import json +content = read_file('HS300.stocks.json') +securities = json.loads(content) +log.info(securities) + +#解析csv文件(python2环境) +import pandas as pd +from six import StringIO +body=read_file("open.csv") +data=pd.read_csv(StringIO(body)) + +#解析csv文件(python3环境) +import pandas as pd +from six import BytesIO +body=read_file("open.csv") +data=pd.read_csv(BytesIO(body)) + +## 详细用法可以参考文档:https://www.joinquant.com/post/580 +``` + + **注意** - 不能在官网的回测及模拟中读取您本地的文件,本地文件需要上传到官网的[投资研究](https://www.joinquant.com/research)中; - 支持读取csv, excel, json等格式文件,具体教程参考[在回测及模拟交易中读取研究中不同格式的文件](https://www.joinquant.com/view/community/detail/a9f7577b37265f78ffc2c6bb2467d47e); - 注意区分Python2和Python3, 自定义python库自定义私人的Python库文件 您可以在把.py文件放在'研究'的根目录, 然后在回测中就可以通过import的方式来引用此文件. 比如 研究根目录/mylib.py: #-*- coding: utf-8 -*- # 如果你的文件包含中文, 请在文件的第一行使用上面的语句指定你的文件编码 # 用到策略及数据相关API请加入下面的语句(如果要兼容研究使用可以使用 try except导入 from kuanke.user_space_api import * my_stocks = get_index_stocks('000300.XSHG') 在策略代码中: # 导入自己创建的库 from mylib import * def initialize(context): log.info(my_stocks) **注意** - 此方法主要用来读取研究根目录中的.py文件,读取其他格式的文件请参考[read_file](#read_file); - 暂时只能import研究根目录下的.py文件, 还不能import子目录下的文件(比如通过 import a.b.c 来引用a/b/c.py) create_backtest通过一个策略ID从研究中创建回测 +``` + +create_backtest(algorithm_id, start_date, end_date, frequency="day", initial_cash=10000, initial_positions=None, extras=None, name=None, code="", benchmark=None, python_version=2, use_credit=False) +``` + + 通过一个策略ID从研究中创建回测,只能在研究中使用,目前不支持在回测及模拟交易中使用; **参数:** - algorithm_id: 策略ID,从策略编辑页的 url 中获取, 比如 '/algorithm/index/edit?algorithmId=xxxx',则策略ID为: xxxx。如下图所示: ![](https://image.joinquant.com/b643aa04a7c6baf28d44f211d4ee910b) - start_date: 回测开始日期 - end_date: 回测结束日期 - frequency: 数据频率,支持 day, minute, tick - initial_cash: 初始资金 - extras: 额外参数,一个 dict, 用于设置全局的 g 变量,如 extras={'x':1, 'y':2},则回测中 g.x = 1, g.y = 2,需要注意的是,该参数的值是`在 initialize 函数执行之后`才设置给 g 变量的,所以这会覆盖掉 initialize 函数中 g 变量同名属性的值 - name: 回测名, 用于指定回测名称, 如果没有指定则默认采用策略名作为回测名 - initial_positions: 初始持仓。持仓会根据价格换成现金加到初始资金中,如果没有给定价格则默认获取股票最近的价格。格式如下: +``` + +initial_positions = [ + { + 'security':'000001.XSHE', + 'amount':'100', + }, + { + 'security':'000063.XSHE', + 'amount':'100', + 'avg_cost': '1.0' + }, +] +``` + + - code:策略代码。现在支持从研究中传入策略代码进行回测。指定之后将使用传入的代码来创建回测。 - benchmark: 为回测设置基准。默认为None,表示使用策略中原有set_benchmark设置的基准。若不为None,则表示使用当前传入的基准覆盖原策略的基准。benchmark支持的基准同set_benchmark - python_version: 创建回测的python的版本,已废弃参数,目前只支持python3内核 - use_credit:是否允许消耗积分新建回测。当每个自然日内编译运行、回测超过免费时间时,继续运行每30分钟需消耗2积分。默认为False,表示不允许消耗积分新建回测,设为True表示接受消耗积分新建回测。需注意,对于已经在运行中的回测,此配置不生效。 **返回:** 一个字符串, 即 backtest_id **示例一:** +``` + +algorithm_id = "xxxx" +extra_vars = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} +initial_positions = [ + { + 'security':'000001.XSHE', + 'amount':'100', + }, + { + 'security':'000063.XSHE', + 'amount':'100', + 'avg_cost': '1.0' + }, +] + +params = { + "algorithm_id": algorithm_id, + "start_date": "2015-10-01", + "end_date": "2016-07-31", + "frequency": "day", + "initial_cash": "1000000", + "initial_positions": initial_positions, + "extras": extra_vars, +} + +created_bt_id = create_backtest(**params) +print(created_bt_id) +``` + + **示例二,在研究中指定回测用策略代码:** +``` + +code = """ +# 导入函数库 +from jqdata import * + +# 初始化函数,设定基准等等 +def initialize(context): + # 设定沪深300作为基准 + set_benchmark('000300.XSHG') + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + # 输出内容到日志 log.info() + log.info('初始函数开始运行且全局只运行一次') + # 过滤掉order系列API产生的比info级别低的log + # log.set_level('order', 'info') + + ### 股票相关设定 ### + # 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱 + set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock') + + ## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的) + # 开盘前运行 + run_daily(before_market_open, time='09:00', reference_security='000300.XSHG') + # 开盘时运行 + run_daily(market_open, time='09:30', reference_security='000300.XSHG') + # 收盘后运行 + run_daily(after_market_close, time='15:30', reference_security='000300.XSHG') + +## 开盘前运行函数 +def before_market_open(context): + # 输出运行时间 + log.info('函数运行时间(before_market_open):'+str(context.current_dt.time())) + + # 给微信发送消息(添加模拟交易,并绑定微信生效) + send_message('美好的一天~') + + # 要操作的股票:平安银行(g.为全局变量) + g.security = '000001.XSHE' + +## 开盘时运行函数 +def market_open(context): + log.info('函数运行时间(market_open):'+str(context.current_dt.time())) + security = g.security + # 获取股票的收盘价 + close_data = attribute_history(security, 5, '1d', ['close']) + # 取得过去五天的平均价格 + MA5 = close_data['close'].mean() + # 取得上一时间点价格 + current_price = close_data['close'][-1] + # 取得当前的现金 + cash = context.portfolio.available_cash + + # 如果上一时间点价格高出五天平均价1%, 则全仓买入 + if current_price > 1.01*MA5: + # 记录这次买入 + log.info("价格高于均价 1%%, 买入 %s" % (security)) + # 用所有 cash 买入股票 + order_value(security, cash) + # 如果上一时间点价格低于五天平均价, 则空仓卖出 + elif current_price < MA5 and context.portfolio.positions[security].closeable_amount > 0: + # 记录这次卖出 + log.info("价格低于均价, 卖出 %s" % (security)) + # 卖出所有股票,使这只股票的最终持有量为0 + order_target(security, 0) + +## 收盘后运行函数 +def after_market_close(context): + log.info(str('函数运行时间(after_market_close):'+str(context.current_dt.time()))) + #得到当天所有成交记录 + trades = get_trades() + for _trade in trades.values(): + log.info('成交记录:'+str(_trade)) + log.info('一天结束') + log.info('##############################################################') + +""" + +algorithm_id = "xxxx" +extra_vars = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} +initial_positions = [ + { + 'security':'000001.XSHE', + 'amount':'100', + }, + { + 'security':'000063.XSHE', + 'amount':'100', + 'avg_cost': '1.0' + }, +] + +params = { + "algorithm_id": algorithm_id, + "start_date": "2015-10-01", + "end_date": "2016-07-31", + "frequency": "day", + "initial_cash": "1000000", + "initial_positions": initial_positions, + "extras": extra_vars, +} + +created_bt_id = create_backtest(code=code, **params) +``` + +get_backtest研究中获取回测与模拟交易信息 #### +``` + +gt = get_backtest(backtest_id) +``` + + 研究中获取回测与模拟交易信息,只能在研究中使用,目前不支持在回测及模拟交易中使用;使用方法及参考教程: - [参数优化及并行回测参考教程](https://www.joinquant.com/help/api/help?name=faq#%E5%8F%82%E6%95%B0%E4%BC%98%E5%8C%96%E5%8F%8A%E5%B9%B6%E8%A1%8C%E5%9B%9E%E6%B5%8B) - [区分create_backtest(策略ID)和get_backtest(回测ID)](https://www.joinquant.com/help/api/help?name=faq#%E5%8F%82%E6%95%B0%E4%BC%98%E5%8C%96%E5%8F%8A%E5%B9%B6%E8%A1%8C%E5%9B%9E%E6%B5%8B) - [create_backtest与get_backtest](https://www.joinquant.com/view/community/detail/1673d7bd3b883ad403a189288389efd8?type=1) **参数:** - backtest_id: 回测ID,从回测详情页以及模拟交易详情页的 url 中获取, 比如 '/algorithm/backtest/detail?backtestId='以及'/algorithm/live/index?backtestId=',则回测ID为:xxxx。如下图所示: ![img](https://image.joinquant.com/73514339d9b8e3f45818b0eb6c0594bf) **返回:** - gt.get_status():**获取回测状态**. 返回一个字符串,其含义分别为: - none: 未开始 - running: 正在进行 - done: 完成 - failed: 失败 - canceled: 取消 - paused: 暂停 - deleted: 已删除 - gt.get_params():**获得回测参数**. 返回一个 dict, 包含调用 create_backtest 时传入的所有信息. (注: algorithm_id,initial_positions,extras 只有在研究中创建的回测才能取到) - gt.get_results():**获得收益曲线**. 返回一个 list,每个交易日是一个 dict,键的含义如下: - time: 时间 - returns: 收益 - benchmark_returns: 基准收益 - 如果没有收益则返回一个空的 list - gt.get_positions(start_date=None, end_date=None):**获得持仓详情**. 返回一个 list,默认取所有回测时间段内的数据。每个交易日为一个 dict,键的含义为: - time: 时间 - amount: 持仓数量, - avg_cost: 开场均价, - closeable_amount: 可平仓数量, - daily_gains: 当日收益, - gains: 累积收益, - hold_cost: 持仓成本(期货), - margin: 保证金, - price: 当前价格, - security: 标的代码, - security_name: 标的名, - side: 仓位方向, - today_amount: 今开仓量 - 如果没有持仓则返回一个空的 list - gt.get_orders(start_date=None, end_date=None):**获得交易详情**. 返回一个 list,默认取所有回测时间段内的数据。每个交易日为一个 dict,键的含义为: - time: 时间 - action: 开平仓,'open'/'close', - amount: 数量, - commission: 手续费, - filled: 已成交量, - gains: 收益, - limit_price: 限价单委托价, - match_time: 最新成交时间, - price: 成交价, - security: 标的代码, - security_name: 标的名, - side: 仓位方向, - status: 订单状态, - time: 委托时间, - type: 委托方式,市价单/限价单 - 如果没有交易则返回一个空的 list - gt.get_records():**获得所有 record 记录**. 返回一个 list,每个交易日为一个 dict,键是 time 以及调用 record() 函数时设置的值. - gt.get_risk():**获得总的风险指标**. 返回一个 dict,键是各类收益指标数据,如果没有风险指标则返回一个空的 dict. - gt.get_period_risks():**获得分月计算的风险指标**. 返回一个 dict,键是各类指标, 值为一个 pandas.DataFrame. 如果没有风险指标则返回一个空的 dict. - gt.get_balances(start_date=None, end_date=None): **获取回测每日市值**. 返回一个 list,默认取所有回测时间段内的数据。每个交易日为一个 dict **示例:** +``` + +gt = get_backtest("xxxx") + +gt.get_status() # 获取回测状态 +gt.get_params() # 获取回测参数 +gt.get_results() # 获取收益曲线 +gt.get_positions() # 获取所有持仓列表 +gt.get_orders() # 获取交易列表 +gt.get_records() # 获取所有record()记录 +gt.get_risk() # 获取总的风险指标 +gt.get_period_risks() # 获取分月计算的风险指标 +gt.get_balances() # 获取回测每日市值 +``` + +normalize_code股票代码格式转换 +``` + +normalize_code() +``` + + 将其他形式的股票代码转换为聚宽可用的股票代码形式。 **仅适用于A股市场股票代码、期货以及场内基金代码,输入字符串格式或int格式的其他形式标的代码,也支持list或tuple来转换多个标的代码** **示例** +``` + +#输入 +codes = ('000001', 'SZ000001', '000001SZ', '000001.sz', '000001.XSHE') +print(normalize_code(codes )) + +#输出 +['000001.XSHE', '000001.XSHE', '000001.XSHE', '000001.XSHE', '000001.XSHE'] +``` + +enable_profile ♠性能分析 +``` + +enable_profile() +``` + + **回测环境专用API** 开启性能分析功能, **请在所有代码之前调用这句话(即在策略编译页面的代码编辑框最上方放置该代码)**, 只在点击 '运行回测' 运行的时候才能看到性能分析结果. 开启性能分析之后, 你会在回测结果页面看到性能分析结果. 请注意, 不需要时, 请不要调用此函数, 因为它本身会影响程序性能. 对于耗时较长的回测, 建议开启性能分析后先回测一个较短的周期比如一周来分析耗时优化代码, 避免运行时间过长 结果示例(真实输出中没有中文说明): +``` + +// 时间单位: 微秒 +Timer unit: 1e-06 s + +// 函数执行总时间 +Total time: 0.00277 s +// 文件名 +File: user_code.py +// 函数名 +Function: initialize at line 3 + +// 行号, 这一行执行次数,总执行时间,每次执行时间, 这一行执行时间在整个函数的比例 +Line # Hits Time Per Hit % Time Line Contents +============================================================== + 3 def initialize(context): + 4 # 定义一个全局变量, 保存要操作的股票 + 5 # 000001(股票:平安银行) + 6 1 31 31.0 1.1 g.security = '000001.XSHE' + 7 # 初始化此策略 + 8 # 设置我们要操作的股票池, 这里我们只操作一支股票 + 9 1 2739 2739.0 98.9 set_universe([g.security]) + +Total time: 0.426325 s +File: user_code.py +Function: handle_data at line 12 + +Line # Hits Time Per Hit % Time Line Contents +============================================================== + 12 def handle_data(context, data): + 13 122 398 3.3 0.1 security = g.security + 14 # 取得过去五天的平均价格 + 15 122 168565 1381.7 39.5 average_price = data[security].mavg(5) + 16 # 取得上一时间点价格 + 17 122 493 4.0 0.1 current_price = data[security].price + 18 # 取得当前的现金 + 19 122 240 2.0 0.1 cash = context.portfolio.available_cash + 20 + 21 # 如果上一时间点价格高出五天平均价1%, 则全仓买入 + 22 122 396 3.2 0.1 if current_price > 1.01*average_price: + 23 # 计算可以买多少只股票 + 24 30 124 4.1 0.0 number_of_shares = int(cash/current_price) + 25 # 购买量大于0时,下单 + 26 30 56 1.9 0.0 if number_of_shares > 0: + 27 # 买入股票 + 28 30 83190 2773.0 19.5 order(security, +number_of_shares) + 29 # 记录这次买入 + 30 30 16202 540.1 3.8 log.info("Buying %s" % (security)) + 31 # 如果上一时间点价格低于五天平均价, 则空仓卖出 + 32 92 1119 12.2 0.3 elif current_price < average_price and context.portfolio.positions[security].amount > 0: + 33 # 卖出所有股票,使这只股票的最终持有量为0 + 34 13 86702 6669.4 20.3 order_target(security, 0) + 35 # 记录这次卖出 + 36 13 8210 631.5 1.9 log.info("Selling %s" % (security)) + 37 # 画出上一时间点价格 + 38 122 60630 497.0 14.2 record(stock_price=data[security].price) +``` + +### 策略组合操作 + +名称描述set_subportfolios初始化策略子账户 subportfolios +``` + +set_subportfolios([SubPortfolioConfig(cash,type), ... ]) +``` + + **初始化或者修改 subportfolios 的配置,只能在 initialize 中调用, 每个 SubPortfolioConfig 中 cash 的和应该等于总的初始资金** **SubPortfolioConfig 参数** +``` + +SubPortfolioConfig(cash,type) +``` + + - cash: 仓位初始资金 - type: 可操作标的的类型,'stock' / 'index_futures' / 'futures' / 'stock_margin' / 其中 stock 包括股票和基金,index_futures 指金融期货,futures 包含股指期货和商品期货,stock_margin 为融资融券账户 **示例** +``` + +## 设置多个账户 + # 获取初始资金,并等分为三份 + init_cash = context.portfolio.starting_cash/3 + # 设定subportfolios[0]为 股票和基金仓位,初始资金为 init_cash 变量代表的数值 + # 设定subportfolios[1]为 金融期货仓位,初始资金为 init_cash 变量代表的数值 + # 设定subportfolios[2]为 融资融券账户,初始资金为 init_cash 变量代表的数值 + set_subportfolios([SubPortfolioConfig(cash=init_cash, type='stock'),\ + SubPortfolioConfig(cash=init_cash, type='futures'),\ + SubPortfolioConfig(cash=init_cash, type='stock_margin')]) +``` + +SubPortfolio子账户信息 某个仓位的资金,标的信息,如不使用 SubPortfolioConfig 设置多仓位,默认只有subportfolios[0]一个仓位,Portfolio 指向该仓位。每个策略最多可以创建100个 subportfolio。 有关 SubPortfolio 详情见[对象 - SubPortfolio](#subportfolios) transfer_cash账户间转移资金 +``` + +transfer_cash(from_pindex, to_pindex, cash) +``` + + 从序号为 from_pindex 的 subportfolio 转移 cash 到序号为 to_pindex 的 subportfolio 资金转移及时到账 **示例** +``` + +# 从subportfolio[0] 向 subportfolio[1] 转移 500000 +transfer_cash(from_pindex=0, to_pindex=1, cash=500000) +``` + +### Tick 级策略专用函数 + +**Tick级回测模拟需要权限才可以开通:[立即加入会员获取tick权限](https://www.joinquant.com/view/vip/charge)或者[使用积分兑换tick权限](https://www.joinquant.com/view/credits/detail/29813a02eba325bdcf65903d705ca832)** + +**注意Tick级回测必须使用真实价格模式,设置方式详见[设置真实价格模式](#use_real_price)** + +**注意run_daily(??,'every_bar')注册的函数及handle_data不会在tick频率的策略中调用)** + +- 股票部分:支持 2017-01-01 至今的tick数据,提供买五卖五数据,每3秒一次快照 +- 期货部分:支持 2010-01-01 至今的tick数据,提供买一卖一数据,每0.5秒一次快照 +- 场内基金:支持 2019-01-01 至今的tick数据,提供买五卖五盘口数据,每3秒一次快照 +- 指数:支持 2017-01-01 至今的tick数据,每3秒一次快照 + +#### **Tick级专用API** + +名称描述handle_tick 策略运行 +``` + +handle_tick(context, tick) +``` + + 该函数在策略订阅的标的产生 tick 事件时被调用一次。如果没有 tick 事件, 则不会被调用。 **参数** - context: [context](#Context) 对象, 存放有当前的账户/标的持仓信息 - tick: [tick](#tick) 对象, 存放了触发 handle_tick 事件的 tick 数据。 **返回** - None **示例** +``` + +def handle_tick(context, tick): + log.info(tick) +``` + +subscribe 订阅标的的 tick 事件 +``` + +subscribe(security, frequency) +``` + + 订阅标的的 tick 事件, 必须在频率为 tick 的回测、模拟中使用。 **参数** - security:要订阅的标的代码或代码列表。目前支持订阅股票、期货、中证指数、场内基金,不能直接订阅主力合约、期货指数合约代码。 每个策略,回测中不限订阅标的数量,模拟交易时中最多可同时订阅100个标的。 - frequency:目前必须使用'tick' unsubscribe 取消订阅标的的 tick 事件 +``` + +unsubscribe(security, frequency) +``` + + 取消订阅标的的 tick 事件 **参数** - security:要取消订阅的标的代码或代码列表。 - frequency:目前必须使用'tick' unsubscribe_all 取消订阅所有 tick 事件 +``` + +unsubscribe_all() +``` + + 取消订阅所有 tick 事件 #### **Tick级示例策略** + +##### 示例1: + +``` + +# 回测时间段2019-06-03到2019-06-04,运行频率设置为tick +# 初始化 +def initialize(context): + # 获取起始资金 + init_cash = context.portfolio.starting_cash + # 交易品种为期货 + set_subportfolios([SubPortfolioConfig(cash=init_cash, type='futures')]) + # 定义一个全局变量, 保存要操作的期货 + g.code1 = 'RB1909.XSGE' + + # 08:30运行自定义开盘前运行函数 + run_daily(before_market_open, time='08:30', reference_security='RB9999.XSGE') + # 15:30运行自定义收盘后运行函数 + run_daily(after_market_open, time='15:30', reference_security='RB9999.XSGE') + +# 开盘前运行函数 +def before_market_open(context): + # 订阅要操作的期货 + subscribe(g.code1, 'tick') + +# 有tick事件时运行函数 +def handle_tick(context, tick): + # 获取最新的 tick 数据 + tick_data = get_current_tick(g.code1) + print(tick_data) + +# 收盘后运行函数 +def after_market_close(context): + # 取消今天订阅的标的 + unsubscribe_all() +``` + +##### 示例2: + +``` + +# 导入函数库 +import jqdata +def initialize(context): + set_benchmark('000300.XSHG') + set_option('use_real_price', True) + set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock') + +def before_trading_start(context): + subscribe('000001.XSHE','tick') + +def handle_tick(context, tick): + log.info(tick) + +def after_trading_end(context): + unsubscribe_all() +``` + +### 融资融券专用函数 + +#### **初始化融资融券账户** + +初始化的仓位是**不允许**直接进行融资融券操作的,因为初始默认 subportfolios[0] 中 SubPortfolioConfig 的 type = 'stock',只允许买卖股票与场内基金等。 + +因此要进行融资融券,您需要设定 SubPortfolioConfig 的 type = 'stock_margin',具体方法如下: + +``` + +def initialize(context): + + ## 设置单个账户 + # 获取初始资金 + init_cash = context.portfolio.starting_cash + # 设定账户为融资融券账户,初始资金为 init_cash 变量代表的数值(如不使用设置多账户,默认只有subportfolios[0]一个账户,Portfolio 指向该账户。) + set_subportfolios([SubPortfolioConfig(cash=init_cash, type='stock_margin')]) + + — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — + ## 设置多个账户 + # 获取初始资金,并等分为三份 + init_cash = context.portfolio.starting_cash/3 + # 设定subportfolios[0]为 股票和基金仓位,初始资金为 init_cash 变量代表的数值 + # 设定subportfolios[1]为 金融期货仓位,初始资金为 init_cash 变量代表的数值 + # 设定subportfolios[2]为 融资融券账户,初始资金为 init_cash 变量代表的数值 + set_subportfolios([SubPortfolioConfig(cash=init_cash, type='stock'),\ + SubPortfolioConfig(cash=init_cash, type='index_futures'),\ + SubPortfolioConfig(cash=init_cash, type='stock_margin')]) +``` + +#### **融资融券专用API** + +**注意:get_marginsec_stocks和get_margincash_stocks无法获取当前未完结交易日的数据,因为交易所的数据尚未生成。** + +名称描述margincash_interest_rate 设置融资利率 +``` + +set_option('margincash_interest_rate', value) +``` + + 设定融资利率, 默认 8% **参数** - value: 融资利率的值, 默认 8% **示例** +``` + +# 设定融资利率: 年化8% +set_option('margincash_interest_rate', 0.08) +``` + +margincash_margin_rate 设置融资保证金比率 +``` + +set_option('margincash_margin_rate', value) +``` + + 设置融资保证金比率, 默认 100% **参数** - value: 融资保证金比率的值, 默认 100% **示例** +``` + +# 设置融资保证金比率: 150% +set_option('margincash_margin_rate', 1.5) +``` + +marginsec_interest_rate 设置融券利率 +``` + +set_option('marginsec_interest_rate', value) +``` + + 设定融券利率: 年化 10%, 默认 10% **参数** - value: 融券利率的值, 默认 10% **示例** +``` + +# 设定融券利率: 年化10% +set_option('marginsec_interest_rate', 0.10) +``` + +marginsec_margin_rate 设置融券保证金比率 +``` + +set_option('marginsec_margin_rate', value) +``` + + 设定融券保证金比率: 150%, 默认 100% **参数** - value: 融券保证金比率的值, 默认 100% **示例** +``` + +# 设定融券保证金比率: 150% +set_option('marginsec_margin_rate', 1.5) +``` + +margincash_open 融资买入 +``` + +margincash_open(security, amount, style=None, pindex=0) +``` + + 融资买入 **参数** - security: 标的代码 - amount: 数量 - style: 参见[OrderStyle](#OrderStyle), None代表MarketOrder - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None **示例** +``` + +# 融资买入平安银行 1000 股 +margincash_open('000001.XSHE', 1000) +``` + +margincash_close 卖券还款 +``` + +margincash_close(security, amount, style=None, pindex=0) +``` + + 卖券还款 **参数** - security: 标的代码 - amount: 数量 - style: 参见[OrderStyle](#OrderStyle), None代表MarketOrder - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None **示例** +``` + +# 卖出 1000 股平安银行用以还款 +margincash_close('000001.XSHE', 1000) +``` + +margincash_direct_refund 直接还款 +``` + +margincash_direct_refund(value, pindex=0) +``` + + 直接还款 **参数** - value: 还款金额 **返回** None **示例** +``` + +# 还款 100000 元 +margincash_direct_refund(100000) +``` + +marginsec_open 融券卖出 +``` + +marginsec_open(security, amount, style=None, pindex=0) +``` + + 融券卖出 **参数** - security: 标的代码 - amount: 数量 - style: 参见[OrderStyle](#OrderStyle), None代表MarketOrder - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None **示例** +``` + +# 融券卖出 1000 股 平安银行 +marginsec_open('000001.XSHE', 1000) +``` + +marginsec_close 买券还券 +``` + +marginsec_close(security, amount, style=None, pindex=0) +``` + + 买券还券 **参数** - security: 标的代码 - amount: 数量 - style: 参见[OrderStyle](#OrderStyle), None代表MarketOrder - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None **示例** +``` + +# 买入 1000 股平安银行用以还券 +marginsec_close('000001.XSHE', 1000) +``` + +marginsec_direct_refund 直接还券 +``` + +marginsec_direct_refund(security, amount, pindex=0) +``` + + 直接还券 **参数** - security: 标的代码 - amount: 数量 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 **返回** None **示例** +``` + +## 如果账户持仓中"有" 1000股 平安银行 +# 直接还 1000 股平安银行 +marginsec_direct_refund('000001.XSHE', 1000) + +— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — + +## 如果账户持仓中"没有" 1000股 平安银行 +# 需先买入 1000 股平安银行 +order('000001.XSHE', 1000) +# 再直接还 1000 股平安银行 +marginsec_direct_refund('000001.XSHE', 1000) +``` + +get_margincash_stocks 获取融资标的列表 +``` + +get_margincash_stocks() +``` + + **参数** date: 查询日期,回测模块中若不填,日期默认为回测的日期;研究模块中若不填,默认为最新日期;也可指定日期。 **返回** 返回上交所、深交所最近一次披露的的可融资标的列表的list。 **示例** +``` + +# 获取融资标的列表,并赋值给 margincash_stocks +margincash_stocks = get_margincash_stocks() + +# 判断平安银行是否在可融资列表 +>>> '000001.XSHE' in get_margincash_stocks() +>>> True +``` + +get_marginsec_stocks 获取融券标的列表 +``` + +get_marginsec_stocks(date=None) +``` + + **参数** date: 查询日期,回测模块中若不填,日期默认为回测的日期;研究模块中若不填,默认为最新日期;也可指定日期。 **返回** 返回上交所、深交所最近一次披露的的可融券标的列表的list。 **示例** +``` + +# 获取融券标的列表,并赋值给 marginsec_stocks +marginsec_stocks= get_marginsec_stocks() + +# 判断平安银行是否在可融券列表 +>>> '000001.XSHE' in get_marginsec_stocks() +>>> True +``` + +get_mtss 获取融资融券信息 +``` + +from jqdata import * +get_mtss(security_list, start_date=None, end_date=None, fields=None, count=None) +``` + + 获取一只或者多只股票在一个时间段内的融资融券信息 **注: 需导入 jqdata 模块,即在策略或研究起始位置加入`from jqdata import *`** **参数** - security_list: 一只股票代码或者一个股票代码的 list - start_date: 开始日期, **与 count 二选一, 不可同时使用**. 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 默认为平台提供的数据的最早日期 - end_date: 结束日期, 一个字符串或者 [datetime.date]/[datetime.datetime] 对象, 默认为 datetime.date.today() - count: 数量, **与 start_date 二选一,不可同时使用**, 必须大于 0. 表示返回 end_date 之前 count 个交易日的数据, 包含 end_date - fields: 字段名或者 list, 可选. 默认为 None, 表示取全部字段, 各字段含义如下: |字段名|含义| |---|---| |date|日期| |sec_code|股票代码| |fin_value|融资余额(元)| |fin_buy_value|融资买入额(元)| |fin_refund_value|融资偿还额(元)| |sec_value|融券余量(股)| |sec_sell_value|融券卖出量(股)| |sec_refund_value|融券偿还量(股)| |fin_sec_value|融资融券余额(元)| **返回** 返回一个 [pandas.DataFrame] 对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应. **示例** +``` + +# 导入聚宽函数库 +from jqdata import * + +# 获取一只股票的融资融券信息 +get_mtss('000001.XSHE', '2016-01-01', '2016-04-01') +get_mtss('000001.XSHE', '2016-01-01', '2016-04-01', fields=["date", "sec_code", "fin_value", "fin_buy_value"]) +get_mtss('000001.XSHE', '2016-01-01', '2016-04-01', fields="sec_sell_value") + +# 获取多只股票的融资融券信息 +get_mtss(['000001.XSHE', '000002.XSHE', '000099.XSHE'], '2015-03-25', '2016-01-25') +get_mtss(['000001.XSHE', '000002.XSHE', '000099.XSHE'], '2015-03-25', '2016-01-25', fields=["date", "sec_code", "sec_value", "fin_buy_value", "sec_sell_value"]) + +# 获取股票 000001.XSHE 在日期 2016-06-30 往前 20 个交易日的融资融券信息 +get_mtss('000001.XSHE', end_date="2016-06-30", count=20) +# 获取股票 000001.XSHE 往前 20 个交易日的融资融券信息 +get_mtss('000001.XSHE', count=20) +``` + +### 期货策略专用函数 + +#### **初始化期货账户** + +初始化的仓位是**不允许**直接买卖期货的,因为初始默认 subportfolios[0] 中 SubPortfolioConfig 的 type = 'stock',只允许买卖股票与场内基金等。 + **因此要买卖期货,您需要设定 SubPortfolioConfig 的 type = 'futures'**,具体方法如下: + +``` + +def initialize(context): + + ## 设置单个账户 + # 获取初始资金 + init_cash = context.portfolio.starting_cash + # 设定账户为金融账户,初始资金为 init_cash 变量代表的数值(如不使用设置多账户,默认只有subportfolios[0]一个账户,Portfolio 指向该账户。) + set_subportfolios([SubPortfolioConfig(cash=init_cash, type='futures')]) + + # 设置运行函数的参考(market_open为自定义函数,需要自己实现;参考标的默认为沪深300,需要根据策略自己设置,下面只是举例) + run_daily(market_open, time='every_bar', reference_security='CU9999.XSGE') +``` + +#### **期货信息** + +名称描述主力连续合约主力连续合约信息 1. 期货合约的生存周期是有限的,到合约最后交易日后就要交割。因此我们根据**持仓量**对期货合约进行拼接,形成主力连续合约。 2. 合约代码:品种代码+9999.交易所后缀,例如 AG9999.XSGE(白银主力合约)、Y9999.XDCE(豆油主力合约)。 3. 主力合约定义:如果某合约持仓量连续2天为同一个品种中最大的(金融期货限定主力只从最近的两个合约中选取),且该合约相对于当前主力合约为远期合约,则自动变成主力合约。不会在日内进行主力合约切换。 4. **不可直接对主力合约进行下单**。请使用get_dominant_future获取主力合约对应的具体合约。 [**主要期货交易所的主力合约及品种指数代码列表**](https://www.joinquant.com/help/api/help?name=Future#%E4%B8%BB%E5%8A%9B%E8%BF%9E%E7%BB%AD%E5%90%88%E7%BA%A6%E5%8F%8A%E5%93%81%E7%A7%8D%E6%8C%87%E6%95%B0) 品种指数品种指数信息 1. 期货品种指数合约定义 : 期货品种指数数据使用前一天的持仓量加权平均 2. 合约代码: 品种代码+8888.交易所后缀,如 AG8888.XSGE(白银合约指数)、Y8888.XDCE(豆油品种指数) 3. 不可以对品种指数下单,请获取具体合约进行交易 [**主要期货交易所的主力合约及品种指数代码列表**](https://www.joinquant.com/help/api/help?name=Future#%E4%B8%BB%E5%8A%9B%E8%BF%9E%E7%BB%AD%E5%90%88%E7%BA%A6%E5%8F%8A%E5%93%81%E7%A7%8D%E6%8C%87%E6%95%B0) 期货注意事项期货策略注意事项 - 有夜盘的商品期货的一个交易日从前一天晚上 21:00 开始 - 每日在16:00:00结算, 对于期货, 使用结算价结算 - 期货持仓到交割日,没有手动交割,系统会以当天结算价平仓, 没有手续费, 不会有交易记录 - 股指期货平今手续费默认为万分之六点九 #### **期货专用API** + +了解更多:[关于下单函数的说明](https://www.joinquant.com/view/community/detail/3c7c9e987e011d531cf81222c83f7925) + +名称描述get_dominant_future 获取主力合约对应的标的 +``` + +get_dominant_future(underlying_symbol, date=None) +``` + + **参数** - underlying_symbol: 期货合约品种,如 'AG'(白银) - date: 查询日期,回测模块中若不填,日期默认为回测的日期;研究模块中若不填,默认为最新日期;也可指定日期。 **返回** - 主力合约对应的期货合约 **示例** +``` + +# 获取某一天的主力合约对应的期货合约代码(策略当前日期是20160801) +>>> get_dominant_future('IF') + +# 输出 +'IF1608.CCFX' +``` + +get_future_contracts 期货可交易合约列表 +``` + +get_future_contracts(security, date=None) +``` + + 获取某期货品种在策略当前日期的可交易合约标的列表 **参数** - security: 期货合约品种,如 'AG'(白银) - date: 查询日期,回测模块中若不填,日期默认为回测的日期;研究模块中若不填,默认为最新日期;也可指定日期。 **返回** - 某期货品种在策略当前日期的可交易合约标的列表 **示例** +``` + +# 获取某一天的主力合约对应的期货合约代码(策略当前日期是20160601) +get_future_contracts('IF') + +# 输出 +[u'IF1606.CCFX', u'IF1607.CCFX', u'IF1609.CCFX', u'IF1612.CCFX'] +``` + +futures_margin_rate 设置期货保证金比例 +``` + +set_option('futures_margin_rate', value) +``` + + 设置期货保证金比例。可为不同品种的标的设置不同比例的保证金。 除中金所股指期货外,其他品种使用合约单边保证金机制,对于一个合约的双向持仓只收最大的那一边的保证金。 中金所股指期货使用跨品种单边保证金,对于所有中金所股指期货标的,只收取双向持仓中更大的那一边的保证金。 **参数** - value: value 是一个 float 值,为期货的保证金比例。 **示例** +``` + +# 设定期货保证金比例 +set_option('futures_margin_rate', 0.25) # 设定期货保证金比例为25% +set_option('futures_margin_rate.AU1709', 0.08)# 设定合约AU1709保证金比例为8% +set_option('futures_margin_rate.AU', 0.09)# 设定所有黄金期货保证金比例为9% +set_option('futures_margin_rate', 0.1)# 设定所有期货保证金比例为10% +set_option('futures_margin_rate.IF', 0.15)# 设定所有股指期货保证金比例为15% +``` + + 不设置时,股指期货默认值 0.15 ;商品期货默认保证金比例如下: 期货品种|默认保证金比例|期货品种|默认保证金比例 -------|-----------|-------|------------ A|0.07|MA|0.05 AG|0.04|NI|0.05 AL|0.05 |NR|0.15 AP|0.08|OI|0.05 AU|0.04|P|0.05 B|0.05|PB|0.05 BB|0.2| PM|0.05 BU|0.04|PP|0.07 C|0.07|RB|0.05 CF|0.05|RI|0.05 CJ|0.07|RM|0.05 CS|0.07|RS|0.05 CU|0.05 |RU|0.05 CY|0.05|SC|0.07 EG|0.05|SF|0.05 FB|0.2|SM|0.05 FG|0.05|SN|0.05 FU|0.08|SP|0.1 HC|0.04| SR|0.05 I|0.1|TA|0.05 J|0.12|TS|0.0005 JD|0.08|UR|0.09 JM|0.12|V|0.07 JR|0.05|WH|0.05 L|0.07|WR|0.07 Y|0.05 |WT|0.05 LR|0.05|ZC|0.05 M|0.07|ZN|0.05 is_dangerous 期货保证金预警 判断指定仓位,是否低于指定的保证金比率,高于该比例返回`False`,低于该比例返回`True`. +``` + +context.subportfolios[i].is_dangerous(margin_rate) +``` + + **其中 i 是要查询的仓位编号, margin_rate 是要查询的保证金比例** **返回:** True 或 False **示例:** +``` + +# 查询 subportfolios[1] 中保证金是否低于 20% +context.subportfolios[1].is_dangerous(0.2) + +# 低于则返回True, 高则返回 False +``` + +get_price等 获取期货的行情数据 获取期货行情数据,与获取股票数据的方法类似 - [get_price](#get_price)、[history](#history)、[attribute_history](#attribute_history)、[get_current_data](#get_current_data)、[get_bars](#get_bars) 等 API 均可正常使用; - get_price, get_bars, history, attribute_history 新增字段 : 持仓量open_interest; - get_price中pre_close获取天数据时为前结算价; +``` + +df = get_price('C1909.XDCE', end_date='2019-06-28 15:00:00', count=5, + fields=['close', 'open_interest'], frequency='1m') +print(df) +``` + +order 期货按手数下单 +``` + +order(security, amount, style=None, side='long', pindex=0, close_today=False) +``` + + 买卖标的。调用成功后, 您将可以调用[get_open_orders]取得所有未完成的交易, 也可以调用[cancel_order]取消交易 **参数** - security: 标的代码 - amount: 交易数量, 正数表示买入, 负数表示卖出 - style: 参见[OrderStyle](#OrderStyle), None代表MarketOrder - side: 'long'/'short',操作多单还是空单,默认为多单。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0 指定第一个 subportfolio, 1 指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 **返回** Order对象或者None, 如果创建订单成功, 则返回Order对象, 失败则返回None **示例** +``` + +## 如果期货账户是默认账户 +# 在仓位0中开一手沪深300指数期货的空单 +order('IF1412.CCFX', 1 , side='short', pindex=0) + +# 在仓位0中开一手沪深300指数期货的多单 +order('IF1412.CCFX', 1 , side='long', pindex=0) + +## 如果期货账户是仓位1 +# 在仓位1中以3600的限价单,平一手沪深300指数期货的空单 +order('IF1412.CCFX', -1 , LimitOrderStyle(3600.0), side='short', pindex=1) + +# 在仓位1中平一手沪深300指数期货的多单 +order('IF1412.CCFX', -1 , side='long', pindex=1) +``` + + **可能的失败原因**: 1. 标的不存在,对于该原因, 我们会抛出异常停止运行, 因为我们认为这是您代码的bug. 2. 选择了不存在的仓位号,如没有建立多个仓位,而设定pindex的数大于0 **注意**: - 因为下列原因, 有时候实际买入或者卖出的股票数量跟您设置的不一样,这个时候我们会在您的log中添加警告信息。 1. 买入时会根据您当前的现金来限制您买入的数量 2. 卖出时会根据您持有股票的数量来限制您卖出的数量 3. 我们会遵守A股交易规则: 每次交易数量只能是100的整数倍, 但是卖光所有股票时不受这个限制 - 根据交易所规则, 每天结束时会取消所有未完成交易 order_target 期货目标手数下单 +``` + +order_target(security, amount, style=None, side='long', pindex=0, close_today=False) +``` + + 买卖标的, 使最终标的的数量达到指定的amount **参数** - security: 标的代码 - amount: 期望的最终数量 - style: 参见[OrderStyle](#OrderStyle), None代表MarketOrder - side: 'long'/'short',操作多单还是空单,默认为多单。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None 注意:**使用order_target进行开平仓时,请直接对目标方向进行操作,请看示例。** **示例** +``` + +# 开5手多单 +order_target('IF1412.CCFX', 5 , side='long', pindex=1) +# 平1手多单 +order_target('IF1412.CCFX', 4 , side='long', pindex=1) +# 再开5手空单,操作完成后持有多单4手,空单5手 +order_target('IF1412.CCFX', 5 , side='short', pindex=1) +# 平1手空单,操作完成后持有多单4手,空单4手 +order_target('IF1412.CCFX', 4 , side='short', pindex=1) +``` + +order_value 期货按保证金下单 +``` + +order_value(security, value, style=None, side='long', pindex=0, close_today=False) +``` + + 买卖保证金为value的标的。 **参数** - security: 标的名字 - value: 期货保证金,value = 最新价 * 手数 * 保证金率 * 乘数 - style: 参见[OrderStyle](#OrderStyle), None代表MarketOrder - side: 'long'/'short',操作多单还是空单。默认为多单。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None 注意:**使用order_value进行开平仓时,请直接对目标方向进行操作,请看示例。** **示例** +``` + +# 开保证金为5000000多单 +order_value('IF1412.CCFX', 5000000 , side='long', pindex=1) +# 平保证金为4000000多单 +order_value('IF1412.CCFX', -4000000, side='long', pindex=1) +``` + +order_target_value 期货目标保证金下单 +``` + +order_target_value(security, value, style=None, side='long', pindex=0, close_today=False) +``` + + 调整标的仓位到value价值。 **参数** - security: 标的名字 - value: 期望的标的最终保证金,value = 最新价 * 手数 * 保证金率 * 乘数 - style: 参见[OrderStyle](#OrderStyle), None代表MarketOrder - side: 'long'/'short',操作多单还是空单。 - pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,**默认为0**。 - close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。 - 对上海国际能源中心,上海期货交易所,中金所的标的: - close_today = True, 只平今仓 - close_today = False, 优先平昨仓,昨仓不足部分平今仓 **返回** Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None 注意:**使用order_target_value进行开平仓时,请直接对目标方向进行操作,请看示例。** **示例** +``` + +# 将IF1412.CCFX的多单保证金调整至5000000 +order_target_value('IF1412.CCFX',5000000, side='long', pindex=1) +# 将IF1412.CCFX的多单保证金调整至4000000 +order_target_value('IF1412.CCFX', 4000000, side='long', pindex=1) +# 平掉IF1412.CCFX的多单 +order_target_value('IF1412.CCFX', 0 , side='long', pindex=1) +``` + +### 归因分析说明 + +#### 净值分析 + +#### 收益分析 + +- 累计收益:累计收益 +- 对数轴累计收益:对数轴累计收益 +- 日内收益:每天收益的时间序列图 +- 滑点对列净值曲线的影响:通过受滑点影响的每日收益计算出的累计收益,受滑点影响的每日收益 = 每日收益 - 滑点 * 每日换手率 * 2 +- 年度收益:分年度计算的累计收益的终值 +- 月度收益的时间序列:分月度计算的累计收益的终值 +- 月度收益热力图:分月度计算的累计收益的终值 +- 月度收益频次分布图:查看月度收益频次分布 + +#### 风险指标 + +- 滚动beta指标:滚动 6 个月 (21 * 6 个交易日) 和 12 个月 (21 * 12 个交易日) 的 beta +- 滚动sharpe指标(6个月时间窗口):滚动 6 个月 (21 * 6 个交易日) 的夏普比率 +- 前五大回撤区间:找到前5大回撤区间 + +#### 持仓分析 + +- 前10大持仓:显示股票前10大持仓 +- 持仓收益:显示股票的持仓收益,其中[内部收益率](https://www.joinquant.com/post/15352)为一项投资可望到达的报酬率。 +- 日交易股数:每日交易股数的绝对值的和 +- 日换手率:(每日交易市值的绝对值的和 / 2) / 当日总市值 + +#### Brinson 归因 + +- 基准指沪深300指数,采用减法超额,详细见[Brinson模型介绍](https://www.joinquant.com/view/community/detail/da9fcadd00b27dcf92dca2a2999a0309?type=1) +- 总超额收益:策略相对于基准获得的额外收益,是下面主动配置收益、标的选择收益以及交互效应收益的汇总。 +- 主动配置收益:主动配置的收益来源于对上涨行业的超配或对下跌行业的低配,是衡量对大类资产强弱走势进行判断的能力。如果大于零则意味着看准了市场大方向,并且高配了好的资产。 +- 标的选择收益:标的选择的收益来源于对行业中表现好的个股的超配或对行业中表现差个股的低配。是对能否选出高于市场基准收益的资产,即在相同资金分配比例下,能否获得更高的收益能力的衡量。如果大于零则意味着拥有高于市场的个股选择能力。 +- 互动收益:在总超额收益中,除去主动配置收益和标的选择收益,也就是超额收益中同时收到主动配置与标的选择影响的部分,就是互动收益。 + +#### 因子分析 + +#### 风格分析 + +Fama-French五因子模型,是将超额收益分为5个因子来解释,具体如下表 + +| 因子 | 因子解释 | 构造方式 | 回归系数解释 | +| --- | --- | --- | --- | +| 市场因子(RM) | 受市场走势变化造成的不确定性收益率 | 市场组合收益率减去无风险收益率 | 当βi>0,说明在样本期间内,该组合的运行趋势与市场整体运行趋势是一致的,如果大于1,说明该组合可能偏激进型。 | +| 规模因子(SMB) | 由于上市公司规模不同导致的收益率差异 | 小市值组合的收益率减去大市值组合的收益率 | 当si>0,说明该组合可能偏好于配置小盘股 | +| 估值因子(HML) | 由于上市公司账面市值比不同导致的收益率差异 | 较高账面市值比的公司组合收益率减去减低账面市值比的公司组合收益率 | 当hi>0,说明该组合可能偏好于配置账面市值比高的公司,也就是价值型的公司 | +| 盈利因子(RMW) | 由于盈利水平不同造成的收益率差异 | 高盈利公司组合收益率减去低盈利公司组合收益率 | 当ri>0,说明该组合可能偏好于配置盈利高的公司 | +| 投资因子(CMA) | 由于投资水平的不同造成的收益率差异 | 投资率低的公司组合收益率减去投资率高的公司组合收益率 | 当ci>0,说明该组合可能偏好于配置投资率较低的公司 | + +#### 风险分析 + +说明: + +- 风险因子暴露对比中,基准风险因子暴露度为沪深300指数股票池中股票风险暴露的市值加权平均;风险暴露的基准都是 hs300 指数,所以只要时间段是一样的,暴露度就是一样的 +- 风险因子暴露对比中,风险因子暴露差值代表了策略组合的风险敞口暴露,如果风险因子暴露差值接近0,说明策略组合对该风险因子是风险中性的,即策略组合不暴露与这个风险因子;因子暴露差值就是回测的组合和基准(hs300)组合风险暴露的差,因为这10个因子是大家公认的风险因子,而基准组合被认为是无风险的;所以大家都认为和基准(hs300)组合风险暴露的差越趋近于0,风险暴露越低,策略收益的稳定性越好;大于或小于基准组合风险,可以参考相应因子的定义,调整对应的持仓,将风险暴露趋近于基准组合风险暴露 +- 收益详情中,Backtest为回测的收益; +- 收益详情中,国家因子是在巴若风险模型中,横截面线性回归的截距项(一共有10个风格因子,11个行业因子(jq_l1),和1个国家因子);国家因子的因子值为常数1,因子收益(线性回归的系数)代表了大盘整体的收益; +- 收益详情中,特殊收益是指收益中剔除已知可解释收益(因子收益)之外的,其他不可解释的收益; +- 收益详情中,其他的一些收益的解释,点击页面上的提示即可看到; + +对收益分析的最后一部分就是查看该策略在各个方面和基准相比的偏差,通过10个风格因子来判别,具体解释如下表。 + +| 因子 | 解释 | +| --- | --- | +| 市值 | 捕捉大盘股和小盘股之间的收益差异 | +| 非线性市值 | 描述了无法由规模因子解释的但与规模有限的收益差异,通常代表中盘股 | +| 杠杆 | 描述了高杠杆股票与低杠杆股票之间的收益差异 | +| 账面市值比 | 描述了股票估值高低不同而产生的收益差异,即价值因子 | +| 成长 | 描述了对销售或盈利增长预期不同而产生的收益差异 | +| 动量 | 描述了过去半年到一年里相对强势的股票与弱势股票之间的差异 | +| 盈利能力 | 描述了由盈利收益导致的收益差异 | +| 贝塔 | 表征了股票相对于市场的波动敏感程度 | +| 残差波动率 | 解释了剥离了市场风险后的波动率高低产生的收益率差异 | +| 流动性 | 解释了由股票相对的交易活跃度不同而产生的收益率差异。 | + +## 策略示例 + +### 均线策略 + +当价格高于5日均线平均价格*1.05时买入,当价格低于5日平均价格*0.95时卖出。 + +``` + +# 导入聚宽函数库 +import jqdata + +# 初始化函数,设定要操作的股票、基准等等 +def initialize(context): + # 定义一个全局变量, 保存要操作的股票 + # 000001(股票:平安银行) + g.security = '000001.XSHE' + # 设定沪深300作为基准 + set_benchmark('000300.XSHG') + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + +# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次 +def handle_data(context, data): + security = g.security + # 获取股票的收盘价 + close_data = attribute_history(security, 5, '1d', ['close']) + # 取得过去五天的平均价格 + MA5 = close_data['close'].mean() + # 取得上一时间点价格 + current_price = close_data['close'][-1] + # 取得当前的现金 + cash = context.portfolio.available_cash + + # 如果上一时间点价格高出五天平均价5%, 则全仓买入 + if (current_price > 1.05*MA5) and (cash>0): + # 用所有 cash 买入股票 + order_value(security, cash) + # 记录这次买入 + log.info("Buying %s" % (security)) + # 如果上一时间点价格低于五天平均价, 则空仓卖出 + elif current_price < 0.95*MA5 and context.portfolio.positions[security].closeable_amount > 0: + # 卖出所有股票,使这只股票的最终持有量为0 + order_target(security, 0) + # 记录这次卖出 + log.info("Selling %s" % (security)) + # 画出上一时间点价格 + record(stock_price=current_price) +``` + +### 多股票持仓示例 + +这是一个较简单的多股票操作示例,当价格高于三天平均价*1.005则买入100股,当价格小于三天平均价*0.995则卖出。 + +``` + +# 导入聚宽函数库 +import jqdata + +def initialize(context): + # 初始化此策略 + # 设置我们要操作的股票池 + g.stocks = ['000001.XSHE','000002.XSHE','000004.XSHE','000005.XSHE'] + # 设定沪深300作为基准 + set_benchmark('000300.XSHG') + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + +# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次 +def handle_data(context, data): + # 循环每只股票 + for security in g.stocks: + # 得到股票之前3天的平均价 + vwap = data[security].vwap(3) + # 得到上一时间点股票收盘价 + price = data[security].close + # 得到当前资金余额 + cash = context.portfolio.available_cash + + # 如果上一时间点价格小于三天平均价*0.995,并且持有该股票,卖出 + if price < vwap * 0.995 and context.portfolio.positions[security].closeable_amount > 0: + # 下入卖出单 + order(security,-100) + # 记录这次卖出 + log.info("Selling %s" % (security)) + # 如果上一时间点价格大于三天平均价*1.005,并且有现金余额,买入 + elif price > vwap * 1.005 and cash > 0: + # 下入买入单 + order(security,100) + # 记录这次买入 + log.info("Buying %s" % (security)) +``` + +### 多股票追涨策略 + +当股票在当日收盘30分钟内涨幅到达9.5%~9.9%时间段的时候,我们进行买入,在第二天开盘卖出。注意:**请按照分钟进行回测该策略**。 + +``` + +# 导入聚宽函数库 +import jqdata + +# 初始化程序, 整个回测只运行一次 +def initialize(context): + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + + # 每天买入股票数量 + g.daily_buy_count = 5 + + # 设置我们要操作的股票池, 这里我们操作多只股票,下列股票选自计算机信息技术相关板块 + g.stocks = get_industry_stocks('I64') + get_industry_stocks('I65') + + # 防止板块之间重复包含某只股票, 排除掉重复的, g.stocks 现在是一个集合(set) + g.stocks = set(g.stocks) + + # 让每天早上开盘时执行 morning_sell_all + run_daily(morning_sell_all, '09:30') + +def morning_sell_all(context): + # 将目前所有的股票卖出 + for security in context.portfolio.positions: + # 全部卖出 + order_target(security, 0) + # 记录这次卖出 + log.info("Selling %s" % (security)) + +def before_trading_start(context): + # 今天已经买入的股票 + g.today_bought_stocks = set() + + # 得到所有股票昨日收盘价, 每天只需要取一次, 所以放在 before_trading_start 中 + g.last_df = history(1,'1d','close',g.stocks) + +# 在每分钟的第一秒运行, data 是上一分钟的切片数据 +def handle_data(context, data): + + # 判断是否在当日最后的2小时,我们只追涨最后2小时满足追涨条件的股票 + if context.current_dt.hour < 13: + return + + # 每天只买这么多个 + if len(g.today_bought_stocks) >= g.daily_buy_count: + return + + # 只遍历今天还没有买入的股票 + for security in (g.stocks - g.today_bought_stocks): + + # 得到当前价格 + price = data[security].close + + # 获取这只股票昨天收盘价 + last_close = g.last_df[security][0] + + # 如果上一时间点价格已经涨了9.5%~9.9% + # 今天的涨停价格区间大于1元,今天没有买入该支股票 + if price/last_close > 1.095 \ + and price/last_close < 1.099 \ + and data[security].high_limit - last_close >= 1.0: + + # 得到当前资金余额 + cash = context.portfolio.available_cash + + # 计算今天还需要买入的股票数量 + need_count = g.daily_buy_count - len(g.today_bought_stocks) + + # 把现金分成几份, + buy_cash = context.portfolio.available_cash / need_count + + # 买入这么多现金的股票 + order_value(security, buy_cash) + + # 放入今日已买股票的集合 + g.today_bought_stocks.add(security) + + # 记录这次买入 + log.info("Buying %s" % (security)) + + # 买够5个之后就不买了 + if len(g.today_bought_stocks) >= g.daily_buy_count: + break +``` + +### 万圣节效应策略 + +股市投资中的“万圣节效应”是指在北半球的冬季(11月至4月份),股市回报通常明显高於夏季(5月至10月份)。这里我们选取了中国蓝筹股,采用10月15日后买入,5月15日后卖出的简单策略进行示例。 + +``` + +# 导入聚宽函数库 +import jqdata + +# 初始化此策略 +def initialize(context): + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + + # 设置我们要操作的股票池,这里我们选择蓝筹股 + g.stocks = ['000001.XSHE','600000.XSHG','600019.XSHG','600028.XSHG','600030.XSHG','600036.XSHG','600519.XSHG','601398.XSHG','601857.XSHG','601988.XSHG'] + +# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次 +def handle_data(context, data): + # 得到每只股票可以花费的现金,这里我们使用总现金股票数数量 + cash = context.portfolio.available_cash / len(g.stocks) + # 获取数据 + hist = history(1,'1d','close',g.stocks) + # 循环股票池 + for security in g.stocks: + # 得到当前时间 + today = context.current_dt + # 得到该股票上一时间点价格 + current_price = hist[security][0] + # 如果当前为10月且日期大于15号,并且现金大于上一时间点价格,并且当前该股票空仓 + if today.month == 10 and today.day > 15 and cash > current_price and context.portfolio.positions[security].closeable_amount == 0: + order_value(security, cash) + # 记录这次买入 + log.info("Buying %s" % (security)) + # 如果当前为5月且日期大于15号,并且当前有该股票持仓,则卖出 + elif today.month == 5 and today.day > 15 and context.portfolio.positions[security].closeable_amount > 0: + # 全部卖出 + order_target(security, 0) + # 记录这次卖出 + log.info("Selling %s" % (security)) +``` diff --git a/docs/joinquant-api/JQData.md b/docs/joinquant-api/JQData.md new file mode 100644 index 0000000..5a92b3a --- /dev/null +++ b/docs/joinquant-api/JQData.md @@ -0,0 +1,8056 @@ +## JQData-本地量化数据说明书 + +#### **由于内容较多,可使用Ctrl+F搜索您需要的数据。** + +- **注意:query函数的更多用法详见:[Query的简单教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376)** +- run_query 查询数据库中的数据:为了防止返回数据量过大, 我们每次最多返回**5000**行;不支持进行连表查询,即同时查询多张表的数据; +- 查询财务数据时如果提示没有定义,请在最上面添加:from jqdatasdk import * +- jqdatasdk包(产品名称JQData)和官网的jqdata包是两个不同的包,API不完全相同,点击查看**JQData 介绍与说明**中[关于JQData、jqdatasdk和jqdata](https://www.joinquant.com/help/api/help#JQDataApi:JQData%E4%BB%8B%E7%BB%8D%E4%B8%8E%E8%AF%B4%E6%98%8E),**JQData常见问题及报错解决教程**中[JQData和官网不一致API对比](https://www.joinquant.com/help/api/help#JQDataApi:JQData%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E6%8A%A5%E9%94%99%E8%A7%A3%E5%86%B3%E6%95%99%E7%A8%8B) + +### 介绍与说明 + +名称描述JQData介绍JQData是什么 JQData是聚宽数据团队专门为金融机构、学术团体和量化研究者们提供的本地量化金融数据服务。使用JQData,可快速查看和计算金融数据,无障碍解决本地、Web、金融终端调用数据的需求。历经5年沉淀,40万宽客及数3500家知名量化机构投研交易验证。 使用上,JQData适用Windows、Mac、Linux多种操作系统,支持python2、python3和以及任意编程语言。数据通过简洁的API方式提供,pip即可直接安装使用,挣脱使用束缚,实现更多场景。只需三行代码,即可随取随用~ JQData提供的数据及数据更新频率JQData提供的数据及数据更新频率 为了满足用户的需求,聚宽数据团队在JQData中不仅提供了全面的基础金融数据,包括**沪深A股行情数据,上市公司财务数据,场内基金数据,场外基金数据,指数数据,期货数据,期权数据、债券数据以及宏观经济数据**;除此之外,JQData还针对因子数据和特色数据,引进了聚宽因子库,舆情数据,Alpha特色因子,技术分析指标因子,tick数据,助您更好的完成量化研究和投资决策。详细数据清单如下表所示: | **数据品种** | **时间范围** | **更新频率** | +| --- | --- | --- | +| 股票列表数据 | 2005至今 | 8:00更新 | +| 行业概念和指数成分股 | 2005至今 | 8:00更新 | +| 日行情 | 2005至今 | 盘后15:00更新,24:00校对完成入库 | +| 分钟行情 | 2005至今 | 盘后15:00更新,24:00校对完成入库 | +| 集合竞价数据 | 2010年至今 | 盘后15:00更新 | +| 分红拆分送股 | 2005至今 | 8:00更新 | +| 融资融券 | 2010至今 | 下一个交易日9点之前更新 | +| 资金流向 | 2010至今 | 盘后20:00更新 | +| 龙虎榜数据 | 2005至今 | 盘后20:00和22:00更新 | +| 限售解禁股 | 2005至今 | 盘后20:00更新 | +| 停复牌、涨跌停价格数据 | 2005至今 | 盘前9:15更新 | +| 沪深市场每日成交概况 | 2005年至今 | 交易日20:30-24:00更新 | +| 沪股通,深股通和港股通(市场通数据) | 上市至今 | 交易日20:30-06:30更新 | +| 申万一级行业指数日行情数据 | 上市至今 | 交易日17:30更新 | +| 申万一级行业估值数据 | 上市至今 | 交易日17:30更新 | +| **上市公司财务数据** | **时间范围** | **更新频率** | +| 估值数据 | 2005至今 | 每天24:00更新 | +| 财务指标 | 2005至今 | 每天24:00更新 | +| 资产负债表 | 2005至今 | 每天24:00更新 | +| 现金流量表 | 2005至今 | 每天24:00更新 | +| 利润表 | 2005至今 | 每天24:00更新 | +| 银行专项指标表 | 2005至今 | 每天24:00更新 | +| 券商专项指标表 | 2005至今 | 每天24:00更新 | +| 保险专项指标表 | 2005至今 | 每天24:00更新 | +| 上市公司概况 | 2005年至今 | 交易日24:00更新 | +| 上市公司股东股本 | 2005年至今 | 交易日24:00更新 | +| **期货数据** | **时间范围** | **更新频率** | +| 期货列表数据 | 2005至今 | 8:00更新 | +| 日行情 | 2005至今 | 盘后15:00更新,24:00校对完成入库 | +| 分钟行情 | 2005至今 | 盘后15:00更新,24:00校对完成入库 | +| 期货结算价 | 2005至今 | 盘后17:00 更新 | +| 期货主力合约 | 2005至今 | 20点更新下一交易日 | +| 期货连续指数 | 2005至今 | 盘前8:00更新 | +| 期货龙虎榜数据 | 2005年至今 | 盘后19:00更新 | +| 期货仓单数据 | 2005年至今 | 盘后20:00更新 | +| 外盘期货日行情数据 | 上市至今 | 盘前9:00更新 | +| **场内基金数据** | **时间范围** | **更新频率** | +| 场内基金列表数据 | 2005至今 | 8:00更新 | +| 分级基金数据 | 2005至今 | 8:00更新 | +| 日行情 | 2005至今 | 盘后更新15点更新 | +| 分钟行情 | 2005至今 | 盘后15点更新,盘后24:00更新 | +| 净值数据 | 2005至今 | 下一个交易日10点之前更新 | +| 融资融券 | 2010至今 | 下一个交易日9点之前更新 | +| 场内基金份额数据 | 2005-02-23至今 | 下一个交易日10点之前更新 | +| 集合竞价数据 | 2019年至今 | 盘后15:00更新 | +| **公募基金** | **时间范围** | **更新频率** | +| 基金主体信息 | 上市至今 | 盘后24:00更新 | +| 基金净值信息 | 上市至今 | 盘前9:00更新 | +| 基金持股信息 | 上市至今 | 盘后24:00更新 | +| 基金持仓债券信息 | 上市至今 | 盘后24:00更新 | +| 基金资产组合概况 | 上市至今 | 盘后24:00更新 | +| 基金财务指标信息 | 上市至今 | 盘后24:00更新 | +| 基金收益日报信息 | 上市至今 | 盘后24:00更新 | +| 基金分红拆分合并信息 | 上市至今 | 盘后24:00更新 | +| **指数数据** | **时间范围** | **更新频率** | +| 指数列表数据 | 2005至今 | 8:00更新 | +| 指数成分股数据 | 2005至今 | 8:00更新 | +| 日行情 | 2005至今 | 盘后15:00更新,24:00校对完成入库 | +| 分钟行情 | 2005至今 | 盘后15:00更新,24:00校对完成入库 | +| 集合竞价数据 | 2017年至今 | 盘后15:00更新 | +| **期权数据** | **时间范围** | **更新频率** | +| 期权合约资料 | 上市至今 | 盘后18:00更新 | +| 期权合约调整记录 | 上市至今 | 盘后18:00更新 | +| 期权每日盘前静态文件 | 上市至今 | 盘前9:05更新 | +| 期权日行情 | 上市至今 | 盘后更新15点更新,24:00校对完成入库 | +| 上证ETF期权分钟行情 | 2017-01-01至今 | 盘后更新15点更新,24:00校对完成入库 | +| 股指期权分钟行情 | 2019-12-24至今 | 盘后更新15点更新,24:00校对完成入库 | +| 商品期权分钟行情 | 2019-12-02至今 | 盘后更新15点更新,24:00校对完成入库 | +| 集合竞价数据 | 2017年至今 | 盘后15:00更新 | +| 股票期权交易和持仓排名统计 | 上市至今 | 下一交易日盘前8:05更新 | +| 期权风险指标 | 上市至今 | 下一交易日盘前8:05更新 | +| 期权行权交收信息 | 上市至今 | 每日10:45更新 | +| **债券数据** | **时间范围** | **更新频率** | +| 债券基本信息 | 上市至今 | 每日19:00、22:00更新 | +| 债券票面利率 | 上市至今 | 每日19:00、22:00更新 | +| 国债逆回购日行情数据 | 上市至今 | 每日19:00、22:00更新 | +| 可转债基本资料 | 上市至今 | 每日19:00、22:00更新 | +| 可转债转股价格调整 | 上市至今 | 每日19:00、22:00更新 | +| 可转债日行情 | 2018-09-13至今 | 每日19:00、22:00更新 | +| 可转债分钟日行情 | 2019年至今 | 盘后15点更新 | +| 可转债每日转股统计 | 2000-7-12至今 | 下一交易日 8:30、12:30更新 | +| 债券付息事件 | 上市至今 | 每日19:00、22:00更新 | +| **宏观经济数据** | **时间范围** | **更新频率** | +| 国民经济 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 保险业 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 人民生活 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 人口 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 国内贸易 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 就业与工资 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 资源环境 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 房地产行业 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 财政政策 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 固定资产投资 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 对外经济贸易 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 景气指数 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 工业 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 农林牧渔业 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| 金融业 | 统计局统计开始至今 | 交易日盘前8:30之前更新 | +| **舆情数据** | **时间范围** | **更新频率** | +| 新闻联播文本数据 | 2009年6月至今 | 每日21:30前更新 | +| **聚宽因子库** | **时间范围** | **更新频率** | +| 质量因子 | 2005年至今 | 下一自然日5:00、8:00更新 | +| 基础因子 | 2005年至今 | 下一自然日5:00、8:00更新 | +| 情绪因子 | 2005年至今 | 下一自然日5:00、8:00更新 | +| 成长因子 | 2005年至今 | 下一自然日5:00、8:00更新 | +| 风险因子 | 2005年至今 | 下一自然日5:00、8:00更新 | +| 每股因子 | 2005年至今 | 下一自然日5:00、8:00更新 | +| **Alpha特色因子** | **时间范围** | **更新频率** | +| Alpha101因子 | 2005至今 | 次日08:00更新 | +| Alpha191因子 | 2005至今 | 次日08:00更新 | +| **技术指标因子** | **时间范围** | **更新频率** | +| 超买超卖型技术指标 | 2005至今 | 根据传入的参数实时计算 | +| 趋势型技术指标 | 2005至今 | 根据传入的参数实时计算 | +| 能量型技术指标 | 2005至今 | 根据传入的参数实时计算 | +| 成交量型技术指标 | 2005至今 | 根据传入的参数实时计算 | +| 均线型技术指标 | 2005至今 | 根据传入的参数实时计算 | +| 路径型技术指标 | 2005至今 | 根据传入的参数实时计算 | +| 其他 | 2005至今 | 根据传入的参数实时计算 | +| **tick快照数据(仅限机构用户)** | **时间范围** | **更新频率** | +| 沪深A股tick数据 | 2010-01-01至今 | 盘后更新历史tick,提供买卖五档数据 | +| 金融期货和商品期货tick数据 | 2010-01-01至今 | 盘后更新历史tick,提供买卖一档数据 | +| 上证ETF期权tick数据 | 2017-01-01至今 | 盘后更新历史tick,提供买卖五档数据 | +| 商品期权tick数据 | 2019-12-02至今 | 盘后更新历史tick,提供买卖一档数据 | +| 场内基金tick数据 | 2019-01-01至今 | 盘后更新历史tick,提供买卖五档数据 | +| 指数tick数据 | 2017-01-01至今 | 盘后更新历史tick,提供买卖一档数据 | + + **说明**: - 有关财务数据更新:一般是这样的情况,譬如财报公布的发布日期是date,实际上一般会在date前一个交易日的晚上发布出来,我们程序也会在date前一天晚上和date这天早上更新财报; - 期货结算价更新时间:17:00后; 为什么选择JQData JQData的优势 - **本地使用**:JQData避免了各个量化平台的限制,适用于Windows,Mac,Linux多种操作系统,用户只需三行Python代码即可完成本地安装和调用,帮助您实现一整套本地化部署的量化投资研究。(支持Python2和Python3) - **易于量化**:JQData在设计过程中,聚宽团队基于量化行业专业知识及对投研的经验,对数据进行清洗及整理,使数据更能适用量化的研究习惯,并进一步赋能数据在本地投研的可行性及便利性。 - **调用方便**:在JQData里,不同品种同一属性的数据用同一个接口就能获取,例如,使用get_price就能获取所有股票,基金,指数,期货的行情数据,从而大大减少用户的学习成本,代码也更加简洁;与之相反,大部分传统数据商提供的数据分散在不同的数据表中,需要用户自己来回查找。 - **JQData精准度介绍**:截至目前,聚宽自营基金管理规模已达百亿,使用聚宽数据(详情见文末介绍),一创聚宽平台交易验证,其精准度满足交易需求。聚宽数据团队研发了数据监控系统和多数据源比对系统,通过一整套系统化的机制保证数据的准确性。另外,我们还提供了指定日期参数,杜绝未来数据。 - **JQData稳定性介绍**:JQData采用与聚宽官网一致的账户校验系统,登录账号即可使用。提供独立的数据服务,采用负载均衡、高可用服务架构,配备完善的灾备体系,保证业务系统24小时不中断,并支持海量用户同时在线。数据传输方面,采用RPC协议传输,并压缩成特有数据格式,减少传输数据量,更加节省带宽。 商务合作微信:JQData02/ 邮件:jqdatasdk@joinquant.com 聚宽作为国内领先的量化平台,欢迎数据行业的各位同仁,和我们共同构建起一整套领先的量化分析数据体系,如贵公司有这方面的数据资源和合作意向,,请添加管理员微信:**JQData02**,或发送邮件至**jqdatasdk@joinquant.com**说明合作意向,欢迎加入聚宽JQData。 版本信息 版本信息 - 【最新版本信息】:https://gitee.com/joinquant/jqdatasdk/graph/master 关于JQData、jqdatasdk 和 jqdata三者的区别 - JQData,即jqdatasdk,指的是聚宽数据出品的本地量化数据接口,需要本地python环境内使用, 具体方法见JQData的API: 【sdk版本API文档】:https://www.joinquant.com/help/api/help?name=JQData - jqdata:只有在官网环境下才能调用(登录官网在研究环境下使用的包) 步骤:import jqdata 或 from jqdata import , 具体使用方法见官网API:https://www.joinquant.com/help/api/help?name=api ### 试用和购买 + +方法描述如何开通JQData申请试用 **申请试用账号**: JQData由聚宽团队专门维护清洗,为金融机构、学术团体和量化研究者们提供的本地量化金融数据服务。 数据产品不仅对外服务,同时服务于聚宽所有业务线,历经平台40万用户、基金百亿资产、每年万亿交易额的考验。本着推动量化行业快速发展的良好愿景,JQData现已开放注册。需要试用JQData的用户只需[提交试用申请>>>](https://www.joinquant.com/default/index/sdk#jq-sdk-apply),即可获取有效时长为**3个月**的试用账号。试用账号在试用期间可限时免费调用JQData的部分基础数据,具体试用权限如下表所示。(注:**JQData基础数据包含沪深A股行情数据,上市公司财务数据,指数数据,场内基金数据,期货数据和宏观经济数据等多类数据**) 如果数据流量不够用或者需要因子和特色数据,可以付费开通正式账号。[如何开通正式账号>>>](https://www.joinquant.com/help/api/help#JQData:%E5%A6%82%E4%BD%95%E8%B4%AD%E4%B9%B0JQData) | | | 普通试用账号 | **正式账号** | 金融机构特色试用权限 | +| --- | --- | --- | --- | --- | +| 账号功能 | 数据种类&可用时间范围 | 基础数据 | **按需采买** | 按需申请 | +| 有效期 | 3个月 | **1年** | | | +| 连接数(auth lisense) | 1 | **1/3** | | | +| 每日可用流量(总和) | 50万 | **100万/20000万** | | | +| 行情数据频度 | 日频、分钟 | **日频、分钟、Tick** | | | +| 数据获取形式 | API接口 | **API接口** | API接口 | | +| 数据种类 | 基础数据 | 沪深A股数据 | **沪深A股数据** | 微信联系JQData02 递交名片资料后可申请特色试用权限 | +| 期货数据(首次调用后,限时体验14天) | **期货数据** | | | | +| 上市公司财务数据(首次调用后,限时体验14天) | **上市公司财务数据** | | | | +| 债券数据(首次调用后,限时体验14天) | **债券数据** | | | | +| 指数数据 | **指数数据** | | | | +| 场内基金数据(首次调用后,限时体验14天) | **场内基金数据** | | | | +| 场外基金数据(首次调用后,限时体验14天) | **场外基金数据** | | | | +| 可转债数据(首次调用后,限时体验14天) | **可转债数据** | | | | +| 宏观经济数据(首次调用后,限时体验14天) | **宏观经济数据** | | | | +| 舆情数据(首次调用后,限时体验14天) | **舆情数据** | | | | +| 特色数据 | | **聚宽因子库** | | | +| | **Alpha191** | | | | +| | **Alpha101** | | | | +| | **技术指标因子** | | | | +| | **沪深A股tick数据(机构专用)** | | | | +| | **商品期货tick数据(机构专用)** | | | | +| | **金融期货tick数据(机构专用)** | | | | +| | **金融期权tick数据(机构专用)** | | | | +| | **商品期权tick数据(机构专用)** | | | | +| | **场内基金tick数据(机构专用)** | | | | +| | **指数tick数据(机构专用)** | | | | + +如何购买JQData开通正式账号 **开通正式账号**: 开通正式账号: 如果您觉得每天50万条的数据不够用,或者需要使用更多的数据,或者想要**延期**,可以**购买**本地数据套餐,**选择套餐升级后每天可调用100万条或2亿条数据**,详情请与我们的运营人员联系。(**个人用户咨询【邮箱sunping@joinquant.com,机构服务咨询添加微信号JQData02**) ### JQData 安装、登陆及流量查询 + +方法描述如何安装使用JQData安装/升级/使用jqdatasdk包 开通权限后,您可以在本地安装和使用JQData。**Python用户请按以下教程安装使用,**如在使用中遇到问题,还可以联系官网在线客服或在[社区问答板块留言](https://www.joinquant.com/view/community/list?listType=2&keyword=&type=isNew&tags=),有专门的技术顾问跟进。 - **安装JQData**: 如您本地已有python环境,打开本地cmd终端或Mac终端,将路径切换到python目录下,直接使用pip语法即可安装。在安装中出现任何问题,可查看[JQData安装教程](https://www.joinquant.com/post/12479?tag=algorithm),内有详细解答。 +``` +pip install jqdatasdk +``` +- **升级JQData**:JQData预计每2周会发布一次迭代版本,增加更多维度的基础数据以及因子类数据,已有python环境的用户可以使用如下语句完成升级: +```python +pip install -U jqdatasdk +``` +windows用户可以直接点击[新版本链接](https://www.joinquant.com/jqdatasdk/download/win64)下载安装。或打开cmd终端,切换到JQData所在路径下,通过下述语句升级到最新版本。 +```python +C:\JQData>python.exe -m pip install jqdatasdk +``` +- **登录JQData**:安装完成后,导入JQData,并认证用户身份。认证完毕显示“auth success”后即可使用,认证步骤如下: +```python +from jqdatasdk import * auth('账号','密码') #账号是申请时所填写的手机号;密码为聚宽官网登录密码 +``` +- **调用数据**:详见下一步任务[登录JQData] - **每天可访问数据条数**:由于用户访问数据会给服务器造成一定的压力,JQData开放给试用账号的每天可访问数据为50万条,基本上能够满足大部分用户的需要;如需更多的访问条数,**您可以付费升级为正式账号,我们将为您开放每天2亿条数据的访问权限**。**个人用户咨询【邮箱:sunping@joinquant.com】,机构服务咨询添加微信号JQData02**&。 - **因子数据和特色数据**:如果您还想使用Alpha特色因子,技术指标因子,tick数据,您可以将账号升级到正式版、标准版或专业版,详情请联系我们的运营同事。**个人用户咨询【邮箱:sunping@joinquant.com】,机构服务咨询添加微信号JQData02**。 - **问题反馈和其他数据需求**:如果您在使用JQData的过程中遇到问题,或者希望JQData能够加入更多的数据,请您通过[社区提问](https://www.joinquant.com/community)的方式或者联系官网右下角的在线客服。 登录JQData登录JQData 打开代码编辑器(第三方编辑器请指定运行环境为已安装JQData的Python环境),输入如下代码认证用户身份。认证完毕后显示“auth success”即可开始调用数据,认证步骤如下: +``` + +from jqdatasdk import * +auth('ID','Password') #ID是申请时所填写的手机号;Password为聚宽官网登录密码 +``` + + **注:**JQData支持开启一个连接数,即登录一次账号算一个连接;如遇到连接数超限情况,可使用**logout()**函数退出已有连接后再开启新的连接。 get_query_count查询当日剩余可调用条数 +``` + +get_query_count() +``` + + 描述:查看当日剩余可调用条数,试用账号默认是每日50万条;正式账号是每日2亿条。 说明:**一行表示一条,如下图;如果不确定的话,可以在调用前后分别查询下可调用条数** ![img](https://image.joinquant.com/4dee2952abb2bf6a75ba3fedae3d5da2) **返回** 一个dict,字段说明如下: | 字段名 | 说明 | | ------ | -------------------- | | total | 当日可调用数据总条数 | | spare | 当日剩余可调用条数 | **示例** +``` + +#查询当日剩余可调用数据条数 +count=get_query_count() +print(count) + +>>>{'total': 1000000,'spare': 996927} +``` + +## JQData用户协议 + +方法描述JQData用户协议 JQData用户协议 聚宽JQData用户使用协议(以下简称“本协议”)由北京小龙虾科技有限公司(以下简称“公司”)与聚宽JQData用户(以下简称“用户”或“您”)签订。当您在聚宽JQData相关的网络页面,软件客户端等点击确认接受本协议,或按照本协议约定的方式实际使用聚宽JQData的服务即意味着您同意接受本协议条款的约束。 **公司郑重通知用户,根据国家的相关法律规定,用户应当使用本人真实身份信息在聚宽JQData相关的网络页面,软件客户端注册账号并按照本协议的约定使用聚宽JQData数据。账号仅限本人使用,用户不得将本人账号交于他人使用,或将使用本人账号获取的聚宽JQData数据交给第三方使用。单人只允许注册一个账号。一台设备仅支持一个账号使用。违反上述规定的,公司有权在不提前通知用户的前提下终止用户使用聚宽JQData数据的权利,包括但不局限于封禁用户的账号,禁止用户使用的终端接入聚宽JQData数据服务。** **第一条 定义** 1.1 “聚宽JQData”是公司根据来源于上海证券交易所,深圳证券交易所,第三方数据提供商以及市场上其他公开可得的原始数据,经过公司专业的字段设计和数据整理生成。 **第二条 聚宽JQData数据使用方式** 2.1 用户通过公司提供的试用申请、付费购买两种渠道获得试用或者正式的聚宽JQData使用授权通知后,方可使用聚宽JQData数据。 2.2 用户只能在公司授权的使用范围内使用聚宽JQData数据,包括但不限于使用期限,数据品种,时间范围,调用条数限制等。 2.3 聚宽JQData的使用方式详见公司在聚宽量化平台官网([https://www.joinquant.com](https://www.joinquant.com/))发布的聚宽JQData数据说明页。用户有任何问题可以通过聚宽社区,邮件等渠道向公司反馈,聚宽JQData使用方法的最终解释权归公司所有。 **第三条 授权内容** 3.1 公司基于证券市场的发展,在用户使用聚宽JQData期间,对聚宽JQData数据保有不断更新和调整的权利。 3.2 未经公司事先书面许可,用户不得将聚宽JQData及其相关技术文档、信息资料提供给第三方,或用于本协议下约定之外的目的。 **第四条 知识产权** 4.1 公司所用于生产聚宽JQData的原始数据来源于上海证券交易所,深圳证券交易所,第三方数据提供商以及市场上其他公开可得的数据,经过公司专业的字段设计和数据整理,新生成的聚宽JQData数据的知识产权归公司所有,就公司合理所知,其授权用户使用的前述权利不侵犯任何第三方的商标权,著作权或专利权等知识产权权利。 4.2 未经公司书面许可,用户不得在其产品或宣传媒介上使用公司及其产品的文字和标识图片。公司与用户之间若有联合运营或推广的需要,具体授权将单独协商并另行签署协议予以约定。 **第五条 用户责任** 5.1 用户承诺使用聚宽JQData的数据或利用JQData数据加工之后的数据,只做研究目的使用,不用作商业目的和商业用途。 5.2 用户确保在使用聚宽JQData的过程中相关操作的合法性,不侵犯任何第三者的合法权益,包括但不限于著作权、商标权、专利权等;不会违反任何法律、法规、条例或规章。因为用户不当使用聚宽JQData对第三者权益造成损害的,由用户承担全部赔偿责任。 5.3 聚宽JQData为公司版权所有,用户不得对其进行盗用、反编译、恶意攻击及其它任何危害公司及其他聚宽JQData用户安全与权益的行为。 **第六条 保密条款** 6.1 在本协议有效期内及协议终止后永久期限,用户应对使用期间所产生的任何帐号、密码、文件、信息和数据(统称为“保密信息”)采取保密措施,未经公司同意,不得将保密信息以任何方式泄露给第三方。 **第七条 违约责任** 7.1 用户违反本协议所约定的义务,公司有权在不通知用户的情况下立即终止用户使用聚宽JQData的权利。同时,用户为使用聚宽JQData已经支付的使用费用将不予退还。 7.2 用户违反协议所约定的义务给公司及第三方造成损失的,应当承担赔偿责任。 **第八条 免责条款** 8.1 公司本着专业精神授权用户使用聚宽JQData,但难免会因为数据源问题、技术原因和人为疏漏导致更新延迟,缺失,错误及其他故障,公司对此并不承担任何责任;若用户发现上述问题并反馈给公司,公司会采取一切必要措施以确保聚宽JQData提供数据的准确性。 8.2 如发生下述任一情况而导致用户损失的,公司不承担责任: (1)发生不可抗力情形的; (2)黑客攻击、计算机病毒侵入或发作的; (3)聚宽JQData的硬件系统遭到破坏、瘫痪或无法正常使用的; (4)网络运营商技术调整的; (5)因政府管制而造成暂时性关闭的; (6)其它非因公司的过错而引起的。 **第九条 协议的生效** 9.1 用户按照本协议约定的方式确认接受本协议条款后本协议生效,有效期为一年,到期如双方均无异议或用户继续按照本协议约定使用聚宽JQData,则本协议以一年为期自动向后延续。 **第十条 法律适用** 10.1 本协议由中华人民共和国法律所约束和管辖。 **第十一条 争议解决** 11.1 凡因本协议引起的或与本协议有关的任何争议,双方首先应友好协商解决,协商不成的均应提交公司所在地有管辖权的法院通过诉讼解决。 **第十二条 附则** 12.1 在本协议有效期内,公司有权对本协议的内容进行修改。经修改的协议通过聚宽量化交易平台网页公告、用户注册账户时提供的电子邮件、手机短信或常规的信件传送等方式向用户发出通知,该等通知在发送时即视为已送达用户。用户在收到上述通知后继续使用聚宽JQData,视为接受修订后的协议。 ## JQData常见报错及数据处理规则 + +### JQData常见报错 + +方法描述账号最多开启1个链接账号最多开启1个链接 - 这是同时打开了多个链接造成的;每次auth之后会创建新的链接,是长连接的(thrift长连接);使用logout()或者关闭进程后会断开;默认同时最多存在一个链接,如果A链接被创建,之后再在其他进程中创建B链接(也就是在其他进程中进行登录),再次使用A链接去获取数据就会报这个错误。 - 对于多个链接的简单解释: 如果不了解进程的概念,可以这样简单的理解, 每个独立的cmd窗口是一个独立的进程,每个独立的jupyter也是一个独立的进程。 - 目前jqdatasdk不支持超过1个进程,不支持多线程; - 建议每次获取数据不要超过10w条(防止进程假死); - 建议获取数据后使用logout()退出; - 升级jqdatasdk到最新版本; - 使用pycharm注意关闭 run with console 选项或者每次运行后关闭控制台界面(每个开启的控制台都相当于一个进程); 使用控制台时注意设置控制台变量加载策略为"按需" ,否则易引发多个链接及输出异常的问题 - 需要更多的链接数,可付费升级为正式账号,**为了更高品质展开服务,个人用户咨询【邮箱:sunping@joinquant.com】,机构服务咨询添加微信号JQData02** 认证失败认证失败的原因 - 先确定下有没有申请使用,申请后才可以使用; - 检查下账号和密码是否正确,默认密码为聚宽官网的密码; - 还有问题请联系下官网右下角在线客服咨询处理; TTransportException常见报错解决方法 **JQData目前的服务器地址:39.107.190.114,端口号:7000** ![img](https://image.joinquant.com/d7adaaa1ac552700c4e457fefe558a31) 这个报错一般是由您网络问题造成的,常见解决方法如下: - 检查下网络是否正常/稳定; - 请检查下您是否使用代理或者网络被禁止了,目前不支持代理; - 是否您公司对网络或者端口有限制; - 尝试使用其他网络; - 升级JQData至最新版本; - 不建议高频的login和logout; JQData和官网不一致API对比JQData和官网不一致API对比 **JQData和官网不一致API对比** | **案例** | **JQData(本地数据)** | **jqdata** | +| --- | --- | --- | +| get_bars / get_ticks | 默认返回结果格式为DataFrame | 官网默认返回结果为ndarray | +| 复权基准日期,fq_ref_date | 默认为None,返回**不复权数据** | 默认为None,返回**复权基准日为当天** | +| get_ticks | security不支持股票列表 | security支持股票列表 | +| alpha101, alpha191的fq复权选项 | check_date的前复权计算并存储;股票池是全部A股; | 复权有pre、None、post三种选择,是获取时计算的;股票池可以自定义 | + + **示例** - get_bars / get_ticks返回结果(以get_bars为例) 本地 +``` + +#获取贵州茅台按天为周期以"2018-12-05"为基础往前5个交易日的数据 +df = get_bars('600519.XSHG', 5, unit='1d',fields=['date','open','high','low','close'],include_now=False,end_dt='2018-12-05') +print(df) +#返回[pandas.DataFrame] + + date open high low close +0 2018-11-28 550.85 559.19 545.50 557.00 +1 2018-11-29 566.03 569.80 549.01 551.60 +2 2018-11-30 557.00 568.89 553.00 565.00 +3 2018-12-03 589.00 605.00 584.77 601.20 +4 2018-12-04 602.99 604.26 595.00 602.23 +``` + + 官网 +``` + +#获取贵州茅台按天为周期以"2018-12-05"为基础往前5个交易日的数据 +df = get_bars('600519.XSHG', 5, unit='1d',fields=['date','open','high','low','close'],include_now=False,end_dt='2018-12-05') +print(df) +#返回结果格式为[numpy.ndarray] + +[(2018-11-28, 536.55, 544.67, 531.33, 542.54) + (2018-11-29, 551.33, 555.0, 534.75, 537.28) + (2018-11-30, 542.54, 554.12, 538.64, 550.33) + (2018-12-03, 573.7, 589.29, 569.58, 585.59) + (2018-12-04, 587.33, 588.57, 579.55, 586.59)] +``` + + **get_ticks** 本地:目前不支持股票列表; 官网: 官网支持股票列表 +``` + +# 官网 +d = get_ticks(['000300.XSHG', '000001.XSHE'],start_dt=None, end_dt="2018-07-03", count=3) +print(d) +{'000300.XSHG': array([(20180702150000.0, 3407.98, 3510.84, 3383.73, 8392371200.0, 107100880896.0), + (20180702150003.0, 3407.98, 3510.84, 3383.73, 8435144800.0, 107601543168.0), + (20180702150051.0, 3407.96, 3510.84, 3383.73, 8435144800.0, 107601543168.0)], + dtype=(numpy.record, [('time', '399106 399003->399108 399005->399101 399006->399102 399007->399344 **15. 创业板指的成交量与其它券商相差很大** A:这个问题比较特殊,在深交所的查询该指数的数据查到了两个不同的成交额和成交量数据,一个和用户提到的其他券商的数据相符(见附件《深交所官网399006日线图》),另一个和我们的数据相符(见附件《深交所官网历史行情图》)。 经过分析,发现和用户提到的其他券商的数据相符的还有另一个指数,即创业板综指(399102.XSHE),行情数据见附件《深交所官网399102日线图》,由此可见,我们的数据没有问题,即为399006.XSHE实际的成交量和成交额,而交易所不知是什么原因,用399102.XSHE的成交量和成交额替换掉了399006.XSHE的数据,导致在深交所官网查询数据发现日线图数据和历史行情数据不一致。 综上所述,我们的399006.XSHE显示的是该指数的真实的成交量和成交额数据,而用户提到的券商的成交量和成交额数据是和深交所官网日线图保持一致的399102.XSHE的数据,两个数据虽然不一样,但都是正确的。 ![Img]( https://image.joinquant.com/3f5923db0fda952d57eeb31c77b9af2e) ![Img]( https://image.joinquant.com/beccff3d5b0c362fdef23bc742660273) ![Img]( https://image.joinquant.com/a04b404778e834f2eec22dc4fc824087) 财务数据不同数据源的差异/修改的财务数据、分红送股等处理规则 **1. 为什么我在别的网站上查的财务指标和聚宽提供的财务指标数据不一致?** A:注意区分单季度和报告期,一般财经网站上提供的财务指标数据都是上市公司披露的原始的报告期数据。上市公司公布财报分四种,一季度报、中期年度报、前三季度报、全年年报,统计的周期跨度分别为第一季度、前两个季度、前三个季度、全年,而聚宽考虑到量化分析,所以提供了单季度财务数据(get_fundamentals接口)此接口获取到的财务指标数据全是单季度的(除过statDate指定为年度时)。所以因为财报的统计周期不同,导致了一些指标上的不一致。如果想要获取报告期数据,可以使用finance.run_query调用报告期数据 ; 如果大家想对比别的网站的单季度统计数值,可以到同花顺上查看,如 http://stockpage.10jqka.com.cn/000759/finance/#finance ,然后选择按单季度统计,如下图。 ![Img]( https://image.joinquant.com/2029031e942c8ff3c0ce81302994ffe9) 相关帖子: https://www.joinquant.com/post/2746?replyId=16660#16660 https://www.joinquant.com/post/2654?replyId=16302#16302 报告期和单季度财务数据查询示例及验证对比可以查看这篇帖子 : https://www.joinquant.com/view/community/detail/20424 **2. 为什么按单季度统计后,净利润还是和同花顺的净利润不同?** A:同花顺的净利润其实是归属母公司股东的净利润,我们提供的净利润指标就是净利润。还有一些其他指标,可能是统计口径不一致的问题,如果对比有差异,可以多对比几家。 **3. 报告期数据中为什么有"重复的数据"?** A:您指的"重复的数据"应该指的是公司披露本季度财务数据同时披露的往期的财务数据 , 一般为去年同期,抑或有对之前披露的财务信息进行修正,(上市公告书,招募说明书中会披露过去近几年的财务数据,可以使用source_id字段进行判断)。 可以使用end_date(统计截止日期) 和 report_type ( 0:本期,1:非本期,一般为上年同期 ) 进行区分和过滤。 ![Img]( https://image.joinquant.com/0018acf7ef81d5cfb8a2c123b8bf9674) 例如300080在2020-04-29发布的2019Q1数据修改了2019-04-26 发布的2019Q1数据 +``` + +from jqdata import * +q = query(finance.STK_INCOME_STATEMENT.company_name, +finance.STK_INCOME_STATEMENT.code, +finance.STK_INCOME_STATEMENT.pub_date, +finance.STK_INCOME_STATEMENT.start_date, +finance.STK_INCOME_STATEMENT.end_date, +finance.STK_INCOME_STATEMENT.total_operating_revenue, + finance.STK_INCOME_STATEMENT.report_type, + finance.STK_INCOME_STATEMENT.report_date, +finance.STK_INCOME_STATEMENT.np_parent_company_owners).filter( + finance.STK_INCOME_STATEMENT.code == '300080.XSHE', + finance.STK_INCOME_STATEMENT.end_date == '2019-03-31', +# finance.STK_INCOME_STATEMENT.report_type == 1 + ).limit(200) +df = finance.run_query(q) +df.sort_values(by=['pub_date'], ascending=False) +``` + + ![](https://image.joinquant.com/d74e0e3cd6f34cd6a2c86f7453a756c9) ![Img]( https://image.joinquant.com/85e334de38874743963071d23a1637c5) **4. 上市公司的财报如果后来有修改(修正),请问是怎么处理的?get_fundamentals是怎么处理有修改的财务数据。有的使用修复前的,有的使用修改后的?** A:(1)上市公司财报更新前和更新后的数据,为了避免未来函数(当前时间取到未来数据),理论上要保留同一报告期的所有版本,目前受数据源的限制,这块处理规则是按最新更新的(部分比较久远的数据可能会用第一个版本); (2)公司新发布一期财报,一般同时会给出上一年度同期的调整财报,对于这种情况相隔时间较久的情况(半年以上),我们单季度数据一般不再对老的财报进行更新;而有时候,公司会在短期内(半年内或者1个月内)对前段时间更新的财报进行修正, 这种情况我们单季度数据也会采用修正后的财报; (3)上面的规则主要是针对单季度财务数据的,报告期财务数据中,如果公司是在之后的某一季度修正的财报,那么数据都是有的 **5. 某公司公布相关财报后,聚宽什么时候将其更新到线上?** A:单季度财务数据目前每个交易日盘后更新,数据中的pubDate对应公告日期,一般在公告日期当晚可以拿到,最晚第二天凌晨 报告期数据一般在公告日期当天就可以拿到,略快于单季度数据 ,不同数据源更新进度可能不一致 , 选择合适的进行查询就可以了 **6. 单季度数据中上市之前的财报为什么没有?** A:上市之前的财报(不包括上市公告书等),不受证监会的监督约束,无法保证数据正确,而且对股票市场的股价影响波动很小,而上市公告书中只披露年度数据, 无法计算出完整的单季度数据 。 所以单季度只提供公司上市后发布的财务报表。公司上市时会同时披露前两到三年的年度数据,所以在报告期数据中可以查找到。 **7. 单季度数据中,个别标的有些指标有,有些指标没有?** A:和公司披露的财报有关,属于自然缺失如果根据公司已披露的财务数据无法计算出该项指标时,那么此项指标为Nan,比如在2019-07-24时,获取不到688001的roe,但是可以获取到688388的roe(这两个标的都是同一天上市的新股) 如 688388 ,有披露前四个季度的"归属于母公司所有者的净利润" ,所以roe有数据 http://stockpage.10jqka.com.cn/688388/finance/#finance 如 688001 缺少 2018q4的 "归属于母公司所有者的净利润" ,所以没roe数据http://stockpage.10jqka.com.cn/688001/finance/#finance **8. 为什么一些股票查询不到财务数据?** A: 检查一下标的在查询的日期是否处于上市状态,单季度数据只维护上市后披露的 另外对于股票代码变更的原因 ,因数据源原因可能需要使用变更后的代码进行查询,参考 "行情数据 - 一些股票行情开始时间和其他软件不一样? " **9. 使用get_fundamentals的date参数或者 get_fundamentals_continuously 查询单季度数据时,会出现从某个季度直接跳到下下一个季度的情况 ?** A: 上述方法查询的是某天所能看到的最新一期的财报,如上市公司在同一天披露了两份报表,如600507在2017-04-22同时披露了2016年报和2017年第一季度报 ,在2017-04-21看到的最新一期2016q3的数据,在2017-04-22看到的最新一期报表是2017q1 , 2016q4的数据不是缺失,而是应该通过get_fundamentals的statDate参数去查询。 **10. STK_XR_XD 分红送股数据是怎么更新的?** A : STK_XR_XD 表以报告期为维度,每个报告期为一条数据(特别分红等可以看作额外的报告期),其中report_date和bonus_type对应, 一般为中期分红和年度分红;也存在季度分红,特别分红等。 分红送股信息的流程一般为 : 董事会预案-->股东大会预案-->实施方案公告 , 进度对应的字段会随着对应进度的公告数据及时更新 , 进度未产生时对应的字段为空 , 如果在某一进度取消分红,bonus_cancel_pub_date及plan_progress等会有相关更新进行说明。 如果要获取最新的,已确认进行实施分红的可以根据除权除息日(a_xr_date)进行排序筛选,而不是report_date。 如 +``` + +from jqdata import finance +finance.run_query(query(finance.STK_XR_XD).filter( + finance.STK_XR_XD.a_xr_date< ="2019-10-23" + ).order_by( + finance.STK_XR_XD.a_xr_date.desc())) +``` + +指数/行业成分股指数的常见问题 **1. 为什么000001上证指数和000002A股指数的成分股完全相同?** A: 000001是上证指数,包含上交所注册的A股和B股,000002是A股指数,只包含上交所A股,理论上000002+所有上交所B股的数量应该等于000001的成分股数量,但目前我们未提供B股数据,所以成分股完全一致。[点击可以查看中证官网A股指数编制方案](http://www.csindex.com.cn/zh-CN/indices/index-detail/000002) **2. 为什么有些证监会行业概念的成分股为0?** 有可能出现这种现象,可以到 http://www.csrc.gov.cn/pub/newsite/scb/ssgshyfljg/ 证监会官网上去确认一下。 **3. 为什么有些股票查不到一些日期的指数/行业/概念成分股划分 ?** 一般和股票更换代码有关 , 参考 "行情数据 - 一些股票行情开始时间和其他软件不一样? " 此类数据因数据源关系, 许多变更代码的标的都是用新代码直接覆盖原代码的,因此需要使用新代码做适当处理 **4. 为什么有些申万行业代码没有成分股?** A:申万的行业代码在14年2月21有一次比较大改动,新增了11个行业代码:['801710','801720','801730','801740','801750','801760','801770','801780','801790','801880','801890'],弃用了6个行业代码:['801060','801070','801090','801100','801190','801220'] 所以新增行业代码在2014-02-21之前没有成分股,弃用的行业代码在2014-02-21之后没有成分股。 其他代码具体查看[行业数据页面](https://www.joinquant.com/help/api/help?name=plateData#%E7%94%B3%E4%B8%87%E8%A1%8C%E4%B8%9A) 其他数据问题融资融券、期货、因子等处理规则 **1. 为什么周六还查询周五的融资融券数据还查不到?** A:我们提供的融资融券数据来自于上交所和深交所官网,其数据来自于每个交易日后各家券商向交易所汇报的数据。上交所的融资融券数据当日收盘后会更新,深交所的融资融券的数据会在下一个交易日的10点更新,这样一来深交所周五的融资融券数据在周一上午10点才能获取到。 **2. 为什么某期货合约日行情数据的总成交量会小于中金所披露的持仓会员前20名的成交量?** A: 2020年后期货成交量是单边计算的,因为多空成交相同,而持仓机构的成交量指的是他自身的成交量,比如;某个会员机构多头成交2手,空头成交1手,它必须要与别的会员成交,只能记3手。 可以和交易所官网数据进行对比,比如中金所: http://www.cffex.com.cn/ccpm/ **3. 为什么期权风险指标数据中商品期权只有delta数据,没有theta等数据?** A: 此数据来自交易所,上期所,郑商所及大商所都未披露此项数据,所以获取不到.ETF期权有完整的风险指标,上交所有披露。 **4. 宏观数据有缺失?** A:有些数据本身统计局官网未公布,属于正常缺失,比如macro.MAC_AREA_CPI_MONTH表七月份的全国cpi数据,在统计局官网也是没有的,如果觉得有问题可以先和统计局官网数据进行对比: http://data.stats.gov.cn/easyquery.htm?cn=A01&zb=A010302&sj=201903 **5. alpha191/alpha101 中的nan值和inf值是什么意思?** A:nan值代表缺失,inf代表无限大,-inf代表无限小 ; Nan值产生的原因 : 停牌返回nan , 刚上市(需要的数据量不足),已退市返回nan , 以及由于算法计算结果为Nan值,如计算相关系数等 inf产生的原因 : 由具体算法决定 ,有可能产生inf或-inf。如公式中有除法,而分母恰好为0。 **6. 聚宽因子库中为什么有许多nan值?** A:缺少依赖数据,财务数据中如果标的未披露相关字段,依赖数据不完整的话会返回nan值, 需要注意到财务报表披露规则变更,标的报表披露形式(金融类,非金融类等) , 以及标的上市时间等。 ## 通用接口 + +### JQData证券代码格式 + +方法描述证券代码标准格式的定义 股票/期货/场外基金(场内基金同股票) - 由于同一代码可能代表不同的交易品种,JQData给每个交易品种后面都添加了该市场特定的代码后缀,用户在调用API时,需要将参数security传入带有该市场后缀的证券代码,如security='600519.XSHG',以便于区分实际调用的交易品种。以下列出了每个交易市场的代码后缀和示例代码。 | 交易市场 | 代码后缀 | 示例代码 | 证券简称 | |-------------|-------|-------------|-----------| | 上海证券交易所 | .XSHG | 600519.XSHG | 贵州茅台 | | 深圳证券交易所 | .XSHE | 000001.XSHE | 平安银行 | | 中金所 | .CCFX | IC9999.CCFX | 中证500主力合约 | | 大商所 | .XDCE | A9999.XDCE | 豆一主力合约 | | 上期所 | .XSGE | AU9999.XSGE | 黄金主力合约 | | 郑商所 | .XZCE | CY8888.XZCE | 棉纱期货指数 | | 上海国际能源期货交易所 | .XINE | SC9999.XINE | 原油主力合约 | | 场外基金 | .OF | 398051.OF | 中海环保新能源混合 | normalize_code 将标的代码转化成聚宽标准格式(支持股票、期货、场内基金) +``` + +normalize_code(code) +``` + + 将其他形式的标的代码转换为jqdatasdk可用的标的代码形式。 **适用于A股市场股票、期货以及场内基金代码,支持传入单只标的或一个标的list** **以股票为例** +``` + +#输入 +normalize_code(['000001', 'SZ000001', '000001SZ', '000001.sz', '000001.XSHE']) +#输出 +['000001.XSHE', '000001.XSHE', '000001.XSHE', '000001.XSHE', '000001.XSHE'] +``` + +### 获取标的概况 + +- **接口的具体使用,可查看各市场对应的示例** + +方法描述get_security_info 单个标的信息(股票/基金/指数的信息) +``` + +get_security_info(code) +``` + + 获取股票/基金/指数的信息. **参数** - code: 证券代码 - date:获取指定日期的标的信息,默认为None,仅支持股票 **返回值** - 一个对象, 有如下属性: - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期, [datetime.date] 类型 - end_date: 退市日期, [datetime.date] 类型, 如果没有退市则为2200-01-01 - type: 类型,stock(股票),index(指数),etf(ETF基金),fja(分级A),fjb(分级B) - parent: 分级基金的母基金代码 **示例** 以股票为例 +``` + +# 获取000001.XSHE的中文名称 +display_name = get_security_info('000001.XSHE').display_name +print(display_name) +>>>平安银行 +``` + +get_all_securities 所有标的信息(股票、基金、指数、期货等) +``` + +get_all_securities(types=[], date=None) +``` + + 获取平台支持的所有股票、基金、指数、期货信息 **参数** - types: list: 用来过滤securities的类型, list元素可选: 'stock', 'fund', 'index', 'futures', 'etf', 'lof', 'fja', 'fjb'。**types为空时返回所有股票, 不包括基金,指数和期货** - date: 日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 用于获取某日期还在上市的股票信息. 默认值为 None, 表示获取所有日期的股票信息 **返回** [pandas.DataFrame], 比如:`get_all_securities()[:2]`返回: | --- | display_name | name | start_date | end_date | type | | ----------- | ------------ | ---- | ---------- | ---------- | ----- | | 000001.XSHE | 平安银行 | PAYH | 1991-04-03 | 9999-01-01 | stock | | 000002.XSHE | 万 科A | WKA | 1991-01-29 | 9999-01-01 | stock | - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期 - end_date: 退市日期,如果没有退市则为2200-01-01 - type: 类型,stock(股票),index(指数),etf(ETF基金),fja(分级A),fjb(分级B),fjm(分级母基金),mmf(场内交易的货币基金)open_fund(开放式基金), bond_fund(债券基金), stock_fund(股票型基金), QDII_fund(QDII 基金), money_market_fund(场外交易的货币基金), mixture_fund(混合型基金), options(期权) **示例** +``` + +#将所有股票列表转换成数组 +stocks = list(get_all_securities(['stock']).index) + +#获得所有指数列表 +get_all_securities(['index']) + +#获得所有基金列表 +df = get_all_securities(['fund']) + +#获取所有期货列表 +get_all_securities(['futures']) + +#获得etf基金列表 +df = get_all_securities(['etf']) +#获得lof基金列表 +df = get_all_securities(['lof']) +#获得分级A基金列表 +df = get_all_securities(['fja']) +#获得分级B基金列表 +df = get_all_securities(['fjb']) + +#获得2015年10月10日还在上市的所有股票列表 +get_all_securities(date='2015-10-10') +#获得2015年10月10日还在上市的 etf 和 lof 基金列表 +get_all_securities(['etf', 'lof'], '2015-10-10') +``` + +### 获取交易日历 + +方法描述get_trade_days指定范围交易日 +``` + +get_trade_days(start_date=None, end_date=None, count=None) +``` + + 获取指定日期范围内的所有交易日, 返回 [numpy.ndarray], 包含指定的 start_date 和 end_date, 默认返回至 datatime.date.today() 的所有交易日 **参数** - start_date: 开始日期, **与 count 二选一, 不可同时使用**. str/[datetime.date]/[datetime.datetime] 对象 - end_date: 结束日期, str/[datetime.date]/[datetime.datetime] 对象, 默认为 datetime.date.today() - count: 数量, **与 start_date 二选一, 不可同时使用**, 必须大于 0. 表示取 end_date 往前的 count 个交易日,包含 end_date 当天。 +``` + +#获取“2018-02-10”至”2018-03-01“的交易日 +get_trade_days(start_date="2018-02-10",end_date="2018-03-01") + +# 输出为数组 +array([datetime.date(2018, 2, 12), datetime.date(2018, 2, 13), + datetime.date(2018, 2, 14), datetime.date(2018, 2, 22), + datetime.date(2018, 2, 23), datetime.date(2018, 2, 26), + datetime.date(2018, 2, 27), datetime.date(2018, 2, 28), + datetime.date(2018, 3, 1)], dtype=object) +``` + +get_all_trade_days获取所有交易日 +``` + +get_all_trade_days() +``` + + 获取所有交易日, 不需要传入参数, 返回一个包含所有交易日的 [numpy.ndarray], 每个元素为一个 [datetime.date] 类型. +``` + +get_all_trade_days() + +# 输出 +array([datetime.date(2005, 1, 4), datetime.date(2005, 1, 5), + datetime.date(2005, 1, 6), ..., datetime.date(2023, 3, 7), + datetime.date(2023, 3, 8), datetime.date(2023, 3, 9)], dtype=object) +``` + +### 通用行情接口 + +- **接口的具体使用,可查看各市场对应的示例** + +方法描述get_price1天/分钟行情数据 +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + - 获取一支或者多只股票、期货、指数场内基金、上证ETF期权、股指期权及商品期权的行情(按天或者按分钟);上证ETF期权分钟行情 2017-01-01至今,股指期权分钟行情 2019-12-24至今,商品期权分钟行情 2019-12-02至今。 - frequency为非一天或者一分钟,请使用get_bars; - 取多支标的的数据时,不要获取交易时段不同的标的(例如:不同交易时间的期货标的),否则会报错; - 标识时间为09:32:00的1分钟k线,其数据时间为09:31:00至09:31:59; - **当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取 , 期货夜盘 21:00~次日02:30 的分钟行情在 02:30 之后可以获取。**注意:当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后(或夜盘结束)时间 - get_price指定frequency为 非1m/1d时,fields选择'high_limit','low_limit'会报错 - fq:对股票/基金的价格字段、成交量字段生效,factor不受影响,只返回后复权因子 **关于停牌**: 因为此API可以获取多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充. 如想跳过, 请使用 skip_paused=True 参数, 注意当 panel=True 且获取多标的时不支持(panel结构需要索引对齐) +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + **参数** | **参数名称** | **参数说明** | **注释** | +| --- | --- | --- | +| security | 标的 | 可获取种类:股票、期货、基金、指数、期权 | +| start_date | 开始时间,不可与count同时使用。当'count'和'start_date'为None时, 默认值是 '2015-01-01 00:00:00' | 当指定frequency为minute时,如果只传入日期,则日内时间为当日的 00:00:00 | +| end_date | 结束时间,如无指定,默认为'2015-12-31 00:00:00'。当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后(或夜盘结束)时间 | 当指定frequency为minute时, 如果只传入日期, 则日内时间为当日的 00:00:00, 所以返回的数据不包括 end_date这天。 | +| count | 表示获取 end_date 之前几个 frequency 的数据,与start_date不可同时使用。 | 返回的结果集的行数, 即表示获取 end_date 之前count个 frequency 的数据 | +| frequency | 单位时间长度,即指定获取的时间频级为分钟级(minute)或日级(daily),也可以指定为 '3m','10d' 等 | daily'(同'1d'), 'minute'(同'1m'), [点击查看get_price和get_bars的合成逻辑。](https://www.joinquant.com/view/community/detail/cea095760a0583ce965964912580077e?type=1)如需5分钟,1小时等标准bar请使用get_bars | +| fields | 所获取数据的字段名称,即表头。默认是None(返回标准字段['open','close','high','low','volume','money']) | 可选择填入以下字段,字段说明可查阅下面fields表 ['open','close','low','high','volume','money','factor', 'high_limit','low_limit','avg','pre_close','paused','open_interest'], open_interest为期货持仓量 | +| skip_paused | 是否跳过不交易日期(含:停牌/未上市/退市后的日期) | 如果不跳过, 停牌时会使用停牌前的数据填充,上市前或者退市后数据都为 nan。 | +| fill_paused | 对于停牌股票的价格处理,默认为True | 默认为True,用pre_close价格填充);False 表示使用NAN填充停牌的股票价格。 | +| fq | 复权选项,默认为前复权(fq='pre') | 'pre':前复权 / 'none':不复权, 返回实际价格 / 'post':后复权 | +| panel | 指定返回的数据格式为panel | 默认为True;指定panel=False时返回dataframe格式; 如本地pandas版本大于0.25将强制返回dataframe , 详见案例 | + + **fields**内各字段属性 | **字段名称** | **中文名称** | **注释** | +| --- | --- | --- | +| open | 时间段开始时价格 | | +| close | 时间段结束时价格 | | +| low | 时间段中的最低价 | | +| high | 时间段中的最高价 | | +| volume | 时间段中的成交的股票数量 | | +| money | 时间段中的成交的金额 | | +| factor | pre':前复权(默认)/None:不复权,返回实际价格/'post':后复权 | 前(后)复权数据=价格×前(后)复权因子; 前(后)复权后的成交量=成交量 / 前(后)复权因子; 成交不额处理 | +| high_limit | 时间段中的涨停价 | | +| low_limit | 时间段中的跌停价 | | +| avg | 时间段中的平均价 | (1)天级别:股票是成交额除以成交量;期货是直接从CTP行情获取的,计算方法为成交额除以成交量再除以合约乘数; (2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 | +| pre_close | 前一个单位时间结束时的价格,按天则是前一天的收盘价 | 期货:pre_close--前一天结算;建议使用get_extras获取结算价;在分钟频率下pre_close=open | +| paused | bool值,股票是否停牌; | 停牌时open/close/low/high/pre_close;都等于停牌前的收盘价, volume=money=0 | +| open_interest | 期货(期权)持仓量 | | + + **返回** - 请注意, 为了方便比较一只标的的多个属性, 同时也满足对比多只标的的一个属性的需求, 我们在security参数是**一只标的和多只标的时返回的结构完全不一样 (默认panel=True时),以下以股票为例,具体使用看各接口的示例** **代码示例** **获取一支股票** +``` + +#获取平安银行按1分钟为周期以“2015-01-30 14:00:00”为基础前4个时间单位的数据 +df = get_price('000001.XSHE', end_date='2015-01-30 14:00:00',count=4, frequency='minute', fields=['open','close','high','low','volume','money']) +print(df) + open close high low volume money +2015-01-30 13:57:00 8.98 8.97 8.98 8.97 295949.0 2656384.0 +2015-01-30 13:58:00 8.97 8.97 8.98 8.97 339030.0 3041408.0 +2015-01-30 13:59:00 8.98 8.98 8.98 8.96 459533.0 4121592.0 +2015-01-30 14:00:00 8.98 8.97 8.98 8.96 469211.0 4208384.0 +``` + + **获取多只股票** +``` + +#获取多支股票, 则返回[pandas.Panel]对象 +panel=get_price(['000300.XSHG', '000001.XSHE']) +#返回[pandas.DataFrame]对象,行索引是[datetime.datetime]对象, 列索引是股票代号 +df=panel['money'][:4] +print(df) + + 000300.XSHG 000001.XSHE +2015-01-05 5.198498e+11 4.565388e+09 +2015-01-06 4.985296e+11 3.453446e+09 +2015-01-07 3.987317e+11 2.634796e+09 +2015-01-08 3.558320e+11 2.128003e+09 +``` + +get_bars指定时间周期的分钟/日行情数据(支持时间周期:'1m','5m', '15m', '30m', '60m', '120m', '1w', '1M') +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None,df=True) +``` + + - 获取各种时间周期的bar数据,bar的分割方式与主流股票软件相同, 同时还支持返回当前时刻所在 bar 的数据。 - **当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取 , 期货夜盘 21:00~次日02:30 的行情在 02:30 之后可以获取。**注意:当end_dt指定为当天尚未结束的交易时间时,会自动填充为上一个交易日结束(或夜盘结束)的时间 **参数** - security: 标的代码,支持单个及多个标的 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流股票软件类似,期货的bar各平台也许稍微有差异,我们与文华接近; 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', 'open_interest'(期货持仓量),factor(复权因子)。 - include_now: 取值True 或者False。 表示是否包含end_dt所在的bar, 比如end_dt指定为9:38:00,unit参数为5m, 如果 include_now=True,则返回的最后一条bar为9:35:00-9:38:00这个 bar,否则返回的最后一条bar为09:30:00-09:35:00的bar。 - end_dt:查询的截止时间,默认最新的时间。注意:当end_dt指定为当天尚未结束的交易时间时,会自动填充为上一个交易日收盘(或夜盘结束)的时间 - fq_ref_date:复权基准日期,为None时为不复权数据。 - 如果用户输入 fq_ref_date = None, 则获取到的是不复权的数据 - 如果用户想获取后复权的数据,可以将fq_ref_date 指定为一个很早的日期,比如 datetime.date(2000, 1, 1) - 定点复权,以某一天价格点位为参照物,进行的前复权或后复权。设置为当前时间(例如 datetime.datetime.now())即返回前复权数据 ; - df:默认为True,指定返回数据为dataframe结构;当df=False的时候,传入单个标的时,返回一个np.ndarray,多个标的返回一个字典,key是code,value是np.array **关于停牌**: 此API可以获取多只股票的数据, 部分标的在获取时间的范围内可能存在停牌的情况。 此接口返回的结果会直接跳过停牌的日期, 在获取多标的时或使用索引时,需注意时间轴在部分标的停牌时不一致的情况 **返回** 返回一个pandas.dataframe对象,可以按任意周期返回股票的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 **示例** **获取一支股票** +``` + +#获取平安银行按120分钟为周期以"2018-12-05"为基础往前5个时间单位的数据 +df = get_bars('000001.XSHE', 5, unit='120m',fields=['date','open','close','high','low','volume','money'],include_now=False,end_dt='2018-12-05') +print(df) + date open close high low volume money +0 2018-11-30 15:00:00 10.25 10.36 10.36 10.18 31202900.0 320769828.0 +1 2018-12-03 11:30:00 10.59 10.64 10.66 10.48 80398200.0 850921284.0 +2 2018-12-03 15:00:00 10.64 10.59 10.65 10.56 26011500.0 275453511.0 +3 2018-12-04 11:30:00 10.57 10.60 10.62 10.53 29793600.0 315213376.0 +4 2018-12-04 15:00:00 10.60 10.59 10.61 10.54 23687700.0 250530360.0 +``` + + **获取多支股票** +``` + +#获取平安银行、万科A按120分钟为周期以"2018-12-05"为基础往前2个时间单位的数据 +df = get_bars(['000001.XSHE','000002.XSHE'], 2, unit='120m',fields=['date','open','close','high','low','volume','money'],include_now=False,end_dt='2018-12-05') +print(df) + date open close high low volume \ +000001.XSHE 0 2018-12-04 11:30:00 10.57 10.60 10.62 10.53 29793600.0 + 1 2018-12-04 15:00:00 10.60 10.59 10.61 10.54 23687700.0 +000002.XSHE 0 2018-12-04 11:30:00 25.56 25.23 25.56 25.10 22614700.0 + 1 2018-12-04 15:00:00 25.24 25.13 25.24 24.87 28379900.0 + + money +000001.XSHE 0 315213376.0 + 1 250530360.0 +000002.XSHE 0 571859390.0 + 1 709510464.0 +``` + +get_call_auction获取集合竞价数据 +``` + +get_call_auction(security, start_date, end_date, fields=None) +``` + + 支持股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)和上证ETF期权(2017年至今)的集合竞价数据。为了防止返回数据量过大, 我们每次最多返回5000行。 **参数**: - security: **股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)、上证ETF期权(2017年至今)**支持输入标的列表 - start_date: 开始日期,YYYY-MM-DD格式 - end_date: 结束日期,YYYY-MM-DD格式 - fields: 选择要获取的行情数据字段,参数为list格式,默认为None,返回全部字段。 **返回值:** 返回指定时间区间标的集合竞价tick数据,返回字段结果如下: | 字段名 | 说明 | 字段类型 | | :-------- | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价(不复权) | float | | volume | 累计成交量(股) | float | | money | 累计成交额(元) | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **示例:** 以股票为例 +``` + +#获取平安银行2019-09-02至2019-09-05期间的集合竞价数据 +df=get_call_auction('000001.XSHE','2019-09-02','2019-09-05') +print(df) + + code time current volume money a1_p \ +0 000001.XSHE 2019-09-02 09:25:03 14.15 568900.0 8049900.0 14.15 +1 000001.XSHE 2019-09-03 09:25:03 14.48 647700.0 9378700.0 14.48 +2 000001.XSHE 2019-09-04 09:25:03 14.32 322637.0 4620200.0 14.33 +3 000001.XSHE 2019-09-05 09:25:03 14.56 1673700.0 24369100.0 14.56 + + a1_v a2_p a2_v a3_p ... b1_p b1_v b2_p \ +0 58802.0 14.16 4500.0 14.17 ... 14.14 8700.0 14.13 +1 67091.0 14.49 201092.0 14.50 ... 14.47 3100.0 14.46 +2 67179.0 14.34 17000.0 14.35 ... 14.32 27063.0 14.31 +3 122434.0 14.57 364479.0 14.58 ... 14.55 18700.0 14.54 + + b2_v b3_p b3_v b4_p b4_v b5_p b5_v +0 116000.0 14.12 30900.0 14.11 267900.0 14.10 119200.0 +1 3900.0 14.45 40000.0 14.44 700.0 14.43 1900.0 +2 12600.0 14.30 166400.0 14.29 2100.0 14.28 10100.0 +3 2100.0 14.53 24800.0 14.51 19300.0 14.50 81700.0 + +[4 rows x 25 columns] +``` + +get_tickstick数据 +``` + +get_ticks(security, start_dt, end_dt, count, fields) +``` + + 股票部分,支持 2010-01-01 至今的tick数据,提供买五卖五数据。(每3秒一次快照) 期货部分,支持 2010-01-01 至今的tick数据,提供买一卖一数据。(每0.5秒一次快照) 期权部分,支持期权tick数据,每0.5s一次快照。其中上证ETF期权从2017-01-01至今,股指期权从2019-12-24至今,商品期权从2019-12-02至今 场内基金,支持 2019-01-01 至今的tick数据,提供买五卖五盘口数据。(每3秒一次快照) 指数部分, 支持 2017-01-01 至今的tick数据。(每3秒一次快照) **购买**:用户如有需要使用tick数据的,可添加微信号**JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com。 **参数**: - security: 指数代码,如'000001.XSHG' - start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' - end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' - count: 取出指定时间区间内前N条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下指数tick返回结果。 - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据 - df: 默认为True,传入单个标的返回的是一个dataframe, 当df=False的时候,返回一个np.ndarray ### 判断是否ST/基金净值/期货结算价 + +- **接口的具体使用,可查看各市场对应的示例** + +方法描述get_extras参数:是否是ST/基金单位净值/基金累计净值/场外基金的复权净值/期货结算价 +``` + +get_extras(info, security_list, start_date='2015-01-01', end_date='2015-12-31', df=True, count=None) +``` + + **参数** - info: ['is_st', 'acc_net_value', 'unit_net_value', 'futures_sett_price', 'adj_net_value'] 中的一个 |指定info字段|返回信息| |---|---| |is_st|是否是ST,是则返回 True,否则返回 False| |acc_net_value|基金累计净值| |unit_net_value|基金单位净值| |futures_sett_price|期货结算价| |adj_net_value|**场外**基金的复权净值| - security_list: 标的列表 - start_date/end_date: 开始结束日期, 同 [get_price] - df: 返回[pandas.DataFrame]对象或者dict - count: 数量, **与 start_date 二选一, 不可同时使用**, 必须大于 0. 表示取 end_date 往前的 count 个交易日的数据 **返回值** - df=True: 返回[pandas.DataFrame]对象, 列索引是股票代号, 行索引是[datetime.datetime] - df=False,返回一个dict, key是股票代号,如 以股票为例 +``` + +# 平安银行和神城A在2013-12-01至2013-12-03是否为ST +get_extras('is_st', ['000001.XSHE', '000018.XSHE'], start_date='2013-12-01', end_date='2013-12-03') + +# 输出: + 000001.XSHE 000018.XSHE +2013-12-02 False True +2013-12-03 False True +``` + +### run_query 查询数据库中的数据 + +方法描述run_query数据库.run_query( query_object ) 目前可通过 run_query 方法进行查询的数据都为储存于mysql的数据(单季度数据通过get_fundamentals/get_fundamentals_continuously查询)。根据数据的品种我们大致分为四类 : finance 库(包含股票,基金,期货的相关数据及其他) : [融资融券数据](https://www.joinquant.com/help/api/help#JQData:STK_MT_TOTAL),[沪深市场每日概况](https://www.joinquant.com/help/api/help#JQData:STK_EXCHANGE_TRADE_INFO),[市场通数据]( https://www.joinquant.com/help/api/help#JQData:%E5%B8%82%E5%9C%BA%E9%80%9A%E6%95%B0%E6%8D%AE),[上市公司相关信息](https://www.joinquant.com/help/api/help#JQData:%E4%B8%8A%E5%B8%82%E5%85%AC%E5%8F%B8%E7%9B%B8%E5%85%B3%E4%BF%A1%E6%81%AF),[报告期财务数据](https://www.joinquant.com/help/api/help#JQData:%E6%8A%A5%E5%91%8A%E6%9C%9F%E8%B4%A2%E5%8A%A1%E6%95%B0%E6%8D%AE),[申万行业指数数据](https://www.joinquant.com/help/api/help#JQData:%E7%94%B3%E4%B8%87%E8%A1%8C%E4%B8%9A%E6%8C%87%E6%95%B0%E6%95%B0%E6%8D%AE),[期货交易统计数据](https://www.joinquant.com/help/api/help#JQData:%E6%9C%9F%E8%B4%A7%E4%BA%A4%E6%98%93%E7%BB%9F%E8%AE%A1%E6%95%B0%E6%8D%AE),[期货外盘日行情](https://www.joinquant.com/help/api/help#JQData:FUT_GLOBAL_DAILY),[场内基金份额数据](https://www.joinquant.com/help/api/help#JQData:FUND_SHARE_DAILY),[公募基金相关数据](https://www.joinquant.com/help/api/help#JQData:%E5%85%AC%E5%8B%9F%E5%9F%BA%E9%87%91%E6%95%B0%E6%8D%AE%E5%87%80%E5%80%BC%E7%AD%89),[新闻联播文本数据](https://www.joinquant.com/help/api/help#JQData:%E6%96%B0%E9%97%BB%E8%81%94%E6%92%AD%E6%96%87%E6%9C%AC) opt 库(包含期权相关数据) : [期权相关数据](https://www.joinquant.com/help/api/help#JQData:%E6%9C%9F%E6%9D%83) bond 库(包含债券相关数据) : [债券相关数据](https://www.joinquant.com/help/api/help#JQData:%E5%80%BA%E5%88%B8) macro 库(包含宏观数据) : [宏观数据](https://www.joinquant.com/help/api/help#JQData:%E5%AE%8F%E8%A7%82%E6%95%B0%E6%8D%AE) **参数** : query_object , 使用的query对象通过 from jqdatasdk import * 导入 , 关于[【query的简易教程】](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376?type=1) **返回** : DataFrame, **用法** : 数据库名.run_query( query_object) , 如查询finance库中 STK_XR_XD 表的数据 +``` + +from jqdatasdk import * +auth(username, pwd) +q = query(finance.STK_XR_XD) # 注意需要先登陆,否则会报错表不存在 +finance.run_query(q) +``` + + 查询 opt 库中 OPT_CONTRACT_INFO 表的数据 +``` + +q = query( opt.OPT_CONTRACT_INFO ).filter( opt.OPT_CONTRACT_INFO.underlying_symbol=='510050.XSHG' + ).order_by(opt.OPT_CONTRACT_INFO.list_date.desc()).limit(100) # 查询最新挂牌的100条 510050 etf期权的合约资料 +opt.run_query(q) +``` + + **注意** : **1.为防止返回数据量过大,单次返回最多5000行;** **2.不支持进行连表查询,即同时查询多张表的数据;** **3.如query_object未使用order_by指定字段排序,返回数据的顺序没有意义;** **4.id字段为自增id,没有意义;** ## 股票 + +### 股票概况 + +- **更新时间:2005至今,8:00更新** + +方法描述normalize_code将股票代码转化成聚宽标准格式 +``` + +normalize_code(code) +``` + + 将其他形式的股票代码转换为jqdatasdk函数可用的股票代码形式。 **适用A股市场股票代码,支持传入单只股票或一个股票list** **以股票为例** +``` + +#输入 +normalize_code(['000001', 'SZ000001', '000001SZ', '000001.sz', '000001.XSHE']) +#输出 +['000001.XSHE', '000001.XSHE', '000001.XSHE', '000001.XSHE', '000001.XSHE'] +``` + +get_security_info获取单支股票信息 **调用方法** +``` + +get_security_info(code) +``` + + **参数** - code: 证券代码 **返回值** - 一个对象, 有如下属性: 1. display_name # 中文名称 2. name # 缩写简称 3. start_date # 上市日期, [datetime.date] 类型 4. end_date # 退市日期, [datetime.date] 类型, 如果没有退市则为2200-01-01 5. type # 类型,stock(股票),index(指数),etf(ETF基金),fja(分级A),fjb(分级B) 6. parent # 分级基金的母基金代码 **示例** +``` + +# 获取000001.XSHE的中文名称 +display_name = get_security_info('000001.XSHE').display_name +print(display_name) +>>>平安银行 + +# 获取000001.XSHE的上市时间 +start_date = get_security_info('000001.XSHE').start_date +print(start_date) +>>>1991-04-03 +``` + +get_all_securities获取所有股票信息 +``` + +get_all_securities(types=[], date=None) +``` + + 获取平台支持的所有股票、基金、指数、期货信息 **参数** - types: list: 用来过滤securities的类型, list元素可选: 'stock', 'fund', 'index', 'futures', 'options', 'etf', 'lof', 'fja', 'fjb', 'open_fund', 'bond_fund', 'stock_fund', 'QDII_fund', 'money_market_fund', 'mixture_fund'。**types为空时返回所有股票, 不包括基金,指数和期货** - date: 日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 用于获取某日期还在上市的股票信息. 默认值为 None, 表示获取所有日期的股票信息 **返回** - [pandas.DataFrame] - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期 - end_date: 退市日期,如果没有退市则为2200-01-01 - type: 类型 : stock(股票),index(指数),etf(ETF基金),fja(分级A),fjb(分级B),fjm(分级母基金),mmf(场内交易的货币基金)open_fund(开放式基金), bond_fund(债券基金), stock_fund(股票型基金), QDII_fund(QDII 基金), money_market_fund(场外交易的货币基金), mixture_fund(混合型基金), options(期权) **示例** +``` + +#获得所有股票列表 +df=get_all_securities() +print(df[:2]) + + display_name name start_date end_date type +000001.XSHE 平安银行 PAYH 1991-04-03 2200-01-01 stock +000002.XSHE 万科A WKA 1991-01-29 2200-01-01 stock +``` + +``` + +#获得2020年10月10日还在上市的所有股票列表 +df=get_all_securities(date='2020-10-10') +print(df[:5]) + display_name name start_date end_date type +000001.XSHE 平安银行 PAYH 1991-04-03 2200-01-01 stock +000002.XSHE 万科A WKA 1991-01-29 2200-01-01 stock +000004.XSHE 国华网安 GHWA 1990-12-01 2200-01-01 stock +000005.XSHE 世纪星源 SJXY 1990-12-10 2200-01-01 stock +000006.XSHE 深振业A SZYA 1992-04-27 2200-01-01 stock +``` + +``` + +#将所有股票列表转换成数组 +stocks = list(get_all_securities(['stock']).index) +stocks[:5] +>>>['000001.XSHE', '000002.XSHE', '000004.XSHE'] +``` + +get_extras判断股票是否是ST 得到多只股票在一段时间是否是ST +``` + +get_extras(info, security_list, start_date='2015-01-01', end_date='2015-12-31', df=True, count=None) +``` + + **参数** - info:[is_st]是否是ST,是则返回 True,否则返回 False - security_list: 股票列表 - start_date/end_date: 开始结束日期, 同 [get_price] - df: 返回[pandas.DataFrame]对象或者dict; - count: 数量, **与 start_date 二选一, 不可同时使用**, 必须大于 0. 表示取 end_date 往前的 count 个交易日的数据 **返回值** - df=True: 返回[pandas.DataFrame]对象, 列索引是股票代号, 行索引是[datetime.datetime] - df=False,返回一个dict, key是股票代号,如 **示例** - df为False +``` + +# 判断平安银行和神城A在2013-12-01至2013-12-03是否为ST +get_extras('is_st', ['000001.XSHE', '000018.XSHE'], start_date='2013-12-01', end_date='2013-12-03',df=False) +>>>{'000001.XSHE': array([False, False]), '000018.XSHE': array([ True, True])} +``` + + - df为默认为True +``` + +# 判断平安银行和神城A在2013-12-01至2013-12-03是否为ST +get_extras('is_st', ['000001.XSHE', '000018.XSHE'], start_date='2013-12-01', end_date='2013-12-03') + 000001.XSHE 000018.XSHE +2013-12-02 False True +2013-12-03 False True +``` + +### 股票行情数据 + +- **更新时间:日行情 2005至今,盘后15:00更新,24:00校对完成入库** +- **更新时间:分钟行情 2005至今,盘后15:00更新,24:00校对完成入库** + +方法描述 / 更新时间及频率get_price1天/分钟行情数据 +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None, panel=True, fill_paused=True) +``` + + - 获取一支或者多只股票 - frequency为非一天或者一分钟,请使用get_bars; - 取多支标的的数据时,不要获取交易时段不同的标的(例如:不同交易时间的期货标的),否则会报错; - 这里在使用时注意 end_date 的设置,不要引入未来的数据; - 标识时间为09:32:00的1分钟k线,其数据时间为09:31:00至09:31:59; - **end_date:当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取 。**注意:当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 - get_price指定frequency为 非1m/1d时,fields选择'high_limit','low_limit'会报错 - fq:对股票/基金的价格字段、成交量字段生效,factor不受影响,只返回后复权因子 **关于停牌**: 因为此API可以获取多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充. 如想跳过, 请使用 skip_paused=True 参数, 注意当 panel=True 且获取多标的时不支持(panel结构需要索引对齐) +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + **参数** | **参数名称** | **参数说明** | **注释** | +| --- | --- | --- | +| security | 标的 | 可获取种类:股票、期货、基金、指数、期权 | +| start_date | 开始时间,不可与count同时使用。当'count'和'start_date'为None时, 默认值是 '2015-01-01 00:00:00' | 当指定frequency为minute时,如果只传入日期,则日内时间为当日的 00:00:00 | +| end_date | 结束时间,如无指定,默认为'2015-12-31 00:00:00'。当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 | 当指定frequency为minute时, 如果只传入日期, 则日内时间为当日的 00:00:00, 所以返回的数据不包括 end_date这天。 | +| count | 表示获取 end_date 之前几个 frequency 的数据,与start_date不可同时使用。 | 返回的结果集的行数, 即表示获取 end_date 之前count个 frequency 的数据 | +| frequency | 单位时间长度,即指定获取的时间频级为分钟级(minute)或日级(daily),也可以指定为 '3m','10d' 等 | daily'(同'1d'), 'minute'(同'1m'), [点击查看get_price和get_bars的合成逻辑。](https://www.joinquant.com/view/community/detail/cea095760a0583ce965964912580077e?type=1)如需5分钟,1小时等标准bar请使用get_bars | +| fields | 所获取数据的字段名称,即表头。默认是None(返回标准字段['open','close','high','low','volume','money']) | 可选择填入以下字段,字段说明可查阅下面fields表 ['open','close','low','high','volume','money','factor', 'high_limit','low_limit','avg','pre_close','paused','open_interest'], open_interest为期货持仓量 | +| skip_paused | 是否跳过不交易日期(含:停牌/未上市/退市后的日期) | 如果不跳过, 停牌时会使用停牌前的数据填充,上市前或者退市后数据都为 nan。 | +| fill_paused | 对于停牌股票的价格处理,默认为True | 默认为True,用pre_close价格填充);False 表示使用NAN填充停牌的股票价格。 | +| fq | 复权选项,默认为前复权(fq='pre') | 'pre':前复权 / 'none':不复权, 返回实际价格 / 'post':后复权 | +| panel | 指定返回的数据格式为panel | 默认为True;指定panel=False时返回dataframe格式; 如果您的环境pandas大于0.25 ,将强制返回dataframe详见案例 | + + fields内各字段属性 | **字段名称** | **中文名称** | **注释** | +| --- | --- | --- | +| open | 时间段开始时价格 | | +| close | 时间段结束时价格 | | +| low | 时间段中的最低价 | | +| high | 时间段中的最高价 | | +| volume | 时间段中的成交的股票数量 | 单位股 | +| money | 时间段中的成交的金额 | | +| factor | pre':前复权(默认)/None:不复权,返回实际价格/'post':后复权 | 前(后)复权数据=价格×前(后)复权因子; 前(后)复权后的成交量=成交量 / 前(后)复权因子; 成交额不处理 | +| high_limit | 时间段中的涨停价 | | +| low_limit | 时间段中的跌停价 | | +| avg | 时间段中的平均价 | (1)天级别:股票是成交额除以成交量;期货是直接从CTP行情获取的,计算方法为成交额除以成交量再除以合约乘数; (2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 | +| pre_close | 前一个单位时间结束时的价格,按天则是前一天的收盘价 | 期货:pre_close--前一天结算;建议使用get_extras获取结算价;在分钟频率下pre_close=open | +| paused | bool值,股票是否停牌; | 停牌时open/close/low/high/pre_close;都等于停牌前的收盘价, volume=money=0 | + + **返回** - 请注意, 为了方便比较一只股票的多个属性, 同时也满足对比多只股票的一个属性的需求, 我们在security参数是**一只股票和多只股票时返回的结构完全不一样 (默认panel=True时)** **代码示例** **获取一支股票** +``` + +#获取平安银行按1分钟为周期以“2015-01-30 14:00:00”为基础前4个时间单位的数据 +df = get_price('000001.XSHE', end_date='2015-01-30 14:00:00',count=4, frequency='minute', fields=['open','close','high','low','volume','money']) +print(df) + open close high low volume money +2015-01-30 13:57:00 8.98 8.97 8.98 8.97 295949.0 2656384.0 +2015-01-30 13:58:00 8.97 8.97 8.98 8.97 339030.0 3041408.0 +2015-01-30 13:59:00 8.98 8.98 8.98 8.96 459533.0 4121592.0 +2015-01-30 14:00:00 8.98 8.97 8.98 8.96 469211.0 4208384.0 +``` + + **获取多只股票** +``` + +#获取多支股票, 则返回[pandas.Panel]对象 +panel=get_price(['000300.XSHG', '000001.XSHE']) +#返回[pandas.DataFrame]对象,行索引是[datetime.datetime]对象, 列索引是股票代号 +df=panel['money'][:4] +print(df) + + 000300.XSHG 000001.XSHE +2015-01-05 5.198498e+11 4.565388e+09 +2015-01-06 4.985296e+11 3.453446e+09 +2015-01-07 3.987317e+11 2.634796e+09 +2015-01-08 3.558320e+11 2.128003e+09 +``` + +get_bars时间周期的行情数据(支持时间周期:'1m','5m', '15m', '30m', '60m', '120m', '1w', '1M') +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None,df=True) +``` + + 获取各种时间周期的bar数据,bar的分割方式与主流股票软件相同, 同时还支持返回当前时刻所在 bar 的数据。 **参数** - security: 股票代码,支持单个及多个标的 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流股票软件类似,期货的bar各平台也许稍微有差异,我们与文华接近; 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', 'open_interest'(期货持仓量),factor(复权因子)。 - include_now: 取值True 或者False。 表示是否包含end_dt所在的bar, 比如end_dt指定为9:38:00,unit参数为5m, 如果 include_now=True,则返回的最后一条bar为9:35:00-9:38:00这个 bar,否则返回的最后一条bar为09:30:00-09:35:00的bar。 - end_dt:查询的截止时间,默认最新的时间。注意:当end_dt指定为当天尚未结束的交易时间时,会自动填充为上一个交易日收盘的时间 - fq_ref_date:复权基准日期,为None时为不复权数据。 - 如果用户输入 fq_ref_date = None, 则获取到的是不复权的数据 - 如果用户想获取后复权的数据,可以将fq_ref_date 指定为一个很早的日期,比如 datetime.date(2000, 1, 1) - 定点复权,以某一天价格点位为参照物,进行的前复权或后复权。设置为datetime.datetime.now()即返回前复权数据 ; - df:默认为True,指定返回数据为dataframe结构;当df=False的时候,传入单个标的时,返回一个np.ndarray,多个标的返回一个字典,key是code,value是np.array **关于停牌**: 此API可以获取多只股票的数据, 部分标的在获取时间的范围内可能存在停牌的情况。 此接口返回的结果会直接跳过停牌的日期, 在获取多标的时或使用索引时,需注意时间轴在部分标的停牌时不一致的情况 **返回** 返回一个pandas.dataframe对象,可以按任意周期返回股票的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 **示例** **获取一支股票** +``` + +#获取平安银行按120分钟为周期以"2018-12-05"为基础往前5个时间单位的数据 +df = get_bars('000001.XSHE', 5, unit='120m',fields=['date','open','close','high','low','volume','money'],include_now=False,end_dt='2018-12-05') +print(df) + date open close high low volume money +0 2018-11-30 15:00:00 10.25 10.36 10.36 10.18 31202900.0 320769828.0 +1 2018-12-03 11:30:00 10.59 10.64 10.66 10.48 80398200.0 850921284.0 +2 2018-12-03 15:00:00 10.64 10.59 10.65 10.56 26011500.0 275453511.0 +3 2018-12-04 11:30:00 10.57 10.60 10.62 10.53 29793600.0 315213376.0 +4 2018-12-04 15:00:00 10.60 10.59 10.61 10.54 23687700.0 250530360.0 +``` + + **获取多支股票** +``` + +#获取平安银行、万科A按120分钟为周期以"2018-12-05"为基础往前2个时间单位的数据 +df = get_bars(['000001.XSHE','000002.XSHE'], 2, unit='120m',fields=['date','open','close','high','low','volume','money'],include_now=False,end_dt='2018-12-05') +print(df) + date open close high low volume \ +000001.XSHE 0 2018-12-04 11:30:00 10.57 10.60 10.62 10.53 29793600.0 + 1 2018-12-04 15:00:00 10.60 10.59 10.61 10.54 23687700.0 +000002.XSHE 0 2018-12-04 11:30:00 25.56 25.23 25.56 25.10 22614700.0 + 1 2018-12-04 15:00:00 25.24 25.13 25.24 24.87 28379900.0 + + money +000001.XSHE 0 315213376.0 + 1 250530360.0 +000002.XSHE 0 571859390.0 + 1 709510464.0 +``` + +get_call_auction获取集合竞价数据 / 2010年至今 +``` + +get_call_auction(security, start_date, end_date, fields=None) +``` + + 支持股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)和上证ETF期权(2017年至今)的集合竞价数据。当日的集合竞价数据下午15点更新。为了防止返回数据量过大, 我们每次最多返回5000行。 **参数**: - security: **股票(2010年至今)** - start_date: 开始日期,YYYY-MM-DD格式 - end_date: 结束日期,YYYY-MM-DD格式 - fields: 选择要获取的行情数据字段,参数为list格式,默认为None,返回全部字段。 **返回值:** 返回指定时间区间标的集合竞价tick数据,返回字段结果如下: | 字段名 | 说明 | 字段类型 | | :-------- | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价(不复权) | float | | volume | 累计成交量(股) | float | | money | 累计成交额(元) | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **示例:** **以股票为例,接口的具体使用,可查看各市场对应的示例** +``` + +#获取平安银行2019-09-02至2019-09-05期间的集合竞价数据 +df=get_call_auction('000001.XSHE','2019-09-02','2019-09-05') +print(df) + + code time current volume money a1_p \ +0 000001.XSHE 2019-09-02 09:25:03 14.15 568900.0 8049900.0 14.15 +1 000001.XSHE 2019-09-03 09:25:03 14.48 647700.0 9378700.0 14.48 +2 000001.XSHE 2019-09-04 09:25:03 14.32 322637.0 4620200.0 14.33 +3 000001.XSHE 2019-09-05 09:25:03 14.56 1673700.0 24369100.0 14.56 + + a1_v a2_p a2_v a3_p ... b1_p b1_v b2_p \ +0 58802.0 14.16 4500.0 14.17 ... 14.14 8700.0 14.13 +1 67091.0 14.49 201092.0 14.50 ... 14.47 3100.0 14.46 +2 67179.0 14.34 17000.0 14.35 ... 14.32 27063.0 14.31 +3 122434.0 14.57 364479.0 14.58 ... 14.55 18700.0 14.54 + + b2_v b3_p b3_v b4_p b4_v b5_p b5_v +0 116000.0 14.12 30900.0 14.11 267900.0 14.10 119200.0 +1 3900.0 14.45 40000.0 14.44 700.0 14.43 1900.0 +2 12600.0 14.30 166400.0 14.29 2100.0 14.28 10100.0 +3 2100.0 14.53 24800.0 14.51 19300.0 14.50 81700.0 + +[4 rows x 25 columns] +``` + +get_ticks (机构)股票tick数据/2010-01-01起 +``` + +get_ticks(security, start_dt, end_dt, count, fields, skip=True,df=True) +``` + + **股票部分, 支持 2010-01-01 至今的tick数据,提供买五卖五数据。(每3秒一次快照)** **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 股票代码或期货代码,不支持传入多个标的 - start_dt: 开始日期 - end_dt: 结束日期 - count: 取出指定时间区间内前多少条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下: - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据。 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray - **股票tick返回结果** | 字段名 | 说明 | 字段类型 | | --------- | ---------- | ------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额 | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **股票tick数据示例**: +``` + +# 获取平安银行2018-07-02的tick数据,start_dt和count只能有一个不为None值 +d = get_ticks("000001.XSHE",start_dt=None, end_dt="2018-07-03", count=8) +print(d) + +#输出 + time current high low volume money a1_p \ +0 2018-07-02 14:56:42 8.62 9.05 8.56 128332300.0 1.130823e+09 8.62 +1 2018-07-02 14:56:45 8.62 9.05 8.56 128348600.0 1.130963e+09 8.62 +2 2018-07-02 14:56:48 8.61 9.05 8.56 128380000.0 1.131233e+09 8.62 +3 2018-07-02 14:56:51 8.62 9.05 8.56 128420300.0 1.131581e+09 8.62 +4 2018-07-02 14:56:54 8.62 9.05 8.56 128425000.0 1.131621e+09 8.62 +5 2018-07-02 14:56:57 8.62 9.05 8.56 128485000.0 1.132138e+09 8.62 +6 2018-07-02 14:57:00 8.62 9.05 8.56 128514800.0 1.132395e+09 0.00 +7 2018-07-02 15:00:03 8.61 9.05 8.56 131552000.0 1.158546e+09 8.61 + + a1_v a2_p a2_v ... b1_p b1_v b2_p b2_v b3_p \ +0 479000.0 8.63 651000.0 ... 8.61 13500.0 8.60 434200.0 8.59 +1 478700.0 8.63 651000.0 ... 8.61 5500.0 8.60 436600.0 8.59 +2 478400.0 8.63 651000.0 ... 8.61 2000.0 8.60 512600.0 8.59 +3 464600.0 8.63 651000.0 ... 8.61 23100.0 8.60 558200.0 8.59 +4 460300.0 8.63 651000.0 ... 8.61 108800.0 8.60 564300.0 8.59 +5 386500.0 8.63 649000.0 ... 8.61 399200.0 8.60 682500.0 8.59 +6 0.0 0.00 0.0 ... 0.00 0.0 0.00 0.0 0.00 +7 2560700.0 8.62 483200.0 ... 8.60 1009300.0 8.59 201000.0 8.58 + + b3_v b4_p b4_v b5_p b5_v +0 211300.0 8.58 311100.0 8.57 180000.0 +1 211300.0 8.58 306100.0 8.57 180000.0 +2 210900.0 8.58 306100.0 8.57 180000.0 +3 209600.0 8.58 306200.0 8.57 179200.0 +4 209500.0 8.58 307300.0 8.57 184200.0 +5 209500.0 8.58 306800.0 8.57 184200.0 +6 0.0 0.00 0.0 0.00 0.0 +7 365600.0 8.57 184700.0 8.56 250900.0 + +[8 rows x 26 columns] +``` + +### 股票融资融券数据 + +- **更新时间:2010至今,下一个交易日10点之前更新** + +方法描述get_mtss获取股票的融资融券信息 +``` + +get_mtss(security_list, start_date=None, end_date=None, fields=None, count=None) +``` + + 获取一只或者多只股票在一个时间段内的融资融券信息 **注: 需导入 jqdatasdk 模块,`from jqdatasdk import *`** **参数** - security_list: 一只股票代码或者一个股票代码的 list - start_date: 开始日期, **与 count 二选一, 不可同时使用**. 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 默认为平台提供的数据的最早日期 - end_date: 结束日期, 一个字符串或者 [datetime.date]/[datetime.datetime] 对象, 默认为 datetime.date.today() - count: 数量, **与 start_date 二选一,不可同时使用**, 必须大于 0. 表示返回 end_date 之前 count 个交易日的数据, 包含 end_date - fields: 字段名或者 list, 可选. 默认为 None, 表示取全部字段, 各字段含义如下: |字段名|含义| |---|---| |date|日期| |sec_code|股票代码| |fin_value|融资余额(元)| |fin_buy_value|融资买入额(元)| |fin_refund_value|融资偿还额(元)| |sec_value|融券余量(股)| |sec_sell_value|融券卖出量(股)| |sec_refund_value|融券偿还量(股)| |fin_sec_value|融资融券余额(元)| - **返回** 返回一个 [pandas.DataFrame] 对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应. **示例** **获取一只股票** +``` + +# 获取平安银行在2016-01-01和2016-04-01的融资融券信息 +df=get_mtss('000001.XSHE','2016-01-01','2016-04-01',fields=['date','sec_code','fin_value','fin_buy_value','fin_refund_value','sec_value','sec_sell_value','sec_refund_value','fin_sec_value']) +print(df[:5]) + + date sec_code fin_value fin_buy_value fin_refund_value \ +0 2016-01-04 000001.XSHE 3.472612e+09 152129217.0 169414153.0 +1 2016-01-05 000001.XSHE 3.439317e+09 143615276.0 176910198.0 +2 2016-01-06 000001.XSHE 3.424639e+09 110246569.0 124924119.0 +3 2016-01-07 000001.XSHE 3.431689e+09 35093634.0 28044375.0 +4 2016-01-08 000001.XSHE 3.369931e+09 136799561.0 198556950.0 + + sec_value sec_sell_value sec_refund_value fin_sec_value +0 594640.0 184100.0 317900.0 3.479349e+09 +1 584540.0 20800.0 30900.0 3.445981e+09 +2 403040.0 900.0 182400.0 3.429286e+09 +3 395140.0 0.0 7900.0 3.436011e+09 +4 362440.0 2400.0 35100.0 3.373962e+09 +``` + +``` + +# 获取股票 000001.XSHE 在日期 2016-06-30 往前 5 个交易日的融资融券信息 +df=get_mtss('000001.XSHE', end_date="2016-06-30", count=5,fields=['date','sec_code','fin_value','fin_buy_value','fin_refund_value','sec_value','sec_sell_value','sec_refund_value','fin_sec_value']) +print(df) + date sec_code fin_value fin_buy_value fin_refund_value \ +0 2016-06-24 000001.XSHE 2.855885e+09 71503613.0 53903693.0 +1 2016-06-27 000001.XSHE 2.869486e+09 47309234.0 33707430.0 +2 2016-06-28 000001.XSHE 2.889199e+09 55438177.0 35725201.0 +3 2016-06-29 000001.XSHE 2.897613e+09 72215294.0 63801533.0 +4 2016-06-30 000001.XSHE 2.859810e+09 41895702.0 79699182.0 + + sec_value sec_sell_value sec_refund_value fin_sec_value +0 2210681.0 14100.0 1666940.0 2.874830e+09 +1 3846536.0 1660755.0 24900.0 2.902605e+09 +2 3920836.0 91700.0 17400.0 2.923036e+09 +3 4024356.0 161500.0 57980.0 2.932585e+09 +4 3921356.0 45700.0 148700.0 2.893925e+09 +``` + + **获取多只股票的** +``` + +# 获取平安银行、万科A、中信海直股票的融资融券信息 +df=get_mtss(['000001.XSHE','000002.XSHE','000099.XSHE'],'2015-03-25','2016-01-25',fields=['date','sec_code','fin_value','fin_buy_value','fin_refund_value','sec_value','sec_sell_value','sec_refund_value','fin_sec_value']) +print(df[:5]) + + date sec_code fin_value fin_buy_value fin_refund_value \ +0 2015-03-25 000001.XSHE 5.147989e+09 443602813.0 401129440.0 +1 2015-03-26 000001.XSHE 5.112350e+09 414025447.0 449664794.0 +2 2015-03-27 000001.XSHE 5.136957e+09 290626262.0 266019436.0 +3 2015-03-30 000001.XSHE 5.204888e+09 760545895.0 692614645.0 +4 2015-03-31 000001.XSHE 5.057292e+09 637117836.0 784714127.0 + + sec_value sec_sell_value sec_refund_value fin_sec_value +0 1401703.0 4212074.0 4466123.0 5.168889e+09 +1 1915450.0 8223542.0 7709795.0 5.141292e+09 +2 1510960.0 7542256.0 7946746.0 5.159742e+09 +3 1496603.0 11072162.0 11086519.0 5.228325e+09 +4 1556264.0 7769048.0 7709387.0 5.081803e+09 +``` + +get_margincash_stocks融资标的列表 +``` + +get_margincash_stocks(date) +``` + + **参数** date:默认为None,不指定时返回上交所、深交所最近一次披露的的可融资标的列表的list。 **返回结果** 返回指定日期上交所、深交所披露的的可融资标的列表的list。 **示例** +``` + +# 获取融资标的列表,并赋值给 margincash_stocks +margincash_stocks = get_margincash_stocks(date='2018-07-02') +margincash_stocks[:3] +>>>['000001.XSHE', '000002.XSHE', '000006.XSHE'] + +# 判断平安银行是否在可融资列表 +'000001.XSHE' in get_margincash_stocks(date='2018-07-02') +>>> True +``` + +get_marginsec_stocks融券标的列表 +``` + +get_marginsec_stocks(date) +``` + + **参数** date:默认为None,不指定时返回上交所、深交所最近一次披露的的可融券标的列表的list。 **返回结果** 返回指定日期上交所、深交所披露的的可融券标的列表的list。 **示例** +``` + +# 获取融券标的列表,并赋值给 marginsec_stocks +marginsec_stocks= get_marginsec_stocks(date='2018-07-05') +print(marginsec_stocks[:5]) +['000001.XSHE', '000002.XSHE', '000006.XSHE', '000009.XSHE', '000012.XSHE'] + +# 判断平安银行是否在可融券列表 +'000001.XSHE' in get_marginsec_stocks(date='2018-07-05') +>>> True +``` + +STK_MT_TOTAL融资融券汇总数据 +``` + +from jqdatasdk import * +finance.run_query(query(finance.STK_MT_TOTAL).filter(finance.STK_MT_TOTAL.date=='2019-05-23').limit(n)) +``` + + 描述:记录上海交易所和深圳交易所的融资融券汇总数据 **参数:** - **query(finance.STK_MT_TOTAL)**:表示从finance.STK_MT_TOTAL这张表中查询融资融券汇总数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411) - **finance.STK_MT_TOTAL**:收录了融资融券汇总数据,表结构和字段信息如下: **字段设计** | 名称 | 类型 | 描述 | +| --- | --- | --- | +| date | date | 交易日期 | +| exchange_code | varchar(12) | 交易市场。例如,XSHG-上海证券交易所;XSHE-深圳证券交易所。 对应DataAPI.SysCodeGet.codeTypeID=10002。 | +| fin_value | decimal(20,2) | 融资余额(元) | +| fin_buy_value | decimal(20,2) | 融资买入额(元) | +| sec_volume | int | 融券余量(股) | +| sec_value | decimal(20,2) | 融券余量金额(元) | +| sec_sell_volume | int | 融券卖出量(股) | +| fin_sec_value | decimal(20,2) | 融资融券余额(元) | + + - **filter(finance.STK_MT_TOTAL.date==date)**:指定筛选条件,通过finance.STK_MT_TOTAL.date==date可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询2019-05-23的融资融券汇总数据。 +df=finance.run_query(query(finance.STK_MT_TOTAL).filter(finance.STK_MT_TOTAL.date=='2019-05-23')) +print(df) + + id date exchange_code fin_value fin_buy_value sec_volume \ +0 4445 2019-05-23 XSHE 3.601290e+11 1.460400e+10 136000000 +1 4446 2019-05-23 XSHG 5.605276e+11 1.906461e+10 930593681 + + sec_value sec_sell_volume fin_sec_value +0 1.465000e+09 26000000 3.615940e+11 +1 6.018287e+09 144633497 5.665458e+11 +``` + +### 股票:指数成分股及权重数据 + +**更新时间:2005至今,交易日8:00更新** + +方法描述 / 更新时间及频率get_index_stocks指数成份股 +``` + +get_index_stocks(index_symbol, date=None) +``` + + 获取一个指数给定日期在平台可交易的成分股列表,请点击[指数列表](https://www.joinquant.com/indexData)查看指数信息 **参数** - index_symbol: 指数代码 - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, **返回** 返回股票代码的list **示例** +``` + +# 获取所有沪深300的股票 +stocks = get_index_stocks('000300.XSHG') +print(stocks[:5]) + +# 输出 +['000001.XSHE', '000002.XSHE', '000063.XSHE', '000066.XSHE', '000069.XSHE'] +``` + +get_index_weights指数成份股权重(月度) +``` + +get_index_weights(index_id, date=None) +``` + + 获取指数成份股给定日期的权重数据,每月的月底或者月初更新一次,请点击[指数列表](https://www.joinquant.com/help/api/help?name=index#%E6%B2%AA%E6%B7%B1%E6%8C%87%E6%95%B0%E5%88%97%E8%A1%A8)查看指数信息 **参数** - index_id: 代表指数的标准形式代码, 形式:指数代码.交易所代码,例如"000001.XSHG"。 - date: 查询权重信息的日期,形式:"%Y-%m-%d",例如"2018-05-03"; **返回** - 查询到对应日期,且有权重数据,返回 pandas.DataFrame, code(股票代码),display_name(股票名称), date(日期), weight(权重); - 查询到对应日期,且无权重数据, 返回距离查询日期最近日期的权重信息; - 找不到对应日期的权重信息, 返回距离查询日期最近日期的权重信息; **示例** +``` + +#获取2018年5月9日这天的上证指数的成份股权重 +df = get_index_weights(index_id="000001.XSHG", date="2018-05-09") +print(df) + +#输出 +code display_name date weight +603648.XSHG 畅联股份 2018-05-09 0.023 +603139.XSHG 康惠制药 2018-05-09 0.007 +603138.XSHG 海量数据 2018-05-09 0.015 +603136.XSHG 天目湖 2018-05-09 0.009 +603131.XSHG 上海沪工 2018-05-09 0.011 + ... ... ... +603005.XSHG 晶方科技 2018-05-09 0.023 +603007.XSHG 花王股份 2018-05-09 0.013 +603006.XSHG 联明股份 2018-05-09 0.008 +603009.XSHG 北特科技 2018-05-09 0.014 +603008.XSHG 喜临门 2018-05-09 0.022 +``` + +### 股票交易统计数据 + +方法描述 / 更新时间及频率get_money_flow股票资金流向数据 / 2010至今,盘后20:00更新 +``` + +from jqdatasdk import * +get_money_flow(security_list, start_date=None, end_date=None, fields=None, count=None) +``` + + 获取一只或者多只股票在一个时间段内的资金流向数据 **参数** - security_list: 一只股票代码或者一个股票代码的 list - start_date: 开始日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象 - end_date: 结束日期, 一个字符串或者 [datetime.date]/[datetime.datetime] 对象 - count: 数量, 与 start_date 二选一,不可同时使用, 必须大于 0. 表示返回 end_date 之前 count 个交易日的数据, 包含 end_date - fields: 字段名或者 list, 可选. 默认为 None, 表示取全部字段, 各字段含义如下: | 字段名 | 含义 | 备注 | | :-------------- | :-------------- | :----------------------------------------------------------- | | date | 日期 | | | sec_code | 股票代码 | | | change_pct | 涨跌幅(%) | | | net_amount_main | 主力净额(万) | 主力净额 = 超大单净额 + 大单净额 | | net_pct_main | 主力净占比(%) | 主力净占比 = 主力净额 / 成交额 | | net_amount_xl | 超大单净额(万) | 超大单:大于等于50万股或者100万元的成交单 | | net_pct_xl | 超大单净占比(%) | 超大单净占比 = 超大单净额 / 成交额 | | net_amount_l | 大单净额(万) | 大单:大于等于10万股或者20万元且小于50万股或者100万元的成交单 | | net_pct_l | 大单净占比(%) | 大单净占比 = 大单净额 / 成交额 | | net_amount_m | 中单净额(万) | 中单:大于等于2万股或者4万元且小于10万股或者20万元的成交单 | | net_pct_m | 中单净占比(%) | 中单净占比 = 中单净额 / 成交额 | | net_amount_s | 小单净额(万) | 小单:小于2万股或者4万元的成交单 | | net_pct_s | 小单净占比(%) | 小单净占比 = 小单净额 / 成交额 | **返回** 返回一个 [pandas.DataFrame] 对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应. **示例** **代码示例** **获取一支股票** +``` + +# 获取一只股票在一个时间段内的资金流量数据 +df=get_money_flow(['000001.XSHE'], '2010-01-01', '2010-01-30', ['date','sec_code','change_pct','net_amount_main','net_pct_main','net_amount_xl','net_pct_xl','net_amount_l','net_pct_l','net_amount_m','net_pct_m','net_amount_s','net_pct_s']) +print(df[:4]) + + date sec_code change_pct net_amount_main net_pct_main \ +0 2010-01-04 000001.XSHE -2.71 -5106.20 -8.8 +1 2010-01-05 000001.XSHE -1.73 -14486.95 -11.2 +2 2010-01-06 000001.XSHE -1.72 -14450.14 -15.3 +3 2010-01-07 000001.XSHE -1.09 -11419.16 -14.2 + + net_amount_xl net_pct_xl net_amount_l net_pct_l net_amount_m \ +0 -1682.72 -2.9 -3423.47 -5.9 1450.62 +1 -21213.02 -16.4 6726.08 5.2 6726.09 +2 -13883.47 -14.7 -566.68 -0.6 4722.27 +3 -9087.08 -11.3 -2332.08 -2.9 3297.08 + + net_pct_m net_amount_s net_pct_s +0 2.5 3655.57 6.3 +1 5.2 7760.86 6.0 +2 5.0 9727.87 10.3 +3 4.1 8122.08 10.1 +``` + + **获取多支股票** +``` + +# 获取多只股票在一个时间段内的资金流向数据 +df=get_money_flow(['000001.XSHE', '000040.XSHE', '000099.XSHE'], '2010-01-01', '2010-01-30', ['date','sec_code','change_pct','net_amount_main','net_pct_main','net_amount_xl','net_pct_xl','net_amount_l','net_pct_l','net_amount_m','net_pct_m','net_amount_s','net_pct_s']) +print(df[:4]) + + date sec_code change_pct net_amount_main net_pct_main \ +0 2010-01-04 000099.XSHE 0.77 576.20 13.7 +1 2010-01-04 000040.XSHE -1.95 -667.22 -29.1 +2 2010-01-04 000001.XSHE -2.71 -5106.20 -8.8 +3 2010-01-05 000040.XSHE -2.27 -473.25 -13.3 + + net_amount_xl net_pct_xl net_amount_l net_pct_l net_amount_m \ +0 121.97 2.9 454.23 10.8 -46.26 +1 0.00 0.0 -667.22 -29.1 75.66 +2 -1682.72 -2.9 -3423.47 -5.9 1450.62 +3 0.00 0.0 -473.25 -13.3 -206.38 + + net_pct_m net_amount_s net_pct_s +0 -1.1 -529.93 -12.6 +1 3.3 591.56 25.8 +2 2.5 3655.57 6.3 +3 -5.8 679.62 19.1 +``` + +``` + +# 获取多只股票在某一天的资金流向数据 +df=get_money_flow(['000001.XSHE', '000040.XSHE', '000099.XSHE'], '2016-04-01', '2016-04-01',['date','sec_code','change_pct','net_amount_main','net_pct_main','net_amount_xl','net_pct_xl','net_amount_l','net_pct_l','net_amount_m','net_pct_m','net_amount_s','net_pct_s']) +print(df[:4]) + + date sec_code change_pct net_amount_main net_pct_main \ +0 2016-04-01 000001.XSHE 0.19 -580.30 -1.48 +1 2016-04-01 000040.XSHE -0.69 -293.20 -3.40 +2 2016-04-01 000099.XSHE -3.61 -8913.61 -23.39 + + net_amount_xl net_pct_xl net_amount_l net_pct_l net_amount_m \ +0 684.81 1.75 -1265.11 -3.23 -527.74 +1 -244.34 -2.83 -48.86 -0.57 -371.15 +2 -5711.44 -14.99 -3202.18 -8.40 2013.41 + + net_pct_m net_amount_s net_pct_s +0 -1.35 1108.05 2.83 +1 -4.30 664.35 7.70 +2 5.28 6900.20 18.10 +``` + +get_billboard_list龙虎榜数据 / 2005至今,盘后20:00和22:00更新 +``` + +get_billboard_list(stock_list, start_date, end_date, count) +``` + + 获取指定日期区间内的龙虎榜数据 **参数** - stock_list: 一个股票代码的 list。 当值为 None 时, 返回指定日期的所有股票。 - start_date:开始日期 - end_date: 结束日期 - count: 交易日数量, 可以与 end_date 同时使用, 表示获取 end_date 前 count 个交易日的数据(含 end_date 当日) **返回值** - pandas.DataFrame, 各 column 的含义如下: - code: 股票代码 - day: 日期 - direction: ALL 表示『汇总』,SELL 表示『卖』,BUY 表示『买』 - abnormal_code: 异常波动类型 - abnormal_name: 异常波动名称 - sales_depart_name: 营业部名称 - rank: 0 表示汇总, 1~5 对应买入金额或卖出金额排名第一到第五 - buy_value:买入金额 - buy_rate:买入金额占比(买入金额/市场总成交额) - sell_value:卖出金额 - sell_rate:卖出金额占比(卖出金额/市场总成交额) - net_value:净额(买入金额 - 卖出金额) - amount:市场总成交额 **异常波动类型** | 参数编码 | 参数名称 | | -------- | ------------------------------------------------------------ | | 106001 | 涨幅偏离值达7%的证券 | | 106002 | 跌幅偏离值达7%的证券 | | 106003 | 日价格振幅达到15%的证券 | | 106004 | 换手率达20%的证券 | | 106005 | 无价格涨跌幅限制的证券 | | 106006 | 连续三个交易日内收盘价格涨幅偏离值累计达到20%的证券 | | 106007 | 连续三个交易日内收盘价格跌幅偏离值累计达到20%的证券 | | 106008 | 连续三个交易日内收盘价格涨幅偏离值累计达到15%的证券 | | 106009 | 连续三个交易日内收盘价格跌幅偏离值累计达到15%的证券 | | 106010 | 连续三个交易日内涨幅偏离值累计达到12%的ST证券、*ST证券和未完成股改证券 | | 106011 | 连续三个交易日内跌幅偏离值累计达到12%的ST证券、*ST证券和未完成股改证券 | | 106012 | 连续三个交易日的日均换手率与前五个交易日日均换手率的比值到达30倍 | | 106013 | 单只标的证券的当日融资买入数量达到当日该证券总交易量的50%以上的证券 | | 106014 | 单只标的证券的当日融券卖出数量达到当日该证券总交易量的50%以上的证券 | | 106099 | 其它异常波动的证券 | **示例** +``` + +# 获取2018-08-01的龙虎榜数据,count表示交易日数量 +df=get_billboard_list(stock_list=None, end_date = '2018-08-01', count =1) +print(df[:3]) + + code day direction rank abnormal_code abnormal_name \ +0 603803.XSHG 2018-08-01 SELL 2 106002 跌幅偏离值达7%的证券 +1 603803.XSHG 2018-08-01 BUY 5 106002 跌幅偏离值达7%的证券 +2 603803.XSHG 2018-08-01 BUY 4 106002 跌幅偏离值达7%的证券 + + sales_depart_name buy_value buy_rate sell_value sell_rate \ +0 西部证券股份有限公司丹阳丹凤北路证券营业部 NaN NaN 2466090.0 2.0684 +1 中泰证券股份有限公司烟台长江路证券营业部 1781600.0 1.4943 NaN NaN +2 中航证券有限公司景德镇珠山东路证券营业部 1842434.0 1.5453 NaN NaN + + total_value net_value amount +0 2466090.0 -2466090.0 119226855.0 +1 1781600.0 1781600.0 119226855.0 +2 1842434.0 1842434.0 119226855.0 +``` + +get_locked_shares限售解禁数据 / 2005至今盘后20:00更新 +``` + +get_locked_shares(stock_list, start_date, end_date, forward_count) +``` + + 获取指定日期区间内的限售解禁数据 **参数** - stock_list: 一个股票代码的 list - start_date: 开始日期 - end_date: 结束日期 - forward_count: 交易日数量, 可以与 start_date 同时使用, 表示获取 start_date 到 forward_count 个交易日区间的数据 **返回值** - pandas.DataFrame, 各 column 的含义如下: - day: 解禁日期 - code: 股票代码 - num: 解禁股数 - rate1: 解禁股数/总股本 - rate2: 解禁股数/总流通股本 **示例** +``` + +# 在策略中获取个股未来500天的解禁情况 +df=get_locked_shares(stock_list=['002345.XSHE', '603025.XSHG'], start_date='2020-07-20', forward_count=500) +print(df) + day code num rate1 rate2 +0 2020-07-20 002345.XSHE 12060300.0 0.0083 0.0086 +1 2020-12-28 603025.XSHG 3561107.0 0.0038 0.0039 +2 2021-11-04 603025.XSHG 1263300.0 0.0014 0.0014 +``` + +STK_EXCHANGE_TRADE_INFO沪深市场每日成交概况 / 2005年至今,交易日20:30-24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_EXCHANGE_TRADE_INFO).filter(finance.STK_EXCHANGE_TRADE_INFO.exchange_code==exchange_code).limit(n) +``` + + 记录沪深两市股票交易的成交情况,包括市值、成交量,市盈率等情况。 **参数:** - **query(finance.STK_EXCHANGE_TRADE_INFO)**:表示从finance.STK_EXCHANGE_TRADE_INFO这张表中查询沪深两市股票交易的成交情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411) - **finance.STK_EXCHANGE_TRADE_INFO**:代表沪深市场每日成交概况表,记录沪深两市股票交易的成交情况,包括市值、成交量,市盈率等情况,表结构和字段信息如下: | **字段名称** | **中文名称** | **字段类型** | **能否为空** | **含义** | +| --- | --- | --- | --- | --- | +| exchange_code | 市场编码 | varchar(12) | N | 编码规则见下表 | +| exchange_name | 市场名称 | varchar(100) | | 上海市场,上海A股,上海B股 深圳市场,深市主板 中小企业板,创业板 | +| date | 交易日期 | date | N | | +| total_market_cap | 市价总值 | decimal(20,8) | | 单位:亿 | +| circulating_market_cap | 流通市值 | decimal(20,8) | | 单位:亿 | +| volume | 成交量 | decimal(20,4) | | 单位:万 | +| money | 成交金额 | decimal(20,8) | | 单位:亿 | +| deal_number | 成交笔数 | decimal(20,4) | | 单位:万笔 | +| pe_average | 平均市盈率 | decimal(20,4) | | 上海市场市盈率计算方法: 市盈率=∑(收盘价×发行数量)/∑(每股收益×发行数量),统计时剔除亏损及暂停上市的上市公司。 深圳市场市盈率计算方法: 市盈率=∑市价总值/∑(总股本×上年每股利润),剔除上年利润为负的公司。 | +| turnover_ratio | 换手率 | decimal(10,4) | | 单位:% | + + 市场编码名称对照表 | 市场编码 | 交易市场名称 |备注| | -------- | ------------ |----| | 322001 | 上海市场 | | | 322002 | 上海A股 | | | 322003 | 上海B股 | | | 322004 | 深圳市场 |该市场交易所未公布成交量和成交笔数 | | 322005 | 深市主板 | | | 322006 | 中小企业板 | | | 322007 | 创业板 | | - **filter(finance.STK_EXCHANGE_TRADE_INFO.date==date)**:指定筛选条件,通过finance.STK_EXCHANGE_TRADE_INFO.date==date可以指定你想要查询的交易日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EXCHANGE_TRADE_INFO.exchange_code==322001,表示筛选市场编码为322001(上海市场)的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个dataframe,每一行对应数据表中的一条数据,列索引是你所查询的字段名称。 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +q=query(finance.STK_EXCHANGE_TRADE_INFO).filter(finance.STK_EXCHANGE_TRADE_INFO.date>='2015-01-01').limit(4) +df=finance.run_query(q) +print(df) + + id exchange_code exchange_name date total_market_cap \ +0 14847 322002 上海A股 2015-01-05 252101.167063 +1 14848 322003 上海B股 2015-01-05 883.102583 +2 14849 322001 上海市场 2015-01-05 252984.269645 +3 14850 322006 中小企业板 2015-01-05 51786.890000 + + circulating_market_cap volume money deal_number pe_average \ +0 228118.117416 5.321700e+06 5504.189763 1800.6098 16.576 +1 883.102583 7.334709e+03 4.510566 3.7579 15.987 +2 229001.219999 5.335211e+06 5511.112029 1804.4529 16.574 +3 36548.430000 5.987000e+05 845.890000 381.6300 41.660 + + turnover_ratio +0 2.1486 +1 0.4856 +2 2.1385 +3 NaN +``` + +### 市场通数据(含南北向资金数据) + +表名描述STK_AH_PRICE_COMP市场通AH股价格对比 / 上市至今,交易日20:30-06:30更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_AH_PRICE_COMP).filter(finance.STK_AH_PRICE_COMP.a_code==a_code).order_by(finance.STK_AH_PRICE_COMP.day).limit(n) +``` + + 记录同时在A股和H股上市的股票的价格比对。 **参数:** - **query(finance.STK_AH_PRICE_COMP)**:表示从finance.STK_AH_PRICE_COMP这张表中查询同时在A股和H股上市的股票的价格对比,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_AH_PRICE_COMP**:代表A股和H股的价格对比表,收录了同时在A股和H股上市的股票的价格对比情况,包括收盘价,涨跌幅等,表结构和字段信息如下: | 字段 | 名称 | 类型 | 非空 | 备注/示例 | | -------------- | --------- | ------------- | ---- | ---------------------------------------------- | | day | 日期 | date | Y | | | name | 股票简称 | varchar(32) | Y | | | a_code | a股代码 | varchar(12) | Y | '000002.XSHE' | | h_code | h股代码 | varchar(12) | Y | | | a_price | a股收盘价 | decimal(10,4) | | 人民币 | | h_price | h股收盘价 | decimal(10,4) | | 港币 | | a_quote_change | a股涨跌幅 | decimal(10,4) | | % | | h_quote_change | h股涨跌幅 | decimal(10,4) | | % | | h_a_comp | 比价(H/A) | decimal(10,4) | | A股人民币价格/(H股港币价格*港币兑人民币的汇率) | - **filter(finance.STK_AH_PRICE_COMP.a_code==a_code)**:指定筛选条件,通过finance.STK_AH_PRICE_COMP.a_code==a_code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_AH_PRICE_COMP.day>='2015-01-01',表示筛选日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **order_by(finance.STK_AH_PRICE_COMP.day)**: 将返回结果按日期排序 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +q=query(finance.STK_AH_PRICE_COMP).filter(finance.STK_AH_PRICE_COMP.a_code=='000002.XSHE').order_by(finance.STK_AH_PRICE_COMP.day).limit(4) +df=finance.run_query(q) +print(df) + + id day name a_code h_code a_price h_price \ +0 584546 2014-06-25 万科A 000002.XSHE 02202 8.13 13.28 +1 584547 2014-06-26 万科A 000002.XSHE 02202 8.26 14.18 +2 584548 2014-06-27 万科A 000002.XSHE 02202 8.32 13.92 +3 584549 2014-06-30 万科A 000002.XSHE 02202 8.27 13.76 + + a_quote_change h_quote_change h_a_comp +0 0.4944 0.00 0.7624 +1 1.5990 6.78 0.7251 +2 0.7264 -1.83 0.7453 +3 -0.6010 -1.15 0.7498 +``` + +STK_EL_CONST_CHANGE市场通合格证券变动记录 / 上市至今,交易日20:30-06:30更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_EL_CONST_CHANGE).filter(finance.STK_EL_CONST_CHANGE.code==code).limit(n)) +``` + + 记录沪港通、深港通和港股通的成分股的变动情况。 **参数:** - **query(finance.STK_EL_CONST_CHANGE)**:表示从finance.STK_EL_CONST_CHANGE这张表中查询沪港通、深港通和港股通成分股的变动记录,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_EL_CONST_CHANGE**:代表合资格证券变动表,记录沪港通、深港通和港股通成分股的变动情况,包括交易类型,变更日期,变更方向等,表结构和字段信息如下: | 字段 | 名称 | 类型 | 非空 | 备注/示例 | | ----------- | ------------------ | ------------ | ---- | ----------------------------------------- | | link_id | 交易类型编码 | int | Y | 同市场通编码 | | link_name | 交易类型名称 | varchar(12) | Y | | | code | 证券代码 | varchar(12) | Y | | | name_ch | 中文简称 | varchar(30) | | | | name_en | 英文简称 | varchar(120) | | | | exchange | 该股票所在的交易所 | varchar(12) | Y | 上海市场:XSHG/深圳市场:XSHE/香港市场:XHKG | | change_date | 变更日期 | date | Y | | | direction | 变更方向 | varchar(6) | Y | IN/OUT(分别为纳入和剔除) | - **filter(finance.STK_EL_CONST_CHANGE.code==code)**:指定筛选条件,通过finance.STK_EL_CONST_CHANGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EL_CONST_CHANGE.change_date>='2015-01-01',表示筛选变更日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **order_by(finance.STK_EL_CONST_CHANGE.change_date)**: 将返回结果按变更日期排序 - **limit(n):**限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +q=query(finance.STK_EL_CONST_CHANGE).filter(finance.STK_EL_CONST_CHANGE.link_id==310001).order_by(finance.STK_EL_CONST_CHANGE.change_date).limit(4) +df=finance.run_query(q) +print(df) + + id link_id link_name code name_ch name_en exchange change_date \ +0 536 310001 沪股通 600000.XSHG 浦发银行 None XSHG 2014-11-17 +1 537 310001 沪股通 600004.XSHG 白云机场 None XSHG 2014-11-17 +2 539 310001 沪股通 600007.XSHG 中国国贸 None XSHG 2014-11-17 +3 540 310001 沪股通 600008.XSHG 首创股份 None XSHG 2014-11-17 + + direction +0 IN +1 IN +2 IN +3 IN +``` + +STK_EXCHANGE_LINK_CALENDAR市场通交易日历 / 上市至今,交易日20:30-06:30更新 +``` + +from jqdatasdk import finance finance.run_query(query(finance.STK_EXCHANGE_LINK_CALENDAR).filter(finance.STK_EXCHANGE_LINK_CALENDAR.day==day).limit(n)) +``` + + 记录沪港通、深港通和港股通每天是否开市。 **参数:** - **query(finance.STK_EXCHANGE_LINK_CALENDAR)**:表示从finance.STK_EXCHANGE_LINK_CALENDAR这张表中查询市场沪港通、深港通和港股通交易日历的信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_EXCHANGE_LINK_CALENDAR**:代表市场通交易日历表,记录沪港通、深港通和港股通每天是否开市,包括交易日期,交易日类型等,表结构和字段信息如下: | **字段** | **名称** | **类型** | **非空** | **备注/示例** | +| --- | --- | --- | --- | --- | +| day | 交易日期 | date | Y | | +| link_id | 市场通编码 | int | Y | | +| link_name | 市场通名称 | varchar(32) | Y | 包括以下四个名称: 沪股通, 深股通, 港股通(沪), 港股通(深) | +| type_id | 交易日类型编码 | int | Y | 如下 交易日类型编码 | +| type | 交易日类型 | varchar(32) | Y | | + + **附注** 港股通(沪)和港股通(深)的交易日在深港通开展后是一致的。 交易日类型编码 | 交易日类型编码 | 交易日类型 | | -------------- | ---------- | | 312001 | 正常交易日 | | 312002 | 周末 | | 312003 | 全天休市 | | 312004 | 上午休市 | | 312005 | 下午休市 | 市场通编码 | 市场通编码 | 市场通名称 | | ---------- | ------------ | | 310001 | 沪股通 | | 310002 | 深股通 | | 310003 | 港股通(沪) | | 310004 | 港股通(深) | - **filter(finance.STK_EXCHANGE_LINK_CALENDAR.day==day)**:指定筛选条件,通过finance.STK_EXCHANGE_LINK_CALENDAR.day==day可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EXCHANGE_LINK_CALENDAR.type_id==312001,表示筛选交易日类型为正常交易日的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +q=query(finance.STK_EXCHANGE_LINK_CALENDAR).filter(finance.STK_EXCHANGE_LINK_CALENDAR.day>='2015-01-04').limit(4) +df=finance.run_query(q) +print(df) + + id day link_id link_name type_id type +0 1244833 2015-01-04 310001 沪股通 312003 休市 +1 148 2015-01-04 310003 港股通(沪) 312003 休市 +2 1244834 2015-01-05 310001 沪股通 312001 正常交易日 +3 149 2015-01-05 310003 港股通(沪) 312001 正常交易日 +``` + +STK_EL_TOP_ACTIVATE市场通十大成交活跃股 / 上市至今,交易日20:30-06:30更新 +``` + +from jqdatasdk import finance finance.run_query(query(finance.STK_EL_TOP_ACTIVATE).filter(finance.STK_EL_TOP_ACTIVATE.code==code).limit(n)) +``` + + 统计沪港通、深港通和港股通前十大交易活跃股的交易状况。 **参数:** - **query(finance.STK_EL_TOP_ACTIVATE)**:表示从finance.STK_EL_TOP_ACTIVATE这张表中查询沪港通、深港通和港股通前十大交易活跃股的交易状况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_EL_TOP_ACTIVATE**:代表市场通十大成交活跃股数据表,统计沪港通、深港通和港股通前十大交易活跃股的交易状况,包括买入金额,卖出金额等,表结构和字段信息如下: | **字段** | **名称** | **类型** | **非空** | **交易所** | **备注/示例** | +| --- | --- | --- | --- | --- | --- | +| day | 日期 | date | Y | | | +| link_id | 市场通编码 | int | Y | | | +| link_name | 市场通名称 | varchar(32) | Y | | 包括以下四个名称: 沪股通, 深股通, 港股通(沪),港股通(深) | +| rank | 排名 | int | Y | | | +| code | 股票代码 | varchar(12) | Y | | | +| name | 股票名称 | varchar(100) | Y | | | +| exchange | 交易所名称 | varchar(12) | Y | | | +| buy | 买入金额(元) | decimal(20, 4) | | Y | | +| sell | 卖出金额(元) | decimal(20, 4) | | Y | | +| total | 买入及卖出金额(元) | decimal(20, 4) | | Y | | + + 市场通编码 | 市场通编码 | 市场通名称 | | ---------- | ------------ | | 310001 | 沪股通 | | 310002 | 深股通 | | 310003 | 港股通(沪) | | 310004 | 港股通(深) | - **filter(finance.STK_EL_TOP_ACTIVATE.code==code)**:指定筛选条件,通过finance.STK_EL_TOP_ACTIVATE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EL_TOP_ACTIVATE.day>='2015-01-01',表示筛选日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +q=query(finance.STK_EL_TOP_ACTIVATE).filter(finance.STK_EL_TOP_ACTIVATE.code=='000002.XSHE').limit(10) +df=finance.run_query(q) +print(df) + + id day link_id link_name rank code name exchange \ +0 323010 2018-01-15 310002 深股通 2 000002.XSHE 万科A 深交所 +1 323050 2018-01-16 310002 深股通 2 000002.XSHE 万科A 深交所 +2 323089 2018-01-17 310002 深股通 1 000002.XSHE 万科A 深交所 +3 323132 2018-01-18 310002 深股通 4 000002.XSHE 万科A 深交所 +4 323213 2018-01-23 310002 深股通 6 000002.XSHE 万科A 深交所 +5 323254 2018-01-24 310002 深股通 7 000002.XSHE 万科A 深交所 +6 341170 2018-01-25 310002 深股通 7 000002.XSHE 万科A 深交所 +7 341209 2018-01-26 310002 深股通 6 000002.XSHE 万科A 深交所 +8 341248 2018-01-29 310002 深股通 5 000002.XSHE 万科A 深交所 +9 341444 2018-01-30 310002 深股通 5 000002.XSHE 万科A 深交所 + + buy sell total +0 124497968.0 326656496.0 451154464.0 +1 127460061.0 465933921.0 593393982.0 +2 157676630.0 542617116.0 700293746.0 +3 203996076.0 105819761.0 309815837.0 +4 141515523.0 190282952.0 331798475.0 +5 110052973.0 163321615.0 273374588.0 +6 179785644.0 120157651.0 299943295.0 +7 166750550.0 78471253.0 245221803.0 +8 157899558.0 170790111.0 328689669.0 +9 201547219.0 165714289.0 367261508.0 +``` + +STK_ML_QUOTA市场通成交与额度信息 / 上市至今,交易日20:30-06:30更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_ML_QUOTA).filter(finance.STK_ML_QUOTA.day==day).limit(n)) +``` + + 记录沪股通、深股通和港股通每个交易日的成交与额度的控制情况。 **参数:** - **query(finance.STK_ML_QUOTA)**:表示从finance.STK_ML_QUOTA这张表中查询沪港通、深港通和港股通的成交与额度信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_ML_QUOTA**:代表了市场通成交与额度信息表,记录了沪港通、深港通和港股通成交与额度的信息,包括买入、卖出等,表结构和字段信息如下: | **字段** | **名称** | **类型** | **备注/示例** | +| --- | --- | --- | --- | +| day | 交易日期 | date | | +| link_id | 市场通编码 | int | | +| link_name | 市场通名称 | varchar(32) | 包括以下四个名称: 沪股通,深股通,港股通(沪),港股通(深); 其中沪股通和深股通属于北向资金, 港股通(沪)和港股通(深)属于南向资金。 | +| currency_id | 货币编码 | int | | +| currency | 货币名称 | varchar(16) | | +| buy_amount | 买入成交额 | decimal(20,4) | 亿 | +| buy_volume | 买入成交数 | decimal(20,4) | 笔 | +| sell_amount | 卖出成交额 | decimal(20,4) | 亿 | +| sell_volume | 卖出成交数 | decimal(20,4) | 笔 | +| sum_amount | 累计成交额 | decimal(20,4) | 买入成交额+卖出成交额 | +| sum_volume | 累计成交数目 | decimal(20,4) | 买入成交量+卖出成交量 | +| quota | 总额度 | decimal(20, 4) | 亿(2016-08-16号起,沪港通和深港通不再设总额度限制) | +| quota_balance | 总额度余额 | decimal(20, 4) | 亿 | +| quota_daily | 每日额度 | decimal(20, 4) | 亿 | +| quota_daily_balance | 每日额度余额 | decimal(20, 4) | 亿 | + + **货币编码** | 货币编码 | 货币名称 | | -------- | -------- | | 110001 | 人民币 | | 110003 | 港元 | **市场通编码** | 市场通编码 | 市场通名称 | | ---------- | ------------ | | 310001 | 沪股通 | | 310002 | 深股通 | | 310003 | 港股通(沪) | | 310004 | 港股通(深) | - **filter(finance.STK_ML_QUOTA.day==day)**:指定筛选条件,通过finance.STK_ML_QUOTA.day==day可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_ML_QUOTA.link_id==310001,表示筛选市场通编码为310001(沪股通)的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +q=query(finance.STK_ML_QUOTA).filter(finance.STK_ML_QUOTA.day>='2015-01-01').limit(4) +df=finance.run_query(q) +print(df) + + id day link_id link_name currency_id currency_name buy_amount \ +0 1 2015-04-17 310003 港股通(沪) 110003 港元 81.2880 +1 2 2015-04-17 310001 沪股通 110001 人民币 58.9429 +2 3 2015-04-16 310003 港股通(沪) 110003 港元 56.1928 +3 4 2015-04-16 310001 沪股通 110001 人民币 45.3180 + + buy_volume sell_amount sell_volume sum_amount sum_volume quota \ +0 92742.0 62.8078 66353.0 144.0958 159095.0 None +1 119118.0 42.9775 81620.0 101.9204 200738.0 None +2 64867.0 53.9511 52591.0 110.1439 117458.0 None +3 98189.0 29.5743 86428.0 74.8923 184617.0 None + + quota_balance quota_daily quota_daily_balance +0 None 105.0 83.7100 +1 None 130.0 111.9694 +2 None 105.0 97.9000 +3 None 130.0 110.5500 +``` + +STK_EXCHANGE_LINK_RATE市场通汇率 / 上市至今,交易日20:30-06:30更新 +``` + +from jqdatasdk import finance finance.run_query(query(finance.STK_EXCHANGE_LINK_RATE).filter(finance.STK_EXCHANGE_LINK_RATE.day==day).limit(n)) +``` + + 包含2014年11月起人民币和港币之间的参考汇率/结算汇兑比率信息。 **参数:** - **query(finance.STK_EXCHANGE_LINK_RATE)**:表示从finance.STK_EXCHANGE_LINK_RATE这张表中查询汇率信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_EXCHANGE_LINK_RATE**:代表市场通汇率表,记录参考汇率/结算汇兑比率信息,包括买入参考/结算汇率、卖出参考/结算汇率等,表结构和字段信息如下: | 字段 | 名称 | 类型 | 非空 | 交易所 | 备注/示例 | | ----------------- | ------------ | -------------- | ---- | ------ | -------------------- | | day | 日期 | Date | Y | Y | | | link_id | 市场通编码 | int | Y | | | | link_name | 市场通名称 | varchar(32) | Y | | 以“港股通(沪)”为代表 | | domestic_currency | 本币 | varchar(12) | Y | | RMB | | foreign_currency | 外币 | varchar(12) | Y | | HKD | | refer_bid_rate | 买入参考汇率 | decimal(10, 5) | Y | Y | | | refer_ask_rate | 卖出参考汇率 | decimal(10, 5) | Y | Y | | | settle_bid_rate | 买入结算汇率 | decimal(10, 5) | Y | Y | | | settle_ask_rate | 卖出结算汇率 | decimal(10, 5) | Y | Y | | 市场通编码 | 市场通编码 | 市场通名称 | | ---------- | ------------ | | 310001 | 沪股通 | | 310002 | 深股通 | | 310003 | 港股通(沪) | | 310004 | 港股通(深) | - **filter(finance.STK_EXCHANGE_LINK_RATE.day==day)**:指定筛选条件,通过finance.STK_EXCHANGE_LINK_RATE.day==day可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EXCHANGE_LINK_RATE.link_id==310001,表示筛选市场通编码为310001(沪股通)的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +q=query(finance.STK_EXCHANGE_LINK_RATE).filter(finance.STK_EXCHANGE_LINK_RATE.day>='2015-01-01').limit(4) +df=finance.run_query(q) +print(df) + + id day link_id link_name domestic_currency foreign_currency \ +0 31 2015-01-05 310003 港股通(沪) RMB HKD +1 32 2015-01-06 310003 港股通(沪) RMB HKD +2 33 2015-01-07 310003 港股通(沪) RMB HKD +3 34 2015-01-08 310003 港股通(沪) RMB HKD + + refer_bid_rate refer_ask_rate settle_bid_rate settle_ask_rate +0 0.7774 0.8254 0.80317 0.80283 +1 0.7785 0.8267 0.80307 0.80213 +2 0.7777 0.8259 0.80197 0.80163 +3 0.7773 0.8253 0.80116 0.80144 +``` + +STK_HK_HOLD_INFO沪深港通持股数据 / 上市至今,交易日20:30-06:30更新 +``` + +from jqdatasdk import finance +df=finance.run_query(query(finance.STK_HK_HOLD_INFO).filter(finance.STK_HK_HOLD_INFO.link_id==310001)) +print(df) +``` + + 记录了北向资金(沪股通、深股通)和南向资金港股通的持股数量和持股比例 **参数:** - **query(finance.STK_HK_HOLD_INFO)**:表示从finance.STK_HK_HOLD_INFO这张表中查询沪深港通的持股数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号分隔进行提取;如query(finance.STK_HK_HOLD_INFO.code)。query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411)。 - **finance.STK_HK_HOLD_INFO**:收录了沪深港通每日的持股数量和持股比例数据,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 能否为空 | 注释 | +| --- | --- | --- | --- | --- | +| day | 日期 | date | N | | +| link_id | 市场通编码 | int | N | 三种类型:310001-沪股通,310002-深股通,310005-港股通 | +| link_name | 市场通名称 | varchar(32) | N | 三种类型:沪股通,深股通,港股通 | +| code | 股票代码 | varchar(12) | N | | +| name | 股票名称 | varchar(100) | N | | +| share_number | 持股数量 | int | | 单位:股,于中央结算系统的持股量 | +| share_ratio | 持股比例 | decimal(10,4) | | 单位:%,沪股通:占于上交所上市及交易的A股总数的百分比; 深股通:占于深交所上市及交易的A股总数的百分比; 港股通:占已发行股份百分比 | + + **市场通编码** | 市场通编码 | 市场通名称 | | ---------- | ------------ | | 310001 | 沪股通 | | 310002 | 深股通 | | 310005 | 港股通 | - **filter(finance.STK_HK_HOLD_INFO.link_id==310001)**:指定筛选条件,通过finance.STK_HK_HOLD_INFO.link_id==310001可以指定查询沪股通的持股数据;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_HK_HOLD_INFO.day=='2019-03-01',指定获取2019年3月1日的沪深港通持股数据。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. 为了防止返回数据量过大, 我们每次最多返回5000行 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#获取北向资金沪股通的持股数据 +df=finance.run_query(query(finance.STK_HK_HOLD_INFO).filter(finance.STK_HK_HOLD_INFO.link_id==310001).order_by(finance.STK_HK_HOLD_INFO.day.desc())) +print(df[:4]) + + id day link_id link_name code name share_number \ +0 3070982 2021-03-20 310001 沪股通 605222.XSHG 起帆电缆 161022 +1 3070981 2021-03-20 310001 沪股通 605199.XSHG 葫芦娃 66103 +2 3070980 2021-03-20 310001 沪股通 605198.XSHG 德利股份 90174 +3 3070979 2021-03-20 310001 沪股通 605168.XSHG 三人行 269393 + + share_ratio +0 0.32 +1 0.16 +2 0.45 +3 1.56 +``` + +### 行业分类与概念分类 + +#### 行业概念分类 + +- **更新时间:2005至今,8:00更新** + +方法描述get_industries 行业列表 +``` + +get_industries(name='zjw', date=None) +``` + + 按照行业分类获取行业列表。 **参数** - name: 行业代码,默认值为'zjw',其他行业取值如下: - "sw_l1": 申万一级行业 - "sw_l2": 申万二级行业 - "sw_l3": 申万三级行业 - "jq_l1": 聚宽一级行业 - "jq_l2": 聚宽二级行业 - "zjw": 证监会行业 - date: 获取数据的日期,默认为None,返回历史上所有行业;传入date,返回date当天存在的行业 **返回值** - pandas.DataFrame, 各 column 的含义如下: - index: 行业代码 - name: 行业名称 - start_date: 开始日期 +``` + +# 获取2020-05-07当天证监会行业行业列表 +get_industries(name='zjw', date="2020-05-07")[:5] + + name start_date +L72 商务服务业 1996-08-29 +L71 租赁业 1997-01-30 +G53 铁路运输业 1998-05-11 +G57 管道运输业 1996-11-04 +G56 航空运输业 1997-11-05 +``` + +get_industry_stocks 行业成份股 +``` + +get_industry_stocks(industry_code, date=None) +``` + + 获取在给定日期一个行业的所有股票,行业分类列表见数据页面-[行业概念数据](https://www.joinquant.com/help/api/help?name=plateData)。 **参数** - industry_code: 行业编码 - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None. **返回** 返回股票代码的list **示例** +``` + +# 获取计算机/互联网行业的成分股 +stocks = get_industry_stocks('I64') +print(stocks[:5]) + +# 输出 +['000503.XSHE', '000606.XSHE', '000676.XSHE', '000835.XSHE', '002072.XSHE'] +``` + +get_concepts 概念列表 +``` + +get_concepts() +``` + + 获取概念板块列表 **返回值** - pandas.DataFrame, 各 column 的含义如下: - index: 概念代码 - name: 概念名称 - start_date: 开始日期 +``` + +df=get_concepts()[:5] +print(df) + + name start_date +SC0001 石墨烯 2016-07-31 +SC0002 阿里 2016-07-31 +SC0003 腾讯 2017-12-26 +SC0004 百度 2018-06-11 +SC0005 华为 2018-12-24 +``` + +get_concept_stocks 概念成分股 +``` + +get_concept_stocks(concept_code, date=None) +``` + + 获取在给定日期一个概念板块的所有股票,概念板块分类列表见数据页面-[行业概念数据](https://www.joinquant.com/help/api/help?name=plateData)。 **参数** - concept_code: 概念板块编码 - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None. **返回** 返回股票代码的list **示例** +``` + +# 获取风力发电概念板块的成分股 +stocks = get_concept_stocks('SC0084') +print(stocks[:5]) +#输出 +['000027.XSHE', '000039.XSHE', '000065.XSHE', '000099.XSHE', '000155.XSHE'] +``` + +get_industry 查询股票所属行业 +``` + +get_industry(security, date=None) +``` + + **参数** - security:标的代码,类型为字符串,形式如"000001.XSHE";或为包含标的代码字符串的列表,形如["000001.XSHE", "000002.XSHE"] - date:查询的日期。默认为None,指定查询当天数据。类型为字符串,形如"2018-06-01"或"2018-06-01 09:00:00";或为datetime.datetime对象和datetime.date。注意传入对象的时分秒将被忽略。 **返回** 返回结果是一个dict,key是传入的股票代码 **示例** **获取一只股票所属行业** +``` + +#获取贵州茅台("600519.XSHG")的所属行业数据 +d = get_industry("600519.XSHG",date="2018-06-01") +print(d) + +# 输出 +{'600519.XSHG': {'sw_l1': {'industry_code': '801120', 'industry_name': '食品饮料I'}, 'sw_l2': {'industry_code': '801123', 'industry_name': '饮料制造II'}, 'sw_l3': {'industry_code': '851231', 'industry_name': '白酒III'}, 'zjw': {'industry_code': 'C15', 'industry_name': '酒、饮料和精制茶制造业'}, 'jq_l2': {'industry_code': 'HY478', 'industry_name': '白酒与葡萄酒指数'}, 'jq_l1': {'industry_code': 'HY005', 'industry_name': '日常消费指数'}}} +``` + + **同时获取多只股票的所属行业信息** +``` + +获取平安银行和万科企业所属行业 +stock_list = ['000001.XSHE','000002.XSHE'] +d = get_industry(security=stock_list, date="2018-06-01") +print(d) + +# 输出 +{'000001.XSHE': {'jq_l1': {'industry_code': 'HY007', 'industry_name': '金融地产'}, 'sw_l1': {'industry_code': '801780', 'industry_name': '银行I'}, 'sw_l3': {'industry_code': '851911', 'industry_name': '银行III'}, 'jq_l2': {'industry_code': 'HY07001', 'industry_name': '综合性银行'}, 'sw_l2': {'industry_code': '801192', 'industry_name': '银行II'}, 'zjw': {'industry_code': 'J66', 'industry_name': '货币金融服务'}}, '000002.XSHE': {'zjw': {'industry_code': 'K70', 'industry_name': '房地产业'}, 'sw_l1': {'industry_code': '801180', 'industry_name': '房地产I'}, 'sw_l2': {'industry_code': '801181', 'industry_name': '房地产开发II'}, 'sw_l3': {'industry_code': '851811', 'industry_name': '房地产开发III'}, 'jq_l2': {'industry_code': 'HY11001', 'industry_name': '房地产开发'}, 'jq_l1': {'industry_code': 'HY011', 'industry_name': '房地产'}}} +``` + + **dict转化为dataframe** +``` + +import pandas as pd +stock_list = ['000001.XSHE','000002.XSHE'] +d = get_industry(security=stock_list, date="2018-06-01") +df=pd.concat({k:pd.DataFrame(v) for k ,v in d.items()}) +df + +# 输出 + + sw_l1 sw_l2 sw_l3 zjw jq_l2 jq_l1 +000001.XSHE industry_code 801780 801192 851911 J66 HY07001 HY007 + industry_name 银行I 银行II 银行III 货币金融服务 综合性银行 金融 +000002.XSHE industry_code 801180 801181 851811 K70 HY11001 HY011 + industry_name 房地产I 房地产开发II 房地产开发III 房地产业 房地产开发 房地产 +``` + +get_concept 股票所属概念板块 +``` + +get_concept(security, date=None) +``` + + 获取股票所属概念板块。返回一个dict,key为标的代码,value详见示例。 - security:标的代码或包含标的代码的列表 - query_dt:时刻,datetime或时刻形式的字符串,只传入日期代表日内时间为00:00:00. - security: 标的代码或标的列表 - date: 要查询的日期,日期字符串/date对象/datetime对象,注意传入datetime对象时忽略日内时间;默认值为None,研究中默认值为当天,回测中默认值会随着回测日期变化而变化, 等于context.current_dt。 示例: +``` + +# code是传入的股票代码;多个code返回嵌套的多个字典; +# ‘jq_concept’代表聚宽概念; +# XX是code所在的概念代码; +# YY是code所在的概念名称; + +{code: { 'jq_concept':[ + { 'concept_code': XX1; 'concept_name': YY1 }, + { 'concept_code': XX2; 'concept_name': YY2 }, + { 'concept_code': XX3; 'concept_name': YY3 }] + } +} +``` + + **示例** +``` + +dict1 = get_concept('000001.XSHE', date='2019-07-15') +print(dict1) + +#输出 +{'000001.XSHE': {'jq_concept': [{'concept_name': 'XXXX1', 'concept_code': 'YYYY1'}, {'concept_name': 'XXXX2', 'concept_code': 'YYYY2'} +.... + +]}} +``` + +#### 申万行业指数数据 + +- **更新时间:上市至今,交易日17:30更新** + +方法描述SW1_DAILY_PRICE 日行情数据 +``` + +df=finance.run_query(query(finance.SW1_DAILY_PRICE).filter(finance.SW1_DAILY_PRICE.code=='801010').limit(n)) +print(df) +``` + + 记录了申万一级行业指数的历史日行情数据,每日18:00更新。 **参数:** - **query(finance.SW1_DAILY_PRICE)**:表示从finance.SW1_DAILY_PRICE这张表中查询申万一级行业指数的历史日行情数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号分隔进行提取;如query(finance.SW1_DAILY_PRICE.code)。query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411)。 - **finance.SW1_DAILY_PRICE**:代表申万一级行业日行情数据表,收录了申万一级行业指数的历史日行情数据,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 能否为空 | 注释 | | ---------- | ---------- | ------------- | -------- | ------------------------------ | | date | 交易日 | date | N | | | code | 指数编码 | varchar(12) | N | 对应申万一级行业指数编码 | | name | 指数名称 | varchar(20) | N | | | open | 开盘指数 | decimal(20,4) | | | | high | 最高指数 | decimal(20,4) | | | | low | 最低指数 | decimal(20,4) | | | | close | 收盘指数 | decimal(20,4) | | | | volume | 成交量 | decimal(20,4) | | 单位:股 | | money | 成交额 | decimal(20,4) | | 单位:元 | | change_pct | 涨跌幅 | decimal(10,4) | | 单位:% | - **filter(finance.SW1_DAILY_PRICE.code==801010)**:指定筛选条件,通过finance.SW1_DAILY_PRICE.code==801010可以查询指定行业(如农林牧渔801010)的日行情数据;除此之外,还可以对表中其他字段指定筛选条件,如finance.SW1_DAILY_PRICE.date=='2019-03-01',指定获取2019年3月1日的申万一级行业日行情数据。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. 为了防止返回数据量过大, 我们每次最多返回5000行 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +# 查询最近5个交易日申万一级行业指数-农林牧渔行业(801010)的日行情数据。 +df=finance.run_query(query(finance.SW1_DAILY_PRICE).filter(finance.SW1_DAILY_PRICE.code=='801010').order_by(finance.SW1_DAILY_PRICE.date.desc()).limit(5)) +print(df) + + id date code name open high low close \ +0 1890712 2021-03-19 801010 农林牧渔 3994.62 4010.07 3938.46 3957.44 +1 1890684 2021-03-18 801010 农林牧渔 4048.63 4052.32 4003.87 4041.50 +2 1890656 2021-03-17 801010 农林牧渔 3981.76 4066.81 3975.37 4053.18 +3 1890628 2021-03-16 801010 农林牧渔 3947.34 3964.11 3906.32 3935.19 +4 1890572 2021-03-15 801010 农林牧渔 3985.62 3991.58 3899.39 3935.94 + + volume money change_pct +0 1.309043e+09 1.599323e+10 -2.08 +1 1.503715e+09 1.631409e+10 -0.29 +2 1.596152e+09 1.984027e+10 3.00 +3 9.945891e+08 1.404828e+10 -0.02 +4 1.146963e+09 1.720195e+10 -2.35 +``` + +## 财务数据 + +### 单季度/年度财务数据 + +#### 查询方法(含新接口) + +表名描述(查表)/ 更新时间及频率get_fundamentals 查询财务数据(附综合案例) +``` + +get_fundamentals(query_object, date=None, statDate=None) +``` + + 查询财务数据,详细的数据字段描述请点击[财务数据文档](https://www.joinquant.com/help/api/help?name=Stock#%E8%B4%A2%E5%8A%A1%E6%95%B0%E6%8D%AE%E5%88%97%E8%A1%A8)查看 date和statDate参数只能传入一个: - 传入date时, 查询**指定日期date收盘后所能看到的最近(对市值表来说, 最近一天, 对其他表来说, 最近一个季度)的数据**, 我们会查找上市公司在这个日期之前(包括此日期)发布的数据, 不会有未来函数. - 传入statDate时, 查询 **statDate 指定的季度或者年份的财务数据**. **注意:** 1. 由于公司发布财报不及时, 一般是看不到当季度或年份的财务报表的, 回测中使用这个数据可能会有未来函数, 请注意规避. 2. 由于估值表每天更新, 当按季度或者年份查询时, 返回季度或者年份最后一天的数据 3. 由于“资产负债数据”这个表是存量性质的, 查询年度数据是返回第四季度的数据。 4. 银行业、券商、保险专项数据只有年报数据,需传入statDate参数,当传入 date 参数 或 statDate 传入季度时返回空,请自行避免未来函数。 当 date 和 statDate 都不传入时, 相当于使用 date 参数, date 的默认值下面会描述. **参数** - query_object: 一个sqlalchemy.orm.query.Query对象,可以通过全局的 query 函数获取 Query 对象,[query简易教程](https://www.joinquant.com/view/community/detail/16411) - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 如果传入的 date 不是交易日, 则使用这个日期之前的最近的一个交易日 - statDate: 财报统计的季度或者年份, 一个字符串, 有两种格式: 1. 季度: 格式是: **年 + 'q' + 季度序号**, 例如: '2015q1', '2013q4'. 2. 年份: 格式就是年份的数字, 例如: '2015', '2016'. **返回** 返回一个 [pandas.DataFrame], 每一行对应数据库返回的每一行(可能是几个表的联合查询结果的一行), 列索引是你查询的所有字段 注意: 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 当相关股票上市前、退市后,财务数据返回各字段为空 **综合案例** **获取多只股票在某一天的指标数据** +``` + +# 获取多只股票在某一日期的市值, 利润 +df = get_fundamentals(query( + valuation, income + ).filter( + # 这里不能使用 in 操作, 要使用in_()函数 + valuation.code.in_(['000001.XSHE', '600000.XSHG']) + ), date='2015-10-15') +print(df) + + id code pe_ratio turnover_ratio pb_ratio ps_ratio \ +0 5024884 000001.XSHE 7.4984 0.4116 1.0593 1.8748 +1 5031852 600000.XSHG 6.1440 0.0000 1.1596 2.1996 + + pcf_ratio capitalization market_cap circulating_cap ... \ +0 1.0246 1430867.625 1598.2791 1180405.500 ... +1 8.1501 1865347.125 2965.9021 1865347.125 ... + + income_tax_expense net_profit np_parent_company_owners \ +0 1.866000e+09 5.956000e+09 5.956000e+09 +1 3.915000e+09 1.281700e+10 1.270900e+10 + + minority_profit basic_eps diluted_eps other_composite_income \ +0 0.0 0.430 0.430 2.680000e+08 +1 108000000.0 0.681 0.681 1.614000e+09 + + total_composite_income ci_parent_company_owners ci_minority_owners +0 6.224000e+09 NaN 0.0 +1 1.443100e+10 NaN 108000000.0 + +[2 rows x 56 columns] +``` + + **根据条件,筛选数据** +``` + +# 选出所有的总市值大于1000亿元, 市盈率小于10, 基本每股收益大于0.8的股票 +df = get_fundamentals(query( + valuation.code, valuation.market_cap, valuation.pe_ratio, income.basic_eps ,income.total_operating_revenue + ).filter( + + valuation.market_cap > 1000, + valuation.pe_ratio < 10, + income.basic_eps > 0.8 + ).order_by( + # 按市值降序排列 + valuation.market_cap.desc() + )) +print(df) + + code market_cap pe_ratio basic_eps total_operating_revenue +0 601166.XSHG 4908.9414 7.3679 0.92 5.176600e+10 +1 600585.XSHG 2754.5774 7.8412 1.63 4.997668e+10 +``` + + **使用or_函数,筛选数据** +``` + +# 使用 or_ 函数: 查询总市值大于1000亿元 或者 市盈率小于10的股票 或者 基本每股收益大于0.5 +from sqlalchemy.sql.expression import or_ +df=get_fundamentals(query( + valuation.code,valuation.pe_ratio,valuation.market_cap,income.basic_eps ,income.total_operating_revenue + ).filter( + or_( + valuation.market_cap > 1000, + valuation.pe_ratio < 10, + income.basic_eps > 0.5 + ) + ).order_by( + # 按市值降序排列 + valuation.market_cap.desc())) +print(df[:5]) + + code pe_ratio market_cap basic_eps total_operating_revenue +0 600519.XSHG 56.0766 24998.2109 8.94 2.394051e+10 +1 601398.XSHG 6.6798 19317.2188 0.22 2.172370e+11 +2 601939.XSHG 7.4127 18325.8047 0.27 1.823260e+11 +3 601318.XSHG 10.1966 14591.2891 2.27 3.012450e+11 +4 600036.XSHG 13.9336 13563.2334 0.77 6.905200e+10 +``` + + **查询季报, 放到数组中** +``` + +# 查询平安银行2014年四个季度的季报, 放到数组中 +q = query( + income.statDate, + income.code, + income.basic_eps, + balance.cash_equivalents, + cash_flow.goods_sale_and_service_render_cash + ).filter( + income.code == '000001.XSHE', + ) + +rets = [get_fundamentals(q, statDate='2018q'+str(i)) for i in range(1, 5)] +print(rets) + +[ statDate code basic_eps cash_equivalents \ +0 2018-03-31 000001.XSHE 0.33 2.819490e+11 + + goods_sale_and_service_render_cash +0 NaN , statDate code basic_eps cash_equivalents \ +0 2018-06-30 000001.XSHE 0.4 3.074000e+11 + + goods_sale_and_service_render_cash +0 NaN , statDate code basic_eps cash_equivalents \ +0 2018-09-30 000001.XSHE 0.41 2.876480e+11 + + goods_sale_and_service_render_cash +0 NaN , statDate code basic_eps cash_equivalents \ +0 2018-12-31 000001.XSHE 0.25 2.785280e+11 + + goods_sale_and_service_render_cash +0 NaN ] +``` + + **查询年报** +``` + +# 查询平安银行2018年的年报 +q = query( + income.statDate, + income.code, + income.basic_eps, + cash_flow.goods_sale_and_service_render_cash + ).filter( + income.code == '000001.XSHE', + ) + +ret = get_fundamentals(q, statDate='2018') +print(ret) + + statDate code basic_eps goods_sale_and_service_render_cash +0 2018-12-31 000001.XSHE 1.39 NaN +``` + +get_fundamentals_continuously多日财务数据 +``` + +get_fundamentals_continuously(query_object, end_date=None,count=1,panel=True) +``` + + 查询财务数据,详细的数据字段描述请点击财务数据文档查看 **参数** - query_object: 一个sqlalchemy.orm.query.Query对象,可以通过全局的 query 函数获取 Query 对象,[query简易教程](https://www.joinquant.com/view/community/detail/16411)。 - end_date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, 如果传入的 date 不是交易日, 则使用这个日期之前的最近的一个交易日 - count: 获取 end_date 前 count 个日期的数据 **返回** 返回一个 [pandas.Panel],如果您的环境pandas大于0.25 ,将强制返回dataframe。 **出于性能方面考虑,我们做出了返回总条数不超过5000条的限制。 也就是说:查询的股票数量\*count 要小于5000。 否则,返回的数据会不完整。** **示例** +``` + +q = query(valuation.turnover_ratio, + valuation.market_cap, + indicator.eps + ).filter(valuation.code.in_(['000001.XSHE', '600000.XSHG'])) +df = get_fundamentals_continuously(q, end_date='2017-12-25', count=5,panel=False)[:5] +print(df) + +# 输出 + day code turnover_ratio market_cap eps +0 2017-12-19 000001.XSHE 1.4174 2280.2307 0.38 +1 2017-12-20 000001.XSHE 0.6539 2276.7964 0.38 +2 2017-12-21 000001.XSHE 0.8779 2324.8738 0.38 +3 2017-12-22 000001.XSHE 0.4391 2321.4397 0.38 +4 2017-12-25 000001.XSHE 0.9372 2275.0796 0.38 +``` + +⭐ get_valuation 获取多个标的在指定交易日范围内的市值表数据 +``` + +from jqdatasdk import * +get_valuation(security, start_date=None, end_date=None, fields=None, count=None) +``` + + 获取多个标的在指定交易日范围内的市值表数据 ##### **参数** - security: 标的code字符串列表或者单个标的字符串 - end_date: 查询结束时间 - start_date: 查询开始时间,不能与count共用 - count: 表示往前查询每一个标的count个交易日的数据,如果期间标的停牌,则该标的返回的市值数据数量小于count - fields: 财务数据中市值表的字段,返回结果中总会包含code、day字段,可用字段如下: |code| 股票代码 带后缀.XSHE/.XSHG| |day |日期 取数据的日期| | capitalization |总股本(万股)| |circulating_cap| 流通股本(万股)| |market_cap |总市值(亿元)| |circulating_market_cap| 流通市值(亿元)| |turnover_ratio |换手率(%)| |pe_ratio |市盈率(PE, TTM)| |pe_ratio_lyr |市盈率(PE)| |pb_ratio |市净率(PB)| | ps_ratio| 市销率(PS, TTM)| |pcf_ratio| 市现率(PCF, 现金净流量TTM)| ##### **返回值** - 返回一个dataframe,索引默认是pandas的整数索引,返回的结果中总会包含code、day字段。 #### **注意** - 每次最多返回5000条数据,更多数据需要根据标的或者时间分多次获取 ##### **示例** +``` + +from jqdatasdk import * +# 传入单个标的 +df1 = get_valuation('000001.XSHE', end_date="2019-11-18", count=3, fields=['capitalization', 'market_cap']) +print(df1) + +# 传入多个标的 +df2 = get_valuation(['000001.XSHE', '000002.XSHE'], end_date="2019-11-18", count=3, fields=['capitalization', 'market_cap']) +print(df2) +``` + +⭐ get_history_fundamentals获取多个季度/年度的历史财务数据 获取多个季度/年度的三大财务报表和财务指标数据. 可指定单季度数据, 也可以指定年度数据。可以指定观察日期, 也可以指定最后一个报告期的结束日期 +``` + +get_history_fundamentals(security, fields, watch_date=None, stat_date=None, count=1, interval='1q', stat_by_year=False) +``` + + ##### **参数** - security:股票代码或者股票代码列表。 - fields:要查询的财务数据的列表, 季度数据和年度数据可选择的列不同。示例: [balance.cash_equivalents, cash_flow.net_deposit_increase, income.total_operating_revenue] - watch_date:观察日期, 如果指定, 将返回 watch_date 日期前(包含该日期)发布的报表数据 - stat_date:统计日期, 可以是 '2019'/'2019q1'/'2018q4' 格式, 如果指定, 将返回 stat_date 对应报告期及之前的历史报告期的报表数据 - watch_date 和 stat_date 只能指定一个, 而且必须指定一个 - 如果没有 stat_date 指定报告期的数据, 则该数据会缺失一行. - count:查询历史的多个报告期时, 指定的报告期数量. 如果股票历史报告期的数量小于 count, 则该股票返回的数据行数将小于 count - interval:查询多个报告期数据时, 指定报告期间隔, 可选值: '1q'/'1y', 表示间隔一季度或者一年, 举例说明: - stat_date='2019q1', interval='1q', count=4, 将返回 2018q2,2018q3,2018q4,2019q1 的数据 - stat_date='2019q1', interval='1y', count=4, 将返回 2016q1,2017q1,2018q1,2019q1 的数据 - stat_by_year=True, stat_date='2018', interval='1y', count=4 将返回 2015/2016/2017/2018 年度的年报数据 - stat_by_year:bool, 是否返回年度数据. 默认返回的按季度统计的数据(比如income表中只有单个季度的利润). - 如果是True: - interval必须是 '1y' - 如果指定了 stat_date 的话, stat_date 必须是一个代表年份整数、字符串, 表明统计的年份,比如2019, "2019"。但不能是"20191q"这种格式。 - fields 可以选择 balance/income/cash_flow/indicator/bank_indicator/security_indicator/insurance_indicator 表中的列 - 如果是False: fields只能选择balance/income/cash_flow/indicator 表中的列 ##### **返回值** pandas.DataFrame, 数据库查询结果. 数据格式同 get_fundamentals. 每个股票每个报告期(一季度或者一年)的数据占用一行. ##### **注意** - 不支持valuation市值表 - 推荐用户对结果使用pandas的[groupby](https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.DataFrame.groupby.html)方法来进行分组分析数据 - 每次最多返回50000条数据,更多数据需要根据标的或者时间分多次获取 ##### **示例** +``` + +from jqdatasdk import * +security = ['000001.XSHE', '600000.XSHG'] +df = get_history_fundamentals(security, fields=[balance.cash_equivalents, + cash_flow.net_deposit_increase, income.total_operating_revenue], + watch_date=None, stat_date='2019q1', count=5, interval='1q', stat_by_year=False) +print(df) +print(df.groupby('code').mean()) +``` + +#### 财务及估值数据 + +- **更新时间:2005至今, 每天24:00更新** + +表名描述(查表)valuation估值数据(市值、市盈率、市净率等) / 2005至今,每天24:00更新 +``` + +get_fundamentals(query_object, date=None, statDate=None) +``` + + 市值数据每天更新,可以使用get_fundamentals(query(valuation),date),指定date为某一交易日,获取该交易日的估值数据。查询方法详见[get_fundamentals()接口说明](https://www.joinquant.com/help/api/help?name=JQData#get_fundamentals-%E6%9F%A5%E8%AF%A2%E8%B4%A2%E5%8A%A1%E6%95%B0%E6%8D%AE) **注意**: (详细内容可看get_fundamentals接口) - date和statDate参数只能传入一个: - 传入date时, 查询指定日期date收盘后所能看到的最近(对市值表来说, 最近一天, 对其他表来说, 最近一个季度)的数据 - statDate: 财报统计的季度或者年份,。 季度: 格式是**年 + 'q' + 季度序号**, 例如: **'2015q1', '2013q4'**. 年份: 格式就是**年份的数字**, 例如:**'2015', '2016'**. **表名: valuation** | 列名 | 列的含义 | 解释 | 公式 | | ---------------------- | -------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | code | 股票代码 | 带后缀.XSHE/.XSHG | | | day | 日期 | 取数据的日期 | | | capitalization | 总股本(万股) | 公司已发行的普通股股份总数(包含A股,B股和H股的总股本) | | | circulating_cap | 流通股本(万股) | 公司已发行的境内上市流通、以人民币兑换的股份总数(A股市场的流通股本) | | | market_cap | 总市值(亿元) | A股收盘价*已发行股票总股本(A股+B股+H股) | | circulating_market_cap | 流通市值(亿元) | 流通市值指在某特定时间内当时可交易的流通股股数乘以当时股价得出的流通股票总价值。 | A股市场的收盘价*A股市场的流通股数 | | turnover_ratio | 换手率(%) | 指在一定时间内市场中股票转手买卖的频率,是反映股票流通性强弱的指标之一。 | 换手率=[指定交易日成交量(手)*100/截至该日股票流通股本(股)]*100% | | pe_ratio | 市盈率(PE, TTM) | 每股市价为每股收益的倍数,反映投资人对每元净利润所愿支付的价格,用来估计股票的投资报酬和风险 | 市盈率(PE,TTM)=(股票在指定交易日期的收盘价 * 当日人民币外汇挂牌价* 截止当日公司总股本)/归属于母公司股东的净利润TTM。 | | pe_ratio_lyr | 市盈率(PE) | 以上一年度每股盈利计算的静态市盈率. 股价/最近年度报告EPS | 市盈率(PE)=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/归属母公司股东的净利润。 | | pb_ratio | 市净率(PB) | 每股股价与每股净资产的比率 | 市净率=(股票在指定交易日期的收盘价 * 截至当日公司总股本)/(归属母公司股东的权益MRQ-其他权益工具)。 | | ps_ratio | 市销率(PS, TTM) | 市销率为股票价格与每股销售收入之比,市销率越小,通常被认为投资价值越高。 | 市销率TTM=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/营业总收入TTM | | pcf_ratio | 市现率(PCF, 现金净流量TTM) | 每股市价为每股现金净流量的倍数 | 市现率=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/现金及现金等价物净增加额TTM | **获取最近日期所有股票的市值数据** +``` + +# 获取最近日期的市值数据 +df=get_fundamentals(query(valuation)) +print(df[:4]) + + id code pe_ratio turnover_ratio pb_ratio ps_ratio \ +0 64650881 000001.XSHE 14.4095 NaN 1.4169 2.7148 +1 64649277 000002.XSHE 9.0344 NaN 1.8051 0.9491 +2 64649388 000004.XSHE 40.2554 NaN 1.9572 19.2944 +3 64649010 000005.XSHE 22.7056 NaN 1.4351 11.5734 + + pcf_ratio capitalization market_cap circulating_cap \ +0 4.1729 1.940592e+06 4168.3911 1.940576e+06 +1 5.1463 1.161773e+06 3658.4238 9.714315e+05 +2 26.1566 1.650526e+04 28.3725 1.151256e+04 +3 -8155.7451 1.058537e+05 23.2878 1.057946e+05 + + circulating_market_cap day pe_ratio_lyr +0 4168.3560 2021-03-14 14.4095 +1 3059.0378 2021-03-14 9.4114 +2 19.7901 2021-03-14 915.4301 +3 23.2748 2021-03-14 13.3311 +``` + + **获取某一天所有的市值数据** +``` + +# 获取“2021-01-05”所有的市值数据 +get_fundamentals(query(valuation),date="2021-01-05")[:4] +``` + + **获取某只股票在某天的市值数据** +``` + +# 查询'000001.XSHE'的所有市值数据, 时间是2015-10-15 +q = query( + valuation +).filter( + valuation.code == '000001.XSHE' +) +df = get_fundamentals(q, '2015-10-15') +# 打印出总市值 +print(df['market_cap'][0]) +``` + +indicator财务指标数据 / 2005至今,每天24:00更新 按季度更新, 统计周期是一季度。可以使用**get_fundamentals(query_object, date=None, statDate=None)**查询,查询方法详见[get_fundamentals()接口说明](https://www.joinquant.com/help/api/help?name=JQData#get_fundamentals-%E6%9F%A5%E8%AF%A2%E8%B4%A2%E5%8A%A1%E6%95%B0%E6%8D%AE) **注意**: (详细内容可看get_fundamentals接口) - date和statDate参数只能传入一个: - 传入date时, 查询指定日期date收盘后所能看到的最近(对市值表来说, 最近一天, 对其他表来说, 最近一个季度)的数据 - statDate: 财报统计的季度或者年份,。 季度: 格式是**年 + 'q' + 季度序号**, 例如: **'2015q1', '2013q4'**. 年份: 格式就是**年份的数字**, 例如:**'2015', '2016'**. **表名: indicator** | 列名 | 列的含义 | 解释 | | ------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------ | | code | 股票代码 | 带后缀.XSHE/.XSHG | | pubDate | 日期 | 公司发布财报日期 | | statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | | eps | 每股收益EPS(元) | 每股收益(摊薄)=净利润/期末股本;分子从单季利润表取值,分母取季度末报告期股本值。 | | adjusted_profit | 扣除非经常损益后的净利润(元) | 非经常性损益这一概念是证监会在1999年首次提出的,当时将其定义为:公司正常经营损益之外的一次性或偶发性损益。《问答第1号》则指出:非经常性损益是公司发生的与经营业务无直接关系的收支;以及虽与经营业务相关,但由于其性质、金额或发生频率等方面的原因,影响了真实公允地反映公司正常盈利能力的各项收入。 | | operating_profit | 经营活动净收益(元) | 营业总收入-营业总成本 | | value_change_profit | 价值变动净收益(元) | 公允价值变动净收益+投资净收益+汇兑净收益 | | roe | 净资产收益率ROE(%) | 归属于母公司股东的净利润*2/(期初归属于母公司股东的净资产+期末归属于母公司股东的净资产) | | inc_return | 净资产收益率(扣除非经常损益)(%) | 扣除非经常损益后的净利润(不含少数股东损益)*2/(期初归属于母公司股东的净资产+期末归属于母公司股东的净资产) | | roa | 总资产净利率ROA(%) | 净利润*2/(期初总资产+期末总资产) | | net_profit_margin | 销售净利率(%) | 净利润/营业收入 | | gross_profit_margin | 销售毛利率(%) | 毛利/营业收入 | | expense_to_total_revenue | 营业总成本/营业总收入(%) | 营业总成本/营业总收入(%) | | operation_profit_to_total_revenue | 营业利润/营业总收入(%) | 营业利润/营业总收入(%) | | net_profit_to_total_revenue | 净利润/营业总收入(%) | 净利润/营业总收入(%) | | operating_expense_to_total_revenue | 营业费用/营业总收入(%) | 营业费用/营业总收入(%) | | ga_expense_to_total_revenue | 管理费用/营业总收入(%) | 管理费用/营业总收入(%) | | financing_expense_to_total_revenue | 财务费用/营业总收入(%) | 财务费用/营业总收入(%) | | operating_profit_to_profit | 经营活动净收益/利润总额(%) | 经营活动净收益/利润总额(%) | | invesment_profit_to_profit | 价值变动净收益/利润总额(%) | 价值变动净收益/利润总额(%) | | adjusted_profit_to_profit | 扣除非经常损益后的净利润/归属于母公司所有者的净利润(%) | 扣除非经常损益后的净利润/归属于母公司所有者的净利润(%) | | goods_sale_and_service_to_revenue | 销售商品提供劳务收到的现金/营业收入(%) | 销售商品提供劳务收到的现金/营业收入(%) | | ocf_to_revenue | 经营活动产生的现金流量净额/营业收入(%) | 经营活动产生的现金流量净额/营业收入(%) | | ocf_to_operating_profit | 经营活动产生的现金流量净额/经营活动净收益(%) | 经营活动产生的现金流量净额/经营活动净收益(%) | | inc_total_revenue_year_on_year | 营业总收入同比增长率(%) | 营业总收入同比增长率是企业在一定期间内取得的营业总收入与其上年同期营业总收入的增长的百分比,以反映企业在此期间内营业总收入的增长或下降等情况。 | | inc_total_revenue_annual | 营业总收入环比增长率(%) | 营业收入是指企业在从事销售商品,提供劳务和让渡资产使用权等日常经营业务过程中所形成的经济利益的总流入。环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | | inc_revenue_year_on_year | 营业收入同比增长率(%) | 营业收入,是指公司在从事销售商品、提供劳务和让渡资产使用权等日常经营业务过程中所形成的经济利益的总流入,而营业收入同比增长率,则是检验上市公司去年一年挣钱能力是否提高的标准,营业收入同比增长,说明公司在上一年度挣钱的能力加强了,营业收入同比下降,则说明公司的挣钱能力稍逊于往年。 | | inc_revenue_annual | 营业收入环比增长率(%) | 环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | | inc_operation_profit_year_on_year | 营业利润同比增长率(%) | 同比增长率就是指公司当年期的净利润和上月同期、上年同期的净利润比较。(当期的利润-上月(上年)当期的利润)/上月(上年)当期的利润=利润同比增长率。 | | inc_operation_profit_annual | 营业利润环比增长率(%) | 环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | | inc_net_profit_year_on_year | 净利润同比增长率(%) | (当期的净利润-上月(上年)当期的净利润)/上月(上年)当期的净利润绝对值=净利润同比增长率。 | | inc_net_profit_annual | 净利润环比增长率(%) | 环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | | inc_net_profit_to_shareholders_year_on_year | 归属母公司股东的净利润同比增长率(%) | 归属于母公司股东净利润是指全部归属于母公司股东的净利润,包括母公司实现的净利润和下属子公司实现的净利润;同比增长率,一般是指和去年同期相比较的增长率。同比增长 和上一时期、上一年度或历史相比的增长(幅度)。 | | inc_net_profit_to_shareholders_annual | 归属母公司股东的净利润环比增长率(%) | 环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | **获取某一天所有的财务指标数据** +``` + +# 获取“2021-01-05”所有的财务指标数据 +df=get_fundamentals(query(indicator),date="2021-01-05") +print(df[:4]) + + id code day pubDate statDate eps \ +0 45000708 000001.XSHE 2021-01-05 2020-10-22 2020-09-30 0.4493 +1 45590101 000002.XSHE 2021-01-05 2020-10-30 2020-09-30 0.6331 +2 45590317 000004.XSHE 2021-01-05 2020-10-30 2020-09-30 0.3324 +3 45406174 000005.XSHE 2021-01-05 2020-10-29 2020-09-30 0.0043 + + adjusted_profit operating_profit value_change_profit roe \ +0 8.730000e+09 1.041200e+10 8.570000e+08 2.46 +1 6.775110e+09 1.379713e+10 1.785868e+09 3.69 +2 5.469821e+07 6.525505e+07 NaN 3.86 +3 -1.787463e+07 -1.747028e+07 4.047380e+07 0.28 + + ... inc_total_revenue_year_on_year \ +0 ... 8.8400 +1 ... 12.4700 +2 ... 17929.4004 +3 ... -41.6200 + + inc_total_revenue_annual inc_revenue_year_on_year inc_revenue_annual \ +0 -5.36 8.8400 -5.36 +1 -3.48 12.4700 -3.48 +2 209.31 17929.4004 209.31 +3 -3.07 -41.6200 -3.07 + + inc_operation_profit_year_on_year inc_operation_profit_annual \ +0 5.51 69.1000 +1 10.53 -28.2900 +2 745.37 6337.2998 +3 138.08 155.5600 + + inc_net_profit_year_on_year inc_net_profit_annual \ +0 6.11 69.9800 +1 22.97 -29.3600 +2 721.89 3654.3401 +3 143.59 151.5400 + + inc_net_profit_to_shareholders_year_on_year \ +0 6.11 +1 14.94 +2 783.92 +3 132.08 + + inc_net_profit_to_shareholders_annual +0 69.9800 +1 -34.6700 +2 4519.6099 +3 140.9000 + +[4 rows x 36 columns] +``` + + **获取一只股票某个字段数据** +``` + +q = query( + indicator +).filter( + indicator.code == '000004.XSHE' +) +df = get_fundamentals(q, '2015-10-15') +# 打印出每股收益EPS(元) +print(df['eps'][0]) + +>>>0.0365 +``` + + **获取多只股票在某一日期的财务数据** +``` + +df = get_fundamentals(query( + indicator + ).filter( + # 这里不能使用 in 操作, 要使用in_()函数 + indicator.code.in_(['000001.XSHE', '600000.XSHG']) + ), date='2015-10-15') +print(df) + + id code day pubDate statDate eps \ +0 178 000001.XSHE 2015-10-15 2015-08-14 2015-06-30 0.4162 +1 2952806 600000.XSHG 2015-10-15 2015-08-20 2015-06-30 0.6813 + + adjusted_profit operating_profit value_change_profit roe \ +0 5.954000e+09 6.254000e+09 1.566000e+09 4.14 +1 1.239500e+10 1.553200e+10 8.140000e+08 4.45 + + ... inc_total_revenue_year_on_year \ +0 ... 39.02 +1 ... 19.94 + + inc_total_revenue_annual inc_revenue_year_on_year inc_revenue_annual \ +0 25.32 39.02 25.32 +1 14.30 19.94 14.30 + + inc_operation_profit_year_on_year inc_operation_profit_annual \ +0 17.90 5.01 +1 4.92 12.52 + + inc_net_profit_year_on_year inc_net_profit_annual \ +0 18.69 5.81 +1 6.29 13.33 + + inc_net_profit_to_shareholders_year_on_year \ +0 18.69 +1 6.39 + + inc_net_profit_to_shareholders_annual +0 5.81 +1 13.53 + +[2 rows x 36 columns] +``` + +balance资产负债表 / 2005至今,每天24:00更新 按季度更新, 统计周期是一季度。可以使用get_fundamentals() 的statDate参数查询年度数据。 由于这个表是存量性质的, 查询年度数据是返回第四季度的数据。 **注意**: (详细内容可看get_fundamentals接口) - date和statDate参数只能传入一个: - 传入date时, 查询指定日期date收盘后所能看到的最近(对市值表来说, 最近一天, 对其他表来说, 最近一个季度)的数据 - statDate: 财报统计的季度或者年份,。 季度: 格式是**年 + 'q' + 季度序号**, 例如: **'2015q1', '2013q4'**. 年份: 格式就是**年份的数字**, 例如:**'2015', '2016'**. **表名: balance** | **列名** | **列的含义** | **解释** | +| --- | --- | --- | +| code | 股票代码 | 带后缀.XSHE/.XSHG | +| pubDate | 日期 | 公司发布财报的日期 | +| statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | +| cash_equivalents | 货币资金(元) | 货币资金是指在企业生产经营过程中处于货币形态的那部分资金,按其形态和用途不同可分为包括库存现金、银行存款和其他货币资金。它是企业中最活跃的资金,流动性强,是企业的重要支付手段和流通手段,因而是流动资产的审查重点。货币资金:又称为货币资产,是指在企业生产经营过程中处于货币形态的资产。是指可以立即投入流通,用以购买商品或劳务或用以偿还债务的交换媒介物。 | +| settlement_provi | 结算备付金(元) | 结算备付金是指结算参与人根据规定,存放在其资金交收账户中用于证券交易及非交易结算的资金。资金交收账户即结算备付金账户。 | +| lend_capital | 拆出资金(元) | 企业(金融)拆借给境内、境外其他金融机构的款项。 | +| trading_assets | 交易性金融资产(元) | 交易性金融资产是指:企业为了近期内出售而持有的金融资产。通常情况下,以赚取差价为目的从二级市场购入的股票、债券和基金等,应分类为交易性金融资产,故长期股权投资不会被分类转入交易性金融资产及其直接指定为以公允价值计量且其变动计入当期损益的金融资产进行核算。 | +| bill_receivable | 应收票据(元) | 应收票据是指企业持有的还没有到期、尚未兑现的票据。应收票据是企业未来收取货款的权利,这种权利和将来应收取的货款金额以书面文件形式约定下来,因此它受到法律的保护,具有法律上的约束力。是一种债权凭证。根据我国现行法律的规定,商业汇票的期限不得超过6个月,因而我国的商业汇票是一种流动资产。在我国应收票据、应付票据通常是指“商业汇票”,包括“银行承兑汇票”和“商业承兑汇票”两种,是远期票据,付款期一般在1个月以上,6个月以内。其他的银行票据(支票、本票、汇票}等,都是作为货币资金来核算的,而不作为应收应付票据 | +| account_receivable | 应收账款(元) | 应收账款是指企业在正常的经营过程中因销售商品、产品、提供劳务等业务,应向购买单位收取的款项,包括应由购买单位或接受劳务单位负担的税金、代购买方垫付的各种运杂费等。 | +| advance_payment | 预付款项(元) | 预付款项,包括预付货款和预付工程款等,通常属于流动资产。预付账款与应收账款都属于公司的债权,但两者产生的原因不同,应收账款是公司应收的销货款,通常是用货币清偿的,而预付账款是预付给供货单位的购货款或预付给施工单位的工程价款和材料款,通常是用商品、劳务或完工工程来清偿的。 | +| insurance_receivables | 应收保费(元) | 保险公司按照合同约定应向投保人收取但尚未收到的保费收入。 | +| reinsurance_receivables | 应收分保账款(元) | 指公司开展分保业务而发生的各种应收款项。 | +| reinsurance_contract_reserves_receivable | 应收分保合同准备金(元) | 是用于核算企业(再保险分出人)从事再保险业务确认的应收分保未到期责任准备金,以及应向再保险接受人摊回的保险责任准备金。 | +| interest_receivable | 应收利息(元) | 应收利息是指:短期债券投资实际支付的价款中包含的已到付息期但尚未领取的债券利息。这部分应收利息不计入短期债券投资初始投资成本中。但实际支付的价款中包含尚未到期的债券利息,则计入短期债券投资初始投资成本中(不需要单独核算)。 | +| dividend_receivable | 应收股利(元) | 应收股利是指企业因股权投资而应收取的现金股利以及应收其他单位的利润,包括企业购入股票实际支付的款项中所包括的已宣告发放但尚未领取的现金股利和企业因对外投资应分得的现金股利或利润等,但不包括应收的股票股利。 | +| other_receivable | 其他应收款(元) | 其他应收款是企业应收款项的另一重要组成部分。是企业除应收票据、应收账款和预付账款以外的各种应收暂付款项。其他应收款通常包括暂付款,是指企业在商品交易业务以外发生的各种应收、暂付款项。 | +| bought_sellback_assets | 买入返售金融资产(元) | 指公司按返售协议约定先买入再按固定价格返售的证券等金融资产所融出的资金。 | +| inventories | 存货(元) | 是指企业在日常活动中持有的以备出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料和物料等。 | +| non_current_asset_in_one_year | 一年内到期的非流动资产(元) | 一年内到期的非流动资产反映企业将于一年内到期的非流动资产项目金额。包括一年内到期的持有至到期投资、长期待摊费用和一年内可收回的长期应收款。应根据有关科目的期末余额填列。执行企业会计制度的企业根据“一年内到期的长期债权投资”等科目填列。 | +| other_current_assets | 其他流动资产(元) | 其他流动资产,是指除货币资金、短期投资、应收票据、应收账款、其他应收款、存货等流动资产以外的流动资产 | +| total_current_assets | 流动资产合计(元) | 指在一年内或者超过一年的一个营业周期内变现或者耗用的资产,包括货币资金、短期投资、应收票据、应收账款、坏账准备、应收账款净额、预付账款、其他应收款、存货、待转其他业务支出、待摊费用、待处理流动资产净损失、一年内到期的长期债券投资、其他流动资产等项。 | +| loan_and_advance | 发放委托贷款及垫款(元) | 委托贷款是指由委托人提供合法来源的资金转入委托银行一般委存账户,委托银行根据委托人确定的贷款对象、用途、金额、期限、利率等代为发放、监督使用并协助收回的贷款业务。垫款是指银行在客户无力支付到期款项的情况下,被迫以自有资金代为支付的行为。 | +| hold_for_sale_assets | 可供出售金融资产(元) | 可供出售金融资产指初始确认时即被指定为可供出售的非衍生金融资产,以及下列各类资产之外的非衍生金融资产:(一)贷款和应收款项;(二)持有至到期投资;(三)交易性金融资产。 | +| hold_to_maturity_investments | 持有至到期投资(元) | 持有至到期投资指企业有明确意图并有能力持有至到期,到期日固定、回收金额固定或可确定的非衍生金融资产。以下非衍生金融资产不应划分为持有至到期投资:(一)初始确认时划分为交易性非衍生金融资产;(二)初始确认时被指定为可供出售非衍生金融资产;(三)符合贷款和应收款项定义的非衍生金融资产。 | +| longterm_receivable_account | 长期应收款(元) | 长期应收款是根据长期应收款的账户余额减去未确认融资收益还有一年内到期的长期应收款。 | +| longterm_equity_invest | 长期股权投资(元) | 长期股权投资是指企业持有的对其子公司、合营企业及联营企业的权益性投资以及企业持有的对被投资单位不具有控制、共同控制或重大影响,且在活跃市场中没有报价、公允价值不能可靠计量的权益性投资。 | +| investment_property | 投资性房地产(元) | 投资性房地产是指为赚取租金或资本增值,或两者兼有而持有的房地产。投资性房地产应当能够单独计量和出售。 | +| fixed_assets | 固定资产(元) | 固定资产是指企业为生产商品、提供劳务、出租或经营管理而持有的、使用寿命超过一个会计年度的有形资产。属于产品生产过程中用来改变或者影响劳动对象的劳动资料,是固定资本的实物形态。固定资产在生产过程中可以长期发挥作用,长期保持原有的实物形态,但其价值则随着企业生产经营活动而逐渐地转移到产品成本中去,并构成产品价值的一个组成部分。 | +| constru_in_process | 在建工程(元) | 在建工程是指企业固定资产的新建、改建、扩建,或技术改造、设备更新和大修理工程等尚未完工的工程支出。在建工程通常有”自营”和”出包”两种方式。自营在建工程指企业自行购买工程用料、自行施工并进行管理的工程;出包在建工程是指企业通过签订合同,由其它工程队或单位承包建造的工程。 | +| construction_materials | 工程物资(元) | 工程物资是指用于固定资产建造的建筑材料(如钢材、水泥、玻璃等),企业(民用航空运输)的高价周转件(例如飞机的引擎)等。买回来要再次加工建设的资产。在资产负债表中列示为非流动资产。 | +| fixed_assets_liquidation | 固定资产清理(元) | 固定资产清理是指企业因出售、报废和毁损等原因转入清理的固定资产价值及其在清理过程中所发生的清理费用和清理收入等。 | +| biological_assets | 生产性生物资产(元) | 生产性生物资产是指为产出农产品、提供劳务或出租等目的而持有的生物资产,包括经济林、薪炭林、产畜和役畜等。 | +| oil_gas_assets | 油气资产(元) | 重要资产,其价值在总资产中占有较大比重。油气资产是指油气开采企业所拥有或控制的井及相关设施和矿区权益。油气资产属于递耗资产。递耗资产是通过开掘、采伐、利用而逐渐耗竭,以致无法恢复或难以恢复、更新或按原样重置的自然资源,如矿藏、原始森林等。油气资产是油气生产企业的重要资产,其价值在总资产中占有较大比重。 | +| intangible_assets | 无形资产(元) | 无形资产是指企业拥有或者控制的没有实物形态的可辨认非货币性资产。资产满足下列条件之一的,符合无形资产定义中的可辨认性标准: 1、能够从企业中分离或者划分出来,并能够单独或者与相关合同、资产或负债一起,用于出售、转移、授予许可、租赁或者交换。 2、源自合同性权利或其他法定权利,无论这些权利是否可以从企业或其他权利和义务中转移或者分离。无形资产主要包括专利权、非专利技术、商标权、著作权、土地使用权、特许权等。商誉的存在无法与企业自身分离,不具有可辨认性,不属于本章所指无形资产。 | +| development_expenditure | 开发支出(元) | 开发支出项目是反映企业开发无形资产过程中能够资本化形成无形资产成本的支出部分。开发支出项目应当根据”研发支出”科目中所属的”资本化支出”明细科目期末余额填列。 | +| good_will | 商誉(元) | 商誉是指能在未来期间为企业经营带来超额利润的潜在经济价值,或一家企业预期的获利能力超过可辨认资产正常获利能力(如社会平均投资回报率)的资本化价值。商誉是企业整体价值的组成部分。在企业合并时,它是购买企业投资成本超过被并企业净资产公允价值的差额。 | +| long_deferred_expense | 长期待摊费用(元) | 长期待摊费用是指企业已经支出,但摊销期限在1年以上(不含1年)的各项费用,包括开办费、租入固定资产的改良支出及摊销期在1年以上的固定资产大修理支出、股票发行费用等。应由本期负担的借款利息、租金等,不得作为长期待摊费用。 | +| deferred_tax_assets | 递延所得税资产(元) | 指对于可抵扣暂时性差异,以未来期间很可能取得用来抵扣可抵扣暂时性差异的应纳税所得额为限确认的一项资产。而对于所有应纳税暂时性差异均应确认为一项递延所得税负债,但某些特殊情况除外。递延所得税资产和递延所得税负债是和暂时性差异相对应的,可抵减暂时性差异是将来可用来抵税的部分,是应该收回的资产,所以对应递延所得税资产递延所得税负债是由应纳税暂时性差异产生的,对于影响利润的暂时性差异,确认的递延所得税负债应该调整“所得税费用”。例如会计折旧小于税法折旧,导致资产的账面价值大于计税基础,如果产品已经对外销售了,就会影响利润,所以递延所得税负债应该调整当期的所得税费用。如果暂时性差异不影响利润,而是直接计入所有者权益的,则确认的递延所得税负债应该调整资本公积。例如可供出售金融资产是按照公允价值来计量的,公允价值产升高了,会计上调增了可供出售金融资产的账面价值,并确认的资本公积,因为不影响利润,所以确认的递延所得税负债不能调整所得税费用,而应该调整资本公积。 | +| other_non_current_assets | 其他非流动资产(元) | 贷款是指贷款人(我国的商业银行等金融机构)对借款人提供的并按约定的利率和期限还本付息的货币资金。贷款币可以是人民币,也可以是外币。 | +| total_non_current_assets | 非流动资产合计(元) | 公式:非流动资产合计=所有的非流动资产项目之和—一年内到期的非流动资产=固定资产—累计折旧—固定资产减值准备—一年内到期的非流动资产。 | +| total_assets | 资产总计(元) | 资产总计是指企业拥有或可控制的能以货币计量的经济资源,包括各种财产、债权和其他权利。企业的资产按其流动性划分为:流动资产、长期投资、固定资产、无形资产及递延资产、其他资产等,即为企业资产负债表的资产总计项。所谓流动性是指企业资产的变现能力和支付能力。该指标根据会计“资产负债表”中“资产总计”项的年末数填列。资产总计=流动资产+长期投资+固定资产+无形及递延资产+其他资产。 | +| shortterm_loan | 短期借款(元) | 短期借款企业用来维持正常的生产经营所需的资金或为抵偿某项债务而向银行或其他金融机构等外单位借入的、还款期限在一年以下或者一年的一个经营周期内的各种借款。 | +| borrowing_from_centralbank | 向中央银行借款(元) | 向中央银行借款的形式有两种,一种是直接借款,也称再贷款;另一种为间接借款,即所谓的再贴现。 | +| deposit_in_interbank | 吸收存款及同业存放(元) | 吸收存款是负债类科目,它核算企业(银行)吸收的除了同业存放款项以外的其他各种存款,即:收到的除金融机构以外的企业或者个人、组织的存款,包括单位存款(企业、事业单位、机关、社会团体等)、个人存款、信用卡存款、特种存款、转贷款资金和财政性存款等。同业存放,也称同业存款,全称是同业及其金融机构存入款项,是指因支付清算和业务合作等的需要,由其他金融机构存放于商业银行的款项。 | +| borrowing_capital | 拆入资金(元) | 拆入资金,是指信托投资公司向银行或其他金融机构借入的资金。拆入资金应按实际借入的金额入账。 | +| trading_liability | 交易性金融负债(元) | 交易性金融负债是指企业采用短期获利模式进行融资所形成的负债,比如短期借款、长期借款、应付债券。作为交易双方来说,甲方的金融债权就是乙方的金融负债,由于融资方需要支付利息,因比,就形成了金融负债。交易性金融负债是企业承担的交易性金融负债的公允价值。 | +| notes_payable | 应付票据(元) | 应付票据是指企业购买材料、商品和接受劳务供应等而开出、承兑的商业汇票,包括商业承兑汇票和银行承兑汇票。在我国应收票据、应付票据仅指“商业汇票”,包括“银行承兑汇票”和“商业承兑汇票”两种,属于远期票据,付款期一般在1个月以上,6个月以内。其他的银行票据(支票、本票、汇票)等,都是作为货币资金来核算的,而不作为应收应付票据。 | +| accounts_payable | 应付账款(元) | 应付账款是指因购买材料、商品或接受劳务供应等而发生的债务,这是买卖双方在购销活动中由于取得物资与支付贷款在时间上不一致而产生的负债。 | +| advance_peceipts | 预收款项(元) | 预收款项是在企业销售交易成立以前,预先收取的部分货款。 | +| sold_buyback_secu_proceeds | 卖出回购金融资产款(元) | 卖出回购金融资产款是用于核算企业(金融)按回购协议卖出票据、证券、贷款等金融资产所融入的资金。 | +| commission_payable | 应付手续费及佣金(元) | 是会计科目的一种,用以核算企业因购买材料、商品和接受劳务供应等经营活动应支付的款项。通常是指因购买材料、商品或接受劳务供应等而发生的债务,这是买卖双方在购销活动中由于取得物资与支付贷款在时间上不一致而产生的负债。 | +| salaries_payable | 应付职工薪酬(元) | 应付职工薪酬是指企业为获得职工提供的服务而给予各种形式的报酬以及其他相关支出。职工薪酬包括:职工工资、奖金、津贴和补贴;职工福利费;医疗保险费、养老保险费、失业保险费、工伤保险费和生育保险费等社会保险费;住房公积金;工会经费和职工教育经费;非货币性福利;因解除与职工的劳动关系给予的补偿;其他与获得职工提供的服务相关的支出。原“应付工资”和“应付福利费”取消,换成“应付职工薪酬”。 | +| taxs_payable | 应交税费(元) | 应交税费是指企业根据在一定时期内取得的营业收入、实现的利润等,按照现行税法规定,采用一定的计税方法计提的应交纳的各种税费。应交税费包括企业依法交纳的增值税、消费税、营业税、所得税、资源税、土地增值税、城市维护建设税、房产税、土地使用税、车船税、教育费附加、矿产资源补偿费等税费,以及在上缴国家之前,由企业代收代缴的个人所得税等。 | +| interest_payable | 应付利息(元) | 应付利息是指金融企业根据存款或债券金额及其存续期限和规定的利率,按期计提应支付给单位和个人的利息。应付利息应按已计但尚未支付的金额入账。应付利息包括分期付息到期还本的长期借款、企业债券等应支付的利息。应付利息与应计利息的区别:应付利息属于借款,应计利息属于企业存款。 | +| dividend_payable | 应付股利(元) | 应付股利是指企业根据年度利润分配方案,确定分配的股利。是企业经董事会或股东大会,或类似机构决议确定分配的现金股利或利润。企业分配的股票股利,不通过“应付股利”科目核算。确定时借记“未分配利润”帐户,贷记“应付股利”帐户;实际支付时借记“应付股利”帐户,贷记“银行存款”帐户。 | +| other_payable | 其他应付款(元) | 其他应付款是财务会计中的一个往来科目,通常情况下,该科目只核算企业应付其他单位或个人的零星款项,如应付经营租入固定资产和包装物的租金、存入保证金、应付统筹退休金等。 | +| reinsurance_payables | 应付分保账款(元) | 应付分保账款表示债务,这样一来,债权、债务关系更加一目了然。另外,财产保险公司应收分保账款是指本公司与其他保险公司之间开展分保业务发生的各种应收款项。 | +| insurance_contract_reserves | 保险合同准备金(元) | 险准备金是指保险人为保证其如约履行保险赔偿或给付义务,根据政府有关法律规定或业务特定需要,从保费收入或盈余中提取的与其所承担的保险责任相对应的一定数量的基金。 | +| proxy_secu_proceeds | 代理买卖证券款(元) | 代理买卖证券款是指公司接受客户委托,代理客户买卖股票、债券和基金等有价证券而收到的款项,包括公司代理客户认购新股的款项、代理客户领取的现金股利和债券利息,代客户向证券交易所支付的配股款等。 | +| receivings_from_vicariously_sold_securities | 代理承销证券款(元) | 代理承销证券款是指公司接受委托,采用承购包销方式或代销方式承销证券所形成的、应付证券发行人的承销资金。 | +| non_current_liability_in_one_year | 一年内到期的非流动负债(元) | 是反映企业各种非流动负债在一年之内到期的金额,包括一年内到期的长期借款、长期应付款和应付债券。本项目应根据上述账户分析计算后填列。计入(收录)流动负债中。 | +| other_current_liability | 其他流动负债(元) | 其他流动负债是指不能归属于短期借款,应付短期债券券,应付票据,应付帐款,应付所得税,其他应付款,预收账款这七款项目的流动负债。但以上各款流动负债,其金额未超过流动负债合计金额百分之五者,得并入其他流动负债内。 | +| total_current_liability | 流动负债合计(元) | 流动负债合计是指企业在一年内或超过一年的一个营业周期内需要偿还的债务,包括短期借款、应付帐款、其他应付款、应付工资、应付福利费、未交税金和未付利润、其他应付款、预提费用等。 | +| longterm_loan | 长期借款(元) | 长期借款是指企业从银行或其他金融机构借入的期限在一年以上(不含一年)的借款。我国股份制企业的长期借款主要是向金融机构借人的各项长期性借款,如从各专业银行、商业银行取得的贷款;除此之外,还包括向财务公司、投资公司等金融企业借人的款项。 | +| bonds_payable | 应付债券(元) | 应付债券是指企业为筹集资金而对外发行的期限在一年以上的长期借款性质的书面证明,约定在一定期限内还本付息的一种书面承诺。 | +| longterm_account_payable | 长期应付款(元) | 长期应付款是指企业除了长期借款和应付债券以外的长期负债,包括应付引进设备款、应付融资租入固定资产的租赁费等。 | +| specific_account_payable | 专项应付款(元) | 专项应付款是企业接受国家拨入的具有专门用途的款项所形成的不需要以资产或增加其他负债偿还的负债。专项应付款指企业接受国家拨入的具有专门用途的拨款,如新产品试制费拨款、中间试验费拨款和重要科学研究补助费拨款等科技三项拨款等。 | +| estimate_liability | 预计负债(元) | 预计负债是因或有事项可能产生的负债。根据或有事项准则的规定,与或有事项相关的义务同时符合以下三个条件的,企业应将其确认为负债:一是该义务是企业承担的现时义务;二是该义务的履行很可能导致经济利益流出企业,这里的“很可能”指发生的可能性为“大于50%,但小于或等于95%”;三是该义务的金额能够可靠地计量。 | +| deferred_tax_liability | 递延所得税负债(元) | 递延所得税负债是指根据应纳税暂时性差异计算的未来期间应付所得税的金额;递延所得税资产和递延所得税负债是和暂时性差异相对应的,可抵减暂时性差异是将来可用来抵税的部分,是应该收回的资产,所以对应递延所得税资产;递延所得税负债是由应纳税暂时性差异产生的,对于影响利润的暂时性差异,确认的递延所得税负债应该调整“所得税费用”。 | +| other_non_current_liability | 其他非流动负债(元) | 其他非流动负债项目是反映企业除长期借款、应付债券等项目以外的其他非流动负债。其他非流动负债项目应根据有关科目的期末余额填列。其他非流动负债项目应根据有关科目期末余额减去将于一年内(含一年)到期偿还数后的余额填列。非流动负债各项目中将于一年内(含一年)到期的非流动负债,应在”一年内到期的非流动负债”项目内单独反映。 | +| total_non_current_liability | 非流动负债合计(元) | 流动负债合计是指企业在一年内或超过一年的一个营业周期内需要偿还的债务,包括短期借款、应付帐款、其他应付款、应付工资、应付福利费、未交税金和未付利润、其他应付款、预提费用等。 | +| total_liability | 负债合计(元) | 负债合计是指企业所承担的能以,将以资产或劳务偿还的债务,偿还形式包括货币、资产或提供劳务。 | +| paidin_capital | 实收资本(或股本)(元) | 实收资本是指企业的投资者按照企业章程或合同、协议的约定,实际投入企业的资本。我国实行的是注册资本制,因而,在投资者足额缴纳资本之后,企业的实收资本应该等于企业的注册资本。“实收资本”科目用于核算企业实际收到的投资人投入的资本。 | +| capital_reserve_fund | 资本公积金(元) | 资本公积金是在公司的生产经营之外,由资本、资产本身及其他原因形成的股东权益收入。股份公司的资本公积金,主要来源于的股票发行的溢价收入、接受的赠与、资产增值、因合并而接受其他公司资产净额等。其中,股票发行溢价是上市公司最常见、是最主要的资本公积金来源。 | +| treasury_stock | 库存股(元) | 指股份有限公司已发行的股票,由于公司的重新回购或其他原因且不是为了注销的目的而由公司持有的股票。 | +| specific_reserves | 专项储备(元) | 专项储备用于核算高危行业企业按照规定提取的安全生产费以及维持简单再生产费用等具有类似性质的费用。 | +| surplus_reserve_fund | 盈余公积金(元) | 盈余公积是指企业按照规定从净利润中提取的各种积累资金。 | +| ordinary_risk_reserve_fund | 一般风险准备(元) | 指从事证券业务的金融企业按规定从 净利润中提取,用于弥补亏损的 风险准备。 | +| retained_profit | 未分配利润(元) | 未分配利润是企业未作分配的利润。它在以后年度可继续进行分配,在未进行分配之前,属于所有者权益的组成部分。 | +| foreign_currency_report_conv_diff | 外币报表折算差额(元) | 是指在编制合并财务报表时,把国外子公司或分支机构以所在国家货币编制的财务报表折算成以记账本位币表达的财务报表时,由于报表项目采用不同汇率折算而形成的汇兑损益。 | +| equities_parent_company_owners | 归属于母公司股东权益合计(元) | 母公司股东权益反映的是母公司所持股份部分的所有者权益数,所有者权益合计是反映的是所有的股东包括母公司与少数股东一起100%的股东所持股份的总体所有者权益合计数。即所有者权益合计=母公司股东权益合计母+少数股东权益合计。 | +| minority_interests | 少数股东权益(元) | 少数股东权益简称少数股权,是反映除母公司以外的其他投资者在子公司中的权益,表示其他投资者在子公司所有者权益中所拥有的份额。在控股合并形式下,子公司股东权益中未被母公司持有部分。在母公司拥有子公司股份不足100%,即只拥有子公司净资产的部分产权时,子公司股东权益的一部分属于母公司所有,即多数股权,其余部分仍属外界其他股东所有,由于后者在子公司全部股权中不足半数,对子公司没有控制能力,故被称为少数股权。 | +| total_owner_equities | 股东权益合计(元) | 指股本、资本公积、盈余公积、未分配利润的之和,代表了股东对企业的所有权,反映了股东在企业资产中享有的经济利益。 | +| total_sheet_owner_equities | 负债和股东权益合计 | 负债和股东权益总计是等于负债总额加上股东权益总额,也等于资产总额。 | + + **获取所有公司最近季度的资产负债表** +``` + +df=get_fundamentals(query(balance)) +print(df[:4]) + id code day pubDate statDate \ +0 31771107 000001.XSHE 2021-03-14 2021-02-02 2020-12-31 +1 32297446 000002.XSHE 2021-03-14 2020-10-30 2020-09-30 +2 32297662 000004.XSHE 2021-03-14 2020-10-30 2020-09-30 +3 32126926 000005.XSHE 2021-03-14 2020-10-29 2020-09-30 + + cash_equivalents settlement_provi lend_capital trading_assets \ +0 2.839820e+11 NaN 7.099600e+10 3.112700e+11 +1 1.730500e+11 NaN NaN 2.270278e+08 +2 1.293766e+08 NaN NaN NaN +3 6.283763e+07 NaN NaN 2.531232e+07 + + bill_receivable ... treasury_stock \ +0 NaN ... NaN +1 21815870.0 ... NaN +2 484800.0 ... NaN +3 3513000.0 ... NaN + + specific_reserves surplus_reserve_fund ordinary_risk_reserve_fund \ +0 NaN 1.078100e+10 5.153600e+10 +1 NaN 7.082625e+10 NaN +2 NaN 1.341421e+07 NaN +3 NaN 1.495191e+08 NaN + + retained_profit foreign_currency_report_conv_diff \ +0 1.311860e+11 NaN +1 1.034041e+11 NaN +2 7.160281e+07 NaN +3 -1.715857e+08 NaN + + equities_parent_company_owners minority_interests total_owner_equities \ +0 3.641310e+11 NaN 3.641310e+11 +1 2.026750e+11 9.996741e+10 3.026424e+11 +2 1.449622e+09 1.207967e+07 1.461701e+09 +3 1.622737e+09 9.179124e+07 1.714528e+09 + + total_sheet_owner_equities +0 4.468514e+12 +1 1.814466e+12 +2 1.548313e+09 +3 2.939184e+09 + +[4 rows x 86 columns] +``` + + **获取某只股票的资产负债表数据** +``` + +# 查询'000001.XSHE'的资产负债表数据 +q = query( + balance +).filter( + balance.code == '000001.XSHE' +) +# 运行时间2020-10-15 +df = get_fundamentals(q,'2020-10-15') +# pubDate公司发布财报的日期,statDate财报统计的季度的最后一天,cash_equivalents货币资金 +print(df[['pubDate','statDate','cash_equivalents']]) + +#输出 + pubDate statDate cash_equivalents +0 2020-08-28 2020-06-30 2.524260e+11 +``` + +cash_flow现金流量表 / 2005至今,每天24:00更新 按季度更新, 统计周期是一季度。可以使用get_fundamentals() 的 statDate 参数查询年度数据。 **表名: cash_flow** | 列名 | 列的含义 | 解释 | | ------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------ | | code | 股票代码 | 带后缀.XSHE/.XSHG | | pubDate | 日期 | 公司发布财报日期 | | statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | | goods_sale_and_service_render_cash | 销售商品、提供劳务收到的现金(元) | 反映企业本期销售商品、提供劳务收到的现金,以及前期销售商品、提供劳务本期收到的现金(包括销售收入和应向购买者收取的增值税销项税额)和本期预收的款项,减去本期销售本期退回的商品和前期销售本期退回的商品支付的现金。企业销售材料和代购代销业务收到的现金,也在本项目反映。 | | net_deposit_increase | 客户存款和同业存放款项净增加额(元) | 客户存款和同业存款净增加额=客户存款和同业存款期末余额-客户存款和同业存款期初余额。 | | net_borrowing_from_central_bank | 向中央银行借款净增加额(元) | 向中央银行借款净增加额=向中央银行借款期末余额-向中央银行借款期初余额。 | | net_borrowing_from_finance_co | 向其他金融机构拆入资金净增加额(元) | 向其他金融机构拆入资金净增加额=向其他金融机构拆入资金期末余额-向其他金融机构拆入资金期初余额。 | | net_original_insurance_cash | 收到原保险合同保费取得的现金(元) | 收到原保险合同保费取得的现金 | | net_cash_received_from_reinsurance_business | 收到再保险业务现金净额(元) | 再保险是指一个保险人,分出一定的保险金额给另一个保险人。 | | net_insurer_deposit_investment | 保户储金及投资款净增加额(元) | 保户储金,是指保险公司以储金利息作为保费的保险业务,收到保户缴存的储金。投资款是收到股东的款项。 | | net_deal_trading_assets | 处置交易性金融资产净增加额(元) | 交易性金融资产是指企业为了近期内出售而持有的债券投资、股票投资和基金投资。 | | interest_and_commission_cashin | 收取利息、手续费及佣金的现金(元) | 收取利息、手续费及佣金的现金 | | net_increase_in_placements | 拆入资金净增加额(元) | 拆入资金净增加额=拆入资金期末余额-拆入资金期初余额。 | | net_buyback | 回购业务资金净增加额(元) | 回购交易是质押贷款的一种方式,通常用在政府债券上。债券经纪人向投资者临时出售一定的债券,同时签约在一定的时间内以稍高价格买回来。债券经纪人从中取得资金再用来投资,而投资者从价格差中得利。 | | tax_levy_refund | 收到的税费返还(元) | 反映企业收到返还的增值税、营业税、所得税、消费税、关税和教育费附加返还款等各种税费。 | | other_cashin_related_operate | 收到其他与经营活动有关的现金(元) | 反映企业收到的罚款收入、经营租赁收到的租金等其他与经营活动有关的现金流入,金额较大的应当单独列示。 | | subtotal_operate_cash_inflow | 经营活动现金流入小计(元) | 销售商品、提供劳务+收到的现金收到的税费返还+收到其他与经营活动有关的现金。 | | goods_and_services_cash_paid | 购买商品、接受劳务支付的现金(元) | 反映企业本期购买商品、接受劳务实际支付的现金(包括增值税进项税额),以及本期支付前期购买商品、接受劳务的未付款项和本期预付款项,减去本期发生的购货退回收到的现金。 | | net_loan_and_advance_increase | 客户贷款及垫款净增加额(元) | 客户贷款是科目核算信托项目管理运用、处分信托财产而持有的各项贷款。垫款是指银行在客户无力支付到期款项的情况下,被迫以自有资金代为支付的行为。 | | net_deposit_in_cb_and_ib | 存放中央银行和同业款项净增加额(元) | 存放中央银行款项是指各金融企业在中央银行开户而存入的用于支付清算、调拨款项、提取及缴存现金、往来资金结算以及按吸收存款的一定比例缴存于中央银行的款项和其他需要缴存的款项。存放同业是指商业银行存放在其他银行和非银行金融机构的存款。 | | original_compensation_paid | 支付原保险合同赔付款项的现金(元) | 赔付支出主要指核算企业(保险)支付的原保险合同赔付款项和再保险合同赔付款项。原保险即是区别于再保险的名词。 | | handling_charges_and_commission | 支付利息、手续费及佣金的现金(元) | 一般是指涉及到贷款利息,银行扣缴的手续费及佣金等现金的流出,用在利息指出,或者银行手续费支出,佣金支出等业务上。 | | policy_dividend_cash_paid | 支付保单红利的现金(元) | 保单红利支出是根据原保险合同的约定,按照分红保险产品的红利分配方法及有关精算结果而估算,支付给保单持有人的红利。 | | staff_behalf_paid | 支付给职工以及为职工支付的现金(元) | 这个项目反映企业实际支付给职工的现金以及为职工支付的现金,包括本期实际支付给职工的工资、奖金、各种津贴和补贴等,以及为职工支付的其他费用。不包括支付的离退休人员的各项费用和支付给在建工程人员的工资等。 | | tax_payments | 支付的各项税费(元) | 反映企业本期发生并支付的、本期支付以前各期发生的以及预交的教育费附加、矿产资源补偿费、印花税、房产税、土地增值税、车船使用税、预交的营业税等税费,计入固定资产价值、实际支付的耕地占用税、本期退回的增值税、所得税等除外。 | | other_operate_cash_paid | 支付其他与经营活动有关的现金(元) | 反映企业支付的罚款支出、支付的差旅费、业务招待费、保险费、经营租赁支付的现金等其他与经营活动有关的现金流出,金额较大的应当单独列示。 | | subtotal_operate_cash_outflow | 经营活动现金流出小计(元) | 购买商品、接受劳务支付的现金+支付给职工以及为职工支付的现金+支付的各项税费+支付其他与经营活动有关的现金。 | | net_operate_cash_flow | 经营活动产生的现金流量净额(元) | 公式: 经营活动产生的现金流量净额 | | invest_withdrawal_cash | 收回投资收到的现金(元) | 反映企业出售、转让或到期收回除现金等价物以外的交易性金融资产、长期股权投资而收到的现金,以及收回长期债权投资本金而收到的现金,但长期债权投资收回的利息除外。 | | invest_proceeds | 取得投资收益收到的现金(元) | 反映企业因股权性投资而分得的现金股利,从子公司、联营企业或合营企业分回利润而收到的现金,以及因债权性投资而取得的现金利息收入,但股票股利除外。 | | fix_intan_other_asset_dispo_cash | 处置固定资产、无形资产和其他长期资产收回的现金净额(元) | 反映企业出售、报废固定资产、无形资产和其他长期资产所取得的现金(包括因资产毁损而收到的保险赔偿收入),减去为处置这些资产而支付的有关费用后的净额,但现金净额为负数的除外。 | | net_cash_deal_subcompany | 处置子公司及其他营业单位收到的现金净额(元) | 反映企业处置子公司及其他营业单位所取得的现金减去相关处置费用后的净额。 | | other_cash_from_invest_act | 收到其他与投资活动有关的现金(元) | 反映企业除上述各项目外收到或支付的其他与投资活动有关的现金流入或流出,金额较大的应当单独列示。 | | subtotal_invest_cash_inflow | 投资活动现金流入小计(元) | 取得投资收益收到的现金+处置固定资产、无形资产和其他长期资产收回的现金净额+处置子公司及其他营业单位收到的现金净额+收到其他与投资活动有关的现金。 | | fix_intan_other_asset_acqui_cash | 购建固定资产、无形资产和其他长期资产支付的现金(元) | 反映企业购买、建造固定资产、取得无形资产和其他长期资产所支付的现金及增值税款、支付的应由在建工程和无形资产负担的职工薪酬现金支出,但为购建固定资产而发生的借款利息资本化部分、融资租入固定资产所支付的租赁费除外。 | | invest_cash_paid | 投资支付的现金(元) | 反映企业取得的除现金等价物以外的权益性投资和债权性投资所支付的现金以及支付的佣金、手续费等附加费用。 | | impawned_loan_net_increase | 质押贷款净增加额(元) | 质押贷款是指贷款人按《担保法》规定的质押方式以借款人或第三人的动产或权利为质押物发放的贷款。 | | net_cash_from_sub_company | 取得子公司及其他营业单位支付的现金净额(元) | 反映企业购买子公司及其他营业单位购买出价中以现金支付的部分,减去子公司或其他营业单位持有的现金和现金等价物后的净额。 | | other_cash_to_invest_act | 支付其他与投资活动有关的现金(元) | 现金流量表科目。 | | subtotal_invest_cash_outflow | 投资活动现金流出小计(元) | 购建固定资产、无形资产和其他长期资产支付的现金+投资支付的现金+取得子公司及其他营业单位支付的现金净额+支付其他与投资活动有关的现金。 | | net_invest_cash_flow | 投资活动产生的现金流量净额(元) | 现金流量表科目。 | | cash_from_invest | 吸收投资收到的现金(元) | 反映企业以发行股票、债券等方式筹集资金实际收到的款项,减去直接支付给金融企业的佣金、手续费、宣传费、咨询费、印刷费等发行费用后的净额。 | | cash_from_mino_s_invest_sub | 子公司吸收少数股东投资收到的现金(元) | 《企业会计准则第33 号——合并财务报表》合并现金流量表科目。具体核算范围和方法参见上市公司定期报告。 | | cash_from_borrowing | 取得借款收到的现金(元) | 反映企业举借各种短期、长期借款而收到的现金。 | | cash_from_bonds_issue | 发行债券收到的现金(元) | 反映商业银行本期发行债券收到的本金。 | | other_finance_act_cash | 收到其他与筹资活动有关的现金(元) | 反映企业除上述项目外,收到或支付的其他与筹资活动有关的现金流入或流出,包括以发行股票、债券等方式筹集资金而由企业直接支付的审计和咨询等费用、为购建固定资产而发生的借款利息资本化部分、融资租入固定资产所支付的租赁费、以分期付款方式购建固定资产以后各期支付的现金等。 | | subtotal_finance_cash_inflow | 筹资活动现金流入小计(元) | 吸收投资收到的现金+取得借款收到的现金+收到其他与筹资活动有关的现金+发行债券收到的现金。 | | borrowing_repayment | 偿还债务支付的现金(元) | 反映企业以现金偿还债务的本金。 | | dividend_interest_payment | 分配股利、利润或偿付利息支付的现金(元) | 反映企业实际支付的现金股利、支付给其他投资单位的利润或用现金支付的借款利息、债券利息。 | | proceeds_from_sub_to_mino_s | 子公司支付给少数股东的股利、利润(元) | 一般企业现金流量表科目。 | | other_finance_act_payment | 支付其他与筹资活动有关的现金(元) | 包括:筹资费用所支付的现金,融资租赁所支付的现金,减少注册资本所支付的现金(收购本公司股票、退还联营单位的联营投资等)企业以分期付款方式构建固定资产除首期付款支付的现金以外的其他各期所支付的现金。 | | subtotal_finance_cash_outflow | 筹资活动现金流出小计(元) | 现金流量表科目。 | | net_finance_cash_flow | 筹资活动产生的现金流量净额(元) | 现金流量表科目。 | | exchange_rate_change_effect | 汇率变动对现金及现金等价物的影响 | 指企业外币现金流量及境外子公司的现金流量折算成记账本位币时,所采用的是现金流量发生日的汇率或即期汇率的近似汇率。 | | cash_equivalent_increase | 现金及现金等价物净增加额 | 中外币现金净增加额按期末汇率折算的金额。 | | cash_equivalents_at_beginning | 期初现金及现金等价物余额(元) | 现金流量表科目。 | | cash_and_equivalents_at_end | 期末现金及现金等价物余额(元) | 现金流量表科目。 | **获取所有公司最近季度的现金流量表** +``` + +df=get_fundamentals(query(cash_flow)) +print(df[:4]) + + id code day pubDate statDate \ +0 30720327 000001.XSHE 2021-03-14 2021-02-02 2020-12-31 +1 31251228 000002.XSHE 2021-03-14 2020-10-30 2020-09-30 +2 31251444 000004.XSHE 2021-03-14 2020-10-30 2020-09-30 +3 31080491 000005.XSHE 2021-03-14 2020-10-29 2020-09-30 + + goods_sale_and_service_render_cash net_deposit_increase \ +0 NaN 1.679780e+11 +1 1.241204e+11 NaN +2 2.250687e+07 NaN +3 7.293948e+07 NaN + + net_borrowing_from_central_bank net_borrowing_from_finance_co \ +0 2.162000e+09 NaN +1 NaN NaN +2 NaN NaN +3 NaN NaN + + net_original_insurance_cash ... \ +0 NaN ... +1 NaN ... +2 NaN ... +3 NaN ... + + borrowing_repayment dividend_interest_payment \ +0 1.789500e+11 -1.834000e+09 +1 2.968062e+10 1.606759e+10 +2 NaN 1.161236e+05 +3 1.652172e+07 -5.030181e+06 + + proceeds_from_sub_to_mino_s other_finance_act_payment \ +0 NaN NaN +1 942942016.0 6.971033e+09 +2 NaN NaN +3 NaN NaN + + subtotal_finance_cash_outflow net_finance_cash_flow \ +0 1.818450e+11 3.475700e+10 +1 5.668232e+10 -3.631014e+10 +2 1.161236e+05 1.427376e+06 +3 1.149154e+07 1.550846e+07 + + exchange_rate_change_effect cash_equivalent_increase \ +0 -1.888000e+09 -1.412100e+10 +1 -4.846036e+08 -2.098908e+10 +2 NaN 4.059006e+07 +3 NaN -1.240253e+06 + + cash_equivalents_at_beginning cash_and_equivalents_at_end +0 2.930710e+11 2.789500e+11 +1 1.881395e+11 1.671504e+11 +2 8.861202e+07 1.292021e+08 +3 3.398542e+07 3.274517e+07 + +[4 rows x 59 columns] +``` + + **获取某只股票的现金流量表数据** +``` + +# 查询'000002.XSHE'的现金流量表数据 +q = query( + cash_flow +).filter( + cash_flow.code == '000002.XSHE' +) +# 运行时间2020-10-15 +df = get_fundamentals(q,'2020-10-15') +# pubDate公司发布财报的日期,statDate财报统计的季度的最后一天,goods_sale_and_service_render_cash销售商品、提供劳务收到的现金(元) +print(df[['pubDate','statDate','goods_sale_and_service_render_cash']]) + +#输出 + pubDate statDate goods_sale_and_service_render_cash +0 2020-08-28 2020-06-30 1.185840e+11 +``` + +income利润表 / 2005至今,每天24:00更新 按季度更新, 统计周期是一季度。可以使用get_fundamentals() 的statDate参数查询年度数据。 **表名: income** | **列名** | **列的含义** | **解释** | +| --- | --- | --- | +| code | 股票代码 | 带后缀.XSHE/.XSHG | +| pubDate | 日期 | 公司发布财报日期 | +| statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | +| total_operating_revenue | 营业总收入(元) | 具体核算范围和方法参见上市公司定期报告 | +| operating_revenue | 营业收入(元) | 具体核算范围和方法参见上市公司定期报告 | +| interest_income | 利息收入(元) | 利息收入是指纳税人购买各种债券等有价证券的利息,外单位欠款付给的利息以及其他利息收入。包括:购买各种债券等有价证券的利息,如购买国库券,重点企业建设债券、国家保值公债以及政府部门和企业发放的各类有价证券;企业各项存款所取得的利息外单位欠本企业款而取得的利息;其他利息收入等。 | +| premiums_earned | 已赚保费(元) | 已赚保费是指保险起期已经预先缴付的保险费,过去的保险期间的保费就成为已赚的保费。 | +| commission_income | 手续费及佣金收入(元) | 手续费及佣金收入是指公司为客户办理各种业务收取的手续费及佣金收入,包括办理咨询业务、担保业务、代保管等代理业务以及办理投资业务等取得的手续费及佣金,如业务代办手续费收入、咨询服务收入、担保收入、资产管理收入、代保管收入,代理买卖证券、代理承销证券、代理兑付证券、代理保管证券等代理业务以及其他相关服务实现的手续费及佣金收入等。 | +| total_operating_cost | 营业总成本(元) | 营业总成本=主营业务成本+其他业务成本+利息支出+手续费及佣金支出+退保金+赔付支出净额+提取保险合同准备金净额+保单红利支出+分保费用+营业税金及附加+销售费用+管理费用+财务费用+资产减值损失+其他 | +| operating_cost | 营业成本(元) | 营业成本,也称运营成本。是指企业所销售商品或者提供劳务的成本。营业成本应当与所销售商品或者所提供劳务而取得的收入进行配比。 | +| interest_expense | 利息支出(元) | 利息支出是指临时借款的利息支出。在以收付实现制作为记帐基础的前提条件下,所谓支出应以实际支付为标准,即资金流出,标志着现金、银行存款的减少。就利息支出而言、给个人帐户计息,其资金并没有流出,现金、银行存款并没有减少,因此,给个人计息不应作为利息支出列支。 | +| commission_expense | 手续费及佣金支出(元) | 手续费及佣金支出,本科目主要核算企业(金融)发生的与其经营活动相关的各项手续费、佣金等支出。 | +| refunded_premiums | 退保金(元) | 退保金是指公司经营的长期人身保险业务中,投保人办理退保时,按保险条款规定支付给投保人的金额。 | +| net_pay_insurance_claims | 赔付支出净额(元) | 赔付支出主要指核算企业(保险)支付的原保险合同赔付款项和再保险合同赔付款项。企业(保险)可以单独设置“赔款支出”、“满期给付”、“年金给付”、“死伤医疗给付”、“分保赔付支出”等科目。可按保险合同和险种进行明细核算。 | +| withdraw_insurance_contract_reserve | 提取保险合同准备金净额(元) | 保险准备金是指保险人为保证其如约履行保险赔偿或给付义务,根据政府有关法律规定或业务特定需要,从保费收入或盈余中提取的与其所承担的保险责任相对应的一定数量的基金。 | +| policy_dividend_payout | 保单红利支出(元) | 保单红利支出是根据原保险合同的约定,按照分红保险产品的红利分配方法及有关精算结果而估算,支付给保单持有人的红利。 | +| reinsurance_cost | 分保费用(元) | 分保费用,是办理初保业务的保险公司向其他保险公司分保保险业务,在向对方支付分保费的同时,向对方收取的一定费用,用以弥补初保人的费用支出。 | +| operating_tax_surcharges | 营业税金及附加(元) | 反映企业经营主要业务应负担的营业税、消费税、城市维护建设税、资源税和教育费附加等。填报此项指标时应注意,实行新税制后,会计上规定应交增值税不再计入“主营业务税金及附加”项,无论是一般纳税企业还是小规模纳税企业均应在“应交增值税明细表”中单独反映。根据企业会计“利润表”中对应指标的本年累计数填列。 | +| sale_expense | 销售费用(元) | 销售费用是指企业在销售产品、自制半成品和提供劳务等过程中发生的各项费用。包括由企业负担的包装费、运输费、广告费、装卸费、保险费、委托代销手续费、展览费、租赁费(不含融资租赁费)和销售服务费、销售部门人员工资、职工福利费、差旅费、折旧费、修理费、物料消耗、低值易耗品摊销以及其他经费等。与销售有关的差旅费应计入销售费用。 | +| administration_expense | 管理费用(元) | 管理费用是指 企业行政管理部门为组织和管理生产经营活动而发生的各项费用。管理费用属于期间费用,在发生的当期就计入当期的损失或是利益。 | +| financial_expense | 财务费用(元) | 财务费用指企业在生产经营过程中为筹集资金而发生的筹资费用。包括企业生产经营期间发生的利息支出(减利息收入)、汇兑损益(有的企业如商品流通企业、保险企业进行单独核算,不包括在财务费用)、金融机构手续费,企业发生的现金折扣或收到的现金折扣等。但在企业筹建期间发生的利息支出,应计入开办费;为购建或生产满足资本化条件的资产发生的应予以资本化的借款费用,在“在建工程”、“制造费用”等账户核算。 | +| asset_impairment_loss | 资产减值损失(元) | 资产减值损失是指因资产的账面价值高于其可收回金额而造成的损失。 新会计准则规定资产减值范围主要是固定资产、无形资产以及除特别规定外的其他资产减值的处理。《资产减值》准则改变了固定资产、无形资产等的减值准备计提后可以转回的做法,资产减值损失一经确认,在以后会期间不得转回,消除了一些企业通过计提秘密准备来调节利润的可能,限制了利润的人为波动。资产减值损失在会计核算中属于损益类科目。 | +| fair_value_variable_income | 公允价值变动收益(元) | “公允价值变动收益” 这个科目,是“以公允价值计量且其变动计入当期损益的交易性金融资产”的一个科目。在资产负债表日,“交易性金融资产”的公允价值高于其账面价值的差额,应借记“交易性金融资产-公允价值变动”,贷记“公允价值变动损益”,公允价值低于其账面价值的差额,则做相反的分录。 | +| investment_income | 投资收益(元) | 投资收益是对外投资所取得的利润、股利和债券利息等收入减去投资损失后的净收益。严格地讲,所谓投资收益是指以项目为边界的货币收入等。 | +| invest_income_associates | 对联营企业和合营企业的投资收益(元) | 持有的对联营企业及合营企业的投资,按照《企业会计准则第2号——长期股权投资》的规定,应当采用权益法核算,在按持股比例等计算确认应享有或应分担被投资单位的净损益时,应当考虑以下因素:投资企业与联营企业及合营企业之间发生的内部交易损益按照持股比例计算归属于投资企业的部分,应当予以抵销,在此基础上确认投资损益。
投资企业与被投资单位发生的内部交易损失,按照《企业会计准则第8号———资产减值》等规定属于资产减值损失的,应当全额确认。
投资企业对于纳入其合并范围的子公司与其联营企业及合营企业之间发生的内部交易损益,也应当按照上述原则进行抵销,在此基础上确认投资损益。
投资企业对于首次执行日之前已经持有的对联营企业及合营企业的长期股权投资,如存在与该投资相关的股权投资借方差额,还应扣除按原剩余期限直线摊销的股权投资借方差额,确认投资损益。
投资企业在被投资单位宣告发放现金股利或利润时,按照规定计算应分得的部分确认应收股利,同时冲减长期股权投资的账面价值。 | +| exchange_income | 汇兑收益(元) | 汇兑收益,是指用记账本位币,按照不同的汇率报告相同数量的外币而产生的差额。简单地说,就是公司的外币货币性项目和非货币性项目因汇率变动,在折算成本币时造成损益。而这部分汇兑差额作为财务费用,计入当期损益,从而影响公司利润。 | +| operating_profit | 营业利润(元) | 营业利润是企业最基本经营活动的成果,也是企业一定时期获得利润中最主要、最稳定的来源。2006年财政部颁布的新企业会计准则-30号财务报表列报中已对营业利润进行了调整,将投资收益调入营业利润,同时取消了主营业务利润和其他业务利润的提法,补贴收入被并入营业外收入,营业利润减营业外收支调整即得到利润总额。 | +| non_operating_revenue | 营业外收入(元) | 营业外收入是指企业确认与企业生产经营活动没有直接关系的各种收入。 | +| non_operating_expense | 营业外支出(元) | 营业外支出是企业发生的与其日常活动无直接关系的各项损失,主要包括非流动资产处置损失、公益性捐赠支出、盘亏损失、非常损失、罚款支出等。 | +| disposal_loss_non_current_liability | 非流动资产处置净损失(元) | “非流动资产处置损失”属于损益类的科目,在编制利润表时这些科目如果有本期发生额,要填在利润表中。“非流动资产处置损失”是营业外支出的明细科目,在损益表中计入“营业外支出”,“营业外支出”下方会单独列示“非流动资产处置损失”,但是包括在“营业外支出”项目中。 | +| total_profit | 利润总额(元) | 利润总额指企业在生产经营过程中各种收入扣除各种耗费后的盈余,反映企业在报告期内实现的盈亏总额。 | +| income_tax_expense | 所得税费用(元) | 所得税费用是指企业经营利润应交纳的所得税。“所得税费用”,核算企业负担的所得税,是损益类科目;这一般不等于当期应交所得税,因为可能存在“暂时性差异”。如果只有永久性差异,则等于当期应交所得税。 | +| net_profit | 净利润(元) | 净利润(收益)是指在利润总额中按规定交纳了所得税后公司的利润留成,一般也称为税后利润或净利润。净利润的计算公式为:净利润=利润总额-所得税费用.净利润是一个企业经营的最终成果,净利润多,企业的经营效益就好;净利润少,企业的经营效益就差,它是衡量一个企业经营效益的主要指标。 | +| np_parent_company_owners | 归属于母公司股东的净利润(元) | 准确来讲应称之为“归属于上市公司股东的净利润”,这是因为净利润都归属于股东,只是在合并报表中的净利润有一部分是归属于子公司的其它股东的,这些子公司的其它股东也依法按比例享有子公司的净利润。 | +| minority_profit | 少数股东损益(元) | 少数股东损益是一个流量概念,是指公司合并报表的子公司其它非控股股东享有的损益,需要在利润表中予以扣除。利润表的“净利润”项下可以分“归属于母公司所有者的净利润”和“少数股东损益”。其对应的存量概念是“少数股东权益”。 | +| basic_eps | 基本每股收益(元) | 理论算法:归属于普通股股东的当期净利润/(当期实际发行在外的普通股加权平均数=∑(发行在外普通股股数×发行在外月份数)/12) | +| diluted_eps | 稀释每股收益(元) | 理论算法:归属于普通股股东的当期净利润(扣除当期已确认为费用的稀释性潜在普通股的利息、稀释性潜在普通股转换时将产生的收益或费用、相关所得税的影响)/假设稀释性潜在普通股于当期期初(或发行日)已经全部转换为普通股,于此计算的普通股股数的加权平均数。 | +| other_composite_income | 其他综合收益(元) | 其他综合收益是指企业根据企业会计准则规定未在损益中确认的各项利得和损失扣除所得税影响后的净额。企业在计算利润表中的其他综合收益时,应当扣除所得税影响;在计算合并利润表中的其他综合收益时,除了扣除所得税影响以外,还需要分别计算归属于母公司所有者的其他综合收益和归属于少数股东的其他综合收益。 | +| total_composite_income | 综合收益总额(元) | 综合收益总额项目,反映企业净利润与其他综合收益的合计金额。综合收益,包括其他综合收益和综合收益总额。其中,其他综合收益反映企业根据企业会计准则规定未在损益中确认的各项利得和损失扣除所得税影响后的净额;综合收益总额是企业净利润与其他综合收益的合计金额。 | +| ci_parent_company_owners | 归属于母公司所有者的综合收益总额(元) | 综合收益是指除所有者的出资额和各种为第三方或客户代收的款项以外的各种收入。根据美国财务会计准则委员会(FASB)1980年在第3号财务会计概念公告(SFAC3)(企业财务报表的要素)(后为1985年发布的SFAC6所取代)的解释,综合收益是指“一个主体在某一期间与非业主方面进行交易或发生其他事项和情况所引起的权益(净资产)变动。它包括这一期间内除业主投资和派给业主款外,一切权益上的变动。” | +| ci_minority_owners | 归属于少数股东的综合收益总额(元) | 综合收益是指除所有者的出资额和各种为第三方或客户代收的款项以外的各种收入。根据美国财务会计准则委员会(FASB)1980年在第3号财务会计概念公告(SFAC3)(企业财务报表的要素)(后为1985年发布的SFAC6所取代)的解释,综合收益是指“一个主体在某一期间与非业主方面进行交易或发生其他事项和情况所引起的权益(净资产)变动。它包括这一期间内除业主投资和派给业主款外,一切权益上的变动。” | + + **获取所有公司最近季度的利润表** +``` + +df=get_fundamentals(query(income)) +print(df[:4]) + + id code day pubDate statDate \ +0 30660113 000001.XSHE 2021-03-14 2021-02-02 2020-12-31 +1 31192442 000002.XSHE 2021-03-14 2020-10-30 2020-09-30 +2 31366704 000004.XSHE 2021-03-14 2020-10-30 2020-09-30 +3 31021334 000005.XSHE 2021-03-14 2020-10-29 2020-09-30 + + total_operating_revenue operating_revenue interest_income \ +0 3.697800e+10 3.697800e+10 4.640600e+10 +1 9.514196e+10 9.514196e+10 NaN +2 9.349824e+07 9.349824e+07 NaN +3 8.484838e+07 8.484838e+07 NaN + + premiums_earned commission_income ... income_tax_expense \ +0 NaN 1.345300e+10 ... 1.398000e+09 +1 NaN NaN ... 3.945203e+09 +2 NaN NaN ... 4.272845e+06 +3 NaN NaN ... 2.525845e+04 + + net_profit np_parent_company_owners minority_profit basic_eps \ +0 6.530000e+09 6.530000e+09 NaN 0.2900 +1 1.144235e+10 7.355308e+09 4.087041e+09 0.6330 +2 5.275023e+07 5.486628e+07 -2.116048e+06 0.3324 +3 5.743845e+06 4.557176e+06 1.186669e+06 0.0043 + + diluted_eps other_composite_income total_composite_income \ +0 0.2900 -350000000.0 6.180000e+09 +1 0.6330 174751840.0 1.161710e+10 +2 0.3324 NaN 5.275023e+07 +3 0.0043 NaN 5.743845e+06 + + ci_parent_company_owners ci_minority_owners +0 NaN NaN +1 7.553908e+09 4.063192e+09 +2 5.486628e+07 -2.116048e+06 +3 4.557176e+06 1.186669e+06 + +[4 rows x 43 columns] +``` + + **获取某只股票的利润表数据** +``` + +# 查询'000002.XSHE'的利润表数据 +q = query( + income +).filter( + income.code == '000002.XSHE' +) +# 运行时间2020-10-15 +df = get_fundamentals(q,'2020-10-15') +# pubDate公司发布财报的日期,statDate财报统计的季度的最后一天,total_operating_revenue 营业总收入 +df[['pubDate','statDate','total_operating_revenue']] + +#输出 + pubDate statDate total_operating_revenue +0 2020-08-28 2020-06-30 9.857516e+10 +``` + +#### 专项指标(银行业/券商/保险) + +- **更新时间:2005至今,每天24:00更新** + +表名描述(查表)bank_indicator银行业 按年度更新,统计周期是一年度。 通过get_fundamentals(query_object,statDate=None) statDate传入年查询。当传入 date 参数 或 statDate 传入季度时返回空。 **注意**: (详细内容可看get_fundamentals接口) - date和statDate参数只能传入一个: - 传入date时, 查询指定日期date收盘后所能看到的最近(对市值表来说, 最近一天, 对其他表来说, 最近一个季度)的数据 - statDate: 财报统计的季度或者年份,。 季度: 格式是**年 + 'q' + 季度序号**, 例如: **'2015q1', '2013q4'**. 年份: 格式就是**年份的数字**, 例如:**'2015', '2016'**. **表名: bank_indicator** | 列名 | 列的含义 | 解释 | | ------------------------------------------------ | ---------------------------- | ------------------------------------------------------------ | | code | 股票代码 | 带后缀.XSHE/.XSHG | | pubDate | 日期 | 公司发布财报日期 | | statDate | 日期 | 财报统计的季度的最后一天, 比如2016-12-31 | | total_loan | 贷款总额 | 银行发放的贷款总额 | | total_deposit | 存款总额 | 银行的存款总额 | | interest_earning_assets | 生息资产 | 生息资产是指贷款、投资等业务形式上的资产,能为银行的经营带来收入 | | non_interest_earning_assets | 非生息资产 | 非生息资产 | | interest_earning_assets_yield | 生息资产收益率 | 生息资产收益率 | | interest_bearing_liabilities | 计息负债 | 计息负债指银行负债当中需要支付利息的债务 | | non_interest_bearing_liabilities | 非计息负债 | 非计息负债 | | interest_bearing_liabilities_interest_rate | 计息负债成本率 | 计息负债成本率 | | non_interest_income | 非利息收入 | 非利息收入 | | non_interest_income_ratio | 非利息收入占比 | 非利息收入占比为非利息收入占全部收入的比例 | | net_interest_margin | 净息差 | 净息差指的是银行净利息收入和银行全部生息资产的比值 | | net_profit_margin | 净利差 | 净利差是指平均生息资产收益率与平均计息负债成本率之差 | | core_level_capital | 核心一级资本(2013) | 核心一级资本 | | net_core_level_capital | 核心一级资本净额(2013) | 核心一级资本净额 | | core_level_capital_adequacy_ratio | 核心一级资本充足率(2013) | 核心一级资本充足率 | | net_level_1_capital | 一级资本净额(2013) | 一级资本净额 | | level_1_capital_adequacy_ratio | 一级资本充足率(2013) | 一级资本充足率 | | net_capital | 资本净额(2013) | 资本净额为核心资本加上附属资本减去扣减项 | | capital_adequacy_ratio | 资本充足率(2013) | 资本充足率是一个银行的资产对其风险的比率 | | weighted_risky_asset | 风险加权资产合计(2013) | 风险加权资产合计 | | deposit_loan_ratio | 存贷款比例 | 存贷款比例是指将银行的贷款总额与存款总额进行对比 | | short_term_asset_liquidity_ratio_CNY | 短期资产流动性比例(人民币) | 人民币的短期资产流动性比例 | | short_term_asset_liquidity_ratio_FC | 短期资产流动性比例(外币) | 外币的短期资产流动性比例 | | Nonperforming_loan_rate | 不良贷款率 | 金融机构不良贷款占总贷款余额的比重 | | single_largest_customer_loan_ratio | 单一最大客户贷款比例 | 单一最大客户贷款额占全部贷款余额的比例 | | top_ten_customer_loan_ratio | 最大十家客户贷款比例 | 最大十家客户贷款额占全部贷款余额的比例 | | bad_debts_reserve | 贷款呆账准备金 | 贷款呆账准备金 | | non_performing_loan_provision_coverage | 不良贷款拨备覆盖率 | 不良贷款拨备覆盖率是衡量商业银行贷款损失准备金计提是否充足的一个重要指标。该项指标从宏观上反映银行贷款的风险程度及社会经济环境、诚信等方面的情况。不良贷款拨备覆盖率=贷款损失准备/(次级类资产+可疑类资产+损失类资产)*100% | | cost_to_income_ratio | 成本收入比 | 成本收入比为业务及管理费占营业收入的比例。成本收入比=业务及管理费/营业收入 | | former_core_capital | 核心资本 (旧) | 核心资本净额为核心资本减去核心资本扣减项。 | | former_net_core_capital | 核心资本净额(旧) | | | former_net_core_capital_adequacy_ratio | 核心资本充足率 (旧) | 核心资本充足率是指核心资本与加权风险资产总额的比率 | | former_net_capital | 资本净额 (旧) | 资本净额为核心资本加上附属资本减去扣减项 | | former_capital_adequacy_ratio | 资本充足率 (旧) | 资本充足率是一个银行的资产对其风险的比率 | | former_weighted_risky_asset | 加权风险资产净额(旧) | 加权风险资产净额是指对银行的资产加以分类,根据不同类别资产的风险性质确定不同的风险系数,以这种风险系数为权重求得的资产净额。 | | **银行贷款的五级分类指标** | | | | normal_amount | 正常-金额 | 正常类贷款余额 | | normal_amount_ratio | 正常金额占比 | 正常类贷款占贷款总额的比例。正常金额占比=正常类贷款/(正常类贷款+关注类贷款+次级类贷款+可疑类贷款+损失类贷款)*100% | | concerned_amount | 关注-金额 | 关注类贷款余额 | | concerned_amount_ratio | 关注金额占比 | 关注类贷款占贷款总额的比例。关注金额占比=关注类贷款/(正常类贷款+关注类贷款+次级类贷款+可疑类贷款+损失类贷款)*100% | | secondary_amount | 次级-金额 | 次级类贷款余额 | | secondary_amount_ratio | 次级金额占比 | 次级类贷款占贷款总额的比例。次级金额占比=次级类贷款/(正常类贷款+关注类贷款+次级类贷款+可疑类贷款+损失类贷款)*100% | | suspicious_amount | 可疑-金额 | 可疑类贷款余额 | | suspicious_amount_ratio | 可疑金额占比 | 可疑类贷款占贷款总额的比例。可疑金额占比=可疑类贷款/(正常类贷款+关注类贷款+次级类贷款+可疑类贷款+损失类贷款)*100% | | loss_amount | 损失-金额 | 损失类贷款余额 | | loss_amount_ratio | 损失金额占比 | 损失类贷款占贷款总额的比例。损失金额占比=损失类贷款/(正常类贷款+关注类贷款+次级类贷款+可疑类贷款+损失类贷款)*100% | | **平均贷款利率** | | | | short_term_loan_average_balance | 短期贷款-平均余额 | 短期贷款的平均余额 | | short_term_loan_annualized_average_interest_rate | 短期贷款-年平均利率 | 短期贷款的年平均利率 | | mid_term_loan_annualized_average_balance | 中长期贷款-平均余额 | 中长期贷款的平均余额 | | mid_term_loan_annualized_average_interest_rate | 中长期贷款-年平均利率 | 中长期贷款的年平均利率 | | enterprise_deposits_average_balance | 企业存款-平均余额 | 企业存款的平均余额 | | enterprise_deposits_average_interest_rate | 企业存款-年平均利率 | 企业存款的年平均利率 | | savings_deposit_average_balance | 储蓄存款-平均余额 | 储蓄存款的平均余额 | | savings_deposit_average_interest_rate | 储蓄存款-年平均利率 | 储蓄存款的年平均利率 +``` + +# 获取2019年银行业专项指标 +df=get_fundamentals(query(bank_indicator),statDate=2019)[:5] +# pubDate公司发布财报的日期,statDate财报统计的季度的最后一天,total_loan贷款总额 +print(df[['code','pubDate','statDate','total_loan']]) + + code pubDate statDate total_loan +0 000001.XSHE 2020-02-14 2019-12-31 2.328909e+12 +1 600036.XSHG 2020-03-21 2019-12-31 4.500199e+12 +2 002948.XSHE 2020-03-21 2019-12-31 1.735679e+11 +3 601860.XSHG 2020-03-25 2019-12-31 1.019562e+11 +4 601658.XSHG 2020-03-26 2019-12-31 4.974186e+12 +``` + +security_indicator券商 按年度更新,统计周期是一年度。通过get_fundamentals(query_object,statDate=None) statDate传入年查询。当传入 date 参数 或 statDate 传入季度时返回空。 **表名: security_indicator** | 列名 | 列的含义 | 解释 | | -------------------------------------- | --------------------------------- | ------------------------------------------------------------ | | code | 股票代码 | 带后缀.XSHE/.XSHG | | pubDate | 日期 | 公司发布财报日期 | | statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | | net_capital | 净资本 | 净资本是衡量证券公司资本充足和资产流动性状况的一个综合性监管指标,是证券公司净资产中流动性较高、可快速变现的部分,它表明证券公司可随时用于变现以满足支付需要的资金数额。为公布的母公司净资本及相关风险控制指标之一。 | | net_assets | 净资产 | 为公布的母公司净资本及相关风险控制指标之一。 | | net_capital_to_reserve | 净资本/各项风险准备之和 | 为公布的母公司净资本及相关风险控制指标之一。 | | net_capital_to_net_asset | 净资本/净资产 | 净资本/净资产 | | net_capital_to_debt | 净资本/负债 | 净资本/负债 | | net_asset_to_debt | 净资产/负债 | 净资产/负债 | | net_capital_to_sales_department_number | 净资本/营业部家数 | 净资本/营业部家数 | | own_stock_to_net_capital | 自营股票规模/净资本 | 自营股票规模/净资本 | | own_security_to_net_capital | 证券自营业务规模/净资本 | 证券自营业务规模/净资本 | | operational_risk_reserve | 营运风险堆备 | 营运风险堆备 | | broker_risk_reserve | 经纪业务风险堆备 | 经纪业务风险堆备 | | own_security_risk_reserve | 证券自营业务风险准备 | 证券自营业务风险准备 | | security_underwriting_reserve | 证券承消业务风险准备 | 证券承消业务风险准备 | | asset_management_reserve | 证券资产菅理业务风险准备 | 证券资产菅理业务风险准备 | | own_equity_derivatives_to_net_capital | 自营权益类证券及证券衍生品/净资本 | 自营权益类证券及证券衍生品/净资本 | | own_fixed_income_to_net_capital | 自营固定收益类证券/净资本 | 自营固定收益类证券/净资本 | | margin_trading_reserve | 融资融券业务风险资本准备 | 融资融券业务风险资本准备 | | branch_risk_reserve | 分支机构风险资本堆备 | 分支机构风险资本堆备 | +``` + +# 获取券商业专项指标 +df=get_fundamentals(query(security_indicator),statDate=2019)[:5] +# pubDate公司发布财报的日期,statDate财报统计的季度的最后一天,net_capital净资本 +print(df[['code','pubDate','statDate','net_capital']]) + + code pubDate statDate net_capital +0 000987.XSHE 2020-02-29 2019-12-31 8.279037e+09 +1 601878.XSHG 2020-03-19 2019-12-31 1.251134e+10 +2 600030.XSHG 2020-03-20 2019-12-31 9.490422e+10 +3 002736.XSHE 2020-03-20 2019-12-31 4.005491e+10 +4 601211.XSHG 2020-03-25 2019-12-31 8.597149e+10 +``` + +insurance_indicator保险 按年度更新,统计周期是一年度。 通过get_fundamentals(query_object,statDate=None) statDate传入年查询。当传入 date 参数 或 statDate 传入季度时返回空。 **表名: insurance_indicator** | 列名 | 列的含义 | 解释 | | ------------------------------- | ---------------------------- | ---------------------------------------- | | code | 股票代码 | 带后缀.XSHE/.XSHG | | pubDate | 日期 | 公司发布财报日期 | | statDate | 日期 | 财报统计的季度的最后一天, 比如2016-12-31 | | investment_assets | 投资资产 | 投资资产 | | total_investment_rate_of_return | 总投资收益率 | 总投资收益率 | | net_investment_rate_of_return | 净投资收益率 | 净投资收益率 | | earned_premium | 己赚保费 | 己赚保费 | | earned_premium_growth_rate | 己赚保费增长率 | 己赚保费增长率 | | payoff_cost | 赔付支出 | 赔付支出 | | compensation_rate | 退保率(寿险业务) | 寿险业务退保率 | | not_expired_duty_reserve | 未到期责任准备金(产险业务) | 产险业务未到期责任准备金 | | outstanding_claims_reserve | 未决赔款准备金(产险业务) | 产险业务未决赔款准备金 | | comprehensive_cost_ratio | 综台成本率(产险业务) | 产险业务综台成本率 | | comprehensive_compensation_rate | 综台赔付率(产险业务) | 产险业务综台赔付率 | | solvency_adequacy_ratio | 偿付能力充足率 | 偿付能力充足率 | | actual_capital | 实际资本 | 实际资本 | | minimum_capital | 最低资本 | 最低资本 | +``` + +# 获取保险业专项指标 +df=get_fundamentals(query(insurance_indicator),statDate=2019).tail(5) +# pubDate公司发布财报的日期,statDate财报统计的季度的最后一天,net_capital净资本 +df[['code','pubDate','statDate','total_investment_rate_of_return']] + + code pubDate statDate total_investment_rate_of_return +1 601601.XSHG 2020-03-23 2019-12-31 5.40 +2 601628.XSHG 2020-03-26 2019-12-31 5.23 +3 601336.XSHG 2020-03-26 2019-12-31 4.90 +4 000627.XSHE 2020-04-15 2019-12-31 NaN +5 600291.XSHG 2020-04-30 2019-12-31 -2.18 +``` + +### 报告期财务数据 + +#### 通用财务报表 + +- **更新时间:2005至今,每天18:00-24:00更新** + +方法描述利润表 合并利润表、母公司利润表 ### 合并利润表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_INCOME_STATEMENT).filter(finance.STK_INCOME_STATEMENT.code==code).limit(n)) +``` + + 获取上市公司定期公告中公布的合并利润表数据(2007版) **参数:** - **query(finance.STK_INCOME_STATEMENT)**:表示从finance.STK_INCOME_STATEMENT这张表中查询上市公司定期公告中公布的合并利润表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_INCOME_STATEMENT**:代表上市公司合并利润表,收录了上市公司定期公告中公布的合并利润表数据,表结构和字段信息如下: - **filter(finance.STK_INCOME_STATEMENT.code==code)**:指定筛选条件,通过finance.STK_INCOME_STATEMENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_INCOME_STATEMENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的合并利润表信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询贵州茅台2015年之后公告的合并利润表数据,取出合并利润表中本期的营业总收入,归属于母公司的净利润 +from jqdatasdk import finance +q=query(finance.STK_INCOME_STATEMENT.company_name, + finance.STK_INCOME_STATEMENT.code, + finance.STK_INCOME_STATEMENT.pub_date, + finance.STK_INCOME_STATEMENT.start_date, + finance.STK_INCOME_STATEMENT.end_date, + finance.STK_INCOME_STATEMENT.total_operating_revenue, +finance.STK_INCOME_STATEMENT.np_parent_company_owners).filter(finance.STK_INCOME_STATEMENT.code=='600519.XSHG',finance.STK_INCOME_STATEMENT.pub_date>='2015-01-01',finance.STK_INCOME_STATEMENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 + + total_operating_revenue np_parent_company_owners +0 3.221721e+10 1.534980e+10 +1 8.760368e+09 4.364902e+09 +2 1.618565e+10 7.888232e+09 +3 2.373432e+10 1.142464e+10 +4 3.344686e+10 1.550309e+10 +5 1.025087e+10 4.889272e+09 +6 1.873762e+10 8.802637e+09 +7 2.753274e+10 1.246558e+10 +``` + + ### 母公司利润表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_INCOME_STATEMENT_PARENT).filter(finance.STK_INCOME_STATEMENT_PARENT.code==code).limit(n)) +``` + + 获取上市公司母公司利润的信息(2007版) **参数:** - **query(finance.STK_INCOME_STATEMENT_PARENT)**:表示从finance.STK_INCOME_STATEMENT_PARENT这张表中查询上市公司母公司利润表的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_INCOME_STATEMENT_PARENT**:代表上市公司母公司利润表,收录了上市公司母公司的利润信息,表结构和字段信息如下: - **filter(finance.STK_INCOME_STATEMENT_PARENT.code==code)**:指定筛选条件,通过finance.STK_INCOME_STATEMENT_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_INCOME_STATEMENT_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的母公司利润表信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询贵州茅台2015年之后公告的母公司利润表数据,取出母公司利润表中本期的营业总收入,归属于母公司所有者的净利润 +from jqdatasdk import finance +q=query(finance.STK_INCOME_STATEMENT_PARENT.company_name, + finance.STK_INCOME_STATEMENT_PARENT.code, + finance.STK_INCOME_STATEMENT_PARENT.pub_date, + finance.STK_INCOME_STATEMENT_PARENT.start_date, + finance.STK_INCOME_STATEMENT_PARENT.end_date, + finance.STK_INCOME_STATEMENT_PARENT.total_operating_revenue, +finance.STK_INCOME_STATEMENT_PARENT.np_parent_company_owners).filter(finance.STK_INCOME_STATEMENT_PARENT.code=='600519.XSHG',finance.STK_INCOME_STATEMENT_PARENT.pub_date>='2015-01-01',finance.STK_INCOME_STATEMENT_PARENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 + + total_operating_revenue np_parent_company_owners +0 6.878165e+09 1.028603e+10 +1 1.886084e+09 -5.773331e+07 +2 3.571872e+09 -1.556184e+08 +3 5.411957e+09 9.476542e+09 +4 8.843334e+09 9.611173e+09 +5 1.507658e+09 8.850591e+09 +6 3.608903e+09 8.733012e+09 +7 5.430884e+09 8.002128e+09 +``` + + **字段信息展示** | 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0:本期,1:上期 | +| source_id | 报表来源编码 | int | 如下 报表来源编码 | +| source | 报表来源 | varchar(60) | 选择时程序自动填入 | +| total_operating_revenue | 营业总收入 | decimal(20,4) | | +| operating_revenue | 营业收入 | decimal(20,4) | | +| total_operating_cost | 营业总成本 | decimal(20,4) | | +| operating_cost | 营业成本 | decimal(20,4) | | +| operating_tax_surcharges | 营业税金及附加 | decimal(20,4) | | +| sale_expense | 销售费用 | decimal(20,4) | | +| administration_expense | 管理费用 | decimal(20,4) | | +| exploration_expense | 堪探费用 | decimal(20,4) | 勘探费用用于核算企业(石油天然气开采)核算的油气勘探过程中发生的地质调查、物理化学勘探各项支出和非成功探井等支出。 | +| financial_expense | 财务费用 | decimal(20,4) | | +| asset_impairment_loss | 资产减值损失 | decimal(20,4) | | +| fair_value_variable_income | 公允价值变动净收益 | decimal(20,4) | | +| investment_income | 投资收益 | decimal(20,4) | | +| invest_income_associates | 对联营企业和合营企业的投资收益 | decimal(20,4) | | +| exchange_income | 汇兑收益 | decimal(20,4) | | +| other_items_influenced_income | 影响营业利润的其他科目 | decimal(20,4) | | +| operating_profit | 营业利润 | decimal(20,4) | | +| subsidy_income | 补贴收入 | decimal(20,4) | | +| non_operating_revenue | 营业外收入 | decimal(20,4) | | +| non_operating_expense | 营业外支出 | decimal(20,4) | | +| disposal_loss_non_current_liability | 非流动资产处置净损失 | decimal(20,4) | | +| other_items_influenced_profit | 影响利润总额的其他科目 | decimal(20,4) | | +| total_profit | 利润总额 | decimal(20,4) | | +| income_tax | 所得税 | decimal(20,4) | | +| other_items_influenced_net_profit | 影响净利润的其他科目 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| np_parent_company_owners | 归属于母公司所有者的净利润 | decimal(20,4) | | +| minority_profit | 少数股东损益 | decimal(20,4) | | +| eps | 每股收益 | decimal(20,4) | | +| basic_eps | 基本每股收益 | decimal(20,4) | | +| diluted_eps | 稀释每股收益 | decimal(20,4) | | +| other_composite_income | 其他综合收益 | decimal(20,4) | | +| total_composite_income | 综合收益总额 | decimal(20,4) | | +| ci_parent_company_owners | 归属于母公司所有者的综合收益总额 | decimal(20,4) | | +| ci_minority_owners | 归属于少数股东的综合收益总额 | decimal(20,4) | | +| interest_income | 利息收入 | decimal(20,4) | | +| premiums_earned | 已赚保费 | decimal(20,4) | | +| commission_income | 手续费及佣金收入 | decimal(20,4) | | +| interest_expense | 利息支出 | decimal(20,4) | | +| commission_expense | 手续费及佣金支出 | decimal(20,4) | | +| refunded_premiums | 退保金 | decimal(20,4) | | +| net_pay_insurance_claims | 赔付支出净额 | decimal(20,4) | | +| withdraw_insurance_contract_reserve | 提取保险合同准备金净额 | decimal(20,4) | | +| policy_dividend_payout | 保单红利支出 | decimal(20,4) | | +| reinsurance_cost | 分保费用 | decimal(20,4) | | +| non_current_asset_disposed | 非流动资产处置利得 | decimal(20,4) | | +| other_earnings | 其他收益 | decimal(20,4) | | +| asset_deal_income | 资产处置收益 | decimal(20,4) | | +| sust_operate_net_profit | 持续经营净利润 | decimal(20,4) | | +| discon_operate_net_profit | 终止经营净利润 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失 | decimal(20,4) | | +| net_open_hedge_income | 净敞口套期收益 | decimal(20,4) | | +| interest_cost_fin | 财务费用-利息费用 | decimal(20,4) | | +| interest_income_fin | 财务费用-利息收入 | decimal(20,4) | | +| rd_expenses | 研发费用 | decimal(20,4) | | + + **报表来源编码** | 编码 | 名称 | | ------ | ---------- | | 321001 | 招募说明书 | | 321002 | 上市公告书 | | 321003 | 定期报告 | | 321004 | 预披露公告 | | 321005 | 换股报告书 | | 321099 | 其他 | 现金流量表合并现金流量表、母公司现金流量表 ## 合并现金流量表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_CASHFLOW_STATEMENT).filter(finance.STK_CASHFLOW_STATEMENT.code==code).limit(n)) +``` + + 获取上市公司定期公告中公布的合并现金流量表数据(2007版) **参数:** - **query(finance.STK_CASHFLOW_STATEMENT)**:表示从finance.STK_CASHFLOW_STATEMENT这张表中查询上市公司定期公告中公布的合并现金流量表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_CASHFLOW_STATEMENT**:代表上市公司合并现金流量表,收录了上市公司定期公告中公布的合并现金流量表数据,表结构和字段信息如下: - **filter(finance.STK_CASHFLOW_STATEMENT.code==code)**:指定筛选条件,通过finance.STK_CASHFLOW_STATEMENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_CASHFLOW_STATEMENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司合并现金流量表数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询贵州茅台2015年之后公告的合并现金流量表数据,取出本期的经营活动现金流量净额,投资活动现金流量净额,以及筹资活动现金流量净额 +from jqdatasdk import * +q=query(finance.STK_CASHFLOW_STATEMENT.company_name, + finance.STK_CASHFLOW_STATEMENT.code, + finance.STK_CASHFLOW_STATEMENT.pub_date, + finance.STK_CASHFLOW_STATEMENT.start_date, + finance.STK_CASHFLOW_STATEMENT.end_date, + finance.STK_CASHFLOW_STATEMENT.net_operate_cash_flow, + finance.STK_CASHFLOW_STATEMENT.net_invest_cash_flow, +finance.STK_CASHFLOW_STATEMENT.net_finance_cash_flow).filter(finance.STK_CASHFLOW_STATEMENT.code=='600519.XSHG',finance.STK_CASHFLOW_STATEMENT.pub_date>='2015-01-01',finance.STK_CASHFLOW_STATEMENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 + + net_operate_cash_flow net_invest_cash_flow net_finance_cash_flow +0 1.263252e+10 -4.580160e+09 -5.041427e+09 +1 2.111634e+09 -8.540453e+08 -3.464185e+07 +2 4.901688e+09 -1.290715e+09 -3.494246e+07 +3 1.142339e+10 -1.782995e+09 -5.587555e+09 +4 1.743634e+10 -2.048790e+09 -5.588020e+09 +5 7.436044e+09 -4.213453e+08 -5.085073e+08 +6 1.360396e+10 -5.555078e+08 -3.283074e+09 +7 3.253533e+10 -7.734874e+08 -8.284064e+09 +``` + + ### 母公司现金流量表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_CASHFLOW_STATEMENT_PARENT).filter(finance.STK_CASHFLOW_STATEMENT_PARENT.code==code).limit(n)) +``` + + 获取上市公司定期公告中公布的母公司现金流量表(2007版) **参数:** - **query(finance.STK_CASHFLOW_STATEMENT_PARENT)**:表示从finance.STK_CASHFLOW_STATEMENT_PARENT这张表中查询上市公司定期公告中公布的母公司现金流量表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_CASHFLOW_STATEMENT_PARENT**:代表上市公司母公司现金流量表,收录了上市公司定期公告中公布的母公司现金流量表数据,表结构和字段信息如下: - **filter(finance.STK_CASHFLOW_STATEMENT_PARENT.code==code)**:指定筛选条件,通过finance.STK_CASHFLOW_STATEMENT_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_CASHFLOW_STATEMENT_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的母公司现金流量表信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询贵州茅台2015年之后公告的母公司现金流量表数据,取出本期的经营活动现金流量净额,投资活动现金流量净额,以及筹资活动现金流量净额 +from jqdatasdk import * +q=query(finance.STK_CASHFLOW_STATEMENT_PARENT.company_name, + finance.STK_CASHFLOW_STATEMENT_PARENT.code, + finance.STK_CASHFLOW_STATEMENT_PARENT.pub_date, + finance.STK_CASHFLOW_STATEMENT_PARENT.start_date, + finance.STK_CASHFLOW_STATEMENT_PARENT.end_date, + finance.STK_CASHFLOW_STATEMENT_PARENT.net_operate_cash_flow, + finance.STK_CASHFLOW_STATEMENT_PARENT.net_invest_cash_flow, +finance.STK_CASHFLOW_STATEMENT_PARENT.net_finance_cash_flow).filter(finance.STK_CASHFLOW_STATEMENT_PARENT.code=='600519.XSHG',finance.STK_CASHFLOW_STATEMENT_PARENT.pub_date>='2015-01-01',finance.STK_CASHFLOW_STATEMENT_PARENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 + + net_operate_cash_flow net_invest_cash_flow net_finance_cash_flow +0 -2.713989e+09 6.192758e+09 -4.562999e+09 +1 2.082144e+09 -1.135273e+09 2.200000e+07 +2 3.259594e+09 -1.568552e+09 2.200000e+07 +3 2.284079e+09 8.054632e+08 -5.040068e+09 +4 1.975006e+09 7.412721e+09 -5.018068e+09 +5 6.073286e+08 8.692869e+07 NaN +6 -7.648020e+08 7.468597e+09 -2.774566e+09 +7 -7.797669e+08 8.882256e+09 -7.751997e+09 +``` + + **字段信息展示:** | 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下报表来源编码 | +| source | 报表来源 | varchar(60) | | +| goods_sale_and_service _render_cash | 销售商品、提供劳务收到的现金 | decimal(20,4) | | +| tax_levy_refund | 收到的税费返还 | decimal(20,4) | | +| subtotal_operate_cash_inflow | 经营活动现金流入小计 | decimal(20,4) | | +| goods_and_services_cash_paid | 购买商品、接受劳务支付的现金 | decimal(20,4) | | +| staff_behalf_paid | 支付给职工以及为职工支付的现金 | decimal(20,4) | | +| tax_payments | 支付的各项税费 | decimal(20,4) | | +| subtotal_operate_cash_outflow | 经营活动现金流出小计 | decimal(20,4) | | +| net_operate_cash_flow | 经营活动现金流量净额 | decimal(20,4) | | +| invest_withdrawal_cash | 收回投资收到的现金 | decimal(20,4) | | +| invest_proceeds | 取得投资收益收到的现金 | decimal(20,4) | | +| fix_intan_other_asset_dispo_cash | 处置固定资产、无形资产和其他长期资产收回的现金净额 | decimal(20,4) | | +| net_cash_deal_subcompany | 处置子公司及其他营业单位收到的现金净额 | decimal(20,4) | | +| subtotal_invest_cash_inflow | 投资活动现金流入小计 | decimal(20,4) | | +| fix_intan_other_asset_acqui_cash | 购建固定资产、无形资产和其他长期资产支付的现金 | decimal(20,4) | | +| invest_cash_paid | 投资支付的现金 | decimal(20,4) | | +| impawned_loan_net_increase | 质押贷款净增加额 | decimal(20,4) | | +| net_cash_from_sub_company | 取得子公司及其他营业单位支付的现金净额 | decimal(20,4) | | +| subtotal_invest_cash_outflow | 投资活动现金流出小计 | decimal(20,4) | | +| net_invest_cash_flow | 投资活动现金流量净额 | decimal(20,4) | | +| cash_from_invest | 吸收投资收到的现金 | decimal(20,4) | | +| cash_from_borrowing | 取得借款收到的现金 | decimal(20,4) | | +| cash_from_bonds_issue | 发行债券收到的现金 | decimal(20,4) | | +| subtotal_finance_cash_inflow | 筹资活动现金流入小计 | decimal(20,4) | | +| borrowing_repayment | 偿还债务支付的现金 | decimal(20,4) | | +| dividend_interest_payment | 分配股利、利润或偿付利息支付的现金 | decimal(20,4) | | +| subtotal_finance_cash_outflow | 筹资活动现金流出小计 | decimal(20,4) | | +| net_finance_cash_flow | 筹资活动现金流量净额 | decimal(20,4) | | +| exchange_rate_change_effect | 汇率变动对现金的影响 | decimal(20,4) | | +| other_reason_effect_cash | 其他原因对现金的影响 | decimal(20,4) | | +| cash_equivalent_increase | 现金及现金等价物净增加额 | decimal(20,4) | | +| cash_equivalents_at_beginning | 期初现金及现金等价物余额 | decimal(20,4) | | +| cash_and_equivalents_at_end | 期末现金及现金等价物余额 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| assets_depreciation_reserves | 资产减值准备 | decimal(20,4) | | +| fixed_assets_depreciation | 固定资产折旧、油气资产折耗、生产性生物资产折旧 | decimal(20,4) | | +| intangible_assets_amortization | 无形资产摊销 | decimal(20,4) | | +| defferred_expense_amortization | 长期待摊费用摊销 | decimal(20,4) | | +| fix_intan_other_asset_dispo_loss | 处置固定资产、无形资产和其他长期资产的损失 | decimal(20,4) | | +| fixed_asset_scrap_loss | 固定资产报废损失 | decimal(20,4) | | +| fair_value_change_loss | 公允价值变动损失 | decimal(20,4) | | +| financial_cost | 财务费用 | decimal(20,4) | | +| invest_loss | 投资损失 | decimal(20,4) | | +| deffered_tax_asset_decrease | 递延所得税资产减少 | decimal(20,4) | | +| deffered_tax_liability_increase | 递延所得税负债增加 | decimal(20,4) | | +| inventory_decrease | 存货的减少 | decimal(20,4) | | +| operate_receivables_decrease | 经营性应收项目的减少 | decimal(20,4) | | +| operate_payable_increase | 经营性应付项目的增加 | decimal(20,4) | | +| others | 其他 | decimal(20,4) | | +| net_operate_cash_flow_indirect | 经营活动现金流量净额_间接法 | decimal(20,4) | | +| debt_to_capital | 债务转为资本 | decimal(20,4) | | +| cbs_expiring_in_one_year | 一年内到期的可转换公司债券 | decimal(20,4) | | +| financial_lease_fixed_assets | 融资租入固定资产 | decimal(20,4) | | +| cash_at_end | 现金的期末余额 | decimal(20,4) | | +| cash_at_beginning | 现金的期初余额 | decimal(20,4) | | +| equivalents_at_end | 现金等价物的期末余额 | decimal(20,4) | | +| equivalents_at_beginning | 现金等价物的期初余额 | decimal(20,4) | | +| other_reason_effect_cash_indirect | 其他原因对现金的影响_间接法 | decimal(20,4) | | +| cash_equivalent_increase_indirect | 现金及现金等价物净增加额_间接法 | decimal(20,4) | | +| net_deposit_increase | 客户存款和同业存放款项净增加额 | decimal(20,4) | | +| net_borrowing_from_central_bank | 向中央银行借款净增加额 | decimal(20,4) | | +| net_borrowing_from_finance_co | 向其他金融机构拆入资金净增加额 | decimal(20,4) | | +| net_original_insurance_cash | 收到原保险合同保费取得的现金 | decimal(20,4) | | +| net_cash_received_from_ reinsurance_business | 收到再保险业务现金净额 | decimal(20,4) | | +| net_insurer_deposit_investment | 保户储金及投资款净增加额 | decimal(20,4) | | +| net_deal_trading_assets | 处置以公允价值计量且其变动计入当期损益的金融资产净增加额 | decimal(20,4) | | +| interest_and_commission_cashin | 收取利息、手续费及佣金的现金 | decimal(20,4) | | +| net_increase_in_placements | 拆入资金净增加额 | decimal(20,4) | | +| net_buyback | 回购业务资金净增加额 | decimal(20,4) | | +| net_loan_and_advance_increase | 客户贷款及垫款净增加额 | decimal(20,4) | | +| net_deposit_in_cb_and_ib | 存放中央银行和同业款项净增加额 | decimal(20,4) | | +| original_compensation_paid | 支付原保险合同赔付款项的现金 | decimal(20,4) | | +| handling_charges_and_commission | 支付利息、手续费及佣金的现金 | decimal(20,4) | | +| policy_dividend_cash_paid | 支付保单红利的现金 | decimal(20,4) | | +| cash_from_mino_s_invest_sub | 子公司吸收少数股东投资收到的现金 | decimal(20,4) | | +| proceeds_from_sub_to_mino_s | 子公司支付给少数股东的股利、利润 | decimal(20,4) | | +| investment_property_depreciation | 投资性房地产的折旧及摊销 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失(现金流量表补充科目) | decimal(20,4) | | + + **报表来源编码** | 编码 | 名称 | | ------ | ---------- | | 321001 | 招募说明书 | | 321002 | 上市公告书 | | 321003 | 定期报告 | | 321004 | 预披露公告 | | 321005 | 换股报告书 | | 321099 | 其他 | 资产负债表合并资产负债表、母公司现金资产负债表 ### 合并资产负债表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_BALANCE_SHEET).filter(finance.STK_BALANCE_SHEET.code==code).limit(n)) +``` + + 获取上市公司定期公告中公布的合并资产负债表(2007版) **参数:** - **query(finance.STK_BALANCE_SHEET)**:表示从finance.STK_BALANCE_SHEET这张表中查询上市公司定期公告中公布的合并资产负债表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_BALANCE_SHEET**:代表上市公司合并资产负债表信息,收录了上市公司定期公告中公布的合并资产负债表数据,表结构和字段信息如下: - **filter(finance.STK_BALANCE_SHEET.code==code)**:指定筛选条件,通过finance.STK_BALANCE_SHEET.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_BALANCE_SHEET.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的合并资产负债表信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询贵州茅台2015年之后公告的合并资产负债表数据,取出本期的货币资金,总资产和总负债 +from jqdatasdk import * +q=query(finance.STK_BALANCE_SHEET.company_name, + finance.STK_BALANCE_SHEET.code, + finance.STK_BALANCE_SHEET.pub_date, + finance.STK_BALANCE_SHEET.start_date, + finance.STK_BALANCE_SHEET.end_date, + finance.STK_BALANCE_SHEET.cash_equivalents, + finance.STK_BALANCE_SHEET.total_assets, + finance.STK_BALANCE_SHEET.total_liability +).filter(finance.STK_BALANCE_SHEET.code=='600519.XSHG',finance.STK_BALANCE_SHEET.pub_date>='2015-01-01',finance.STK_BALANCE_SHEET.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 + + cash_equivalents total_assets total_liability +0 2.771072e+10 6.587317e+10 1.056161e+10 +1 2.842068e+10 6.876902e+10 8.838873e+09 +2 3.023650e+10 7.233774e+10 8.675962e+09 +3 3.053612e+10 7.755903e+10 1.564019e+10 +4 3.680075e+10 8.630146e+10 2.006729e+10 +5 4.377574e+10 9.069045e+10 1.974919e+10 +6 4.752806e+10 9.554650e+10 2.819334e+10 +7 6.199974e+10 1.051460e+11 3.386253e+10 +``` + + ### 母公司资产负债表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_BALANCE_SHEET_PARENT).filter(finance.STK_BALANCE_SHEET_PARENT.code==code).limit(n)) +``` + + 获取上市公司定期公告中公布的母公司资产负债表(2007版) **参数:** - **query(finance.STK_BALANCE_SHEET_PARENT)**:表示从finance.STK_BALANCE_SHEET_PARENT这张表中查询上市公司定期公告中公布的母公司资产负债表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_BALANCE_SHEET_PARENT**:代表上市公司母公司资产负债表信息,收录了上市公司定期公告中公布的母公司资产负债表数据,表结构和字段信息如下: - **filter(finance.STK_BALANCE_SHEET_PARENT.code==code)**:指定筛选条件,通过finance.STK_BALANCE_SHEET_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_BALANCE_SHEET_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的母公司资产负债表信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询贵州茅台2015年之后公告的母公司资产负债表数据,取出本期的货币资金,总资产和总负债 +from jqdatasdk import * +q=query(finance.STK_BALANCE_SHEET_PARENT.company_name, + finance.STK_BALANCE_SHEET_PARENT.code, + finance.STK_BALANCE_SHEET_PARENT.pub_date, + finance.STK_BALANCE_SHEET_PARENT.start_date, + finance.STK_BALANCE_SHEET_PARENT.end_date, + finance.STK_BALANCE_SHEET_PARENT.cash_equivalents, + finance.STK_BALANCE_SHEET_PARENT.total_assets, + finance.STK_BALANCE_SHEET_PARENT.total_liability +).filter(finance.STK_BALANCE_SHEET_PARENT.code=='600519.XSHG',finance.STK_BALANCE_SHEET_PARENT.pub_date>='2015-01-01',finance.STK_BALANCE_SHEET_PARENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 + + cash_equivalents total_assets total_liability +0 1.070530e+10 4.662489e+10 1.693767e+10 +1 1.165218e+10 4.903731e+10 1.940782e+10 +2 1.239635e+10 5.079041e+10 2.125881e+10 +3 8.754779e+09 5.396424e+10 1.979558e+10 +4 1.505296e+10 5.512518e+10 2.082189e+10 +5 1.574722e+10 6.608276e+10 2.292887e+10 +6 1.898219e+10 6.186466e+10 2.658035e+10 +7 1.540346e+10 5.697338e+10 2.241995e+10 +``` + + **字段信息展示:** | 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下 报表来源编码 | +| source | 报表来源 | varchar(60) | | +| cash_equivalents | 货币资金 | decimal(20,4) | | +| trading_assets | 交易性金融资产 | decimal(20,4) | | +| bill_receivable | 应收票据 | decimal(20,4) | | +| account_receivable | 应收账款 | decimal(20,4) | | +| advance_payment | 预付款项 | decimal(20,4) | | +| other_receivable | 其他应收款 | decimal(20,4) | | +| affiliated_company_receivable | 应收关联公司款 | decimal(20,4) | | +| interest_receivable | 应收利息 | decimal(20,4) | | +| dividend_receivable | 应收股利 | decimal(20,4) | | +| inventories | 存货 | decimal(20,4) | | +| expendable_biological_asset | 消耗性生物资产 | decimal(20,4) | 消耗性生物资产,是指为出售而持有的、或在将来收获为农产品的生物资产,包括生长中的大田作物、蔬菜、用材林,以及存栏代售的牲畜等 | +| non_current_asset_in_one_year | 一年内到期的非流动资产 | decimal(20,4) | | +| total_current_assets | 流动资产合计 | decimal(20,4) | | +| hold_for_sale_assets | 可供出售金融资产 | decimal(20,4) | | +| hold_to_maturity_investments | 持有至到期投资 | decimal(20,4) | | +| longterm_receivable_account | 长期应收款 | decimal(20,4) | | +| longterm_equity_invest | 长期股权投资 | decimal(20,4) | | +| investment_property | 投资性房地产 | decimal(20,4) | | +| fixed_assets | 固定资产 | decimal(20,4) | | +| constru_in_process | 在建工程 | decimal(20,4) | | +| construction_materials | 工程物资 | decimal(20,4) | | +| fixed_assets_liquidation | 固定资产清理 | decimal(20,4) | | +| biological_assets | 生产性生物资产 | decimal(20,4) | | +| oil_gas_assets | 油气资产 | decimal(20,4) | | +| intangible_assets | 无形资产 | decimal(20,4) | | +| development_expenditure | 开发支出 | decimal(20,4) | | +| good_will | 商誉 | decimal(20,4) | | +| long_deferred_expense | 长期待摊费用 | decimal(20,4) | | +| deferred_tax_assets | 递延所得税资产 | decimal(20,4) | | +| total_non_current_assets | 非流动资产合计 | decimal(20,4) | | +| total_assets | 资产总计 | decimal(20,4) | | +| shortterm_loan | 短期借款 | decimal(20,4) | | +| trading_liability | 交易性金融负债 | decimal(20,4) | | +| notes_payable | 应付票据 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| advance_peceipts | 预收款项 | decimal(20,4) | | +| salaries_payable | 应付职工薪酬 | decimal(20,4) | | +| taxs_payable | 应交税费 | decimal(20,4) | | +| interest_payable | 应付利息 | decimal(20,4) | | +| dividend_payable | 应付股利 | decimal(20,4) | | +| other_payable | 其他应付款 | decimal(20,4) | | +| affiliated_company_payable | 应付关联公司款 | decimal(20,4) | | +| non_current_liability_in_one_year | 一年内到期的非流动负债 | decimal(20,4) | | +| total_current_liability | 流动负债合计 | decimal(20,4) | | +| longterm_loan | 长期借款 | decimal(20,4) | | +| bonds_payable | 应付债券 | decimal(20,4) | | +| longterm_account_payable | 长期应付款 | decimal(20,4) | | +| specific_account_payable | 专项应付款 | decimal(20,4) | | +| estimate_liability | 预计负债 | decimal(20,4) | | +| deferred_tax_liability | 递延所得税负债 | decimal(20,4) | | +| total_non_current_liability | 非流动负债合计 | decimal(20,4) | | +| total_liability | 负债合计 | decimal(20,4) | | +| paidin_capital | 实收资本(或股本) | decimal(20,4) | | +| capital_reserve_fund | 资本公积 | decimal(20,4) | | +| specific_reserves | 专项储备 | decimal(20,4) | | +| surplus_reserve_fund | 盈余公积 | decimal(20,4) | | +| treasury_stock | 库存股 | decimal(20,4) | | +| retained_profit | 未分配利润 | decimal(20,4) | | +| equities_parent_company_owners | 归属于母公司所有者权益 | decimal(20,4) | | +| minority_interests | 少数股东权益 | decimal(20,4) | | +| foreign_currency_report_conv_diff | 外币报表折算价差 | decimal(20,4) | | +| irregular_item_adjustment | 非正常经营项目收益调整 | decimal(20,4) | | +| total_owner_equities | 所有者权益(或股东权益)合计 | decimal(20,4) | | +| total_sheet_owner_equities | 负债和所有者权益(或股东权益)合计 | decimal(20,4) | | +| other_comprehensive_income | 其他综合收益 | decimal(20,4) | | +| deferred_earning | 递延收益-非流动负债 | decimal(20,4) | | +| settlement_provi | 结算备付金 | decimal(20,4) | | +| lend_capital | 拆出资金 | decimal(20,4) | | +| loan_and_advance_current_assets | 发放贷款及垫款-流动资产 | decimal(20,4) | | +| derivative_financial_asset | 衍生金融资产 | decimal(20,4) | | +| insurance_receivables | 应收保费 | decimal(20,4) | | +| reinsurance_receivables | 应收分保账款 | decimal(20,4) | | +| reinsurance_contract_ reserves_receivable | 应收分保合同准备金 | decimal(20,4) | | +| bought_sellback_assets | 买入返售金融资产 | decimal(20,4) | | +| hold_sale_asset | 划分为持有待售的资产 | decimal(20,4) | | +| loan_and_advance_noncurrent_assets | 发放贷款及垫款-非流动资产 | decimal(20,4) | | +| borrowing_from_centralbank | 向中央银行借款 | decimal(20,4) | | +| deposit_in_interbank | 吸收存款及同业存放 | decimal(20,4) | | +| borrowing_capital | 拆入资金 | decimal(20,4) | | +| derivative_financial_liability | 衍生金融负债 | decimal(20,4) | | +| sold_buyback_secu_proceeds | 卖出回购金融资产款 | decimal(20,4) | | +| commission_payable | 应付手续费及佣金 | decimal(20,4) | | +| reinsurance_payables | 应付分保账款 | decimal(20,4) | | +| insurance_contract_reserves | 保险合同准备金 | decimal(20,4) | | +| proxy_secu_proceeds | 代理买卖证券款 | decimal(20,4) | | +| receivings_from_vicariously _sold_securities | 代理承销证券款 | decimal(20,4) | | +| hold_sale_liability | 划分为持有待售的负债 | decimal(20,4) | | +| estimate_liability_current | 预计负债-流动负债 | decimal(20,4) | | +| deferred_earning_current | 递延收益-流动负债 | decimal(20,4) | | +| preferred_shares_noncurrent | 优先股-非流动负债 | decimal(20,4) | | +| pepertual_liability_noncurrent | 永续债-非流动负债 | decimal(20,4) | | +| longterm_salaries_payable | 长期应付职工薪酬 | decimal(20,4) | | +| other_equity_tools | 其他权益工具 | decimal(20,4) | | +| preferred_shares_equity | 其中:优先股-所有者权益 | decimal(20,4) | | +| pepertual_liability_equity | 永续债-所有者权益 | decimal(20,4) | | +| other_current_assets | 其他流动资产 | decimal(20,4) | | +| other_non_current_assets | 其他非流动资产 | decimal(20,4) | | +| other_current_liability | 其他流动负债 | decimal(20,4) | | +| other_non_current_liability | 其他非流动负债 | decimal(20,4) | | +| ordinary_risk_reserve_fund | 一般风险准备 | decimal(20,4) | | +| contract_assets | 合同资产 | decimal(20,4) | | +| bond_invest | 债权投资 | decimal(20,4) | | +| other_bond_invest | 其他债权投资 | decimal(20,4) | | +| other_equity_tools_invest | 其他权益工具投资 | decimal(20,4) | | +| other_non_current_financial_assets | 其他非流动金融资产 | decimal(20,4) | | +| contract_liability | 合同负债 | decimal(20,4) | | +| receivable_fin | 应收款项融资 | decimal(20,4) | | +| usufruct_assets | 使用权资产 | decimal(20,4) | | +| bill_and_account_payable | 应付票据及应付账款 | decimal(20,4) | | +| bill_and_account_receivable | 应收票据及应收账款 | decimal(20,4) | | +| lease_liability | 租赁负债 | decimal(20,4) | | + + - **报表来源编码** | 编码 | 名称 | | ------ | ---------- | | 321001 | 招募说明书 | | 321002 | 上市公告书 | | 321003 | 定期报告 | | 321004 | 预披露公告 | | 321005 | 换股报告书 | | 321099 | 其他 | #### 金融类财务报表 + +- **更新时间:2005至今,每天18:00-24:00更新** + +方法描述利润表金融类合并利润表、母公司利润表 ### 合并利润表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FINANCE_INCOME_STATEMENT).filter(finance.FINANCE_INCOME_STATEMENT.code==code).limit(n)) +``` + + 获取金融类上市公司的合并利润表信息 **参数:** - **query(finance.FINANCE_INCOME_STATEMENT)**:表示从finance.FINANCE_INCOME_STATEMENT这张表中查询金融类上市公司合并利润表的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FINANCE_INCOME_STATEMENT**:代表金融类上市公司合并利润表,收录了金融类上市公司的合并利润表,表结构和字段信息如下: - filter(finance.FINANCE_INCOME_STATEMENT.code==code)**:指定筛选条件,通过finance.FINANCE_INCOME_STATEMENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_INCOME_STATEMENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的合并利润表信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询中国平安2015年之后公告的合并利润表数据,指定只取出本期数据 +from jqdatasdk import finance +q=query(finance.FINANCE_INCOME_STATEMENT).filter(finance.FINANCE_INCOME_STATEMENT.code=='601318.XSHG',finance.FINANCE_INCOME_STATEMENT.pub_date>='2015-01-01',finance.FINANCE_INCOME_STATEMENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + id company_id company_name code a_code b_code h_code \ +0 246 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +1 248 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +2 250 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +3 252 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +4 254 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +5 256 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +6 258 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +7 260 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None + + pub_date start_date end_date ... net_profit \ +0 2015-03-20 2014-01-01 2014-12-31 ... 4.793000e+10 +1 2015-04-30 2015-01-01 2015-03-31 ... 2.243600e+10 +2 2015-08-21 2015-01-01 2015-06-30 ... 3.991100e+10 +3 2015-10-28 2015-01-01 2015-09-30 ... 5.640500e+10 +4 2016-03-16 2015-01-01 2015-12-31 ... 6.517800e+10 +5 2016-04-27 2016-01-01 2016-03-31 ... 2.338900e+10 +6 2016-08-18 2016-01-01 2016-06-30 ... 4.630800e+10 +7 2016-10-28 2016-01-01 2016-09-30 ... 6.481300e+10 + + np_parent_company_owners minority_profit eps basic_eps diluted_eps \ +0 3.927900e+10 8.651000e+09 None 4.93 4.68 +1 1.996400e+10 2.472000e+09 None 2.19 2.19 +2 3.464900e+10 5.262000e+09 None 1.90 1.90 +3 4.827600e+10 8.129000e+09 None 2.64 2.64 +4 5.420300e+10 1.097500e+10 None 2.98 2.98 +5 2.070000e+10 2.689000e+09 None 1.16 1.16 +6 4.077600e+10 5.532000e+09 None 2.28 2.28 +7 5.650800e+10 8.305000e+09 None 3.17 3.16 + + other_composite_income total_composite_income ci_parent_company_owners \ +0 3.077400e+10 7.870400e+10 6.959000e+10 +1 -3.572000e+09 1.886400e+10 1.633600e+10 +2 7.100000e+07 3.998200e+10 3.450800e+10 +3 -1.316100e+10 4.324400e+10 3.488100e+10 +4 7.520000e+08 6.593000e+10 5.456500e+10 +5 -1.124600e+10 1.214300e+10 9.509000e+09 +6 -9.129000e+09 3.717900e+10 3.167900e+10 +7 -5.917000e+09 5.889600e+10 5.050300e+10 + + ci_minority_owners +0 9.114000e+09 +1 2.528000e+09 +2 5.474000e+09 +3 8.363000e+09 +4 1.136500e+10 +5 2.634000e+09 +6 5.500000e+09 +7 8.393000e+09 + +[8 rows x 66 columns] +``` + + ### 母公司利润表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FINANCE_INCOME_STATEMENT_PARENT).filter(finance.FINANCE_INCOME_STATEMENT_PARENT.code==code).limit(n)) +``` + + 获取金融类上市公司的母公司利润表信息 **参数:** - **query(finance.FINANCE_INCOME_STATEMENT_PARENT)**:表示从finance.FINANCE_INCOME_STATEMENT_PARENT这张表中查询金融类上市公司母公司利润表的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FINANCE_INCOME_STATEMENT_PARENT**:代表金融类上市公司母公司利润表,收录了金融类上市公司的母公司利润表,表结构和字段信息如下: - filter(finance.FINANCE_INCOME_STATEMENT_PARENT.code==code)**:指定筛选条件,通过finance.FINANCE_INCOME_STATEMENT_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_INCOME_STATEMENT_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的母公司利润表信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询中国平安2015年之后公告的母公司利润表数据,指定只取出本期数据 +from jqdatasdk import finance +q=query(finance.FINANCE_INCOME_STATEMENT_PARENT).filter(finance.FINANCE_INCOME_STATEMENT_PARENT.code=='601318.XSHG',finance.FINANCE_INCOME_STATEMENT_PARENT.pub_date>='2015-01-01',finance.FINANCE_INCOME_STATEMENT_PARENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + id company_id company_name code a_code b_code h_code \ +0 214 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +1 216 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +2 218 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +3 220 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +4 222 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +5 224 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +6 226 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None +7 228 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None None + + pub_date start_date end_date ... net_profit \ +0 2015-03-20 2014-01-01 2014-12-31 ... 7.214000e+09 +1 2015-04-30 2015-01-01 2015-03-31 ... 3.160000e+08 +2 2015-08-21 2015-01-01 2015-06-30 ... 8.390000e+09 +3 2015-10-28 2015-01-01 2015-09-30 ... 8.969000e+09 +4 2016-03-16 2015-01-01 2015-12-31 ... 1.028000e+10 +5 2016-04-27 2016-01-01 2016-03-31 ... 1.810000e+08 +6 2016-08-18 2016-01-01 2016-06-30 ... 1.385000e+10 +7 2016-10-28 2016-01-01 2016-09-30 ... 1.374700e+10 + + np_parent_company_owners minority_profit eps basic_eps diluted_eps \ +0 7.214000e+09 None None None None +1 3.160000e+08 None None None None +2 8.390000e+09 None None None None +3 8.969000e+09 None None None None +4 1.028000e+10 None None None None +5 1.810000e+08 None None None None +6 1.385000e+10 None None None None +7 1.374700e+10 None None None None + + other_composite_income total_composite_income ci_parent_company_owners \ +0 235000000.0 7.449000e+09 NaN +1 -47000000.0 2.690000e+08 NaN +2 85000000.0 8.475000e+09 NaN +3 191000000.0 9.160000e+09 NaN +4 436000000.0 1.071600e+10 NaN +5 -38000000.0 1.430000e+08 NaN +6 -48000000.0 1.380200e+10 1.380200e+10 +7 7000000.0 1.375400e+10 1.375400e+10 + + ci_minority_owners +0 None +1 None +2 None +3 None +4 None +5 None +6 None +7 None + +[8 rows x 66 columns] +``` + + **字段信息展示:** | 字段名称 | 中文名称 | 字段类型 | 含义 | |-------------------------------|-----------------|---------------|----------| | company_id | 公司ID | int | | | company_name | 公司名称 | varchar(100) | | | code | 公司主证券代码 | varchar(12) | | | a_code | A股代码 | varchar(12) | | | b_code | B股代码 | varchar(12) | | | h_code | H股代码 | varchar(12) | | | pub_date | 公告日期 | date | | | start_date | 开始日期 | date | | | end_date | 截止日期 | date | | | report_date | 报告期 | date | | | report_type | 报告期类型 | int | 0本期,1上期 | | source_id | 报表来源编码 | int | 如下报表来源编码 | | source | 报表来源 | varchar(60) | | | operating_revenue | 营业收入 | decimal(20,4) | | | interest_net_revenue | 利息净收入 | decimal(20,4) | | | interest_income | 利息收入 | decimal(20,4) | | | interest_expense | 利息支出 | decimal(20,4) | | | commission_net_income | 手续费及佣金净收入 | decimal(20,4) | | | commission_income | 手续费及佣金收入 | decimal(20,4) | | | commission_expense | 手续费及佣金支出 | decimal(20,4) | | | agent_security_income | 代理买卖证券业务净收入 | decimal(20,4) | | | sell_security_income | 证券承销业务净收入 | decimal(20,4) | | | manage_income | 委托客户管理资产业务净收入 | decimal(20,4) | | | premiums_earned | 已赚保费 | decimal(20,4) | | | assurance_income | 保险业务收入 | decimal(20,4) | | | premiums_income | 分保费收入 | decimal(20,4) | | | premiums_expense | 分出保费 | decimal(20,4) | | | prepare_money | 提取未到期责任准备金 | decimal(20,4) | | | investment_income | 投资收益 | decimal(20,4) | | | invest_income_associates | 对联营企业和合营企业的投资收益 | decimal(20,4) | | | fair_value_variable_income | 公允价值变动收益 | decimal(20,4) | | | exchange_income | 汇兑收益 | decimal(20,4) | | | other_income | 其他业务收入 | decimal(20,4) | | | operation_expense | 营业支出 | decimal(20,4) | | | refunded_premiums | 退保金 | decimal(20,4) | | | compensate_loss | 赔付支出 | decimal(20,4) | | | compensation_back | 摊回赔付支出 | decimal(20,4) | | | insurance_reserve | 提取保险责任准备金 | decimal(20,4) | | | insurance_reserve_back | 摊回保险责任准备金 | decimal(20,4) | | | policy_dividend_payout | 保单红利支出 | decimal(20,4) | | | reinsurance_cost | 分保费用 | decimal(20,4) | | | operating_tax_surcharges | 营业税金及附加 | decimal(20,4) | | | commission_expense2 | 手续费及佣金支出(保险专用) | decimal(20,4) | | | operation_manage_fee | 业务及管理费 | decimal(20,4) | | | separate_fee | 摊回分保费用 | decimal(20,4) | | | asset_impairment_loss | 资产减值损失 | decimal(20,4) | | | other_cost | 其他业务成本 | decimal(20,4) | | | operating_profit | 营业利润 | decimal(20,4) | | | subsidy_income | 补贴收入 | decimal(20,4) | | | non_operating_revenue | 营业外收入 | decimal(20,4) | | | non_operating_expense | 营业外支出 | decimal(20,4) | | | other_items_influenced_profit | 影响利润总额的其他科目 | decimal(20,4) | | | total_profit | 利润总额 | decimal(20,4) | | | income_tax_expense | 所得税费用 | decimal(20,4) | | | other_influence_net_profit | 影响净利润的其他科目 | decimal(20,4) | | | net_profit | 净利润 | decimal(20,4) | | | np_parent_company_owners | 归属于母公司股东的净利润 | decimal(20,4) | | | minority_profit | 少数股东损益 | decimal(20,4) | | | eps | 每股收益 | decimal(20,4) | | | basic_eps | 基本每股收益 | decimal(20,4) | | | diluted_eps | 稀释每股收益 | decimal(20,4) | | | other_composite_income | 其他综合收益 | decimal(20,4) | | | total_composite_income | 综合收益总额 | decimal(20,4) | | | ci_parent_company_owners | 归属于母公司的综合收益 | decimal(20,4) | | | ci_minority_owners | 归属于少数股东的综合收益 | decimal(20,4) | | | other_earnings|其他收益|decimal(20,4)|| | asset_deal_income | 资产处置收益 | decimal(20,4) | | | sust_operate_net_profit | 持续经营净利润 | decimal(20,4) | | | discon_operate_net_profit | 终止经营净利润 | decimal(20,4) | | | credit_impairment_loss | 信用减值损失 | decimal(20,4) | | - **报表来源编码** | 编码 | 名称 | | ------ | ---------- | | 321001 | 招募说明书 | | 321002 | 上市公告书 | | 321003 | 定期报告 | | 321004 | 预披露公告 | | 321005 | 换股报告书 | | 321099 | 其他 | 现金流量表金融类合并现金流量表、母公司现金流量表 ### 合并现金流量表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FINANCE_CASHFLOW_STATEMENT).filter(finance.FINANCE_CASHFLOW_STATEMENT.code==code).limit(n)) +``` + + 获取金融类上市公司的合并现金流量表信息 **参数:** - **query(finance.FINANCE_CASHFLOW_STATEMENT)**:表示从finance.FINANCE_CASHFLOW_STATEMENT这张表中查询金融类上市公司合并现金流量的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FINANCE_CASHFLOW_STATEMENT**:代表金融类上市公司合并现金流量表,收录了金融类上市公司的合并现金流量,表结构和字段信息如下: - **filter(finance.FINANCE_CASHFLOW_STATEMENT.code==code)**:指定筛选条件,通过finance.FINANCE_CASHFLOW_STATEMENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_CASHFLOW_STATEMENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的合并现金流量信息;多个筛选条件用英文逗号分隔。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询中国平安2015年之后公告的合并现金流量表数据,指定只取出本期数据经营活动现金流量净额,投资活动现金流量净额,以及筹资活动现金流量净额 +from jqdatasdk import * +q=query(finance.FINANCE_CASHFLOW_STATEMENT.company_name, + finance.FINANCE_CASHFLOW_STATEMENT.code, + finance.FINANCE_CASHFLOW_STATEMENT.pub_date, + finance.FINANCE_CASHFLOW_STATEMENT.start_date, + finance.FINANCE_CASHFLOW_STATEMENT.end_date, + finance.FINANCE_CASHFLOW_STATEMENT.net_operate_cash_flow, + finance.FINANCE_CASHFLOW_STATEMENT.net_invest_cash_flow, +finance.FINANCE_CASHFLOW_STATEMENT.net_finance_cash_flow).filter(finance.FINANCE_CASHFLOW_STATEMENT.code=='601318.XSHG',finance.FINANCE_CASHFLOW_STATEMENT.pub_date>='2015-01-01',finance.FINANCE_CASHFLOW_STATEMENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 中国平安保险(集团)股份有限公司 601318.XSHG 2015-03-20 2014-01-01 2014-12-31 +1 中国平安保险(集团)股份有限公司 601318.XSHG 2015-04-30 2015-01-01 2015-03-31 +2 中国平安保险(集团)股份有限公司 601318.XSHG 2015-08-21 2015-01-01 2015-06-30 +3 中国平安保险(集团)股份有限公司 601318.XSHG 2015-10-28 2015-01-01 2015-09-30 +4 中国平安保险(集团)股份有限公司 601318.XSHG 2016-03-16 2015-01-01 2015-12-31 +5 中国平安保险(集团)股份有限公司 601318.XSHG 2016-04-27 2016-01-01 2016-03-31 +6 中国平安保险(集团)股份有限公司 601318.XSHG 2016-08-18 2016-01-01 2016-06-30 +7 中国平安保险(集团)股份有限公司 601318.XSHG 2016-10-28 2016-01-01 2016-09-30 + + net_operate_cash_flow net_invest_cash_flow net_finance_cash_flow +0 1.702600e+11 -2.368890e+11 8.536800e+10 +1 6.114900e+10 -4.478700e+10 1.996200e+10 +2 2.478960e+11 -1.355150e+11 1.059350e+11 +3 1.710670e+11 -1.442380e+11 1.675280e+11 +4 1.356180e+11 -2.737320e+11 2.049760e+11 +5 1.192720e+11 -1.241580e+11 5.367100e+10 +6 6.599800e+10 -2.663960e+11 1.714720e+11 +7 -1.702500e+10 -1.942610e+11 1.291400e+11 +``` + + ### 母公司现金流量表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FINANCE_CASHFLOW_STATEMENT_PARENT).filter(finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code==code).limit(n)) +``` + + 获取金融类上市公司的母公司现金流量表信息 **参数:** - **query(finance.FINANCE_CASHFLOW_STATEMENT_PARENT)**:表示从finance.FINANCE_CASHFLOW_STATEMENT_PARENT这张表中查询金融类上市公司母公司现金流量的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FINANCE_CASHFLOW_STATEMENT_PARENT**:代表金融类上市公司母公司现金流量表,收录了金融类上市公司的母公司现金流量,表结构和字段信息如下: - **filter(finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code==code)**:指定筛选条件,通过finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_CASHFLOW_STATEMENT_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的母公司现金流量信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询中国平安2015年之后公告的母公司现金流量表数据,指定只取出本期经营活动现金流量净额,投资活动现金流量净额,以及筹资活动现金流量净额 +from jqdatasdk import * +q=query(finance.FINANCE_CASHFLOW_STATEMENT_PARENT.company_name, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.pub_date, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.start_date, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.end_date, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.net_operate_cash_flow, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.net_invest_cash_flow, +finance.FINANCE_CASHFLOW_STATEMENT_PARENT.net_finance_cash_flow).filter(finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code=='601318.XSHG',finance.FINANCE_CASHFLOW_STATEMENT_PARENT.pub_date>='2015-01-01',finance.FINANCE_CASHFLOW_STATEMENT_PARENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 中国平安保险(集团)股份有限公司 601318.XSHG 2015-03-20 2014-01-01 2014-12-31 +1 中国平安保险(集团)股份有限公司 601318.XSHG 2015-04-30 2015-01-01 2015-03-31 +2 中国平安保险(集团)股份有限公司 601318.XSHG 2015-08-21 2015-01-01 2015-06-30 +3 中国平安保险(集团)股份有限公司 601318.XSHG 2015-10-28 2015-01-01 2015-09-30 +4 中国平安保险(集团)股份有限公司 601318.XSHG 2016-03-16 2015-01-01 2015-12-31 +5 中国平安保险(集团)股份有限公司 601318.XSHG 2016-04-27 2016-01-01 2016-03-31 +6 中国平安保险(集团)股份有限公司 601318.XSHG 2016-08-18 2016-01-01 2016-06-30 +7 中国平安保险(集团)股份有限公司 601318.XSHG 2016-10-28 2016-01-01 2016-09-30 + + net_operate_cash_flow net_invest_cash_flow net_finance_cash_flow +0 -88000000.0 -1.433300e+10 2.354300e+10 +1 -202000000.0 -7.180000e+08 6.910000e+08 +2 -88000000.0 -8.063000e+09 3.010000e+09 +3 -25000000.0 -1.116800e+10 -7.130000e+09 +4 -203000000.0 -1.099000e+10 -5.711000e+09 +5 -533000000.0 4.560000e+08 -3.000000e+08 +6 -236000000.0 3.237000e+09 -1.620000e+09 +7 -418000000.0 1.089500e+10 -1.039000e+10 +``` + + **字段信息展示:** | 字段名称 | 中文名称 | 字段类型 | 含义 | |------------------------------------|--------------------------|---------------|----------| | company_id | 公司ID | int | | | company_name | 公司名称 | varchar(100) | | | code | 公司主证券代码 | varchar(12) | | | a_code | A股代码 | varchar(12) | | | b_code | B股代码 | varchar(12) | | | h_code | H股代码 | varchar(12) | | | pub_date | 公告日期 | date | | | start_date | 开始日期 | date | | | end_date | 截止日期 | date | | | report_date | 报告期 | date | | | report_type | 报告期类型 | int | 0本期,1上期 | | source_id | 报表来源编码 | int | 如下报表来源编码 | | source | 报表来源 | varchar(60) | | | operate_cash_flow | 经营活动产生的现金流量 | decimal(20,4) | | | net_loan_and_advance_decrease | 客户贷款及垫款净减少额 | decimal(20,4) | | | net_deposit_increase | 客户存款和同业存放款项净增加额 | decimal(20,4) | | | net_borrowing_from_central_bank | 向中央银行借款净增加额 | decimal(20,4) | | | net_deposit_in_cb_and_ib_de | 存放中央银行和同业款项净减少额 | decimal(20,4) | | | net_borrowing_from_finance_co | 向其他金融机构拆入资金净增加额 | decimal(20,4) | | | interest_and_commission_cashin | 收取利息、手续费及佣金的现金 | decimal(20,4) | | | trade_asset_increase | 处置交易性金融资产净增加额 | decimal(20,4) | | | net_increase_in_placements | 拆入资金净增加额 | decimal(20,4) | | | net_buyback | 回购业务资金净增加额 | decimal(20,4) | | | goods_sale_and_service_render_cash | 销售商品、提供劳务收到的现金 | decimal(20,4) | | | tax_levy_refund | 收到的税费返还 | decimal(20,4) | | | net_original_insurance_cash | 收到原保险合同保费取得的现金 | decimal(20,4) | | | insurance_cash_amount | 收到再保业务现金净额 | decimal(20,4) | | | net_insurer_deposit_investment | 保户储金及投资款净增加额 | decimal(20,4) | | | subtotal_operate_cash_inflow | 经营活动现金流入小计 | decimal(20,4) | | | net_loan_and_advance_increase | 客户贷款及垫款净增加额 | decimal(20,4) | | | saving_clients_decrease_amount | 客户存放及同业存放款项净减少额 | decimal(20,4) | | | net_deposit_in_cb_and_ib | 存放中央银行和同业款项净增加额 | decimal(20,4) | | | central_borrowing_decrease | 向中央银行借款净减少额 | decimal(20,4) | | | other_money_increase | 向其他金融机构拆出资金净增加额 | decimal(20,4) | | | purchase_trade_asset_increase | 购入交易性金融资产净增加额 | decimal(20,4) | | | repurchase_decrease | 回购业务资金净减少额 | decimal(20,4) | | | handling_charges_and_commission | 支付利息、手续费及佣金的现金 | decimal(20,4) | | | goods_and_services_cash_paid | 购买商品、提供劳务支付的现金 | decimal(20,4) | | | net_cash_re_insurance | 支付再保业务现金净额 | decimal(20,4) | | | reserve_investment_decrease | 保户储金及投资款净减少额 | decimal(20,4) | | | original_compensation_paid | 支付原保险合同赔付款项的现金 | decimal(20,4) | | | policy_dividend_cash_paid | 支付保单红利的现金 | decimal(20,4) | | | staff_behalf_paid | 支付给职工以及为职工支付的现金 | decimal(20,4) | | | tax_payments | 支付的各项税费 | decimal(20,4) | | | subtotal_operate_cash_outflow | 经营活动现金流出小计 | decimal(20,4) | | | net_operate_cash_flow | 经营活动现金流量净额 | decimal(20,4) | | | invest_cash_flow | 投资活动产生的现金流量 | decimal(20,4) | | | invest_withdrawal_cash | 收回投资收到的现金 | decimal(20,4) | | | invest_proceeds | 取得投资收益收到的现金 | decimal(20,4) | | | gain_from_disposal | 处置固定资产、无形资产和其他长期资产所收回的现金 | decimal(20,4) | | | subtotal_invest_cash_inflow | 投资活动现金流入小计 | decimal(20,4) | | | invest_cash_paid | 投资支付的现金 | decimal(20,4) | | | impawned_loan_net_increase | 质押贷款净增加额 | decimal(20,4) | | | fix_intan_other_asset_acqui_cash | 购建固定资产、无形资产和其他长期资产支付的现金 | decimal(20,4) | | | subtotal_invest_cash_outflow | 投资活动现金流出小计 | decimal(20,4) | | | net_invest_cash_flow | 投资活动现金流量净额 | decimal(20,4) | | | finance_cash_flow | 筹资活动产生的现金流量 | decimal(20,4) | | | cash_from_invest | 吸收投资收到的现金 | decimal(20,4) | | | cash_from_bonds_issue | 发行债券收到的现金 | decimal(20,4) | | | cash_from_borrowing | 取得借款收到的现金 | decimal(20,4) | | | subtotal_finance_cash_inflow | 筹资活动现金流入小计 | decimal(20,4) | | | borrowing_repayment | 偿还债务支付的现金 | decimal(20,4) | | | dividend_interest_payment | 分配股利、利润或偿付利息支付的现金 | decimal(20,4) | | | subtotal_finance_cash_outflow | 筹资活动现金流出小计 | decimal(20,4) | | | net_finance_cash_flow | 筹资活动产生的现金流量净额 | decimal(20,4) | | | exchange_rate_change_effect | 汇率变动对现金的影响 | decimal(20,4) | | | other_reason_effect_cash | 其他原因对现金的影响 | decimal(20,4) | | | cash_equivalent_increase | 现金及现金等价物净增加额 | decimal(20,4) | | | cash_equivalents_at_beginning | 期初现金及现金等价物余额 | decimal(20,4) | | | cash_and_equivalents_at_end | 期末现金及现金等价物余额 | decimal(20,4) | | | net_profit_cashflow_adjustment | 将净利润调节为经营活动现金流量 | decimal(20,4) | | | net_profit | 净利润 | decimal(20,4) | | | assets_depreciation_reserves | 资产减值准备 | decimal(20,4) | | | fixed_assets_depreciation | 固定资产折旧、油气资产折耗、生产性生物资产折旧 | decimal(20,4) | | | intangible_assets_amortization | 无形资产摊销 | decimal(20,4) | | | defferred_expense_amortization | 长期待摊费用摊销 | decimal(20,4) | | | fix_intan_other_asset_dispo_loss | 处置固定资产、无形资产和其他长期资产的损失 | decimal(20,4) | | | fixed_asset_scrap_loss | 固定资产报废损失 | decimal(20,4) | | | fair_value_change_loss | 公允价值变动损失 | decimal(20,4) | | | financial_cost | 财务费用 | decimal(20,4) | | | invest_loss | 投资损失 | decimal(20,4) | | | deffered_tax_asset_decrease | 递延所得税资产减少 | decimal(20,4) | | | deffered_tax_liability_increase | 递延所得税负债增加 | decimal(20,4) | | | inventory_decrease | 存货的减少 | decimal(20,4) | | | operate_receivables_decrease | 经营性应收项目的减少 | decimal(20,4) | | | operate_payable_increase | 经营性应付项目的增加 | decimal(20,4) | | | others | 其他 | decimal(20,4) | | | net_operate_cash_flow2 | 经营活动产生的现金流量净额_间接法 | decimal(20,4) | | | activities_not_relate_major | 不涉及现金收支的重大投资和筹资活动 | decimal(20,4) | | | debt_to_capital | 债务转为资本 | decimal(20,4) | | | cbs_expiring_in_one_year | 一年内到期的可转换公司债券 | decimal(20,4) | | | financial_lease_fixed_assets | 融资租入固定资产 | decimal(20,4) | | | change_info_cash | 现金及现金等价物净变动情况 | decimal(20,4) | | | cash_at_end | 现金的期末余额 | decimal(20,4) | | | cash_at_beginning | 现金的期初余额 | decimal(20,4) | | | equivalents_at_end | 现金等价物的期末余额 | decimal(20,4) | | | equivalents_at_beginning | 现金等价物的期初余额 | decimal(20,4) | | | other_influence2 | 其他原因对现金的影响2 | decimal(20,4) | | | cash_equivalent_increase2 | 现金及现金等价物净增加额2 | decimal(20,4) | | | investment_property_depreciation | 投资性房地产的折旧及摊销 | decimal(20,4) | | | net_dec_finance_out | 融出资金净减少额 | decimal(20,4) | | | net_cash_received_from_proxy_secu | 代理买卖证券收到的现金净额 | decimal(20,4) | | | net_inc_finance_out | 融出资金净增加额 | decimal(20,4) | | | net_cash_paid_to_proxy_secu | 代理买卖证券支付的现金净额 | decimal(20,4) | | | net_dec_in_placements | 拆入资金净减少额 | decimal(20,4) | | | credit_impairment_loss | 信用减值损失(现金流量表补充科目) | decimal(20,4) | | - **报表来源编码** | 编码 | 名称 | | ------ | ---------- | | 321001 | 招募说明书 | | 321002 | 上市公告书 | | 321003 | 定期报告 | | 321004 | 预披露公告 | | 321005 | 换股报告书 | | 321099 | 其他 | 资产负债表金融类合并资产负债表、母公司资产负债表 ### 合并资产负债表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FINANCE_BALANCE_SHEET).filter(finance.FINANCE_BALANCE_SHEET.code==code).limit(n)) +``` + + 获取金融类上市公司的合并资产负债表信息 **参数:** - **query(finance.FINANCE_BALANCE_SHEET)**:表示从finance.FINANCE_BALANCE_SHEET这张表中查询金融类上市公司合并资产负债的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FINANCE_BALANCE_SHEET**:代表金融类上市公司合并资产负债表,收录了金融类上市公司的合并资产负债,表结构和字段信息如下: - **filter(finance.FINANCE_BALANCE_SHEET.code==code)**:指定筛选条件,通过finance.FINANCE_BALANCE_SHEET.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_BALANCE_SHEET.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的合并资产负债信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **示例:** +``` + +#查询中国平安2015年之后公告的合并资产负债表数据,取出本期的货币资金,总资产和总负债 +from jqdatasdk import finance +q=query(finance.FINANCE_BALANCE_SHEET.company_name, + finance.FINANCE_BALANCE_SHEET.code, + finance.FINANCE_BALANCE_SHEET.pub_date, + finance.FINANCE_BALANCE_SHEET.start_date, + finance.FINANCE_BALANCE_SHEET.end_date, + finance.FINANCE_BALANCE_SHEET.cash_equivalents, + finance.FINANCE_BALANCE_SHEET.total_assets, + finance.FINANCE_BALANCE_SHEET.total_liability +).filter(finance.FINANCE_BALANCE_SHEET.code=='601318.XSHG',finance.FINANCE_BALANCE_SHEET.pub_date>='2015-01-01',finance.FINANCE_BALANCE_SHEET.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 中国平安保险(集团)股份有限公司 601318.XSHG 2015-03-20 2014-01-01 2014-12-31 +1 中国平安保险(集团)股份有限公司 601318.XSHG 2015-04-30 2015-01-01 2015-03-31 +2 中国平安保险(集团)股份有限公司 601318.XSHG 2015-08-21 2015-01-01 2015-06-30 +3 中国平安保险(集团)股份有限公司 601318.XSHG 2015-10-28 2015-01-01 2015-09-30 +4 中国平安保险(集团)股份有限公司 601318.XSHG 2016-03-16 2015-01-01 2015-12-31 +5 中国平安保险(集团)股份有限公司 601318.XSHG 2016-04-27 2016-01-01 2016-03-31 +6 中国平安保险(集团)股份有限公司 601318.XSHG 2016-08-18 2016-01-01 2016-06-30 +7 中国平安保险(集团)股份有限公司 601318.XSHG 2016-10-28 2016-01-01 2016-09-30 + + cash_equivalents total_assets total_liability +0 4.427070e+11 4.005911e+12 3.652095e+12 +1 4.131880e+11 4.215240e+12 3.833842e+12 +2 4.510800e+11 4.632287e+12 4.227789e+12 +3 4.654240e+11 4.667113e+12 4.262293e+12 +4 4.750570e+11 4.765159e+12 4.351588e+12 +5 5.668130e+11 5.006993e+12 4.566653e+12 +6 5.210790e+11 5.219782e+12 4.757190e+12 +7 5.230110e+11 5.296564e+12 4.815950e+12 +``` + + ### 母公司资产负债表 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FINANCE_BALANCE_SHEET_PARENT).filter(finance.FINANCE_BALANCE_SHEET_PARENT.code==code).limit(n)) +``` + + 获取金融类上市公司的母公司资产负债表信息 **参数:** - **query(finance.FINANCE_BALANCE_SHEET_PARENT)**:表示从finance.FINANCE_BALANCE_SHEET_PARENT这张表中查询金融类上市公司母公司资产负债的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FINANCE_BALANCE_SHEET_PARENT**:代表金融类上市公司母公司资产负债表,收录了金融类上市公司的母公司资产负债,表结构和字段信息如下: - **filter(finance.FINANCE_BALANCE_SHEET_PARENT.code==code)**:指定筛选条件,通过finance.FINANCE_BALANCE_SHEET_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_BALANCE_SHEET_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的母公司资产负债信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询中国平安2015年之后公告的母公司资产负债表数据,取出本期的货币资金,总资产和总负债 +from jqdatasdk import finance +q=query(finance.FINANCE_BALANCE_SHEET_PARENT.company_name, + finance.FINANCE_BALANCE_SHEET_PARENT.code, + finance.FINANCE_BALANCE_SHEET_PARENT.pub_date, + finance.FINANCE_BALANCE_SHEET_PARENT.start_date, + finance.FINANCE_BALANCE_SHEET_PARENT.end_date, + finance.FINANCE_BALANCE_SHEET_PARENT.cash_equivalents, + finance.FINANCE_BALANCE_SHEET_PARENT.total_assets, + finance.FINANCE_BALANCE_SHEET_PARENT.total_liability +).filter(finance.FINANCE_BALANCE_SHEET_PARENT.code=='601318.XSHG',finance.FINANCE_BALANCE_SHEET_PARENT.pub_date>='2015-01-01',finance.FINANCE_BALANCE_SHEET_PARENT.report_type==0).limit(8) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 中国平安保险(集团)股份有限公司 601318.XSHG 2015-03-20 2014-01-01 2014-12-31 +1 中国平安保险(集团)股份有限公司 601318.XSHG 2015-04-30 2015-01-01 2015-03-31 +2 中国平安保险(集团)股份有限公司 601318.XSHG 2015-08-21 2015-01-01 2015-06-30 +3 中国平安保险(集团)股份有限公司 601318.XSHG 2015-10-28 2015-01-01 2015-09-30 +4 中国平安保险(集团)股份有限公司 601318.XSHG 2016-03-16 2015-01-01 2015-12-31 +5 中国平安保险(集团)股份有限公司 601318.XSHG 2016-04-27 2016-01-01 2016-03-31 +6 中国平安保险(集团)股份有限公司 601318.XSHG 2016-08-18 2016-01-01 2016-06-30 +7 中国平安保险(集团)股份有限公司 601318.XSHG 2016-10-28 2016-01-01 2016-09-30 + + cash_equivalents total_assets total_liability +0 2.621400e+10 1.970230e+11 1.733100e+10 +1 2.589900e+10 1.980580e+11 8.930000e+09 +2 2.080900e+10 2.096090e+11 1.610500e+10 +3 8.815000e+09 2.004830e+11 9.538000e+09 +4 1.017900e+10 2.033480e+11 1.080500e+10 +5 9.906000e+09 2.031290e+11 1.034900e+10 +6 1.023400e+10 2.155980e+11 1.557700e+10 +7 1.045300e+10 2.069940e+11 1.058500e+10 +``` + + **字段信息展示** | 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 公司主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下报表编码表 | +| source | 报表来源 | varchar(60) | | +| deposit_in_ib | 存放同业款项 | decimal(20,4) | | +| cash_equivalents | 货币资金 | decimal(20,4) | | +| deposit_client | 客户资金存款 | decimal(20,4) | | +| cash_in_cb | 现金及存放中央银行款项 | decimal(20,4) | | +| settlement_provi | 结算备付金 | decimal(20,4) | | +| settlement_provi_client | 客户备付金 | decimal(20,4) | | +| metal | 贵金属 | decimal(20,4) | | +| lend_capital | 拆出资金 | decimal(20,4) | | +| fairvalue_fianancial_asset | 以公允价值计量且其变动计入当期损益的金融资产 | decimal(20,4) | | +| other_grow_asset | 衍生金融资产 | decimal(20,4) | | +| bought_sellback_assets | 买入返售金融资产 | decimal(20,4) | | +| interest_receivable | 应收利息 | decimal(20,4) | | +| insurance_receivables | 应收保费 | decimal(20,4) | | +| recover_receivable | 应收代位追偿款 | decimal(20,4) | | +| separate_receivable | 应收分保帐款 | decimal(20,4) | | +| not_time_fund | 应收分保未到期责任准备金 | decimal(20,4) | | +| not_decide_fund | 应收分保未决赔款准备金 | decimal(20,4) | | +| response_fund | 应收分保寿险责任准备金 | decimal(20,4) | | +| health_fund | 应收分保长期健康险责任准备金 | decimal(20,4) | | +| margin_loan | 保户质押贷款 | decimal(20,4) | | +| deposit_period | 定期存款 | decimal(20,4) | | +| loan_and_advance | 发放贷款及垫款 | decimal(20,4) | | +| margin_out | 存出保证金 | decimal(20,4) | | +| agent_asset | 代理业务资产 | decimal(20,4) | | +| investment_reveiable | 应收款项类投资 | decimal(20,4) | | +| advance_payment | 预付款项 | decimal(20,4) | | +| hold_for_sale_assets | 可供出售金融资产 | decimal(20,4) | | +| hold_to_maturity_investments | 持有至到期投资 | decimal(20,4) | | +| longterm_equity_invest | 长期股权投资 | decimal(20,4) | | +| finance_out | 融出资金 | decimal(20,4) | | +| capital_margin_out | 存出资本保证金 | decimal(20,4) | | +| investment_property | 投资性房地产 | decimal(20,4) | | +| inventories | 存货 | decimal(20,4) | | +| fixed_assets | 固定资产 | decimal(20,4) | | +| constru_in_process | 在建工程 | decimal(20,4) | | +| intangible_assets | 无形资产 | decimal(20,4) | | +| trade_fee | 交易席位费 | decimal(20,4) | | +| long_deferred_expense | 长期待摊费用 | decimal(20,4) | | +| fixed_assets_liquidation | 固定资产清理 | decimal(20,4) | | +| independent_account_asset | 独立帐户资产 | decimal(20,4) | | +| deferred_tax_assets | 递延所得税资产 | decimal(20,4) | | +| other_asset | 其他资产 | decimal(20,4) | | +| total_assets | 资产总计 | decimal(20,4) | | +| borrowing_from_centralbank | 向中央银行借款 | decimal(20,4) | | +| deposit_in_ib_and_other | 同业及其他金融机构存放款项 | decimal(20,4) | | +| shortterm_loan | 短期借款 | decimal(20,4) | | +| loan_pledge | 其中:质押借款 | decimal(20,4) | | +| borrowing_capital | 拆入资金 | decimal(20,4) | | +| fairvalue_financial_liability | 以公允价值计量且其变动计入当期损益的金融负债 | decimal(20,4) | | +| derivative_financial_liability | 衍生金融负债 | decimal(20,4) | | +| sold_buyback_secu_proceeds | 卖出回购金融资产款 | decimal(20,4) | | +| deposit_absorb | 吸收存款 | decimal(20,4) | | +| proxy_secu_proceeds | 代理买卖证券款 | decimal(20,4) | | +| proxy_sell_proceeds | 代理承销证券款 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| notes_payable | 应付票据 | decimal(20,4) | | +| advance_peceipts | 预收款项 | decimal(20,4) | | +| insurance_receive_early | 预收保费 | decimal(20,4) | | +| commission_payable | 应付手续费及佣金 | decimal(20,4) | | +| insurance_payable | 应付分保帐款 | decimal(20,4) | | +| salaries_payable | 应付职工薪酬 | decimal(20,4) | | +| taxs_payable | 应交税费 | decimal(20,4) | | +| interest_payable | 应付利息 | decimal(20,4) | | +| proxy_liability | 代理业务负债 | decimal(20,4) | | +| estimate_liability | 预计负债 | decimal(20,4) | | +| compensation_payable | 应付赔付款 | decimal(20,4) | | +| interest_insurance_payable | 应付保单红利 | decimal(20,4) | | +| investment_money | 保户储金及投资款 | decimal(20,4) | | +| not_time_reserve | 未到期责任准备金 | decimal(20,4) | | +| not_decide_reserve | 未决赔款准备金 | decimal(20,4) | | +| live_reserve | 寿险责任准备金 | decimal(20,4) | | +| longterm_reserve | 长期健康险责任准备金 | decimal(20,4) | | +| longterm_loan | 长期借款 | decimal(20,4) | | +| bonds_payable | 应付债券 | decimal(20,4) | | +| independent_account | 独立帐户负债 | decimal(20,4) | | +| deferred_tax_liability | 递延所得税负债 | decimal(20,4) | | +| other_liability | 其他负债 | decimal(20,4) | | +| total_liability | 负债合计 | decimal(20,4) | | +| paidin_capital | 实收资本(或股本) | decimal(20,4) | | +| capital_reserve_fund | 资本公积 | decimal(20,4) | | +| treasury_stock | 减:库存股 | decimal(20,4) | | +| surplus_reserve_fund | 盈余公积 | decimal(20,4) | | +| equities_parent_company_owners | 归属于母公司所有者权益 | decimal(20,4) | | +| retained_profit | 未分配利润 | decimal(20,4) | | +| minority_interests | 少数股东权益 | decimal(20,4) | | +| currency_mis | 外币报表折算差额 | decimal(20,4) | | +| total_owner_equities | 所有者权益合计 | decimal(20,4) | | +| total_liability_equity | 负债和所有者权益总计 | decimal(20,4) | | +| perferred_share_liability | 优先股-负债 | decimal(20,4) | | +| account_receivable | 应收账款 | decimal(20,4) | | +| other_equity_tools | 其他权益工具 | decimal(20,4) | | +| perferred_share_equity | 优先股-权益 | decimal(20,4) | | +| pep_debt_equity | 永续债-权益 | decimal(20,4) | | +| other_comprehensive_income | 其他综合收益 | decimal(20,4) | | +| good_will | 商誉 | decimal(20,4) | | +| shortterm_loan_payable | 应付短期融资款 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| contract_assets | 合同资产 | decimal(20,4) | | +| hold_sale_asset | 持有待售资产 | decimal(20,4) | | +| bond_invest | 债权投资 | decimal(20,4) | | +| other_bond_invest | 其他债权投资 | decimal(20,4) | | +| other_equity_tools_invest | 其他权益工具投资 | decimal(20,4) | | +| contract_liability | 合同负债 | decimal(20,4) | | +| usufruct_assets | 使用权资产 | decimal(20,4) | | +| liease_liability | 租赁负债 | decimal(20,4) | | +| ordinary_risk_reserve_fund | 一般风险准备 | decimal(20,4) | | +| other_operate_cash_paid | 支付其他与经营活动有关的现金(元) | decimal(20, 4) | | +| subtotal_operate_cash_outflow | 经营活动现金流出小计(元) | decimal(20, 4) | | +| net_operate_cash_flow | 经营活动现金流量净额(元) | decimal(20, 4) | | +| invest_cash_flow | 投资活动产生的现金流量(元) | decimal(20, 4) | | +| invest_withdrawal_cash | 收回投资收到的现金(元) | decimal(20, 4) | | +| invest_proceeds | 取得投资收益收到的现金(元) | decimal(20, 4) | | +| other_cash_from_invest_act | 收到其他与投资活动有关的现金(元) | decimal(20, 4) | | +| gain_from_disposal | 处置固定资产、无形资产和其他长期资产所收回的现金(元) | decimal(20, 4) | | +| subtotal_invest_cash_inflow | 投资活动现金流入小计(元) | decimal(20, 4) | | +| long_deferred_expense | 长期待摊费用(元) | decimal(20, 4) | | + + - **报表来源编码** | 编码 | 名称 | | ------ | ---------- | | 321001 | 招募说明书 | | 321002 | 上市公告书 | | 321003 | 定期报告 | | 321004 | 预披露公告 | | 321005 | 换股报告书 | | 321099 | 其他 | #### 业绩预告 + +- **更新时间:2005至今,每天20:30-24:00更新** + +方法描述 / 更新时间及频率STK_FIN_FORCAST业绩预告 / 2005至今,交易日18:00-24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_FIN_FORCAST).filter(finance.STK_FIN_FORCAST.code==code).limit(n)) +``` + + 获取上市公司业绩预告等信息 **参数:** - **query(finance.STK_FIN_FORCAST)**:表示从finance.STK_FIN_FORCAST这张表中查询上市公司业绩报告的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_FIN_FORCAST**:代表上市公司业绩预告表,收录了上市公司的业绩预告信息,表结构和字段信息如下: | 字段 | 名称 | 类型 | 注释 | | ---------------- | ------------------------ | ------------- | --------------------------------- | | company_id | 公司ID | int | | | code | 股票代码 | varchar(12) | | | name | 公司名称 | varchar(64) | | | end_date | 报告期 | date | | | report_type_id | 预告期类型编码 | int | 如下 预告期类型编码 | | report_type | 预告期类型 | varchar(32) | | | pub_date | 公布日期 | date | | | type_id | 预告类型编码 | int | 如下 业绩类型编码 | | type | 预告类型 | varchar(32) | | | profit_min | 预告净利润(下限) | decimal(22,6) | | | profit_max | 预告净利润(上限) | decimal(22,6) | | | profit_last | 去年同期净利润 | decimal(22,6) | | | profit_ratio_min | 预告净利润变动幅度(下限) | decimal(10,4) | 单位:% | | profit_ratio_max | 预告净利润变动幅度(上限) | decimal(10,4) | 单位:% | | content | 预告内容 | varchar(2048) | | **预告期类型编码** | 预告期编码 | 预告期类型 | | ---------- | ---------- | | 304001 | 一季度预告 | | 304002 | 中报预告 | | 304003 | 三季度预告 | | 304004 | 四季度预告 | **业绩类型编码** | **业绩类型编码** | 305001 | 305002 | 305003 | 305004 | 305005 | 305006 | 305007 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| **业绩类型** | 业绩大幅上升 | 业绩预增 | 业绩预盈 | 预计扭亏 | 业绩持平 | 无大幅变动 | 业绩 预亏 | +| **业绩类型编码** | 305008 | 305009 | 305010 | 305011 | 305012 | 305013 | | +| **业绩类型** | 业绩大幅下降 | 大幅减亏 | 业绩预降 | 预计减亏 | 不确定 | 取消预测 | | + + - **filter(finance.STK_FIN_FORCAST.code==code)**:指定筛选条件,通过finance.STK_FIN_FORCAST.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_FIN_FORCAST.pub_date>='2015-01-01',表示公告日期在2015年1月1日之后发布的业绩预告;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询贵州茅台2015年之后公布的业绩预告信息 +from jqdatasdk import finance +q=query(finance.STK_FIN_FORCAST).filter(finance.STK_FIN_FORCAST.code=='600519.XSHG',finance.STK_FIN_FORCAST.pub_date>='2015-01-01') +df=finance.run_query(q) +print(df) + + id company_id code name end_date report_type_id \ +0 581144 420600519 600519.XSHG 贵州茅台酒股份有限公司 2017-12-31 304004 +1 590510 420600519 600519.XSHG 贵州茅台酒股份有限公司 2018-12-31 304004 +2 592412 420600519 600519.XSHG 贵州茅台酒股份有限公司 2019-03-31 304001 +3 594174 420600519 600519.XSHG 贵州茅台酒股份有限公司 2019-06-30 304002 +4 598280 420600519 600519.XSHG 贵州茅台酒股份有限公司 2019-12-31 304004 +5 605646 420600519 600519.XSHG 贵州茅台酒股份有限公司 2020-12-31 304004 + + report_type pub_date type_id type profit_min profit_max \ +0 四季度预告 2018-01-31 305001 业绩大幅上升 NaN NaN +1 四季度预告 2019-01-02 305002 业绩预增 3.400000e+10 3.400000e+10 +2 一季度预告 2019-04-05 305002 业绩预增 NaN NaN +3 中报预告 2019-07-13 305002 业绩预增 1.990000e+10 1.990000e+10 +4 四季度预告 2020-01-02 305002 业绩预增 4.050000e+10 4.050000e+10 +5 四季度预告 2021-01-04 305002 业绩预增 4.550000e+10 4.550000e+10 + + profit_last profit_ratio_min profit_ratio_max \ +0 1.671836e+10 58.0 58.0 +1 2.707936e+10 25.0 25.0 +2 8.506907e+09 30.0 30.0 +3 1.576419e+10 26.2 26.2 +4 3.520363e+10 15.0 15.0 +5 4.120647e+10 10.0 10.0 + + content +0 预计公司2017年01-12月归属于上市公司股东的净利润与上年同期相比增长58%。 +1 预计公司2018年01-12月归属于上市公司股东的净利润为3400000万元,与上年同期相比... +2 预计公司2019年01-03月归属于上市公司股东的净利润与上年同期相比增长30%。 +3 预计公司2019年01-06月归属于上市公司股东的净利润为1990000万元,与上年同期相比... +4 预计公司2019年01-12月归属于上市公司股东的净利润为4050000万元,与上年同期相比... +5 预计公司2020年01-12月归属于上市公司股东的净利润为4550000万元,与上年同期相比... +``` + +## 上市公司基础信息 + +### 上市公司相关信息 + +#### 上市公司概况 + +表名描述 / 更新时间及频率STK_STATUS_CHANGE公司状态变动 / 2005年至今,交易日24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_STATUS_CHANGE).filter(finance.STK_STATUS_CHANGE.code==code).limit(n)) +``` + + 获取上市公司已发行未上市、正常上市、实行ST、*ST、暂停上市、终止上市的变动情况等 **参数:** - **query(finance.STK_STATUS_CHANGE)**:表示从finance.STK_STATUS_CHANGE这张表中查询上市公司的状态变动信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_STATUS_CHANGE**:代表上市公司状态变动表,收录了上市公司已发行未上市、正常上市、实行ST、*ST、暂停上市、终止上市的变动情况等,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | ---------------- | ------------ | ------------ | ---------------------------------- | | company_id | 机构ID | int | | | code | 股票代码 | varchar(12) | | | name | 股票名称 | varchar(40) | | | pub_date | 公告日期 | date | | | change_date | 变更日期(实际变动日期) | date | | | public_status_id | 上市状态编码 | int | 如下上市状态编码 | | public_status | 上市状态 | varchar(32) | | | change_reason | 变更原因 | varchar(500) | | | change_type_id | 变更类型编码 | int | 如下变更类型编码 | | change_type | 变更类型 | varchar(60) | | | comments | 备注 | varchar(255) | | 上市状态编码 | **上市状态编码** | **上市状态** | | ---------------- | ------------------------ | | 301001 | 正常上市 | | 301002 | ST | | 301003 | *ST | | 301004 | 暂停上市 | | 301005 | 进入退市整理期 | | 301006 | 终止上市 | | 301007 | 已发行未上市 | | 301008 | 预披露 | | 301009 | 未过会 | | 301010 | 发行失败 | | 301011 | 暂缓发行 | | 301012 | 暂缓上市 | | 301013 | 停止转让 | | 301014 | 正常转让 | | 301015 | 实行投资者适当性管理表示 | | 301099 | 其他 | | **变更类型编码** | **变更类型** | | ---------------- | ------------------------ | | 303001 | 恢复上市 | | 303002 | 摘星 | | 303003 | 摘帽 | | 303004 | 摘星摘帽 | | 303005 | 披星 | | 303006 | 戴帽 | | 303007 | 戴帽披星 | | 303008 | 拟上市 | | 303009 | 新股上市 | | 303010 | 发行失败 | | 303011 | 暂停上市 | | 303012 | 终止上市 | | 303013 | 退市整理 | | 303014 | 暂缓发行 | | 303015 | 暂缓上市 | | 303016 | 实行投资者适当性管理标识 | | 303017 | 未过会 | | 303018 | 预披露 | | 303019 | 正常转让 | | 303020 | 停止转让 | | 303021 | 重新上市 | | 303099 | 其他 | - **filter(finance.STK_STATUS_CHANGE.code==code)**:指定筛选条件,通过finance.STK_STATUS_CHANGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_STATUS_CHANGE.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. 为了防止返回数据量过大, 我们每次最多返回5000行 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的上市公司状态变动 +q=query(finance.STK_STATUS_CHANGE).filter(finance.STK_STATUS_CHANGE.code=='600276.XSHG').limit(10) +df=finance.run_query(q) +print(df) + + id company_id code name pub_date public_status_id \ +0 2840 420600276 600276.XSHG 恒瑞医药 2000-10-18 301001 + + public_status change_date change_reason change_type_id change_type comments +0 正常上市 2000-10-18 NaN 303009 新股上市 NaN +``` + +STK_COMPANY_INFO上市公司基本信息 / 2005年至今,交易日24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_COMPANY_INFO).filter(finance.STK_COMPANY_INFO.code==code).limit(n)) +``` + + 获取上市公司最新公布的基本信息,包含注册资本,主营业务,行业分类等。 **参数:** - **query(finance.STK_COMPANY_INFO)**:表示从finance.STK_COMPANY_INFO这张表中查询上市公司最新公布的基本信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_COMPANY_INFO**:代表上市公司基本信息表,收录了上市公司最新公布的基本信息,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | ----------------------- | ---------------- | ------------- | --------------------------- | | company_id | 公司ID | int | | | code | 证券代码 | varchar(12) | 多证券代码的优先级:A股>B股 | | full_name | 公司名称 | varchar(100) | | | short_name | 公司简称 | varchar(40) | | | a_code | A股股票代码 | varchar(12) | | | b_code | B股股票代码 | varchar(12) | | | h_code | H股股票代码 | varchar(12) | | | fullname_en | 英文名称 | varchar(100) | | | shortname_en | 英文简称 | varchar(40) | | | legal_representative | 法人代表 | varchar(40) | | | register_location | 注册地址 | varchar(100) | | | office_address | 办公地址 | varchar(150) | | | zipcode | 邮政编码 | varchar(10) | | | register_capital | 注册资金 | decimal(20,4) | 单位:万元 | | currency_id | 货币编码 | int | | | currency | 货币名称 | varchar(32) | | | establish_date | 成立日期 | date | | | website | 机构网址 | varchar(80) | | | email | 电子信箱 | varchar(80) | | | contact_number | 联系电话 | varchar(60) | | | fax_number | 联系传真 | varchar(60) | | | main_business | 主营业务 | varchar(500) | | | business_scope | 经营范围 | varchar(4000) | | | description | 机构简介 | varchar(4000) | | | tax_number | 税务登记号 | varchar(50) | | | license_number | 法人营业执照号 | varchar(40) | | | pub_newspaper | 指定信息披露报刊 | varchar(120) | | | pub_website | 指定信息披露网站 | varchar(120) | | | secretary | 董事会秘书 | varchar(40) | | | secretary_number | 董秘联系电话 | varchar(60) | | | secretary_fax | 董秘联系传真 | varchar(60) | | | secretary_email | 董秘电子邮箱 | varchar(80) | | | security_representative | 证券事务代表 | varchar(40) | | | province_id | 所属省份编码 | varchar(12) | | | province | 所属省份 | varchar(60) | | | city_id | 所属城市编码 | varchar(12) | | | city | 所属城市 | varchar(60) | | | industry_id | 行业编码 | varchar(12) | 证监会行业分类 | | industry_1 | 行业一级分类 | varchar(60) | | | industry_2 | 行业二级分类 | varchar(60) | | | cpafirm | 会计师事务所 | varchar(200) | | | lawfirm | 律师事务所 | varchar(200) | | | ceo | 总经理 | varchar(100) | | | comments | 备注 | varchar(300) | | - **filter(finance.STK_COMPANY_INFO.code==code)**:指定筛选条件,通过finance.STK_COMPANY_INFO.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_COMPANY_INFO.city=='北京市',表示所属城市为北京市;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的上市公司基本信息,限定返回条数为10 +q=query(finance.STK_COMPANY_INFO).filter(finance.STK_COMPANY_INFO.code=='600276.XSHG').limit(10) +df=finance.run_query(q) +print(df) + + id company_id code full_name short_name a_code b_code \ +0 2474 420600276 600276.XSHG 江苏恒瑞医药股份有限公司 恒瑞医药 600276 NaN + + h_code fullname_en shortname_en \ +0 NaN Jiangsu Hengrui Medicine Co., Ltd. Hengrui Medicine + + ... province city_id city \ +0 ... 江苏 320700 连云港市 + + industry_id industry_1 industry_2 cpafirm \ +0 C27 制造业 医药制造业 江苏苏亚金诚会计师事务所(特殊普通合伙) + + lawfirm ceo comments +0 浩天律师事务所 周云曙 公司是国内少有的在研发方面投入较大的企业,现有多个品种在研,不仅在国内建 立了研究机构,投入较... + +[1 rows x 45 columns] +``` + +STK_LIST上市信息 / 2005年至今,交易日24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_LIST).filter(finance.STK_LIST.code==code).limit(n)) +``` + + 获取沪深A股的上市信息,包含上市日期、交易所、发行价格、初始上市数量等 **参数:** - **query(finance.STK_LIST)**:表示从STK_LIST这张表中查询沪深A股的上市信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_LIST**:代表股票上市信息表,收录了沪深A股的上市信息,包含上市日期、交易所、发行价格、初始上市数量等,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | ------------ | ------------ | ------------- | --------- | | code | 证券代码 | varchar(12) | | | name | 证券简称 | varchar(40) | | | short_name | 拼音简称 | varchar(20) | | | category | 证券类别 | varchar(4) | A/B | | exchange | 交易所 | varchar(12) | XSHG/XSHE | | start_date | 上市日期 | date | | | end_date | 终止上市日期 | date | | | company_id | 公司ID | int | | | company_name | 公司名称 | varchar(100) | | | ipo_shares | 初始上市数量 | decimal(20,2) | 股 | | book_price | 发行价格 | decimal(20,4) | 元 | | par_value | 面值 | decimal(20,4) | 元 | | state_id | 上市状态编码 | int | | | state | 上市状态 | varchar(32) | | - **filter(finance.STK_LIST.code==code)**:指定筛选条件,通过finance.STK_LIST.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_LIST.start_date>='2015-01-01',表示筛选上市日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +# 指定查询对象为格力电器(000651.XSHG)的上市信息 +q=query(finance.STK_LIST).filter(finance.STK_LIST.code=='000651.XSHE') +df=finance.run_query(q) +print(df) + + id code name short_name category exchange start_date end_date \ +0 1789 000651.XSHE 格力电器 GLDQ A XSHE 1996-11-18 None + + company_id company_name ipo_shares book_price par_value state_id state +0 430000651 珠海格力电器股份有限公司 21000000.0 2.5 1.0 301001 正常上市 +``` + +STK_NAME_HISTORY简称变更情况 / 2005年至今,交易日24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_NAME_HISTORY).filter(finance.STK_NAME_HISTORY.code==code).limit(n)) +``` + + 获取在A股市场和B股市场上市的股票简称的变更情况 **参数:** - **query(finance.STK_NAME_HISTORY)**:表示从finance.STK_NAME_HISTORY这张表中查询股票简称的变更情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_NAME_HISTORY**:代表股票简称变更表,收录了在A股市场和B股市场上市的股票简称的变更情况,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | ------------ | -------------- | ------------ | --------- | | code | 股票代码 | varchar(12) | | | company_id | 公司ID | int | | | new_name | 新股票简称 | varchar(40) | | | new_spelling | 新英文简称 | varchar(40) | | | org_name | 原证券简称 | varchar(40) | | | org_spelling | 原证券英文简称 | varchar(40) | | | start_date | 开始日期 | date | | | pub_date | 公告日期 | date | | | reason | 变更原因 | varchar(255) | | - **filter(finance.STK_NAME_HISTORY.code==code)**:指定筛选条件,通过finance.STK_NAME_HISTORY.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_NAME_HISTORY.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的股票简称变更信息 +q=query(finance.STK_NAME_HISTORY).filter(finance.STK_NAME_HISTORY.code=='600276.XSHG') +df=finance.run_query(q) +print(df) + + id code company_id new_name new_spelling org_name org_spelling \ +0 1459 600276.XSHG 420600276 恒瑞医药 HRYY NaN NaN +1 3588 600276.XSHG 420600276 G恒瑞 GHR NaN NaN +2 4007 600276.XSHG 420600276 恒瑞医药 HRYY NaN NaN + + start_date pub_date reason +0 2000-10-18 2000-10-18 NaN +1 2006-06-20 2006-06-15 NaN +2 2006-10-09 2006-09-28 NaN +``` + +STK_EMPLOYEE_INFO员工情况 / 2005年至今,交易日24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_EMPLOYEE_INFO).filter(finance.STK_EMPLOYEE_INFO.code==code).limit(n)) +``` + + 获取上市公司在公告中公布的员工情况,包括员工人数、学历等信息 **参数:** - **query(finance.STK_EMPLOYEE_INFO)**:表示从finance.STK_EMPLOYEE_INFO这张表中查询上市公司员工情况的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_EMPLOYEE_INFO**:代表上市公司员工情况表,收录了上市公司在公告中公布的员工情况,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | ------------- | -------------------- | ------------- | ---------------------------- | | company_id | 公司ID | int | | | code | 证券代码 | varchar(12) | '600276.XSHG','000001.XSHE' | | name | 证券名称 | varchar(64) | | | end_date | 报告期截止日 | date | 统计截止该报告期的员工信息 | | pub_date | 公告日期 | date | | | employee | 在职员工总数 | int | 人 | | retirement | 离退休人员 | int | 人 | | graduate_rate | 研究生以上人员比例 | decimal(10,4) | % | | college_rate | 大学专科以上人员比例 | decimal(10,4) | % | | middle_rate | 中专及以下人员比例 | decimal(10,4) | % | - **filter(finance.STK_EMPLOYEE_INFO.code==code)**:指定筛选条件,通过finance.STK_EMPLOYEE_INFO.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EMPLOYEE_INFO.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的员工信息;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的员工信息且公告日期大于2015年1月1日,限定返回条数为4 +q=query(finance.STK_EMPLOYEE_INFO).filter(finance.STK_EMPLOYEE_INFO.code=='600276.XSHG',finance.STK_EMPLOYEE_INFO.pub_date>='2015-01-01').limit(4) +df=finance.run_query(q) +print(df) + + id company_id code name end_date pub_date employee \ +0 21542 420600276 600276.XSHG 恒瑞医药 2014-12-31 2015-03-31 8770 +1 21543 420600276 600276.XSHG 恒瑞医药 2015-12-31 2016-04-13 10191 +2 21544 420600276 600276.XSHG 恒瑞医药 2016-12-31 2017-03-11 12653 +3 34881 420600276 600276.XSHG 恒瑞医药 2017-12-31 2018-04-16 14864 + + retirement graduate_rate college_rate middle_rate +0 None 7.4344 None 55.1083 +1 None 10.0677 None 50.5937 +2 None 10.8907 None 45.9338 +3 None 11.3294 None 41.9806 +``` + +STK_MANAGEMENT_INFO公司管理人员任职情况 / 2005年至今,交易日24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_MANAGEMENT_INFO).filter(finance.STK_MANAGEMENT_INFO.code==code).order_by(finance.STK_MANAGEMENT_INFO.pub_date).limit(n) +``` + + 记录上市公司管理人员的任职情况。 **参数:** - **query(finance.STK_MANAGEMENT_INFO)**:表示从finance.STK_MANAGEMENT_INFO这张表中查询上市公司管理人员任职情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_MANAGEMENT_INFO**:代表了公司管理人员任职情况表,收录了上市公司管理人员的任职情况,表结构和字段信息如下: | **字段名称** | **中文名称** | **字段类型** | **备注/示例** | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| person_id | 个人ID | int | | +| name | 姓名 | varchar(40) | | +| title_class_id | 职务类别编码 | int | | +| title_class | 职务类别 | varchar(60) | | +| title | 职务名称 | varchar(60) | | +| start_date | 任职日期 | date | | +| leave_date | 离职日期 | date | | +| leave_reason | 离职原因 | varchar(255) | | +| on_job | 是否在职 | char(1) | 0-否,1-是 | +| gender | 性别 | char(1) | F-女;M-男 | +| birth_year | 出生年份 | varchar(8) | | +| highest_degree_id | 最高学历编码 | int | | +| highest_degree | 最高学历 | varchar(60) | | +| title_level_id | 职级编码 | int | | +| titile_level | 职级 | varchar(120) | 职级代表工作的难易程度、责任轻重以及所需的资格条件相同 或充分相似的职系的集合。如初级、中级、高级。 | +| profession_certificate | 专业技术资格 | varchar(120) | | +| profession_certificate | 专业技术资格 | varchar(120) | | +| nationality | 国籍 | varchar(60) | | +| security_career_start_year | 从事证券业开始年份 | varchar(8) | | +| resume | 个人简历 | varchar(3000) | | + + - **filter(finance.STK_MANAGEMENT_INFO.code==code)**:指定筛选条件,通过finance.STK_MANAGEMENT_INFO.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_MANAGEMENT_INFO.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **order_by(finance.STK_MANAGEMENT_INFO.pub_date)**: 将返回结果按公告日期排序 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行 ** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +q=query(finance.STK_MANAGEMENT_INFO).filter(finance.STK_MANAGEMENT_INFO.code=='000001.XSHE').order_by(finance.STK_MANAGEMENT_INFO.pub_date).limit(5) +df=finance.run_query(q) +print(df) + +# 输出 + id company_id company_name code pub_date person_id \ +0 138262 430000001 平安银行股份有限公司 000001.XSHE 2014-10-10 201309346 +1 138263 430000001 平安银行股份有限公司 000001.XSHE 2014-10-10 201309346 +2 138264 430000001 平安银行股份有限公司 000001.XSHE 2014-10-10 201309346 +3 138265 430000001 平安银行股份有限公司 000001.XSHE 2014-10-10 201313341 +4 138266 430000001 平安银行股份有限公司 000001.XSHE 2014-10-10 201313342 + + name title_class_id title_class title \ +0 肖遂宁 314001 董事会成员 董事 +1 肖遂宁 314003 高管成员 行长 +2 肖遂宁 314001 董事会成员 董事长 +3 罗伯特·巴内姆 314001 董事会成员 独立董事 +4 孙昌基 314001 董事会成员 独立董事 + + ... highest_degree_id \ +0 ... 316004.0 +1 ... 316004.0 +2 ... 316004.0 +3 ... 316002.0 +4 ... NaN + + highest_degree title_level_id title_level profession_certificate_id \ +0 大专及其他 317003.0 高级 None +1 大专及其他 317003.0 高级 None +2 大专及其他 317003.0 高级 None +3 硕士研究生 NaN None None +4 None 317003.0 高级 None + + profession_certificate nationality_id nationality \ +0 None None None +1 None None None +2 None None None +3 None None None +4 None None None + + security_career_start_year \ +0 None +1 None +2 None +3 None +4 None + + resume +0 肖遂宁先生:出生于1948年2月,高级经济师。曾任深圳发展银行总行行长、董事长,平安银行股份... +1 肖遂宁先生:出生于1948年2月,高级经济师。曾任深圳发展银行总行行长、董事长,平安银行股份... +2 肖遂宁先生:出生于1948年2月,高级经济师。曾任深圳发展银行总行行长、董事长,平安银行股份... +3 罗伯特巴内姆先生(RobertT.Barnum)自1997年至今在美国加州的PokerFla... +4 孙昌基,男,研究员级高级工程师。1942年8月20日出生于上海,1966年9月毕业于清华大学... + +[5 rows x 26 columns] +``` + +STK_XR_XD上市公司分红送股(除权除息)数据 / 2005至今,8:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_XR_XD).filter(finance.STK_XR_XD.code==code).order_by(finance.STK_XR_XD.report_date).limit(n) +``` + + 记录由上市公司年报、中报、一季报、三季报统计出的分红转增情况。 **参数:** - **query(finance.STK_XR_XD)**:表示从finance.STK_XR_XD这张表中查询上市公司除权除息的数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_XR_XD**:代表除权除息数据表,记录由上市公司年报、中报、一季报、三季报统计出的分红转增情况。表结构和字段信息如下: | **字段名称** | **中文名称** | **字段类型** | **能否为空** | **含义** | +| --- | --- | --- | --- | --- | +| code | 股票代码 | varchar(12) | N | 加后缀 | +| company_id | 机构ID | int | N | | +| company_name | 机构名称 | varchar(100) | | | +| report_date | 分红报告期 | date | N | 一般为:一季报:YYYY-03-31;中报:YYYY-06-30;三季报:YYYY-09-30;年报:YYYY-12-31同时也可能存在其他日期 | +| bonus_type | 分红类型 | varchar(60) | | 201102新增,类型如下:年度分红 中期分红 季度分红 特别分红 向公众股东赠送 股改分红 | +| board_plan_pub_date | 董事会预案公告日期 | date | | | +| board_plan_bonusnote | 董事会预案分红说明 | varchar(500) | | 每10股送XX转增XX派XX元 | +| distributed_share_base_board | 分配股本基数(董事会) | decimal(20,4) | | 单位:万股 | +| shareholders_plan_pub_date | 股东大会预案公告日期 | date | | | +| shareholders_plan_bonusnote | 股东大会预案分红说明 | varchar(200) | | | +| distributed_share_base_shareholders | 分配股本基数(股东大会) | decimal(20,4) | | 单位:万股 | +| implementation_pub_date | 实施方案公告日期 | date | | | +| implementation_bonusnote | 实施方案分红说明 | varchar(200) | | 维护规则: 每10股送XX转增XX派XX元 或:不分配不转赠 | +| distributed_share_base_implement | 分配股本基数(实施) | | | 单位:万股 | +| dividend_ratio | 送股比例 | decimal(20,4) | | 每10股送XX股 | +| transfer_ratio | 转增比例 | decimal(20,4) | | 每10股转增 XX股 ; | +| bonus_ratio_rmb | 派息比例(人民币) | decimal(20,4) | | 每10股派 XX。说明:这里的比例为最新的分配比例,预案公布的时候,预案的分配基数在此维护,如果股东大会或实施方案发生变化,再次进行修改,保证此处为最新的分配基数 | +| bonus_ratio_usd | 派息比例(美元) | decimal(20,4) | | 每10股派 XX。说明:这里的比例为最新的分配比例,预案公布的时候,预案的分配基数在此维护,如果股东大会或实施方案发生变化,再次进行修改,保证此处为最新的分配基数 如果这里只告诉了汇率,没有公布具体的外币派息,则要计算出; | +| bonus_ratio_hkd | 派息比例(港币) | decimal(20,4) | | 每10股派 XX。说明:这里的比例为最新的分配比例,预案公布的时候,预案的分配基数在此维护,如果股东大会或实施方案发生变化,再次进行修改,保证此处为最新的分配基数 如果这里只告诉了汇率,没有公布具体的外币派息,则要计算出; | +| at_bonus_ratio_rmb | 税后派息比例(人民币) | decimal(20,4) | | | +| exchange_rate | 汇率 | decimal(20,4) | | 当日以外币(美元或港币)计价的B股价格兑换成人民币的汇率 | +| dividend_number | 送股数量 | decimal(20,4) | | 单位:万股 | +| transfer_number | 转增数量 | decimal(20,4) | | 单位:万股 | +| bonus_amount_rmb | 派息金额(人民币) | decimal(20,4) | | 单位:万元 | +| a_registration_date | A股股权登记日 | date | | | +| b_registration_date | B股股权登记日 | date | | B股股权登记存在最后交易日,除权基准日以及股权登记日三个日期,由于B股实行T+3制度,最后交易日持有的股份需要在3个交易日之后确定股东身份,然后在除权基准日进行除权。 | +| a_xr_date | A股除权日 | date | | | +| b_xr_baseday | B股除权基准日 | date | | 根据B股实行T+3交收制度,则B股的“股权登记日”是“最后交易日”后的第 三个交易日,直至“股权登记日”这一日为止,B股投资者的股权登记才告完成,也 就意味着B股股份至股权登记日为止,才真正划入B股投资者的名下。 | +| b_final_trade_date | B股最后交易日 | date | | | +| a_bonus_date | 派息日(A) | date | | | +| b_bonus_date | 派息日(B) | date | | | +| dividend_arrival_date | 红股到帐日 | date | | | +| a_increment_listing_date | A股新增股份上市日 | date | | | +| b_increment_listing_date | B股新增股份上市日 | date | | | +| total_capital_before_transfer | 送转前总股本 | decimal(20,4) | | 单位:万股 | +| total_capital_after_transfer | 送转后总股本 | decimal(20,4) | | 单位:万股 | +| float_capital_before_transfer | 送转前流通股本 | decimal(20,4) | | 单位:万股 | +| float_capital_after_transfer | 送转后流通股本 | decimal(20,4) | | 单位:万股 | +| note | 备注 | varchar(500) | | | +| a_transfer_arrival_date | A股转增股份到帐日 | date | | | +| b_transfer_arrival_date | B股转增股份到帐日 | date | | | +| b_dividend_arrival_date | B股送红股到帐日 | date | | 20080801新增 | +| note_of_no_dividend | 有关不分配的说明 | varchar(1000) | | | +| plan_progress_code | 方案进度编码 | int | | | +| plan_progress | 方案进度 | varchar(60) | | 董事会预案 实施方案 股东大会预案 取消分红 公司预案 | +| bonus_cancel_pub_date | 取消分红公告日期 | date | | | + + - **filter(finance.STK_XR_XD.report_date==report_date)**:指定筛选条件,通过finance.STK_XR_XD.report_date==report_date可以指定你想要查询的分红报告期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_XR_XD.code=='000001.XSHE',表示筛选股票编码为000001.XSHE的数据; 多个筛选条件用英文逗号分隔。 - **order_by(finance.STK_XR_XD.report_date)**: 将返回结果按分红报告期排序 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个dataframe,每一行对应数据表中的一条数据,列索引是你所查询的字段名称。 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +```python +q=query(finance.STK_XR_XD).filter(finance.STK_XR_XD.report_date>='2015-01-01').limit(5) df = finance.run_query(q) print(df) id company_id company_name code report_date bonus_type \ 0 19 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2015-06-30 中期分红 1 20 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2015-12-31 年度分红 2 21 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2016-06-30 中期分红 3 22 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2016-12-31 年度分红 4 23 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2017-06-30 中期分红 board_plan_pub_date board_plan_bonusnote distributed_share_base_board \ 0 2015-08-29 不分配不转增 NaN 1 2016-04-27 10派1.2元(含税) 41923.0828 2 2016-08-27 不分配不转增 NaN 3 2017-04-25 10派1.2元(含税) 41923.0828 4 2017-08-29 不分配不转增 NaN shareholders_plan_pub_date ... \ 0 None ... 1 2016-05-18 ... 2 None ... 3 2017-05-17 ... 4 None ... float_capital_before_transfer float_capital_after_transfer note \ 0 None None None 1 None None None 2 None None None 3 None None None 4 None None None a_transfer_arrival_date b_transfer_arrival_date b_dividend_arrival_date \ 0 None None None 1 None None None 2 None None None 3 None None None 4 None None None note_of_no_dividend plan_progress_code plan_progress bonus_cancel_pub_date 0 None 313001 董事会预案 None 1 None 313002 实施方案 None 2 None 313001 董事会预案 None 3 None 313002 实施方案 None 4 None 313001 董事会预案 None [5 rows x 47 columns] +``` +#### 上市公司股东和股本信息 + +- **更新时间:2005年至今,交易日24:00更新** + +方法描述STK_SHAREHOLDER_TOP10十大股东 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_SHAREHOLDER_TOP10).filter(finance.STK_SHAREHOLDER_TOP10.code==code).limit(n)) +``` + + 获取上市公司前十大股东的持股情况,包括持股数量,所持股份性质,变动原因等。 **参数:** - **query(finance.STK_SHAREHOLDER_TOP10)**:表示从finance.STK_SHAREHOLDER_TOP10这张表中查询上市公司前十大股东的持股情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_SHAREHOLDER_TOP10**:代表上市公司十大股东表,收录了上市公司前十大股东的持股情况,包括持股数量,所持股份性质,变动原因等。表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | -------------------- | ---------------- | ------------- | ------------------------------------------------------------ | | company_id | 公司ID | int | | | company_name | 公司名称 | varchar(100) | 在此是指上市公司的名称 | | code | 股票代码 | varchar(12) | | | end_date | 截止日期 | date | 公告中统计的十大股东截止到某一日期的更新情况。 | | pub_date | 公告日期 | date | 公告中会提到十大股东的更新情况。 | | change_reason_id | 变动原因编码 | int | | | change_reason | 变动原因 | varchar(120) | | | shareholder_rank | 股东名次 | int | | | shareholder_name | 股东名称 | varchar(200) | | | shareholder_name_en | 股东名称(英文) | varchar(200) | | | shareholder_id | 股东ID | int | | | shareholder_class_id | 股东类别编码 | int | | | shareholder_class | 股东类别 | varchar(150) | 包括:券商、社保基金、证券投资基金、保险公司、QFII、其它机构、个人等 | | share_number | 持股数量 | decimal(10,4) | 股 | | share_ratio | 持股比例 | decimal(10,4) | % | | sharesnature_id | 股份性质编码 | int | | | sharesnature | 股份性质 | varchar(120) | 包括:国家股、法人股、个人股外资股、流通A股、流通B股、职工股、发起人股、转配股等 | | share_pledge_freeze | 股份质押冻结数量 | decimal(10,4) | 如果股份质押数量和股份冻结数量任意一个字段有值,则等于后两者之和 | | share_pledge | 股份质押数量 | decimal(10,4) | | | share_freeze | 股份冻结数量 | decimal(10,4) | | - **filter(finance.STK_SHAREHOLDER_TOP10.code==code)**:指定筛选条件,通过finance.STK_SHAREHOLDER_TOP10.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHAREHOLDER_TOP10.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的十大股东情况,限定返回条数为10条 +q=query(finance.STK_SHAREHOLDER_TOP10).filter(finance.STK_SHAREHOLDER_TOP10.code=='600276.XSHG',finance.STK_SHAREHOLDER_TOP10.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_name company_id code end_date pub_date \ +0 753808 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +1 753809 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +2 753810 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +3 753811 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +4 753812 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +5 753813 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +6 753814 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +7 753815 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +8 753816 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +9 753817 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 + + change_reason_id change_reason shareholder_rank \ +0 306019 定期报告 4 +1 306019 定期报告 9 +2 306019 定期报告 10 +3 306019 定期报告 2 +4 306019 定期报告 3 +5 306019 定期报告 5 +6 306019 定期报告 6 +7 306019 定期报告 7 +8 306019 定期报告 8 +9 306019 定期报告 1 + + shareholder_name ... shareholder_id \ +0 中国医药工业有限公司 ... 100014895 +1 交通银行-博时新兴成长股票型证券投资基金 ... 120050009 +2 新华人寿保险股份有限公司-分红-团体分红-018L-FH001沪 ... 100000383 +3 西藏达远投资有限公司 ... 100097529 +4 连云港恒创医药科技有限公司 ... 100008678 +5 江苏金海投资有限公司 ... 100008257 +6 香港中央结算有限公司 ... 100011907 +7 中国农业银行股份有限公司-国泰国证医药卫生行业指数分级证券投资基金 ... 120160219 +8 兴业银行股份有限公司-兴全趋势投资混合型证券投资基金 ... 120163402 +9 江苏恒瑞医药集团有限公司 ... 100008682 + + shareholder_class_id shareholder_class share_number share_ratio \ +0 307099 其他机构 73000000.0 4.85 +1 307003 证券投资基金 10107880.0 0.67 +2 307014 保险投资组合 9820232.0 0.65 +3 307099 其他机构 240536692.0 15.99 +4 307099 其他机构 112278458.0 7.47 +5 307099 其他机构 53474244.0 3.56 +6 307099 其他机构 30821240.0 2.05 +7 307003 证券投资基金 12489920.0 0.83 +8 307003 证券投资基金 11999901.0 0.8 +9 307099 其他机构 365776169.0 24.32 + + sharesnature_id sharesnature share_pledge_freeze share_pledge share_freeze +0 308007 流通A股 NaN NaN NaN +1 308007 流通A股 NaN NaN NaN +2 308007 流通A股 NaN NaN NaN +3 308007 流通A股 NaN NaN NaN +4 308007 流通A股 NaN NaN NaN +5 308007 流通A股 53474244.0 53474244.0 NaN +6 308007 流通A股 NaN NaN NaN +7 308007 流通A股 NaN NaN NaN +8 308007 流通A股 NaN NaN NaN +9 308007 流通A股 NaN NaN NaN +``` + +STK_SHAREHOLDER_FLOATING_TOP10十大流通股东 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_SHAREHOLDER_FLOATING_TOP10).filter(finance.STK_SHAREHOLDER_FLOATING_TOP10.code==code).limit(n)) +``` + + 获取上市公司前十大流通股东的持股情况,包括持股数量,所持股份性质,变动原因等。 **参数:** - **query(finance.STK_SHAREHOLDER_FLOATING_TOP10)**:表示从finance.STK_SHAREHOLDER_FLOATING_TOP10这张表中查询上市公司前十大流通股东的持股情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_SHAREHOLDER_FLOATING_TOP10**:代表上市公司十大流通股东表,收录了上市公司前十大流通股东的持股情况,包括持股数量,所持股份性质,变动原因等。表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | -------------------- | ---------------- | ------------- | --------- | | company_id | 公司ID | int | | | company_name | 公司名称 | varchar(100) | | | code | 股票代码 | varchar(12) | | | end_date | 截止日期 | date | | | pub_date | 公告日期 | date | | | change_reason_id | 变动原因编码 | int | | | change_reason | 变动原因 | varchar(120) | | | shareholder_rank | 股东名次 | int | | | shareholder_id | 股东ID | int | | | shareholder_name | 股东名称 | varchar(200) | | | shareholder_name_en | 股东名称(英文) | varchar(150) | | | shareholder_class_id | 股东类别编码 | int | | | shareholder_class | 股东类别 | varchar(150) | | | share_number | 持股数量 | int | 股 | | share_ratio | 持股比例 | decimal(10,4) | % | | sharesnature_id | 股份性质编码 | int | | | sharesnature | 股份性质 | varchar(120) | | - **filter(finance.STK_SHAREHOLDER_FLOATING_TOP10.code==code)**:指定筛选条件,通过finance.STK_SHAREHOLDER_FLOATING_TOP10.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHAREHOLDER_FLOATING_TOP10.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的十大流通股东情况,返回条数为10条 +q=query(finance.STK_SHAREHOLDER_FLOATING_TOP10).filter(finance.STK_SHAREHOLDER_FLOATING_TOP10.code=='600276.XSHG',finance.STK_SHAREHOLDER_FLOATING_TOP10.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name code end_date pub_date \ +0 585806 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +1 585807 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +2 585808 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +3 585809 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +4 585810 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +5 585811 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +6 585812 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +7 585813 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +8 585814 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +9 585815 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 + + change_reason_id change_reason shareholder_rank shareholder_id \ +0 306019 定期报告 1 100008682 +1 306019 定期报告 2 100097529 +2 306019 定期报告 3 100008678 +3 306019 定期报告 4 100014895 +4 306019 定期报告 5 100008257 +5 306019 定期报告 6 100011907 +6 306019 定期报告 7 120160219 +7 306019 定期报告 8 120163402 +8 306019 定期报告 9 120050009 +9 306019 定期报告 10 100000383 + + shareholder_name shareholder_name_en \ +0 江苏恒瑞医药集团有限公司 None +1 西藏达远投资有限公司 None +2 连云港恒创医药科技有限公司 None +3 中国医药工业有限公司 None +4 江苏金海投资有限公司 None +5 香港中央结算有限公司 None +6 中国农业银行股份有限公司-国泰国证医药卫生行业指数分级证券投资基金 None +7 兴业银行股份有限公司-兴全趋势投资混合型证券投资基金 None +8 交通银行-博时新兴成长股票型证券投资基金 None +9 新华人寿保险股份有限公司-分红-团体分红-018L-FH001沪 None + + shareholder_class_id shareholder_class share_number share_ratio \ +0 307099 其他机构 332523790.0 22.109 +1 307099 其他机构 229034683.0 15.228 +2 307099 其他机构 102094053.0 6.788 +3 307099 其他机构 70203316.0 4.668 +4 307099 其他机构 50367370.0 3.349 +5 307099 其他机构 17207872.0 1.144 +6 307003 证券投资基金 15161505.0 1.008 +7 307003 证券投资基金 10299800.0 0.685 +8 307003 证券投资基金 9929500.0 0.660 +9 307014 保险投资组合 9296487.0 0.618 + + sharesnature_id sharesnature +0 308007 流通A股 +1 308007 流通A股 +2 308007 流通A股 +3 308007 流通A股 +4 308007 流通A股 +5 308007 流通A股 +6 308007 流通A股 +7 308007 流通A股 +8 308007 流通A股 +9 308007 流通A股 +``` + +STK_SHARES_PLEDGE股东股份质押 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_SHARES_PLEDGE).filter(finance.STK_SHARES_PLEDGE.code==code).limit(n)) +``` + + 获取上市公司股东股份的质押情况。 **参数:** - **query(finance.STK_SHARES_PLEDGE)**:表示从finance.STK_SHARES_PLEDGE这张表中查询上市公司股东股份的质押情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_SHARES_PLEDGE**:代表上市公司股东股份质押表,收录了上市公司股东股份的质押情况。表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | ------------------ | ------------------ | ------------- | ------------------------------------------ | | company_id | 公司ID | int | | | company_name | 公司名称 | varchar(100) | | | code | 股票代码 | varchar(12) | | | pub_date | 公告日期 | date | | | pledgor_id | 出质人ID | int | | | pledgor | 出质人 | varchar(100) | 将资产质押出去的人成为出质人 | | pledgee | 质权人 | varchar(100) | | | pledge_item | 质押事项 | varchar(500) | 质押原因,记录借款人、借款金额、币种等内容 | | pledge_nature_id | 质押股份性质编码 | int | | | pledge_nature | 质押股份性质 | varchar(120) | | | pledge_number | 质押数量 | int | 股 | | pledge_total_ratio | 占总股本比例 | decimal(10,4) | % | | start_date | 质押起始日 | date | | | end_date | 质押终止日 | date | | | unpledged_date | 质押解除日 | date | | | unpledged_number | 质押解除数量 | int | | | unpledged _detail | 解除质押说明 | varchar(1000) | | | is_buy_back | 是否质押式回购交易 | char(1) | | - **filter(finance.STK_SHARES_PLEDGE.code==code)**:指定筛选条件,通过finance.STK_SHARES_PLEDGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHARES_PLEDGE.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为万科(000002.XSHE)的股东股份质押情况,返回条数为5条 +q=query(finance.STK_SHARES_PLEDGE).filter(finance.STK_SHARES_PLEDGE.code=='000002.XSHE',finance.STK_SHARES_PLEDGE.pub_date>'2015-01-01').limit(5) +df=finance.run_query(q) +print(df) + + id company_id company_name code pub_date pledgor_id \ +0 82514 430000002 万科企业股份有限公司 000002.XSHE 2015-11-11 None +1 82515 430000002 万科企业股份有限公司 000002.XSHE 2016-07-14 None +2 82516 430000002 万科企业股份有限公司 000002.XSHE 2017-03-08 None +3 82517 430000002 万科企业股份有限公司 000002.XSHE 2017-03-08 None +4 82518 430000002 万科企业股份有限公司 000002.XSHE 2017-03-14 None + + pledgor pledgee \ +0 深圳市钜盛华股份有限公司 鹏华资产管理(深圳)有限公司 +1 深圳市钜盛华股份有限公司 中国银河证券股份有限公司 +2 深圳市钜盛华股份有限公司 鹏华资产管理(深圳)有限公司 +3 深圳市钜盛华股份有限公司 鹏华资产管理(深圳)有限公司 +4 深圳市钜盛华股份有限公司 平安证券股份有限公司 + + pledge_item pledge_nature_id \ +0 本公司股东深圳市钜盛华股份有限公司将持有的公司728,000,000股无限售流通A股质押给鹏... NaN +1 本公司股东深圳市钜盛华股份有限公司将持有的本公司37357300股股权质押给中国银河证券股份... 308007.0 +2 本公司股东深圳市钜盛华股份有限公司将2015年10月21日质押给鹏华资产管理(深圳)有限公司... 308007.0 +3 本公司股东深圳市钜盛华股份有限公司将2015年10月28日质押给鹏华资产管理(深圳)有限公司... 308007.0 +4 本公司第一大股东深圳市钜盛华股份有限公司将持有的本公司182000000股流通A股股权质押给... 308007.0 + + pledge_nature pledge_number pledge_total_ratio start_date end_date \ +0 None 728000000.0 6.59 2015-10-15 None +1 流通A股 37357300.0 NaN 2016-07-12 None +2 流通A股 NaN NaN 2015-10-21 2017-03-03 +3 流通A股 NaN NaN 2015-10-28 2017-03-03 +4 流通A股 182000000.0 NaN 2017-03-09 None + + unpledged_date unpledged_number unpledged_detail is_buy_back +0 None NaN None None +1 None NaN None 1 +2 2017-03-03 91000000.0 None None +3 2017-03-03 91000000.0 None None +4 None NaN None 1 +``` + +STK_SHARES_FROZEN股东股份冻结 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_SHARES_FROZEN).filter(finance.STK_SHARES_FROZEN.code==code).limit(n)) +``` + + 获取上市公司股东股份的冻结情况 **参数:** - **query(finance.STK_SHARES_FROZEN)**:表示从finance.STK_SHARES_FROZEN这张表中查询股东股份的冻结情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_SHARES_FROZEN**:代表上市公司股东股份冻结表,收录了上市公司股东股份的冻结情况,表结构和字段信息如下: | **字段名称** | **中文名称** | **字段类型** | **含义** | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| pub_date | 公告日期 | date | | +| code | 股票代码 | varchar(12) | | +| frozen_person_id | 被冻结当事人ID | int | | +| frozen_person | 被冻结当事人 | varchar(100) | | +| frozen_reason | 冻结事项 | varchar(600) | | +| frozen_share_nature_id | 被冻结股份性质编码 | int | | +| frozen_share_nature | 被冻结股份性质 | varchar(120) | 包括:国家股、法人股、个人股、外资股、 流通A股、流通B股、职工股、发起人股、转配股 | +| frozen_number | 冻结数量 | int | 股 | +| frozen_total_ratio | 占总股份比例 | decimal(10,4) | % | +| freeze_applicant | 冻结申请人 | varchar(100) | | +| freeze_executor | 冻结执行人 | varchar(100) | | +| start_date | 冻结起始日 | date | | +| end_date | 冻结终止日 | date | | +| unfrozen_date | 解冻日期 | date | 分批解冻的为最近一次解冻日期 | +| unfrozen_number | 累计解冻数量 | int | 原解冻数量 | +| unfrozen_detail | 解冻处理说明 | varchar(1000) | 冻结过程及结束后的处理结果 | + + - **filter(finance.STK_SHARES_FROZEN.code==code)**:指定筛选条件,通过finance.STK_SHARES_FROZEN.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHARES_FROZEN.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为文一科技(600520.XSHG)的股东股份冻结情况,返回条数为5条 +q=query(finance.STK_SHARES_FROZEN).filter(finance.STK_SHARES_FROZEN.code=='600520.XSHG',finance.STK_SHARES_FROZEN.pub_date>'2015-01-01').limit(5) +df=finance.run_query(q) +print(df) + + id company_id company_name pub_date code frozen_person_id \ +0 2360 420600520 铜陵中发三佳科技股份有限公司 2015-07-11 600520.XSHG None +1 2361 420600520 铜陵中发三佳科技股份有限公司 2015-08-13 600520.XSHG None +2 2362 420600520 铜陵中发三佳科技股份有限公司 2015-09-22 600520.XSHG None +3 2363 420600520 铜陵中发三佳科技股份有限公司 2016-03-24 600520.XSHG None +4 2364 420600520 铜陵中发三佳科技股份有限公司 2016-04-30 600520.XSHG None + + frozen_person frozen_reason \ +0 铜陵市三佳电子(集团)有限责任公司 本公司控股股东铜陵市三佳电子(集团)有限责任公司持有的本公司27073333股股份因上海隆灵... +1 铜陵市三佳电子(集团)有限责任公司 本公司控股股东铜陵市三佳电子(集团)有限责任公司起持有本公司的27,073,333股于201... +2 铜陵市三佳电子(集团)有限责任公司 铜陵市三佳电子(集团)有限责任公司与中信银行股份有限公司安庆分行发生金融借款纠纷,涉案金额为... +3 铜陵市三佳电子(集团)有限责任公司 本公司股东铜陵市三佳电子(集团)有限责任公司持有的被安庆市宜秀区人民法院及安庆市迎江区人民法... +4 铜陵市三佳电子(集团)有限责任公司 本公司控股股东铜陵市三佳电子(集团)有限责任公司持有的本公司27073333股股权被司法冻结... + + frozen_share_nature_id frozen_share_nature frozen_number \ +0 308001 境内法人股 27073333.0 +1 308001 境内法人股 NaN +2 308001 境内法人股 27073333.0 +3 308001 境内法人股 NaN +4 308001 境内法人股 27073333.0 + + frozen_total_ratio freeze_applicant freeze_executor start_date \ +0 17.090 None 上海市金山区人民法院 2015-07-10 +1 17.090 None None None +2 17.090 中信银行股份有限公司安庆分行 None None +3 17.089 None 安庆市宜秀区人民法院及安庆市迎江区人民法院 None +4 17.089 None 上海市浦东新区人民法院 2016-04-27 + + end_date unfrozen_date unfrozen_number unfrozen_detail +0 None None NaN None +1 2015-08-11 2015-08-11 27073333.0 None +2 None None NaN None +3 2016-03-16 2016-03-16 27073333.0 None +4 2019-04-20 None NaN None +``` + +STK_HOLDER_NUM股东户数 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_HOLDER_NUM).filter(finance.STK_HOLDER_NUM.code==code).limit(n)) +``` + + 获取上市公司全部股东户数,A股股东、B股股东、H股股东的持股户数 **参数:** - **query(finance.STK_HOLDER_NUM)**:表示从finance.STK_HOLDER_NUM这张表中查询上市公司的股东户数,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_HOLDER_NUM**:代表上市公司股东户数表,收录了上市公司全部股东户数,A股股东、B股股东、H股股东的持股户数情况,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 备注/示例 | | --------------- | ------------- | ----------- | --------- | | code | 股票代码 | varchar(12) | | | pub_date | 公告日期 | date | | | end_date | 截止日期 | date | | | share_holders | 股东总户数 | int | | | a_share_holders | A股股东总户数 | int | | | b_share_holders | B股股东总户数 | int | | | h_share_holders | H股股东总户数 | int | | - **filter(finance.STK_HOLDER_NUM.code==code)**:指定筛选条件,通过finance.STK_HOLDER_NUM.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_HOLDER_NUM.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为万科(000002.XSHE)的股东户数情况,返回条数为5条 +q=query(finance.STK_HOLDER_NUM).filter(finance.STK_HOLDER_NUM.code=='000002.XSHE',finance.STK_HOLDER_NUM.pub_date>'2015-01-01').limit(5) +df=finance.run_query(q) +print(df) + + id code end_date pub_date share_holders a_share_holders \ +0 139 000002.XSHE 2014-12-31 2015-03-31 496922 496907 +1 140 000002.XSHE 2015-03-24 2015-03-31 586390 586373 +2 141 000002.XSHE 2015-03-31 2015-04-27 652130 652113 +3 142 000002.XSHE 2015-06-30 2015-08-17 479264 479246 +4 143 000002.XSHE 2015-09-30 2015-10-28 332360 332339 + + b_share_holders h_share_holders +0 None 15 +1 None 17 +2 None 17 +3 None 18 +4 None 21 +``` + +STK_SHAREHOLDERS_SHARE_CHANGE大股东增减持 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_SHAREHOLDERS_SHARE_CHANGE).filter(finance.STK_SHAREHOLDERS_SHARE_CHANGE.code==code).limit(n)) +``` + + 获取上市公司大股东的增减持情况。 **参数:** - **query(finance.STK_SHAREHOLDERS_SHARE_CHANGE)**:表示从finance.STK_SHAREHOLDERS_SHARE_CHANGE这张表中查询上市公司大股东的增减持情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_SHAREHOLDERS_SHARE_CHANGE**:代表上市公司大股东增减持情况表,收录了大股东的增减持情况,表结构和字段信息如下: | **字段名称** | **中文名称** | **字段类型** | **备注/示例** | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| end_date | 增(减)持截止日 | date | 变动截止日期 | +| type | 增(减)持类型 | int | 0--增持;1--减持 | +| shareholder_id | 股东ID | int | | +| shareholder_name | 股东名称 | varchar(100) | | +| change_number | 变动数量 | int | 股 | +| change_ratio | 变动数量占总股本比例 | decimal(10,4) | 录入变动数量后,系统自动计算变动比例, 持股比例可以用持股数量除以股本情况表中的总股本 | +| price_ceiling | 增(减)持价格上限 | varchar(100) | 公告里面一般会给一个增持或者减持的价格区间,上限就是增持价格或减持价格的最高价。 如果公告中只披露了平均价,那price_ceiling即为成交均价 | +| after_change_ratio | 变动后占比 | decimal(10,4) | %,变动后持股数量占总股本比例 | + + - **filter(finance.STK_SHAREHOLDERS_SHARE_CHANGE.code==code)**:指定筛选条件,通过finance.STK_SHAREHOLDERS_SHARE_CHANGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHAREHOLDERS_SHARE_CHANGE.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为万科(000002.XSHE)的大股东增减持情况,返回5条 +q=query(finance.STK_SHAREHOLDERS_SHARE_CHANGE).filter(finance.STK_SHAREHOLDERS_SHARE_CHANGE.code=='000002.XSHE',finance.STK_SHAREHOLDERS_SHARE_CHANGE.pub_date>'2015-01-01') +df=finance.run_query(q) +print(df) + + id company_id company_name code pub_date end_date type \ +0 1362 430000002 万科企业股份有限公司 000002.XSHE 2015-10-22 2015-10-20 0 +1 25094 430000002 万科企业股份有限公司 000002.XSHE 2015-01-24 2015-01-23 0 +2 25138 430000002 万科企业股份有限公司 000002.XSHE 2015-01-28 2015-01-27 0 +3 29854 430000002 万科企业股份有限公司 000002.XSHE 2015-07-11 2015-07-10 0 +4 29883 430000002 万科企业股份有限公司 000002.XSHE 2015-07-11 2015-01-31 0 + + shareholder_id shareholder_name change_number change_ratio \ +0 NaN 深圳市矩盛华股份有限公司 37357310.0 0.338 +1 100097568.0 国信证券-工商银行-国信金鹏分级1号集合资产管理计划 101187211.0 0.920 +2 100097568.0 国信证券-工商银行-国信金鹏分级1号集合资产管理计划 34054269.0 0.310 +3 100116740.0 前海人寿保险股份有限公司 552727926.0 5.000 +4 100116740.0 前海人寿保险股份有限公司 1360161.0 0.012 + + price_ceiling after_change_ratio +0 None None +1 12.79 None +2 13.26 None +3 13.28-15.47 None +4 13.13-13.60 None +``` + +STK_CAPITAL_CHANGE上市公司股本变动 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_CAPITAL_CHANGE).filter(finance.STK_CAPITAL_CHANGE.code==code).limit(n)) +``` + + 获取上市公司的股本变动情况 **参数:** - **query(finance.STK_CAPITAL_CHANGE)**:表示从finance.STK_CAPITAL_CHANGE这张表中查询股票简称的变更情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_CAPITAL_CHANGE**:代表上市公司的股本变动表,收录了上市公司发生上市、增发、配股,转增等时间带来的股本变动情况。表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| change_date | 变动日期 | date | | +| pub_date | 公告日期 | date | | +| change_reason_id | 变动原因编码 | int | | +| change_reason | 变动原因 | varchar(120) | | +| share_total | 总股本 | decimal(20,4) | 未流通股份+已流通股份,单位:万股 | +| share_non_trade | 未流通股份 | decimal(20,4) | 发起人股份 + 募集法人股份 + 内部职工股 + 优先股 +转配股+其他未流通股+配售法人股+已发行未上市股份 | +| share_start | 发起人股份 | decimal(20,4) | 国家持股 +国有法人持股+境内法人持股 + 境外法人持股 + 自然人持股 | +| share_nation | 国家持股 | decimal(20,4) | 单位:万股 | +| share_nation_legal | 国有法人持股 | decimal(20,4) | 单位:万股 | +| share_instate_legal | 境内法人持股 | decimal(20,4) | 单位:万股 | +| share_outstate_legal | 境外法人持股 | decimal(20,4) | 单位:万股 | +| share_natural | 自然人持股 | decimal(20,4) | 单位:万股 | +| share_raised | 募集法人股 | decimal(20,4) | 单位:万股 | +| share_inside | 内部职工股 | decimal(20,4) | 单位:万股 | +| share_convert | 转配股 | decimal(20,4) | 单位:万股 | +| share_perferred | 优先股 | decimal(20,4) | 单位:万股 | +| share_other_nontrade | 其他未流通股 | decimal(20,4) | 单位:万股 | +| share_limited | 流通受限股份 | decimal(20,4) | 单位:万股 | +| share_legal_issue | 配售法人股 | decimal(20,4) | 战略投资配售股份+证券投资基金配售股份+一般法人配售股份 | +| share_strategic_investor | 战略投资者持股 | decimal(20,4) | 单位:万股 | +| share_fund | 证券投资基金持股 | decimal(20,4) | 单位:万股 | +| share_normal_legal | 一般法人持股 | decimal(20,4) | 单位:万股 | +| share_other_limited | 其他流通受限股份 | decimal(20,4) | 单位:万股 | +| share_nation_limited | 国家持股(受限) | decimal(20,4) | 单位:万股 | +| share_nation_legal_limited | 国有法人持股(受限) | decimal(20,4) | 单位:万股 | +| other_instate_limited | 其他内资持股(受限) | decimal(20,4) | 单位:万股 | +| legal of other_instate_limited | 其他内资持股(受限)中的境内法人持股 | decimal(20,4) | 单位:万股 | +| natural of other_instate_limited | 其他内资持股(受限)中的境内自然人持股 | decimal(20,4) | 单位:万股 | +| outstate_limited | 外资持股(受限) | decimal(20,4) | 单位:万股 | +| legal of outstate_limited | 外资持股(受限)中的境外法人持股 | decimal(20,4) | 单位:万股 | +| natural of outstate_limited | 外资持股(受限)境外自然人持股 | decimal(20,4) | 单位:万股 | +| share_trade_total | 已流通股份(自由流通股) | decimal(20,4) | 人民币普通股+ 境内上市外资股(B股)+ 境外上市外资股(H股)+高管股+ 其他流通股 | +| share_rmb | 人民币普通股 | decimal(20,4) | 单位:万股 | +| share_b | 境内上市外资股(B股) | decimal(20,4) | 单位:万股 | +| share_b_limited | 限售B股 | decimal(20,4) | 单位:万股 | +| share_h | 境外上市外资股(H股) | decimal(20,4) | 单位:万股 | +| share_h_limited | 限售H股 | decimal(20,4) | 单位:万股 | +| share_management | 高管股 | decimal(20,4) | 单位:万股 | +| share_management_limited | 限售高管股 | decimal(20,4) | 单位:万股 | +| share_other_trade | 其他流通股 | decimal(20,4) | 单位:万股 | +| control_shareholder_limited | 控股股东、实际控制人(受限) | decimal(20,4) | 单位:万股 | +| core_employee_limited | 核心员工(受限) | decimal(20,4) | 单位:万股 | +| individual_fund_limited | 个人或基金(受限) | decimal(20,4) | 单位:万股 | +| other_legal_limited | 其他法人(受限) | decimal(20,4) | 单位:万股 | +| other_limited | 其他(受限) | decimal(20,4) | 单位:万股 | + + - **filter(finance.STK_CAPITAL_CHANGE.code==code)**:指定筛选条件,通过finance.STK_CAPITAL_CHANGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_CAPITAL_CHANGE.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的股本变动情况,返回条数为5条 +q=query(finance.STK_CAPITAL_CHANGE).filter(finance.STK_CAPITAL_CHANGE.code=='600276.XSHG',finance.STK_CAPITAL_CHANGE.pub_date>'2015-01-01').limit(5) +df=finance.run_query(q) +print(df) + + id company_id company_name code change_date pub_date \ +0 107 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-01-16 2017-01-10 +1 3506 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-05-31 2017-05-22 +2 4130 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-06-29 2017-06-29 +3 4417 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-07-25 2017-07-20 +4 7659 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-06-30 2017-08-30 + + change_reason_id change_reason share_total share_non_trade ... \ +0 NaN 激励股份解禁 234745.9674 0.0 ... +1 306010.0 送股 281695.1609 0.0 ... +2 306016.0 股份回购 281688.9833 0.0 ... +3 NaN 激励股份解禁 281688.9833 0.0 ... +4 306019.0 定期报告 281688.9833 0.0 ... + + share_h share_h_limited share_management share_management_limited \ +0 0.0 None 0.0 None +1 0.0 None 0.0 None +2 0.0 None 0.0 None +3 0.0 None 0.0 None +4 0.0 None 0.0 None + + share_other_trade control_shareholder_limited core_employee_limited \ +0 0.0 None None +1 0.0 None None +2 0.0 None None +3 0.0 None None +4 0.0 None None + + individual_fund_limited other_legal_limited other_limited +0 None None None +1 None None None +2 None None None +3 None None None +4 None None None + +[5 rows x 49 columns] +``` + +STK_LIMITED_SHARES_LIST受限股份上市公告日期 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_LIMITED_SHARES_LIST).filter(finance.STK_LIMITED_SHARES_LIST.code==code).limit(n)) +``` + + 获取上市公司受限股份上市公告日期和预计解禁日期。 **参数:** - **query(finance.STK_LIMITED_SHARES_LIST)**:表示从finance.STK_LIMITED_SHARES_LIST这张表中查询上市公司受限股份上市公告和预计解禁的日期,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[query简单教程]() - **finance.STK_LIMITED_SHARES_LIST**:代表受限股份上市公告日期表,收录了上市公司受限股份上市公告和预计解禁的日期,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 含义 | | ------------------------- | ---------------- | ------------- | -------------------------------------- | | company_id | 公司ID | int | | | company_name | 公司名称 | varchar(100) | | | code | 股票代码 | varchar(12) | | | pub_date | 公告日期 | date | 上市流通方案公布日期 | | shareholder_name | 股东名称 | varchar(100) | | | expected_unlimited_date | 预计解除限售日期 | date | | | expected_unlimited_number | 预计解除限售数量 | int | 单位:股 | | expected_unlimited_ratio | 预计解除限售比例 | decimal(10,4) | 单位:%;预计解除限售数量占总股本比例 | | actual_unlimited_date | 实际解除限售日期 | date | | | actual_unlimited_number | 实际解除限售数量 | int | 单位:股 | | actual_unlimited_ratio | 实际解除限售比例 | decimal(10,4) | 单位:%;实际解除限售数量占总股本比例 | | limited_reason_id | **限售原因编码** | int | 如下 限售原因编码 | | limited_reason | 限售原因 | varchar(60) | 用户选择:股改限售;发行限售 | | trade_condition | 上市交易条件 | varchar(500) | 股份上市交易的条件限制 | - **filter(finance.STK_LIMITED_SHARES_LIST.code==code)**:指定筛选条件,通过finance.STK_LIMITED_SHARES_LIST.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_LIMITED_SHARES_LIST.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为华泰证券(601688.XSHG)的受限股份上市公告日期 +q=query(finance.STK_LIMITED_SHARES_LIST).filter(finance.STK_LIMITED_SHARES_LIST.code=='601688.XSHG',finance.STK_LIMITED_SHARES_LIST.pub_date>'2018-01-01') +df=finance.run_query(q) +print(df) + + id company_id company_name code pub_date shareholder_name \ +0 34395 460000161 华泰证券股份有限公司 601688.XSHG 2018-08-04 阿里巴巴(中国)网络技术有限公司等 + + expected_unlimited_date expected_unlimited_number expected_unlimited_ratio \ +0 2019-08-02 1.088731e+09 None + + actual_unlimited_date actual_unlimited_number actual_unlimited_ratio \ +0 None None None + + limited_reason_id limited_reason trade_condition +0 309008 非公开发行限售 None +``` + +STK_LIMITED_SHARES_UNLIMIT受限股份实际解禁日期 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.STK_LIMITED_SHARES_UNLIMIT).filter(finance.STK_LIMITED_SHARES_UNLIMIT.code==code).limit(n)) +``` + + 获取公司已上市的受限股份实际解禁的日期。 **参数:** - **query(finance.STK_LIMITED_SHARES_UNLIMIT)**:表示从finance.STK_LIMITED_SHARES_UNLIMIT这张表中查询上市公司受限股份实际解禁的日期,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.STK_LIMITED_SHARES_UNLIMIT**:代表上市公司受限股份实际解禁表,收录了上市公司受限股份实际解禁的日期信息,表结构和字段信息如下: | 字段名称 | 中文名称 | 字段类型 | 含义 | | ----------------------- | ---------------- | ------------- | ----------------------------------- | | company_id | 公司ID | int | | | company_name | 公司名称 | varchar(100) | | | code | 股票代码 | varchar(12) | | | pub_date | 公告日期 | date | | | shareholder_name | 股东名称 | varchar(100) | | | actual_unlimited_date | 实际解除限售日期 | date | | | actual_unlimited_number | 实际解除限售数量 | int | 股 | | actual_unlimited_ratio | 实际解除限售比例 | decimal(10,4) | 实际解除限售数量占总股本比例,单位% | | limited_reason_id | 限售原因编码 | int | | | limited_reason | 限售原因 | varchar(60) | | | actual_trade_number | 实际可流通数量 | int | | - **filter(finance.STK_LIMITED_SHARES_UNLIMIT.code==code)**:指定筛选条件,通过finance.STK_LIMITED_SHARES_UNLIMIT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_LIMITED_SHARES_UNLIMIT.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的受限股份实际解禁日期,返回条数为5条 +q=query(finance.STK_LIMITED_SHARES_UNLIMIT).filter(finance.STK_LIMITED_SHARES_UNLIMIT.code=='600276.XSHG',finance.STK_LIMITED_SHARES_UNLIMIT.pub_date>'2015-01-01').limit(5) +df=finance.run_query(q) +print(df) + + id company_id company_name code pub_date shareholder_name \ +0 11252 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2015-07-14 蒋素梅等 +1 11889 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2016-01-16 周云曙等 +2 12613 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2016-07-14 蒋素梅等 +3 13335 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-01-10 周云曙等 +4 14162 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-07-20 蒋素梅等 + + actual_unlimited_date actual_unlimited_number actual_unlimited_ratio \ +0 2015-07-17 4021160.0 0.1672 +1 2016-01-21 531960.0 0.0068 +2 2016-07-19 3488285.0 0.1486 +3 2017-01-16 478764.0 0.0051 +4 2017-07-25 4024089.0 0.1167 + + limited_reason_id limited_reason actual_trade_number +0 309004 股权激励 3270410.0 +1 309004 股权激励 132990.0 +2 309004 股权激励 3488285.0 +3 309004 股权激励 119691.0 +4 309004 股权激励 3287409.0 +​ +``` + +## 期货 + +### 期货概况(含新接口) + +- **更新时间:2005至今,8:00更新** + +方法描述normalize_code将期货代码转化成聚宽标准格式 +``` + +normalize_code(code) +``` + + 将其他形式的期货代码转换为jqdatasdk函数可用的期货代码形式。 **支持传入单只期货或一个期货list** **示例** +``` + +#输入 +normalize_code(['AU1701', 'SF9999', 'SC9999','A0603','IF9999']) +#输出 +['AU1701.XSGE', 'SF9999.XZCE', 'SC9999.XINE', 'A0603.XDCE', 'IF9999.CCFX'] +``` + +get_future_contracts获取期货可交易合约列表 +``` + +get_future_contracts(underlying_symbol, date) +``` + + 获取某期货品种在指定日期下的可交易合约标的列表 **参数** - security: 期货合约品种,如 'AU'(白银) - date:指定日期,默认为None,不指定时返回当前日期下可交易的合约标的列表 **返回** - 某一期货品种在指定日期下的可交易合约标的列表 **示例** +``` + +# 获取某期货品种在指定日期下的可交易合约标的列表 +get_future_contracts('AU','2017-01-05') + +# 输出 +['AU1701.XSGE', 'AU1702.XSGE', 'AU1703.XSGE', 'AU1704.XSGE', 'AU1706.XSGE', 'AU1708.XSGE', 'AU1710.XSGE', 'AU1712.XSGE'] +``` + +get_all_securities获取所有期货信息 +``` + +get_all_securities(types=['futures'], date=None) +``` + + **参数** - types: 'futures'。types为空时返回所有股票, 不包括基金,指数和期货 - date: 日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 用于获取某日期还在上市的股票信息. 默认值为 None, 表示获取所有日期的股票信息 **返回** 返回[pandas.DataFrame,如案例所示 - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期 - end_date: 退市日期,如果没有退市则为2200-01-01 - type: 类型,futures(期货) **示例** +``` + +#将所有期货列表转换成数组 +futures = list(get_all_securities(['futures']).index) +``` + +``` + +#获取所有期货列表 +get_all_securities(['futures'])[:2] + +#输出 + display_name name start_date end_date type +A0501.XDCE 豆一0501 a0501 2003-07-15 2005-01-17 futures +A0503.XDCE 豆一0503 a0503 2003-09-15 2005-03-14 futures +``` + +get_extras获取期货结算价/盘后17:00更新 **支持2005至今的期货数据** +``` + +get_extras(info, security_list, start_date='2005-01-01', end_date =None, df=True, count=None) +``` + + **参数** - info: [futures_sett_price]期货结算价; - security_list: 期货列表 - start_date/end_date: 开始/结束日期, 同 [get_price] - df: 返回[pandas.DataFrame]对象还是一个dict - count: 数量, **与 start_date 二选一, 不可同时使用**, 必须大于 0. 表示取 end_date 往前的 count 个交易日的数据 **返回值** - df=True: 返回[pandas.DataFrame]对象, 列索引是股票代号, 行索引是[datetime.datetime], 比如 获取期货结算价:futures_sett_price +``` + +get_extras('futures_sett_price', ['A0603.XDCE','A0605.XDCE'],start_date='2005-01-18').head() + + A0603.XDCE A0605.XDCE +2005-01-18 2510.0 2537.0 +2005-01-19 2512.0 2537.0 +2005-01-20 2512.0 2529.0 +2005-01-21 2500.0 2528.0 +``` + +get_futures_info 获取期货合约的信息(合约乘数,最小报价单位,交易时间) +``` + +get_futures_info(securities=None, fields=('contract_multiplier', + 'tick_size', + 'trade_time')) +``` + + **参数** - securities: str或list,一个或多个标的代码 - fields : 获取的信息,可为多个,支持'contract_multiplier':合约乘数,'tick_size':最小报价单位,'trade_time':交易时间(期货可能调整交易时间,所以可能存在多个) **返回** - 返回一个嵌套dict ,第一层key是标的代码,value是标的对应的信息,第二层key是指标名,value是指标值 - tick_size 最小报价单位: float - contract_multiplier 合约乘数 : float - trade_time : list , 每次交易时间变更作为一条记录 , 每个list内前两个元素为生效时间和失效时间,后边的元素为按交易小节划分的交易时间;如 A1609.XDCE 的 trade_time 为 :[['2015-03-16','2015-05-08','21:00~02:30','09:00~10:15','10:30~11:30','13:30~15:00'], ['2015-05-09','2016-09-14','21:00~23:30', '09:00~10:15','10:30~11:30','13:30~15:00']], 表示从2015-03-16到2015-05-08交易时间为'21:00~02:30','09:00~10:15','10:30~11:30','13:30~15:00' 从2015-05-09到2016-09-14交易时间改为'21:00~23:30', '09:00~10:15','10:30~11:30','13:30~15:00' **示例** +``` + +from jqdatasdk import * +infos = get_futures_info(["AG2012.XSGE",'A1609.XDCE' ]) +print(infos) +>>>{'AG2012.XSGE': {'tick_size': 1.0, +'trade_time': [['2019-12-17', '2020-12-15', '21:00~02:30', '09:00~10:15', '10:30~11:30', '13:30~15:00']], +'contract_multiplier': 15.0}, +'A1609.XDCE': {'tick_size': 1.0, +'trade_time': [['2015-03-16', '2015-05-08', '21:00~02:30', '09:00~10:15', '10:30~11:30', '13:30~15:00'], +['2015-05-09', '2016-09-14', '21:00~23:30', '09:00~10:15', '10:30~11:30', '13:30~15:00']], + 'contract_multiplier': 10.0}} +``` + +get_dominant_future主力合约对应的标的 / 2005至今,20点更新下一交易日 +``` + +get_dominant_future(underlying_symbol,date , end_date ) +``` + + **参数** - underlying_symbol: 期货合约品种,如 'AG'(白银) - date:指定日期参数,获取历史上该日期的主力期货合约 ,如未指定end_date时返回date当天的主力合约(字符串格式),默认为当前时间 - end_date:指定日期参数,获取自date到end_date的主力合约(pandas.Series格式)。默认值为 None,不填则返回 date 参数指定日期的主力合约标的 **注意 : date和end_date参数都可以指定分时秒,返回的数据会对应日期参数所属的交易日 , 21:00:00 及之后属于下一交易日** **返回** - 主力合约对应的期货合约 **示例** +``` + +# 获取某一天的主力合约对应的期货合约代码,指定日期为'2018-05-06' +get_dominant_future('AU','2018-05-06') +>>> 'AU1812.XSGE' +``` + +期货列表金融期货、商品期货 [**金融期货**](https://www.joinquant.com/help/api/help#Future:%E9%87%91%E8%9E%8D%E6%9C%9F%E8%B4%A7%E5%88%97%E8%A1%A8):1. 沪深300指数期货合约表 2. 上证50股指期货合约表 3. 中证500股指期货合约表 **4. 中证1000股指期货合约表** 5. 2年期国债期货合约表 6. 5年期国债期货合约表 7. 10年期国债期货合约表 [**商品期货**](https://www.joinquant.com/help/api/help#Future:%E5%95%86%E5%93%81%E6%9C%9F%E8%B4%A7%E5%88%97%E8%A1%A8):中金所 上海国际能源交易中心 上期所 郑商所 大商所 主力连续合约主力连续合约信息 1. 期货合约的生存周期是有限的,到合约最后交易日后就要交割。因此我们根据**持仓量**对期货合约进行拼接,形成主力连续合约。 2. 合约代码:品种代码+9999.交易所后缀,例如 AG9999.XSGE(白银主力合约)、Y9999.XDCE(豆油主力合约)。 3. 主力合约定义:如果某合约持仓量连续2天为同一个品种中最大的(金融期货限定主力只从最近的两个合约中选取),且该合约相对于当前主力合约为远期合约,则自动变成主力合约。不会在日内进行主力合约切换。 [**主要期货交易所的主力合约及品种指数代码列表**](https://www.joinquant.com/help/api/help?name=Future#%E4%B8%BB%E5%8A%9B%E8%BF%9E%E7%BB%AD%E5%90%88%E7%BA%A6%E5%8F%8A%E5%93%81%E7%A7%8D%E6%8C%87%E6%95%B0) 品种指数品种指数信息 1. 期货品种指数合约定义 : 期货品种指数数据使用前一天的持仓量加权平均 2. 合约代码: 品种代码+8888.交易所后缀,如 AG8888.XSGE(白银合约指数)、Y8888.XDCE(豆油品种指数) [**主要期货交易所的主力合约及品种指数代码列表**](https://www.joinquant.com/help/api/help?name=Future#%E4%B8%BB%E5%8A%9B%E8%BF%9E%E7%BB%AD%E5%90%88%E7%BA%A6%E5%8F%8A%E5%93%81%E7%A7%8D%E6%8C%87%E6%95%B0) ### 期货行情数据 + +- **更新时间:日行情 2005至今 盘后更新(盘后15:00更新,24:00校对完成入库)** +- **更新时间:分钟行情 2005至今 盘后更新(盘后15:00更新,24:00校对完成入库** + +方法描述 / 更新时间及频率get_price(1天/分钟)行情数据 +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None, panel=True, fill_paused=True) +``` + + - 获取一支或者多只期货数据 - frequency为非一天或者一分钟,请使用get_bars; - 取多支标的的数据时,不要获取交易时段不同的标的(例如:不同交易时间的期货标的),否则会报错; - 这里在使用时注意 end_date 的设置,不要引入未来的数据; - 标识时间为09:32:00的1分钟k线,其数据时间为09:31:00至09:31:59; - end_dare:**当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取 , 期货夜盘 21:00~次日02:30 的分钟行情在 02:30 之后可以获取。**注意:当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后(或夜盘结束)时间 - get_price指定frequency为 非1m/1d时,fields选择'high_limit','low_limit'会报错 **关于停牌**: 因为此API可以获取多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充. 如想跳过, 请使用 skip_paused=True 参数, 注意当 panel=True 且获取多标的时不支持(panel结构需要索引对齐) +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + **参数** | **参数名称** | **参数说明** | **注释** | +| --- | --- | --- | +| security | 标的 | 可获取种类:股票、期货、基金、指数、期权 | +| start_date | 开始时间,不可与count同时使用。当'count'和'start_date'为None时, 默认值是 '2015-01-01 00:00:00' | 当指定frequency为minute时,如果只传入日期,则日内时间为当日的 00:00:00 | +| end_date | 结束时间,如无指定,默认为'2015-12-31 00:00:00'。当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后(或夜盘结束)时间 | 当指定frequency为minute时, 如果只传入日期, 则日内时间为当日的 00:00:00, 所以返回的数据不包括 end_date这天。 | +| count | 表示获取 end_date 之前几个 frequency 的数据,与start_date不可同时使用。 | 返回的结果集的行数, 即表示获取 end_date 之前count个 frequency 的数据 | +| frequency | 单位时间长度,即指定获取的时间频级为分钟级(minute)或日级(daily),也可以指定为 '3m','10d' 等 | daily'(同'1d'), 'minute'(同'1m'), [点击查看get_price和get_bars的合成逻辑。](https://www.joinquant.com/view/community/detail/cea095760a0583ce965964912580077e?type=1)如需5分钟,1小时等标准bar请使用get_bars | +| fields | 所获取数据的字段名称,即表头。默认是None(返回标准字段['open','close','high','low','volume','money']) | 可选择填入以下字段,字段说明可查阅下面fields表 ['open','close','low','high','volume','money','factor', 'high_limit','low_limit','avg','pre_close','paused','open_interest'], open_interest为期货持仓量 | +| skip_paused | 是否跳过不交易日期(含:停牌/未上市/退市后的日期) | 如果不跳过, 停牌时会使用停牌前的数据填充,上市前或者退市后数据都为 nan。 | +| fill_paused | 对于停牌股票的价格处理,默认为True | 默认为True,用pre_close价格填充);False 表示使用NAN填充停牌的股票价格。 | +| fq | 复权选项,默认为前复权(fq='pre') | pre':前复权 / 'none':不复权, 返回实际价格/'post': 后复权 | +| panel | 指定返回的数据格式为panel | 默认为True;指定panel=False时返回dataframe格式; 如本地pandas版本大于0.25将强制返回dataframe详见案例 | + + **fields**内各字段属性 | **字段名称** | **中文名称** | **注释** | +| --- | --- | --- | +| open | 时间段开始时价格 | | +| close | 时间段结束时价格 | | +| low | 时间段中的最低价 | | +| high | 时间段中的最高价 | | +| volume | 时间段中的成交的股票数量 | | +| money | 时间段中的成交的金额 | | +| factor | pre':前复权(默认)/None:不复权,返回实际价格/'post':后复权 | 前(后)复权数据=价格×前(后)复权因子; 前(后)复权后的成交量=成交量 / 前(后)复权因子; 成交额不处理 | +| high_limit | 时间段中的涨停价 | | +| low_limit | 时间段中的跌停价 | | +| avg | 时间段中的平均价 | (1)天级别:股票是成交额除以成交量;期货是直接从CTP行情获取的,计算方法为成交额除以成交量再除以合约乘数; (2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 | +| pre_close | 前一个单位时间结束时的价格,按天则是前一天的收盘价 | 期货:pre_close--前一天结算;建议使用get_extras获取结算价;在分钟频率下pre_close=open | +| paused | bool值,股票是否停牌; | 停牌时open/close/low/high/pre_close;都等于停牌前的收盘价, volume=money=0 | +| open_interest | 期货持仓量 | | + + **返回** - 请注意, 为了方便比较一只期货的多个属性, 同时也满足对比多只期货的一个属性的需求, 我们在security参数是**一只期货和多只期货时返回的结构完全不一样 (默认panel=True时)** **代码示例** **获取一支期货** +``` + +# 获得AU1812.XSGE的2018年07月02日 23:30:00-2018年07月02日 23:35:00的分钟数据 +df = get_price('AU1812.XSGE', start_date='2018-07-02 23:30:00', end_date='2018-07-02 23:35:00', frequency='1m') +# 返回[pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是行情字段名字 +df[:5] + + open close high low volume money +2018-07-02 23:30:00 272.20 272.25 272.25 272.2 252.0 68594900.0 +2018-07-02 23:31:00 272.20 272.25 272.25 272.2 214.0 58260700.0 +2018-07-02 23:32:00 272.25 272.25 272.25 272.2 100.0 27224800.0 +2018-07-02 23:33:00 272.20 272.25 272.25 272.2 194.0 52815300.0 +2018-07-02 23:34:00 272.25 272.20 272.25 272.2 112.0 30489500.0 +``` + + **获取多只期货** +``` + +# 获取豆一0603和豆一0605的开盘价,则返回[pandas.Panel]对象 +panel=get_price(['A0603.XDCE','A0605.XDCE'],start_date='2005-01-18') +#返回[pandas.DataFrame]对象,行索引是[datetime.datetime]对象, 列索引是期货代号 +df=panel['open'][:4] +print(df) + + A0603.XDCE A0605.XDCE +2005-01-18 2510.0 2534.0 +2005-01-19 2491.0 2537.0 +2005-01-20 2512.0 2528.0 +2005-01-21 2504.0 2528.0 +``` + +get_bars时间周期的行情数据(支持时间周期:'1m','5m', '15m', '30m', '60m', '120m', '1w', '1M') +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None,df=True) +``` + + 获取各种时间周期的bar数据,bar的分割方式与主流股票软件相同, 同时还支持返回当前时刻所在 bar 的数据。 **参数** - security: 期货代码,支持单个及多个标的 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流股票软件类似,期货的bar各平台也许稍微有差异,我们与文华接近; 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', 'open_interest'(期货持仓量),factor(复权因子)。 - include_now: 取值True 或者False。 表示是否包含end_dt所在的bar, 比如end_dt指定为9:38:00,unit参数为5m, 如果 include_now=True,则返回的最后一条bar为9:35:00-9:38:00这个 bar,否则返回的最后一条bar为09:30:00-09:35:00的bar。 - end_dt:查询的截止时间,默认最新的时间。注意:当end_dt指定为当天尚未结束的交易时间时,会自动填充为上一个交易日收盘(或夜盘结束)的时间 - fq_ref_date:复权基准日期,为None时为不复权数据。 - 如果用户输入 fq_ref_date = None, 则获取到的是不复权的数据 - 如果用户想获取后复权的数据,可以将fq_ref_date 指定为一个很早的日期,比如 datetime.date(2000, 1, 1) - 定点复权,以某一天价格点位为参照物,进行的前复权或后复权。设置为datetime.datetime.now()即返回前复权数据 ; - df:默认为True,指定返回数据为dataframe结构;当df=False的时候,传入单个标的时,返回一个np.ndarray,多个标的返回一个字典,key是code,value是np.array **返回** 返回一个pandas.dataframe对象,可以按任意周期返回期货的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 **示例** +``` + +#获取豆一0603按120分钟为周期以"2018-12-05"为基础往前5个时间单位的数据 +df = get_bars('A0603.XDCE', 5, unit='120m',fields=['date','open','high','low','close'],include_now=False,end_dt='2018-12-05') +print(df) + + date open high low close +0 2006-03-13 11:30:00 2603.0 2603.0 2603.0 2603.0 +1 2006-03-13 15:00:00 2603.0 2603.0 2603.0 2603.0 +2 2006-03-14 11:00:00 2603.0 2603.0 2581.0 2581.0 +3 2006-03-14 11:30:00 2581.0 2610.0 2581.0 2610.0 +4 2006-03-14 15:00:00 2610.0 2610.0 2581.0 2595.0 +``` + +``` + +#获取豆一0603和豆一0605按120分钟为周期以"2018-12-05"为基础往前5个时间单位的数据 +df = get_bars(['A0603.XDCE','A0605.XDCE'], 5, unit='120m',fields=['date','open','high','low','close'],include_now=False,end_dt='2018-12-05') +print(df) + date open high low close +A0603.XDCE 0 2006-03-13 11:30:00 2603.0 2603.0 2603.0 2603.0 + 1 2006-03-13 15:00:00 2603.0 2603.0 2603.0 2603.0 + 2 2006-03-14 11:00:00 2603.0 2603.0 2581.0 2581.0 + 3 2006-03-14 11:30:00 2581.0 2610.0 2581.0 2610.0 + 4 2006-03-14 15:00:00 2610.0 2610.0 2581.0 2595.0 +A0605.XDCE 0 2006-05-18 11:30:00 2498.0 2498.0 2498.0 2498.0 + 1 2006-05-18 15:00:00 2498.0 2498.0 2498.0 2498.0 + 2 2006-05-19 11:00:00 2499.0 2499.0 2499.0 2499.0 + 3 2006-05-19 11:30:00 2499.0 2499.0 2499.0 2499.0 + 4 2006-05-19 15:00:00 2499.0 2499.0 2499.0 2499.0 +``` + +get_ticks (机构)金融期货和商品期货tick数据/2010-01-01 起(付费) +``` + +get_ticks(security, start_dt, end_dt, count, fields, skip,df=True) +``` + + **期货部分, 支持 2010-01-01 至今的tick数据,提供买一卖一数据。(每0.5秒一次快照)**如果要获取主力合约的tick数据,可以先使用get_dominant_future(underlying_symbol,dt)获取主力合约对应的标的,然后再用get_ticks()获取该合约的tick数据 **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 期货代码 - start_dt: 开始日期 - end_dt: 结束日期 - count: 取出指定时间区间内前多少条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下: - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据。 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray - **期货tick返回结果:** | 字段名 | 说明 | 字段类型 | | -------- | ----------| -------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(手)| float | | money | 累计成交额 | float | | position | 持仓量 | float | | a1_v | 一档卖量 | float | | a1_p | 一档卖价 | float | | b1_v | 一档买量 | float | | b1_p | 一档买价 | float | **期货tick数据示例**: +``` + +#获取AU1812期货合约在“2018-07-03”前8个时间单位的tick数据,start_dt和count只能有一个不为None值 +df=get_ticks('AU1812.XSGE',end_dt='2018-07-03',count=8) +print(df) + time current high low volume money \ +0 2018-07-02 23:59:35.500 272.00 272.95 272.0 42922.0 1.170027e+10 +1 2018-07-02 23:59:37.000 272.05 272.95 272.0 42942.0 1.170571e+10 +2 2018-07-02 23:59:37.500 272.05 272.95 272.0 42966.0 1.171224e+10 +3 2018-07-02 23:59:38.000 272.05 272.95 272.0 42974.0 1.171442e+10 +4 2018-07-02 23:59:43.000 272.05 272.95 272.0 42978.0 1.171550e+10 +5 2018-07-02 23:59:45.500 272.05 272.95 272.0 42986.0 1.171768e+10 +6 2018-07-02 23:59:46.000 272.05 272.95 272.0 42994.0 1.171986e+10 +7 2018-07-02 23:59:59.000 272.05 272.95 272.0 42998.0 1.172094e+10 + + position a1_p a1_v b1_p b1_v +0 361578.0 272.05 57.0 272.00 281.0 +1 361570.0 272.05 12.0 272.00 289.0 +2 361562.0 272.10 96.0 272.05 14.0 +3 361554.0 272.10 97.0 272.05 25.0 +4 361554.0 272.10 97.0 272.05 24.0 +5 361546.0 272.10 95.0 272.05 20.0 +6 361538.0 272.10 91.0 272.05 16.0 +7 361534.0 272.10 85.0 272.05 17.0 +``` + +FUT_GLOBAL_DAILY外盘日行情数据 / 上市至今,盘前09:00更新 +``` + +from jqdatasdk import finance +df=finance.run_query(query(finance.FUT_GLOBAL_DAILY).filter(finance.FUT_GLOBAL_DAILY.day==date).limit(n)) +``` + + 描述:记录主要外盘商品期货的日行情数据,包含开盘价、收盘价、最高价、最低价、成交量等 **参数:** - **query(finance.FUT_GLOBAL_DAILY)**:表示从finance.FUT_GLOBAL_DAILY这张表中查询外盘期货日行情数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411) - **finance.FUT_GLOBAL_DAILY**:收录了外盘期货日行情数据,表结构和字段信息如下: **字段设计** | **字段** | **名称** | **类型** | **非空** | **含义** | | ---------- | ----------- | ------------- | -------- | --------------------------------------------- | | code | 期货代码 | varchar(64) | Y | 代码列表详见下方期货代码名称对照表 | | name | 期货名称 | varchar(64) | | | | day | 日期 | date | Y | | | open | 开盘价 | decimal(20,6) | | | | close | 收盘价 | decimal(20,6) | | | | low | 最低价 | decimal(20,6) | | | | high | 最高价 | decimal(20,6) | | | | volume | 成交量 | decimal(20,6) | | | | change_pct | 涨跌幅(%) | decimal(20,4) | | (当日收盘价-前收价)/前收价 | | amplitude | 振幅(%) | decimal(20,6) | | (当日最高点的价格-当日最低点的价格)/前收价 | | pre_close | 前收价 | decimal(20,6) | | | **期货代码名称对照表** | 代码 | AHD | BO | C | CAD | CL | ES | GC | HG | LHC | NG | NID | |----|---------|----------|---------|---------|---------|------|---------|--------|---------|----------|---------| | 名称 | LME铝3个月 | CBOT-黄豆油 | CBOT-玉米 | LME铜3个月 | NYMEX原油 | 标普期货 | COMEX黄金 | COMEX铜 | CME-瘦肉猪 | NYMEX天然气 | LME镍3个月 | | 代码 | OIL | PBD | S | SI | SM | SND | W | XAG | XAU | XPD | XPT | ZSD | |----|-------|---------|---------|---------|----------|---------|---------|-----|-----|------|------|---------| | 名称 | 布伦特原油 | LME铅3个月 | CBOT-黄豆 | COMEX白银 | CBOT-黄豆粉 | LME锡3个月 | CBOT-小麦 | 伦敦银 | 伦敦金 | 伦敦钯金 | 伦敦铂金 | LME锌3个月 | - **filter(finance.FUT_GLOBAL_DAILY.day==date)**:指定筛选条件,通过finance.FUT_GLOBAL_DAILY.day==date可以指定你想要查询的行情日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.FUT_GLOBAL_DAILY.code==code,表示指定标的代码查询日行情;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询品种为铜('CU')的2018年12月05日的仓单数据,从大到小,返回8条 +q=query(finance.FUT_WAREHOUSE_RECEIPT.day, + finance.FUT_WAREHOUSE_RECEIPT.underlying_code, + finance.FUT_WAREHOUSE_RECEIPT.warehouse_name, +finance.FUT_WAREHOUSE_RECEIPT.warehouse_receipt_number).filter(finance.FUT_WAREHOUSE_RECEIPT.underlying_code=='CU',finance.FUT_WAREHOUSE_RECEIPT.day=='2018-12-05').order_by(finance.FUT_WAREHOUSE_RECEIPT.warehouse_receipt_number.desc()).limit(8) +df=finance.run_query(q) +print(df) + day underlying_code warehouse_name warehouse_receipt_number +0 2018-12-05 CU 江苏-中储无锡 10517 +1 2018-12-05 CU 广东-八三O黄浦 9141 +2 2018-12-05 CU 江苏-常州融达 6787 +3 2018-12-05 CU 上海-中储吴淞 5238 +4 2018-12-05 CU 广东-南储仓储 5025 +5 2018-12-05 CU 浙江-国储837处 4205 +6 2018-12-05 CU 上海-上港物流 3524 +7 2018-12-05 CU 上海-中海华东宝山 2804 +``` + +### 期货交易统计数据 + +方法描述 / 更新时间及频率FUT_MEMBER_POSITION_RANK龙虎榜数据 / 2005年至今,盘后19:00,22:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUT_MEMBER_POSITION_RANK).filter(finance.FUT_MEMBER_POSITION_RANK.code==code).limit(n)) +``` + + 描述:记录各个期货交易所对不同商品下的期货合约,记录该交易所会员持仓排名前20的信息。(每天更新) 获取期货交易所会员持仓(龙虎榜) **参数:** - **query(finance.FUT_MEMBER_POSITION_RANK)**:表示从finance.FUT_MEMBER_POSITION_RANK这张表中查询期货龙虎榜数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUT_MEMBER_POSITION_RANK**:收录了期货龙虎榜数据,表结构和字段信息如下: **字段设计** | **字段名称** | **中文名称** | **字段类型** | **含义** | +| --- | --- | --- | --- | +| day | 交易日 | date | | +| code | 合约编码 | varchar(12) | 同一商品根据交割日的不同对应不同的期货合约,比如:'CU1807.XSGE' | +| exchange | 交易所编码 | varchar(10) | 英文编码:XSGE:上海期货交易所, XDCE:大连商品交易所,XZCE:郑州商品交易所, CCFX:中国金融期货交易所 | +| exchange_name | 交易所名称 | varchar(30) | | +| underlying_code | 标的编码 | varchar(10) | | +| underlying_name | 标的名称 | varchar(50) | | +| rank_type_ID | 排名类别编码 | int | 501001-成交量排名, 501002-持买单量排名, 501003-持卖单量排名 | +| rank_type | 排名类别 | varchar(50) | 包含:成交量排名,持买单量排名,持卖单量排名 | +| rank | 排名 | int | | +| member_name | 会员简称 | varchar(50) | | +| indicator | 统计指标 | int | 统计指标根据排名类别确定,分别代表:成交量,持买单量,持卖单量。单位:手 | +| indicator_increase | 统计指标比上交易日增减 | int | 单位:手 | + + 一手:是指交易单位,也就是一张合约所代表的单位数量的标的物,一般根据品种有所不同,比如:大豆一手是10吨,铜一手是5吨,国债期货交易单位是钱,一手几万元。 **交易所编码** | 交易所名称 | 编码 | | ------------------ | ---- | | 上海期货交易所 | XSGE | | 大连商品交易所 | XDCE | | 郑州商品交易所 | XZCE | | 中国金融期货交易所 | CCFX | **排名类别编码** | 交易所名称 | 编码 | | ------------ | ------ | | 成交量排名 | 501001 | | 持买单量排名 | 501002 | | 持卖单量排名 | 501003 | - **filter(finance.FUT_MEMBER_POSITION_RANK.code==code)**:指定筛选条件,通过finance.FUT_MEMBER_POSITION_RANK.code==code可以指定你想要查询的合约编码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FUT_MEMBER_POSITION_RANK.rank_type_ID=="501001",表示按成交量排名查询龙虎榜数据;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询A1905.XDCE 2019-04-24交易日的持仓量龙虎榜数据 +q=query(finance.FUT_MEMBER_POSITION_RANK.day, + finance.FUT_MEMBER_POSITION_RANK.code, + finance.FUT_MEMBER_POSITION_RANK.rank_type, + finance.FUT_MEMBER_POSITION_RANK.rank, + finance.FUT_MEMBER_POSITION_RANK.member_name, + finance.FUT_MEMBER_POSITION_RANK.indicator + ).filter(finance.FUT_MEMBER_POSITION_RANK.code=='A1905.XDCE', + finance.FUT_MEMBER_POSITION_RANK.rank_type_ID==501002, + finance.FUT_MEMBER_POSITION_RANK.day == '2019-04-24' + ).order_by( finance.FUT_MEMBER_POSITION_RANK.rank ).limit(8) +df=finance.run_query(q) +print(df) + + day code rank_type rank member_name indicator +0 2019-04-24 A1905.XDCE 持买单量排名 1 国投安信 1330 +1 2019-04-24 A1905.XDCE 持买单量排名 2 广州金控 1026 +2 2019-04-24 A1905.XDCE 持买单量排名 3 东证期货 986 +3 2019-04-24 A1905.XDCE 持买单量排名 4 中信期货 844 +4 2019-04-24 A1905.XDCE 持买单量排名 5 华泰期货 654 +5 2019-04-24 A1905.XDCE 持买单量排名 6 东方财富 483 +6 2019-04-24 A1905.XDCE 持买单量排名 7 摩根大通 462 +7 2019-04-24 A1905.XDCE 持买单量排名 8 广州期货 442 +``` + +FUT_WAREHOUSE_RECEIPT仓单数据 / 2005年至今,盘后20:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUT_WAREHOUSE_RECEIPT).filter(finance.FUT_WAREHOUSE_RECEIPT.underlying_code==underlying_code).limit(n)) +``` + + 描述:期货仓单是指由期货交易所指定交割仓库,按照期货交易所指定的程序,签发的符合合约规定质量的**实物提货凭证**。记录了交易所所有期货实物的库存情况以及变更情况。 **参数:** - **query(finance.FUT_WAREHOUSE_RECEIPT)**:表示从finance.FUT_WAREHOUSE_RECEIPT这张表中查询期货仓单数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUT_WAREHOUSE_RECEIPT**:收录了期货仓单数据,表结构和字段信息如下: **字段设计** | **字段名称** | **中文名称** | **字段类型** | **注释** | +| --- | --- | --- | --- | +| day | 日期 | date | | +| exchange | 交易所编码 | varchar(10) | 英文编码 | +| exchange_name | 交易所名称 | varchar(30) | 上海期货交易所 大连商品交易所 郑州商商品交易所 中国金融期货交易所 | +| underlying_code | 品种编码 | varchar(10) | | +| product_name | 品种名称 | varchar(20) | | +| warehouse_name | 仓库名称 | varchar(20) | 上期所:将地区和仓库数据合并成一条,仓库名称=“地区”+“仓库”。 大商所:仓库名称存在多个不同的名字的,取第一个字体加粗的仓库名称。 郑商所:不区分品牌,对每个仓库取仓库小计值 | +| warehouse_receipt_number | 今日期货仓单 | int | | +| unit | 单位 | varchar(10) | | +| warehouse_receipt_number_increase | 比昨日增减 | int | | + + **交易所名称编码** | 交易所名称 | 编码 | | ------------------ | ---- | | 上海期货交易所 | XSGE | | 大连商品交易所 | XDCE | | 郑州商商品交易所 | XZCE | | 中国金融期货交易所 | CCFX | - **filter(finance.FUT_WAREHOUSE_RECEIPT.underlying_code==underlying_code)**:指定筛选条件,通过finance.FUT_WAREHOUSE_RECEIPT.underlying_code==underlying_code可以指定你想要查询的品种;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询品种为铜('CU')的2018年12月05日的仓单数据 +q=query(finance.FUT_WAREHOUSE_RECEIPT.day, + finance.FUT_WAREHOUSE_RECEIPT.underlying_code, + finance.FUT_WAREHOUSE_RECEIPT.warehouse_name, +finance.FUT_WAREHOUSE_RECEIPT.warehouse_receipt_number).filter(finance.FUT_WAREHOUSE_RECEIPT.underlying_code=='CU',finance.FUT_WAREHOUSE_RECEIPT.day=='2018-12-05').order_by(finance.FUT_WAREHOUSE_RECEIPT.warehouse_receipt_number.desc()) +df=finance.run_query(q) +print(df[:8]) + + day underlying_code warehouse_name warehouse_receipt_number +0 2018-12-05 CU 江苏-中储无锡 10517 +1 2018-12-05 CU 广东-八三O黄浦 9141 +2 2018-12-05 CU 江苏-常州融达 6787 +3 2018-12-05 CU 上海-中储吴淞 5238 +4 2018-12-05 CU 广东-南储仓储 5025 +5 2018-12-05 CU 浙江-国储837处 4205 +6 2018-12-05 CU 上海-上港物流 3524 +7 2018-12-05 CU 上海-中海华东宝山 2804 +``` + +## 基金 + +### 基金概况 + +方法描述 / 更新时间及频率(注意:场外基金编码 +.OF)normalize_code将场内基金代码转化成聚宽标准格式 +``` + +normalize_code(code) +``` + + 将其他形式的场内基金代码转换为jqdatasdk函数可用的基金代码形式。 **仅适用于场内基金代码,支持传入单只基金或一个基金list** **示例** +``` + +#输入 +normalize_code(['159001', '159003', '159005','159901','159902']) +#输出 +['159001.XSHE', '159003.XSHE', '159005.XSHE', '159901.XSHE', '159902.XSHE'] +``` + +get_security_info获取单只基金信息/ 2005至今,8:00更新 +``` + +get_security_info(code) +``` + + 获取股票/基金/指数的信息. **参数** - code: 基金代码 **返回值** - 一个对象, 有如下属性: - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期, [datetime.date] 类型 - end_date: 退市日期, [datetime.date] 类型, 如果没有退市则为2200-01-01 - type: 类型etf(ETF基金),fja(分级A),fjb(分级B)、场外基金 - parent: 分级基金的母基金代码 **示例** +``` + +# 获取基金的中文名称 +get_security_info('502050.XSHG').display_name + +>>> 上证50B +``` + +``` + +#获取基金的上市日期 +get_security_info('502050.XSHG').start_date + +>>> datetime.date(2015, 4, 27) +``` + +``` + +#获取基金的退市时间 +get_security_info('502050.XSHG').end_date + +>>> datetime.date(2021, 1, 4) +``` + +``` + +#获取基金的类型 +get_security_info('502050.XSHG').type + +>>> 'fjb' +``` + +``` + +# 获取基金的母基金, 下面的判断为真. +get_security_info('502050.XSHG').parent == '502048.XSHG' + +>>> True +``` + +get_all_securities获取所有基金信息/ 2005至今,8:00更新 +``` + +get_all_securities(types=[], date=None) +``` + + 获取平台支持的所有股票、基金、指数、期货信息 **参数** - types: list: 用来过滤securities的类型, list元素可选:'fund', 'etf', 'lof', 'fja', 'fjb', 'open_fund', 'bond_fund', 'stock_fund', 'QDII_fund', 'money_market_fund', 'mixture_fund'。types为空时返回所有股票, 不包括基金,指数和期货 - date: 日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 用于获取某日期还在上市的股票信息. 默认值为 None, 表示获取所有日期的股票信息 **返回** [pandas.DataFrame] - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期 - end_date: 退市日期,如果没有退市则为2200-01-01 - type: 类型,etf(ETF基金),fja(分级A),fjb(分级B),fjm(分级母基金),mmf(场内交易的货币基金)open_fund(开放式基金), bond_fund(债券基金), stock_fund(股票型基金), QDII_fund(QDII 基金), money_market_fund(场外交易的货币基金), mixture_fund(混合型基金) **示例** +``` + +#获得etf基金列表 +df = get_all_securities(['etf']) +#获得lof基金列表 +df = get_all_securities(['lof']) +#获得分级A基金列表 +df = get_all_securities(['fja']) +#获得分级B基金列表 +df = get_all_securities(['fjb']) + +# 获得fjm基金列表 +df = get_all_securities('fund') +df[df.type=="fjm"] + +# 获得开放式基金列表 +df = get_all_securities(['open_fund']) +# 获得债券基金列表 +df = get_all_securities(['bond_fund']) +# 获得股票型基金列表 +df = get_all_securities('stock_fund') +# 获得QDII基金列表 +df = get_all_securities(['QDII_fund']) +# 获得混合型基列表 +df = get_all_securities(['mixture_fund']) + +# 获得场内交易的货币基金列表 +df = get_all_securities('fund') +df[df.type=="mmf"] + +# 获得场外交易的货币基金列表 +df = get_all_securities(['money_market_fund']) + +#获得2015年10月10日还在上市的 etf 和 lof 基金列表 +get_all_securities(['etf', 'lof'], '2015-10-10') +``` + +get_extras基金累计净值/基金单位净值/场外基金的复权净值——2005至今,下一个交易日10点之前更新 +``` + +get_extras(info, security_list, start_date='2015-01-01', end_date='2015-12-31', df=True, count=None) +``` + + **参数** - info: [ 'acc_net_value', 'unit_net_value', 'adj_net_value'] 中的一个 | 指定info字段 | 返回信息 | |----------------|-----------| | acc_net_value | 基金累计净值 | | unit_net_value | 基金单位净值 | | adj_net_value | 场外基金的复权净值 | - security_list: 基金列表 - start_date/end_date: 开始结束日期, 同 [get_price] - df: 返回[pandas.DataFrame]对象还是一个dict - count: 数量, **与 start_date 二选一, 不可同时使用**, 必须大于 0. 表示取 end_date 往前的 count 个交易日的数据 **返回值** - df=True: 返回[pandas.DataFrame]对象, 列索引是股票代号, 行索引是[datetime.datetime], 比如 +``` + +# 获取基金累计净值 +# df=True,返回[pandas.DataFrame]对象 +df=get_extras('acc_net_value', ['510300.XSHG', '510050.XSHG'], start_date='2015-12-01', end_date='2015-12-03',df=True) +print(df) + + 510300.XSHG 510050.XSHG +2015-12-01 1.3950 3.119 +2015-12-02 1.4432 3.251 +2015-12-03 1.4535 3.254 +``` + +``` + +# 获取基金单位净值 +# df=False,返回一个dict, key是基金代号, value是[numpy.ndarray] +get_extras('unit_net_value', ['510300.XSHG', '510050.XSHG'], start_date='2015-12-01', end_date='2015-12-03',df=False) +#返回 +{'510300.XSHG': array([3.6446, 3.7746, 3.8023]), + '510050.XSHG': array([2.344, 2.455, 2.458])} +``` + +``` + +# 获取场外基金的复权净值 +df=get_extras('adj_net_value','398051.OF') +print(df[:4]) + 398051.OF +2015-01-05 1.087 +2015-01-06 1.073 +2015-01-07 1.086 +2015-01-08 1.054 +``` + +FUND_SHARE_DAILY基金份额数据(二级市场)/ 2005-02-23至今,下一个交易日10点之前更新 +``` + +from jqdatasdk import * +finance.run_query(query(finance.FUND_SHARE_DAILY).filter(finance.FUND_SHARE_DAILY.date=='2019-05-23').limit(n)) +``` + + 描述:记录每日场内基金份额数据 **参数:** - **query(finance.FUND_SHARE_DAILY)**:表示从finance.FUND_SHARE_DAILY这张表中查询每日场内基金份额数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[query简易教程]() - **finance.FUND_SHARE_DAILY**:收录了每日场内基金份额数据,表结构和字段信息如下: - **filter(finance.FUND_SHARE_DAILY.date==date)**:指定筛选条件,通过finance.FUND_SHARE_DAILY.date==date可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **字段设计**: | **名称** | **类型** | **描述** | +| --- | --- | --- | +| code | varchar(12) | 基金代码 | +| name | varchar(50) | 基金简称 | +| exchange_code | varchar(12) | 交易市场编码 XSHG-上海证券交易所; XSHE-深圳证券交易所 | +| date | date | 日期 | +| shares | bigint | 基金份额(份) | + + **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询2019-05-23的场内基金份额数据。 +from jqdatasdk import * +df=finance.run_query(query(finance.FUND_SHARE_DAILY).filter(finance.FUND_SHARE_DAILY.date=='2019-05-23').limit(5)) +print(df) + id code name exchange_code date shares +0 960881 150008.XSHE 瑞和小康 XSHE 2019-05-23 17749200 +1 960882 150009.XSHE 瑞和远见 XSHE 2019-05-23 17749200 +2 960883 150012.XSHE 中证100A XSHE 2019-05-23 36139500 +3 960884 150013.XSHE 中证100B XSHE 2019-05-23 54209300 +4 960885 150016.XSHE 合润A XSHE 2019-05-23 38111200 +``` + +### 场内基金行情数据 + +- **更新时间:日行情 2005至今,盘后15点、24点更新** +- **更新时间:分钟行情 2005至今,盘后15点、24点更新** + +方法描述(场内)/ 更新时间及频率get_price1天/分钟行情数据 +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None, panel=True, fill_paused=True) +``` + + - 获取一支或者多只场内基金数据; - frequency为非一天或者一分钟,请使用get_bars; - 取多支标的的数据时,不要获取交易时段不同的标的(例如:不同交易时间的期货标的),否则会报错; - 这里在使用时注意 end_date 的设置,不要引入未来的数据; - 标识时间为09:32:00的1分钟k线,其数据时间为09:31:00至09:31:59; - end_date:**当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取。**注意:当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 - get_price指定frequency为 非1m/1d时,fields选择'high_limit','low_limit'会报错 - fq:对股票/基金的价格字段、成交量字段生效,factor不受影响,只返回后复权因子 **关于停牌**: 因为此API可以获取多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充. 如想跳过, 请使用 skip_paused=True 参数, 注意当 panel=True 且获取多标的时不支持(panel结构需要索引对齐) +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + **参数** | **参数名称** | **参数说明** | **注释** | +| --- | --- | --- | +| security | 标的 | 可获取种类:股票、期货、基金、指数、期权 | +| start_date | 开始时间,不可与count同时使用。当'count'和'start_date'为None时, 默认值是 '2015-01-01 00:00:00' | 当指定frequency为minute时,如果只传入日期,则日内时间为当日的 00:00:00 | +| end_date | 结束时间,如无指定,默认为'2015-12-31 00:00:00'。当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 | 当指定frequency为minute时, 如果只传入日期, 则日内时间为当日的 00:00:00, 所以返回的数据不包括 end_date这天。 | +| count | 表示获取 end_date 之前几个 frequency 的数据,与start_date不可同时使用。 | 返回的结果集的行数, 即表示获取 end_date 之前count个 frequency 的数据 | +| frequency | 单位时间长度,即指定获取的时间频级为分钟级(minute)或日级(daily),也可以指定为 '3m','10d' 等 | daily'(同'1d'), 'minute'(同'1m'), [点击查看get_price和get_bars的合成逻辑。](https://www.joinquant.com/view/community/detail/cea095760a0583ce965964912580077e?type=1)如需5分钟,1小时等标准bar请使用get_bars | +| fields | 所获取数据的字段名称,即表头。默认是None(返回标准字段['open','close','high','low','volume','money']) | 可选择填入以下字段,字段说明可查阅下面fields表 ['open','close','low','high','volume','money','factor', 'high_limit','low_limit','avg','pre_close','paused','open_interest'], open_interest为期货持仓量 | +| skip_paused | 是否跳过不交易日期(含:停牌/未上市/退市后的日期) | 如果不跳过, 停牌时会使用停牌前的数据填充,上市前或者退市后数据都为 nan。 | +| fill_paused | 对于停牌股票的价格处理,默认为True | 默认为True,用pre_close价格填充);False 表示使用NAN填充停牌的股票价格。 | +| fq | 复权选项,默认为前复权(fq='pre') | 'pre':前复权 / 'none':不复权, 返回实际价格 / 'post':后复权 | +| panel | 指定返回的数据格式为panel | 默认为True;指定panel=False时返回dataframe格式; 如本地pandas版本大于0.25将强制返回datdaframe详见案例 | + + **fields**内各字段属性 | **字段名称** | **中文名称** | **注释** | +| --- | --- | --- | +| open | 时间段开始时价格 | | +| close | 时间段结束时价格 | | +| low | 时间段中的最低价 | | +| high | 时间段中的最高价 | | +| volume | 时间段中的成交的股票数量 | 单位股 | +| money | 时间段中的成交的金额 | | +| factor | pre':前复权(默认)/None:不复权,返回实际价格/'post':后复权 | 前(后)复权数据=价格×前(后)复权因子; 前(后)复权后的成交量=成交量 / 前(后)复权因子; 成交额不处理 | +| high_limit | 时间段中的涨停价 | | +| low_limit | 时间段中的跌停价 | | +| avg | 时间段中的平均价 | (1)天级别:股票是成交额除以成交量;期货是直接从CTP行情获取的,计算方法为成交额除以成交量再除以合约乘数; (2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 | +| pre_close | 前一个单位时间结束时的价格,按天则是前一天的收盘价 | 期货:pre_close--前一天结算;建议使用get_extras获取结算价;在分钟频率下pre_close=open | +| paused | bool值,股票是否停牌; | 停牌时open/close/low/high/pre_close;都等于停牌前的收盘价, volume=money=0 | + + **返回** - 请注意, 为了方便比较一只基金的多个属性, 同时也满足对比多只基金的一个属性的需求, 我们在security参数是**一只基金和多只基金时返回的结构完全不一样 (默认panel=True时)** **代码示例** **获取一支基金** +``` + +# 获得华泰柏瑞沪深300ETF的2018年07月02日 23:30:00-2018年07月02日 23:35:00的分钟数据 +df = get_price('510300.XSHG', start_date='2018-08-01 10:00:00', end_date='2018-08-01 10:05:00', frequency='1m') +# 返回[pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是行情字段名字 +print(df[:5]) + open close high low volume money +2018-08-01 10:00:00 3.435 3.437 3.437 3.435 1250645.0 4297417.0 +2018-08-01 10:01:00 3.438 3.435 3.441 3.435 2179295.0 7492471.0 +2018-08-01 10:02:00 3.435 3.432 3.435 3.432 1241940.0 4264887.0 +2018-08-01 10:03:00 3.432 3.432 3.433 3.431 2061509.0 7075951.0 +2018-08-01 10:04:00 3.432 3.431 3.432 3.431 276371.0 948489.0 +``` + + **获取多只基金** +``` + +#获得华泰柏瑞沪深300ETF和华夏上证50ETF在2018-08-01 10:00:00至2018-08-01 10:05:00的分钟数据 +df = get_price(['510300.XSHG','510050.XSHG'],start_date='2018-08-01 10:00:00', end_date='2018-08-01 10:05:00', frequency='1m') +# 获取开盘价的[pandas.DataFrame],行索引是[datetime.datetime]对象, 列索引是基金代号 +print(df['open']) + + 510300.XSHG 510050.XSHG +2018-08-01 10:00:00 3.435 2.491 +2018-08-01 10:01:00 3.438 2.493 +2018-08-01 10:02:00 3.435 2.491 +2018-08-01 10:03:00 3.432 2.486 +2018-08-01 10:04:00 3.432 2.486 +2018-08-01 10:05:00 3.432 2.486 +``` + +get_bars时间周期的行情数据(支持时间周期:'1m','5m', '15m', '30m', '60m', '120m', '1w', '1M') +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None,df=True) +``` + + 获取各种时间周期的bar数据,bar的分割方式与主流股票软件相同, 同时还支持返回当前时刻所在 bar 的数据。 **参数** - security: 基金代码,支持单个及多个标的 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流股票软件类似,期货的bar各平台也许稍微有差异,我们与文华接近; 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', 'open_interest'(期货持仓量),factor(复权因子)。 - include_now: 取值True 或者False。 表示是否包含end_dt所在的bar, 比如end_dt指定为9:38:00,unit参数为5m, 如果 include_now=True,则返回的最后一条bar为9:35:00-9:38:00这个 bar,否则返回的最后一条bar为09:30:00-09:35:00的bar。 - end_dt:查询的截止时间,默认最新的时间。注意:当end_dt指定为当天尚未结束的交易时间时,会自动填充为上一个交易日收盘的时间 - fq_ref_date:复权基准日期,为None时为不复权数据。 - 如果用户输入 fq_ref_date = None, 则获取到的是不复权的数据 - 如果用户想获取后复权的数据,可以将fq_ref_date 指定为一个很早的日期,比如 datetime.date(2000, 1, 1) - 定点复权,以某一天价格点位为参照物,进行的前复权或后复权。设置为datetime.datetime.now()即返回前复权数据 ; - df:默认为True,指定返回数据为dataframe结构;当df=False的时候,传入单个标的时,返回一个np.ndarray,多个标的返回一个字典,key是code,value是np.array **返回** 返回一个pandas.dataframe对象,可以按任意周期返回基金的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 **示例** **获取一只基金** +``` + +#获取招商快线ETF按120分钟为周期以"2018-12-05"为基础往前5个时间单位的数据 +df = get_bars('159003.XSHE', 5, unit='120m',fields=['date','open','high','low','close'],include_now=False,end_dt='2018-12-05') +print(df) + + date open high low close +0 2018-11-30 15:00:00 100.000 100.001 99.999 100.000 +1 2018-12-03 11:30:00 99.997 100.000 99.995 99.998 +2 2018-12-03 15:00:00 99.998 100.000 99.998 100.000 +3 2018-12-04 11:30:00 99.999 100.001 99.999 100.000 +4 2018-12-04 15:00:00 100.000 100.050 99.999 100.002 +``` + + **获取多只基金** +``` + +# 获取港股精选lof、招商快线ETF按5分钟为周期以“2018-3-01 14:22:35”为基础前4个时间单位的数据 +df = get_bars(['160322.XSHE','159003.XSHE'],4, unit='5m',fields=['date','open','high','low','close'],include_now=True,end_dt='2018-3-01 14:22:35') +print(df) + date open high low close +0 2018-03-01 13:50:00 1.233 1.233 1.233 1.233 +1 2018-03-01 13:55:00 1.233 1.233 1.233 1.233 +2 2018-03-01 14:00:00 1.233 1.233 1.219 1.219 +3 2018-03-01 14:05:00 1.219 1.219 1.218 1.219 +4 2018-03-01 14:10:00 1.219 1.219 1.218 1.218 +5 2018-03-01 14:15:00 1.218 1.218 1.218 1.218 +6 2018-03-01 14:20:00 1.218 1.218 1.218 1.218 +7 2018-03-01 14:22:00 1.218 1.218 1.218 1.218 +``` + +get_call_auction获取集合竞价数据 / 2019年至今 +``` + +get_call_auction(security, start_date, end_date, fields=None) +``` + + 支持股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)和上证ETF期权(2017年至今)的集合竞价数据。当日的集合竞价数据下午15点更新。为了防止返回数据量过大, 我们每次最多返回5000行。 **参数**: - security: **场内基金(2019年至今)** - start_date: 开始日期,YYYY-MM-DD格式 - end_date: 结束日期,YYYY-MM-DD格式 - fields: 选择要获取的行情数据字段,参数为list格式,默认为None,返回全部字段。 **返回值:** 返回指定时间区间标的集合竞价tick数据,返回字段结果如下: | 字段名 | 说明 | 字段类型 | | :-------- | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价(不复权) | float | | volume | 累计成交量(股) | float | | money | 累计成交额(元) | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **示例:** +``` + +#获取招商快线2019-3-05至2019-3-06期间的集合竞价数据 +df=get_call_auction('159003.XSHE','2019-3-05','2019-3-06') +print(df) + + code time current volume money a1_p \ +0 159003.XSHE 2019-03-05 09:25:03 100.0 16300.0 1629951.1 100.0 +1 159003.XSHE 2019-03-06 09:25:03 100.0 29300.0 2929941.4 100.0 + + a1_v a2_p a2_v a3_p ... b1_p b1_v b2_p b2_v \ +0 19412.0 100.0 21915.0 100.0 ... 100.0 1500.0 99.99 5300.0 +1 9199.0 100.0 49813.0 100.0 ... 100.0 300.0 100.00 500.0 + + b3_p b3_v b4_p b4_v b5_p b5_v +0 99.99 900.0 99.99 3000.0 99.99 1000.0 +1 100.00 1200.0 99.99 6500.0 99.99 9400.0 + +[2 rows x 25 columns] +``` + +get_ticks (机构)获取场内基金tick数据 / 2019-01-01 至今 +``` + +get_ticks(security, start_dt, end_dt, count, fields, skip,df) +``` + + **场内基金部分, 支持 2019-01-01 至今的tick数据,提供买五卖五盘口数据。(每3秒一次快照)** **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 场内基金代码,如'510050.XSHG' - start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' - end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' - count: 取出指定时间区间内前N条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下场内基金tick返回结果。 - skip: 默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据。 - df: 指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray **场内基金tick返回结果** | 字段名 | 说明 | 字段类型 | | :-------- | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额 | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **场内基金tick数据示例**: +``` + +#获取50ETF基金2019-10-15的tick数据 +df=get_ticks('510050.XSHG','2019-10-16 09:00:00','2019-10-16 15:00:00') +print(df[:15]) + time current high low volume money \ +0 2019-10-16 09:25:00.392 3.064 3.064 3.064 2327900.0 7132686.0 +1 2019-10-16 09:30:00.552 3.064 3.065 3.063 2491600.0 7634304.0 +2 2019-10-16 09:30:03.532 3.064 3.065 3.063 3177815.0 9737131.0 +3 2019-10-16 09:30:06.488 3.062 3.065 3.062 4283600.0 13124520.0 +4 2019-10-16 09:30:08.988 3.064 3.065 3.062 4346100.0 13315970.0 +5 2019-10-16 09:30:11.480 3.065 3.065 3.062 4666100.0 14296725.0 +6 2019-10-16 09:30:14.500 3.064 3.065 3.062 4731900.0 14498336.0 +7 2019-10-16 09:30:17.360 3.062 3.065 3.062 4856200.0 14878966.0 +8 2019-10-16 09:30:21.148 3.062 3.065 3.062 5109000.0 15653040.0 +9 2019-10-16 09:30:24.520 3.063 3.065 3.061 5361300.0 16425704.0 +10 2019-10-16 09:30:26.120 3.062 3.065 3.061 5401300.0 16548184.0 +11 2019-10-16 09:30:30.560 3.063 3.065 3.061 5579200.0 17093053.0 +12 2019-10-16 09:30:33.540 3.064 3.065 3.061 6100200.0 18689378.0 +13 2019-10-16 09:30:36.420 3.065 3.065 3.061 6270800.0 19212123.0 +14 2019-10-16 09:30:38.892 3.067 3.067 3.061 6640300.0 20345030.0 + + a1_p a1_v a2_p a2_v ... b1_p b1_v b2_p \ +0 3.064 80011.0 3.065 471300.0 ... 3.063 111500.0 3.062 +1 3.065 412211.0 3.066 50800.0 ... 3.064 20900.0 3.063 +2 3.065 110711.0 3.066 44400.0 ... 3.064 118700.0 3.063 +3 3.063 45715.0 3.064 49200.0 ... 3.062 101200.0 3.061 +4 3.064 44615.0 3.065 1338211.0 ... 3.063 500.0 3.062 +5 3.065 1062826.0 3.066 1544500.0 ... 3.064 10000.0 3.063 +6 3.064 1445000.0 3.065 1662826.0 ... 3.063 3100.0 3.062 +7 3.062 252800.0 3.064 2594900.0 ... 3.061 121500.0 3.060 +8 3.064 2324000.0 3.065 2263226.0 ... 3.063 6000.0 3.061 +9 3.063 189700.0 3.064 2024000.0 ... 3.062 64000.0 3.061 +10 3.063 157700.0 3.064 1163900.0 ... 3.062 34000.0 3.061 +11 3.063 18800.0 3.064 865200.0 ... 3.062 346000.0 3.061 +12 3.064 63400.0 3.065 325300.0 ... 3.063 10000.0 3.062 +13 3.066 44500.0 3.067 407600.0 ... 3.065 418400.0 3.064 +14 3.067 387600.0 3.068 977500.0 ... 3.065 50000.0 3.064 + + b2_v b3_p b3_v b4_p b4_v b5_p b5_v +0 91300.0 3.061 50600.0 3.060 159200.0 3.059 10800.0 +1 97100.0 3.062 93300.0 3.061 55600.0 3.060 159200.0 +2 546585.0 3.062 165500.0 3.061 156400.0 3.060 402100.0 +3 466400.0 3.060 473100.0 3.059 20100.0 3.058 219200.0 +4 101200.0 3.061 399900.0 3.060 491100.0 3.059 20100.0 +5 500.0 3.062 111200.0 3.061 471500.0 3.060 521100.0 +6 111200.0 3.061 481500.0 3.060 521100.0 3.059 164100.0 +7 522100.0 3.059 164100.0 3.058 363200.0 3.057 400.0 +8 471500.0 3.060 520200.0 3.059 164100.0 3.058 363200.0 +9 451500.0 3.060 520200.0 3.059 164100.0 3.058 363200.0 +10 411700.0 3.060 520200.0 3.059 164100.0 3.058 363200.0 +11 141700.0 3.060 553200.0 3.059 164100.0 3.058 363200.0 +12 297000.0 3.061 141700.0 3.060 594100.0 3.059 164100.0 +13 50000.0 3.063 212200.0 3.062 1227000.0 3.061 142200.0 +14 330200.0 3.063 212000.0 3.062 1227100.0 3.061 142200.0 + +[15 rows x 26 columns] +``` + +### 基金融资融券 + +- **更新时间:2010至今,下一个交易日10点之前更新** + +方法描述get_mtss获取基金的融资融券信息 +``` + +get_mtss(security_list, start_date=None, end_date=None, fields=None, count=None) +``` + + 获取一只或者多只基金在一个时间段内的融资融券信息 **参数** - security_list: 一只基金代码或者一个基金代码的 list - start_date: 开始日期, **与 count 二选一, 不可同时使用**. 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 默认为平台提供的数据的最早日期 - end_date: 结束日期, 一个字符串或者 [datetime.date]/[datetime.datetime] 对象, 默认为 datetime.date.today() - count: 数量, **与 start_date 二选一,不可同时使用**, 必须大于 0. 表示返回 end_date 之前 count 个交易日的数据, 包含 end_date - fields: 字段名或者 list, 可选. 默认为 None, 表示取全部字段, 各字段含义如下: |字段名|含义| |---|---| |date|日期| |sec_code|基金代码| |fin_value|融资余额(元)| |fin_buy_value|融资买入额(元)| |fin_refund_value|融资偿还额(元)| |sec_value|融券余量(股)| |sec_sell_value|融券卖出量(股)| |sec_refund_value|融券偿还量(股)| |fin_sec_value|融资融券余额(元)| - **返回** 返回一个 [pandas.DataFrame] 对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应. **示例** **获取一只基金** +``` + +# 获取易方达恒生国企ETF在2016-01-01和2016-04-01的融资融券信息 +df=get_mtss('510900.XSHG','2016-01-01','2016-04-01',fields=['date','sec_code','fin_value','fin_buy_value','fin_refund_value','sec_value','sec_sell_value','sec_refund_value','fin_sec_value']) +print(df[:5]) + + date sec_code fin_value fin_buy_value fin_refund_value \ +0 2016-01-04 510900.XSHG 482308708.0 22248940.0 11551982.0 +1 2016-01-05 510900.XSHG 491306588.0 22509481.0 16488831.0 +2 2016-01-06 510900.XSHG 508819867.0 35343749.0 17830470.0 +3 2016-01-07 510900.XSHG 523377028.0 17389386.0 2832225.0 +4 2016-01-08 510900.XSHG 540172694.0 44289244.0 27493578.0 + + sec_value sec_sell_value sec_refund_value fin_sec_value +0 0.0 0.0 0.0 482308708.0 +1 0.0 0.0 0.0 491306588.0 +2 0.0 0.0 0.0 508819867.0 +3 0.0 0.0 0.0 523377028.0 +4 0.0 0.0 0.0 540172694.0 +``` + +``` + +# 获取上证180ETF基金在日期 2016-06-30 往前 5 个交易日的融资融券信息 +df=get_mtss('510180.XSHG', end_date="2016-06-30", count=5,fields=['date','sec_code','fin_value','fin_buy_value','fin_refund_value','sec_value','sec_sell_value','sec_refund_value','fin_sec_value']) +print(df) + date sec_code fin_value fin_buy_value fin_refund_value \ +0 2016-06-24 510180.XSHG 1.390217e+09 819754.0 947410.0 +1 2016-06-27 510180.XSHG 1.390132e+09 21340.0 106343.0 +2 2016-06-28 510180.XSHG 1.390143e+09 228053.0 217386.0 +3 2016-06-29 510180.XSHG 1.390280e+09 344875.0 207587.0 +4 2016-06-30 510180.XSHG 1.387647e+09 492910.0 3125884.0 + + sec_value sec_sell_value sec_refund_value fin_sec_value +0 2222005.0 476900.0 475800.0 1.396101e+09 +1 1924005.0 112000.0 410000.0 1.395292e+09 +2 1894305.0 354900.0 384600.0 1.395254e+09 +3 1917305.0 240800.0 217800.0 1.395491e+09 +4 1888705.0 11400.0 40000.0 1.392781e+09 +``` + + **获取多只基金** +``` + +# 获取消费ETF、金融ETF、农业50基金的融资融券信息 +df=get_mtss(['510150.XSHG','510230.XSHG','159827.XSHE'],'2021-02-24','2021-02-24',fields=['date','sec_code','fin_value','fin_buy_value','fin_refund_value','sec_value','sec_sell_value','sec_refund_value','fin_sec_value']) +print(df) + date sec_code fin_value fin_buy_value fin_refund_value \ +0 2021-02-24 510150.XSHG 34822768.0 2121711.0 3335257.0 +1 2021-02-24 510230.XSHG 41945048.0 3083287.0 7138831.0 +2 2021-02-24 159827.XSHE 6530989.0 1408821.0 1551326.0 + + sec_value sec_sell_value sec_refund_value fin_sec_value +0 0.0 0.0 0.0 34822768.0 +1 0.0 0.0 0.0 41945048.0 +2 0.0 0.0 0.0 6530989.0 +``` + +get_margincash_stocks融资标的列表 +``` + +get_margincash_stocks(date) +``` + + **参数** date:默认为None,不指定时返回上交所、深交所最近一次披露的的可融资标的列表的list。 **返回结果** 返回指定日期上交所、深交所披露的的可融资标的列表的list。 **示例** +``` + +# 判断芯片ETF是否在可融资列表 +'159813.XSHE' in get_margincash_stocks(date='2021-03-02') +>>> True +``` + +get_marginsec_stocks融券标的列表 +``` + +get_marginsec_stocks(date) +``` + + **参数** date:默认为None,不指定时返回上交所、深交所最近一次披露的的可融券标的列表的list。 **返回结果** 返回指定日期上交所、深交所披露的的可融券标的列表的list。 **示例** +``` + +# 判断新经济ETF是否在可融券列表 +'159822.XSHE' in get_marginsec_stocks(date='2021-03-02') +>>> True +``` + +STK_MT_TOTAL融资融券汇总数据 +``` + +from jqdatasdk import * +finance.run_query(query(finance.STK_MT_TOTAL).filter(finance.STK_MT_TOTAL.date=='2019-05-23').limit(n)) +``` + + 描述:记录上海交易所和深圳交易所的融资融券汇总数据 **参数:** - **query(finance.STK_MT_TOTAL)**:表示从finance.STK_MT_TOTAL这张表中查询融资融券汇总数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411) - **finance.STK_MT_TOTAL**:收录了融资融券汇总数据,表结构和字段信息如下: **字段设计** | 名称 | 类型 | 描述 | +| --- | --- | --- | +| date | date | 交易日期 | +| exchange_code | varchar(12) | 交易市场。例如,XSHG-上海证券交易所;XSHE-深圳证券交易所。 对应DataAPI.SysCodeGet.codeTypeID=10002。 | +| fin_value | decimal(20,2) | 融资余额(元) | +| fin_buy_value | decimal(20,2) | 融资买入额(元) | +| sec_volume | int | 融券余量(股) | +| sec_value | decimal(20,2) | 融券余量金额(元) | +| sec_sell_volume | int | 融券卖出量(股) | +| fin_sec_value | decimal(20,2) | 融资融券余额(元) | + + - **filter(finance.STK_MT_TOTAL.date==date)**:指定筛选条件,通过finance.STK_MT_TOTAL.date==date可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询2019-05-23的融资融券汇总数据。 +df=finance.run_query(query(finance.STK_MT_TOTAL).filter(finance.STK_MT_TOTAL.date=='2019-05-23')) +print(df) + + id date exchange_code fin_value fin_buy_value sec_volume \ +0 4445 2019-05-23 XSHE 3.601290e+11 1.460400e+10 136000000 +1 4446 2019-05-23 XSHG 5.605276e+11 1.906461e+10 930593681 + + sec_value sec_sell_volume fin_sec_value +0 1.465000e+09 26000000 3.615940e+11 +1 6.018287e+09 144633497 5.665458e+11 +``` + +### 公募基金数据(净值等) + +方法描述(传入基金代码无需添加后缀)/ 更新时间及频率FUND_MAIN_INFO基金主体信息 / 上市至今,盘后24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUND_MAIN_INFO).filter(finance.FUND_MAIN_INFO.main_code==main_code).limit(n)) +``` + + 描述:记录不同基金的主体信息 **参数:** - **query(finance.FUND_MAIN_INFO)**:表示从finance.FUND_MAIN_INFO这张表中查询公募基金主体信息数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUND_MAIN_INFO**:收录了公募基金主体信息数据,表结构和字段信息如下: **字段设计** | **字段** | **名称** | **类型** | | ------------------------ | ---------------- | ------------ | | main_code | 基金主体代码 | varchar(12) | | name | 基金名称 | varchar(100) | | advisor | 基金管理人 | varchar(100) | | trustee | 基金托管人 | varchar(100) | | operate_mode_id | 基金运作方式编码 | int | | operate_mode | 基金运作方式 | varchar(32) | | underlying_asset_type_id | 投资标的类型编码 | int | | underlying_asset_type | 投资标的类型 | varchar(32) | | start_date | 成立日期 | date | | pub_date | 发行日期 | date | | end_date | 结束日期 | date | | invest_style_id | 投资风格编码 | int | | invest_style | 投资风格 | varchar(32) | | statistics_main_code | 基金统计主代码(仅多份额基金存在此字段)|varchar(32) | 基金运作方式编码 编码 | 401001 | 401002 | 401003 | 401004 | 401005 | 401006 | 401008 ---|---|---|---|---|---|---|--- 基金运作方式 | 开放式基金 | 封闭式基金 | QDII | FOF | ETF | LOF | 基础设施基金 基金类别编码 | 编码 | 402001 | 402002 | 402003 | 402004 | 402005 | 402006 | 402007 | |------|--------|--------|--------|--------|--------|--------|--------| | 基金类别 | 股票型 | 货币型 | 债券型 | 混合型 | 基金型 | 贵金属 | 封闭式 | - **filter(finance.FUND_MAIN_INFO.main_code==main_code)**:指定筛选条件,通过finance.FUND_MAIN_INFO.main_code==main_code可以指定你想要查询的基金主体代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** 场内 +``` + +#查询瑞和小康封闭式基金的基金主体信息数据,传入的基金代码无须添加后缀 +from jqdatasdk import finance +q=query(finance.FUND_MAIN_INFO).filter(finance.FUND_MAIN_INFO.main_code=='150008') +df=finance.run_query(q) +print(df) + + id main_code name advisor trustee operate_mode_id \ +0 4975 150008 瑞和小康 国投瑞银基金管理有限公司 中国工商银行股份有限公司 401002 + + operate_mode underlying_asset_type_id underlying_asset_type start_date \ +0 封闭式基金 402001 股票型 2009-10-14 + + end_date +0 2020-08-28 +``` + + 场外 +``` + +#查询华夏成长开放式基金的基金主体信息数据,传入的基金代码无须添加后缀 +q=query(finance.FUND_MAIN_INFO).filter(finance.FUND_MAIN_INFO.main_code=='000001') +df=finance.run_query(q) +print(df) + + id main_code name advisor trustee operate_mode_id operate_mode \ +0 1 000001 华夏成长 华夏基金管理有限公司 中国建设银行股份有限公司 401001 开放式基金 + + underlying_asset_type_id underlying_asset_type start_date end_date +0 402004 混合型 2001-12-18 None +``` + +FUND_NET_VALUE基金净值信息 / 上市至今,盘前9:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUND_NET_VALUE).filter(finance.FUND_NET_VALUE.code==code).limit(n)) +``` + + 描述:记录公募基金的净值数据 **参数:** - **query(finance.FUND_NET_VALUE)**:表示从finance.FUND_NET_VALUE这张表中查询基金净值数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUND_NET_VALUE**:收录了基金净值数据,表结构和字段信息如下: **字段设计** | **字段** | **名称** | **类型** | **注释** | | ------------------ | ------------ | ------------- | ------------------------------------------------------------ | | code | 基金代码 | varchar(12) | | | day | 交易日 | date | | | net_value | 单位净值 | decimal(20,6) | 基金单位净值=(基金资产总值-基金负债)÷ 基金总份额 | | sum_value | 累计净值 | decimal(20,6) | 累计单位净值=单位净值+成立以来每份累计分红派息的金额 | | factor | 复权因子 | decimal(20,6) | 交易日最近一次分红拆分送股的复权因子 | | acc_factor | 累计复权因子 | decimal(20,6) | 基金从上市至今累计分红拆分送股的复权因子 | | refactor_net_value | 累计复权净值 | decimal(20,6) | 复权单位净值=单计净值+成立以来每份累计分红派息的金额(1+涨跌幅) | - **filter(finance.FUND_NET_VALUE.code==code)**:指定筛选条件,通过finance.FUND_NET_VALUE.code==code可以指定你想要查询的基金代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** 场内 +``` + +#查询瑞和小康("150008)基金净值数据,传入的基金代码无需添加后缀 +from jqdatasdk import finance +q=query(finance.FUND_NET_VALUE).filter(finance.FUND_NET_VALUE.code=="150008").order_by(finance.FUND_NET_VALUE.day.desc()).limit(5) +df=finance.run_query(q) +print(df) + id code day net_value sum_value factor acc_factor \ +0 23506832 150008 2020-08-27 1.227 1.613 1.0 1.314668 +1 23506831 150008 2020-08-26 1.228 1.614 1.0 1.314668 +2 23506830 150008 2020-08-25 1.234 1.622 1.0 1.314668 +3 23425100 150008 2020-08-24 1.234 1.622 1.0 1.314668 +4 23414948 150008 2020-08-21 1.229 1.616 1.0 1.314668 + + refactor_net_value +0 1.613098 +1 1.614412 +2 1.622300 +3 1.622300 +4 1.615727 +``` + + 场外 +``` + +#查询华夏成长证券投资基金("000001")基金净值数据,传入的基金代码无需添加后缀 +q=query(finance.FUND_NET_VALUE).filter(finance.FUND_NET_VALUE.code=="000001").order_by(finance.FUND_NET_VALUE.day.desc()).limit(5) +df=finance.run_query(q) +print(df) + + id code day net_value sum_value factor acc_factor \ +0 27902258 000001 2021-03-05 1.284 3.795 1.0 6.062503 +1 27897919 000001 2021-03-04 1.281 3.792 1.0 6.062503 +2 27884693 000001 2021-03-03 1.330 3.841 1.0 6.062503 +3 27871106 000001 2021-03-02 1.315 3.826 1.0 6.062503 +4 27864300 000001 2021-03-01 1.336 3.847 1.0 6.062503 + + refactor_net_value +0 7.784254 +1 7.766066 +2 8.063129 +3 7.972191 +4 8.099504 +``` + +FUND_PORTFOLIO_STOCK基金持股信息 / 上市至今,盘后24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUND_PORTFOLIO_STOCK).filter(finance.FUND_PORTFOLIO_STOCK.code==code).limit(n)) +``` + + 描述:统计基金季度报表、半年度报表和年度报表披露的股票持仓数据 **参数:** - **query(finance.FUND_PORTFOLIO_STOCK)**:表示从finance.FUND_PORTFOLIO_STOCK这张表中查询基金持仓股票组合数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUND_PORTFOLIO_STOCK**:收录了基金持仓股票组合数据,表结构和字段信息如下: **字段设计** | 字段名称 | 中文名称 | 字段类型 | | -------------- | -------------- | ------------- | | code | 基金代码 | varchar(12) | | period_start | 开始日期 | date | | period_end | 报告期 | date | | pub_date | 公告日期 | date | | report_type_id | 报告类型编码 | int | | report_type | 报告类型 | varchar(32) | | rank | 持仓排名 | int | | symbol | 股票代码 | varchar(32) | | name | 股票名称 | varchar(100) | | shares | 持有股票 | decimal(20,4) | | market_cap | 持有股票的市值 | decimal(20,4) | | proportion | 占净值比例 | decimal(10,4) | - **filter(finance.FUND_PORTFOLIO_STOCK.code==code)**:指定筛选条件,通过finance.FUND_PORTFOLIO_STOCK.code==code可以指定你想要查询的基金代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** 场内 +``` + +#查询合润A基金("150016")最近一个季度的基金持仓股票组合前5只股票 +q=query(finance.FUND_PORTFOLIO_STOCK).filter(finance.FUND_PORTFOLIO_STOCK.code=="150016").order_by(finance.FUND_PORTFOLIO_STOCK.pub_date.desc()).limit(5) +df=finance.run_query(q) +print(df) + + id code period_start period_end pub_date report_type_id \ +0 16178727 150016 2020-10-01 2020-12-31 2021-01-22 403004 +1 16178726 150016 2020-10-01 2020-12-31 2021-01-22 403004 +2 16178725 150016 2020-10-01 2020-12-31 2021-01-22 403004 +3 16178724 150016 2020-10-01 2020-12-31 2021-01-22 403004 +4 16178723 150016 2020-10-01 2020-12-31 2021-01-22 403004 + + report_type rank symbol name shares market_cap proportion +0 第四季度 10 601012 隆基股份 6707249.0 5.835850e+08 2.83 +1 第四季度 9 688099 晶晨股份 7575165.0 5.887965e+08 2.86 +2 第四季度 8 000895 双汇发展 13913806.0 6.439926e+08 3.13 +3 第四季度 7 300413 芒果超媒 9394546.0 6.811046e+08 3.31 +4 第四季度 6 002594 比亚迪 3581370.0 6.958602e+08 3.38 +``` + + 场外 +``` + +#查询中海新能源主题灵活配置混合型证券投资基金("398051")最近一个季度的基金持仓股票组合前10只股票 +q=query(finance.FUND_PORTFOLIO_STOCK).filter(finance.FUND_PORTFOLIO_STOCK.code=="398051").order_by(finance.FUND_PORTFOLIO_STOCK.pub_date.desc()).limit(5) +df=finance.run_query(q) +print(df) + + id code period_start period_end pub_date report_type_id \ +0 16189331 398051 2020-10-01 2020-12-31 2021-01-22 403004 +1 16189327 398051 2020-10-01 2020-12-31 2021-01-22 403004 +2 16189328 398051 2020-10-01 2020-12-31 2021-01-22 403004 +3 16189329 398051 2020-10-01 2020-12-31 2021-01-22 403004 +4 16189330 398051 2020-10-01 2020-12-31 2021-01-22 403004 + + report_type rank symbol name shares market_cap proportion +0 第四季度 5 002460 赣锋锂业 496540.0 50249848.00 3.63 +1 第四季度 1 300750 宁德时代 203995.0 71624684.45 5.17 +2 第四季度 2 600438 通威股份 1673800.0 64340872.00 4.64 +3 第四季度 3 002594 比亚迪 285600.0 55492080.00 4.00 +4 第四季度 4 300124 汇川技术 540276.0 50407750.80 3.64 +``` + +FUND_PORTFOLIO_BOND基金持有的债券信息 / 上市至今,盘后24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUND_PORTFOLIO_BOND).filter(finance.FUND_PORTFOLIO_BOND.code==code).limit(n)) +``` + + 描述:记录公募基金按季度公布的债券组合,为债券投资者提供一些参照 **参数:** - **query(finance.FUND_PORTFOLIO_BOND)**:表示从finance.FUND_PORTFOLIO_BOND这张表中查询基金持仓债券组合数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUND_PORTFOLIO_BOND**:收录了基金持仓债券组合数据,表结构和字段信息如下: **字段设计** | 字段名称 | 中文名称 | 字段类型 | | -------------- | -------------- | ------------- | | code | 基金代码 | varchar(12) | | period_start | 开始日期 | date | | period_end | 报告期 | date | | pub_date | 公告日期 | date | | report_type_id | 报告类型编码 | int | | report_type | 报告类型 | varchar(32) | | rank | 持仓排名 | int | | symbol | 债券代码 | varchar(32) | | name | 债券名称 | varchar(100) | | shares | 持有债券数量 | decimal(20,4) | | market_cap | 持有债券的市值 | decimal(20,4) | | proportion | 占净值比例 | decimal(10,4) | - **filter(finance.FUND_PORTFOLIO_BOND.code==code)**:指定筛选条件,通过finance.FUND_PORTFOLIO_BOND.code==code可以指定你想要查询的基金代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** 场内 +``` + +#查询银华锐进基金("150019")基金持有的债券组合数据 +df=finance.run_query(query(finance.FUND_PORTFOLIO_BOND).filter(finance.FUND_PORTFOLIO_BOND.code=='150019').order_by(finance.FUND_PORTFOLIO_BOND.pub_date.desc()).limit(5)) +print(df) + + id code period_start period_end pub_date report_type_id \ +0 727440 150019 2019-04-01 2019-06-30 2019-07-19 403002 +1 697207 150019 2019-01-01 2019-03-31 2019-04-18 403001 +2 697208 150019 2019-01-01 2019-03-31 2019-04-18 403001 +3 697209 150019 2019-01-01 2019-03-31 2019-04-18 403001 + + report_type rank symbol name shares market_cap proportion +0 第二季度 1 108603 国开1804 90000.0 9005400.0 0.14 +1 第一季度 1 018005 国开1701 380000.0 38003800.0 0.57 +2 第一季度 2 108603 国开1804 80000.0 8040000.0 0.12 +3 第一季度 3 019537 16国债09 66810.0 6681000.0 0.10 +``` + + 场外 +``` + +#查询中海环保新能源主题灵活配置混合型证券投资基金("398051")基金持有的债券组合数据 +df=finance.run_query(query(finance.FUND_PORTFOLIO_BOND).filter(finance.FUND_PORTFOLIO_BOND.code=='398051').order_by(finance.FUND_PORTFOLIO_BOND.pub_date.desc()).limit(5)) +print(df) + + id code period_start period_end pub_date report_type_id \ +0 929557 398051 2020-10-01 2020-12-31 2021-01-22 403004 +1 929556 398051 2020-10-01 2020-12-31 2021-01-22 403004 +2 929555 398051 2020-10-01 2020-12-31 2021-01-22 403004 +3 929554 398051 2020-10-01 2020-12-31 2021-01-22 403004 +4 929558 398051 2020-10-01 2020-12-31 2021-01-22 403004 + + report_type rank symbol name shares market_cap proportion +0 第四季度 4 113040 星宇转债 110000.0 15744300.00 1.14 +1 第四季度 3 019640 20国债10 235200.0 23489424.00 1.69 +2 第四季度 2 123070 鹏辉转债 269372.0 37356508.96 2.70 +3 第四季度 1 019645 20国债15 380000.0 38136800.00 2.75 +4 第四季度 5 113586 上机转债 37130.0 15395583.20 1.11 +``` + +FUND_PORTFOLIO基金资产组合概况 / 上市至今,盘后24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUND_PORTFOLIO).filter(finance.FUND_PORTFOLIO.code==code).limit(n)) +``` + + 描述:基金资产组合概况 **参数:** - **query(finance.FUND_PORTFOLIO)**:表示从finance.FUND_PORTFOLIO这张表中查询基金资产组合概况数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUND_PORTFOLIO**:收录了基金资产组合概况数据,表结构和字段信息如下: **字段设计** | 字段名称 | 中文名称 | 字段类型 | | -------------------- | ---------------------------- | ------------- | | code | 基金代码 | varchar(12) | | name | 基金名称 | varchar(80) | | period_start | 开始日期 | date | | period_end | 报告期 | date | | pub_date | 公告日期 | date | | report_type_id | 报告类型编码 | int | | report_type | 报告类型 | varchar(32) | | equity_value | 权益类投资金额 | decimal(20,4) | | equity_rate | 权益类投资占比 | decimal(10,4) | | stock_value | 股票投资金额 | decimal(20,4) | | stock_rate | 股票投资占比 | decimal(10,4) | | fixed_income_value | 固定收益投资金额 | decimal(20,4) | | fixed_income_rate | 固定收益投资占比 | decimal(10,4) | | precious_metal_value | 贵金属投资金额 | decimal(20,4) | | precious_metal_rate | 贵金属投资占比 | decimal(10,4) | | derivative_value | 金融衍生品投资金额 | decimal(20,4) | | derivative_rate | 金融衍生品投资占比 | decimal(10,4) | | buying_back_value | 买入返售金融资产金额 | decimal(20,4) | | buying_back_rate | 买入返售金融资产占比 | decimal(10,4) | | deposit_value | 银行存款和结算备付金合计 | decimal(20,4) | | deposit_rate | 银行存款和结算备付金合计占比 | decimal(10,4) | | others_value | 其他资产 | decimal(20,4) | | others_rate | 其他资产占比 | decimal(10,4) | | total_asset | 总资产合计 | decimal(20,4) | - **filter(finance.FUND_PORTFOLIO.code==code)**:指定筛选条件,通过finance.FUND_PORTFOLIO.code==code可以指定你想要查询的基金代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** 场内 +``` + +#查询深成指B基金("150023")基金资产组合概况数据,传入的基金代码无需后缀 +from jqdatasdk import finance +q=query(finance.FUND_PORTFOLIO.code, + finance.FUND_PORTFOLIO.name, + finance.FUND_PORTFOLIO.pub_date, + finance.FUND_PORTFOLIO.stock_rate, + finance.FUND_PORTFOLIO.fixed_income_rate, +finance.FUND_PORTFOLIO.total_asset).filter(finance.FUND_PORTFOLIO.code=="150023").order_by(finance.FUND_PORTFOLIO.pub_date.desc()).limit(5) +df=finance.run_query(q) +print(df) + + code name pub_date stock_rate fixed_income_rate \ +0 150023 申万菱信深证成指分级证券投资基金申万进取份额 2021-01-22 84.92 0.0 +1 150023 申万菱信深证成指分级证券投资基金申万进取份额 2020-10-28 93.66 0.0 +2 150023 申万菱信深证成指分级证券投资基金申万进取份额 2020-07-21 93.18 NaN +3 150023 申万菱信深证成指分级证券投资基金申万进取份额 2020-04-22 92.68 NaN +4 150023 申万菱信深证成指分级证券投资基金申万进取份额 2020-01-20 93.35 NaN + + total_asset +0 2.499121e+09 +1 3.503815e+09 +2 3.314002e+09 +3 2.794784e+09 +4 2.960295e+09 +``` + + 场外 +``` + +#查询开元证券投资基金("184688")基金资产组合概况数据,传入的基金代码无需后缀 +from jqdatasdk import finance +q=query(finance.FUND_PORTFOLIO.code, + finance.FUND_PORTFOLIO.name, + finance.FUND_PORTFOLIO.pub_date, + finance.FUND_PORTFOLIO.stock_rate, + finance.FUND_PORTFOLIO.fixed_income_rate, +finance.FUND_PORTFOLIO.total_asset).filter(finance.FUND_PORTFOLIO.code=="184688").order_by(finance.FUND_PORTFOLIO.pub_date.desc()).limit(5) +df=finance.run_query(q) +print(df) + + code name pub_date stock_rate fixed_income_rate total_asset +0 184688 开元证券投资基金 2013-01-21 76.08 23.14 1.755376e+09 +1 184688 开元证券投资基金 2012-10-26 73.16 25.00 1.710568e+09 +2 184688 开元证券投资基金 2012-07-18 73.93 24.76 1.733814e+09 +3 184688 开元证券投资基金 2012-04-23 76.62 21.86 1.726419e+09 +4 184688 开元证券投资基金 2012-01-20 73.83 24.41 1.625162e+09 +``` + +FUND_FIN_INDICATOR基金财务指标信息 / 上市至今,盘后24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUND_FIN_INDICATOR).filter(finance.FUND_FIN_INDICATOR.code==code).limit(n)) +``` + + 描述:基金财务指标表 **参数:** - **query(finance.FUND_FIN_INDICATOR)**:表示从finance.FUND_FIN_INDICATOR这张表中查询基金财务指标数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUND_FIN_INDICATOR**:收录了基金财务指标数据,表结构和字段信息如下: **字段设计** | **字段** | **名称** | **类型** | | ------------------------- | ---------------------------------------- | ----------- | | code | 基金代码 | varchar(12) | | name | 基金名称 | varchar(80) | | period_start | 开始日期 | date | | period_end | 结束日期 | date | | pub_date | 公告日期 | date | | report_type_id | 报告类型编码 | int | | report_type | 报告类型 | varchar(32) | | profit | 本期利润 | | | adjust_profit | 本期利润扣减本期公允价值变动损益后的净额 | | | avg_profit | 加权平均份额本期利润 | | | avg_roe | 加权平均净值利润率 | | | profit_available | 期末可供分配利润 | | | profit_avaialbe_per_share | 期末可供分配份额利润 | | | total_tna | 期末基金资产净值 | | | nav | 期末基金份额净值 | | | adjust_nav | 期末还原后基金份额累计净值 | | | nav_growth | 本期净值增长率 | | | acc_nav_growth | 累计净值增长率 | | | adjust_nav_growth | 扣除配售新股基金净值增长率 | | - filter(finance.FUND_FIN_INDICATOR.code==code)**:指定筛选条件,通过finance.FUND_FIN_INDICATOR.code==code可以指定你想要查询的基金代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** 场内 +``` + +#查询中证100A ("150012")最近公布的基金财务指标数据 +from jqdatasdk import finance +df=finance.run_query(query(finance.FUND_FIN_INDICATOR).filter(finance.FUND_FIN_INDICATOR.code=="150012").order_by(finance.FUND_FIN_INDICATOR.pub_date.desc()).limit(5)) +print(df) + + id code name period_start period_end \ +0 292513 150012 国联安双禧中证100指数分级证券投资基金之双禧A份额 2020-10-01 2020-12-03 +1 281349 150012 国联安双禧中证100指数分级证券投资基金之双禧A份额 2020-07-01 2020-09-30 +2 271957 150012 国联安双禧中证100指数分级证券投资基金之双禧A份额 2020-01-01 2020-06-30 +3 261374 150012 国联安双禧中证100指数分级证券投资基金之双禧A份额 2020-04-01 2020-06-30 +4 253095 150012 国联安双禧中证100指数分级证券投资基金之双禧A份额 2019-01-01 2019-12-31 + + pub_date report_type_id report_type profit adjust_profit \ +0 2021-01-22 NaN None 45870259.14 None +1 2020-10-28 403003.0 第三季度 36286659.81 None +2 2020-08-31 403005.0 半年度 4531704.53 None +3 2020-07-21 403002.0 第二季度 24149860.00 None +4 2020-04-30 403006.0 年度 57334199.41 None + + ... avg_roe profit_available profit_avaialbe_per_share \ +0 ... NaN NaN NaN +1 ... NaN NaN NaN +2 ... 2.31 83167293.31 0.4727 +3 ... NaN NaN NaN +4 ... 33.40 89486260.36 0.4413 + + total_tna nav adjust_nav nav_growth acc_nav_growth \ +0 3.340269e+08 0.998 None NaN NaN +1 3.989853e+08 1.314 None NaN NaN +2 1.971414e+08 1.120 None 2.85 72.87 +3 1.971414e+08 1.120 None NaN NaN +4 2.208318e+08 1.089 None 39.27 68.09 + + adjust_nav_growth total_asset +0 None None +1 None None +2 None None +3 None None +4 None None + +[5 rows x 21 columns] +``` + + 场外 +``` + +# 查询开元证券投资基金("184688")最近公布的基金财务指标数据 +from jqdatasdk import finance +df=finance.run_query(query(finance.FUND_FIN_INDICATOR).filter(finance.FUND_FIN_INDICATOR.code=="184688").order_by(finance.FUND_FIN_INDICATOR.pub_date.desc()).limit(5)) +print(df) + + id code name period_start period_end pub_date \ +0 96394 184688 开元证券投资基金 2013-01-01 2013-02-17 2013-04-19 +1 96390 184688 开元证券投资基金 2012-01-01 2012-12-31 2013-03-29 +2 96393 184688 开元证券投资基金 2012-10-01 2012-12-31 2013-01-21 +3 96392 184688 开元证券投资基金 2012-07-01 2012-09-30 2012-10-26 +4 96389 184688 开元证券投资基金 2012-01-01 2012-06-30 2012-08-29 + + report_type_id report_type profit adjust_profit ... \ +0 403001 第一季度 1.046992e+08 -2.691637e+08 ... +1 403006 年度 1.294180e+08 -9.863223e+07 ... +2 403004 第四季度 4.416168e+07 -1.701878e+07 ... +3 403003 第三季度 -2.341911e+07 -5.788890e+06 ... +4 403005 半年度 1.086755e+08 -7.582456e+07 ... + + avg_roe profit_available profit_avaialbe_per_share total_tna nav \ +0 NaN NaN NaN 1.853842e+09 0.9269 +1 7.48 -2.508577e+08 -0.1254 1.749142e+09 0.8746 +2 NaN NaN NaN 1.749142e+09 0.8746 +3 NaN NaN NaN 1.704981e+09 0.8525 +4 6.12 -2.716003e+08 -0.1358 1.728400e+09 0.8642 + + adjust_nav nav_growth acc_nav_growth adjust_nav_growth total_asset +0 None NaN NaN None None +1 None 7.99 488.67 None None +2 None NaN NaN None None +3 None NaN NaN None None +4 None 6.70 484.78 None None + +[5 rows x 21 columns] +``` + +FUND_MF_DAILY_PROFIT货币基金收益日报 / 上市至今,盘后24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUND_MF_DAILY_PROFIT).filter(finance.FUND_MF_DAILY_PROFIT.code==code).limit(n)) +``` + + 描述:货币基金收益日报 **参数:** - **query(finance.FUND_MF_DAILY_PROFIT)**:表示从finance.FUND_MF_DAILY_PROFIT这张表中查询货币基金收益日报数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUND_MF_DAILY_PROFIT**:收录了货币基金收益日报数据,表结构和字段信息如下: **字段设计** | **字段** | **名称** | **类型** | | ------------ | -------------------------- | ------------- | | code | 基金代码 | varchar(12) | | name | 基金名称 | varchar(80) | | end_date | 收益日期 | date | | weekly_yield | 7日年化收益率(%) | decimal(10,4) | | daily_profit | 每万份基金单位当日收益(元) | decimal(10,4) | - **filter(finance.FUND_MF_DAILY_PROFIT.code==code)**:指定筛选条件,通过finance.FUND_MF_DAILY_PROFIT.code==code可以指定你想要查询的基金代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询汇添富现金宝("000330")货币基金收益日报数据,只显示5条信息。 +from jqdatasdk import finance +df=finance.run_query(query(finance.FUND_MF_DAILY_PROFIT).filter(finance.FUND_MF_DAILY_PROFIT.code=='000330').order_by(finance.FUND_MF_DAILY_PROFIT.end_date.desc()).limit(5)) +print(df) + + id code name end_date weekly_yield daily_profit +0 1742123 000330 汇添富现金宝货币市场基金A类 2021-03-17 2.165 0.5857 +1 1741454 000330 汇添富现金宝货币市场基金A类 2021-03-16 2.172 0.5863 +2 1740404 000330 汇添富现金宝货币市场基金A类 2021-03-15 2.168 0.6136 +3 1740100 000330 汇添富现金宝货币市场基金A类 2021-03-14 2.155 0.5785 +4 1739586 000330 汇添富现金宝货币市场基金A类 2021-03-13 2.155 0.5812 +``` + +FUND_DIVIDEND基金分红拆分合并信息 / 上市至今,盘后24:00更新 +``` + +from jqdatasdk import finance +finance.run_query(query(finance.FUND_DIVIDEND).filter(finance.FUND_DIVIDEND.code==code).limit(n)) +``` + + 描述:记录基金分红、拆分和合并的方案 **参数:** - **query(finance.FUND_DIVIDEND)**:表示从finance.FUND_DIVIDEND这张表中查询基金分红拆分合并数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **finance.FUND_DIVIDEND**:收录了基金分红拆分合并数据,表结构和字段信息如下: **字段设计** | **字段** | **名称** | **类型** | | ----------------------- | ---------------------- | ------------- | | code | 基金代码 | varchar(12) | | name | 基金名称 | varchar(80) | | pub_date | 公布日期 | date | | event_id | 事项类别 | int | | event | 事项名称 | varchar(100) | | distribution_date | 分配收益日 | date | | process_id | 方案进度编码 | int | | process | 方案进度 | varchar(100) | | proportion | 派现比例 | decimal(20,8) | | split_ratio | 分拆(合并、赠送)比例 | decimal(20,8) | | record_date | 权益登记日 | date | | ex_date | 除息日 | date | | fund_paid_date | 基金红利派发日 | date | | redeem_date | 再投资赎回起始日 | date | | dividend_implement_date | 分红实施公告日 | dated | | dividend_cancel_date | 取消分红公告日 | date | | otc_ex_date | 场外除息日 | date | | pay_date | 红利派发日 | date | | new_share_code | 新增份额基金代码 | varchar(10) | | new_share_name | 新增份额基金名称 | varchar(100) | 事项类别编码 404 | **编码** | **名称** | | -------- | ------------ | | 404001 | 基金分红 | | 404002 | 基金分拆 | | 404003 | 基金合并 | | 404004 | 基金赠送 | | 404005 | 分级基金折算 | 基金分红拆分合并进度编码 405 | **编码** | **名称** | | -------- | -------- | | 405001 | 分红预案 | | 405002 | 实施方案 | | 405003 | 取消折算 | - **filter(finance.FUND_DIVIDEND.code==code)**:指定筛选条件,通过finance.FUND_DIVIDEND.code==code可以指定你想要查询的基金代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** 场内 +``` + +#查询银华稳进("150018")基金分红拆分合并数据。 +from jqdatasdk import finance +df=finance.run_query(query(finance.FUND_DIVIDEND).filter(finance.FUND_DIVIDEND.code=="150018").order_by(finance.FUND_DIVIDEND.pub_date.desc()).limit(5)) +print(df) + + id code name pub_date event_id event \ +0 67506 150018 银华深证100指数分级证券投资基金之银华稳进 2021-01-05 404005 分级基金折算 +1 66010 150018 银华深证100指数分级证券投资基金之银华稳进 2020-01-06 404005 分级基金折算 +2 49827 150018 银华深证100指数分级证券投资基金之银华稳进 2019-01-04 404005 分级基金折算 +3 17737 150018 银华深证100指数分级证券投资基金之银华稳进 2018-01-04 404005 分级基金折算 +4 15266 150018 银华深证100指数分级证券投资基金之银华稳进 2017-01-05 404005 分级基金折算 + + distribution_date process_id process proportion ... \ +0 None None None None ... +1 None None None None ... +2 None None None None ... +3 None None None None ... +4 None None None None ... + + record_date ex_date fund_paid_date redeem_date dividend_implement_date \ +0 2020-12-31 2020-12-31 None None None +1 2020-01-02 2020-01-02 None None None +2 2019-01-02 2019-01-02 None None None +3 2018-01-02 2018-01-02 None None None +4 2017-01-03 2017-01-03 None None None + + dividend_cancel_date otc_ex_date pay_date new_share_code \ +0 None None None 77161812 +1 None None None 77161812 +2 None None None 77161812 +3 None None None 77161812 +4 None None None 77161812 + + new_share_name +0 银华深证100指数证券投资基金(LOF) +1 银华深证100指数分级证券投资基金 +2 银华深证100指数分级证券投资基金 +3 银华深证100指数分级证券投资基金 +4 银华深证100指数分级证券投资基金 + +[5 rows x 21 columns] +``` + + 场外 +``` + +#查询开元证券投资基金("184688")基金分红拆分合并数据。 +from jqdatasdk import finance +df=finance.run_query(query(finance.FUND_DIVIDEND).filter(finance.FUND_DIVIDEND.code=="184688").order_by(finance.FUND_DIVIDEND.pub_date.desc()).limit(4)) +print(df) + + id code name pub_date event_id event distribution_date \ +0 2759 184688 开元证券投资基金 2011-02-15 404001 基金分红 2010-12-31 +1 2306 184688 开元证券投资基金 2010-04-03 404001 基金分红 2009-12-31 +2 1581 184688 开元证券投资基金 2008-03-29 404001 基金分红 2007-12-31 +3 1452 184688 开元证券投资基金 2007-10-25 404001 基金分红 2007-09-30 + + process_id process proportion ... record_date ex_date \ +0 405002 实施方案 0.030 ... 2011-02-18 None +1 405002 实施方案 0.050 ... 2010-04-13 None +2 405002 实施方案 1.372 ... 2008-04-10 None +3 405002 实施方案 0.300 ... 2007-11-01 None + + fund_paid_date redeem_date dividend_implement_date dividend_cancel_date \ +0 None None 2011-02-15 None +1 None None 2010-04-03 None +2 None None 2008-03-29 None +3 None None 2007-10-25 None + + otc_ex_date pay_date new_share_code new_share_name +0 2011-02-21 2011-02-21 None None +1 2010-04-14 2010-04-14 None None +2 2008-04-11 2008-04-11 None None +3 2007-11-02 2007-11-02 None None + +[4 rows x 21 columns] +``` + +## 指数 + +### 指数概况 + +- **更新时间:2005至今,8:00更新** + +方法描述get_security_info获取单只指数信息 +``` + +get_security_info(code) +``` + + 获取股票/基金/指数的信息. **参数** - code: 指数代码 **返回值** - 一个对象, 有如下属性: - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期, [datetime.date] 类型 - end_date: 退市日期, [datetime.date] 类型, 如果没有退市则为2200-01-01 - type: 类型,index(指数) **示例** +``` + +# 获取沪深300指数的中文名称 +get_security_info("000300.XSHG").display_name +# 获取沪深300指数的缩写简称 +get_security_info("000300.XSHG").name +# 获取沪深300指数的上市日期 +get_security_info("000300.XSHG").start_date +#获取沪深300指数的类型 +get_security_info("000300.XSHG").type +``` + +get_all_securities获取所有指数信息 +``` + +get_all_securities(types=[], date=None) +``` + + 获取平台支持的所有股票、基金、指数、期货信息 **参数** - types:'index'。**types为空时返回所有股票, 不包括基金,指数和期货** - date: 日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 用于获取某日期还在上市的股票信息. 默认值为 None, 表示获取所有日期的股票信息 **返回** 返回[pandas.DataFrame,如案例所示 - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期 - end_date: 退市日期,如果没有退市则为2200-01-01 - type: 类型,index(指数) **示例** +``` + +# 获得所有指数列表 +df=get_all_securities(['index']) +print(df[:4]) + + display_name name start_date end_date type +000001.XSHG 上证指数 SZZS 1991-07-15 2200-01-01 index +000002.XSHG A股指数 AGZS 1992-02-21 2200-01-01 index +000003.XSHG B股指数 BGZS 1992-02-21 2200-01-01 index +000004.XSHG 工业指数 GYZS 1993-05-03 2200-01-01 index +``` + +### 指数行情数据 + +- **日行情:2005至今** +- **分钟行情:2005至今** + +方法描述 / 更新时间及频率get_price(1天/分钟)行情数据 +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None, panel=True, fill_paused=True) +``` + + - 获取一支或者多只指数数据 - frequency为非一天或者一分钟,请使用get_bars; - 取多支标的的数据时,不要获取交易时段不同的标的(例如:不同交易时间的期货标的),否则会报错; - 这里在使用时注意 end_date 的设置,不要引入未来的数据; - 标识时间为09:32:00的1分钟k线,其数据时间为09:31:00至09:31:59; - end_date:**当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取。**注意:当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 - get_price指定frequency为 非1m/1d时,fields选择'high_limit','low_limit'会报错 **关于停牌**: 因为此API可以获取多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充. 如想跳过, 请使用 skip_paused=True 参数, 注意当 panel=True 且获取多标的时不支持(panel结构需要索引对齐) +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + **参数** | **参数名称** | **参数说明** | **注释** | +| --- | --- | --- | +| security | 标的 | 可获取种类:股票、期货、基金、指数、期权 | +| start_date | 开始时间,不可与count同时使用。当'count'和'start_date'为None时, 默认值是 '2015-01-01 00:00:00' | 当指定frequency为minute时,如果只传入日期,则日内时间为当日的 00:00:00 | +| end_date | 结束时间,如无指定,默认为'2015-12-31 00:00:00'。当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 | 当指定frequency为minute时, 如果只传入日期, 则日内时间为当日的 00:00:00, 所以返回的数据不包括 end_date这天。 | +| count | 表示获取 end_date 之前几个 frequency 的数据,与start_date不可同时使用。 | 返回的结果集的行数, 即表示获取 end_date 之前count个 frequency 的数据 | +| frequency | 单位时间长度,即指定获取的时间频级为分钟级(minute)或日级(daily),也可以指定为 '3m','10d' 等 | daily'(同'1d'), 'minute'(同'1m'), [点击查看get_price和get_bars的合成逻辑。](https://www.joinquant.com/view/community/detail/cea095760a0583ce965964912580077e?type=1)如需5分钟,1小时等标准bar请使用get_bars | +| fields | 所获取数据的字段名称,即表头。默认是None(返回标准字段['open','close','high','low','volume','money']) | 可选择填入以下字段,字段说明可查阅下面fields表 ['open','close','low','high','volume','money','factor', 'high_limit','low_limit','avg','pre_close','paused','open_interest'], open_interest为期货持仓量 | +| skip_paused | 是否跳过不交易日期(含:停牌/未上市/退市后的日期) | 如果不跳过, 停牌时会使用停牌前的数据填充,上市前或者退市后数据都为 nan。 | +| fill_paused | 对于停牌股票的价格处理,默认为True | 默认为True,用pre_close价格填充);False 表示使用NAN填充停牌的股票价格。 | +| fq | 复权选项,默认为前复权(fq='pre') | 'pre':前复权 / 'none':不复权, 返回实际价格 / 'post':后复权 | +| panel | 指定返回的数据格式为panel | 默认为True;指定panel=False时返回dataframe格式; 如本地pandas版本大于0.25将强制返回dataframe详见案例 | + + **fields**内各字段属性 | **字段名称** | **中文名称** | **注释** | +| --- | --- | --- | +| open | 时间段开始时价格 | | +| close | 时间段结束时价格 | | +| low | 时间段中的最低价 | | +| high | 时间段中的最高价 | | +| volume | 时间段中的成交的股票数量 | 单位股 | +| money | 时间段中的成交的金额 | | +| factor | pre':前复权(默认)/None:不复权,返回实际价格/'post':后复权 | 前(后)复权数据=价格×前(后)复权因子; 前(后)复权后的成交量=成交量 / 前(后)复权因子; 成交额不处理 | +| high_limit | 时间段中的涨停价 | | +| low_limit | 时间段中的跌停价 | | +| avg | 时间段中的平均价 | (1)天级别:股票是成交额除以成交量;期货是直接从CTP行情获取的,计算方法为成交额除以成交量再除以合约乘数; (2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 | +| pre_close | 前一个单位时间结束时的价格,按天则是前一天的收盘价 | 期货:pre_close--前一天结算;建议使用get_extras获取结算价;在分钟频率下pre_close=open | +| paused | bool值,股票是否停牌; | 停牌时open/close/low/high/pre_close;都等于停牌前的收盘价, volume=money=0 | + + **返回** - 请注意, 为了方便比较一只指数的多个属性, 同时也满足对比多只指数的一个属性的需求, 我们在security参数是**一只指数和多只指数时返回的结构完全不一样 (默认panel=True时)** **代码示例** **获取一支指数** +``` + +# 获得上证指数的2018年08月01日 10:00:00-2018年08月01日 10:05:00的分钟数据 +df = get_price('000001.XSHG', start_date='2018-08-01 10:00:00', end_date='2018-08-01 10:05:00', frequency='1m') +# 返回[pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是行情字段名字 +print(df[:5]) + + open close high low volume \ +2018-08-01 10:00:00 2895.33 2896.48 2896.48 2895.33 105555600.0 +2018-08-01 10:01:00 2897.39 2894.12 2897.39 2894.12 106207600.0 +2018-08-01 10:02:00 2893.73 2892.71 2893.73 2892.05 94199600.0 +2018-08-01 10:03:00 2892.74 2892.19 2892.74 2891.62 75960400.0 +2018-08-01 10:04:00 2891.84 2891.77 2892.42 2891.56 68796400.0 + + money +2018-08-01 10:00:00 1.165263e+09 +2018-08-01 10:01:00 1.113068e+09 +2018-08-01 10:02:00 9.975439e+08 +2018-08-01 10:03:00 7.984701e+08 +2018-08-01 10:04:00 7.453942e+08 +``` + + **获取多只指数** +``` + +#获得上证指数和A股指数在2018-08-01 10:00:00至2018-08-01 10:05:00的分钟数据,返回[pandas.Panel]对象 +panel=get_price(['000001.XSHG','000002.XSHG'],start_date='2018-08-01 10:00:00', end_date='2018-08-01 10:05:00', frequency='1m') +#返回[pandas.DataFrame]对象,行索引是[datetime.datetime]对象, 列索引是指数代号 +df=panel['open'][:4] +print(df) + + 000001.XSHG 000002.XSHG +2018-08-01 10:00:00 2895.33 3032.32 +2018-08-01 10:01:00 2897.39 3034.48 +2018-08-01 10:02:00 2893.73 3030.63 +2018-08-01 10:03:00 2892.74 3029.60 +``` + +get_bars指定时间周期的指数行情(支持时间周期:'1m','5m', '15m', '30m', '60m', '120m', '1w', '1M') +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None,df=True) +``` + + 获取各种时间周期的bar数据,bar的分割方式与主流股票软件相同, 同时还支持返回当前时刻所在 bar 的数据。 **参数** - security: 指数代码,支持单个及多个标的 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流股票软件类似,期货的bar各平台也许稍微有差异,我们与文华接近; 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', 'open_interest'(期货持仓量),factor(复权因子)。 - include_now: 取值True 或者False。 表示是否包含end_dt所在的bar, 比如end_dt指定为9:38:00,unit参数为5m, 如果 include_now=True,则返回的最后一条bar为9:35:00-9:38:00这个 bar,否则返回的最后一条bar为09:30:00-09:35:00的bar。 - end_dt:查询的截止时间,支持的类型为datetime.datetime或None,默认为datetime.now()。 - fq_ref_date:复权基准日期,为None时为不复权数据。 - 如果用户输入 fq_ref_date = None, 则获取到的是不复权的数据 - 如果用户想获取后复权的数据,可以将fq_ref_date 指定为一个很早的日期,比如 datetime.date(2000, 1, 1) - 定点复权,以某一天价格点位为参照物,进行的前复权或后复权。设置为datetime.datetime.now()即返回前复权数据 ; - df:默认为True,指定返回数据为dataframe结构;当df=False的时候,传入单个标的时,返回一个np.ndarray,多个标的返回一个字典,key是code,value是np.array **返回** 返回一个pandas.dataframe对象,可以按任意周期返回指数的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 **示例** +``` + +#获取沪深300按天为周期以"2020-9-16"为基础往前8个交易日的数据 +df = get_bars('000300.XSHG', 8, unit='1d',fields=['date','open','high','low','close'],include_now=False,end_dt='2020-9-16') +print(df) + +# 输出 + date open high low close +0 2020-09-04 4737.24 4778.20 4726.56 4770.22 +1 2020-09-07 4759.52 4789.30 4655.56 4669.37 +2 2020-09-08 4683.83 4707.90 4639.05 4694.39 +3 2020-09-09 4634.25 4645.20 4558.03 4584.59 +4 2020-09-10 4632.10 4647.75 4572.21 4581.98 +5 2020-09-11 4572.26 4630.88 4563.11 4627.28 +6 2020-09-14 4652.05 4666.99 4625.99 4651.05 +7 2020-09-15 4649.45 4691.50 4630.54 4688.48 +``` + +``` + +# 获取沪深300、上证指数按5分钟为周期以“2020-9-16 14:22:35”为基础前4个时间单位的数据 +df = get_bars(['000300.XSHG','000001.XSHG'],4, unit='5m',fields=['date','open','high','low','close'],include_now=True,end_dt='2020-9-16 14:22:35') +print(df) + +# 输出 + date open high low close +000300.XSHG 0 2020-09-16 14:10:00 4657.03 4657.93 4650.24 4650.24 + 1 2020-09-16 14:15:00 4649.63 4649.63 4641.87 4643.58 + 2 2020-09-16 14:20:00 4643.67 4646.66 4642.36 4642.36 + 3 2020-09-16 14:22:00 4641.59 4641.64 4638.90 4638.90 +000001.XSHG 0 2020-09-16 14:10:00 3282.83 3283.60 3279.32 3279.32 + 1 2020-09-16 14:15:00 3278.67 3278.67 3273.17 3274.24 + 2 2020-09-16 14:20:00 3274.25 3275.90 3273.28 3273.36 + 3 2020-09-16 14:22:00 3272.78 3273.05 3271.11 3271.11 +``` + +get_call_auction获取集合竞价数据 / 2017年至今 +``` + +get_call_auction(security, start_date, end_date, fields=None) +``` + + 支持股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)和上证ETF期权(2017年至今)的集合竞价数据。当日的集合竞价数据最晚于9:28分返回。为了防止返回数据量过大, 我们每次最多返回5000行。 **参数**: - security: **指数(2017年至今)** - start_date: 开始日期,YYYY-MM-DD格式 - end_date: 结束日期,YYYY-MM-DD格式 - fields: 选择要获取的行情数据字段,参数为list格式,默认为None,返回全部字段。 **返回值:** 返回指定时间区间标的集合竞价tick数据,返回字段结果如下: | 字段名 | 说明 | 字段类型 | | :-------- | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价(不复权) | float | | volume | 累计成交量(股) | float | | money | 累计成交额(元) | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **示例:** +``` + +#获取沪深300指数2017-09-01至2017-09-05期间的集合竞价数据 +df=get_call_auction('000300.XSHG','2017-09-01','2017-09-05') +print(df) + + code time current volume money a1_p \ +0 000300.XSHG 2017-09-01 09:25:12 3825.34 60406600.0 6.963988e+08 None +1 000300.XSHG 2017-09-04 09:25:10 3828.54 145635600.0 1.222139e+09 None +2 000300.XSHG 2017-09-05 09:25:13 3845.55 59488700.0 6.133801e+08 None + + a1_v a2_p a2_v a3_p ... b1_p b1_v b2_p b2_v b3_p b3_v b4_p \ +0 None None None None ... None None None None None None None +1 None None None None ... None None None None None None None +2 None None None None ... None None None None None None None + + b4_v b5_p b5_v +0 None None None +1 None None None +2 None None None + +[3 rows x 25 columns] +``` + +get_ticks (机构)指数tick数据 / 2017-01-01至今 +``` + +get_ticks(security, start_dt=None, end_dt=None, count=None, fields=None, skip=True, df=True) +``` + + **指数部分, 支持 2017-01-01 至今的tick数据。(每3秒一次快照)** **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 指数代码,如'000001.XSHG' - start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' - end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' - count: 取出指定时间区间内前N条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下指数tick返回结果。 - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据。 - df: 默认为True,传入单个标的返回的是一个dataframe, 当df=False的时候,返回一个np.ndarray **指数tick返回结果:** | 字段名 | 说明 | 字段类型 | | :------ | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额(元) | float | **指数tick数据示例**: +``` + +# 获取上证指数2019-11-19 10:00:00 到 2019-11-19 10:01:00的tick数据 +df=get_ticks('000001.XSHG','2019-11-19 10:00:00','2019-11-19 10:01:00') +print(df[:6]) + + time current high low volume \ +0 2019-11-19 10:00:01.608 2913.4288 2914.6199 2902.855 2.795233e+09 +1 2019-11-19 10:00:06.600 2913.1890 2914.6199 2902.855 2.800322e+09 +2 2019-11-19 10:00:10.628 2913.0532 2914.6199 2902.855 2.807082e+09 +3 2019-11-19 10:00:16.608 2913.3964 2914.6199 2902.855 2.814624e+09 +4 2019-11-19 10:00:21.620 2913.2224 2914.6199 2902.855 2.818837e+09 +5 2019-11-19 10:00:25.620 2913.6741 2914.6199 2902.855 2.824412e+09 + + money +0 3.171538e+10 +1 3.178079e+10 +2 3.185376e+10 +3 3.193569e+10 +4 3.198723e+10 +5 3.204712e+10 +​ +``` + +### 指数成分股及权重数据 + +**更新时间:2005至今,交易日8:00更新** + +方法描述get_index_stocks指数成份股 +``` + +get_index_stocks(index_symbol, date=None) +``` + + 获取一个指数给定日期在平台可交易的成分股列表,请点击[指数列表](https://www.joinquant.com/indexData)查看指数信息 **参数** - index_symbol: 指数代码 - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, **返回** 返回股票代码的list **示例** +``` + +# 获取所有沪深300的股票 +stocks = get_index_stocks('000300.XSHG') +print(stocks[:5]) + +# 输出 +['000001.XSHE', '000002.XSHE', '000063.XSHE', '000066.XSHE', '000069.XSHE'] +``` + +get_index_weights指数成份股权重(月度) +``` + +get_index_weights(index_id, date=None) +``` + + 获取指数成份股给定日期的权重数据,每月的月底或者月初更新一次,请点击[指数列表](https://www.joinquant.com/help/api/help?name=index#%E6%B2%AA%E6%B7%B1%E6%8C%87%E6%95%B0%E5%88%97%E8%A1%A8)查看指数信息 **参数** - index_id: 代表指数的标准形式代码, 形式:指数代码.交易所代码,例如"000001.XSHG"。 - date: 查询权重信息的日期,形式:"%Y-%m-%d",例如"2018-05-03"; **返回** - 查询到对应日期,且有权重数据,返回 pandas.DataFrame, code(股票代码),display_name(股票名称), date(日期), weight(权重); - 查询到对应日期,且无权重数据, 返回距离查询日期最近日期的权重信息; - 找不到对应日期的权重信息, 返回距离查询日期最近日期的权重信息; **示例** +``` + +#获取2018年5月9日这天的上证指数的成份股权重 +df = get_index_weights(index_id="000001.XSHG", date="2018-05-09") +print(df) + +#输出 + date weight display_name +603648.XSHG 2018-04-27 0.023 畅联股份 +603139.XSHG 2018-04-27 0.007 康惠制药 +603138.XSHG 2018-04-27 0.015 海量数据 +603136.XSHG 2018-04-27 0.009 天目湖 +603131.XSHG 2018-04-27 0.011 上海沪工 +... ... ... ... +603005.XSHG 2018-04-27 0.023 晶方科技 +603007.XSHG 2018-04-27 0.013 ST花王 +603006.XSHG 2018-04-27 0.008 联明股份 +603009.XSHG 2018-04-27 0.014 北特科技 +603008.XSHG 2018-04-27 0.022 喜临门 +``` + +## 期权 + +### 期权概况 + +方法描述 / 更新时间及频率get_all_securities获取所有期权信息 / 上市至今,交易日08:30、17:30 更新 +``` + +get_all_securities(types=[], date=None) +``` + + 获取平台支持的所有股票、基金、指数、期货、期权信息 **参数** - types: 'options'。types为空时返回所有股票, 不包括基金,指数和期货 - date: 日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 用于获取某日期还在上市的股票信息. 默认值为 None, 表示获取所有日期的股票信息 **返回**[pandas.DataFrame] - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期 - end_date: 退市日期,如果没有退市则为2200-01-01 - type: 类型,options(期货) **示例** 获得所有期权列表 +``` + +df=get_all_securities(['options']) +print(df[:5]) + +#输出 + display_name name start_date end_date type +10000001.XSHG 10000001.XSHG 10000001.XSHG 2015-02-09 2015-03-25 options +10000002.XSHG 10000002.XSHG 10000002.XSHG 2015-02-09 2015-03-25 options +10000003.XSHG 10000003.XSHG 10000003.XSHG 2015-02-09 2015-03-25 options +10000004.XSHG 10000004.XSHG 10000004.XSHG 2015-02-09 2015-03-25 options +10000005.XSHG 10000005.XSHG 10000005.XSHG 2015-02-09 2015-03-25 options +``` + + 将所有期权列表转换成数组 +``` + +options = list(get_all_securities(['options']).index) +print(options[:5]) + +#输出 +['10000001.XSHG', '10000002.XSHG', '10000003.XSHG', '10000004.XSHG', '10000005.XSHG'] +``` + +OPT_CONTRACT_INFO合约资料 / 上市至今,盘后18:00更新 +``` + +from jqdatasdk import opt +opt.run_query(query(opt.OPT_CONTRACT_INFO).filter(opt.OPT_CONTRACT_INFO.code==code).limit(n)) +``` + + 描述:支持ETF期权、股指期权及商品期权,提供最基础的合约信息 **参数:** - **query(opt.OPT_CONTRACT_INFO)**:表示从opt.OPT_CONTRACT_INFO这张表中查询期权基本资料数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **opt.OPT_CONTRACT_INFO**:收录了期权基本资料数据,表结构和字段信息如下: **字段设计** | **名称** | **类型** | **描述** | **示例** | **备注** | | ------------------- | ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | code | str | 合约代码 | 10001313.XSHG;CU1901C46000.XSGE;SR903C4700.XZCE;M1707-C-2400.XDCE | 注意合约代码使用大写字母 | | trading_code | int | 合约交易代码 | 510050C1810M02800 | 合约调整会产生新的交易代码 | | name | str | 合约简称 | 50ETF购10月2800豆粕购7月2400 | 合约调整会产生新的合约简称 | | contract_type | str | 合约类型。CO-认购期权,PO-认沽期权 | CO | | | exchange_code | str | 证券市场编码,XSHG:上海证券交易所;XSGE:上海期货交易所;XZCE:郑州商品交易所;XDCE:大连商品交易所 | XSHG | | | currency_id | str | 货币代码CNY-人民币 | CNY | | | underlying_symbol | str | 标的代码 | 510050.XSHG | | | underlying_name | str | 标的简称 | 华夏上证50ETF | | | underlying_exchange | str | 标的交易市场 | XSHG | | | underlying_type | str | 标的品种类别。ETF-交易型开放式指数基金FUTURE-期货 | ETF | | | exercise_price | float | 行权价格 | 2.8 | 合约调整会产生新的行权价格 | | contract_unit | int | 合约单位 | 10000 | 合约调整会产生新的合约单位 | | contract_status | str | 合约状态:LIST-上市、DELIST-退市。SUSPEND-停牌 | DELIST | 新期权上市由交易所公布LIST:挂牌日期<=当前日期<=最后交易日DELIST:当前日期>最后交易日 | | list_date | str | 挂牌日期 | 2018-09-25 | | | list_reason | str | 合约挂牌原因 | | | | list_price | decimal(20,4) | 开盘参考价 | | 合约挂牌当天交易所会公布 | | high_limit | decimal(20,4) | 挂牌涨停价 | | 合约挂牌当天交易所会公布 | | low_limit | decimal(20,4) | 挂牌跌停价 | | 合约上市当天交易所会公布 | | expire_date | str | 到期日 | 2018/10/24 | | | last_trade_date | str | 最后交易日 | 2018/10/24 | | | exercise_date | str | 行权日 | 2018/10/24 | 50ETF,铜期权是欧式期权,行权日固定。白糖期权和豆粕期权是美式期权,到期日之前都可以行权,行权日不固定,可为空。 | | delivery_date | str | 交收日期 | 2018/10/25 | | | is_adjust | int | 是否调整 | | 原合约调整为新的合约会发生合约资料的变化1-是,0-否 | | delist_date | str | 摘牌日期 | 2018/10/24 | 通联数据和交易所有出入,交易所公布的是2018/10/25摘牌日期=最后交易日T+1 | | delist_reason | str | 合约摘牌原因 | | | - **filter(opt.OPT_CONTRACT_INFO.code==code)**:指定筛选条件,通过opt.OPT_CONTRACT_INFO.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询"10001313.XSHG "最新的期权基本资料数据。 +from jqdatasdk import * +q=query(opt.OPT_CONTRACT_INFO).filter(opt.OPT_CONTRACT_INFO.code=='10001313.XSHG') +df=opt.run_query(q) +print(df) + + id code trading_code name contract_type \ +0 2435 10001313.XSHG 510050C1812A02500 50ETF购12月2450A CO + + exchange_code currency_id underlying_symbol underlying_name \ +0 XSHG CNY 510050.XSHG 50ETF + + underlying_exchange ... list_price high_limit low_limit \ +0 XSHG ... 0.3523 0.6216 0.083 + + expire_date last_trade_date exercise_date delivery_date is_adjust \ +0 2018-12-26 2018-12-26 2018-12-26 2018-12-27 1 + + delist_date delist_reason +0 None None +``` + +OPT_ADJUSTMENT合约调整记录 / 上市至今,盘后18:00更新 +``` + +from jqdatasdk import opt +opt.run_query(query(opt.OPT_ADJUSTMENT).filter(opt.OPT_ADJUSTMENT.code==code).limit(n)) +``` + + 描述:支持ETF期权 **参数:** - **query(opt.OPT_ADJUSTMENT)**:表示从opt.OPT_ADJUSTMENT这张表中查询期权合约调整数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **opt.OPT_ADJUSTMENT**:收录了期权合约调整数据,表结构和字段信息如下: **字段设计** | **名称** | **类型** | **描述** | **示例** | **备注** | | ------------------ | -------- | ---------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | code | str | 合约代码 | 10001313.XSHG; | | | adj_date | date | 调整日期 | | | | contract_type | str | 合约类型。CO-认购期权,PO-认沽期权 | CO | | | ex_trading_code | int | 原交易代码 | 10001465Nan | 合约调整会产生新的交易代码 | | ex_name | str | 原合约简称 | 50ETF购10月2800豆粕购7月2400 | 合约调整会产生新的合约简称 | | ex_exercise_price | float | 原行权价 | | | | ex_contract_unit | int | 原合约单位 | | | | new_trading_code | str | 新交易代码 | | | | new_name | str | 新合约简称 | | | | new_exercise_price | float | 新行权价 | | | | new_contract_unit | int | 新合约单位 | | | | adj_reason | str | 调整原因 | | | | expire_date | str | 到期日 | 2018/10/24 | | | last_trade_date | str | 最后交易日 | 2018/10/24 | | | exercise_date | str | 行权日 | 2018/10/24 | 50ETF期权是欧式期权,行权日固定 | | delivery_date | str | 交收日期 | 2018/10/25 | | | position | int | 合约持仓 | | | - **filter(opt.OPT_ADJUSTMENT.code==code)**:指定筛选条件,通过opt.OPT_ADJUSTMENT.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询"10001313.XSHG "最新的期权合约调整记录。 +from jqdatasdk import opt +q=query(opt.OPT_ADJUSTMENT).filter(opt.OPT_ADJUSTMENT.code=='10001313.XSHG') +df=opt.run_query(q) +print(df) + + id code adj_date contract_type ex_trading_code \ +0 70 10001313.XSHG 2018-12-03 CO 510050C1812M02500 + + ex_name ex_exercise_price ex_contract_unit new_trading_code \ +0 50ETF购12月2500 2.5 10000 510050C1812A02500 + + new_name new_exercise_price new_contract_unit adj_reason \ +0 50ETF购12月2450A 2.45 10202 除息 + + expire_date last_trade_date exercise_date delivery_date position +0 2018-12-26 2018-12-26 2018-12-26 2018-12-27 107928 +``` + +OPT_DAILY_PREOPEN每日盘前静态文件 / 上市至今,盘前9:05更新 +``` + +from jqdatasdk import opt +opt.run_query(query(opt.OPT_DAILY_PREOPEN).filter(opt.OPT_DAILY_PREOPEN.code==code).limit(n)) +``` + + 描述:支持上证ETF期权 **参数:** - **query(opt.OPT_DAILY_PREOPEN)**:表示从opt.OPT_DAILY_PREOPEN这张表中查询期权每日盘前静态数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **opt.OPT_DAILY_PREOPEN**:收录了期权每日盘前静态数据,表结构和字段信息如下: **字段设计** | **名称** | **类型** | **描述** | **示例** | **备注** | +| --- | --- | --- | --- | --- | +| date | str | 交易日期 | 2018-11-09 | | +| code | str | 合约代码 | 10001313.XSHG | | +| trading_code | str | 合约交易代码 | 510050C1812M02500 | 保留,每个交易日仍然存在一 一对应关系 | +| name | str | 合约简称 | 50ETF购12月2500 | 保留,每个交易日仍然存在一 一对应关系 | +| exchange_code | str | 证券市场编码XSHG:上海证券交易所 | XSHG | | +| underlying_symbol | str | 标的代码 | 510050.XSHG | | +| underlying_name | str | 标的名称 | 50ETF | | +| underlying_exchange | str | 标的交易市场 | XSHG | | +| underlying_type | str | 标的品种类别,STOCK:股票;ETF:交易型开放式指数基金;FUTURE:期货 | F | | +| exercise_type | str | 期权履约方式:A 美式;E 欧式 | E | | +| contract_type | str | 合约类型。CO-认购期权,PO-认沽期权 | CO | | +| contract_unit | int | 合约单位 | 10000 | | +| exercise_price | float | 行权价格 | 2.5 | | +| list_date | str | 挂牌日期 | 2018/4/26 | | +| last_trade_date | str | 最后交易日 | 2018/12/26 | | +| exercise_date | str | 行权日 | 2018/12/26 | | +| delivery_date | str | 交收日期 | 2018/12/27 | | +| expire_date | str | 到期日 | 2018/12/26 | | +| contract_version | str | 合约版本号 | 0 | | +| position | int | 持仓量 | 13630 | | +| pre_close | float | 前收盘价 | 0.1391 | | +| pre_settle | float | 前结算价 | 0.1391 | | +| pre_close_underlying | float | 标的证券前收盘 | 2.537 | | +| is_limit | str | 涨跌幅限类型,“N”为有涨跌幅限制 | N | | +| high_limit | float | 涨停价 | 0.3928 | | +| low_limit | float | 跌停价 | 0.0001 | | +| margin_unit | float | 单位保证金 | 4435.4 | | +| margin_ratio_1 | float | 保证金计算比例参数一 | 12 | | +| margin_ratio_2 | float | 保证金计算比例参数二 | 7 | | +| round_lot | int | 整手数 | 1 | | +| limit_order_min | int | 单笔限价申报下限 | 1 | | +| limit_order_max | int | 单笔限价申报上限 | 30 | | +| market_order_min | int | 单笔市价申报下限 | 1 | | +| marker_order_max | int | 单笔市价申报上限 | 10 | | +| quote_change_min | float | 最小报价变动(数值) | 0.0001 | | +| contract_status | str | 合约状态信息 | 0000E | 该字段为8位字符串,左起每位表示特定的含义,无定义则填空格第1位:‘0’表示可开仓,‘1’表示限制卖出开仓(不.包括备兑开仓)和买入开仓。第2位:‘0’表示未连续停牌,‘1’表示连续停牌。(预留,暂填0)第3位:‘0’表示未临近到期日,‘1’表示距离到期日不足5个交易日。第4位:‘0’表示近期未做调整,‘1’表示最近5个交易日内合约发生过调整。第5位:‘A’表示当日新挂牌的合约,‘E’表示存续的合约 | + + - **filter(opt.OPT_DAILY_PREOPEN.code==code)**:指定筛选条件,通过opt.OPT_DAILY_PREOPEN.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询"10001313.XSHG "最新的期权每日盘前静态数据。 +from jqdatasdk import * +q=query(opt.OPT_DAILY_PREOPEN.code, + opt.OPT_DAILY_PREOPEN.trading_code, + opt.OPT_DAILY_PREOPEN.name, +opt.OPT_DAILY_PREOPEN.exercise_date,).filter(opt.OPT_DAILY_PREOPEN.code=='10001313.XSHG').order_by(opt.OPT_DAILY_PREOPEN.date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + code trading_code name exercise_date +0 10001313.XSHG 510050C1812A02500 50ETF购12月2450A 2018-12-26 +1 10001313.XSHG 510050C1812A02500 50ETF购12月2450A 2018-12-26 +2 10001313.XSHG 510050C1812A02500 50ETF购12月2450A 2018-12-26 +3 10001313.XSHG 510050C1812A02500 XD50ETF购12月2450A 2018-12-26 +4 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +5 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +6 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +7 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +8 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +9 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +``` + +### 期权行情数据 + +- **更新时间:期权日行情 上市至今,盘后15:00更新,24:00校对完成入库** +- **更新时间:上证ETF期权分钟行情 2017-01-01至今,盘后15:00更新,24:00校对完成入库** +- **更新时间:股指期权分钟行情 2019-12-24至今,盘后15:00更新,24:00校对完成入库** +- **更新时间:商品期权分钟行情 2019-12-02至今,盘后15:00更新,24:00校对完成入库** + +方法描述 / 更新时间及频率OPT_DAILY_PRICE期权日行情数据(查表)/ 上市至今,盘后20:10更新 +``` + +from jqdatasdk import opt +opt.run_query(query(opt.OPT_DAILY_PRICE).filter(opt.OPT_DAILY_PRICE.code==code).limit(n)) +``` + + 描述:提供期权每日开盘价,收盘价,最高价,最低价,成交量,成交额,涨跌幅,持仓量等日行情数据 **参数:** - **query(opt.OPT_DAILY_PRICE)**:表示从opt.OPT_DAILY_PRICE这张表中查询期权日行情数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **opt.OPT_DAILY_PRICE**:收录了期权日行情数据,表结构和字段信息如下: **字段设计** | **名称** | **类型** | **描述** | **示例** | **备注** | +| --- | --- | --- | --- | --- | +| code | str | 合约代码 | 10001313.XSHG;CU1901C46000.XSGE;SR903C4700.XZCE;M1707-C-2400.XDCE | 合约代码使用大写字母 | +| exchange_code | str | 证券市场编码, XSHG:上海证券交易所; XSGE:上海期货交易所; XZCE:郑州商品交易所; XDCE:大连商品交易所 | XSHG | | +| date | str | 交易日期 | 2018/10/25 | | +| pre_settle | float | 前结算价 | 0.1997 | | +| pre_close | float | 前收价 | 0.1997 | | +| open | float | 今开盘 | 0.1683 | | +| high | float | 最高价 | 0.2072 | | +| low | float | 最低价 | 0.1517 | | +| close | float | 收盘价 | 0.2035 | | +| change_pct_close | float | 收盘价涨跌幅(%) | | 收盘价/前结算价 | +| settle_price | float | 结算价 | 0.204 | 收盘价是一天交易的最后一个价,它是由于收盘前1分钟所有买卖盘集中撮合而成 ;结算价:原则上,期权合约的结算价格为该合约当日收盘集合竞价的成交价格。但是,如果当日收盘集合竞价未形成成交价格,或者成交价格明显不合理(比如价格倒挂),那么上交所就会考虑期权交易的多重影响因素,另行计算合约的结算价格。即根据同标的、同到期日、同类型其他行权价的期权合约隐含波动率,推算该合约隐含波动率,并以此计算该合约结算价。 | +| change_pct_settle | float | 结算价涨跌幅(%) | | 结算价/前结算价 | +| volume | float | 成交量(张) | 3126 | | +| money | float | 成交金额(元) | 5620827 | | +| position | int | 持仓量 | 5095 | | + + - **filter(opt.OPT_DAILY_PRICE.code==code)**:指定筛选条件,通过opt.OPT_DAILY_PRICE.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询'10001313.XSHG'最近10个交易日的日行情数据。 +from jqdatasdk import opt +q=query(opt.OPT_DAILY_PRICE).filter(opt.OPT_DAILY_PRICE.code=='10001313.XSHG').order_by(opt.OPT_DAILY_PRICE.date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + id code exchange_code date pre_settle pre_close \ +0 321643 10001313.XSHG XSHG 2018-12-05 0.0797 0.0797 +1 320840 10001313.XSHG XSHG 2018-12-04 0.0788 0.0788 +2 320046 10001313.XSHG XSHG 2018-12-03 0.0592 0.0604 +3 319315 10001313.XSHG XSHG 2018-11-30 0.0510 0.0510 +4 318593 10001313.XSHG XSHG 2018-11-29 0.0550 0.0550 +5 317860 10001313.XSHG XSHG 2018-11-28 0.0468 0.0468 +6 317132 10001313.XSHG XSHG 2018-11-27 0.0553 0.0553 +7 316364 10001313.XSHG XSHG 2018-11-26 0.0595 0.0595 +8 315590 10001313.XSHG XSHG 2018-11-23 0.0783 0.0783 +9 314816 10001313.XSHG XSHG 2018-11-22 0.0892 0.0892 + + open high low close change_pct_close settle_price \ +0 0.0673 0.0785 0.0664 0.0716 -10.1631 0.0716 +1 0.0780 0.0821 0.0701 0.0797 1.1421 0.0797 +2 0.0880 0.0919 0.0749 0.0788 33.1081 0.0788 +3 0.0500 0.0620 0.0497 0.0604 18.4314 0.0604 +4 0.0613 0.0629 0.0480 0.0510 -7.2727 0.0510 +5 0.0468 0.0577 0.0460 0.0550 17.5214 0.0550 +6 0.0589 0.0603 0.0455 0.0468 -15.3707 0.0468 +7 0.0612 0.0676 0.0506 0.0553 -7.0588 0.0553 +8 0.0784 0.0799 0.0589 0.0595 -24.0102 0.0595 +9 0.0923 0.0931 0.0718 0.0783 -12.2197 0.0783 + + change_pct_settle volume money position +0 -10.1631 44938.0 33451080.0 72717 +1 1.1421 55720.0 43805151.0 74468 +2 33.1081 106122.0 90415448.0 81186 +3 18.4314 146824.0 82267433.0 107928 +4 -7.2727 139922.0 78418357.0 122002 +5 17.5214 94165.0 49885293.0 97160 +6 -15.3707 83460.0 44309064.0 96531 +7 -7.0588 78105.0 46594632.0 75401 +8 -24.0102 63644.0 42066470.0 64213 +9 -12.2197 41977.0 33248317.0 46825 +``` + +get_price(1天/分钟)行情数据 +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None, panel=True, fill_paused=True) +``` + + - 获取一支或者多只期权数据:上证ETF期权、股指期权及商品期权的行情(按天或者按分钟),其中上证ETF期权从2017-01-01至今,股指期权从2019-12-24至今,商品期权从2019-12-02至今。 - frequency为非一天或者一分钟,请使用get_bars; - 取多支标的的数据时,不要获取交易时段不同的标的(例如:不同交易时间的期货标的),否则会报错; - 这里在使用时注意 end_date 的设置,不要引入未来的数据; - 标识时间为09:32:00的1分钟k线,其数据时间为09:31:00至09:31:59; - end_date:**当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取。**注意:当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 **关于停牌**: 因为此API可以获取多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充. 如想跳过, 请使用 skip_paused=True 参数, 注意当 panel=True 且获取多标的时不支持(panel结构需要索引对齐) +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + **参数** | **参数名称** | **参数说明** | **注释** | +| --- | --- | --- | +| security | 标的 | 可获取种类:股票、期货、基金、指数、期权 | +| start_date | 开始时间,不可与count同时使用。当'count'和'start_date'为None时, 默认值是 '2015-01-01 00:00:00' | 当指定frequency为minute时,如果只传入日期,则日内时间为当日的 00:00:00 | +| end_date | 结束时间,如无指定,默认为'2015-12-31 00:00:00'。当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 | 当指定frequency为minute时, 如果只传入日期, 则日内时间为当日的 00:00:00, 所以返回的数据不包括 end_date这天。 | +| count | 表示获取 end_date 之前几个 frequency 的数据,与start_date不可同时使用。 | 返回的结果集的行数, 即表示获取 end_date 之前count个 frequency 的数据 | +| frequency | 单位时间长度,即指定获取的时间频级为分钟级(minute)或日级(daily),也可以指定为 '3m','10d' 等 | daily'(同'1d'), 'minute'(同'1m'), [点击查看get_price和get_bars的合成逻辑。](https://www.joinquant.com/view/community/detail/cea095760a0583ce965964912580077e?type=1)如需5分钟,1小时等标准bar请使用get_bars | +| fields | 所获取数据的字段名称,即表头。默认是None(返回标准字段['open','close','high','low','volume','money']) | 可选择填入以下字段,字段说明可查阅下面fields表 ['open','close','low','high','volume','money','factor', 'high_limit','low_limit','avg','pre_close','paused','open_interest'], open_interest为期货持仓量 | +| skip_paused | 是否跳过不交易日期(含:停牌/未上市/退市后的日期) | 如果不跳过, 停牌时会使用停牌前的数据填充,上市前或者退市后数据都为 nan。 | +| fill_paused | 对于停牌股票的价格处理,默认为True | 默认为True,用pre_close价格填充);False 表示使用NAN填充停牌的股票价格。 | +| fq | 复权选项,默认为前复权(fq='pre') | pre':前复权 / 'none':不复权, 返回实际价格/'post': 后复权 | +| panel | 指定返回的数据格式为panel | 默认为True;指定panel=False时返回dataframe格式; 如本地pandas版本大于0.25将强制返回dataframe详见案例 | + + **fields**内各字段属性 | **字段名称** | **中文名称** | **注释** | +| --- | --- | --- | +| open | 时间段开始时价格 | | +| close | 时间段结束时价格 | | +| low | 时间段中的最低价 | | +| high | 时间段中的最高价 | | +| volume | 时间段中的成交的股票数量 | | +| money | 时间段中的成交的金额 | | +| factor | pre':前复权(默认)/None:不复权,返回实际价格/'post':后复权 | 前(后)复权数据=价格×前(后)复权因子; 前(后)复权后的成交量=成交量 / 前(后)复权因子; 成交额不处理 | +| high_limit | 时间段中的涨停价 | | +| low_limit | 时间段中的跌停价 | | +| avg | 这段时间的平均价 | (1)以"天"为时间单位 股票:[成交额/成交量] 期货:从CTP获取行情,[成交额/(成交量×合约乘数)]; (2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 | +| pre_close | 前一个单位时间结束时的价格,按天则是前一天的收盘价 | 期货:pre_close--前一天结算);建议使用get_extras获取结算价;在分钟频率下pre_close=open | +| paused | bool值,股票是否停牌; | 停牌时open/close/low/high/pre_close;都等于停牌前的收盘价, volume=money=0 | +| open_interest | 期权持仓量 | | + + **返回** - 请注意, 为了方便比较一只期权的多个属性, 同时也满足对比多只期权的一个属性的需求, 我们在security参数是**一只期权和多只期权时返回的结构完全不一样 (默认panel=True时)** **代码示例** **获取一支期权** +``` + +# 获得锌期权的2021年03月02日 23:30:00-2021年03月02日 23:35:00的分钟数据 +df = get_price('ZN2106P23800.XSGE',start_date='2021-03-02 23:30:00', end_date='2021-03-02 23:35:00', frequency='1m') +# 返回[pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是行情字段名字 +print(df[:5]) + open close high low volume money +2021-03-02 23:30:00 2813.0 2813.0 2813.0 2813.0 0.0 0.0 +2021-03-02 23:31:00 2813.0 2813.0 2813.0 2813.0 0.0 0.0 +2021-03-02 23:32:00 2813.0 2813.0 2813.0 2813.0 0.0 0.0 +2021-03-02 23:33:00 2813.0 2813.0 2813.0 2813.0 0.0 0.0 +2021-03-02 23:34:00 2813.0 2813.0 2813.0 2813.0 0.0 0.0 +``` + + **获取多只期权** +``` + +#获得两只锌期权在2018-08-01 2021-02-25 10:00:00至2021-02-25 10:05:00的分钟数据,返回[pandas.Panel]对象 +panel = get_price(['ZN2106P23600.XSGE','ZN2106P23800.XSGE'],start_date='2021-02-25 10:00:00', end_date='2021-02-25 10:05:00', frequency='1m') +# 获取开盘价的[pandas.DataFrame],行索引是[datetime.datetime]对象, 列索引是期权代号 +df=panel['open'] +print(df) + ZN2106P23600.XSGE ZN2106P23800.XSGE +2021-02-25 10:00:00 2561.0 2723.0 +2021-02-25 10:01:00 2561.0 2723.0 +2021-02-25 10:02:00 2561.0 2723.0 +2021-02-25 10:03:00 2561.0 2723.0 +2021-02-25 10:04:00 2561.0 2723.0 +2021-02-25 10:05:00 2561.0 2723.0 +``` + +get_bars时间周期的行情数据(支持时间周期:'1m','5m', '15m', '30m', '60m', '120m', '1w', '1M') +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None,df=True) +``` + + 获取各种时间周期的bar数据,bar的分割方式与主流股票软件相同, 同时还支持返回当前时刻所在 bar 的数据。 **参数** - security: 期权代码,支持单个及多个标的 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流股票软件类似,期货的bar各平台也许稍微有差异,我们与文华接近; 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', 'open_interest'(期货持仓量),factor(复权因子)。 - include_now: 取值True 或者False。 表示是否包含end_dt所在的bar, 比如end_dt指定为9:38:00,unit参数为5m, 如果 include_now=True,则返回的最后一条bar为9:35:00-9:38:00这个 bar,否则返回的最后一条bar为09:30:00-09:35:00的bar。 - end_dt:查询的截止时间,默认最新的时间。注意:当end_dt指定为当天尚未结束的交易时间时,会自动填充为上一个交易日收盘的时间 - fq_ref_date:复权基准日期,为None时为不复权数据。 - 如果用户输入 fq_ref_date = None, 则获取到的是不复权的数据 - 如果用户想获取后复权的数据,可以将fq_ref_date 指定为一个很早的日期,比如 datetime.date(2000, 1, 1) - 定点复权,以某一天价格点位为参照物,进行的前复权或后复权。设置为datetime.datetime.now()即返回前复权数据 ; - df:默认为True,指定返回数据为dataframe结构;当df=False的时候,传入单个标的时,返回一个np.ndarray,多个标的返回一个字典,key是code,value是np.array **返回** 返回一个pandas.dataframe对象,可以按任意周期返回期权的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 **示例** +``` + +#获取'10001313.XSHG'指定时间周期为5m的期权行情数据 +df=get_bars('10001313.XSHG',10,'5m',fields=['date','open','high','low','close'],end_dt='2018-12-21 15:00:00') +print(df) + date open high low close +0 2018-12-21 14:10:00 0.0019 0.0022 0.0018 0.0021 +1 2018-12-21 14:15:00 0.0022 0.0023 0.0019 0.0019 +2 2018-12-21 14:20:00 0.0019 0.0022 0.0019 0.0022 +3 2018-12-21 14:25:00 0.0022 0.0022 0.0020 0.0020 +4 2018-12-21 14:30:00 0.0021 0.0021 0.0020 0.0020 +5 2018-12-21 14:35:00 0.0021 0.0023 0.0021 0.0022 +6 2018-12-21 14:40:00 0.0021 0.0022 0.0019 0.0020 +7 2018-12-21 14:45:00 0.0020 0.0021 0.0018 0.0019 +8 2018-12-21 14:50:00 0.0019 0.0020 0.0018 0.0019 +9 2018-12-21 14:55:00 0.0018 0.0019 0.0017 0.0018 +``` + +``` + +#获取'10001312.XSHG','10001313.XSHG'指定时间周期为5m的期权行情数据 +df=get_bars(['10001312.XSHG','10001313.XSHG'],4,'5m',fields=['date','open','high','low','close'],end_dt='2018-12-21 15:00:00') +print(df) + + date open high low close +10001312.XSHG 0 2018-09-26 14:45:00 0.0001 0.0001 0.0001 0.0001 + 1 2018-09-26 14:50:00 0.0001 0.0001 0.0001 0.0001 + 2 2018-09-26 14:55:00 0.0001 0.0001 0.0001 0.0001 + 3 2018-09-26 15:00:00 0.0001 0.0001 0.0001 0.0001 +10001313.XSHG 0 2018-12-21 14:40:00 0.0021 0.0022 0.0019 0.0020 + 1 2018-12-21 14:45:00 0.0020 0.0021 0.0018 0.0019 + 2 2018-12-21 14:50:00 0.0019 0.0020 0.0018 0.0019 + 3 2018-12-21 14:55:00 0.0018 0.0019 0.0017 0.0018 +``` + +get_call_auction获取集合竞价数据 +``` + +get_call_auction(security, start_date, end_date, fields=None) +``` + + 支持股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)和上证ETF期权(2017年至今)的集合竞价数据。当日的集合竞价数据于下午15点更新。为了防止返回数据量过大, 我们每次最多返回5000行。 **参数**: - security: **上证ETF期权(2017年至今)** - start_date: 开始日期,YYYY-MM-DD格式 - end_date: 结束日期,YYYY-MM-DD格式 - fields: 选择要获取的行情数据字段,参数为list格式,默认为None,返回全部字段。 **返回值:** 返回指定时间区间标的集合竞价tick数据,返回字段结果如下: | 字段名 | 说明 | 字段类型 | | :-------- | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价(不复权) | float | | volume | 累计成交量(股) | float | | money | 累计成交额(元) | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **示例:** +``` + +#获取50ETF期权2017-08-21至2017-08-21期间的集合竞价数据 +df=get_call_auction('510050.XSHG','2017-08-21','2017-08-21')[:5] +print(df) + code time current volume money a1_p \ +0 510050.XSHG 2019-01-02 09:25:00 2.29 4172900.0 9560114.0 2.29 +1 510050.XSHG 2019-01-03 09:25:00 2.25 988300.0 2228617.0 2.25 +2 510050.XSHG 2019-01-04 09:25:00 2.25 5466622.0 12288966.0 2.25 +3 510050.XSHG 2019-01-07 09:25:00 2.32 17443923.0 40469901.0 2.32 +4 510050.XSHG 2019-01-08 09:25:00 2.31 957500.0 2208953.0 2.31 + + a1_v a2_p a2_v a3_p ... b1_p b1_v b2_p \ +0 21000.0 2.29 93500.0 2.29 ... 2.29 860400.0 2.29 +1 560700.0 2.26 28700.0 2.26 ... 2.25 121400.0 2.25 +2 974600.0 2.25 1399990.0 2.25 ... 2.25 383478.0 2.25 +3 240500.0 2.32 53800.0 2.32 ... 2.32 5882077.0 2.32 +4 656500.0 2.31 278300.0 2.31 ... 2.31 10500.0 2.31 + + b2_v b3_p b3_v b4_p b4_v b5_p b5_v +0 2744600.0 2.29 1279500.0 2.29 1698900.0 2.29 115900.0 +1 675600.0 2.25 266100.0 2.25 372200.0 2.25 204800.0 +2 216800.0 2.25 536600.0 2.25 679500.0 2.24 50500.0 +3 6451500.0 2.32 3491800.0 2.32 2439900.0 2.32 1939100.0 +4 64500.0 2.30 24400.0 2.30 3200.0 2.30 74300.0 + +[5 rows x 25 columns] +``` + +get_ticks (机构)tick数据 / 上证ETF期权:2017-01-01至今,股指期权:2019-12-24至今,商品期权:2019-12-02至今 +``` + +get_ticks(security, start_dt, end_dt, count, fields,df) +``` + + **期权部分**, 支持期权tick数据,每0.5s一次快照。其中上交所ETF期权从2017-01-01开始,提供买卖五档;商品期权从2019-12-02开始,提供买卖一档。 **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 期权代码;如security='10001979.XSHG' #上交所ETF期权,上海证券交易所;security='CU2001C42000.XSGE'#铜期权,上海期货交易所; security='SR003C5600.XZCE' #白糖期权,郑州商品交易所; security='M2005-P-2400.XDCE' #豆粕期权,大连商品交易所; - start_dt: 开始日期 - end_dt: 结束日期 - count: 取出指定时间区间内前多少条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下: - skip: 默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据。 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray **期权tick返回结果:** | 字段名 | 说明 | 字段类型 | | ----------- | -------------- | -------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(张) | float | | money | 累计成交额(元) | float | | position | 持仓量(张) | float | | a1_p | 一档卖价 | float | | a1_v | 一档卖量 | float | | ... | | | | a5_p | 五档卖价 | float | | a5_v | 五档卖量 | float | | b1_p | 一档买价 | float | | b1_v | 一档买量 | float | | ... | | | | b5_p | 五档买价 | float | | b5_v | 五档买量 | float | **期权tick数据示例**: +``` + +# 获取上交所ETF期权('10001313.XSHG')2018-12-20 10:00:00往前8个时间单位 +df=get_ticks('10001313.XSHG',end_dt='2018-12-20 10:00:00',count=8) +print(df) + time current high low volume money \ +0 2018-12-20 09:59:37.740 0.0041 0.0076 0.004 11754.0 662475.03 +1 2018-12-20 09:59:39.240 0.0042 0.0076 0.004 11774.0 663332.00 +2 2018-12-20 09:59:42.740 0.0043 0.0076 0.004 11784.0 663770.69 +3 2018-12-20 09:59:45.240 0.0043 0.0076 0.004 11798.0 664384.85 +4 2018-12-20 09:59:46.240 0.0042 0.0076 0.004 11808.0 664813.33 +5 2018-12-20 09:59:51.712 0.0042 0.0076 0.004 11812.0 664984.72 +6 2018-12-20 09:59:55.232 0.0042 0.0076 0.004 11822.0 665413.21 +7 2018-12-20 09:59:55.732 0.0042 0.0076 0.004 11839.0 666141.63 + + position a1_p a1_v a2_p ... b1_p b1_v b2_p b2_v b3_p \ +0 93502.0 0.0043 37.0 0.0044 ... 0.0041 10.0 0.0040 10.0 0.0039 +1 93510.0 0.0043 37.0 0.0044 ... 0.0042 42.0 0.0041 31.0 0.0039 +2 93520.0 0.0043 55.0 0.0044 ... 0.0042 42.0 0.0040 10.0 0.0039 +3 93534.0 0.0043 81.0 0.0044 ... 0.0042 42.0 0.0040 22.0 0.0039 +4 93534.0 0.0043 81.0 0.0044 ... 0.0042 40.0 0.0040 32.0 0.0039 +5 93534.0 0.0043 81.0 0.0044 ... 0.0042 46.0 0.0040 32.0 0.0039 +6 93534.0 0.0043 81.0 0.0044 ... 0.0042 36.0 0.0041 12.0 0.0040 +7 93534.0 0.0043 81.0 0.0044 ... 0.0042 19.0 0.0041 12.0 0.0040 + + b3_v b4_p b4_v b5_p b5_v +0 62.0 0.0038 32.0 0.0037 30.0 +1 62.0 0.0038 42.0 0.0037 30.0 +2 94.0 0.0038 32.0 0.0037 30.0 +3 72.0 0.0038 42.0 0.0037 30.0 +4 62.0 0.0038 42.0 0.0037 30.0 +5 62.0 0.0038 32.0 0.0037 40.0 +6 50.0 0.0039 62.0 0.0038 32.0 +7 50.0 0.0039 62.0 0.0038 32.0 + +[8 rows x 27 columns] +``` + +### 期权交易统计数据 + +方法描述OPT_TRADE_RANK_STK沪深ETF期权交易和持仓排名统计 / 上市至今,下一交易日盘前8:05更新 +``` + +from jqdatasdk import opt +opt.run_query(query(opt.OPT_TRADE_RANK_STK).filter(opt.OPT_TRADE_RANK_STK.underlying_symbol==underlying_symbol).limit(n)) +``` + + 描述:统计沪深ETF期权每日最活跃三个合约的交易排名和持仓量最大三个合约的持仓排名情况 **参数:** - **query(opt.OPT_TRADE_RANK_STK)**:表示从opt.OPT_TRADE_RANK_STK这张表中查询沪深ETF期权交易和持仓排名统计数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **opt.OPT_TRADE_RANK_STK**:收录了沪深ETF期权交易和持仓排名统计数据,表结构和字段信息如下: **字段设计** | **名称** | **类型** | **描述** | **示例** | +| --- | --- | --- | --- | +| underlying_symbol | str | 标的代码 | 510050.XSHG | +| underlying_name | str | 标的简称 | 华夏上证50ETF | +| underlying_exchange | str | 证券市场编码:XSHG-上海证券交易所; | XSHG | +| date | str | 交易日期 | 2018-10-25 | +| rank | int | 排名 | 1 | +| volume | int | 数量(张) | 184891 | +| option_agency | str | 期权经营机构 | 华泰证券 | +| rank_type | str | 排名统计类型601001:最活跃三个合约的认购交易排名;601002:最活跃三个合约的认沽交易排名;601003:持仓最大3个合约的认购持仓量排名;601004:持仓最大3个合约的认沽持仓量排名 | 601001 | + + - **filter(opt.OPT_TRADE_RANK_STK.underlying_symbol==underlying_symbol)**:指定筛选条件,通过opt.OPT_TRADE_RANK_STK.underlying_symbol==underlying_symbol可以指定你想要查询的标的代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询最活跃三个合约的认购交易排名(601001) +from jqdatasdk import * +q=query(opt.OPT_TRADE_RANK_STK).filter(opt.OPT_TRADE_RANK_STK.rank_type==601001).order_by(opt.OPT_TRADE_RANK_STK.date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + id underlying_symbol underlying_name underlying_exchange date \ +0 41627 510050.XSHG 50ETF XSHG 2021-03-18 +1 41671 510300.XSHG 华泰柏瑞沪深300ETF XSHG 2021-03-18 +2 41628 510050.XSHG 50ETF XSHG 2021-03-18 +3 41629 510050.XSHG 50ETF XSHG 2021-03-18 +4 41630 510050.XSHG 50ETF XSHG 2021-03-18 +5 41631 510050.XSHG 50ETF XSHG 2021-03-18 +6 41647 159919.XSHE 嘉实沪深300ETF XSHE 2021-03-18 +7 41648 159919.XSHE 嘉实沪深300ETF XSHE 2021-03-18 +8 41649 159919.XSHE 嘉实沪深300ETF XSHE 2021-03-18 +9 41670 510300.XSHG 华泰柏瑞沪深300ETF XSHG 2021-03-18 + + rank volume option_agency rank_type +0 2 389167 广发证券 601001 +1 3 171957 南华期货 601001 +2 4 136430 中信证券 601001 +3 5 115294 招商证券 601001 +4 1 405170 华泰证券 601001 +5 3 152924 南华期货 601001 +6 2 44316 广发证券 601001 +7 3 27527 中信证券 601001 +8 5 21805 招商证券 601001 +9 1 375776 华泰证券 601001 +``` + +OPT_EXERCISE_INFO期权行权交收信息 / 上市至今,每日10:45更新 +``` + +from jqdatasdk import opt +opt.run_query(query(opt.OPT_EXERCISE_INFO).filter(opt.OPT_EXERCISE_INFO.underlying_symbol==underlying_symbol).limit(n)) +``` + + 描述:统计上证50ETF期权在各个行权日的交收情况,一定程度上也代表了用户对当前市场的风险偏好 **参数:** - **query(opt.OPT_EXERCISE_INFO)**:表示从opt.OPT_EXERCISE_INFO这张表中查询期权行权交收信息数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **opt.OPT_EXERCISE_INFO**:收录了期权行权交收信息数据,表结构和字段信息如下: **字段设计** | 名称 | 类型 | 描述 | 示例 | |-------------------|-----|----------------------|-------------| | underlying_symbol | str | 标的代码 | 510050.XSHG | | underlying_name | str | 标的名称 | | | exercise_date | str | 行权日 | 2018-10-24 | | constract_type | str | 合约类型,CO-认购期权,PO-认沽期权 | CO | | exercise_number | int | 行权数量 | 12520 | - **filter(opt.OPT_EXERCISE_INFO.underlying_symbol==underlying_symbol)**:指定筛选条件,通过opt.OPT_EXERCISE_INFO.underlying_symbol==underlying_symbol可以指定你想要查询的标的代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询华夏上证50ETF("510050.XSHG")最新的期权行权交收信息数据。 +q=query(opt.OPT_EXERCISE_INFO).filter(opt.OPT_EXERCISE_INFO.underlying_symbol=='510050.XSHG').order_by(opt.OPT_EXERCISE_INFO.exercise_date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + id underlying_symbol underlying_name exercise_date contract_type exercise_number +0 86 510050.XSHG 50ETF 2018-11-28 PO 14419 +1 85 510050.XSHG 50ETF 2018-11-28 CO 17330 +2 84 510050.XSHG 50ETF 2018-10-24 PO 21933 +3 83 510050.XSHG 50ETF 2018-10-24 CO 12520 +4 82 510050.XSHG 50ETF 2018-09-26 PO 9550 +5 81 510050.XSHG 50ETF 2018-09-26 CO 20286 +6 80 510050.XSHG 50ETF 2018-08-22 PO 10228 +7 79 510050.XSHG 50ETF 2018-08-22 CO 10208 +8 78 510050.XSHG 50ETF 2018-07-25 PO 5754 +9 77 510050.XSHG 50ETF 2018-07-25 CO 19632 +``` + +OPT_RISK_INDICATOR期权风险指标数据 / 上市至今,下一交易日盘前8:05更新 +``` + +from jqdatasdk import opt +opt.run_query(query(opt.OPT_RISK_INDICATOR).filter(opt.OPT_RISK_INDICATOR.code==code).limit(n)) +``` + + 描述:统计各期权合约每日的风险指标,帮助用户更科学的衡量期权合约的价值变动 **参数:** - **query(opt.OPT_RISK_INDICATOR)**:表示从opt.OPT_RISK_INDICATOR这张表中查询期权风险指标数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) - **opt.OPT_RISK_INDICATOR**:收录了期权风险指标数据,表结构和字段信息如下: **字段设计** | **名称** | **类型** | **描述** | **示例** | **备注** | +| --- | --- | --- | --- | --- | +| code | str | 合约代码 | 10001313.XSHG;CU1901C46000.XSGE;SR903C4700.XZCE;M1707-C-2400.XDCE | 合约代码使用大写字母 | +| exchange_code | str | 证券市场编码 | XSHG | | +| date | str | 交易日期 | 2018-10-19 | | +| delta | float | DELTA | 0.906 | **Delta=期权价格变化/期货变化** | +| theta | float | THETA | -0.249 | **Theta=期权价格的变化/距离到期日时间的变化** | +| gamma | float | GAMMA | 0.669 | **Gamma=delta的变化/期货价格的变化** | +| vega | float | VEGA | 0.138 | **Vega=期权价格变化/波动率的变化** | +| rho | float | RHO | 0.213 | **Rho=期权价格的变化/无风险利率的变化** | + + - **filter(opt.OPT_RISK_INDICATOR.code==code)**:指定筛选条件,通过opt.OPT_RISK_INDICATOR.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 - **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** - 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询上证50ETF期权('10001313.XSHG')最新的期权风险指标数据。 +from jqdatasdk import * +q=query(opt.OPT_RISK_INDICATOR).filter(opt.OPT_RISK_INDICATOR.code=='10001313.XSHG').order_by(opt.OPT_RISK_INDICATOR.date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + id code exchange_code date delta theta gamma \ +0 320797 10001313.XSHG XSHG 2018-12-05 0.609 -0.488 2.875 +1 83541 10001313.XSHG XSHG 2018-12-04 0.638 -0.471 2.730 +2 83540 10001313.XSHG XSHG 2018-12-03 0.610 -0.490 2.607 +3 83539 10001313.XSHG XSHG 2018-11-30 0.467 -0.519 2.278 +4 83538 10001313.XSHG XSHG 2018-11-29 0.419 -0.484 2.266 +5 83537 10001313.XSHG XSHG 2018-11-28 0.447 -0.466 2.341 +6 83536 10001313.XSHG XSHG 2018-11-27 0.391 -0.449 2.198 +7 83535 10001313.XSHG XSHG 2018-11-26 0.422 -0.470 2.108 +8 83534 10001313.XSHG XSHG 2018-11-23 0.418 -0.468 1.917 +9 83533 10001313.XSHG XSHG 2018-11-22 0.497 -0.477 1.929 + + vega rho +0 0.228 0.083 +1 0.229 0.091 +2 0.239 0.090 +3 0.263 0.078 +4 0.261 0.072 +5 0.270 0.080 +6 0.264 0.072 +7 0.275 0.080 +8 0.287 0.087 +9 0.302 0.108 +``` + +### 期权列表 + +方法描述 / 更新时间及频率期权列表金融期权、商品期权 [**金融期权**](https://www.joinquant.com/help/api/help#Option:%E6%9C%9F%E6%9D%83%E5%88%97%E8%A1%A8):1. 上海证券交易所:50ETF期权、 沪深300ETF 2.中国金融期货交易所: 沪深300股指期权、 **中证1000股指期权** [**商品期权**](https://www.joinquant.com/help/api/help#Option:%E6%9C%9F%E6%9D%83%E5%88%97%E8%A1%A8):上海期货交易所、郑州商品交易所、大连商品交易所 ## 债券 + +### 债券概况 + +- **更新时间:上市至今,每日19:00、22:00更新** + +表名描述债券使用说明债券使用说明 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.BOND_BASIC_INFO).filter(bond.BOND_BASIC_INFO.code == '131801').limit(n)) +``` + + 获取债券基本信息数据、债券票面利率数据和国债逆回购日行情数据 **参数:** + **query(bond.BOND_BASIC_INFO)**:表示从bond.BOND_BASIC_INFO 这张表中查询债券基本信息数据,其中bond是库名,BOND_BASIC_INFO是表名。bond库中的表都可以使用run_query方法调用,表名如下所示: | **表名** | **描述** | | ---------------- | -------------------- | | BOND_BASIC_INFO | 债券基本信息数据 | | BOND_COUPON | 债券票面利率数据 | | REPO_DAILY_PRICE | 国债逆回购日行情数据 | 在查询表数据时还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2,多个字段用逗号分隔进行提取;query函数的更多用法详见: **[query简易教程](https://www.joinquant.com/view/community/detail/16411)** + **filter(bond.BOND_BASIC_INFO.code == '131801')**:指定筛选条件,通过bond.BOND_BASIC_INFO.code == '131801' 可以指定债券代码来获取债券基本信息数据;除此之外,还可以对表中其他字段指定筛选条件,如filter(bond.BOND_BASIC_INFO.exchange=='上交所'),表示交易市场在上交所的所有债券基本信息数据;多个筛选条件用英文逗号分隔。 + **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** + 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. **为了防止返回数据量过大, 我们每次最多返回5000行** 2. 不能进行连表查询,即同时查询多张表的数据 BOND_BASIC_INFO债券基本信息 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.BOND_BASIC_INFO ).limit(n)) +``` + + **数据字典:** | 名称 | 类型 | 描述 | | ------------------- | ----- | ---------------------------------------------------------- | | code | str | 债券代码(不加后缀) | | short_name | str | 债券简称 | | short_name_spelling | str | 债券简称拼音 | | full_name | str | 债券全称 | | list_status_id | int | 上市状态编码,见下表上市状态编码对照表 | | list_status | str | 上市状态 | | issuer | str | 发行人 | | company_code | str | 发行人股票代码 | | exchange_code | int | 交易市场编码,见下表交易市场编码 | | exchange | str | 交易市场 | | currency_id | str | 货币代码。CNY-人民币 | | coupon_type_id | int | 计息方式编码,见下表计息方式编码 | | coupon_type | str | 计息方式 | | coupon_frequency | int | 付息频率,单位:月/次。按年付息是12月/次;半年付息是6月/次 | | payment_type_id | int | 兑付方式编码,见下表兑付方式编码表 | | payment_type | str | 兑付方式 | | par | float | 债券面值(元) | | repayment_period | int | 偿还期限(月) | | bond_type_id | int | 债券分类编码。 | | bond_type | str | 债券分类 | | bond_form_id | int | 债券形式编码,见下表债券形式编码表 | | bond_form | str | 债券形式 | | list_date | date | 上市日期 | | delist_Date | date | 退市日期 | | interest_begin_date | date | 起息日 | | maturity_date | date | 到期日 | | interest_date | str | 付息日 | | last_cash_date | date | 最终兑付日 | | cash_comment | str | 兑付说明 | **编码对照表:** | 上市状态编码 | 上市状态 | | ------------ | ------------ | | 301001 | 正常上市 | | 301002 | ST | | 301003 | *ST | | 301004 | 暂停上市 | | 301006 | 终止上市 | | 301007 | 已发行未上市 | | 301008 | 预披露 | | 301009 | 未过会 | | 301010 | 发行失败 | | 301011 | 暂缓发行 | | 301099 | 其他 | | **交易市场编码** | **交易市场** | | ---------------- | ---------------------- | | 705001 | 上交所 | | 705002 | 深交所主板 | | 705003 | 深交所中小板 | | 705004 | 深交所创业板 | | 705005 | 上交所综合业务平台 | | 705006 | 深交所综合协议交易平台 | | 705007 | 银行间债券市场 | | 705008 | 商业银行柜台市场 | | 705009 | 港交所创业板 | | 705010 | 新加坡证券交易所 | | 705011 | 拟上市 | | 705012 | 产权交易市场 | | 705013 | 美国NASDAQ证券交易所 | | 705014 | 港交所主板 | | 705015 | 股份报价系统 | | 705016 | 代办转让 | | 705017 | 上交所CDR | | 705018 | 深交所存托凭证 | | 705099 | 其他 | | 计息方式编码 | 计息方式 | | ------------ | ------------ | | 701001 | 利随本清 | | 701002 | 固定利率附息 | | 701003 | 递进利率 | | 701004 | 浮动利率 | | 701005 | 贴现 | | 701006 | 未公布 | | 701007 | 无利率 | | 701008 | 累进利率 | | 兑付方式编码 | 兑付方式 | | ------------ | ------------ | | 702001 | 到期一次付息 | | 702002 | 按年付息 | | 702003 | 按半年付息 | | 702004 | 按季付息 | | 702005 | 按月付息 | | 702006 | 未公布 | | 702099 | 其他 | | 债券分类编码 | 债券分类 | | ------------ | ---------------------- | | 703001 | 短期融资券 | | 703002 | 质押式回购 | | 703003 | 私募债 | | 703004 | 企业债 | | 703005 | 次级债 | | 703006 | 一般金融债 | | 703007 | 中期票据 | | 703008 | 资产支持证券 | | 703009 | 小微企业扶持债 | | 703010 | 地方政府债 | | 703011 | 公司债 | | 703012 | 可交换私募债 | | 703013 | 可转债 | | 703014 | 集合债券 | | 703015 | 国际机构债券 | | 703016 | 政府支持机构债券 | | 703017 | 集合票据 | | 703018 | 外国主权政府人民币债券 | | 703019 | 央行票据 | | 703020 | 政策性金融债 | | 703021 | 国债 | | 703022 | 非银行金融债 | | 703023 | 可分离可转债 | | 703024 | 国库定期存款 | | 703025 | 可交换债 | | 703026 | 特种金融债 | | 债券形式编码 | 债券形式 | | ------------ | ---------- | | 704001 | 记账式 | | 704002 | 实物式 | | 704003 | 储蓄电子式 | | 704004 | 凭证式 | | 704005 | 未公布 | **示例:** +``` + +# 查询2019年4月14日的债券基本信息 +from jqdatasdk import * + +df = bond.run_query(query(bond.BOND_BASIC_INFO).filter(bond.BOND_BASIC_INFO.exchange == '上交所').limit(5)) +print(df) + +# 输出 + + id code short_name full_name list_status_id \ +0 2 131800 16东莞次 中国中投证券-东莞证券融出资金债权1号资产支持专项计划次级资产支持证券 301006 +1 3 131801 花呗01A1 德邦花呗第一期消费贷款资产支持专项计划优先级资产支持证券 301006 +2 4 131802 花呗01A2 德邦花呗第一期消费贷款资产支持专项计划次优先级资产支持证券 301006 +3 5 131803 花呗01B 德邦花呗第一期消费贷款资产支持专项计划次级资产支持证券 301006 +4 6 131805 海尔优B 海尔保理一期资产支持专项计划优先B级资产支持证券 301006 + + list_status issuer company_code exchange_code exchange \ +0 终止上市 东莞证券股份有限公司 S0001.XSHG 705001 上交所 +1 终止上市 重庆市阿里小微小额贷款有限公司 None 705001 上交所 +2 终止上市 重庆市阿里小微小额贷款有限公司 None 705001 上交所 +3 终止上市 重庆市阿里小微小额贷款有限公司 None 705001 上交所 +4 终止上市 东吴证券股份有限公司 601555.XSHG 705001 上交所 + + ... bond_type bond_form_id bond_form list_date delist_Date \ +0 ... 资产支持证券 704001 记账式 2016-07-25 2019-06-18 +1 ... 资产支持证券 704001 记账式 2016-07-12 2017-06-13 +2 ... 资产支持证券 704001 记账式 2016-07-12 2017-06-13 +3 ... 资产支持证券 704001 记账式 2016-07-12 2017-06-13 +4 ... 资产支持证券 704001 记账式 2016-07-07 2016-12-02 + + interest_begin_date maturity_date interest_date last_cash_date \ +0 2016-06-17 2019-06-18 None 2019-06-18 +1 2016-06-07 2017-06-15 None 2017-06-15 +2 2016-06-07 2017-06-15 None 2017-06-15 +3 2016-06-07 2017-06-15 None 2017-06-15 +4 2016-06-08 2016-12-06 None 2016-12-06 + + cash_comment +0 None +1 None +2 None +3 None +4 None + +[5 rows x 29 columns] +``` + +BOND_COUPON债券票面利率 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.BOND_COUPON).limit(n)) +``` + + **数据字典:** | 名称 | 类型 | 描述 | | ---------------------- | -------- | --------------------------------------- | | code | str | 债券代码(不加后缀) | | short_name | str | 债券简称 | | pub_date | date | 信息发布日期 | | coupon_type_id | int | 计息方式编码,见下表计息方式编码 | | exchange_code | int |证券市场编码(新增字段) | | exchange | str | 证券市场(新增字段) | | coupon_type | str | 计息方式 | | coupon | float(5) | 票面年利率(%) | | coupon_start_date | date | 票面利率起始适用日期 | | coupon_end_date | date | 票面利率终止适用日期 | | reference_rate | float | 浮息债参考利率(%) | | reference_rate_comment | str | 浮息债参考利率说明 | | margin_rate | float | 浮息债利差(%)-(等于票面利率减参考利率) | | coupon_upper_limit | float | 利率上限 | | coupon_lower_limit | float | 利率下限 | **编码对照表:** | 计息方式编码 | 计息方式 | | ------------ | ------------ | | 701001 | 利随本清 | | 701002 | 固定利率附息 | | 701003 | 递进利率 | | 701004 | 浮动利率 | | 701005 | 贴现 | | 701006 | 未公布 | | 701007 | 无利率 | 示例 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.BOND_COUPON)) +print(df[:4]) + + id code short_name pub_date exchange_code exchange coupon_type_id \ +0 1 123082 15国君C1 2015-04-28 705001 上交所 701002 +1 2 155788 19中航G2 2019-10-25 705001 上交所 701002 +2 3 125496 14蓉家投 2015-02-12 705001 上交所 701002 +3 4 125496 14蓉家投 2015-02-12 705001 上交所 701002 + + coupon_type coupon coupon_start_date coupon_end_date reference_rate \ +0 固定利率附息 5.70 2015-04-28 2018-04-27 NaN +1 固定利率附息 4.19 2019-10-28 2022-10-27 NaN +2 固定利率附息 10.00 2017-02-12 2018-02-11 NaN +3 固定利率附息 10.00 2016-02-12 2017-02-11 NaN + + reference_rate_comment margin_rate coupon_upper_limit coupon_lower_limit +0 None NaN None None +1 None NaN None None +2 None NaN None None +3 None NaN None None +``` + +``` + +# 获取15建元2A3的债券票面利率 +from jqdatasdk import * +df=bond.run_query(query(bond.BOND_COUPON).filter(bond.BOND_COUPON.code=='1589355')) +print(df[:4]) + + id code short_name pub_date exchange_code exchange \ +0 1954 1589355 15建元2A3 2015-12-23 705007 银行间债券市场 +1 1953 1589355 15建元2A3 2016-01-19 705007 银行间债券市场 +2 1952 1589355 15建元2A3 2016-02-19 705007 银行间债券市场 +3 1951 1589355 15建元2A3 2016-03-18 705007 银行间债券市场 + + coupon_type_id coupon_type coupon coupon_start_date coupon_end_date \ +0 701004 浮动利率 4.6 2015-12-24 2016-01-25 +1 701004 浮动利率 4.6 2016-01-26 2016-02-25 +2 701004 浮动利率 4.6 2016-02-26 2016-03-25 +3 701004 浮动利率 4.6 2016-03-26 2016-04-25 + + reference_rate reference_rate_comment \ +0 4.9 票面利率:“优先档资产支持证券的票面利率”根据簿记建档结果确定。“受托机构”于“交割日”后次... +1 4.9 票面利率:“优先档资产支持证券的票面利率”根据簿记建档结果确定。“受托机构”于“交割日”后次... +2 4.9 票面利率:“优先档资产支持证券的票面利率”根据簿记建档结果确定。“受托机构”于“交割日”后次... +3 4.9 票面利率:“优先档资产支持证券的票面利率”根据簿记建档结果确定。“受托机构”于“交割日”后次... + + margin_rate coupon_upper_limit coupon_lower_limit +0 -0.3 None None +1 -0.3 None None +2 -0.3 None None +3 -0.3 None None +``` + +BOND_INTEREST_PAYMENT付息事件 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.BOND_INTEREST_PAYMENT ).limit(n)) +``` + + **表结构:** | 名称 | 类型 | 描述 | | ----------------------- | ----- | ---------------------------------------- | | code | str | 债券代码(不加后缀) | | name | str | 债券简称 | | pub_date | date | 公告日期 | | exchange_code | int |证券市场编码(新增字段) | | exchange | str | 证券市场(新增字段) | | event_type | str | 事件类型 | | interest_start_date | date | 年度计息起始日 | | coupon | float | 票面利率(%) | | interest_end_date | date | 年度计息终止日 | | autual_interest | float | 实际付息利率(%) | | interest_per_unit | float | 每手付息数(单位:元,每1000元付息金额) | | register_date | date | 债权登记日 | | dividend_date | date | 除息日 | | interest_pay_start_date | date | 付息起始日(债务人实际付息开始日期) | | interest_pay_end_date | date | 付息终止日(债务人实际付息截止日期) | | payment_date | date | 兑付日(债券到期兑付) | | payment_per_unit | float | 每百元面值的到期兑付资金(元) | | tax_rate | float | 代扣所得税率(%) | | tax_channel | str | 扣税渠道 | +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.BOND_INTEREST_PAYMENT )) +print(df[:4]) + + id code name pub_date exchange_code exchange event_type \ +0 1 011698473 16粤广业SCP004 2017-06-09 12004 银行间债券市场 兑付 +1 2 011698480 16海运集装SCP001 2016-12-13 12004 银行间债券市场 兑付 +2 3 011698631 16重汽SCP008 2017-07-05 12004 银行间债券市场 兑付 +3 4 011698478 16中电股SCP009 2016-11-11 12004 银行间债券市场 兑付 + + interest_start_date coupon interest_end_date autual_interest \ +0 None 2.99 None 2.211781 +1 None 3.00 None 0.737705 +2 None 3.10 None 2.259178 +3 None 2.30 None 0.377049 + + interest_per_unit register_date dividend_date interest_pay_start_date \ +0 22.11781 2017-06-16 None None +1 7.37705 2016-12-20 None None +2 22.59178 2017-07-12 None None +3 3.77049 2016-11-18 None None + + interest_pay_end_date payment_date payment_per_unit tax_rate tax_channel +0 None 2017-06-19 102.211781 NaN None +1 None 2016-12-21 100.737705 NaN None +2 None 2017-07-13 102.259178 NaN None +3 None 2016-11-21 100.377049 NaN None +``` + +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.BOND_INTEREST_PAYMENT ).filter(bond.BOND_INTEREST_PAYMENT.pub_date=='2019-11-13')) +print(df[:5]) + id code name pub_date exchange_code exchange event_type \ +0 7684 101574010 15京粮MTN001 2019-11-13 12004 银行间债券市场 付息 +1 8635 1555048 15福建债48 2019-11-13 12004 银行间债券市场 付息 +2 8668 1555047 15福建债47 2019-11-13 12004 银行间债券市场 付息 +3 8684 1555046 15福建债46 2019-11-13 12004 银行间债券市场 付息 +4 8726 1555044 15福建债44 2019-11-13 12004 银行间债券市场 付息 + + interest_start_date coupon interest_end_date autual_interest \ +0 2018-12-14 4.38 2019-12-13 4.38 +1 2019-06-04 3.30 2019-12-03 1.65 +2 2018-12-04 3.32 2019-12-03 3.32 +3 2018-12-04 3.15 2019-12-03 3.15 +4 2019-06-04 3.30 2019-12-03 1.65 + + interest_per_unit register_date dividend_date interest_pay_start_date \ +0 43.8 2019-12-13 None 2019-12-16 +1 16.5 2019-12-03 None 2019-12-04 +2 33.2 2019-12-03 None 2019-12-04 +3 31.5 2019-12-03 None 2019-12-04 +4 16.5 2019-12-03 None 2019-12-04 + + interest_pay_end_date payment_date payment_per_unit tax_rate tax_channel +0 None None NaN NaN None +1 None None NaN NaN None +2 None None NaN NaN None +3 None None NaN NaN None +4 None None NaN NaN None +``` + +### 国债逆回购日行情 + +方法描述 / 更新时间及频率REPO_DAILY_PRICE国债逆回购日行情 / 上市至今,每日19:00、22:00更新 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.REPO_DAILY_PRICE).limit(n)) +``` + + **数据字典:** | 名称 | 类型 | 描述 | | ------------- | --------------- | ------------------------------------------------------------ | | date | date | 交易日期 | | code | varchar(12) | 回购代码,如 '204001.XSHG' | | name | varchar(20) | 回购简称,如 'GC001' | | exchange_code | varchar(12) | 证券市场编码。XSHG-上海证券交易所;XSHE-深圳证券交易所 | | pre_close | decimal(10,4) | 前收盘利率(%) | | open | decimal(10,4) | 开盘利率(%) | | high | decimal(10,4) | 最高利率(%) | | low | decimal(10,4) | 最低利率(%) | | close | decimal(10,4) | 收盘利率(%) | | volume | bigint | 成交量(手) | | money | decimal(20,2) | 成交额(元) | | deal_number | int | 成交笔数(笔) **示例** +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.REPO_DAILY_PRICE)) +print(df.sort_values(by='deal_number',ascending=False)[:5]) + + id date code name exchange_code pre_close open \ +2842 2843 2018-04-24 204001.XSHG GC001 XSHG 8.87 9.5 +2709 2710 2017-10-09 204001.XSHG GC001 XSHG 16.63 5.0 +2769 2770 2018-01-02 204001.XSHG GC001 XSHG 14.53 3.9 +2843 2844 2018-04-25 204001.XSHG GC001 XSHG 8.93 6.0 +2767 2768 2017-12-28 204001.XSHG GC001 XSHG 12.57 13.0 + + high low close volume money deal_number +2842 12.20 6.500 8.930 915840200 9.158402e+11 728989.0 +2709 12.00 5.000 8.745 961308900 9.613089e+11 723141.0 +2769 10.10 3.900 6.010 828761600 8.287616e+11 703459.0 +2843 10.01 5.555 8.795 875500800 8.755008e+11 696009.0 +2767 24.00 13.000 17.695 703348000 7.033480e+11 669847.0 +``` + +### 可转债概况 + +- **更新时间:2019至今,8:00更新** + +方法描述normalize_code将可转债代码转化成聚宽标准格式 +``` + +normalize_code(code) +``` + + 将其他形式的可转债代码转换为jqdatasdk函数可用的可转债代码形式。 **适用可转债代码,支持传入单只可转债或一个可转债list** **以可转债为例** +``` + +#输入 +normalize_code(['110043', 'SH110043', '110043SH', '110043.sh', '110043.XSHG']) +#输出 +['110043.XSHG', '110043.XSHG', '110043.XSHG', '110043.XSHG', '110043.XSHG'] +``` + +get_security_info获取单支可转债信息 **调用方法** +``` + +get_security_info(code) +``` + + **参数** - code: 证券代码 **返回值** - 一个对象, 有如下属性: 1. display_name # 中文名称 2. name # 缩写简称 3. start_date # 上市日期, [datetime.date] 类型 4. end_date # 退市日期, [datetime.date] 类型, 如果没有退市则为2200-01-01 5. type # 类型,conbond **示例** +``` + +# 获取110043.XSHG的中文名称 +display_name = get_security_info('110043.XSHG').display_name +print(display_name) +>>>无锡转债 + +# 获取128145.XSHE的上市时间 +start_date = get_security_info('128145.XSHE').start_date +print(start_date) +>>>2021-04-16 +``` + +get_all_securities获取所有可转债信息 +``` + +get_all_securities(types=[], date=None) +``` + + 获取平台支持的所有股票、基金、指数、期货、期权、可转债信息 **参数** - types: list: 用来过滤securities的类型, list元素可选: 'stock', 'fund', 'index', 'futures', 'options', 'etf', 'lof', 'fja', 'fjb', 'open_fund', 'bond_fund', 'stock_fund', 'QDII_fund', 'money_market_fund', 'mixture_fund'。**types为空时返回所有股票, 不包括基金,指数和期货** - date: 日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 用于获取某日期还在上市的可转债信息. 默认值为 None, 表示获取所有日期的可转债信息 **返回** - [pandas.DataFrame] - display_name: 中文名称 - name: 缩写简称 - start_date: 上市日期 - end_date: 退市日期,如果没有退市则为2200-01-01 - type: 类型 : stock(股票),index(指数),etf(ETF基金),options(期权),conbond(可转债),fja(分级A),fjb(分级B),fjm(分级母基金),mmf(场内交易的货币基金)open_fund(开放式基金), bond_fund(债券基金), stock_fund(股票型基金), QDII_fund(QDII 基金), money_market_fund(场外交易的货币基金), mixture_fund(混合型基金), options(期权) **示例** +``` + +#获得所有可转债列表 +df=get_all_securities("conbond") +print(df[:5]) + + display_name name start_date end_date type +110001.XSHG 邯钢转债 HGZZ 2003-12-11 2007-03-16 conbond +110002.XSHG 南山转债 NSZZ 2008-05-13 2009-09-24 conbond +110003.XSHG 新钢转债 XGZZ 2008-09-05 2013-08-27 conbond +110004.XSHG 厦工转债 SGZZ 2009-09-11 2010-09-30 conbond +110005.XSHG 西洋转债 XYZZ 2009-09-21 2010-05-19 conbond +``` + +``` + +#获得2023年02月01日还在上市的所有股票列表 +df=get_all_securities("conbond",date='2023-02-01') +print(df.tail(5)) + + display_name name start_date end_date type +128141.XSHE 旺能转债 WNZZ 2021-01-18 2026-12-17 conbond +128142.XSHE 新乳转债 XRZZ 2021-01-19 2026-12-18 conbond +128143.XSHE 锋龙转债 FLZZ 2021-01-29 2027-01-08 conbond +128144.XSHE 利民转债 LMZZ 2021-03-24 2027-03-01 conbond +128145.XSHE 日丰转债 RFZZ 2021-04-16 2023-03-02 conbond +``` + +``` + +#将所有可转债列表转换成数组 +conbond= list(get_all_securities(['conbond']).index) +conbond[:5] +>>>['110001.XSHG', '110002.XSHG', '110003.XSHG', '110004.XSHG', '110005.XSHG'] +``` + +### 可转债统计数据 + +表名描述 / 更新时间及频率CONBOND_BASIC_INFO可转债基本资料 / 上市至今,每日19:00、22:00更新 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_BASIC_INFO).limit(n)) +``` + + **表结构:** | 名称 | 类型 | 描述 | | :--------------------------- | :------------ | :--------------------------------------------------------- | | code | str | 债券代码 | | short_name | str | 债券简称 | | full_name | str | 债券全称 | | list_status_id | int | 上市状态编码,见下表上市状态编码对照表 | | list_status | str | 上市状态 | | issuer | str | 发行人 | | company_code | str | 发行人股票代码(带后缀);正股代码 | | issue_start_date | date | 发行起始日 | | issue_end_date | date | 发行终止日 | | plan_raise_fund | decimal(20,4) | 计划发行总量(万元) | | actual_raise_fund | decimal(20,4) | 实际发行总量(万元) | | issue_par | int | 发行面值 | | issue_price | decimal(10,3) | 发行价格 | | is_guarantee | int | 是否有担保(1-是,0-否) | | fund_raising_purposes | varchar(200) | 募资用途说明 | | list_date list_declare_date | date | 上市公告日期 | | convert_price_reason | varchar(300) | 初始转股价确定方式 | | convert_price | decimal(10,3) | 初始转股价格 | | convert_start_date | start_date | 转股开始日期 | | convert_end_date | end_date | 转股终止日期 | | convert_code | varchar(10) | 转股代码(不带后缀) | | coupon | decimal(10,3) | 初始票面利率 | | exchange_code | int | 交易市场编码,见下表交易市场编码 | | exchange | str | 交易市场 | | currency_id | str | 货币代码。CNY-人民币 | | coupon_type_id | int | 计息方式编码,见下表计息方式编码 | | coupon_type | str | 计息方式 | | coupon_frequency | int | 付息频率,单位:月/次。按年付息是12月/次;半年付息是6月/次 | | payment_type_id | int | 兑付方式编码,见下表兑付方式编码表 | | payment_type | str | 兑付方式 | | par | float | 债券面值(元) | | repayment_period | int | 偿还期限(月) | | bond_type_id | int | 债券分类编码,见下表债券分类编码 | | bond_type | str | 债券分类 | | bond_form_id | int | 债券形式编码,见下表债券形式编码表 | | bond_form | str | 债券形式 | | list_date | date | 上市日期 | | delist_Date | date | 退市日期 | | interest_begin_date | date | 起息日 | | maturity_date | date | 到期日 | | interest_date | str | 付息日 | | last_cash_date | date | 最终兑付日 | | cash_comment | str | 兑付说明 | **编码对照表:** | 上市状态编码 | 上市状态 | | ------------ | ------------ | | 301001 | 正常上市 | | 301006 | 终止上市 | | 301099 | 其他 | | **交易市场编码** | **交易市场** | | ---------------- | ---------------------- | | 705001 | 上交所 | | 705002 | 深交所主板 | | 705003 | 深交所中小板 | | 705004 | 深交所创业板 | | 705005 | 上交所综合业务平台 | | 705006 | 深交所综合协议交易平台 | | 705007 | 银行间债券市场 | | 705008 | 商业银行柜台市场 | | 705009 | 港交所创业板 | | 705010 | 新加坡证券交易所 | | 705011 | 拟上市 | | 705012 | 产权交易市场 | | 705013 | 美国NASDAQ证券交易所 | | 705014 | 港交所主板 | | 705015 | 股份报价系统 | | 705016 | 代办转让 | | 705017 | 上交所CDR | | 705018 | 深交所存托凭证 | | 705099 | 其他 | | 计息方式编码 | 计息方式 | | ------------ | ------------ | | 701001 | 利随本清 | | 701002 | 固定利率附息 | | 701003 | 递进利率 | | 701004 | 浮动利率 | | 701005 | 贴现 | | 701006 | 未公布 | | 701007 | 无利率 | | 701008 | 累进利率 | | 兑付方式编码 | 兑付方式 | | ------------ | ------------ | | 702001 | 到期一次付息 | | 702002 | 按年付息 | | 702003 | 按半年付息 | | 702004 | 按季付息 | | 702005 | 按月付息 | | 702006 | 未公布 | | 702099 | 其他 | | 债券分类编码 | 债券分类 | | ------------ | ---------------------- | | 703001 | 短期融资券 | | 703002 | 质押式回购 | | 703003 | 私募债 | | 703004 | 企业债 | | 703005 | 次级债 | | 703006 | 一般金融债 | | 703007 | 中期票据 | | 703008 | 资产支持证券 | | 703009 | 小微企业扶持债 | | 703010 | 地方政府债 | | 703011 | 公司债 | | 703012 | 可交换私募债 | | 703013 | 可转债 | | 703014 | 集合债券 | | 703015 | 国际机构债券 | | 703016 | 政府支持机构债券 | | 703017 | 集合票据 | | 703018 | 外国主权政府人民币债券 | | 703019 | 央行票据 | | 703020 | 政策性金融债 | | 703021 | 国债 | | 703022 | 非银行金融债 | | 703023 | 可分离可转债 | | 703024 | 国库定期存款 | | 703025 | 可交换债 | | 703026 | 特种金融债 | | 债券形式编码 | 债券形式 | | ------------ | ---------- | | 704001 | 记账式 | | 704002 | 实物式 | | 704003 | 储蓄电子式 | | 704004 | 凭证式 | | 704005 | 未公布 | **示例** +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_BASIC_INFO) +``` + +``` + +# 获得鞍钢转债的基本资料 +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_BASIC_INFO).filter(bond.CONBOND_BASIC_INFO.company_code=='000898.XSHE')) +print(df) + +# 输出 + id code short_name full_name list_status_id list_status \ +0 3 125898 鞍钢转债 鞍钢新轧钢股份有限公司可转换公司债券 301006 终止上市 + + issuer company_code issue_start_date issue_end_date ... \ +0 鞍钢股份有限公司 000898.XSHE 2000-03-14 2000-03-22 ... + + bond_type bond_form_id bond_form list_date delist_Date \ +0 可转债 704001 记账式 2000-04-17 2005-03-14 + + interest_begin_date maturity_date interest_date last_cash_date cash_comment +0 2000-03-14 2005-03-14 存续期内每年3月14日 2005-03-14 None + +[1 rows x 44 columns] +``` + +CONBOND_CONVERT_PRICE_ADJUST可转债转股价格调整 / 上市至今,每日19:00、22:00更新 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_CONVERT_PRICE_ADJUST).limit(n)) +``` + + **表结构:** | 名称 | 类型 | 描述 | | ----------------- | ----- | -------------- | | code | str | 债券代码 | | name | str | 债券名称 | | pub_date | date | 公告日期 | | adjust_date | date | 调整生效日期 | | new_convert_price | float | 调整后转股价格 | | adjust_reason | str | 调整原因 | **示例** +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_CONVERT_PRICE_ADJUST)) +``` + +``` + +#获得公告日期2019-11-07可转债的价格调整信息 +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_CONVERT_PRICE_ADJUST).filter(bond.CONBOND_CONVERT_PRICE_ADJUST.pub_date=='2019-11-07')) +print(df) + +# 输出 + id code name pub_date adjust_date \ +0 1 117135 2019年海亮集团有限公司非公开发行可交换公司债券(第二期) 2019-11-07 2019-11-12 + + new_convert_price adjust_reason +0 10.08 修正转股价 +``` + +CONBOND_DAILY_CONVERT可转债每日转股统计 / 2000-7-12至今,下一交易日 8:30、12:30更新 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_DAILY_CONVERT).limit(n)) +``` + + **表结构:** **表结构:** | 名称 | 类型 | 描述 | | -------------------- | ----- | ------------------------------------------------------------ | | date | date | 交易日期(以YYYY-MM-DD表示) | | code | str | 债券代码 | | name | str | 债券简称 | | exchange_code | str | 证券市场编码(XSHG-上海证券交易所;XSHE-深圳证券交易所) | | issue_number | int | 发行总量(单位:张) | | convert_price | float | 转股价格 | | daily_convert_number | int | 当日转股数量(深交所披露为债券转换量 单位:张,上交所披露为股票转换量 单位 :股) | | acc_convert_number | int | 累计转股数量(深交所披露为债券转换量 单位:张,上交所披露为股票转换量 单位 :股) | | acc_convert_ratio | float | 累计转股比例(单位:% , 因上交所只披露转股股数,因此计算剩余转股张数时公式应为 : 发行总量 *(1 -累计转股比例) ) | | convert_premium | float | 转股溢价,从2018-09-13开始计算(每张可转债转股后可以获得的收益,单位:元。**转股溢价=可转债收盘价-(100/转股价格)\*正股收盘价**) | | convert_premium_rate | float | 转股溢价率 | **示例** 获得所有转债的每日转股统计数据 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_DAILY_CONVERT)) +print(df[:4]) + + id date code name exchange_code issue_number convert_price \ +0 1 2000-07-12 100001 南化转债 XSHG 1500000 4.56 +1 2 2000-07-13 100001 南化转债 XSHG 1500000 4.56 +2 3 2000-07-14 100001 南化转债 XSHG 1500000 4.56 +3 4 2000-07-17 100001 南化转债 XSHG 1500000 4.56 + + daily_convert_number acc_convert_number acc_convert_ratio \ +0 13805949.0 13805949.0 41.97 +1 2939919.0 16745868.0 50.91 +2 2161867.0 18907735.0 57.48 +3 4074006.0 22981741.0 69.86 + + convert_premium convert_premium_rate +0 NaN NaN +1 NaN NaN +2 NaN NaN +3 NaN NaN +``` + + 获得某只转债的每日转股统计数据 +``` + +#获得招行转债的每日转股统计数据 +df=bond.run_query(query(bond.CONBOND_DAILY_CONVERT).filter(bond.CONBOND_DAILY_CONVERT.code=="110036")) +print(df[:5]) + + id date code name exchange_code issue_number convert_price \ +0 2990 2005-05-10 110036 招行转债 XSHG 65000000 9.34 +1 2994 2005-05-11 110036 招行转债 XSHG 65000000 9.34 +2 3000 2005-05-13 110036 招行转债 XSHG 65000000 9.34 +3 3012 2005-05-18 110036 招行转债 XSHG 65000000 9.34 +4 3017 2005-05-23 110036 招行转债 XSHG 65000000 9.34 + + daily_convert_number acc_convert_number acc_convert_ratio \ +0 1498.0 1498.0 0.0 +1 2996.0 4494.0 0.0 +2 214.0 4708.0 0.0 +3 428.0 5136.0 0.0 +4 321.0 5457.0 0.0 + + convert_premium convert_premium_rate +0 5.8107 None +1 6.9325 None +2 9.4599 None +3 9.4957 None +4 12.3748 None +``` + +get_price可转债(1天/分钟)行情数据 / 2019年至今,盘后15点更新 - 获取一支或者多只可转债 - frequency为非一天或者一分钟,请使用get_bars; - 取多支标的的数据时,不要获取交易时段不同的标的(例如:不同交易时间的可转账标的),否则会报错; - 这里在使用时注意 end_date 的设置,不要引入未来的数据; - 标识时间为09:32:00的1分钟k线,其数据时间为09:31:00至09:31:59; - **end_date:当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取 。**注意:当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 - get_price指定frequency为 非1m/1d时,fields选择'high_limit','low_limit'会报错 +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + **参数** | **参数名称** | **参数说明** | **注释** | +| --- | --- | --- | +| security | 标的 | 可获取种类:股票、期货、基金、指数、期权、可转债 | +| start_date | 开始时间,不可与count同时使用。当'count'和'start_date'为None时, 默认值是 '2015-01-01 00:00:00' | 当指定frequency为minute时,如果只传入日期,则日内时间为当日的 00:00:00 | +| end_date | 结束时间,如无指定,默认为'2015-12-31 00:00:00'。当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 | 当指定frequency为minute时, 如果只传入日期, 则日内时间为当日的 00:00:00, 所以返回的数据不包括 end_date这天。 | +| count | 表示获取 end_date 之前几个 frequency 的数据,与start_date不可同时使用。 | 返回的结果集的行数, 即表示获取 end_date 之前count个 frequency 的数据 | +| frequency | 单位时间长度,即指定获取的时间频级为分钟级(minute)或日级(daily),也可以指定为 '3m','10d' 等 | daily'(同'1d'), 'minute'(同'1m'), [点击查看get_price和get_bars的合成逻辑。](https://www.joinquant.com/view/community/detail/cea095760a0583ce965964912580077e?type=1)如需5分钟,1小时等标准bar请使用get_bars | +| fields | 所获取数据的字段名称,即表头。默认是None(返回标准字段['open','close','high','low','volume','money']) | 可选择填入以下字段,字段说明可查阅下面fields表 ['open','close','low','high','volume','money','factor', 'high_limit','low_limit','avg','pre_close'], | +| panel | 指定返回的数据格式为panel | 默认为True;指定panel=False时返回dataframe格式; 如果您的环境pandas大于0.25 ,将强制返回dataframe详见案例 | + + fields内各字段属性 | **字段名称** | **中文名称** | **注释** | +| --- | --- | --- | +| open | 时间段开始时价格 | | +| close | 时间段结束时价格 | | +| low | 时间段中的最低价 | | +| high | 时间段中的最高价 | | +| volume | 时间段中的成交的可转债数量 | 单位股 | +| money | 时间段中的成交的金额 | | +| high_limit | 时间段中的涨停价 | | +| low_limit | 时间段中的跌停价 | | +| avg | 时间段中的平均价 | (1)天级别:可转债是成交额除以成交量;期货是直接从CTP行情获取的,计算方法为成交额除以成交量再除以合约乘数; (2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 | + + **返回** - 请注意, 为了方便比较一只可转债的多个属性, 同时也满足对比多只可转债的一个属性的需求, 我们在security参数是**一只可转债和多只可转债时返回的结构完全不一样 (默认panel=True时)** **代码示例** +``` + +df=get_price('110043.XSHG',count=5,end_date='2023-01-31 10:56:00',frequency='1m', + fields=['open', 'close', 'high', 'low','high_limit','low_limit', 'volume', 'money'],panel = False) +print(df) + open close high low high_limit \ +2023-01-31 10:52:00 118.566 118.600 118.600 118.566 141.676 +2023-01-31 10:53:00 118.580 118.580 118.600 118.580 141.676 +2023-01-31 10:54:00 118.560 118.530 118.560 118.518 141.676 +2023-01-31 10:55:00 118.502 118.461 118.502 118.436 141.676 +2023-01-31 10:56:00 118.440 118.438 118.440 118.369 141.676 + + low_limit volume money +2023-01-31 10:52:00 94.45 840000.0 996206.0 +2023-01-31 10:53:00 94.45 393000.0 466096.0 +2023-01-31 10:54:00 94.45 43000.0 50981.0 +2023-01-31 10:55:00 94.45 30000.0 35534.0 +2023-01-31 10:56:00 94.45 141000.0 166987.0 +``` + +get_bars时间周期的行情数据(支持时间周期:'1m','5m', '15m', '30m', '60m', '120m', '1w', '1M') +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None,df=True) +``` + + 获取各种时间周期的bar数据,bar的分割方式与主流行情软件相同, 同时还支持返回当前时刻所在 bar 的数据。 **参数** - security: 可转债代码,支持单个及多个标的 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流行情软件划分相似 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', - include_now: 取值True 或者False。 表示是否包含end_dt所在的bar, 比如end_dt指定为9:38:00,unit参数为5m, 如果 include_now=True,则返回的最后一条bar为9:35:00-9:38:00这个 bar,否则返回的最后一条bar为09:30:00-09:35:00的bar。 - end_dt:查询的截止时间,默认最新的时间。注意:当end_dt指定为当天尚未结束的交易时间时,会自动填充为上一个交易日收盘的时间 - df:默认为True,指定返回数据为dataframe结构;当df=False的时候,传入单个标的时,返回一个np.ndarray,多个标的返回一个字典,key是code,value是np.array **返回** 返回一个pandas.dataframe对象,可以按任意周期返回股票的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 **示例** - 获取一只可转债 +``` + +df = get_bars('110043.XSHG', 5, unit='120m',fields=['date', 'open', 'close', 'high', 'low', 'volume', 'money'],include_now=False, + end_dt='2019-12-05') +print(df) + + date open close high low volume money +0 2019-12-02 15:00:00 103.80 103.87 103.96 103.75 1175000.0 1220479.0 +1 2019-12-03 11:30:00 103.76 103.63 103.80 103.60 1072000.0 1111412.0 +2 2019-12-03 15:00:00 103.60 103.88 103.89 103.56 8357000.0 8672659.0 +3 2019-12-04 11:30:00 103.88 103.74 103.89 103.68 1714000.0 1778679.0 +4 2019-12-04 15:00:00 103.74 103.61 103.74 103.48 9007000.0 9333398.0 +``` + + - 获取多只可转债 +``` + +df=get_bars(['110043.XSHG', '110044.XSHG'],2,'5m', + fields=['date', 'open', 'close', 'high', 'low', 'volume', 'money'],end_dt='2019-12-21 15:00:00') +print(df) + + date open close high low volume \ +110043.XSHG 0 2019-12-20 14:55:00 106.98 106.95 107.06 106.95 29000.0 + 1 2019-12-20 15:00:00 106.93 106.94 106.95 106.92 397000.0 +110044.XSHG 0 2019-12-20 14:55:00 147.02 146.67 147.07 146.67 555000.0 + 1 2019-12-20 15:00:00 146.71 147.30 147.32 146.71 100000.0 + + money +110043.XSHG 0 31018.0 + 1 424483.0 +110044.XSHG 0 815715.0 + 1 147199.0 +``` + +get_call_auction获取集合竞价数据 / 2010年至今 +``` + +get_call_auction(security, start_date, end_date, fields=None) +``` + + 支持股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)和上证ETF期权(2017年至今)的集合竞价数据。当日的集合竞价数据下午15点更新。为了防止返回数据量过大, 我们每次最多返回5000行。 **参数**: - security: **股票(2010年至今)** - start_date: 开始日期,YYYY-MM-DD格式 - end_date: 结束日期,YYYY-MM-DD格式 - fields: 选择要获取的行情数据字段,参数为list格式,默认为None,返回全部字段。 **返回值:** 返回指定时间区间标的集合竞价tick数据,返回字段结果如下: | 字段名 | 说明 | 字段类型 | | :-------- | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价(不复权) | float | | volume | 累计成交量(股) | float | | money | 累计成交额(元) | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **示例:** +``` + +# start_dt和count只能有一个不为None值 +d = get_ticks("110043.XSHG",start_dt=None, end_dt="2023-02-03 10:43:00", count=5) +print(d) + +#输出 + time current high low volume money \ +0 2023-02-03 10:42:30.408 116.680 117.687 116.43 66290.0 7740472.0 +1 2023-02-03 10:42:36.412 116.680 117.687 116.43 66330.0 7745139.0 +2 2023-02-03 10:42:39.416 116.695 117.687 116.43 66340.0 7746306.0 +3 2023-02-03 10:42:45.408 116.696 117.687 116.43 66500.0 7764977.0 +4 2023-02-03 10:42:48.408 116.705 117.687 116.43 66510.0 7766144.0 + + a1_p a1_v a2_p a2_v a3_p a3_v a4_p a4_v a5_p \ +0 116.680 30.0 116.695 10.0 116.705 10.0 116.739 20.0 116.740 +1 116.705 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 +2 116.696 60.0 116.705 10.0 116.739 20.0 116.740 10.0 116.744 +3 116.705 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 +4 116.706 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 + + a5_v b1_p b1_v b2_p b2_v b3_p b3_v b4_p b4_v \ +0 10.0 116.662 110.0 116.658 10.0 116.640 10.0 116.61 10.0 +1 10.0 116.695 160.0 116.662 260.0 116.658 10.0 116.64 10.0 +2 1960.0 116.695 300.0 116.662 110.0 116.658 10.0 116.64 10.0 +3 10.0 116.695 200.0 116.662 110.0 116.658 10.0 116.64 10.0 +4 10.0 116.695 200.0 116.662 110.0 116.658 10.0 116.64 10.0 + + b5_p b5_v +0 116.60 310.0 +1 116.61 10.0 +2 116.61 10.0 +3 116.61 10.0 +4 116.61 10.0 +``` + +get_ticks (机构)可转债tick数据/2019年起 +``` + +get_ticks(security, start_dt, end_dt, count, fields, skip=True,df=True) +``` + + **可转债部分, 支持 2019-01-01 至今的tick数据,提供买五卖五数据。(每3秒一次快照)** **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 可转债,不支持传入多个标的 - start_dt: 开始日期 - end_dt: 结束日期 - count: 取出指定时间区间内前多少条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下: - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据。 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray - **股票tick返回结果** | 字段名 | 说明 | 字段类型 | | --------- | ---------- | ------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额 | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **可转债tick数据示例**: # start_dt和count只能有一个不为None值 d = get_ticks("110043.XSHG",start_dt=None, end_dt="2023-02-03 10:43:00", count=5) print(d) #输出 time current high low volume money \ 0 2023-02-03 10:42:30.408 116.680 117.687 116.43 66290.0 7740472.0 1 2023-02-03 10:42:36.412 116.680 117.687 116.43 66330.0 7745139.0 2 2023-02-03 10:42:39.416 116.695 117.687 116.43 66340.0 7746306.0 3 2023-02-03 10:42:45.408 116.696 117.687 116.43 66500.0 7764977.0 4 2023-02-03 10:42:48.408 116.705 117.687 116.43 66510.0 7766144.0 a1_p a1_v a2_p a2_v a3_p a3_v a4_p a4_v a5_p \ 0 116.680 30.0 116.695 10.0 116.705 10.0 116.739 20.0 116.740 1 116.705 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 2 116.696 60.0 116.705 10.0 116.739 20.0 116.740 10.0 116.744 3 116.705 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 4 116.706 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 a5_v b1_p b1_v b2_p b2_v b3_p b3_v b4_p b4_v \ 0 10.0 116.662 110.0 116.658 10.0 116.640 10.0 116.61 10.0 1 10.0 116.695 160.0 116.662 260.0 116.658 10.0 116.64 10.0 2 1960.0 116.695 300.0 116.662 110.0 116.658 10.0 116.64 10.0 3 10.0 116.695 200.0 116.662 110.0 116.658 10.0 116.64 10.0 4 10.0 116.695 200.0 116.662 110.0 116.658 10.0 116.64 10.0 b5_p b5_v 0 116.60 310.0 1 116.61 10.0 2 116.61 10.0 3 116.61 10.0 4 116.61 10.0 +``` +### 可转债行情数据 + +- **更新时间:2019至今,盘后15:00更新** + +方法描述CONBOND_DAILY_PRICE可转债日行情(查表) / 2018-09-13至今,每日19:00、22:00更新 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_DAILY_PRICE).limit(n)) +``` + + **表结构:** | 名称 | 类型 | 描述 | | ------------- | ----- | ---------------------------------------- | | date | date | 交易日期(以YYYY-MM-DD表示) | | code | str | 债券代码 | | name | str | 债券简称 | | exchange_code | str | 证券市场编码(XSHG-上交所;XSHE-深交所) | | pre_close | float | 昨收价 | | open | float | 开盘价,以人民币计 | | high | float | 最高价,以人民币计 | | low | float | 最低价,以人民币计 | | close | float | 收盘价,以人民币计 | | volume | float | 成交量(手),1手为10张债券 | | money | float | 成交额,以人民币计 | | deal_number | int | 成交笔数 | | change_pct | float | 涨跌幅,单位:% | **示例** 获取所有在债券的转债日行情 +``` + +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_DAILY_PRICE)) +print(df[:4]) + + id date code name exchange_code pre_close open high \ +0 1 2018-09-13 110030 格力转债 XSHG 101.94 101.92 101.98 +1 2 2018-09-14 110030 格力转债 XSHG 101.90 101.89 101.91 +2 3 2018-09-17 110030 格力转债 XSHG 101.90 101.91 101.93 +3 4 2018-09-18 110030 格力转债 XSHG 101.92 101.91 101.94 + + low close volume money deal_number change_pct +0 101.90 101.90 5146 5244323.0 90.0 -0.0392 +1 101.88 101.90 4348 4430498.0 58.0 0.0000 +2 101.89 101.92 2087 2126837.0 71.0 0.0196 +3 101.89 101.91 1736 1769120.0 70.0 -0.0098 +``` + + 获取转债的日行情 +``` + +# 获取格力转债的日行情 +from jqdatasdk import * +df=bond.run_query(query(bond.CONBOND_DAILY_PRICE).filter(bond.CONBOND_DAILY_PRICE.code=="110030")) +print(df[:5]) + + id date code name exchange_code pre_close open high \ +0 66071 2015-01-13 110030 N格力转 XSHG 100.00 138.00 142.80 +1 66072 2015-01-14 110030 格力转债 XSHG 138.26 138.58 142.03 +2 66073 2015-01-15 110030 格力转债 XSHG 139.81 139.20 141.20 +3 66074 2015-01-16 110030 格力转债 XSHG 139.84 139.99 145.60 +4 66075 2015-01-19 110030 格力转债 XSHG 143.35 141.04 141.05 + + low close volume money deal_number change_pct +0 137.00 138.26 119222 165203875.0 1199.0 38.2600 +1 137.11 139.81 274244 384512317.0 5109.0 1.1211 +2 138.81 139.84 77315 108056549.0 2334.0 0.0215 +3 139.99 143.35 88171 125987816.0 2276.0 2.5100 +4 139.00 139.46 73077 102210898.0 1044.0 -2.7136 +``` + +get_price可转债(1天/分钟)行情数据 / 2019年至今,盘后15点更新 - 获取一支或者多只可转债 - frequency为非一天或者一分钟,请使用get_bars; - 取多支标的的数据时,不要获取交易时段不同的标的(例如:不同交易时间的可转账标的),否则会报错; - 这里在使用时注意 end_date 的设置,不要引入未来的数据; - 标识时间为09:32:00的1分钟k线,其数据时间为09:31:00至09:31:59; - **end_date:当天 09:00 ~ 15:00 的行情在 15:00 之后可以获取 。**注意:当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 - get_price指定frequency为 非1m/1d时,fields选择'high_limit','low_limit'会报错 +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None) +``` + + **参数** | **参数名称** | **参数说明** | **注释** | +| --- | --- | --- | +| security | 标的 | 可获取种类:股票、期货、基金、指数、期权、可转债 | +| start_date | 开始时间,不可与count同时使用。当'count'和'start_date'为None时, 默认值是 '2015-01-01 00:00:00' | 当指定frequency为minute时,如果只传入日期,则日内时间为当日的 00:00:00 | +| end_date | 结束时间,如无指定,默认为'2015-12-31 00:00:00'。当end_date指定为当天尚未结束的交易时间时,会自动填充为上一个交易日的盘后时间 | 当指定frequency为minute时, 如果只传入日期, 则日内时间为当日的 00:00:00, 所以返回的数据不包括 end_date这天。 | +| count | 表示获取 end_date 之前几个 frequency 的数据,与start_date不可同时使用。 | 返回的结果集的行数, 即表示获取 end_date 之前count个 frequency 的数据 | +| frequency | 单位时间长度,即指定获取的时间频级为分钟级(minute)或日级(daily),也可以指定为 '3m','10d' 等 | daily'(同'1d'), 'minute'(同'1m'), [点击查看get_price和get_bars的合成逻辑。](https://www.joinquant.com/view/community/detail/cea095760a0583ce965964912580077e?type=1)如需5分钟,1小时等标准bar请使用get_bars | +| fields | 所获取数据的字段名称,即表头。默认是None(返回标准字段['open','close','high','low','volume','money']) | 可选择填入以下字段,字段说明可查阅下面fields表 ['open','close','low','high','volume','money','factor', 'high_limit','low_limit','avg','pre_close'], | +| panel | 指定返回的数据格式为panel | 默认为True;指定panel=False时返回dataframe格式; 如果您的环境pandas大于0.25 ,将强制返回dataframe详见案例 | + + fields内各字段属性 | **字段名称** | **中文名称** | **注释** | +| --- | --- | --- | +| open | 时间段开始时价格 | | +| close | 时间段结束时价格 | | +| low | 时间段中的最低价 | | +| high | 时间段中的最高价 | | +| volume | 时间段中的成交的可转债数量 | 单位股 | +| money | 时间段中的成交的金额 | | +| high_limit | 时间段中的涨停价 | | +| low_limit | 时间段中的跌停价 | | +| avg | 时间段中的平均价 | (1)天级别:可转债是成交额除以成交量;期货是直接从CTP行情获取的,计算方法为成交额除以成交量再除以合约乘数; (2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 | + + **返回** - 请注意, 为了方便比较一只可转债的多个属性, 同时也满足对比多只可转债的一个属性的需求, 我们在security参数是**一只可转债和多只可转债时返回的结构完全不一样 (默认panel=True时)** **代码示例** +``` + +df=get_price('110043.XSHG',count=5,end_date='2023-01-31 10:56:00',frequency='1m', + fields=['open', 'close', 'high', 'low','high_limit','low_limit', 'volume', 'money'],panel = False) +print(df) + open close high low high_limit \ +2023-01-31 10:52:00 118.566 118.600 118.600 118.566 141.676 +2023-01-31 10:53:00 118.580 118.580 118.600 118.580 141.676 +2023-01-31 10:54:00 118.560 118.530 118.560 118.518 141.676 +2023-01-31 10:55:00 118.502 118.461 118.502 118.436 141.676 +2023-01-31 10:56:00 118.440 118.438 118.440 118.369 141.676 + + low_limit volume money +2023-01-31 10:52:00 94.45 840000.0 996206.0 +2023-01-31 10:53:00 94.45 393000.0 466096.0 +2023-01-31 10:54:00 94.45 43000.0 50981.0 +2023-01-31 10:55:00 94.45 30000.0 35534.0 +2023-01-31 10:56:00 94.45 141000.0 166987.0 +``` + +get_bars时间周期的行情数据(支持时间周期:'1m','5m', '15m', '30m', '60m', '120m', '1w', '1M') +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None,df=True) +``` + + 获取各种时间周期的bar数据,bar的分割方式与主流行情软件相同, 同时还支持返回当前时刻所在 bar 的数据。 **参数** - security: 可转债代码,支持单个及多个标的 - count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 - unit: bar的时间单位 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流行情软件划分相似 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; - fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', - include_now: 取值True 或者False。 表示是否包含end_dt所在的bar, 比如end_dt指定为9:38:00,unit参数为5m, 如果 include_now=True,则返回的最后一条bar为9:35:00-9:38:00这个 bar,否则返回的最后一条bar为09:30:00-09:35:00的bar。 - end_dt:查询的截止时间,默认最新的时间。注意:当end_dt指定为当天尚未结束的交易时间时,会自动填充为上一个交易日收盘的时间 - df:默认为True,指定返回数据为dataframe结构;当df=False的时候,传入单个标的时,返回一个np.ndarray,多个标的返回一个字典,key是code,value是np.array **返回** 返回一个pandas.dataframe对象,可以按任意周期返回股票的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 **示例** - 获取一只可转债 +``` + +df = get_bars('110043.XSHG', 5, unit='120m',fields=['date', 'open', 'close', 'high', 'low', 'volume', 'money'],include_now=False, + end_dt='2019-12-05') +print(df) + + date open close high low volume money +0 2019-12-02 15:00:00 103.80 103.87 103.96 103.75 1175000.0 1220479.0 +1 2019-12-03 11:30:00 103.76 103.63 103.80 103.60 1072000.0 1111412.0 +2 2019-12-03 15:00:00 103.60 103.88 103.89 103.56 8357000.0 8672659.0 +3 2019-12-04 11:30:00 103.88 103.74 103.89 103.68 1714000.0 1778679.0 +4 2019-12-04 15:00:00 103.74 103.61 103.74 103.48 9007000.0 9333398.0 +``` + + - 获取多只可转债 +``` + +df=get_bars(['110043.XSHG', '110044.XSHG'],2,'5m', + fields=['date', 'open', 'close', 'high', 'low', 'volume', 'money'],end_dt='2019-12-21 15:00:00') +print(df) + + date open close high low volume \ +110043.XSHG 0 2019-12-20 14:55:00 106.98 106.95 107.06 106.95 29000.0 + 1 2019-12-20 15:00:00 106.93 106.94 106.95 106.92 397000.0 +110044.XSHG 0 2019-12-20 14:55:00 147.02 146.67 147.07 146.67 555000.0 + 1 2019-12-20 15:00:00 146.71 147.30 147.32 146.71 100000.0 + + money +110043.XSHG 0 31018.0 + 1 424483.0 +110044.XSHG 0 815715.0 + 1 147199.0 +``` + +get_ticks (机构)可转债tick数据/2019年起 +``` + +get_ticks(security, start_dt, end_dt, count, fields, skip=True,df=True) +``` + + **可转债部分, 支持 2019-01-01 至今的tick数据,提供买五卖五数据。(每3秒一次快照)** **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 可转债,不支持传入多个标的 - start_dt: 开始日期 - end_dt: 结束日期 - count: 取出指定时间区间内前多少条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下: - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据。 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray - **股票tick返回结果** | 字段名 | 说明 | 字段类型 | | --------- | ---------- | ------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额 | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **可转债tick数据示例**: # start_dt和count只能有一个不为None值 d = get_ticks("110043.XSHG",start_dt=None, end_dt="2023-02-03 10:43:00", count=5) print(d) #输出 time current high low volume money \ 0 2023-02-03 10:42:30.408 116.680 117.687 116.43 66290.0 7740472.0 1 2023-02-03 10:42:36.412 116.680 117.687 116.43 66330.0 7745139.0 2 2023-02-03 10:42:39.416 116.695 117.687 116.43 66340.0 7746306.0 3 2023-02-03 10:42:45.408 116.696 117.687 116.43 66500.0 7764977.0 4 2023-02-03 10:42:48.408 116.705 117.687 116.43 66510.0 7766144.0 a1_p a1_v a2_p a2_v a3_p a3_v a4_p a4_v a5_p \ 0 116.680 30.0 116.695 10.0 116.705 10.0 116.739 20.0 116.740 1 116.705 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 2 116.696 60.0 116.705 10.0 116.739 20.0 116.740 10.0 116.744 3 116.705 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 4 116.706 10.0 116.739 20.0 116.740 10.0 116.744 1960.0 116.750 a5_v b1_p b1_v b2_p b2_v b3_p b3_v b4_p b4_v \ 0 10.0 116.662 110.0 116.658 10.0 116.640 10.0 116.61 10.0 1 10.0 116.695 160.0 116.662 260.0 116.658 10.0 116.64 10.0 2 1960.0 116.695 300.0 116.662 110.0 116.658 10.0 116.64 10.0 3 10.0 116.695 200.0 116.662 110.0 116.658 10.0 116.64 10.0 4 10.0 116.695 200.0 116.662 110.0 116.658 10.0 116.64 10.0 b5_p b5_v 0 116.60 310.0 1 116.61 10.0 2 116.61 10.0 3 116.61 10.0 4 116.61 10.0 +``` +## 宏观数据 + +- **统计局统计开始至今,交易日盘前8:30之前更新** + +方法(跳转链接)描述(点击空白处显示具体内容)数据调用方法注意使用jqdatasdk,数据调用应该是from jqdatasdk import *,而不是 from jqdata import * **数据调用方法** +``` + +from jqdatasdk import macro +macro.run_query(query(macro.table_name).filter(macro.table_name.indicator==value).limit(n)) +``` + + **参数** - **query(macro.table_name)**:表示从macro.table_name这张表中查询宏观经济数据,table_name是所要查询的宏观经济分类表,如macro.MAC_INDUSTRY_ESTATE_INVEST_MONTH代表房地产开发投资情况表,更多表名点击[宏观经济数据分类](https://www.joinquant.com/help/api/help?name=macroData#%E5%86%9C%E4%B8%9A)查看。还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:sqlalchemy.orm.query.Query对象。 - **filter(macro.table_name.indicator==value)**:指定限制条件,macro.table_name.indicator是具体表的字段名称,如macro.MAC_INDUSTRY_ESTATE_INVEST_MONTH.stat_quarter==12代表取出房地产开发投资情况中统计季度等于第四季度的情况。 - **limit(n)**:指定返回的数据条数。 **返回:** 返回一个 dataframe, 每一行对应数据库返回的每一行, 列索引是你所查询的字段 注意 1. 为了防止返回数据量过大, 我们每次最多返回5000行 2. 不能进行连表查询,即同时查询多张表内数据 **示例** +``` + +# 查询分地区农林牧渔业总产值表(季度累计) 的前4条数据 +q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER + ).limit(4) +df = macro.run_query(q) +print(df) + + id stat_quarter area_code area_name total farming forestry \ +0 1 2015-06 350000 福建省 1240.1000 430.4000 101.2000 +1 2 2014-09 350000 福建省 2027.9000 830.8000 155.2000 +2 3 2015-03 350000 福建省 538.2000 148.2000 36.4000 +3 4 2014-12 350000 福建省 3522.3053 1529.5705 323.2506 + + animal_husbandry fishery +0 237.7000 417.6000 +1 368.4000 591.2000 +2 127.6000 197.9000 +3 522.8944 1025.1946 +``` + +``` + +# 查询2014年的分地区农林牧渔业总产值表(年度) +q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR + ).filter(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR.stat_year=='2014') +df = macro.run_query(q) +print(df[:4]) + + id stat_year area_code area_name total farming forestry \ +0 104 2014 110000 北京市 420.0672 155.1015 90.6852 +1 214 2014 120000 天津市 367.7488 182.2270 3.2204 +2 264 2014 130000 河北省 5373.7637 2893.2898 118.4668 +3 164 2014 140000 山西省 1440.5971 872.5551 92.4834 + + animal_husbandry fishery total_idx farming_idx forestry_idx \ +0 152.6590 13.2024 99.9874 91.3496 119.5023 +1 102.7424 68.8678 102.9743 103.3167 103.5446 +2 1895.9047 175.8537 104.0124 103.1439 108.9083 +3 384.0043 7.9749 104.0256 103.2592 102.3852 + + animal_husbandry_idx fishery_idx +0 99.2970 105.1272 +1 102.8987 102.1849 +2 105.0522 103.2209 +3 105.6783 109.1235 +``` + +农业 分地区农林牧渔业总产值表(季度累计) 表名:MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER 分地区农林牧渔业总产值表(年度) 表名:MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR 全国农产品生产价格指数表(季度) 表名:MAC_INDUSTRY_AGR_PRODUCT_IDX_QUARTER 国内贸易 社会消费品销售总额(月度) 表名:MAC_SALE_RETAIL_MONTH 限额以上零售分类表(月度) 表名: MAC_SALE_SCALE_RETAIL_MONTH 分地区消费品零售总额(年度) 表名:MAC_AREA_RETAIL_SALE 亿元以上商品交易市场基本情况(年度) 表名:MAC_SALE_MARKET 分地区亿元以上商品交易市场基本情况(年度) 表名:MAC_AREA_SALE_MARKET 就业与工资 分地区城镇登记失业率(年度) 表名:MAC_AREA_UNEMPLOY 就业情况基本表(年度) 表名:MAC_EMPLOY_YEAR 分地区城镇单位就业人员情况表(年度) 表名:MAC_AREA_WAGEIDX_YEAR 分地区分行业城镇单位就业人员工资情况表(年度) 表名:MAC_AREA_INDUSTRY_WAGE_YEAR 分行业城镇单位就业人员工资情况表(年度) 表名:MAC_INDUSTRY_WAGE_YEAR 分地区按注册类型分城镇单位就业人员工资情况表(年度) 表名:MAC_AREA_REGISTERED_WAGE_YEAR 分地区按行业分城镇单位就业人员情况表(年度) 表名:MAC_AREA_INDUSTRY_EMPLOY_YEAR 资源环境 各地区森林资源情况表(年度) 表名:MAC_RESOURCES_AREA_FOREST 生态环境情况信息表(年度) 表名:MAC_RESOURCES_ECOLOGICAL_ENVIRONMENT 水资源情况表(年度) 表名:MAC_RESOURCES_AREA_WATER_RESOURCES 全国水资源量年度信息表(年度) 表名:MAC_RESOURCES_WATER_RESOURCES_YEAR 各地区供水用水情况表(年度) 表名:MAC_RESOURCES_AREA_WATER_SUPPLY_USE 供水用水情况表(年度) 表名:MAC_RESOURCES_WATER_SUPPLY_USE_YEAR 水环境情况信息表(年度) 表名:MAC_RESOURCES_WATER_ENVIRONMENT 各地区废气排放及处理情况表(年度) 表名:MAC_RESOURCES_AREA_WASTE_GAS_EMISSION 自然灾害情况信息表(年度) 表名:MAC_RESOURCES_NATURAL_DISASTER 环境污染治理投资情况信息表(年度) 表名:MAC_RESOURCES_ENVIRONMENT_TREAT_INVEST 房地产行业 房地产开发投资情况表(月度累计) 表名:MAC_INDUSTRY_ESTATE_INVEST_MONTH 分地区房地产开发投资情况表(月度累计) 表名:MAC_INDUSTRY_AREA_ESTATE_INVEST_MONTH 房地产开发投资资金来源情况表(月度累计) 表名:MAC_INDUSTRY_ESTATE_FUND_SOURCE_MONTH 各地区房地产开发规模与开、竣工面积增长情况表(月度累计) 表名:MAC_INDUSTRY_AREA_ESTATE_BUILD_MONTH 70个大中城市房屋销售价格指数(月度) 表名:MAC_INDUSTRY_ESTATE_70CITY_INDEX_MONTH 金融业 人民币外汇牌价(日级) 表名:MAC_RMB_EXCHANGE_RATE 银行间拆借利率表(日级) 表名:MAC_LEND_RATE 金融机构人民币信贷资金平衡表(年度) 表名:MAC_CREDIT_BALANCE_YEAR 货币供应量(月度) 表名:MAC_MONEY_SUPPLY_MONTH 货币供应量(年度) 表名:MAC_MONEY_SUPPLY_YEAR 货币当局资产负债表(年度) 表名:MAC_CURRENCY_STATE_YEAR 其他存款性公司资产负债表(年度) 表名:MAC_OTHER_DEPOSIT 社会融资规模及构成(年度) 表名:MAC_SOCIAL_SCALE_FINANCE 证券市场基本情况(年度) 表名:MAC_STK_MARKET 黄金和外汇储备(月度) 表名:MAC_GOLD_FOREIGN_RESERVE 股票发行量和筹资额(年度) 表名:MAC_STK_ISSUE 股票市场统计表(年度) 表名:MAC_STK_TRADE 财政政策 **数据调用方法** 国家财政收支总额及增长速度表(年度) 表名:MAC_FISCAL_TOTAL_YEAR 中央财政与地方财政收支及比重表(年度) 表名:MAC_FISCAL_BALANCE_YEAR 中央和地方财政主要收入项目情况表(年度) 表名:MAC_FISCAL_CENTRAL_REVENUE_YEAR 中央和地方财政主要支出项目情况表(年度) 表名:MAC_FISCAL_CENTRAL_EXPENSE_YEAR 各项税收表(年度) 表名:MAC_FISCAL_TAX_YEAR 预算外资金分项目收支表(年度) 表名:MAC_FISCAL_EXTRA_REVENUE_EXPENSE_YEAR 中央财政与地方财政预算外收支表(年度) 表名:MAC_FISCAL_EXTRAL_BALANCE_YEAR 外债余额表(年度) 表名:MAC_FISCAL_EXTERNAL_DEBT_YEAR 外债风险指标表(年度) 表名:MAC_FISCAL_RISK_INDICATOR_YEAR 各地区财政收入表(年度) 表名:MAC_AREA_FISCAL_REVENUE_YEAR 各地区财政支出表(年度) 表名:MAC_AREA_FISCAL_EXPENSE_YEAR 固定资产投资 固定资产投资情况(月度) 表名:MAC_FIXED_INVESTMENT 分地区固定资产投资情况(月度) 表名:MAC_AREA_FIXED_INVESTMENT 分行业固定资产投资情况(月度) 表名:MAC_INDUSTRY_FIXED_INVEST 按注册类型登记分固定资产投资(月度) 表名:MAC_REGISTERED_FIXED_INVESTMENT 固定资产投资情况表(年度) 表名:MAC_FIXED_INVESTMENT_YEAR 对外贸易 货物进出口总额表(年度) 表名:MAC_TRADE_VALUE_YEAR 海关进出口货物分类金额表(年度) 表名:MAC_TRADE_VALUE_SITC_YEAR 地区按经营单位所在地分货物进出口总额表(年度) 表名:MAC_TRADE_VALUE_LOCATION_YEAR 各地区按境内目的地和货源地分货物进出口总额表(年度) 表名:MAC_TRADE_VALUE_DESTINATION_YEAR 利用外资情况表(月度) 表名:MAC_FOREIGN_CAPITAL_MONTH 利用外资概况表(年度) 表名:MAC_FOREIGN_CAPITAL_YEAR 按行业分对外直接投资情况表(年度) 表名:MAC_INDUSTRY_OFDI_YEAR 分国别对外外直接投资情况表(年度) 表名:MAC_NATION_OFDI 分地区外商投资企业年底注册登记情况表(年度) 表名:MAC_AREA_FOREIGN_REGISTER 按行业分外商投资企业年底注册登记情况表(年度) 表名:MAC_INDUSTRY_FOREIGN_REGISTER 对外经济合作表(年度) 表名:MAC_FOREIGN_COOPERATE_YEAR 按国别对外经济合作表(年度) 表名:MAC_NATION_COOPERATE_YEAR 景气指数 宏观经济景气指数(月度) 表名:MAC_ECONOMIC_BOOM_IDX 消费者景气指数(月度) 表名:MAC_CONSUMER_BOOM_IDX 宏观经济景气预警指数(月度) 表名:MAC_BOOM_WARNING_IDX 企业景气及企业家信心指数(季度) 表名:MAC_ENTERPRISE_BOOM_CONFIDENCE_IDX 制造业采购经理指数(月度) 表名:MAC_MANUFACTURING_PMI 非制造业采购经理指数(月度) 表名:MAC_NONMANUFACTURING_PMI 分地区居民消费价格指数(月度) 表名:MAC_AREA_CPI_MONTH 全国居民消费价格指数(月度) 表名:MAC_CPI_MONTH 工业 全国工业增长速度(月度) 表名:MAC_INDUSTRY_GROWTH 全国工业分行业增长速度(月度) 表名:MAC_INDUSTRY_CATEGORY_GROWTH 全国工业企业主要经济指标(月度) 表名:MAC_INDUSTRY_INDICATOR 保险业 全国各地区保险业务统计表(年度) 表名:MAC_INSURANCE_AREA_YEAR 保险公司保费金额表(年度) 表名:MAC_INSURANCE_PREMIUM_YEAR 保险公司赔款及给付表(年度) 表名:MAC_INSURANCE_PAYMENT_YEAR 保险公司资产情况(年度) 表名:MAC_INSURANCE_ASSETS_YEAR 保险公司原保费收入和赔付支出情况(年度) 表名:MAC_INSURANCE_REVENUE_EXPENSE_YEAR 国民经济 全国各地区的行政划分(年度) 表名:MAC_AREA_DIV 分地区国内生产总值表(季度) 表名:MAC_AREA_GDP_QUARTER 分地区国内生产总值表(年度) 表名:MAC_AREA_GDP_YEAR 分地区国内生产总值指数表(上年=100,年度) 表名:MAC_AREA_GDP_YEAR_IDX 分地区国内生产总值指数表(年度) 表名:MAC_AREA_GDP_YEAR_IDX_1978 分地区支出法国内生产总值表(年度) 表名:MAC_AREA_GDP_EXPEND_YEAR 分地区收入法国内生产总值表(年度) 表名:MAC_AREA_GDP_INCOME_YEAR 国家统计局发布经济信息的日程表(年度) 表名:MAC_STATS_REPORT_CALENDAR 人民生活 各地区居民消费水平表(年度) 表名:MAC_AREA_CONSUME_YEAR 居民人均收入支出表(年度) 表名:MAC_REVENUE_EXPENSE_YEAR 城乡居民家庭人均收入及恩格尔系数(年度) 表名:MAC_ENGEL_COEFFICIENT_YEAR 城乡居民人民币储蓄存款表(年度) 表名:MAC_RESIDENT_SAVING_DEPOSIT_YEAR 分地区城镇居民家庭平均每人全年收入来源表(年度) 表名:MAC_AREA_URBAN_INCOME_YEAR 分地区城镇及农村居民家庭平均每人全年消费性支出表(年度) 表名:MAC_AREA_URBAN_RURAL_EXPENSE_YEAR 农村居民家庭平均每人纯收入(年度) 表名:MAC_RURAL_NET_INCOME_YEAR 各地区按来源分农村居民家庭人均纯收入(年度) 表名:MAC_AREA_RURAL_NET_INCOME_YEAR 分地区农村居民家庭住房情况表(年度) 表名:MAC_AREA_RURAL_HOUSE_YEAR 人口信息 人口基本情况表(年度): 表名:MAC_POPULATION_YEAR 各地区人口平均预期寿命表(年度) 表名:MAC_LIFE_EXPECT 按年龄和性别分人口数表(年度) 表名:MAC_POPULATION_AGE 各地区户数、人口数、性别比和户规模表(年度) 表名:MAC_AREA_HOUSEHOLD_SIZE 户口登记状况(年度) 表名:MAC_AREA_HOUSEHOLD_REGISTER 各地区人口年龄结构和抚养比例表(年度) 表名:MAC_AREA_POP_DEPENDENCY 各地区按性别和婚姻状况分的人口表(年度) 表名:MAC_AREA_POP_MARITAL 各地区按性别和受教育程度分人口情况表(年度) 表名:MAC_AREA_POP_EDUCATION 各地区按性别分的15岁及以上文盲人口表(年度) 表名:MAC_AREA_POP_ILLITERATE 各地区按家庭户规模分的户数表(年度) 表名:MAC_AREA_FAMILY_HOUSEHOLD 育龄妇女分年龄生育状况表(年度) 表名:MAC_POP_FERTILITY_RATE 人口年龄结构和抚养比例表(年度) 表名:MAC_POPULATION_DEPENDENCY ## 新闻联播文本 + +- **2009年6月至今,每日21:30前更新** + +方法描述CCTV_NEWS新闻联播文本数据 +``` + +from jqdatasdk import * +finance.run_query(query(finance.CCTV_NEWS).filter(finance.CCTV_NEWS.day=='2019-02-19').limit(n)) +``` + + 获取新闻联播每日播报的新闻文本数据,数据来源:央视新闻联播频道,时间范围:2009-06-26至今。 **参数:** + **query(finance.CCTV_NEWS)**:表示从finance.CCTV_NEWS 这张表中查询新闻联播的新闻文本数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见: **[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html)** + **finance.CCTV_NEWS**:收录了新闻联播每日播报的新闻文本数据,表结构和字段信息如下: **字段统计** | 字段名称 | 中文名称 | 字段类型 | 非空 | 描述 | | -------- | -------- | ------------- | ---- | ---- | | day | 日期 | date | Y | | | title | 标题 | varchar(200) | Y | | | content | 正文 | varchar(5000) | | | + **filter(finance.CCTV_NEWS.day=='2019-02-19')**:指定筛选条件,通过finance.CCTV_NEWS.day=='2019-02-19' 可以指定你想要查询的某天的新闻联播的新闻文本数据;除此之外,还可以对表中其他字段指定筛选条件,如finance.CCTV_NEWS.title.like('%%新春%%'),表示标题中包含'新春'的新闻文本数据;多个筛选条件用英文逗号分隔。 + **limit(n)**:限制返回的数据条数,n指定返回条数。 **返回结果:** + 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 **注意:** 1. 为了防止返回数据量过大, 我们每次最多返回5000行 2. 不能进行连表查询,即同时查询多张表的数据 **示例:** +``` + +#查询day==2019-02-19的新闻联播文本内容 +from jqdatasdk import * +df=finance.run_query(query(finance.CCTV_NEWS).filter(finance.CCTV_NEWS.day=='2019-02-19').limit(10)) +print(df) + + id day title \ +0 77833 2019-02-19 【央视快评】推动深度融合 加快建设新型主流媒体 +1 77828 2019-02-19 【领航新时代】安徽:树作风标杆 谋发展之变 +2 77829 2019-02-19 中共中央 国务院关于坚持农业农村优先发展 做好“三农”工作的若干意见 +3 77830 2019-02-19 人民日报社论:决胜全面建成小康社会 推进乡村全面振兴 +4 77836 2019-02-19 国内联播快讯 +5 77838 2019-02-19 国际联播快讯 +6 77832 2019-02-19 守正创新 壮大主流舆论阵地 +7 77831 2019-02-19 栗战书与伊朗伊斯兰议会议长举行会谈 +8 77837 2019-02-19 欧盟就对俄新制裁达成共识 +9 77834 2019-02-19 赏灯游园庆佳节 欢欢喜喜闹元宵 + + content +0 本台今天刊播央视快评《推动深度融合 加快建设新型主流媒体》。 \r\n ... +1 2014年3月9日,习近平总书记在参加十二届全国人大二次会议安徽代表团审议时指出:各... +2 中共中央、国务院日前发出《关于坚持农业农村优先发展 做好“三农”工作的若干意见》。《... +3 明天出版的人民日报将发表社论,题目是《决胜全面建成小康社会 推进乡村全面振兴》。 ... +4 \r\n 人民银行:首单银行永续债顺利发行 \r... +5 \r\n 叙鲁克班干难民营开人道主义通道 \r\... +6 三年前的2月19日,习近平总书记考察中央主要新闻媒体,主持召开党的新闻舆论工作座谈会... +7 全国人大常委会委员长栗战书19日在人民大会堂与伊朗伊斯兰议会议长拉里贾尼举行会谈。 ... +8 欧盟外交和安全政策高级代表莫盖里尼18日表示,欧盟国家已经达成共识,将就俄乌刻赤海峡... +9 正月十五元宵佳节,人们走出家门游园赏灯闹元宵,感受传统文化的魅力。 \r\n ... +``` + +``` + +#进一步获取新闻正文内容 +print(df.iloc[2,3]) + +中共中央、国务院日前发出《关于坚持农业农村优先发展 做好“三农”工作的若干意见》。《意见》指出,今明两年是全面建成小康社会的决胜期,“三农”领域有不少必须完成的硬任务。党中央认为,在经济下行压力加大、外部环境发生深刻变化的复杂形势下,做好“三农”工作具有特殊重要性,必须坚持把解决好“三农”问题作为全党工作重中之重不动摇。 + 《意见》提出,要聚力精准施策,决战决胜脱贫攻坚,不折不扣完成脱贫攻坚任务,咬定既定脱贫目标,落实已有政策部署,到2020年确保现行标准下农村贫困人口实现脱贫、贫困县全部摘帽、解决区域性整体贫困。要夯实农业基础,保障重要农产品有效供给;要扎实推进乡村建设,加快补齐农村人居环境和公共服务短板;要发展壮大乡村产业,拓宽农民增收渠道;要全面深化农村改革,激发乡村发展活力;要完善乡村治理机制,保持农村社会和谐稳定;要发挥农村党支部战斗堡垒作用,全面加强农村基层组织建设。 + 要加强党对“三农”工作的领导,落实农业农村优先发展总方针,发挥好农民主体作用,让农民更多参与并从中获益。 +``` + +## tick数据(机构) + +方法描述 / 更新时间及频率股票tick数据2010-01-01起 +``` + +get_ticks(security, start_dt, end_dt, count, fields, skip=True,df=True) +``` + + **股票部分, 支持 2010-01-01 至今的tick数据,提供买五卖五数据。盘后15:00更新,24:00校对完成入库** **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 股票代码或期货代码,不支持传入多个标的 - start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' - end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' - count: 取出指定时间区间内前多少条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下: - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray - **股票tick返回结果** | 字段名 | 说明 | 字段类型 | | --------- | ---------- | ------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额 | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **股票tick数据示例**: +``` + +# 获取平安银行2018-07-02的tick数据,start_dt和count只能有一个不为None值 +d = get_ticks("000001.XSHE",start_dt=None, end_dt="2018-07-03", count=8) +print(d) + +#输出 + time current high low volume money a1_p \ +0 2018-07-02 14:56:42 8.62 9.05 8.56 128332300.0 1.130823e+09 8.62 +1 2018-07-02 14:56:45 8.62 9.05 8.56 128348600.0 1.130963e+09 8.62 +2 2018-07-02 14:56:48 8.61 9.05 8.56 128380000.0 1.131233e+09 8.62 +3 2018-07-02 14:56:51 8.62 9.05 8.56 128420300.0 1.131581e+09 8.62 +4 2018-07-02 14:56:54 8.62 9.05 8.56 128425000.0 1.131621e+09 8.62 +5 2018-07-02 14:56:57 8.62 9.05 8.56 128485000.0 1.132138e+09 8.62 +6 2018-07-02 14:57:00 8.62 9.05 8.56 128514800.0 1.132395e+09 0.00 +7 2018-07-02 15:00:03 8.61 9.05 8.56 131552000.0 1.158546e+09 8.61 + + a1_v a2_p a2_v ... b1_p b1_v b2_p b2_v b3_p \ +0 479000.0 8.63 651000.0 ... 8.61 13500.0 8.60 434200.0 8.59 +1 478700.0 8.63 651000.0 ... 8.61 5500.0 8.60 436600.0 8.59 +2 478400.0 8.63 651000.0 ... 8.61 2000.0 8.60 512600.0 8.59 +3 464600.0 8.63 651000.0 ... 8.61 23100.0 8.60 558200.0 8.59 +4 460300.0 8.63 651000.0 ... 8.61 108800.0 8.60 564300.0 8.59 +5 386500.0 8.63 649000.0 ... 8.61 399200.0 8.60 682500.0 8.59 +6 0.0 0.00 0.0 ... 0.00 0.0 0.00 0.0 0.00 +7 2560700.0 8.62 483200.0 ... 8.60 1009300.0 8.59 201000.0 8.58 + + b3_v b4_p b4_v b5_p b5_v +0 211300.0 8.58 311100.0 8.57 180000.0 +1 211300.0 8.58 306100.0 8.57 180000.0 +2 210900.0 8.58 306100.0 8.57 180000.0 +3 209600.0 8.58 306200.0 8.57 179200.0 +4 209500.0 8.58 307300.0 8.57 184200.0 +5 209500.0 8.58 306800.0 8.57 184200.0 +6 0.0 0.00 0.0 0.00 0.0 +7 365600.0 8.57 184700.0 8.56 250900.0 + +[8 rows x 26 columns] +``` + +期货tick数据2010-01-01 起 +``` + +get_ticks(security, start_dt, end_dt, count, fields, skip,df=True) +``` + + **期货部分, 支持 2010-01-01 至今的tick数据,提供买一卖一数据。盘后15:00更新,24:00校对完成入库。**如果要获取主力合约的tick数据,可以先使用get_dominant_future(underlying_symbol,dt)获取主力合约对应的标的,然后再用get_ticks()获取该合约的tick数据 **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 期货代码 - start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' - end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' - count: 取出指定时间区间内前多少条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下: - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray - **期货tick返回结果:** | 字段名 | 说明 | 字段类型 | | -------- | ----------| -------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(手)| float | | money | 累计成交额 | float | | position | 持仓量 | float | | a1_v | 一档卖量 | float | | a1_p | 一档卖价 | float | | b1_v | 一档买量 | float | | b1_p | 一档买价 | float | **期货tick数据示例**: +``` + +#获取AU1812期货合约在“2018-07-03”前8个时间单位的tick数据,start_dt和count只能有一个不为None值 +df=get_ticks('AU1812.XSGE',end_dt='2018-07-03',count=8) +print(df) + time current high low volume money \ +0 2018-07-02 23:59:35.500 272.00 272.95 272.0 42922.0 1.170027e+10 +1 2018-07-02 23:59:37.000 272.05 272.95 272.0 42942.0 1.170571e+10 +2 2018-07-02 23:59:37.500 272.05 272.95 272.0 42966.0 1.171224e+10 +3 2018-07-02 23:59:38.000 272.05 272.95 272.0 42974.0 1.171442e+10 +4 2018-07-02 23:59:43.000 272.05 272.95 272.0 42978.0 1.171550e+10 +5 2018-07-02 23:59:45.500 272.05 272.95 272.0 42986.0 1.171768e+10 +6 2018-07-02 23:59:46.000 272.05 272.95 272.0 42994.0 1.171986e+10 +7 2018-07-02 23:59:59.000 272.05 272.95 272.0 42998.0 1.172094e+10 + + position a1_p a1_v b1_p b1_v +0 361578.0 272.05 57.0 272.00 281.0 +1 361570.0 272.05 12.0 272.00 289.0 +2 361562.0 272.10 96.0 272.05 14.0 +3 361554.0 272.10 97.0 272.05 25.0 +4 361554.0 272.10 97.0 272.05 24.0 +5 361546.0 272.10 95.0 272.05 20.0 +6 361538.0 272.10 91.0 272.05 16.0 +7 361534.0 272.10 85.0 272.05 17.0 +``` + +期权tick数据上交所ETF(2017-01-01起),商品期权(2019-12-02起) +``` + +get_ticks(security, start_dt, end_dt, count, fields,df) +``` + + **期权部分**, 支持期权tick数据,盘后15:00更新,24:00校对完成入库。其中上交所ETF期权从2017-01-01开始,提供买卖五档;商品期权从2019-12-02开始,提供买卖一档。 **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 期权代码;如security='10001979.XSHG' #上交所ETF期权,上海证券交易所;security='CU2001C42000.XSGE'#铜期权,上海期货交易所; security='SR003C5600.XZCE' #白糖期权,郑州商品交易所; security='M2005-P-2400.XDCE' #豆粕期权,大连商品交易所; - start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' - end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' - count: 取出指定时间区间内前多少条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下: - skip: 默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray **期权tick返回结果:** | 字段名 | 说明 | 字段类型 | | ----------- | -------------- | -------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(张) | float | | money | 累计成交额(元) | float | | position | 持仓量(张) | float | | a1_p | 一档卖价 | float | | a1_v | 一档卖量 | float | | ... | | | | a5_p | 五档卖价 | float | | a5_v | 五档卖量 | float | | b1_p | 一档买价 | float | | b1_v | 一档买量 | float | | ... | | | | b5_p | 五档买价 | float | | b5_v | 五档买量 | float | **期权tick数据示例**: +``` + +# 获取上交所ETF期权('10001313.XSHG')2018-12-20 10:00:00往前8个时间单位 +df=get_ticks('10001313.XSHG',end_dt='2018-12-20 10:00:00',count=8) +print(df) + time current high low volume money \ +0 2018-12-20 09:59:37.740 0.0041 0.0076 0.004 11754.0 662475.03 +1 2018-12-20 09:59:39.240 0.0042 0.0076 0.004 11774.0 663332.00 +2 2018-12-20 09:59:42.740 0.0043 0.0076 0.004 11784.0 663770.69 +3 2018-12-20 09:59:45.240 0.0043 0.0076 0.004 11798.0 664384.85 +4 2018-12-20 09:59:46.240 0.0042 0.0076 0.004 11808.0 664813.33 +5 2018-12-20 09:59:51.712 0.0042 0.0076 0.004 11812.0 664984.72 +6 2018-12-20 09:59:55.232 0.0042 0.0076 0.004 11822.0 665413.21 +7 2018-12-20 09:59:55.732 0.0042 0.0076 0.004 11839.0 666141.63 + + position a1_p a1_v a2_p ... b1_p b1_v b2_p b2_v b3_p \ +0 93502.0 0.0043 37.0 0.0044 ... 0.0041 10.0 0.0040 10.0 0.0039 +1 93510.0 0.0043 37.0 0.0044 ... 0.0042 42.0 0.0041 31.0 0.0039 +2 93520.0 0.0043 55.0 0.0044 ... 0.0042 42.0 0.0040 10.0 0.0039 +3 93534.0 0.0043 81.0 0.0044 ... 0.0042 42.0 0.0040 22.0 0.0039 +4 93534.0 0.0043 81.0 0.0044 ... 0.0042 40.0 0.0040 32.0 0.0039 +5 93534.0 0.0043 81.0 0.0044 ... 0.0042 46.0 0.0040 32.0 0.0039 +6 93534.0 0.0043 81.0 0.0044 ... 0.0042 36.0 0.0041 12.0 0.0040 +7 93534.0 0.0043 81.0 0.0044 ... 0.0042 19.0 0.0041 12.0 0.0040 + + b3_v b4_p b4_v b5_p b5_v +0 62.0 0.0038 32.0 0.0037 30.0 +1 62.0 0.0038 42.0 0.0037 30.0 +2 94.0 0.0038 32.0 0.0037 30.0 +3 72.0 0.0038 42.0 0.0037 30.0 +4 62.0 0.0038 42.0 0.0037 30.0 +5 62.0 0.0038 32.0 0.0037 40.0 +6 50.0 0.0039 62.0 0.0038 32.0 +7 50.0 0.0039 62.0 0.0038 32.0 + +[8 rows x 27 columns] +``` + +场内基金tick数据2019-01-01起 +``` + +get_ticks(security, start_dt, end_dt, count, fields, skip,df) +``` + + **场内基金部分, 支持 2019-01-01 至今的tick数据,提供买五卖五盘口数据。盘后15:00更新,24:00校对完成入库** **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 场内基金代码,如'510050.XSHG' - start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' - end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' - count: 取出指定时间区间内前N条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下场内基金tick返回结果。 - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据 - df:指定返回的数据格式,默认为True,返回dataframe;df=False时返回一个np.ndarray **场内基金tick返回结果** | 字段名 | 说明 | 字段类型 | | :-------- | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额 | float | | a1_v~a5_v | 五档卖量 | float | | a1_p~a5_p | 五档卖价 | float | | b1_v~b5_v | 五档买量 | float | | b1_p~b5_p | 五档买价 | float | **获取场内基金tick数据示例**: +``` + +#获取50ETF基金2019-10-15的tick数据 +df=get_ticks('510050.XSHG','2019-10-16 09:00:00','2019-10-16 15:00:00') +print(df[:8]) + time current high low volume money \ +0 2019-10-16 09:25:00.392 3.064 3.064 3.064 2327900.0 7132686.0 +1 2019-10-16 09:30:00.552 3.064 3.065 3.063 2491600.0 7634304.0 +2 2019-10-16 09:30:03.532 3.064 3.065 3.063 3177815.0 9737131.0 +3 2019-10-16 09:30:06.488 3.062 3.065 3.062 4283600.0 13124520.0 +4 2019-10-16 09:30:08.988 3.064 3.065 3.062 4346100.0 13315970.0 +5 2019-10-16 09:30:11.480 3.065 3.065 3.062 4666100.0 14296725.0 +6 2019-10-16 09:30:14.500 3.064 3.065 3.062 4731900.0 14498336.0 +7 2019-10-16 09:30:17.360 3.062 3.065 3.062 4856200.0 14878966.0 + + a1_p a1_v a2_p a2_v ... b1_p b1_v b2_p \ +0 3.064 80011.0 3.065 471300.0 ... 3.063 111500.0 3.062 +1 3.065 412211.0 3.066 50800.0 ... 3.064 20900.0 3.063 +2 3.065 110711.0 3.066 44400.0 ... 3.064 118700.0 3.063 +3 3.063 45715.0 3.064 49200.0 ... 3.062 101200.0 3.061 +4 3.064 44615.0 3.065 1338211.0 ... 3.063 500.0 3.062 +5 3.065 1062826.0 3.066 1544500.0 ... 3.064 10000.0 3.063 +6 3.064 1445000.0 3.065 1662826.0 ... 3.063 3100.0 3.062 +7 3.062 252800.0 3.064 2594900.0 ... 3.061 121500.0 3.060 + + b2_v b3_p b3_v b4_p b4_v b5_p b5_v +0 91300.0 3.061 50600.0 3.060 159200.0 3.059 10800.0 +1 97100.0 3.062 93300.0 3.061 55600.0 3.060 159200.0 +2 546585.0 3.062 165500.0 3.061 156400.0 3.060 402100.0 +3 466400.0 3.060 473100.0 3.059 20100.0 3.058 219200.0 +4 101200.0 3.061 399900.0 3.060 491100.0 3.059 20100.0 +5 500.0 3.062 111200.0 3.061 471500.0 3.060 521100.0 +6 111200.0 3.061 481500.0 3.060 521100.0 3.059 164100.0 +7 522100.0 3.059 164100.0 3.058 363200.0 3.057 400.0 + +[8 rows x 26 columns] +``` + +指数tick数据2017-01-01起 +``` + +get_ticks(security, start_dt=None, end_dt=None, count=None, fields=None, skip=True, df=True) +``` + + **指数部分, 支持 2017-01-01 至今的tick数据。盘后15:00更新,24:00校对完成入库** **购买**:用户如有需要使用tick数据的,可添加**微信号JQData02**申请试用或咨询开通,或发送邮件至jqdatasdk@joinquant.com **参数**: - security: 指数代码,如'000001.XSHG' - start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' - end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' - count: 取出指定时间区间内前N条的tick数据。 - fields: 选择要获取的行情数据字段,默认为None,返回结果如下指数tick返回结果。 - skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据 - df: 默认为True,传入单个标的返回的是一个dataframe, 当df=False的时候,返回一个np.ndarray **指数tick返回结果:** | 字段名 | 说明 | 字段类型 | | :------ | :--------------- | :------- | | time | 时间 | datetime | | current | 当前价 | float | | high | 当日最高价 | float | | low | 当日最低价 | float | | volume | 累计成交量(股) | float | | money | 累计成交额(元) | float | **获取指数tick数据示例**: +``` + +# 获取上证指数2019-11-19 10:00:00 到 2019-11-19 10:01:00的tick数据 +df=get_ticks('000001.XSHG','2019-11-19 10:00:00','2019-11-19 10:01:00') +print(df) + time current high low volume \ +0 2019-11-19 10:00:01.608 2913.4288 2914.6199 2902.855 2.795233e+09 +1 2019-11-19 10:00:06.600 2913.1890 2914.6199 2902.855 2.800322e+09 +2 2019-11-19 10:00:10.628 2913.0532 2914.6199 2902.855 2.807082e+09 +3 2019-11-19 10:00:16.608 2913.3964 2914.6199 2902.855 2.814624e+09 +4 2019-11-19 10:00:21.620 2913.2224 2914.6199 2902.855 2.818837e+09 +5 2019-11-19 10:00:25.620 2913.6741 2914.6199 2902.855 2.824412e+09 +6 2019-11-19 10:00:31.608 2912.6091 2914.6199 2902.855 2.830766e+09 +7 2019-11-19 10:00:36.588 2913.6492 2914.6199 2902.855 2.835326e+09 +8 2019-11-19 10:00:40.620 2913.5004 2914.6199 2902.855 2.840942e+09 +9 2019-11-19 10:00:46.580 2913.7269 2914.6199 2902.855 2.846658e+09 +10 2019-11-19 10:00:51.588 2913.7699 2914.6199 2902.855 2.850605e+09 +11 2019-11-19 10:00:55.608 2913.9637 2914.6199 2902.855 2.856479e+09 + + money +0 3.171538e+10 +1 3.178079e+10 +2 3.185376e+10 +3 3.193569e+10 +4 3.198723e+10 +5 3.204712e+10 +6 3.212560e+10 +7 3.217697e+10 +8 3.224518e+10 +9 3.231385e+10 +10 3.236239e+10 +11 3.242965e+10 +​ +``` + +## 因子数据(含新接口) + +### 聚宽因子库 + +- **更新时间:2005年至今,下一自然日5:00、8:00更新** +- **复权方式:后复权** + +方法描述get_factor_values因子值 +``` + +# 导入函数库 +from jqdatasdk import get_factor_values +# 取值函数 +get_factor_values(securities, factors, start_date, end_date, count) +``` + + **参数** - securities:股票池,单只股票(字符串)或一个股票列表 - factors: 因子名称,单个因子(字符串)或一个因子列表 - start_date:开始日期,字符串或 datetime 对象,与 coun t参数二选一 - end_date: 结束日期, 字符串或 datetime 对象,可以与 start_date 或 count 配合使用 - count: 截止 end_date 之前交易日的数量(含 end_date 当日),与 start_date 参数二选一 **返回** - 一个 dict: key 是因子名称, value 是 pandas.dataframe。 - dataframe 的 index 是日期, column 是股票代码, value 是因子值 - 注:1.为保证数据的连续性,所有数据基于后复权计算 ​ 2.为了防止单次返回数据时间过长,每次调用 api 请求的因子值不能超过 200000 个 **购买** 用户如有需要使用聚宽因子的,请联系我们的运营同事。**个人用户咨询【邮箱:sunping@joinquant.com】,机构服务咨询添加微信号JQData02** **示例** +``` + +# 导入函数库 +from jqdatasdk import get_factor_values + +# 获取因子Skewness60(个股收益的60日偏度)从 2017-01-01 至 2017-03-04 的因子值 +factor_data = get_factor_values(securities=['000001.XSHE'], factors=['Skewness60','DEGM','quick_ratio'], start_date='2017-01-01', end_date='2017-03-04') +# 查看因子值 +print(factor_data['Skewness60'][:5]) + + 000001.XSHE +2017-01-03 -0.002081 +2017-01-04 0.021962 +2017-01-05 -0.003263 +2017-01-06 -0.007545 +2017-01-09 -0.007441 +``` + +get_all_factors聚宽因子库中所有的因子 +``` + +get_all_factors() +``` + + 描述:获取聚宽因子库中所有的因子code和因子名称 **参数**:无 **返回**:pandas.DataFrame, - factor:因子code - factor_intro:因子说明 - category:因子分类名称 - category_intro:因子分类说明 **示例**: +``` + +from jqdatasdk import * +#获取聚宽因子库所有因子 +df = get_all_factors() +print(df) +``` + +get_factor_effect单因子分层回测函数 +``` + +get_factor_effect(security, start_date, end_date, period, factor, group_num=5) +``` + + **单因子分层回测函数**是为了检测单个因子的选股收益效果而设计。指定股票池,根据因子值从小到大将股票池等分成几组,按照一定的调仓周期进行交易,从而得到各个股票组合从开始交易至各个调仓周期结束日期的累计收益,最后从各组股票的收益情况来判断因子的选股效果。 **输入参数:** | 参数 | 名称 | 说明 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | security | 指数代码(如传入沪深300指数:000300.XSHG) | 指数的成分股作为基础股票池 | | start_date | 开始交易日期 | | | end_date | 结束交易日期 | | | period | 调仓周期,传入'XD','XW','XM',分别代表按X个交易日调仓,按X周调仓,按X月调仓。 | D代表交易日,W代表自然周,M代表自然月 | | factor | 因子库的因子名称,如传入营业收入TTM:'operating_revenue_ttm' | | | group_num | 股票分组数,默认5组 | 每次调仓根据股票池中各个股票的因子值,按照从小到大排序,然后等分成group_num个股票组合 | **返回结果:** 返回DataFrame结果:输出从开始日期到各个调仓周期结束日期的累计收益 **示例:** +``` + +#获取聚宽因子库营业收入TTM因子“operating_revenue_ttm”的分层回测收益 +get_factor_effect('000300.XSHG','2018-01-01','2019-03-14','1W','operating_revenue_ttm',5) + 0 1 2 3 4 +2018-01-02 0.000000 0.000000 0.000000 0.000000 0.000000 +2018-01-07 0.016188 0.022237 0.022782 0.034021 0.019601 +2018-01-14 0.016673 0.027506 0.023735 0.038333 0.028146 +2018-01-21 0.010664 0.021467 0.019280 0.047467 0.051798 +2018-01-28 0.029561 0.045975 0.035523 0.068780 0.069267 +2018-02-04 -0.043394 -0.024648 -0.018661 0.019054 0.032855 +2018-02-11 -0.089295 -0.074211 -0.077474 -0.052757 -0.039418 +2018-02-18 -0.073470 -0.054493 -0.054195 -0.033000 -0.019903 +2018-02-25 -0.067193 -0.041986 -0.042457 -0.021707 -0.007593 +2018-03-04 -0.033245 -0.025273 -0.030161 -0.033868 -0.045769 +2018-03-11 -0.020114 -0.021214 -0.013208 -0.019305 -0.030632 +2018-03-18 -0.029137 -0.032529 -0.021925 -0.027630 -0.041352 +2018-03-25 -0.064177 -0.064671 -0.058877 -0.061889 -0.085263 +2018-04-01 -0.003285 -0.028887 -0.033231 -0.046336 -0.076845 +2018-04-08 -0.006359 -0.031904 -0.038573 -0.051862 -0.088896 +2018-04-15 0.004866 -0.021881 -0.025195 -0.035230 -0.070057 +2018-04-22 -0.006075 -0.032995 -0.042340 -0.050449 -0.088741 +2018-04-29 -0.009586 -0.036259 -0.043901 -0.051380 -0.076490 +2018-05-06 -0.005316 -0.034041 -0.036198 -0.047776 -0.075190 +2018-05-13 0.014917 -0.009112 -0.013855 -0.023397 -0.053566 +2018-05-20 0.011802 -0.002750 -0.015573 -0.024692 -0.063800 +2018-05-27 0.001798 -0.013322 -0.031322 -0.045623 -0.086970 +2018-06-03 -0.040517 -0.030385 -0.044497 -0.060837 -0.100368 +2018-06-10 -0.040419 -0.027619 -0.045175 -0.049896 -0.091778 +2018-06-17 -0.053201 -0.041341 -0.062207 -0.043582 -0.088657 +2018-06-24 -0.112111 -0.097411 -0.112584 -0.076721 -0.122632 +2018-07-01 -0.124040 -0.126341 -0.142075 -0.130394 -0.168522 +2018-07-08 -0.154623 -0.166611 -0.183293 -0.167979 -0.206130 +2018-07-15 -0.131941 -0.135819 -0.152597 -0.142129 -0.179568 +2018-07-22 -0.149347 -0.149766 -0.158073 -0.158747 -0.191595 +... ... ... ... ... ... +2018-08-26 -0.169002 -0.177045 -0.164723 -0.147438 -0.165472 +2018-09-02 -0.164746 -0.176812 -0.161130 -0.143572 -0.164895 +2018-09-09 -0.162940 -0.184331 -0.165968 -0.155226 -0.178692 +2018-09-16 -0.177941 -0.193842 -0.172332 -0.159286 -0.178187 +2018-09-23 -0.163193 -0.175474 -0.156346 -0.135481 -0.155490 +2018-09-30 -0.164912 -0.172917 -0.145858 -0.133545 -0.151764 +2018-10-07 -0.164912 -0.172917 -0.145858 -0.133545 -0.151764 +2018-10-14 -0.259750 -0.248041 -0.215601 -0.196959 -0.208112 +2018-10-21 -0.303351 -0.291153 -0.270591 -0.244878 -0.254668 +2018-10-28 -0.264349 -0.272121 -0.256642 -0.227903 -0.238259 +2018-11-04 -0.225268 -0.236059 -0.227813 -0.204811 -0.219570 +2018-11-11 -0.244029 -0.253912 -0.241129 -0.218995 -0.233955 +2018-11-18 -0.189706 -0.223133 -0.209761 -0.195135 -0.214504 +2018-11-25 -0.203514 -0.237002 -0.229146 -0.207192 -0.223062 +2018-12-02 -0.210628 -0.247018 -0.229002 -0.207702 -0.229168 +2018-12-09 -0.240338 -0.252045 -0.242047 -0.220732 -0.244116 +2018-12-16 -0.233411 -0.243337 -0.233622 -0.204193 -0.231376 +2018-12-23 -0.252406 -0.264364 -0.252982 -0.218965 -0.252012 +2018-12-30 -0.265173 -0.275675 -0.258506 -0.224265 -0.260110 +2019-01-06 -0.284588 -0.298950 -0.286530 -0.239417 -0.274474 +2019-01-13 -0.283472 -0.298144 -0.272225 -0.232628 -0.271904 +2019-01-20 -0.287051 -0.300502 -0.266322 -0.230273 -0.265460 +2019-01-27 -0.290530 -0.301049 -0.271329 -0.236393 -0.268858 +2019-02-03 -0.311722 -0.316899 -0.288474 -0.233212 -0.261969 +2019-02-10 -0.311722 -0.316899 -0.288474 -0.233212 -0.261969 +2019-02-17 -0.266305 -0.269386 -0.243151 -0.192969 -0.234676 +2019-02-24 -0.234200 -0.246632 -0.223176 -0.176753 -0.221142 +2019-03-03 -0.205863 -0.215581 -0.197200 -0.146078 -0.185385 +2019-03-10 -0.178159 -0.206479 -0.191125 -0.132881 -0.188446 +2019-03-17 -0.170113 -0.198817 -0.188283 -0.121740 -0.177256 +``` + +因子列表因子列表 **说明:** - 在单因子分析中可以直接获取因子库中的数据 - 同时也可以通过API的形式,在其他模块中获取这些因子 - 为保证数据的连续性,所有数据基于**后复权**计算 - 涉及到财务数据的因子,使用季报数据进行计算 - 为了防止单次返回数据时间过长,每次调用 api 请求的因子值不能超过 200000 个 - 频率为天,每天05:00更新前一天数据 - 提供股票的因子数据,不支持期货、指数等 - 因子库中nan值:缺少依赖数据;财务数据中如果标的未披露相关字段,依赖数据不完整的话会返回nan值,请注意到财务报表披露规则变更,标的报表披露形式(金融类,非金融类等) , 以及标的上市时间等 - 有关因子处理:仅风格因子有进行去极值及标准化的处理(风格因子的基础因子为原始因子) **基础因子** |因子 code|因子名称|计算方法| |--|--|--| |net_working_capital|净运营资本| 流动资产 - 流动负债| |total_operating_revenue_ttm|营业总收入TTM|计算过去12个月的 营业总收入 之和| |operating_profit_ttm|营业利润TTM|计算过去12个月 营业利润 之和| |net_operate_cash_flow_ttm|经营活动现金流量净额TTM|计算过去12个月 经营活动产生的现金流量净值 之和| |operating_revenue_ttm|营业收入TTM|计算过去12个月的 营业收入 之和| |interest_carry_current_liability|带息流动负债| 流动负债合计 - 无息流动负债| |sale_expense_ttm|销售费用TTM|计算过去12个月 销售费用 之和| |retained_earnings|留存收益| 盈余公积金+未分配利润| |total_operating_cost_ttm|营业总成本TTM|计算过去12个月的 营业总成本 之和| |non_operating_net_profit_ttm|营业外收支净额TTM| 营业外收入(TTM) - 营业外支出(TTM)| |net_invest_cash_flow_ttm|投资活动现金流量净额TTM|计算过去12个月 投资活动现金流量净额 之和| |financial_expense_ttm|财务费用TTM|计算过去12个月 财务费用 之和| |administration_expense_ttm|管理费用TTM|计算过去12个月 管理费用 之和| |net_interest_expense|净利息费用| 利息支出-利息收入| |value_change_profit_ttm|价值变动净收益TTM|计算过去12个月 价值变动净收益 之和| |total_profit_ttm|利润总额TTM|计算过去12个月 利润总额 之和| |net_finance_cash_flow_ttm|筹资活动现金流量净额TTM|计算过去12个月 筹资活动现金流量净额 之和| |interest_free_current_liability|无息流动负债| 应付票据+应付账款+预收账款(用 预售款项 代替)+应交税费+应付利息+其他应付款+其他流动负债| |EBIT|息税前利润| 净利润+所得税+财务费用| |net_profit_ttm|净利润TTM|计算过去12个月 净利润 之和| |OperateNetIncome|经营活动净收益| 经营活动净收益/利润总额(%) * 利润总额| |EBITDA|息税折旧摊销前利润(报告期)| 一般企业:(营业总收入-营业税金及附加)-(营业成本+利息支出+手续费及佣金支出+销售费用+管理费用+研发费用+资产减值损失)+(固定资产折旧、油气资产折耗、生产性生物资产折旧)+无形资产摊销+长期待摊费用摊销;银行业:(营业总收入-营业税金及附加)-(营业成本+管理费用+资产减值损失)+(固定资产折旧、油气资产折耗、生产性生物资产折旧+无形资产摊销+长期待摊费用摊销)+无形资产摊销+长期待摊费用摊销| |asset_impairment_loss_ttm|资产减值损失TTM|计算过去12个月 资产减值损失 之和| |np_parent_company_owners_ttm|归属于母公司股东的净利润TTM|计算过去12个月 归属于母公司股东的净利润 之和| |operating_cost_ttm|营业成本TTM|计算过去12个月的 营业成本 之和| |net_debt|净债务| 总债务-期末现金及现金等价物余额| |non_recurring_gain_loss|非经常性损益| 归属于母公司股东的净利润-扣除非经常损益后的净利润(元)| |goods_sale_and_service_render_cash_ttm|销售商品提供劳务收到的现金|计算过去12个月 销售商品提供劳务收到的现金 之和| | market_cap | 市值 | 市值 | | cash_flow_to_price_ratio | 现金流市值比 | 1 / pcf_ratio (ttm) | | sales_to_price_ratio | 营收市值比 | 1 / ps_ratio (ttm) | | circulating_market_cap | 流通市值 | 流通市值 | | operating_assets | 经营性资产 | 总资产 - 金融资产 | | financial_assets | 金融资产 | 货币资金 + 交易性金融资产 + 应收票据 + 应收利息 + 应收股利 + 可供出售金融资产 + 持有至到期投资 | | operating_liability | 经营性负债 | 总负债 - 金融负债 | | financial_liability | 金融负债 | (流动负债合计-无息流动负债)+(有息非流动负债)=(流动负债合计-应付账款-预收款项-应付职工薪酬-应交税费-其他应付款-一年内的递延收益-其它流动负债)+(长期借款+应付债券) | **质量因子** |因子 code|因子名称|计算方法| |--|--|--| |net_profit_to_total_operate_revenue_ttm|净利润与营业总收入之比| 净利润与营业总收入之比=净利润(TTM)/营业总收入(TTM)| |cfo_to_ev|经营活动产生的现金流量净额与企业价值之比TTM| 经营活动产生的现金流量净额TTM / 企业价值。其中,企业价值=司市值+负债合计-货币资金| |accounts_payable_turnover_days|应付账款周转天数|应付账款周转天数 = 360 / 应付账款周转率| |net_profit_ratio|销售净利率| 售净利率=净利润(TTM)/营业收入(TTM)| |net_non_operating_income_to_total_profit|营业外收支利润净额/利润总额| 营业外收支利润净额/利润总额| |fixed_asset_ratio|固定资产比率| 固定资产比率=(固定资产+工程物资+在建工程)/总资产| |account_receivable_turnover_days|应收账款周转天数|应收账款周转天数=360/应收账款周转率| |DEGM|毛利率增长|毛利率增长=(今年毛利率(TTM)/去年毛利率(TTM))-1| |sale_expense_to_operating_revenue|营业费用与营业总收入之比| 营业费用与营业总收入之比=销售费用(TTM)/营业总收入(TTM)| |operating_tax_to_operating_revenue_ratio_ttm|销售税金率| 销售税金率=营业税金及附加(TTM)/营业收入(TTM)| |inventory_turnover_days|存货周转天数|存货周转天数=360/存货周转率| |OperatingCycle|营业周期| 应收账款周转天数+存货周转天数| |net_operate_cash_flow_to_operate_income|经营活动产生的现金流量净额与经营活动净收益之比| 经营活动产生的现金流量净额(TTM)/(营业总收入(TTM)-营业总成本(TTM)| |net_operating_cash_flow_coverage|净利润现金含量| 经营活动产生的现金流量净额/归属于母公司所有者的净利润| |quick_ratio|速动比率| 速动比率=(流动资产合计-存货)/ 流动负债合计| |intangible_asset_ratio|无形资产比率| 无形资产比率=(无形资产+研发支出+商誉)/总资产| |MLEV|市场杠杆| 市场杠杆=非流动负债合计/(非流动负债合计+总市值)| |debt_to_equity_ratio|产权比率| 产权比率=负债合计/归属母公司所有者权益合计| |super_quick_ratio|超速动比率| (货币资金+交易性金融资产+应收票据+应收帐款+其他应收款)/流动负债合计| |inventory_turnover_rate|存货周转率| 存货周转率=营业成本(TTM)/存货| |operating_profit_growth_rate|营业利润增长率|营业利润增长率=(今年营业利润(TTM)/去年营业利润(TTM))-1| |long_debt_to_working_capital_ratio|长期负债与营运资金比率| 长期负债与营运资金比率=非流动负债合计/(流动资产合计-流动负债合计)| |current_ratio|流动比率(单季度)| 流动比率=流动资产合计/流动负债合计| |net_operate_cash_flow_to_net_debt|经营活动产生现金流量净额/净债务| 经营活动产生现金流量净额/净债务| |net_operate_cash_flow_to_asset|总资产现金回收率| 经营活动产生的现金流量净额(ttm) / 总资产| |non_current_asset_ratio|非流动资产比率| 非流动资产比率=非流动资产合计/总资产| |total_asset_turnover_rate|总资产周转率| 总资产周转率=营业收入(ttm)/总资产| |long_debt_to_asset_ratio|长期借款与资产总计之比| 长期借款与资产总计之比=长期借款/总资产| |debt_to_tangible_equity_ratio|有形净值债务率| 负债合计/有形净值 其中有形净值=股东权益-无形资产净值,无形资产净值= 商誉+无形资产| |ROAEBITTTM|总资产报酬率|(利润总额(TTM)+利息支出(TTM)) / 总资产在过去12个月的平均| |operating_profit_ratio|营业利润率| 营业利润率=营业利润(TTM)/营业收入(TTM)| |long_term_debt_to_asset_ratio|长期负债与资产总计之比| 长期负债与资产总计之比=非流动负债合计/总资产| |current_asset_turnover_rate|流动资产周转率TTM|过去12个月的营业收入/过去12个月的平均流动资产合计| |financial_expense_rate|财务费用与营业总收入之比| 财务费用(TTM) / 营业总收入(TTM)| |operating_profit_to_total_profit|经营活动净收益/利润总额| 经营活动净收益/利润总额| |debt_to_asset_ratio|债务总资产比| 债务总资产比=负债合计/总资产| |equity_to_fixed_asset_ratio|股东权益与固定资产比率| 股东权益与固定资产比率=股东权益/(固定资产+工程物资+在建工程)| |net_operate_cash_flow_to_total_liability|经营活动产生的现金流量净额/负债合计| 经营活动产生的现金流量净额/负债合计| |cash_rate_of_sales|经营活动产生的现金流量净额与营业收入之比| 经营活动产生的现金流量净额(TTM) / 营业收入(TTM)| |operating_profit_to_operating_revenue|营业利润与营业总收入之比| 营业利润与营业总收入之比=营业利润(TTM)/营业总收入(TTM)| |roa_ttm|资产回报率TTM| 资产回报率=净利润(TTM)/期末总资产| |admin_expense_rate|管理费用与营业总收入之比| 管理费用与营业总收入之比=管理费用(TTM)/营业总收入(TTM)| |fixed_assets_turnover_rate|固定资产周转率|等于过去12个月的营业收入/过去12个月的平均(固定资产+工程物资+在建工程)| |invest_income_associates_to_total_profit|对联营和合营公司投资收益/利润总额| 对联营和营公司投资收益/利润总额| |equity_to_asset_ratio|股东权益比率| 股东权益比率=股东权益/总资产| |goods_service_cash_to_operating_revenue_ttm|销售商品提供劳务收到的现金与营业收入之比| 销售商品提供劳务收到的现金与营业收入之比=销售商品和提供劳务收到的现金(TTM)/营业收入(TTM)| |cash_to_current_liability|现金比率|期末现金及现金等价物余额/流动负债合计的12个月均值| |net_operate_cash_flow_to_total_current_liability|现金流动负债比| 现金流动负债比=经营活动产生的现金流量净额(TTM)/流动负债合计| |ACCA|现金流资产比和资产回报率之差| 现金流资产比-资产回报率,其中现金流资产比=经营活动产生的现金流量净额/总资产| |roe_ttm|权益回报率TTM| 权益回报率=净利润(TTM)/期末股东权益| |accounts_payable_turnover_rate|应付账款周转率|TTM(营业成本,0)/(AvgQ(应付账款,4,0) + AvgQ(应付票据,4,0) + AvgQ(预付款项,4,0) )| |gross_income_ratio|销售毛利率| 销售毛利率=(营业收入(TTM)-营业成本(TTM))/营业收入(TTM)| |adjusted_profit_to_total_profit|扣除非经常损益后的净利润/利润总额| 扣除非经常损益后的净利润/利润总额| |account_receivable_turnover_rate|应收账款周转率|即,TTM(营业收入,0)/(AvgQ(应收账款,4,0) + AvgQ(应收票据,4,0) + AvgQ(预收账款,4,0) )| |equity_turnover_rate|股东权益周转率| 股东权益周转率=营业收入(ttm)/股东权益| |total_profit_to_cost_ratio|成本费用利润率| 成本费用利润率=利润总额/(营业成本+财务费用+销售费用+管理费用),以上科目使用的都是TTM的数值| |operating_cost_to_operating_revenue_ratio|销售成本率| 销售成本率=营业成本(TTM)/营业收入(TTM)| | LVGI | 财务杠杆指数 | 本期(年报)资产负债率/上期(年报)资产负债率 | | SGI | 营业收入指数 | 本期(年报)营业收入/上期(年报)营业收入 | | GMI | 毛利率指数 | 上期(年报)毛利率/本期(年报)毛利率 | | DSRI | 应收账款指数 | 本期(年报)应收账款占营业收入比例/上期(年报)应收账款占营业收入比例 | | rnoa_ttm | 经营资产回报率TTM | 销售利润率*经营资产周转率 | | profit_margin_ttm | 销售利润率TTM | 营业利润/营业收入 | | roe_ttm_8y | 长期权益回报率TTM | 8年(1+roe_ttm)的累乘 ^ (1/8) - 1 # 至少要有近4年的数据,否则为 nan | | asset_turnover_ttm | 经营资产周转率TTM | 营业收入TTM/近4个季度期末净经营性资产均值; 净经营性资产=经营资产-经营负债 | | roic_ttm | 投资资本回报率TTM | 权益回报率=归属于母公司股东的净利润(TTM)/ 前四个季度投资资本均值; 投资资本=股东权益+负债合计-无息流动负债-无息非流动负债; 无息流动负债=应付账款+预收款项+应付职工薪酬+应交税费+其他应付款+一年内的递延收益+其它流动负债; 无息非流动负债=非流动负债合计-长期借款-应付债券; | | roa_ttm_8y | 长期资产回报率TTM | 8年(1+roa_ttm)的乘积 ^ (1/8) - 1 # 至少要有近4年的数据,否则为 nan | | SGAI | 销售管理费用指数 | 本期(年报)销售管理费用占营业收入的比例/上期(年报)销售管理费用占营业收入的比例 | | DEGM_8y | 长期毛利率增长 | 过去8年(1+DEGM)的累成 ^ (1/8) - 1 | | maximum_margin | 最大盈利水平 | max(margin_stability, DEGM_8y) | | margin_stability | 盈利能力稳定性 | mean(GM)/std(GM); GM 为过去8年毛利率ttm | **成长因子** |因子 code|因子名称|计算方法| |--|--|--| |operating_revenue_growth_rate|营业收入增长率|营业收入增长率=(今年营业收入(TTM)/去年营业收入(TTM))-1| |total_asset_growth_rate|总资产增长率|总资产 / 总资产_4 -1| |net_operate_cashflow_growth_rate|经营活动产生的现金流量净额增长率|(今年经营活动产生的现金流量净额(TTM)/去年经营活动产生的现金流量净额(TTM))-1| |total_profit_growth_rate|利润总额增长率|利润总额增长率=(今年利润总额(TTM)/去年利润总额(TTM))-1| |np_parent_company_owners_growth_rate|归属母公司股东的净利润增长率|(今年归属于母公司所有者的净利润(TTM)/去年归属于母公司所有者的净利润(TTM))-1| |financing_cash_growth_rate|筹资活动产生的现金流量净额增长率|过去12个月的筹资现金流量净额 / 4季度前的12个月的筹资现金流量净额 - 1| |net_profit_growth_rate|净利润增长率|净利润增长率=(今年净利润(TTM)/去年净利润(TTM))-1| |net_asset_growth_rate|净资产增长率|(当季的股东权益/三季度前的股东权益)-1| | PEG | 市盈率相对盈利增长比率 | PEG = PE / (归母公司净利润(TTM)增长率 * 100) # 如果 PE 或 增长率为负,则为 nan | **每股因子** |因子 code|因子名称|计算方法| |--|--|--| |total_operating_revenue_per_share_ttm|每股营业总收入TTM| 营业总收入(TTM)除以总股本| |cash_and_equivalents_per_share|每股现金及现金等价物余额| 每股现金及现金等价物余额| |surplus_reserve_fund_per_share|每股盈余公积金| 每股盈余公积金| |retained_profit_per_share|每股未分配利润| 每股未分配利润| |operating_revenue_per_share_ttm|每股营业收入TTM| 营业收入(TTM)除以总股本| |net_asset_per_share|每股净资产| 归属母公司所有者权益合计除以总股本| |total_operating_revenue_per_share|每股营业总收入| 每股营业总收入| |retained_earnings_per_share|每股留存收益| 每股留存收益| |operating_revenue_per_share|每股营业收入| 每股营业收入| |net_operate_cash_flow_per_share|每股经营活动产生的现金流量净额| 每股经营活动产生的现金流量净额| |operating_profit_per_share_ttm|每股营业利润TTM| 营业利润(TTM)除以总股本| |eps_ttm|每股收益TTM|过去12个月归属母公司所有者的净利润(TTM)除以总股本| |cashflow_per_share_ttm|每股现金流量净额,根据当时日期来获取最近变更日的总股本| 现金流量净额(TTM)除以总股本| |operating_profit_per_share|每股营业利润| 每股营业利润| |capital_reserve_fund_per_share|每股资本公积金| 每股资本公积金| **情绪因子** |因子 code|因子名称|计算方法| |--|--|--| |VROC12|12日量变动速率指标|成交量减N日前的成交量,再除以N日前的成交量,放大100倍,得到VROC值 ,n=12| |TVMA6|6日成交金额的移动平均值|6日成交金额的移动平均值| |VEMA10|成交量的10日指数移动平均|| |VR|成交量比率(Volume Ratio)|VR=(AVS+1/2CVS)/(BVS+1/2CVS)| |VOL5|5日平均换手率|5日换手率的均值,单位为%| |BR|意愿指标|BR=N日内(当日最高价-昨日收盘价)之和 / N日内(昨日收盘价-当日最低价)之和×100 n设定为25| |VEMA12|12日成交量的移动平均值|| |TVMA20|20日成交金额的移动平均值|20日成交金额的移动平均值| |DAVOL5|5日平均换手率与120日平均换手率|5日平均换手率 / 120日平均换手率| |VDIFF|计算VMACD因子的中间变量|EMA(VOLUME,SHORT)-EMA(VOLUME,LONG) short设置为12,long设置为26,M设置为9| |WVAD|威廉变异离散量|(收盘价-开盘价)/(最高价-最低价)×成交量,再做加和,使用过去6个交易日的数据| |MAWVAD|因子WVAD的6日均值|| |VSTD10|10日成交量标准差|10日成交量标准差| |ATR14|14日均幅指标|真实振幅的14日移动平均| |VOL10|10日平均换手率|10日换手率的均值,单位为%| |DAVOL10|10日平均换手率与120日平均换手率之比|10日平均换手率 / 120日平均换手率| |VDEA|计算VMACD因子的中间变量|EMA(VDIFF,M) short设置为12,long设置为26,M设置为9| |VSTD20|20日成交量标准差|20日成交量标准差| |ATR6|6日均幅指标|真实振幅的6日移动平均| |VOL20|20日平均换手率|20日换手率的均值,单位为%| |DAVOL20|20日平均换手率与120日平均换手率之比|20日平均换手率 / 120日平均换手率| |VMACD|成交量指数平滑异同移动平均线|快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIFF, 由DIFF的M日移动平均得到DEA,由DIFF-DEA的值得到MACD| |AR|人气指标|AR=N日内(当日最高价—当日开市价)之和 / N日内(当日开市价—当日最低价)之和 * 100,n设定为26| |VOL60|60日平均换手率|60日换手率的均值,单位为%| |turnover_volatility|换手率相对波动率|取20个交易日个股换手率的标准差| |VOL120|120日平均换手率|120日换手率的均值,单位为%| |VROC6|6日量变动速率指标|成交量减N日前的成交量,再除以N日前的成交量,放大100倍,得到VROC值 ,n=6| |TVSTD20|20日成交金额的标准差|20日成交额的标准差| |ARBR|ARBR| 因子 AR 与因子 BR 的差| |money_flow_20|20日资金流量| 用收盘价、最高价及最低价的均值乘以当日成交量即可得到该交易日的资金流量| |VEMA5|成交量的5日指数移动平均|| |VOL240|240日平均换手率|240日换手率的均值,单位为%| |VEMA26|成交量的26日指数移动平均|| |VOSC|成交量震荡|'VEMA12'和'VEMA26'两者的差值,再求差值与'VEMA12'的比,最后将比值放大100倍,得到VOSC值| |TVSTD6|6日成交金额的标准差|6日成交额的标准差| **风险因子** |因子 code|因子名称|计算方法| |--|--|--| |Variance20|20日年化收益方差|20日年化收益方差| |Skewness20|个股收益的20日偏度|个股收益的20日偏度| |Kurtosis20|个股收益的20日峰度|个股收益的20日峰度| |sharpe_ratio_20|20日夏普比率|(Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差)| |Variance60|60日年化收益方差|60日年化收益方差| |Skewness60|个股收益的60日偏度|个股收益的60日偏度| |Kurtosis60|个股收益的60日峰度|个股收益的60日峰度| |sharpe_ratio_60|60日夏普比率|(Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差)| |Variance120|120日年化收益方差|120日年化收益方差| |Skewness120|个股收益的120日偏度|个股收益的120日偏度| |Kurtosis120|个股收益的120日峰度|个股收益的120日峰度| |sharpe_ratio_120|120日夏普比率|(Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差)| **动量因子** |因子 code|因子名称|计算方法| |--|--|--| arron_up_25|Aroon指标上轨|Aroon(上升)=[(计算期天数-最高价后的天数)/计算期天数]*100 arron_down_25|Aroon指标下轨|Aroon(下降)=[(计算期天数-最低价后的天数)/计算期天数]*100 BBIC|BBI 动量|BBI(3, 6, 12, 24) / 收盘价 (BBI 为常用技术指标类因子“多空均线”) bear_power|空头力道|(最低价-EMA(close,13)) / close BIAS5|5日乖离率|(收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取5 BIAS10|10日乖离率|(收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取10 BIAS20|20日乖离率|(收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取20 BIAS60|60日乖离率|(收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取60 bull_power|多头力道|(最高价-EMA(close,13)) / close CCI10|10日顺势指标|CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=10 CCI15|15日顺势指标|CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=15 CCI20|20日顺势指标|CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=20 CCI88|88日顺势指标|CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=88 CR20|CR指标|①中间价=1日前的最高价+最低价/2②上升值=今天的最高价-前一日的中间价(负值记0)③下跌值=前一日的中间价-今天的最低价(负值记0)④多方强度=20天的上升值的和,空方强度=20天的下跌值的和⑤CR=(多方强度÷空方强度)×100 fifty_two_week_close_rank|当前价格处于过去1年股价的位置|取过去的250个交易日各股的收盘价时间序列,每只股票按照从大到小排列,并找出当日所在的位置 MASS|梅斯线|MASS(N1=9, N2=25, M=6) PLRC12|12日收盘价格与日期线性回归系数|计算 12 日收盘价格,与日期序号(1-12)的线性回归系数,(close / mean(close)) = beta * t + alpha PLRC24|24日收盘价格与日期线性回归系数|计算 24 日收盘价格,与日期序号(1-24)的线性回归系数, (close / mean(close)) = beta * t + alpha PLRC6|6日收盘价格与日期线性回归系数|计算 6 日收盘价格,与日期序号(1-6)的线性回归系数,(close / mean(close)) = beta * t + alpha Price1M|当前股价除以过去一个月股价均值再减1|当日收盘价 / mean(过去一个月(21天)的收盘价) -1 Price3M|当前股价除以过去三个月股价均值再减1|当日收盘价 / mean(过去三个月(61天)的收盘价) -1 Price1Y|当前股价除以过去一年股价均值再减1|当日收盘价 / mean(过去一年(250天)的收盘价) -1 Rank1M|1减去 过去一个月收益率排名与股票总数的比值|1-(Rank(个股20日收益) / 股票总数) ROC12|12日变动速率(Price Rate of Change)|①AX=今天的收盘价—12天前的收盘价②BX=12天前的收盘价③ROC=AX/BX*100 ROC120|120日变动速率(Price Rate of Change)|①AX=今天的收盘价—120天前的收盘价②BX=120天前的收盘价③ROC=AX/BX*100 ROC20|20日变动速率(Price Rate of Change)|①AX=今天的收盘价—20天前的收盘价②BX=20天前的收盘价③ROC=AX/BX*100 ROC6|6日变动速率(Price Rate of Change)|①AX=今天的收盘价—6天前的收盘价②BX=6天前的收盘价③ROC=AX/BX*100 ROC60|60日变动速率(Price Rate of Change)|①AX=今天的收盘价—60天前的收盘价②BX=60天前的收盘价③ROC=AX/BX*100 single_day_VPT|单日价量趋势|(今日收盘价 - 昨日收盘价)/ 昨日收盘价 * 当日成交量 # (复权方法为基于当日前复权) single_day_VPT_12|单日价量趋势12均值|MA(single_day_VPT, 12) single_day_VPT_6|单日价量趋势6日均值|MA(single_day_VPT, 6) TRIX10|10日终极指标TRIX|MTR=收盘价的10日指数移动平均的10日指数移动平均的10日指数移动平均;TRIX=(MTR-1日前的MTR)/1日前的MTR*100 TRIX5|5日终极指标TRIX|MTR=收盘价的5日指数移动平均的10日指数移动平均的5日指数移动平均;TRIX=(MTR-1日前的MTR)/1日前的MTR*100 Volume1M|当前交易量相比过去1个月日均交易量 与过去过去20日日均收益率乘积|当日交易量 / 过去20日交易量MEAN * 过去20日收益率MEAN **技术因子** |因子 code|因子名称|计算方法| |--|--|--| boll_down|下轨线(布林线)指标|(MA(CLOSE,M)-2*STD(CLOSE,M)) / 今日收盘价; M=20 boll_up|上轨线(布林线)指标|(MA(CLOSE,M)+2*STD(CLOSE,M)) / 今日收盘价; M=20 EMA5|5日指数移动均线|5日指数移动均线 / 今日收盘价 EMAC10|10日指数移动均线|10日指数移动均线 / 今日收盘价 EMAC12|12日指数移动均线|12日指数移动均线 / 今日收盘价 EMAC20|20日指数移动均线|20日指数移动均线 / 今日收盘价 EMAC26|26日指数移动均线|26日指数移动均线 / 今日收盘价 EMAC120|120日指数移动均线|120日指数移动均线 / 今日收盘价 MAC5|5日移动均线|5日移动均线 / 今日收盘价 MAC10|10日移动均线|10日移动均线 / 今日收盘价 MAC20|20日移动均线|20日移动均线 / 今日收盘价 MAC60|60日移动均线|60日移动均线 / 今日收盘价 MAC120|120日移动均线|120日移动均线 / 今日收盘价 MACDC|平滑异同移动平均线|MACD(SHORT=12, LONG=26, MID=9) / 今日收盘价 MFI14|资金流量指标|①求得典型价格(当日最高价,最低价和收盘价的均值)②根据典型价格高低判定正负向资金流(资金流=典型价格*成交量)③计算MR= 正向/负向 ④MFI=100-100/(1+MR) **风格因子** 进行了去极值和标准化的处理 | 因子 code | 因子名称 | 简介 | | ------------------- | ---------- | ------------------------------------------------------------ | | size | 市值 | 捕捉大盘股和小盘股之间的收益差异 | | beta | 贝塔 | 表征股票相对于市场的波动敏感度 | | momentum | 动量 | 描述了过去两年里相对强势的股票与弱势股票之间的差异 | | residual_volatility | 残差波动率 | 解释了剥离了市场风险后的波动率高低产生的收益率差异 | | non_linear_size | 非线性市值 | 描述了无法由规模因子解释的但与规模有关的收益差异,通常代表中盘股 | | book_to_price_ratio | 账面市值比 | 描述了股票估值高低不同而产生的收益差异, 即价值因子 | | liquidity | 流动性 | 解释了由股票相对的交易活跃度不同而产生的收益率差异 | | earnings_yield | 盈利能力 | 描述了由盈利收益导致的收益差异 | | growth | 成长 | 描述了对销售或盈利增长预期不同而产生的收益差异 | | leverage | 杠杆 | 描述了高杠杆股票与低杠杆股票之间的收益差异 | 除了上面的风格因子,在计算风格因子过程中的描述因子daily_standard_deviation、cumulative_range等也可以通过get_factor_values、get_all_factors以及get_factor_kanban_values获取;描述因子是原始值,没有进行数据处理。 #### 风格因子计算说明 - 市值因子 size - 定义:1•natural_log_of_market_cap - 解释 - 对数市值 natural_log_of_market_cap:公司的总市值的自然对数。 - 贝塔因子 beta - 定义:1•raw_beta - 解释 - raw_beta:CAPM 模型中的β,过去252个交易日股票的收益与市场收益(全A股票收益按流通市值加权)进行时间序列指数加权回归后的斜率系数。指数加权的半衰期为63个交易日。 停牌股票收益率为0,股票上市需超过21个交易日,否则beta为nan。 - 动量因子 momentum - 定义:1•relative_strength - 解释 - 相对强弱 relative_strength:滞后21个交易日的过去504个交易日股票超额对数收益率的指数加权之和。其中指数权重半衰期为126个交易日。停牌股票收益率为0,上市之前收益率为nan。 - 残差波动率因子 residual_volatility - 定义:0.74•daily_standard_deviation + 0.16•cumulative_range + 0.10•historical_sigma - 解释 - 日收益率标准差 daily_standard_deviation:日标准差,过去252日的超额收益的指数加权标准差,以42个交易日为半衰期。 - 收益离差 cumulative_range:过去12个月中月收益率(以21个交易日为一个月)的最大值和最小值之间的差异。股票需上市需超过6个月,否则结果为nan。 - 残差历史波动率 historical_sigma:计算beta时的回归残差项的过去252个交易日的标准差。股票上市需超过21个交易日,否则结果为nan。 - 用 daily_standard_deviation、cumulative_range、historical_sigma 加权求和得到的 residual_volatility,之后 关于 beta 和 size 因子做正交化以消除共线性。 - 非线性市值因子 non_linear_size - 定义:1•cube_of_size - 解释 - 市值立方因子 cube_of_size:首先对标准化后的市值因子size暴露值求立方,将得到的结果与市值进行加权回归的正交化处理。 - 账面市值比因子 book_to_price_ratio - 定义:book_to_price_ratio - 解释 - 最新一季财报的账面价值与当前市值的比值(pb_ratio的倒数)。其中小于0的值设置为nan。 - 流动性因子 liquidity - 定义:0.35•share_turnover_monthly + 0.35•average_share_turnover_quarterly + 0.3•average_share_turnover_annual - 解释 - 月换手率 share_turnover_monthly:股票一个月换手率,过去21日的股票换手率之和的对数。股票需上市超过1个月,否则结果为nan。 - 季度平均平均月换手率 average_share_turnover_quarterly:过去3个月平均换手率,计算过去3个月的平均share_turnover_monthly,并取对数。股票需上市超过3个月,否则结果为nan。 - 年度平均月换手率 average_share_turnover_annual:过去12个月平均换手率,计算过去12个月的平均share_turnover_monthly,并取对数。股票需上市超过12个月,否则结果为nan。 - 用 share_turnover_monthly、average_share_turnover_quarterly、average_share_turnover_annual 加权求和得到的 liquidity 关于对数市值做正交化以消除共线性。 - 盈利能力因子 earnings_yield - 定义:0.68•predicted_earnings_to_price_ratio + 0.21•cash_earnings_to_price_ratio + 0.11•earnings_to_price_ratio - 解释 - 预期利润市值比 predicted_earnings_to_price_ratio:用未来12个月的净利预测值除以当前市值。 - 现金流量市值比 cash_earnings_to_price_ratio:过去12个月的净经营现金流除以当前股票市值。 - 利润市值比 earnings_to_price_ratio:过去12个月的归母净利润除以当前股票市值。 - 成长因子 growth - 定义:0.18•long_term_predicted_earnings_growth + 0.11•short_term_predicted_earnings_growth + 0.24•earnings_growth + 0.47•sales_growth - 解释 - 预期长期盈利增长率 long_term_predicted_earnings_growth:未来三年净利润分析师一致预期相对于净利润(不含少数股东损益)最新年报值的平均增长率。一个分析师预测的股票值为nan。 - 预期短期盈利增长率 short_term_predicted_earnings_growth:未来一年净利润分析师一致预期相对于净利润(不含少数股东损益)最新年报值的平均增长率,只有一个分析师预测的股票值为nan。 - 5年盈利增长率 earnings_growth:盈利增长率,过去5年的基本每股收益(basic_eps)关于[0,1,2,3,4]回归的斜率系数,然后再除以过去 5 年基本每股收益的均值的绝对值。 - 5年营业收入增长率 sales_growth:营收增长率,过去 5 年每股营业收入关于[0,1,2,3,4]回归的斜率系数,然后再除以过去 5 年每股营业收入的均值的绝对值。对于保险行业的股票,使用“已赚保费”代替“销售收入”计算每股营业收入,对于银行业的股票,sales_growth为nan。 - earnings_growth和sales_growth至少需要有4年的财务数据,否则为nan。 - 杠杆因子 leverage - 定义:0.38•market_leverage + 0.35•debt_to_assets + 0.27•book_leverage - 解释 - 市场杠杆 market_leverage:(当前的普通股市值+优先股账面价值+长期债务账面价值)/当前的普通股市值。 - 资产负债比 debt_to_assets:总负债的账面价值/总资产的账面价值。 - 账面杠杆 book_leverage:(普通股账面价値+优先股账面价值+长期债务账面价值)/普通股账面价值。账面杠杆需在0到100之间,否则结果为nan。 #### 风格因子数据处理说明 对描述因子和风格因子的数据分别进行正规化的处理,步骤如下: - 对描述因子分别进行去极值和标准化 去极值为将2.5倍标准差之外的值,赋值成2.5倍标准差的边界值 标准化为市值加权标准化 x=(x- mean(x))/(std(x)) 其中,均值的计算使用股票的市值加权,标准差为正常标准差。 - 对描述因子按照权重加权求和 按照公式给出的权重对描述因子加权求和。如果某个因子的值为nan,则对不为nan的因子加权求和,同时权重重新归一化;如果所有因子都为nan,则结果为nan。 - 对风格因子市值加权标准化 - 缺失值填充 按照聚宽一级行业分行业,以不缺失的股票因子值相对于市值的对数进行回归,对缺失值进行填充 - 对风格因子去极值,去极值方法同上面去极值描述 **行业因子** [点击链接跳转了解**行业因子**详细内容](https://www.joinquant.com/help/api/help#factor_values:%E8%A1%8C%E4%B8%9A%E5%9B%A0%E5%AD%90) ### ALPHA特色因子 + +- **更新时间:2005至今,次日08:00更新** +- **复权方式:动态前复权** + +方法描述Alpha 101 因子Alpha 101 因子 **因子来源:** 根据 WorldQuant LLC 发表的论文 [*101 Formulaic Alphas*](https://arxiv.org/ftp/arxiv/papers/1601/1601.00991.pdf) 中给出的 101 个 Alphas 因子公式,我们将公式编写成了函数,并计算出自2005年以来的动态前复权因子值,方便大家使用。 **详细介绍:** 函数计算公式、API 调用方法,输入输出值详情请见:[数据 - Alpha 101](https://www.joinquant.com/data/dict/alpha101). **购买**:用户如有需要使用Alpha101和Alpha191因子的,请联系我们的运营同事。**个人用户咨询【邮箱:sunping@joinquant.com】,机构服务咨询添加微信号JQData02** **使用方法:** +``` + +# 导入 Alpha101 库 +from jqdatasdk.alpha101 import * + +# 获取沪深300成分股的 alpha_001 因子值 +a = alpha_001('2019-11-19','000300.XSHG') + +# 查看前5行的因子值 +print(a.head()) +000001.XSHE -0.175115 +000002.XSHE 0.174980 +000063.XSHE -0.323537 +000069.XSHE 0.174980 +000100.XSHE -0.323537 +dtype: float64 + +# 查看平安银行的因子值 +print(a['000001.XSHE']) +-0.17511459 + +# 获取所有股票 alpha_007 的因子值 +a = alpha_007('2014-10-22') +``` + +Alpha 191 因子Alpha 191 因子 **因子来源:** 根据国泰君安数量化专题研究报告 - [基于短周期价量特征的多因子选股体系](http://vdisk.weibo.com/s/uEfe2futCdyJ9)给出了 191 个短周期交易型阿尔法因子。为了方便用户快速调用,我们将所有Alpha191因子基于股票的动态前复权价格做了完整的计算。 **详细介绍:** 函数计算公式、API 调用方法,输入输出值详情请见:[数据 - Alpha 191](https://www.joinquant.com/data/dict/alpha191). **使用方法(以Alpha001因子为例):** +``` + +# 导入 Alpha191 库 +from jqdatasdk import alpha191 + +#获取alpha001因子值 +alpha191.alpha_001(code, end_date=None,fq='pre') +``` + + **输入:** - code:股票代码列表 - end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期;数据类型为str或者datetime.date - fq: 复权选项:只支持 'pre', 动态前复权(所有Alpha191因子基于股票的动态复权价格已经做了完整的计算。) **输出:** - 输出一个 Series:index 为成分股代码,values 为对应的因子值 - 注意:当Alpha因子的返回结果为-999999999999或+999999999999时,代表该因子值的计算结果为负无穷或正无穷。在Excel中打开会显示成1E+12或1E-12. **因子公式:** - (-1 * CORR(RANK(DELTA(LOG(VOLUME),1)),RANK(((CLOSE-OPEN)/OPEN)),6) **示例:** +``` + +#获取平安银行2019年4月24日按照动态前复权价格计算的Alpha002的因子值 +from jqdatasdk import alpha191 +a = alpha191.alpha_002('000001.XSHE','2019-04-24') +a + +000001.XSHE -0.403162 +Name: 2019-04-24 00:00:00, dtype: float64 +``` + +### 技术分析指标 + +- **复权方式:持设置复权基准日(fq_ref_date 参数), 实时计算** + +方法描述技术指标技术分析指标 **详细介绍:**函数计算公式、API 调用方法,用法注释, 输入输出值详情请见:[数据 - 技术分析指标](https://www.joinquant.com/help/api/help#name:technicalanalysis). **购买**:用户如有需要使用技术指标因子的,请联系我们的运营同事。**个人用户咨询【邮箱:sunping@joinquant.com】,机构服务咨询添加微信号JQData02** **示例:** +``` + +# 导入技术分析指标库 +from jqdatasdk.technical_analysis import * + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 GDX 值,分别返回:济安线、压力线和支撑线的值。 +gdx_jax, gdx_ylx, gdx_zcx = GDX(security_list1,check_date='2017-01-04', N = 30, M = 9,fq_ref_date=None) +print (gdx_jax[security_list1]) +print (gdx_ylx[security_list1]) +print (gdx_zcx[security_list1]) + +# 输出 security_list2 的 GDX 值 +gdx_jax, gdx_ylx, gdx_zcx = GDX(security_list2,check_date='2017-01-04', N = 30, M = 9,fq_ref_date='2017-01-04') +for stock in security_list2: + print (gdx_jax[stock]) + print (gdx_ylx[stock]) + print (gdx_zcx[stock]) + +# 查询函数说明 +>>> GDX? +Signature: GDX(security_list, check_date, N=30, M=9) +Docstring: + 计算公式: + AA:=ABS((2*CLOSE+HIGH+LOW)/4-MA(CLOSE,N))/MA(CLOSE,N); + JAX:DMA(CLOSE,AA); + 压力线:(1+M/100)*JAX; + 支撑线:(1-M/100)*JAX; + AA赋值:(2*收盘价+最高价+最低价)/4-收盘价的N日简单移动平均的绝对值/收盘价的N日简单移动平均 + 输出济安线 = 以AA为权重收盘价的动态移动平均 + 输出压力线 = (1+M/100)*JAX + 输出支撑线 = (1-M/100)*JAX +输入: + security_list:股票列表 + check_date:要查询数据的日期 + N:统计的天数 N + M:统计的天数 M +输出: + 济安线、压力线和支撑线的值。 +输出结果类型: + 字典(dict):键(key)为股票代码,值(value)为数据。 +``` + +### 因子看板及风格因子等(新) + +提供因子看板及风格因子归因数据 + +#### 因子看板数据 + +- **更新时间:2005至今,9:00更新前一交易日** +- 点击跳转[因子看板](https://www.joinquant.com/view/factorlib/list) + +方法描述get_factor_kanban_values获取因子看板列表数据 +``` + +get_factor_kanban_values(universe='hs300',bt_cycle='month_3',model='long_only',category=['quality','basics','emotion','growth','risk','pershare'],skip_paused=False,commision_slippage=0) +``` + + **参数** - universe:股票池 - 'hs300': 沪深300 - 'zz500': 中证500 - 'zz800': 中证800 - bt_cycle:测试周期 - 'month_3':近三个月 - 'year_1':近一年 - year_3':近三年 - year_10':近十年 - model:组合构建模型 - 'long_only':纯多头组合 - 'long_short':多空组合 - category:分类,具体见[聚宽因子库](https://www.joinquant.com/help/api/help#name:factor_values) - 'quality': 质量类 - 'basics': 基础类 - 'emotion': 情绪类 - 'growth': 成长类 - 'risk': 风险类 - 'pershare': 每股类 - 'style': 风险因子 - 风格因子 - 'technical': 技术类 - 'momentum': 动量类 - skip_paused: 过滤涨停及停牌股 - False: 否 - True: 是 - commision_slippage: 手续费及滑点 - 0: 无 - 1: 3‱佣金+1‰印花税+无滑点 - 2: 3‱佣金+1‰印花税+1‰滑点 **返回** pandas.DataFrame 针对 [model - 组合构建模型]选择的不同,返回的结构有所差异 一、long_only - 纯多头组合 - index:自然增长的数字,从0开始,无意义 - column: - date:数据的更新日期,因子的收益需要下一交易日才可得到 ,因此实际数据的时间比date晚一天(T日收盘后的因子收益需要T+1的收盘价才可得出,数据需要在T+2日凌晨3点计算之后才可得到) - universe: 股票池 - bt_cycle: 测试周期 - skip_paused: 过滤涨停及停牌股 - commision_slippage: 手续费及滑点 - category: 因子分类 - code:因子代码 - compound_return_1q:一分位数累积收益 - compound_return_5q:五分位数累积收益 - annualized_return_1q:一分位数年化收益率 - annualized_return_5q:五分位数年化收益率 - max_drawdown_1q:一分位数最大回撤 - max_drawdown_5q:五分位数最大回撤 - sharpe_1q:一分位数夏普比率 - sharpe_5q:五分位数夏普比率 - turnover_ratio_1q:一分位数换手率 - turnover_ratio_5q:五分位数换手率 - annual_return_bm:基准指数年化收益率 - ic_mean:IC均值 - ir:IR值 - good_ic:IC绝对值大于0.02的比率 二、long_short - 多空组合 - index:自然增长的数字,从0开始,无意义 - column: - date:数据的更新日期,因子的收益需要下一交易日才可得到 ,因此实际数据的时间比date晚一天(T日收盘后的因子收益需要T+1的收盘价才可得出,数据需要在T+2日凌晨3点计算之后才可得到) - universe: 股票池 - bt_cycle: 测试周期 - skip_paused: 过滤涨停及停牌股 - commision_slippage: 手续费及滑点 - category: 因子分类 - code:因子代码 - compound_return_ls:累积收益 - annualized_return_ls:年化收益率 - max_drawdown_ls:最大回撤 - sharpe_ls:夏普比率 - turnover_ratio_ls:换手率 - annual_return_bm:基准指数年化收益率 - ic_mean:IC均值 - ir:IR值 - good_ic:IC绝对值大于0.02的比率 **示例:** +``` + +from jqdatasdk import * +df = get_factor_kanban_values(universe='hs300',bt_cycle='month_3',model='long_only',category=['quality','basics','emotion','growth','risk','pershare'],skip_paused=False,commision_slippage=0) +print(df.head(5)) + +>>> date category ... ir good_ic +0 2022-09-22 basics ... -0.174076 0.952381 +1 2022-09-22 basics ... -0.114981 0.873016 +2 2022-09-22 basics ... -0.052311 0.841270 +3 2022-09-22 basics ... -0.041307 0.841270 +4 2022-09-22 basics ... -0.015338 0.841270 + +[5 rows x 21 columns] +``` + +get_factor_stats获取因子看板分位数历史收益率 +``` + +get_factor_stats(factor_names=None, universe_type='hs300', + start_date=None, end_date=None, count=None, + skip_paused=False, commision_fee=0.0) +``` + + **参数:** - factor_names : 因子名称,单个因子(字符串)或一个因子列表,支持的因子见[聚宽因子库](https://www.joinquant.com/help/api/help#name:factor_values) - universe_type : 股票池包括以下五种: 'hs300': 沪深300 'zz500': 中证500 'zz800': 中证800 'zz1000': 中证1000 'zzqz': 中证全指 默认为'hs300' - start_date : 开始日期,字符串或 datetime 对象 - end_date : 结束日期,字符串或 datetime 对象,可以与 start_date 或 count 配合使用 - count: 截止 end_date 之前交易日的数量(含 end_date 当日) - skip_paused : 是否跳过停牌,bool,默认为False - commision_fee : 手续费,float,0.0/0.0008/0.0018, 默认为0.0 **返回:** - 一个 dict,其中 key 是因子名称,value 是一个 pandas.DataFrame - DataFrame 的 index 是日期,column 1,2,3,4,5是一分位、二分位、三分位、四分位、五分位累积收益 **示例:** +``` + +from jqdatasdk import * +data = get_factor_stats(factor_names=['PEG','VSTD20'] , end_date ='2022-09-20',count=5 ) +print(data['PEG']) +>>> {'PEG': 1 2 3 4 5 + 2022-09-14 3.070544 2.847542 2.390142 1.978835 1.331841 + 2022-09-15 2.994605 2.796805 2.310998 1.938225 1.309742 + 2022-09-16 2.999703 2.814595 2.308664 1.940463 1.307399 + 2022-09-19 3.015146 2.813510 2.310971 1.942719 1.310100 + 2022-09-20 3.010017 2.810997 2.294774 1.920928 1.298267, + 'VSTD20': 1 2 3 4 5 + 2022-09-14 3.963227 2.854103 2.774518 2.034258 1.146730 + 2022-09-15 3.885976 2.795398 2.719512 1.977875 1.112380 + 2022-09-16 3.885621 2.785908 2.721697 1.985330 1.110787 + 2022-09-19 3.886508 2.801825 2.710205 1.986811 1.112331 + 2022-09-20 3.853822 2.763628 2.694442 1.985192 1.112072} +``` + +#### 风格因子归因 + +- **更新时间:2005至今,9:00更新前一交易日** + +方法描述get_factor_style_returns获取风格因子暴露收益率 +``` + +get_factor_style_returns(factors=None, start_date=None, + end_date=None, count=None, + universe=None, industry='sw_l1') +``` + + **参数:** - factors : 因子名称,单个因子(字符串)或一个因子列表,支持[风格因子](https://www.joinquant.com/help/api/help#factor_values:%E9%A3%8E%E6%A0%BC%E5%9B%A0%E5%AD%90)如"size"及申万/聚宽一级行业如 "801010"和"HY001" - start_date : 开始日期,字符串或 datetime 对象 - end_date : 结束日期,字符串或 datetime 对象,可以与 start_date 或 count 配合使用 - count: 截止 end_date 之前交易日的数量(含 end_date 当日) - universe : 市场范围,默认为None代表全市场, 可选 : 'hs300': 沪深300 ; 'zz500': 中证500'; zz800': 中证800; 'zz1000':中证1000; 'zzqz':中证全指 - industry : 行业选取,默认为'sw_l1', 可选 : 'sw_l1':申万一级,'jq_l1':聚宽一级 **返回:** 一个 DataFrame, index 是日期, columns为因子名, 值为因子暴露收益率 **示例:** +``` + +from jqdatasdk import * +df = get_factor_style_returns(['size','beta','momentum' ] , end_date='2022-09-01',count=2) +print(df) +>>> momentum size beta +2022-08-31 -0.006386 0.005105 -0.004319 +2022-09-01 0.001502 -0.002413 -0.002344 +``` + +get_factor_specific_returns获取个股特质收益率(无法被风格因子解释的收益) +``` + +get_factor_specific_returns(security, start_date=None, end_date=None, count=None) +``` + + **参数:** - security : 股票代码, 或者股票代码组成的list - start_date : 开始日期,字符串或 datetime 对象 - end_date : 结束日期,字符串或 datetime 对象,可以与 start_date 或 count 配合使用 - count: 截止 end_date 之前交易日的数量(含 end_date 当日) **返回:** - 个股被风格因子无法解释的那部分收益,即特质收益率 **示例:** +``` + +from jqdatasdk import * +df = get_factor_specific_returns(['000001.XSHE','600000.XSHG'],end_date='2022-09-01',count=5) +print(df) +>>> 000001.XSHE 600000.XSHG +2022-08-26 0.005917 0.004784 +2022-08-29 -0.006386 -0.004693 +2022-08-30 -0.001301 -0.004310 +2022-08-31 0.004911 -0.012619 +2022-09-01 -0.003611 -0.001511 +``` + +## 活动专区 + +方法描述师生活动师生活动 随着云计算、区块链等新兴技术在金融行业的深入应用,科技对于金融的促进作用被不断强化,创新型的金融解决方案层出不穷,金融科技发展进入新阶段。社会对金融与计算机的复合背景人才需求越来越大。在此背景下,为探讨金融科技行业人才需求趋势、人才培养与实践教学方法,聚宽JQData推出师生活动,助力在校师生在量化方面方面进行更多有效的探索。用最专业的产品支持量化高校教育,助力学生们步步进阶。 活动说明 - 参与方式:高校老师可根据教学安排联系聚宽运营。师生获得高校专属的校园账号 - 金融数据类型包括:中国A股、指数、财务、宏观数据 - 账号试用期:6个月 - 账号有效期内:每日可获取100万条的金融数据 - 账号可获取的时间范围:2005年至今 论文支持活动论文支持活动 为帮助学生更好投入量化论文课题,聚宽JQData聚焦学生数据需求并提供数据支持,解决学生写论文时花费大量精力找数据、清洗数据的难题。 活动细则 - 金融数据类型包括:中国A股、指数、财务、宏观数据 - 账号试用期:6个月 - 账号有效期内:每日可获取100万条的金融数据 - 账号可获取的时间范围:2005年至今 试用账号延期活动试用账号延期活动 ### 试用账号延期活动 为了满足JQData用户们长期投研需求,我们特意为以此推出下述【重磅福利活动】。 `活动规则:以下每个活动只可参与一次,不可重复参与。活动期限不可以叠加,3个月期限到期后,如果需要继续参与,可填写表单:http://jqdatasdk.mikecrm.com/V2dqm0Y` 注意: - ①参与**文章撰写活动**,需联系JQData运营审核。运营微信:15815705123 - ②试用账号延期权限为[最新的试用账号权限]("https://www.joinquant.com/help/api/doc?name=logon&id=9830&keyword=%u591A%u8FDB%u7A0B") - ③参与活动的截图时间不能与提交表单的时间相差过久 ## ************************************************************* #### **活动内容** ####【朋友圈转发活动】 **活动主题**:朋友圈转发推文 [点击查看推文并转发](https://www.joinquant.com/view/community/detail/2ce1b76f4c25c33d675d8d9cad866cab?type=1) - 朋友圈文案内容:量化不得不知道的数据服务JQData; - 次数:**仅限转载一次** - 延期或流量奖励:有效期3个月,每天10万数据流量 ************************************************************* ####【B站回复活动】 >活动细则:在B站与量化相关视频的评论区回复推荐聚宽 数量:一次 转载或流量奖励:有效期3个月,每天50万数据流量 ************************************************************* ####【知乎推荐活动】 **活动主题**:回复活动 - 活动内容:在**知乎**等相关提问中,回复聚宽的优势 - 数量:**一个** - 转载或流量奖励:有效期3个月,每天25万-50万数据流量 - 活动细则:相关提问参考【如何获取金融数据】、【量化平台推荐】【量化投资者是如何获取实时行情数据的】等 ************************************************************* ####【文章撰写活动】 **活动内容**:在 聚宽官网社区撰写 JQData(本地数据)强相关的文章,参考下方精品贴 - 数量:**一篇** - 转载或流量奖励:有效期3个月,每天200万-300万条流量 - 参与文章活动,需联系JQData运营审核。运营微信:15815705123 **`活动解释权归聚宽所有`** ************************************************************* ####▽ JQData 精品文章集合!! ▽#### [JQData应用 | 基于估值波动周期的择时策略 — by 夏鲁迅](https://www.joinquant.com/view/community/detail/3d0d3562e94143b8b34c2f942d5e59fe) [JQData应用 | A股行业投资指南——好的投资,首先是选好行业 — by 夏鲁迅](https://www.joinquant.com/view/community/detail/dc8851bd832a2cb2372992db0d06b664) [JQData应用 | A股投资指南-单因子选股的有效性验证 — by 陈鹏](https://www.joinquant.com/view/community/detail/7ebe3adf478ce360f6e96dd09d240bc4?type=1) [JQData Monte Carlo = 有效前沿及投资组合优化 — by Supercritical](https://www.joinquant.com/community/post/detailMobile?postId=15331&page=&limit=20&replyId=&tag=) [JQData | 十年一瞬 · 量化分析股市涨跌周期规律(日内) — by 薛定谔の喵](https://www.joinquant.com/view/community/detail/781e477fbbb05dd6953f5e535e4b7861) [JQData | 股市估值分析,带你穿越资本市场迷雾 — by tom王小昭](https://www.joinquant.com/view/community/detail/9e0c400b057e246bdca2db2d54b85941) [基于Keras深度学习LSTM模型 预测黄金主力收盘价 — by HeartBearting](https://www.joinquant.com/view/community/detail/2e996d21c95a409ba23a651085ab9f61) [深度学习模型 CNN LSTM 预测收盘价 — by HeartBearting](https://www.joinquant.com/community/post/detailMobile?postId=15443&page=&limit=20&replyId=&tag=) [Keras框架 深度学习模型CNN LSTM Attention机制 预测黄金主力收盘价 — by HeartBearting](https://www.joinquant.com/community/post/detailMobile?postId=15466&page=&limit=20&replyId=&tag=algorithm) [强化学习入门:基于Q-learning算法的日内择时策略初窥 — by 。大咖](https://www.joinquant.com/community/post/detailMobile?postId=15441&page=&limit=20&replyId=&tag=) [使用jqdatasdk探究“裁员”的情况 — by 丁智](https://www.joinquant.com/view/community/detail/5b69c06bd3a5a2d536512bd5c3f5fd22) [深度学习和缠论应用,JQData应用 — by hprotein](https://www.joinquant.com/view/community/detail/1b733f9f81b32d650d89b0ed26c17313?type=1) [结合jqdata数据源的基于滤波降噪和LSTM期货量化研究 — by Timpage](https://www.joinquant.com/view/community/detail/25917) [使用fbprofhet对CF期货价格的预测 — by 蜗牛往上爬](https://www.joinquant.com/view/community/detail/ae835141dc4c36a7c0d67cb1c435b2b8) `(快来挑战他们)` diff --git a/docs/joinquant-api/JQ_Alpha101.md b/docs/joinquant-api/JQ_Alpha101.md new file mode 100644 index 0000000..89ad6bb --- /dev/null +++ b/docs/joinquant-api/JQ_Alpha101.md @@ -0,0 +1,1468 @@ +## WorldQuant 101 Alphas 因子函数使用说明 + +### 因子来源 + +根据 WorldQuant LLC 发表的论文 [101 Formulaic Alphas](https://arxiv.org/ftp/arxiv/papers/1601/1601.00991.pdf) 中给出的 101 个 Alphas 因子公式,我们将公式编写成了函数,方便大家使用。 + +### 因子使用 + +``` + +# 导入 Alpha101 库 +>>> from jqlib.alpha101 import * + +#传入一个股票list,获取股票list的alpha_001因子值 +a=alpha_001('2018-12-24',['000001.XSHE','000002.XSHE']) +print(a) +000001.XSHE 0.0 +000002.XSHE 0.5 +Name: rank_value_boolean, dtype: float64 + +# 获取沪深300成分股的 alpha_001 因子值 +>>> a = alpha_001('2017-03-10','000300.XSHG') + +# 查看前5行的因子值 +>>> a.head() +000001.XSHE -0.496667 +000002.XSHE 0.226667 +000008.XSHE -0.043333 +000009.XSHE -0.093333 +000027.XSHE -0.030000 +Name: rank_value_boolean, dtype: float64 + +# 查看平安银行的因子值 +>>> a['000001.XSHE'] +-0.49666666666666665 + +# 获取所有股票 alpha_007 的因子值 +>>> a = alpha_007('2014-10-22') +# 查看欣旺达(300207)的因子值 +>>> a['300207.XSHE'] +0.8 + +# 获取多个股票多个因子值 +from jqlib.alpha101 import * +df2 = alpha(enddate='2019-01-22', index=['000001.XSHE', '000002.XSHE'], fq='pre', alpha=[5,10,15,20]) +print(df2) + +# 查询函数说明 +>>> alpha_101? +Type: cython_function_or_method +String form: +Docstring: +公式: +((close - open) / ((high - low) + .001)) + +Inputs: + enddate: 查询日期 + index: 股票池,可传入股票list或指数代码,传入指数代码,对应该指数的所有成分股。默认是指定日期的所有上市股票。 + +Outputs: + 因子的值 +``` + +### 公用函数说明 + +abs(x),log(x),sign(x) = standard definitions *分别为:取绝对值、对数值、正负号(正数返回1,负数返回-1)* + +rank(x) = cross-sectional rank *股票的排名,数值从1-最后,若输入值含nan,则nan不参与排名,输出为股票对应排名值(排名所占总位数的百分比)* + +delay(x,d) = value of x d days ago *x变量d天之前的值* + +correlation(x,y,d) = time-serial correlation of x and y for the past d days *x和y两个变量d天以来的值的相关系数* + +covariance(x,y,d) = time-serial covariance of x and y for the past d days *x和y两个变量d天以来的值的协方差* + +scale(x,a) = rescaled x such that sum(abs(x))=a (the default is a=1) *将x中的值标准化,使x的绝对值的和为a,默认a=1* + +delta(x,d) = today’s value of x minus the value of x d days ago *指定enddate的x值减去d天之前的x值* + +signedpower(x,a) = x^a *x值的a次方,如果x为一个list或者series,则为x中每一个值的a次方* + +decay_linear(x,d) = weighted moving average over the past d days with linearly decaying weights d,d-1,…,1 (rescaled up to 1) *x中时间从最远到最近的值,分别乘权重d,d-1,…,1(权重要进行标准化,使和为1)再求和* + +ts_min(x,d) = time-series min over the past d days *x中d天内最小的值* + +ts_max(x,d) = time-series max over the past d days *x中d天内最大的值* + +ts_argmin(x,d) = which day ts_min(x,d) occurred on *ts_min(x,d)发生在d天中的第几天,最远的天为第一天* + +ts_argmax(x,d) = which day ts_max(x,d) occurred on *ts_max(x,d)发生在d天中的第几天,最远的天为第一天* + +ts_rank(x,d) = time-series rank in the past d days *x中,最后一天的值,在这d天中,排多少名,输出为对应的排名值(即该名次占总排名数的百分比)* + +min(x,d) = ts_min(x,d) *当遇到min函数时,当ts_min函数处理*——-注意!!实际上遇到min时,当min中的输入不是(x,d)而是(x,y)时,取x、y两个值中的最小值 + +max(x,d) = ts_max(x,d) *当遇到max函数时,当ts_max函数处理*——注意!!实际上遇到max时,当max中的输入不是(x,d)而是(x,y)时,取x、y两个值中的最大值 + +sum(x,d) = time-series sum over the past d days *d天以来x值的和* + +product(x,d) = time-series product over the past d days *d天以来x值的乘积* + +stddev(x,d) = moving time series standard deviation over the past d days *d天以来,x值的标准差* + +### 公用变量说明 + +returns = daily close-to-close returns *收益率,输入n+1行closeprice,输出n行returns,index为closeprice的后面n个index,columns为closeprice中的columns* + +open,close,high,low,volume = standard definitions for daily price and volume data *开盘价,收盘价,最高价,最低价,交易数量* + +vwap = daily volume-weighted average price *在我们的函数程序里,用均价avg来表示这里的vwap* + +cap = market cap *市值,在我们的函数程序里,提取的是聚宽财务报表数据中的market_cap* + +adv{d} = average daily dollar volume for the past d days *过去d天内的平均交易金额* + +### 因子说明 + +#### alpha(获取全部因子值) + +获取标的101个全部因子值,因计算量较大,运行会有少许缓慢 + +``` + +from jqlib.alpha101 import * +alpha(enddate=None, index='all', fq='pre', alpha=[]) +``` + +- 输入: + +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数 + +- 如果想要成分股,可传入股票指数的字符串,默认为所有股票’all’,如index='all' 或 index='000300.XSHG' +- 如果想要自定义股票列表,传入一个list,如 index=['000001.XSHE', '000002.XSHE'] +- fq: 复权选项: + +- `'pre'`: 前复权,默认为前复权 +- `None`: 不复权,返回实际价格 +- `'post'`: 动态后复权 +- alpha,因子列表,**默认全取**。也可指定获取其中的某些因子,写法如alpha=['alpha_005', 'alpha_010', 'alpha_015', 'alpha_020'],或 alpha=[5,10,15,20] +- 输出: + +- 一个 DataFrame,包括股票列表中每一只股票的 alpha001-alpha101 的值 + +#### alpha_001 + +``` + +alpha_001(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (rank(Ts_ArgMax(SignedPower(((returns < 0) ? stddev(returns, 20) : close), 2.), 5)) - 0.5) + +#### alpha_002 + +``` + +alpha_002(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*correlation(rank(delta(log(volume), 2)), rank(((close - open) / open)), 6)) + +#### alpha_003 + +``` + +alpha_003(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*correlation(rank(open), rank(volume), 10)) + +#### alpha_004 + +``` + +alpha_004(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*Ts_Rank(rank(low), 9)) + +#### alpha_005 + +``` + +alpha_005(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (rank((open - (sum(vwap, 10) / 10)))*(-1*abs(rank((close - vwap))))) + +#### alpha_006 + +``` + +alpha_006(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*correlation(open, volume, 10)) + +#### alpha_007 + +``` + +alpha_007(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values:符合条件的为公式里的数值,不符合条件的为-1 +- 因子公式: +- ((adv20 < volume) ? ((-1*ts_rank(abs(delta(close, 7)), 60))*sign(delta(close, 7))) : (-1*1)) + +#### alpha_008 + +``` + +alpha_008(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*rank(((sum(open, 5)*sum(returns, 5)) - delay((sum(open, 5)*sum(returns, 5)), 10)))) + +#### alpha_009 + +``` + +alpha_009(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((0 < ts_min(delta(close, 1), 5)) ? delta(close, 1) : ((ts_max(delta(close, 1), 5) < 0) ? delta(close, 1) : (-1*delta(close, 1)))) + +#### alpha_010 + +``` + +alpha_010(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- rank(((0 < ts_min(delta(close, 1), 4)) ? delta(close, 1) : ((ts_max(delta(close, 1), 4) < 0) ? delta(close, 1) : (-1*delta(close, 1))))) + +#### alpha_011 + +``` + +alpha_011(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((rank(ts_max((vwap - close), 3)) + rank(ts_min((vwap - close), 3)))*rank(delta(volume, 3))) + +#### alpha_012 + +``` + +alpha_012(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (sign(delta(volume, 1))*(-1 * delta(close, 1))) + +#### alpha_013 + +``` + +alpha_013(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*rank(covariance(rank(close), rank(volume), 5))) + +#### alpha_014 + +``` + +alpha_014(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1*rank(delta(returns, 3)))*correlation(open, volume, 10)) + +#### alpha_015 + +``` + +alpha_015(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*sum(rank(correlation(rank(high), rank(volume), 3)), 3)) + +#### alpha_016 + +``` + +alpha_016(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*rank(covariance(rank(high), rank(volume), 5))) + +#### alpha_017 + +``` + +alpha_017(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为对应的因子值,取值有问题的股票对应值为-0.0 +- 因子公式: +- (((-1*rank(ts_rank(close, 10)))*rank(delta(delta(close, 1), 1)))*rank(ts_rank((volume / adv20), 5))) + +#### alpha_018 + +``` + +alpha_018(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*rank(((stddev(abs((close - open)), 5) + (close - open)) + correlation(close, open, 10)))) + +#### alpha_019 + +``` + +alpha_019(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1*sign(((close - delay(close, 7)) + delta(close, 7))))*(1 + rank((1 + sum(returns, 250))))) + +#### alpha_020 + +``` + +alpha_020(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (((-1*rank((open - delay(high, 1))))* rank((open - delay(close, 1))))* rank((open - delay(low, 1)))) + +#### alpha_021 + +``` + +alpha_021(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,取决于满不满足某些因子中的条件 +- 因子公式: +- ((((sum(close, 8) / 8) + stddev(close, 8)) < (sum(close, 2) / 2)) ? (-1* 1) : (((sum(close, 2) / 2) < ((sum(close, 8) / 8) - stddev(close, 8))) ? 1 : (((1 < (volume / adv20)) or ((volume / adv20) == 1)) ? 1 : (-1* 1)))) + +#### alpha_022 + +``` + +alpha_022(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1* (delta(correlation(high, volume, 5), 5)* rank(stddev(close, 20)))) + +#### alpha_023 + +``` + +alpha_023(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为对应因子值或0.00,当不满足条件时为0.00 +- 因子公式: +- (((sum(high, 20) / 20) < high) ? (-1* delta(high, 2)) : 0) + +#### alpha_024 + +``` + +alpha_024(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((((delta((sum(close, 100) / 100), 100) / delay(close, 100)) < 0.05) or ((delta((sum(close, 100) / 100), 100) / delay(close, 100)) == 0.05)) ? (-1* (close - ts_min(close, 100))) : (-1* delta(close, 3))) + +#### alpha_025 + +``` + +alpha_025(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- rank(((((-1* returns)* adv20)* vwap)* (high - close))) + +#### alpha_026 + +``` + +alpha_026(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1* ts_max(correlation(ts_rank(volume, 5), ts_rank(high, 5), 5), 3)) + +#### alpha_027 + +``` + +alpha_027(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,满足条件为-1,不满足为1 +- 因子公式: +- ((0.5 < rank((sum(correlation(rank(volume), rank(vwap), 6), 2) / 2.0))) ? (-1* 1) : 1) + +#### alpha_028 + +``` + +alpha_028(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- scale(((correlation(adv20, low, 5) + ((high + low) / 2)) - close)) + +#### alpha_029 + +``` + +alpha_029(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (min(product(rank(rank(scale(log(sum(ts_min(rank(rank((-1*rank(delta((close - 1), 5))))), 2), 1))))), 1), 5) + ts_rank(delay((-1* returns), 6), 5)) + +#### alpha_030 + +``` + +alpha_030(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (((1.0 - rank(((sign((close - delay(close, 1))) + sign((delay(close, 1) - delay(close, 2)))) + sign((delay(close, 2) - delay(close, 3))))))* sum(volume, 5)) / sum(volume, 20)) + +#### alpha_031 + +``` + +alpha_031(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((rank(rank(rank(decay_linear((-1* rank(rank(delta(close, 10)))), 10)))) + rank((-1* delta(close, 3)))) + sign(scale(correlation(adv20, low, 12)))) + +#### alpha_032 + +``` + +alpha_032(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (scale(((sum(close, 7) / 7) - close)) + (20* scale(correlation(vwap, delay(close, 5), 230)))) + +#### alpha_033 + +``` + +alpha_033(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- rank((-1* ((1 - (open / close))^1))) + +#### alpha_034 + +``` + +alpha_034(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- rank(((1 - rank((stddev(returns, 2) / stddev(returns, 5)))) + (1 - rank(delta(close, 1))))) + +#### alpha_035 + +``` + +alpha_035(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((Ts_Rank(volume, 32)* (1 - Ts_Rank(((close + high) - low), 16)))* (1 - Ts_Rank(returns, 32))) + +#### alpha_036 + +``` + +alpha_036(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (((((2.21* rank(correlation((close - open), delay(volume, 1), 15))) + (0.7* rank((open - close)))) + (0.73* rank(Ts_Rank(delay((-1* returns), 6), 5)))) + rank(abs(correlation(vwap, adv20, 6)))) + (0.6* rank((((sum(close, 200) / 200) - open)* (close - open))))) + +#### alpha_037 + +``` + +alpha_037(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (rank(correlation(delay((open - close), 1), close, 200)) + rank((open - close))) + +#### alpha_038 + +``` + +alpha_038(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1* rank(Ts_Rank(close, 10)))* rank((close / open))) + +#### alpha_039 + +``` + +alpha_039(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1* rank((delta(close, 7)* (1 - rank(decay_linear((volume / adv20), 9))))))* (1 + rank(sum(returns, 250)))) + +#### alpha_040 + +``` + +alpha_040(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1* rank(stddev(high, 10)))* correlation(high, volume, 10)) + +#### alpha_041 + +``` + +alpha_041(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (((high* low)^0.5) - vwap) + +#### alpha_042 + +``` + +alpha_042(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (rank((vwap - close)) / rank((vwap + close))) + +#### alpha_043 + +``` + +alpha_043(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (ts_rank((volume / adv20), 20)* ts_rank((-1* delta(close, 7)), 8)) + +#### alpha_044 + +``` + +alpha_044(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1* correlation(high, rank(volume), 5)) + +#### alpha_045 + +``` + +alpha_045(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1* ((rank((sum(delay(close, 5), 20) / 20))* correlation(close, volume, 2))* rank(correlation(sum(close, 5), sum(close, 20), 2)))) + +#### alpha_046 + +``` + +alpha_046(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1或对应因子值,取决于满不满足某些因子中的条件 +- 因子公式: +- ((0.25 < (((delay(close, 20) - delay(close, 10)) / 10) - ((delay(close, 10) - close) / 10))) ? (-1* 1) : (((((delay(close, 20) - delay(close, 10)) / 10) - ((delay(close, 10) - close) / 10)) < 0) ? 1 : ((-1* 1)* (close - delay(close, 1))))) + +#### alpha_047 + +``` + +alpha_047(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((((rank((1 / close))* volume) / adv20)* ((high* rank((high - close))) / (sum(high, 5) / 5))) - rank((vwap - delay(vwap, 5)))) + +#### alpha_048(未实现) + +- 因子公式: +- (indneutralize(((correlation(delta(close, 1), delta(delay(close, 1), 1), 250)* delta(close, 1)) / close), IndClass.subindustry) / sum(((delta(close, 1) / delay(close, 1))^2), 250)) + +#### alpha_049 + +``` + +alpha_049(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为对应因子值或1,当满足条件时为1 +- 因子公式: +- (((((delay(close, 20) - delay(close, 10)) / 10) - ((delay(close, 10) - close) / 10)) < (-1* 0.1)) ? 1 : ((-1* 1)* (close - delay(close, 1)))) + +#### alpha_050 + +``` + +alpha_050(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1* ts_max(rank(correlation(rank(volume), rank(vwap), 5)), 5)) + +#### alpha_051 + +``` + +alpha_051(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为对应因子值或1,当满足条件时为1 +- 因子公式: +- (((((delay(close, 20) - delay(close, 10)) / 10) - ((delay(close, 10) - close) / 10)) < (-1* 0.05)) ? 1 : ((-1* 1)* (close - delay(close, 1)))) + +#### alpha_052 + +``` + +alpha_052(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((((-1* ts_min(low, 5)) + delay(ts_min(low, 5), 5))* rank(((sum(returns, 240) - sum(returns, 20)) / 220)))* ts_rank(volume, 5)) + +#### alpha_053 + +``` + +alpha_053(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1* delta((((close - low) - (high - close)) / (close - low)), 9)) + +#### alpha_054 + +``` + +alpha_054(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1* ((low - close)* (open^5))) / ((low - high)* (close^5))) + +#### alpha_055 + +``` + +alpha_055(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1* correlation(rank(((close - ts_min(low, 12)) / (ts_max(high, 12) - ts_min(low, 12)))), rank(volume), 6)) + +#### alpha_056 + +``` + +alpha_056(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (0 - (1* (rank((sum(returns, 10) / sum(sum(returns, 2), 3)))* rank((returns* cap))))) + +#### alpha_057 + +``` + +alpha_057(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (0 - (1* ((close - vwap) / decay_linear(rank(ts_argmax(close, 30)), 2)))) + +#### alpha_058(未实现) + +- 因子公式: +- (-1* Ts_Rank(decay_linear(correlation(IndNeutralize(vwap, IndClass.sector), volume, 3.92795), 7.89291), 5.50322)) + +#### alpha_059(未实现) + +- 因子公式: +- (-1* Ts_Rank(decay_linear(correlation(IndNeutralize(((vwap* 0.728317) + (vwap* (1 - 0.728317))), IndClass.industry), volume, 4.25197), 16.2289), 8.19648)) + +#### alpha_060 + +``` + +alpha_060(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (0 - (1* ((2* scale(rank(((((close - low) - (high - close)) / (high - low))* volume)))) - scale(rank(ts_argmax(close, 10)))))) + +#### alpha_061 + +``` + +alpha_061(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为1,否则为-1 +- 因子公式: +- (rank((vwap - ts_min(vwap, 16.1219))) < rank(correlation(vwap, adv180, 17.9282))) + +#### alpha_062 + +``` + +alpha_062(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为-1,否则为1 +- 因子公式: +- ((rank(correlation(vwap, sum(adv20, 22.4101), 9.91009)) < rank(((rank(open) + rank(open)) < (rank(((high + low) / 2)) + rank(high)))))*-1) + +#### alpha_063(未实现) + +- 因子公式: +- ((rank(decay_linear(delta(IndNeutralize(close, IndClass.industry), 2.25164), 8.22237)) - rank(decay_linear(correlation(((vwap* 0.318108) + (open* (1 - 0.318108))), sum(adv180, 37.2467), 13.557), 12.2883)))* -1) + +#### alpha_064 + +``` + +alpha_064(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为-1,否则为1 +- 因子公式: +- ((rank(correlation(sum(((open* 0.178404) + (low* (1 - 0.178404))), 12.7054), sum(adv120, 12.7054), 16.6208)) < rank(delta(((((high + low) / 2)* 0.178404) + (vwap* (1 - 0.178404))), 3.69741)))* -1) + +#### alpha_065 + +``` + +alpha_065(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为-1,否则为1 +- 因子公式: +- ((rank(correlation(((open* 0.00817205) + (vwap* (1 - 0.00817205))), sum(adv60, 8.6911), 6.40374)) < rank((open - ts_min(open, 13.635))))* -1) + +#### alpha_066 + +``` + +alpha_066(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((rank(decay_linear(delta(vwap, 3.51013), 7.23052)) + Ts_Rank(decay_linear(((((low* 0.96633) + (low* (1 - 0.96633))) - vwap) / (open - ((high + low) / 2))), 11.4157), 6.72611))* -1) + +#### alpha_067(未实现) + +- 因子公式: +- ((rank((high - ts_min(high, 2.14593)))^rank(correlation(IndNeutralize(vwap, IndClass.sector), IndNeutralize(adv20, IndClass.subindustry), 6.02936)))* -1) + +#### alpha_068 + +``` + +alpha_068(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为-1,否则为1 +- 因子公式: +- ((Ts_Rank(correlation(rank(high), rank(adv15), 8.91644), 13.9333) < rank(delta(((close* 0.518371) + (low* (1 - 0.518371))), 1.06157)))* -1) + +#### alpha_069(未实现) + +- 因子公式: +- ((rank(ts_max(delta(IndNeutralize(vwap, IndClass.industry), 2.72412), 4.79344))^Ts_Rank(correlation(((close* 0.490655) + (vwap* (1 - 0.490655))), adv20, 4.92416), 9.0615))* -1) + +#### alpha_070(未实现) + +- 因子公式: +- ((rank(delta(vwap, 1.29456))^Ts_Rank(correlation(IndNeutralize(close, IndClass.industry), adv50, 17.8256), 17.9171))* -1) + +#### alpha_071 + +``` + +alpha_071(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- max(Ts_Rank(decay_linear(correlation(Ts_Rank(close, 3.43976), Ts_Rank(adv180, 12.0647), 18.0175), 4.20501), 15.6948), Ts_Rank(decay_linear((rank(((low + open) - (vwap + vwap)))^2), 16.4662), 4.4388)) + +#### alpha_072 + +``` + +alpha_072(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (rank(decay_linear(correlation(((high + low) / 2), adv40, 8.93345), 10.1519)) / rank(decay_linear(correlation(Ts_Rank(vwap, 3.72469), Ts_Rank(volume, 18.5188), 6.86671), 2.95011))) + +#### alpha_073 + +``` + +alpha_073(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (max(rank(decay_linear(delta(vwap, 4.72775), 2.91864)), Ts_Rank(decay_linear(((delta(((open* 0.147155) + (low* (1 - 0.147155))), 2.03608) / ((open* 0.147155) + (low* (1 - 0.147155))))* -1), 3.33829), 16.7411))* -1) + +#### alpha_074 + +``` + +alpha_074(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为-1,否则为1 +- 因子公式: +- ((rank(correlation(close, sum(adv30, 37.4843), 15.1365)) < rank(correlation(rank(((high* 0.0261661) + (vwap* (1 - 0.0261661)))), rank(volume), 11.4791)))* -1) + +#### alpha_075 + +``` + +alpha_075(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为1,否则为-1 +- 因子公式: +- (rank(correlation(vwap, volume, 4.24304)) < rank(correlation(rank(low), rank(adv50), 12.4413))) + +#### alpha_076(未实现) + +- 因子公式: +- (max(rank(decay_linear(delta(vwap, 1.24383), 11.8259)), Ts_Rank(decay_linear(Ts_Rank(correlation(IndNeutralize(low, IndClass.sector), adv81, 8.14941), 19.569), 17.1543), 19.383))* -1) + +#### alpha_077 + +``` + +alpha_077(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- min(rank(decay_linear(((((high + low) / 2) + high) - (vwap + high)), 20.0451)), rank(decay_linear(correlation(((high + low) / 2), adv40, 3.1614), 5.64125))) + +#### alpha_078 + +``` + +alpha_078(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (rank(correlation(sum(((low* 0.352233) + (vwap* (1 - 0.352233))), 19.7428), sum(adv40, 19.7428), 6.83313))^rank(correlation(rank(vwap), rank(volume), 5.77492))) + +#### alpha_079(未实现) + +- 因子公式: +- (rank(delta(IndNeutralize(((close* 0.60733) + (open* (1 - 0.60733))), IndClass.sector), 1.23438)) < rank(correlation(Ts_Rank(vwap, 3.60973), Ts_Rank(adv150, 9.18637), 14.6644))) + +#### alpha_080(未实现) + +- 因子公式: +- ((rank(Sign(delta(IndNeutralize(((open* 0.868128) + (high* (1 - 0.868128))), IndClass.industry), 4.04545)))^Ts_Rank(correlation(high, adv10, 5.11456), 5.53756))* -1) + +#### alpha_081 + +- 因子公式: +- ((rank(Log(product(rank((rank(correlation(vwap, sum(adv10, 49.6054), 8.47743))^4)), 14.9655))) < rank(correlation(rank(vwap), rank(volume), 5.07914)))* -1) + +#### alpha_082(未实现) + +- 因子公式: +- (min(rank(decay_linear(delta(open, 1.46063), 14.8717)), Ts_Rank(decay_linear(correlation(IndNeutralize(volume, IndClass.sector), ((open* 0.634196) + (open* (1 - 0.634196))), 17.4842), 6.92131), 13.4283))* -1) + +#### alpha_083 + +``` + +alpha_083(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((rank(delay(((high - low) / (sum(close, 5) / 5)), 2))* rank(rank(volume))) / (((high - low) / (sum(close, 5) / 5)) / (vwap - close))) + +#### alpha_084 + +``` + +alpha_084(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SignedPower(Ts_Rank((vwap - ts_max(vwap, 15.3217)), 20.7127), delta(close, 4.96796)) + +#### alpha_085 + +``` + +alpha_085(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (rank(correlation(((high* 0.876703) + (close* (1 - 0.876703))), adv30, 9.61331))^rank(correlation(Ts_Rank(((high + low) / 2), 3.70596), Ts_Rank(volume, 10.1595), 7.11408))) + +#### alpha_086 + +``` + +alpha_086(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为-1,否则为1 +- 因子公式: +- ((Ts_Rank(correlation(close, sum(adv20, 14.7444), 6.00049), 20.4195) < rank(((open + close) - (vwap + open))))* -1) + +#### alpha_087(未实现) + +- 因子公式: +- (max(rank(decay_linear(delta(((close* 0.369701) + (vwap* (1 - 0.369701))), 1.91233), 2.65461)), Ts_Rank(decay_linear(abs(correlation(IndNeutralize(adv81, IndClass.industry), close, 13.4132)), 4.89768), 14.4535))* -1) + +#### alpha_088 + +``` + +alpha_088(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- min(rank(decay_linear(((rank(open) + rank(low)) - (rank(high) + rank(close))), 8.06882)), Ts_Rank(decay_linear(correlation(Ts_Rank(close, 8.44728), Ts_Rank(adv60, 20.6966), 8.01266), 6.65053), 2.61957)) + +#### alpha_089(未实现) + +- 因子公式: +- (Ts_Rank(decay_linear(correlation(((low* 0.967285) + (low* (1 - 0.967285))), adv10, 6.94279), 5.51607), 3.79744) - Ts_Rank(decay_linear(delta(IndNeutralize(vwap, IndClass.industry), 3.48158), 10.1466), 15.3012)) + +#### alpha_090(未实现) + +- 因子公式: +- ((rank((close - ts_max(close, 4.66719)))^Ts_Rank(correlation(IndNeutralize(adv40, IndClass.subindustry), low, 5.38375), 3.21856))* -1) + +#### alpha_091(未实现) + +- 因子公式: +- ((Ts_Rank(decay_linear(decay_linear(correlation(IndNeutralize(close, IndClass.industry), volume, 9.74928), 16.398), 3.83219), 4.8667) - rank(decay_linear(correlation(vwap, adv30, 4.01303), 2.6809)))* -1) + +#### alpha_092 + +``` + +alpha_092(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- min(Ts_Rank(decay_linear(((((high + low) / 2) + close) < (low + open)), 14.7221), 18.8683), Ts_Rank(decay_linear(correlation(rank(low), rank(adv30), 7.58555), 6.94024), 6.80584)) + +#### alpha_093(未实现) + +- 因子公式: +- (Ts_Rank(decay_linear(correlation(IndNeutralize(vwap, IndClass.industry), adv81, 17.4193), 19.848), 7.54455) / rank(decay_linear(delta(((close* 0.524434) + (vwap* (1 - 0.524434))), 2.77377), 16.2664))) + +#### alpha_094 + +``` + +alpha_094(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((rank((vwap - ts_min(vwap, 11.5783)))^Ts_Rank(correlation(Ts_Rank(vwap, 19.6462), Ts_Rank(adv60, 4.02992), 18.0926), 2.70756))* -1) + +#### alpha_095 + +``` + +alpha_095(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为1,否则为-1 +- 因子公式: +- (rank((open - ts_min(open, 12.4105))) < Ts_Rank((rank(correlation(sum(((high + low) / 2), 19.1351), sum(adv40, 19.1351), 12.8742))^5), 11.7584)) + +#### alpha_096 + +``` + +alpha_096(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (max(Ts_Rank(decay_linear(correlation(rank(vwap), rank(volume), 3.83878), 4.16783), 8.38151), Ts_Rank(decay_linear(Ts_ArgMax(correlation(Ts_Rank(close, 7.45404), Ts_Rank(adv60, 4.13242), 3.65459), 12.6556), 14.0365), 13.4143))* -1) + +#### alpha_097(未实现) + +- 因子公式: +- ((rank(decay_linear(delta(IndNeutralize(((low* 0.721001) + (vwap* (1 - 0.721001))), IndClass.industry), 3.3705), 20.4523)) - Ts_Rank(decay_linear(Ts_Rank(correlation(Ts_Rank(low, 7.87871), Ts_Rank(adv60, 17.255), 4.97547), 18.5925), 15.7152), 6.71659))* -1) + +#### alpha_098 + +``` + +alpha_098(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (rank(decay_linear(correlation(vwap, sum(adv5, 26.4719), 4.58418), 7.18088)) - rank(decay_linear(Ts_Rank(Ts_ArgMin(correlation(rank(open), rank(adv15), 20.8187), 8.62571), 6.95668), 8.07206))) + +#### alpha_099 + +``` + +alpha_099(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个Series:index为成分股代码,values为1或-1,当满足条件时为-1,否则为1 +- 因子公式: +- ((rank(correlation(sum(((high + low) / 2), 19.8975), sum(adv60, 19.8975), 8.8136)) < rank(correlation(low, volume, 6.28259)))* -1) + +#### alpha_100(未实现) + +- 因子公式: +- (0 - (1* (((1.5* scale(indneutralize(indneutralize(rank(((((close - low) - (high - close)) / (high - low))* volume)), IndClass.subindustry), IndClass.subindustry))) - scale(indneutralize((correlation(close, rank(adv20), 5) - rank(ts_argmin(close, 30))), IndClass.subindustry)))* (volume / adv20)))) + +#### alpha_101 + +``` + +alpha_101(enddate, index='all') +``` + +- 输入: +- enddate: 必选参数,计算哪一天的因子 +- index: 默认参数,股票指数,默认为所有股票’all’ +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((close - open) / ((high - low) + .001)) diff --git a/docs/joinquant-api/JQ_Alpha191.md b/docs/joinquant-api/JQ_Alpha191.md new file mode 100644 index 0000000..c511be5 --- /dev/null +++ b/docs/joinquant-api/JQ_Alpha191.md @@ -0,0 +1,3137 @@ +## 短周期价量特征 191 Alphas 因子函数使用说明 + +### 因子来源 + +通过交易型阿尔法策略的研究,发现在 A 股市场,与传统多因子模型所获取的股票价值阿尔法收益相比,交易型阿尔法收益的空间更大、收益稳定性也更强。 + +短周期交易型阿尔法体系既是对传统多因子体系的补充,也可以说是全新思路、独立设计的交易体系。在这其中,量化模型不再仅仅是低风险低收益的投资策略,同样也可获得高额的收益回报。 + +JoinQuant聚宽(专业的量化交易平台)旨在为大家提供更多的投资思路及可使用的数据,因此我们根据国泰君安数量化专题研究报告 - [*基于短周期价量特征的多因子选股体系*](https://file.joinquant.com/198f09d54939dbcd27819bb96f67ac15/国泰君安-数量化专题之九十三:基于短周期价量特征的多因子选股体系-2017-06-16.pdf?_upd=国泰君安-数量化专题之九十三:基于短周期价量特征的多因子选股体系-2017-06-16.pdf)给出了 191 个短周期交易型阿尔法因子。 + +其中因子数据则均来自于个股日频率的价格与成交量数据,并且在编写短周期交易型 Alpha191因子时,有对缺失部分和不合理部分的因子公式进行调整。 + +我们初衷是想为大家提供更多的投资思路及可使用的数据。至于这些因子如何使用能达到策略最佳收益,或者说这些因子是否适用于A股市场等问题,还需要大家自己去研究与钻研。 + +**注:在对编写 alpha191因子时,有对缺失部分和不合理部分的因子公式进行调整** + +### 因子使用 + +**使用方法(以Alpha001因子为例):** + +``` + +# 导入 Alpha191 库 +from jqlib import alpha191 + +#获取alpha001因子值 +alpha191.alpha_001(code, end_date=None,fq='pre') +``` + +**输入:** + +- code:股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- fq: 复权选项: + +1. `'pre'`: 前复权,默认为前复权;目前官网设置fq= 'pre' 时,使用动态复权计算,无论在策略中(开启动态复权与否)还是研究中使用 ; +2. `None`: 不复权,返回实际价格;使用不复权数据计算 ; +3. `'post'`: 后复权,使用后复权数据计算 ; + +**输出:** + +- 输出一个 Series:index 为成分股代码,values 为对应的因子值 +- 注意:当Alpha因子的返回结果为-999999999999或+999999999999时,代表该因子值的计算结果为负无穷或正无穷。在Excel中打开会显示成1E+12或1E-12. + +**因子公式:** + +- (-1 * CORR(RANK(DELTA(LOG(VOLUME),1)),RANK(((CLOSE-OPEN)/OPEN)),6) + +**示例:** + +``` + +#获取平安银行2019年4月24日按照不复权价格计算的Alpha002的因子值 +from jqlib import alpha191 +a = alpha191.alpha_002('000001.XSHE','2019-04-24',fq = None) +a + +000001.XSHE -0.403162 +Name: 2019-04-24 00:00:00, dtype: float64 + +#获取平安银行2019年4月24日按照前复权价格计算的Alpha002的因子值 +from jqlib import alpha191 +a = alpha191.alpha_002('000001.XSHE','2019-04-24',fq ='pre') +a + +000001.XSHE -0.403162 +Name: 2019-04-24 00:00:00, dtype: float64 + +#获取平安银行2019年4月24日按照后复权价格计算的Alpha002的因子值 +from jqlib import alpha191 +a = alpha191.alpha_002('000001.XSHE','2019-04-24',fq ='post') +a + +000001.XSHE -0.403247 +Name: 2019-04-24 00:00:00, dtype: float64 + +# 查询函数说明 +help(alpha191.alpha_001) + +Help on function alpha_001 in module jqdatasdk.alpha191: + +alpha_001(code, end_date=None, fq=None) + 公式: + (-1 * CORR(RANK(DELTA(LOG(VOLUME),1)),RANK(((CLOSE-OPEN)/OPEN)),6) + Inputs: + code: 股票池 + end_date: 查询日期 + Outputs: + 因子的值 +``` + +### 公用函数说明 + +**股票的默认获取时间长度为截止日期的前350个交易日** + +OPEN + *开盘价* + +HIGH + *最高价* + +LOW + *最低价* + +CLOSE + *收盘价* + +VWAP + *均价* + +VOLUME + *成交量* + +AMOUNT + *成交额* + +BANCHMARKINDEXOPEN + *基准指数的开盘价* + +BANCHMARKINDEXCLOSE + *基准指数的收盘价* + +RET + *每日收益率(收盘/前收盘-1)* + +DTM + *(OPEN<=DELAY(OPEN,1)?0:MAX((HIGH-OPEN),(OPEN-DELAY(OPEN,1))))* + +DBM + *(OPEN>=DELAY(OPEN,1)?0:MAX((OPEN-LOW),(OPEN-DELAY(OPEN,1))))* + +TR *MAX(MAX(HIGH-LOW,ABS(HIGH-DELAY(CLOSE,1))),ABS(LOW-DELAY(CLOSE,1)))* + +HD + *HIGH-DELAY(HIGH,1)* + +LD + *DELAY(LOW,1)-LOW* + +HML SMB MKE + *Fama French 三因子* + +SELF + *特殊变量,出现在 Alpha143,表示 t-1 日的 Alpha143 因子计算结果* + +RANK(A) + *向量 A 升序排序* + +MAX(A, B) + *在 A,B 中选择最大的数* + +MIN(A, B) + *在 A,B 中选择最小的数* + +STD(A, n) + *序列 A 过去 n 天标准差* + +CORR(A, B, n) + *序列 A、 B 过去 n 天相关系数* + +DELTA(A, n) + Ai−Ai−n + +LOG(A) + *自然对数函数* + +SUM(A, n) + *序列 A 过去 n 天求和* + +ABS(A) + *绝对值函数* + +MEAN(A, n) + *序列 A 过去 n 天均值* + +TSRANK(A, n) + *序列 A 的末位值在过去 n 天的顺序排位* + +SIGN(A) *符号函数:1 if A>0; o if A=0 ; -1 if A \<0;* + +COVIANCE (A, B, n) + *序列 A、 B 过去 n 天协方差* + +DELAY(A, n) + Ai−n + +TSMIN(A, n) + *序列 A 过去 n 天的最小值* + +TSMAX(A, n) + *序列 A 过去 n 天的最大值* + +PROD(A, n) + *序列 A 过去 n 天累乘* + +COUNT(condition, n) + *计算前 n 期满足条件 condition 的样本个数* + +REGBETA(A, B, n) + *前 n 期样本 A 对 B 做回归所得回归系数* + +REGRESI(A, B, n) + *前 n 期样本 A 对 B 做回归所得的残差* + +SMA(A, n, m) + +ŷ i+1=(Aim+ŷ i(n−m))/n ,其中 Yˆ 表示最终结果 + +SUMIF(A, n, condition) + *对 A 前 n 项条件求和,其中 condition 表示选择条件* + +WMA(A, n) + *计算 A前 n期样本加权平均值权重为 0.9i,(i 表示样本距离当前时点的间隔)* + +DECAYLINEAR(A, d) + *对 A 序列计算移动平均加权,其中权重对应 d,d-1,…,1(权重和为 1)* + +FILTER(A, condition) + *对 A 筛选出符合选择条件 condition 的样本* + +HIGHDAY(A, n) + *计算 A 前 n 期时间序列中最大值距离当前时点的间隔* + +LOWDAY(A, n) + *计算 A 前 n 期时间序列中最小值距离当前时点的间隔* + +SEQUENCE(n) + *生成 1~n 的等差序列* + +SUMAC(A, n) + *计算 A 的前 n 项的累加* + +& + *逻辑运算与* + +|| + *逻辑运算或* + +A?B:C + *若 A 成立,则为 B,否则为 C* + +### 因子说明 + +在对编写 alpha191因子时,有对缺失部分和不合理部分的因子公式进行调整 + +#### alpha(获取全部因子值) + +获取标的191个全部因子值,因计算量较大,运行会有少许缓慢( jqdatasdk 不支持此方法 ) + +``` + +from jqlib.alpha191 import * +alpha(code,benchmark='000300.XSHG',end_date=None, fq='pre', alpha='all') +``` + +- 输入: + +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- fq: 复权选项 +- alpha,因子列表,**默认全取**。也可指定获取其中的某些因子,写法如alpha=['alpha_005', 'alpha_010', 'alpha_015', 'alpha_020'],或 alpha=[5,10,15,20] +- 输出: + +- 一个 DataFrame,包括股票列表中每一只股票的 alpha001-alpha191 的值 + +#### alpha_001 + +``` + +alpha_001(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date:计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: + +(-1 * CORR(RANK(DELTA(LOG(VOLUME), 1)), RANK(((CLOSE - OPEN) / OPEN)), 6)) + +#### alpha_002 + +``` + +alpha_002(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: -1 * delta((((close-low)-(high-close))/((high-low)),1)) + +#### alpha_003 + +``` + +alpha_003(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM((CLOSE=DELAY(CLOSE,1)?0:CLOSE-(CLOSE>DELAY(CLOSE,1)?MIN(LOW,DELAY(CLOSE,1)):MAX(HIGH,DELAY(CLOSE,1)))),6) + +#### alpha_004 + +``` + +alpha_004(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((((SUM(CLOSE,8)/8)+STD(CLOSE,8))<(SUM(CLOSE,2)/2))?(-1* 1):(((SUM(CLOSE,2)/2)<((SUM(CLOSE,8)/8)-STD(CLOSE,8)))?1:(((1<(VOLUME/MEAN(VOLUME,20)))||((VOLUME/MEAN(VOLUME,20))==1))?1:(-1* 1)))) + +#### alpha_005 + +``` + +alpha_005(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*TSMAX(CORR(TSRANK(VOLUME,5),YSRANK(HIGH,5),5),3)) + +#### alpha_006 + +``` + +alpha_006(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(SIGN(DELTA((((OPEN * 0.85)+(HIGH * 0.15))),4)))*-1) + +#### alpha_007 + +``` + +alpha_007(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((RANK(MAX((VWAP-CLOSE),3))+RANK(MIN((VWAP-CLOSE),3)))* RANK(DELTA(VOLUME,3))) + +#### alpha_008 + +``` + +alpha_008(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- RANK(DELTA(((((HIGH + LOW) / 2) * 0.2) + (VWAP * 0.8)), 4) * -1) + +#### alpha_009 + +``` + +alpha_009(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SMA(((HIGH+LOW)/2-(DELAY(HIGH,1)+DELAY(LOW,1))/2)*(HIGH-LOW)/VOLUME,7,2) + +#### alpha_010 + +``` + +alpha_010(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(MAX(((RET < 0) ? STD(RET, 20) : CLOSE)^2),5)) + +#### alpha_011 + +``` + +alpha_011(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM(((CLOSE-LOW)-(HIGH-CLOSE)). /(HIGH-LOW) . * VOLUME,6) + +#### alpha_012 + +``` + +alpha_012(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK((OPEN - (SUM(VWAP, 10) / 10)))) * (-1 * (RANK(ABS((CLOSE - VWAP))))) + +#### alpha_013 + +``` + +alpha_013(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (((HIGH * LOW)^0.5)-VWAP) + +#### alpha_014 + +``` + +alpha_014(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- CLOSE-DELAY(CLOSE,5) + +#### alpha_015 + +``` + +alpha_015(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- OPEN/DELAY(CLOSE,1)-1 + +#### alpha_016 + +``` + +alpha_016(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1 * TSMAX(RANK(CORR(RANK(VOLUME),RANK(VWAP),5)),5)) + +#### alpha_017 + +``` + +alpha_017(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- RANK((VWAP-MAX(VWAP,15)))^DELTA(CLOSE,5) + +#### alpha_018 + +``` + +alpha_018(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- CLOSE/DELAY(CLOSE,5) + +#### alpha_019 + +``` + +alpha_019(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (CLOSEDELAY(CLOSE,1)?STD(CLOSE:20),0),20,1)/(SMA((CLOSE>DELAY(CLOSE,1)?STD(CLOSE,20):0),20,1)+SMA((CLOSE<=DELAY(CLOSE,1)?STD(CLOSE,20):0),20,1))*100 + +#### alpha_024 + +``` + +alpha_024(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SMA(CLOSE-DELAY(CLOSE,5),5,1) + +#### alpha_025 + +``` + +alpha_025(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1*RANK((DELTA(CLOSE,7)*(1-RANK(DECAYLINEAR((VOLUME/MEAN(VOLUME,20)),9))))))*(1+RANK(SUM(RET,250)))) + +#### alpha_026 + +``` + +alpha_026(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((((SUM(CLOSE,7)/7)-CLOSE))+((CORR(VWAP,DELAY(CLOSE,5),230)))) + +#### alpha_027 + +``` + +alpha_027(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- WMA((CLOSE-DELAY(CLOSE,3))/DELAY(CLOSE,3)*100+(CLOSE-DELAY(CLOSE,6))/DELAY(CLOSE,6)*100,12) + +#### alpha_028 + +``` + +alpha_028(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- 3*SMA((CLOSE-TSMIN(LOW,9))/(TSMAX(HIGH,9)-TSMIN(LOW,9))*100,3,1)-2*SMA(SMA((CLOSE-TSMIN(LOW,9))/( MAX(HIGH,9)-TSMAX(LOW,9))*100,3,1),3,1) + +#### alpha_029 + +``` + +alpha_029(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (CLOSE-DELAY(CLOSE,6))/DELAY(CLOSE,6)*VOLUME + +#### alpha_030(尚未实现) + +``` + +alpha_030(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- WMA((REGRESI(CLOSE/DELAY(CLOSE)-1,MKT,SMB,HML,60))^2,20) + +#### alpha_031 + +``` + +alpha_031(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- CLOSE-MEAN(CLOSE,12))/MEAN(CLOSE,12)*100 + +#### alpha_032 + +``` + +alpha_032(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*SUM(RANK(CORR(RANK(HIGH),RANK(VOLUME),3)),3)) + +#### alpha_033 + +``` + +alpha_033(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((((-1*TSMIN(LOW,5))+DELAY(TSMIN(LOW,5),5))*RANK(((SUM(RET,240)-SUM(RET,20))/220)))*TSRANK(VOLUME,5)) + +#### alpha_034 + +``` + +alpha_034(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- MEAN(CLOSE,12)/CLOSE + +#### alpha_035 + +``` + +alpha_035(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (MIN(RANK(DECAYLINEAR(DELTA(OPEN,1),15)),RANK(DECAYLINEAR(CORR((VOLUME),((OPEN*0.65)+(OPEN*0.35)),17),7)))*-1) + +#### alpha_036 + +``` + +alpha_036(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- RANK(SUM(CORR(RANK(VOLUME),RANK(VWAP)),6),2) + +#### alpha_037 + +``` + +alpha_037(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*RANK(((SUM(OPEN,5)*SUM(RET,5))-DELAY((SUM(OPEN,5)*SUM(RET,5)),10)))) + +#### alpha_038 + +``` + +alpha_038(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (((SUM(HIGH,20)/20)DELAY(CLOSE,1)?VOLUME:0),26)/SUM((CLOSE<=DELAY(CLOSE,1)?VOLUME:0),26)*100 + +#### alpha_041 + +``` + +alpha_041(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(MAX(DELTA((VWAP),3),5))*-1) + +#### alpha_042 + +``` + +alpha_042(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*RANK(STD(HIGH,10)))*CORR(HIGH,VOLUME,10)) + +#### alpha_043 + +``` + +alpha_043(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM((CLOSE>DELAY(CLOSE,1)?VOLUME:(CLOSE=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HI GH,1)),ABS(LOW-DELAY(LOW,1)))),12)) + +#### alpha_050 + +``` + +alpha_050(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12))-SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0: MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELA Y(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)) + +#### alpha_051 + +``` + +alpha_051(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HI GH,1)),ABS(LOW-DELAY(LOW,1)))),12)) + +#### alpha_052 + +``` + +alpha_052(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM(MAX(0,HIGH-DELAY((HIGH+LOW+CLOSE)/3,1)),26)/SUM(MAX(0,DELAY((HIGH+LOW+CLOSE)/3,1)-L),26)*100 + +#### alpha_053 + +``` + +alpha_053(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- COUNT(CLOSE>DELAY(CLOSE,1),12)/12*100 + +#### alpha_054 + +``` + +alpha_054(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*RANK((STD(ABS(CLOSE-OPEN))+(CLOSE-OPEN))+CORR(CLOSE,OPEN,10))) + +#### alpha_055 + +``` + +alpha_055(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM(16*(CLOSE-DELAY(CLOSE,1)+(CLOSE-OPEN)/2+DELAY(CLOSE,1)-DELAY(OPEN,1))/((ABS(HIGH-DELAY(CL OSE,1))>ABS(LOW-DELAY(CLOSE,1))&ABS(HIGH-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1))?ABS(HIGH-DELAY(CLOSE,1))+ABS(LOW-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:(ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1))&ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(CLOSE,1))?ABS(LOW-DELAY(CLOSE,1))+ABS(HIGH-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:ABS(HIGH-DELAY(LOW,1))+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4)))*MAX(ABS(HIGH-DELAY(CLOSE,1)),ABS(LOW-DELAY(CLOSE,1))),20) + +#### alpha_056 + +``` + +alpha_056(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK((OPEN-TSMIN(OPEN,12)))DELAY(CLOSE,1),20)/20*100 + +#### alpha_059 + +``` + +alpha_059(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM((CLOSE=DELAY(CLOSE,1)?0:CLOSE-(CLOSE>DELAY(CLOSE,1)?MIN(LOW,DELAY(CLOSE,1)):MAX(HIGH,DELAY(CLOSE,1)))),20) + +#### alpha_060 + +``` + +alpha_060(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM(((CLOSE-LOW)-(HIGH-CLOSE))./(HIGH-LOW).*VOLUME,20) + +#### alpha_061 + +``` + +alpha_061(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (MAX(RANK(DECAYLINEAR(DELTA(VWAP,1),12)),RANK(DECAYLINEAR(RANK(CORR((LOW),MEAN(VOLUME,80),8)),17)))*-1) + +#### alpha_062 + +``` + +alpha_062(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*CORR(HIGH,RANK(VOLUME),5)) + +#### alpha_063 + +``` + +alpha_063(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SMA(MAX(CLOSE-DELAY(CLOSE,1),0),6,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),6,1)*100 + +#### alpha_064 + +``` + +alpha_064(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (MAX(RANK(DECAYLINEAR(CORR(RANK(VWAP),RANK(VOLUME),4),4)),RANK(DECAYLINEAR(MAX(CORR(RANK(CLOSE),RANK(MEAN(VOLUME,60)),4),13),14)))*-1) + +#### alpha_065 + +``` + +alpha_065(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- MEAN(CLOSE,6)/CLOSE + +#### alpha_066 + +``` + +alpha_066(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (CLOSE-MEAN(CLOSE,6))/MEAN(CLOSE,6)*100 + +#### alpha_067 + +``` + +alpha_067(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SMA(MAX(CLOSE-DELAY(CLOSE,1),0),24,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),24,1)*100 + +#### alpha_068 + +``` + +alpha_068(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SMA(((HIGH+LOW)/2-(DELAY(HIGH,1)+DELAY(LOW,1))/2)*(HIGH-LOW)/VOLUME,15,2) + +#### alpha_069 + +``` + +alpha_069(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (SUM(DTM,20)>SUM(DBM,20)?(SUM(DTM,20)-SUM(DBM,20))/SUM(DTM,20):(SUM(DTM,20)=SUM(DBM,20)?0:(SUM(DTM,20)-SUM(DBM,20))/SUM(DBM,20))) + +#### alpha_070 + +``` + +alpha_070(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- STD(AMOUNT,6) + +#### alpha_071 + +``` + +alpha_071(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (CLOSE-MEAN(CLOSE,24))/MEAN(CLOSE,24)*100 + +#### alpha_072 + +``` + +alpha_072(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SMA((TSMAX(HIGH,6)-CLOSE)/(TSMAX(HIGH,6)-TSMIN(LOW,6))*100,15,1) + +#### alpha_073 + +``` + +alpha_073(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((TSRANK(DECAYLINEAR(DECAYLINEAR(CORR((CLOSE),VOLUME,10),16),4),5)-RANK(DECAYLINEAR(CORR(VWAP,MEAN(VOLUME,30),4),3)))*-1) + +#### alpha_074 + +``` + +alpha_074(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(CORR(SUM(((LOW*0.35)+(VWAP*0.65)),20),SUM(MEAN(VOLUME,40),20),7))+RANK(CORR(RANK(VWAP),RANK(VOLUME),6))) + +#### alpha_075 + +``` + +alpha_075(code,benchmark='000300.XSHG',end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- benchmark:基准指数,默认为沪深300 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- BANCHMARKINDEXCLOSEDELAY(CLOSE,1)?VOLUME:(CLOSE=DELAY(OPEN,1)?0:MAX((OPEN-LOW),(OPEN-DELAY(OPEN,1)))),20) + +#### alpha_094 + +``` + +alpha_094(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM((CLOSE>DELAY(CLOSE,1)?VOLUME:(CLOSE0?CLOSE-DELAY(CLOSE,1):0),12)-SUM((CLOSE-DELAY(CLOSE,1)\<0?ABS(CLOS E-DELAY(CLOSE,1)):0),12))/(SUM((CLOSE-DELAY(CLOSE,1)>0?CLOSE-DELAY(CLOSE,1):0),12)+SUM((CLOSE-DE LAY(CLOSE,1)\<0?ABS(CLOSE-DELAY(CLOSE,1)):0),12))*100 + +#### alpha_113 + +``` + +alpha_113(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*((RANK((SUM(DELAY(CLOSE,5),20)/20))*CORR(CLOSE,VOLUME,2))*RANK(CORR(SUM(CLOSE,5),SUM(CLOSE,20),2)))) + +#### alpha_114 + +``` + +alpha_114(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((RANK(DELAY(((HIGH-LOW)/(SUM(CLOSE,5)/5)),2))*RANK(RANK(VOLUME)))/(((HIGH-LOW)/(SUM(CLOSE,5)/5))/(VWAP-CLOSE))) + +#### alpha_115 + +``` + +alpha_115(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(CORR(((HIGH*0.9)+(CLOSE*0.1)),MEAN(VOLUME,30),10))^RANK(CORR(TSRANK(((HIGH+LOW)/2),4),TSRANK(VOLUME,10),7))) + +#### alpha_116 + +``` + +alpha_116(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- REGBETA(CLOSE,SEQUENCE,20) + +#### alpha_117 + +``` + +alpha_117(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((TSRANK(VOLUME,32)*(1-TSRANK(((CLOSE+HIGH)-LOW),16)))*(1-TSRANK(RET,32))) + +#### alpha_118 + +``` + +alpha_118(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM(HIGH-OPEN,20)/SUM(OPEN-LOW,20)*100 + +#### alpha_119 + +``` + +alpha_119(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(DECAYLINEAR(CORR(VWAP,SUM(MEAN(VOLUME,5),26),5),7))-RANK(DECAYLINEAR(TSRANK(MIN(CORR(RANK(OPEN),RANK(MEAN(VOLUME,15)),21),9),7),8))) + +#### alpha_120 + +``` + +alpha_120(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK((VWAP-CLOSE))/RANK((VWAP+CLOSE))) + +#### alpha_121 + +``` + +alpha_121(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((RANK((VWAP-MIN(VWAP,12)))^TSRANK(CORR(TSRANK(VWAP,20),TSRANK(MEAN(VOLUME,60),2),18),3))*-1) + +#### alpha_122 + +``` + +alpha_122(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (SMA(SMA(SMA(LOG(CLOSE),13,2),13,2),13,2)-DELAY(SMA(SMA(SMA(LOG(CLOSE),13,2),13,2),13,2),1))/DELAY(SMA(SMA(SMA(LOG(CLOSE),13,2),13,2),13,2),1) + +#### alpha_123 + +``` + +alpha_123(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((RANK(CORR(SUM(((HIGH+LOW)/2),20),SUM(MEAN(VOLUME,60),20),9))\ + +#### alpha_124 + +``` + +alpha_124(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (CLOSE-VWAP)/DECAYLINEAR(RANK(TSMAX(CLOSE,30)),2) + +#### alpha_125 + +``` + +alpha_125(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(DECAYLINEAR(CORR((VWAP),MEAN(VOLUME,80),17),20))/RANK(DECAYLINEAR(DELTA(((CLOSE*0.5)+(VWAP*0.5)),3),16))) + +#### alpha_126 + +``` + +alpha_126(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (CLOSE+HIGH+LOW)/3 + +#### alpha_127 + +``` + +alpha_127(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (MEAN((100*(CLOSE-MAX(CLOSE,12))/(MAX(CLOSE,12)))^2))^(1/2) + +#### alpha_128 + +``` + +alpha_128(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- 100-(100/(1+SUM(((HIGH+LOW+CLOSE)/3>DELAY((HIGH+LOW+CLOSE)/3,1)?(HIGH+LOW+CLOSE)/3* VOLUM E:0),14)/SUM(((HIGH+LOW+CLOSE)/3 < DELAY((HIGH+LOW+CLOSE)/3,1)?(HIGH+LOW+CLOSE)/3* VOLUME:0), 14))) + +#### alpha_129 + +``` + +alpha_129(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM((CLOSE-DELAY(CLOSE,1)\<0?ABS(CLOSE-DELAY(CLOSE,1)):0),12) + +#### alpha_130 + +``` + +alpha_130(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(DECAYLINEAR(CORR(((HIGH+LOW)/2),MEAN(VOLUME,40),9),10))/RANK(DECAYLINEAR(CORR(RANK(VWAP),RANK(VOLUME),7),3))) + +#### alpha_131 + +``` + +alpha_131(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(DELAT(VWAP,1))^TSRANK(CORR(CLOSE,MEAN(VOLUME,50),18),18)) + +#### alpha_132 + +``` + +alpha_132(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- MEAN(AMOUNT,20) + +#### alpha_133 + +``` + +alpha_133(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((20-HIGHDAY(HIGH,20))/20)*100-((20-LOWDAY(LOW,20))/20)*100 + +#### alpha_134 + +``` + +alpha_134(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (CLOSE-DELAY(CLOSE,12))/DELAY(CLOSE,12)*VOLUME + +#### alpha_135 + +``` + +alpha_135(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: -SMA(DELAY(CLOSE/DELAY(CLOSE,20),1),20,1) + +#### alpha_136 + +``` + +alpha_136(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1*RANK(DELTA(RET,3)))*CORR(OPEN,VOLUME,10)) + +#### alpha_137 + +``` + +alpha_137(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- 16*(CLOSE-DELAY(CLOSE,1)+(CLOSE-OPEN)/2+DELAY(CLOSE,1)-DELAY(OPEN,1))/((ABS(HIGH-DELAY(CLOSE,1))>ABS(LOW-DELAY(CLOSE,1)) &ABS(HIGH-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1))?ABS(HIGH-DELAY(CLOSE,1))+ABS(LOW-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:(ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1)) & ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(CLOSE,1))?ABS(LOW-DELAY(CLOSE,1))+ABS(HIGH-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:ABS(HIGH-DELAY(LOW,1))+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4)))*MAX(ABS(HIGH-DELAY(CLOSE,1)),ABS(LOW-DELAY(CLOSE,1))) + +#### alpha_138 + +``` + +alpha_138(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((RANK(DECAYLINEAR(DELTA((((LOW*0.7)+(VWAP*0.3))),3),20))-TSRANK(DECAYLINEAR(TSRANK(CORR(TSRANK(LOW,8),TSRANK(MEAN(VOLUME,60),17),5),19),16),7))* -1) + +#### alpha_139 + +``` + +alpha_139(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*CORR(OPEN,VOLUME,10)) + +#### alpha_140 + +``` + +alpha_140(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- MIN(RANK(DECAYLINEAR(((RANK(OPEN)+RANK(LOW))-(RANK(HIGH)+RANK(CLOSE))),8)),TSRANK(DECAYLINEAR(CORR(TSRANK(CLOSE,8),TSRANK(MEAN(VOLUME,60),20),8),7),3)) + +#### alpha_141 + +``` + +alpha_141(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(CORR(RANK(HIGH),RANK(MEAN(VOLUME,15)),9))*-1) + +#### alpha_142 + +``` + +alpha_142(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (((-1*RANK(TSRANK(CLOSE,10)))*RANK(DELTA(DELTA(CLOSE,1),1)))*RANK(TSRANK((VOLUME/MEAN(VOLUME,20)),5))) + +#### alpha_143 + +``` + +alpha_143(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- CLOSE>DELAY(CLOSE,1)?(CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1)*SELF:SELF + +#### alpha_144 + +``` + +alpha_144(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUMIF(ABS(CLOSE/DELAY(CLOSE,1)-1)/AMOUNT,20,CLOSEDELAY(CLOSE,1))?1/(CLOSE-DELAY(CLOSE,1)):1)-MIN(((CLOSE>DELAY(CLOSE,1))?1/(CLOSE-D ELAY(CLOSE,1)):1),12))/(HIGH-LOW)*100,13,2) + +#### alpha_165(尚未实现) + +``` + +alpha_165(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- MAX(SUMAC(CLOSE-MEAN(CLOSE,48)))-MIN(SUMAC(CLOSE-MEAN(CLOSE,48)))/STD(CLOSE,48) + +#### alpha_166 + +``` + +alpha_166(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- -20*(20-1)^1.5* SUM(CLOSE/DELAY(CLOSE,1)-1-MEAN(CLOSE/DELAY(CLOSE,1)-1,20),20)/((20-1)* (20-2)(SUM((CLOSE/DELAY(CLOSE,1),20)^2,20))^1.5) + +#### alpha_167 + +``` + +alpha_167(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM((CLOSE-DELAY(CLOSE,1)>0?CLOSE-DELAY(CLOSE,1):0),12 + +#### alpha_168 + +``` + +alpha_168(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (-1*VOLUME/MEAN(VOLUME,20)) + +#### alpha_169 + +``` + +alpha_169(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SMA(MEAN(DELAY(SMA(CLOSE-DELAY(CLOSE,1),9,1),1),12)-MEAN(DELAY(SMA(CLOSE-DELAY(CLOSE,1),9,1),1), 26),10,1) + +#### alpha_170 + +``` + +alpha_170(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((((RANK((1/CLOSE))*VOLUME)/MEAN(VOLUME,20))*((HIGH*RANK((HIGH-CLOSE)))/(SUM(HIGH,5)/5)))-RANK((VWAP-DELAY(VWAP,5)))) + +#### alpha_171 + +``` + +alpha_171(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((-1*((LOW-CLOSE)*(OPEN^5)))/((CLOSE-HIGH)*(CLOSE^5))) + +#### alpha_172 + +``` + +alpha_172(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- MEAN(ABS(SUM((LD>0&LD>HD)?LD:0,14)*100/SUM(TR,14)-SUM((HD>0&HD>LD)?HD:0,14)*100/SUM(TR,14))/(SUM((LD>0&LD>HD)?LD:0,14)*100/SUM(TR,14)+SUM((HD>0&HD>LD)?HD:0,14)*100/SUM(TR,14))*100,6) + +#### alpha_173 + +``` + +alpha_173(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- 3*SMA(CLOSE,13,2)-2*SMA(SMA(CLOSE,13,2),13,2)+SMA(SMA(SMA(LOG(CLOSE),13,2),13,2),13,2); + +#### alpha_174 + +``` + +alpha_174(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SMA((CLOSE>DELAY(CLOSE,1)?STD(CLOSE,20):0),20,1) + +#### alpha_175 + +``` + +alpha_175(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- MEAN(MAX(MAX((HIGH-LOW),ABS(DELAY(CLOSE,1)-HIGH)),ABS(DELAY(CLOSE,1)-LOW)),6) + +#### alpha_176 + +``` + +alpha_176(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- CORR(RANK(((CLOSE-TSMIN(LOW,12))/(TSMAX(HIGH,12)-TSMIN(LOW,12)))),RANK(VOLUME),6) + +#### alpha_177 + +``` + +alpha_177(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((20-HIGHDAY(HIGH,20))/20)*100 + +#### alpha_178 + +``` + +alpha_178(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1)*VOLUME + +#### alpha_179 + +``` + +alpha_179(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- (RANK(CORR(VWAP,VOLUME,4))*RANK(CORR(RANK(LOW),RANK(MEAN(VOLUME,50)),12))) + +#### alpha_180 + +``` + +alpha_180(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((MEAN(VOLUME,20)OPEN&BANCHMARKINDEXCLOSE>BANCHMARKINDEXOPEN)OR(CLOSE0&LD>HD)?LD:0,14)*100/SUM(TR,14)-SUM((HD>0&HD>LD)?HD:0,14)*100/SUM(TR,14))/(SUM((LD>0&LD>HD)?LD:0,14)*100/SUM(TR,14)+SUM((HD>0&HD>LD)?HD:0,14)*100/SUM(TR,14))*100,6)+DELAY(MEAN(ABS(SUM((LD>0&LD>HD)?LD:0,14)*100/SUM(TR,14)-SUM((HD>0&HD>LD)?HD:0,14)*100/SUM(TR,14))/(SUM((LD>0&LD>HD)?LD:0,14)*100/SUM(TR,14)+SUM((HD>0&HD>LD)?HD:0,14)*100/SUM(TR,14))*100,6),6))/2 + +#### alpha_187 + +``` + +alpha_187(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- SUM((OPEN<=DELAY(OPEN,1)?0:MAX((HIGH-OPEN),(OPEN-DELAY(OPEN,1)))),20) + +#### alpha_188 + +``` + +alpha_188(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((HIGH-LOW–SMA(HIGH-LOW,11,2))/SMA(HIGH-LOW,11,2))*100 + +#### alpha_189 + +``` + +alpha_189(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- MEAN(ABS(CLOSE-MEAN(CLOSE,6)),6) + +#### alpha_190 + +``` + +alpha_190(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式:(公式有部分缺失 有调整) +- 原公式: + +- LOG((COUNT(CLOSE/DELAY(CLOSE)-1>((CLOSE/DELAY(CLOSE,19))^(1/20)-1),20)-1)*(SUMIF(((CLOSE/DELAY(CLOSE)-1-(CLOSE/DELAY(CLOSE,19))^(1/20)-1))^2,20,CLOSE/DELAY(CLOSE)-1<(CLOSE/DELAY(CLOSE,19))^(1/20)-1))/((COUNT((CLOSE/DELAY(CLOSE)-1<(CLOSE/DELAY(CLOSE,19))^(1/20)-1),20))*(SUMIF((CLOSE/DELAY(CLOSE)-1-((CLOSE/DELAY(CLOSE,19))^(1/20)-1))^2,20,CLOSE/DELAY(CLOSE)-1>(CLOSE/DELAY(CLOSE,19))^(1/20)-1)))) +- 修改后公式: + +- LOG((COUNT(CLOSE/DELAY(CLOSE,1)-1>((CLOSE/DELAY(CLOSE,19))^(1/20)-1),20)-1)*(SUMIF(((CLOSE/DELAY(CLOSE,1)-1-(CLOSE/DELAY(CLOSE,19))^(1/20)-1))^2,20,CLOSE/DELAY(CLOSE,1)-1<(CLOSE/DELAY(CLOSE,19))^(1/20)-1))/((COUNT((CLOSE/DELAY(CLOSE,1)-1<(CLOSE/DELAY(CLOSE,19))^(1/20)-1),20))*(SUMIF((CLOSE/DELAY(CLOSE,1)-1-((CLOSE/DELAY(CLOSE,19))^(1/20)-1))^2,20,CLOSE/DELAY(CLOSE,1)-1>(CLOSE/DELAY(CLOSE,19))^(1/20)-1)))) + +#### alpha_191 + +``` + +alpha_191(code,end_date=None) +``` + +- 输入: +- code: 股票代码列表 +- end_date: 计算哪一天的因子 ,默认为None也就是最近一交易日的日期 +- 输出: +- 一个 Series:index 为成分股代码,values 为对应的因子值 +- 因子公式: +- ((CORR(MEAN(VOLUME,20),LOW,5)+((HIGH+LOW)/2))-CLOSE) diff --git "a/docs/joinquant-api/JQ_\345\234\272\345\206\205\345\237\272\351\207\221\346\225\260\346\215\256.md" "b/docs/joinquant-api/JQ_\345\234\272\345\206\205\345\237\272\351\207\221\346\225\260\346\215\256.md" new file mode 100644 index 0000000..d3a1686 --- /dev/null +++ "b/docs/joinquant-api/JQ_\345\234\272\345\206\205\345\237\272\351\207\221\346\225\260\346\215\256.md" @@ -0,0 +1,631 @@ +## 获取基金数据 + +我们目前包含100多种ETF、20多种LOF、200多种分级A/B基金完整的行情、净值数据. 详情见[基金列表](https://www.joinquant.com/help/api/help?name=fund#%E5%9F%BA%E9%87%91%E5%88%97%E8%A1%A8) + +更多API的可参考[官方API文档](https://www.joinquant.com/api) + +### 基金概况:上市退市时间、代码、名称、累计/单位净值等 + +#### 获取单支基金数据 + +获取单支基金的信息. + +**调用方法** + +``` + +get_security_info(code) +``` + +**参数** + +- code: 基金代码 + +**返回值** + +- 一个对象, 有如下属性: + +- display_name # 中文名称 +- name # 缩写简称 +- start_date # 上市日期, [datetime.date] 类型 +- end_date # 退市日期, [datetime.date] 类型, 如果没有退市则为2200-01-01 +- type # 类型 etf(ETF基金),fja(分级A),fjb(分级B),fjm(分级母基金),lof(场内交易开发基金),mmf(场内交易货币基金) +- parent # 分级基金的母基金代码 + +**示例** + +``` + +get_security_info('159901.XSHE').start_date #获取深100ETF的上市日期 +``` + +#### 获取所有基金数据 + +获取平台支持的所有基金数据 + +**调用方法** + +``` + +get_all_securities(['fund']) +``` + +这里请在使用时注意防止未来函数。 + +**返回** + - display_name # 中文名称 + - name # 缩写简称 + - start_date # 上市日期 + - end_date # 退市日期,如果没有退市则为2200-01-01 + - type # 类型, etf(ETF基金),fja(分级A),fjb(分级B),fjm(分级母基金),lof(场内交易开发基金),mmf(场内交易货币基金) [pandas.DataFrame], 比如:`get_all_securities(['fund'])[:2]`返回: + +| display_name | name | start_date | end_date | type | +| --- | --- | --- | --- | --- | +| 150008.XSHE | 国投瑞银沪深300指数分级-A | RHXK | 2009-11-19 | 2200-01-01 | +| 150009.XSHE | 国投瑞银沪深300指数分级-B | RHYJ | 2009-11-19 | 2200-01-01 | + +**示例** + +``` + +def initialize(context): + #获得基金列表 + df = get_all_securities(['fund']) + #获得etf基金列表 + etfs = df[df['type']=='etf'] + #获得lof基金列表 + lofs = df[df['type']=='lof'] + #获得分级A基金列表 + lofs = df[df['type']=='fja'] + #获得分级B基金列表 + lofs = df[df['type']=='fjb'] +``` + +#### 基金累计/单位净值 + +得到基金在一段时间的如下的数据: + +- acc_net_value: 基金累计净值 +- unit_net_value: 基金单位净值 + +**调用方法** + +``` + +get_extras(info, security_list, start_date='2015-01-01', end_date='2015-12-31', df=True,count=None): +``` + +**参数** + +- info: [‘acc_net_value’, ‘unit_net_value’] 中的一个 +- security_list: 基金列表 +- start_date/end_date: 开始结束日期, 同[get_price] +- df: 返回[pandas.DataFrame]对象还是一个dict, 同[history] +- count:限定返回条数 + +**返回值** + +- df=True: [pandas.DataFrame]对象, 列索引是基金代号, 行索引是[datetime.datetime], 比如`get_extras('acc_net_value', ['510300.XSHG', '510050.XSHG'], start_date='2015-12-01', end_date='2015-12-03')`返回: + +| 510300.XSHG | 510050.XSHG | +| --- | --- | +| 2015-12-01 00:00:00 | 1.395 | +| 2015-12-02 00:00:00 | 1.4432 | +| 2015-12-03 00:00:00 | 1.4535 | + +- df=False + 一个dict, key是基金代号, value是[numpy.ndarray], 比如 `get_extras('acc_net_value', ['510300.XSHG', '510050.XSHG'], start_date='2015-12-01', end_date='2015-12-03', df=False)` 返回: + `{ u'510050.XSHG': array([ 3.119, 3.251, 3.254]), u'510300.XSHG': array([ 1.395 , 1.4432, 1.4535]) }` + +#### 场内基金份额数据 + +``` + +from jqdata import * +finance.run_query(query(finance.FUND_SHARE_DAILY).filter(finance.FUND_SHARE_DAILY.date=='2019-05-23').limit(n)) +``` + +描述:记录每日场内基金份额数据 + +**参数:** + +- **query(finance.FUND_SHARE_DAILY)**:表示从finance.FUND_SHARE_DAILY这张表中查询每日场内基金份额数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411) +- **finance.FUND_SHARE_DAILY**:收录了每日场内基金份额数据,表结构和字段信息如下: + +**字段设计**: + +| 名称 | 类型 | 描述 | +| --- | --- | --- | +| code | varchar(12) | 基金代码 | +| name | varchar(50) | 基金简称 | +| exchange_code | varchar(12) | 交易市场编码,XSHG-上海证券交易所;XSHE-深圳证券交易所 | +| date | date | 日期 | +| shares | bigint | 基金份额(份) | + +- **filter(finance.FUND_SHARE_DAILY.date==date)**:指定筛选条件,通过finance.FUND_SHARE_DAILY.date==date可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询2019-05-23的场内基金份额数据。 +from jqdata import * +df=finance.run_query(query(finance.FUND_SHARE_DAILY).filter(finance.FUND_SHARE_DAILY.date=='2019-05-23').limit(10)) +df + + id code name exchange_code date shares +0 960881 150008.XSHE 瑞和小康 XSHE 2019-05-23 17749200 +1 960882 150009.XSHE 瑞和远见 XSHE 2019-05-23 17749200 +2 960883 150012.XSHE 中证100A XSHE 2019-05-23 36139500 +3 960884 150013.XSHE 中证100B XSHE 2019-05-23 54209300 +4 960885 150016.XSHE 合润A XSHE 2019-05-23 38111200 +5 960886 150017.XSHE 合润B XSHE 2019-05-23 57166800 +6 960887 150018.XSHE 银华稳进 XSHE 2019-05-23 3081515900 +7 960888 150019.XSHE 银华锐进 XSHE 2019-05-23 3081515900 +8 960889 150022.XSHE 深成指A XSHE 2019-05-23 2472644500 +9 960890 150023.XSHE 深成指B XSHE 2019-05-23 2472644500 +``` + +#### 获取场内基金tick数据 + +``` + +get_ticks(security,end_dt,start_dt,count, fields, skip) +``` + +**获取场内基金tick数据, 支持 2019-01-01 至今的tick数据,提供买五卖五盘口数据。(每3秒一次快照)** + +**参数**: + +- security: 场内基金代码,如'510050.XSHG' +- end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' +- start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' +- count: 取出指定时间区间内前N条的tick数据。 +- fields: 选择要获取的行情数据字段,默认为None,返回结果如下场内基金tick返回结果。 +- skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留从2019年1月1日以来无成交有盘口变化的tick数据。 +- **场内基金tick返回结果** + +| 字段名 | 说明 | 字段类型 | +| --- | --- | --- | +| time | 时间 | datetime | +| current | 当前价 | float | +| high | 当日最高价 | float | +| low | 当日最低价 | float | +| volume | 累计成交量(股) | float | +| money | 累计成交额 | float | +| a1_v~a5_v | 五档卖量 | float | +| a1_p~a5_p | 五档卖价 | float | +| b1_v~b5_v | 五档买量 | float | +| b1_p~b5_p | 五档买价 | float | + +**获取场内基金tick数据示例**: + +``` + +#获取50ETF基金2019-10-16的tick数据 +df=get_ticks('510050.XSHG','2019-10-16 15:30:00','2019-10-16 09:00:00') +df + +array([(20191016092500.39, 3.064, 3.064, 3.064, 2327900.0, 7132686.0), + (20191016093000.55, 3.064, 3.065, 3.063, 2491600.0, 7634304.0), + (20191016093003.53, 3.064, 3.065, 3.063, 3177815.0, 9737131.0), + ..., + (20191016145952.35, 3.051, 3.094, 3.045, 410043611.0, 1257385115.0), + (20191016145956.09, 3.05, 3.094, 3.045, 410194711.0, 1257846102.0), + (20191016145958.37, 3.051, 3.094, 3.045, 410241811.0, 1257989802.0)], + dtype=(numpy.record, [('time', '>> + + id code name pub_date start_date end_date traced_index_name traced_index_code +0 930 510190.XSHG 上证50基 2010-10-20 2010-10-25 2023-02-23 上证龙头(000065) 000065.XSHG +1 742 510190.XSHG 上证50基 2023-02-23 2023-02-23 None 上证50(000016) 000016.XSHG +``` + +### 基金列表 + +我们目前提供了所有上市交易的场内基金数据(含已退市),包含ETF、LOF、分级AB(已全部退市)、货币基金及reits基金 + +``` + +df = get_all_securities("fund") #获取所有场内基金 +df[df['type'] == 'reits' ] # 获取所有reits基金 +df[df.display_name.str.contains("指|增")] #获取名称中含"指"或"增" 的场内基金 +df[df.display_name.str.contains("指")&df.display_name.str.contains("增")] #获取名称中含"指"和"增" 的场内基金 +``` + +#### LOF列表 + +| code | display_name | start_date | type | +| --- | --- | --- | --- | +| 160105.XSHE | 南方积配 | 2004/12/20 | lof | +| 160106.XSHE | 南方高增 | 2005/9/21 | lof | +| 160119.XSHE | 南方500 | 2009/11/11 | lof | +| 160123.XSHE | 南方10年国债A | 2011/7/25 | lof | +| 160125.XSHE | 南方香港 | 2011/11/1 | lof | +| 160128.XSHE | 南方金利 | 2012/7/16 | lof | +| 160130.XSHE | 南方永利 | 2013/6/6 | lof | +| 160131.XSHE | 南方聚利 | 2014/1/21 | lof | +| 160133.XSHE | 南方天元 | 2014/8/25 | lof | +| 160138.XSHE | 国企精明 | 2017/5/17 | lof | +| 160140.XSHE | 美国REIT | 2017/11/24 | lof | +| 160142.XSHE | 南方配售 | 2019/3/29 | lof | +| 160211.XSHE | 国泰小盘 | 2010/1/7 | lof | +| 160212.XSHE | 国泰估值 | 2013/2/27 | lof | +| 160215.XSHE | 国泰价值 | 2010/9/13 | lof | +| 160216.XSHE | 国泰商品 | 2015/4/7 | lof | +| 160220.XSHE | 国泰民益 | 2014/1/16 | lof | +| 160223.XSHE | 创业板基 | 2016/11/28 | lof | +| 160225.XSHE | 新汽车 | 2016/7/20 | lof | +| 160311.XSHE | 华夏蓝筹 | 2007/5/28 | lof | +| 160314.XSHE | 华夏行业 | 2008/1/14 | lof | +| 160322.XSHE | 港股精选 | 2017/7/24 | lof | +| 160323.XSHE | 华夏磐泰 | 2017/3/15 | lof | +| 160324.XSHE | 华夏磐晟 | 2017/8/8 | lof | +| 160415.XSHE | 华安量化 | 2011/10/18 | lof | +| 160416.XSHE | 石油基金 | 2012/5/2 | lof | +| 160421.XSHE | 华安智增 | 2016/12/19 | lof | +| 160422.XSHE | 华安创业板50ETF联接 | 2017/5/26 | lof | +| 160505.XSHE | 博时主题 | 2005/2/22 | lof | +| 160512.XSHE | 博时卓越 | 2011/6/30 | lof | +| 160513.XSHE | 稳健债A | 2014/7/1 | lof | +| 160515.XSHE | 安丰18 | 2013/10/17 | lof | +| 160518.XSHE | 博时睿远 | 2016/7/11 | lof | +| 160519.XSHE | 博时睿利 | 2016/8/23 | lof | +| 160520.XSHE | 弘盈A | 2016/10/26 | lof | +| 160522.XSHE | 博时睿益 | 2016/11/16 | lof | +| 160607.XSHE | 鹏华价值 | 2006/9/18 | lof | +| 160610.XSHE | 鹏华动力 | 2007/3/9 | lof | +| 160611.XSHE | 鹏华治理 | 2007/7/18 | lof | +| 160613.XSHE | 鹏华创新 | 2008/11/10 | lof | +| 160615.XSHE | 鹏华300 | 2009/5/8 | lof | +| 160616.XSHE | 鹏华500 | 2010/4/28 | lof | +| 160617.XSHE | 鹏华丰润 | 2010/12/16 | lof | +| 160618.XSHE | 鹏华丰泽 | 2014/12/25 | lof | +| 160621.XSHE | 鹏华丰和 | 2013/1/9 | lof | +| 160622.XSHE | 鹏华丰利 | 2016/5/24 | lof | +| 160635.XSHE | 医药基金 | 2016/8/1 | lof | +| 160642.XSHE | 鹏华增瑞 | 2016/9/29 | lof | +| 160643.XSHE | 空天一体 | 2017/6/20 | lof | +| 160644.XSHE | 互联网QD | 2017/12/29 | lof | +| 160706.XSHE | 嘉实300 | 2005/10/17 | lof | +| 160716.XSHE | 嘉实50 | 2010/2/10 | lof | +| 160717.XSHE | 恒生H股 | 2010/10/28 | lof | +| 160719.XSHE | 嘉实黄金 | 2012/2/10 | lof | +| 160720.XSHE | 中期企债 | 2013/4/1 | lof | +| 160722.XSHE | 嘉实惠泽 | 2016/12/9 | lof | +| 160723.XSHE | 嘉实原油 | 2017/5/5 | lof | +| 160726.XSHE | 嘉实瑞享 | 2019/4/12 | lof | +| 160805.XSHE | 长盛同智 | 2007/2/16 | lof | +| 160806.XSHE | 长盛同庆 | 2015/8/6 | lof | +| 160807.XSHE | 长盛300 | 2010/9/6 | lof | +| 160809.XSHE | 长盛同辉 | 2017/12/5 | lof | +| 160810.XSHE | 长盛同丰 | 2014/7/11 | lof | +| 160812.XSHE | 长盛同益 | 2014/6/4 | lof | +| 160813.XSHE | 长盛同盛 | 2014/12/26 | lof | +| 160910.XSHE | 大成创新 | 2007/10/25 | lof | +| 160915.XSHE | 大成景丰 | 2013/12/2 | lof | +| 160916.XSHE | 优选LOF | 2012/12/28 | lof | +| 160918.XSHE | 大成小盘 | 2014/4/30 | lof | +| 160919.XSHE | 大成产业 | 2015/1/9 | lof | +| 160921.XSHE | 多策略 | 2016/11/21 | lof | +| 160922.XSHE | 恒生中小 | 2016/12/12 | lof | +| 160924.XSHE | 恒指LOF | 2017/8/28 | lof | +| 160925.XSHE | 中华300 | 2019/3/29 | lof | +| 161005.XSHE | 富国天惠 | 2006/2/16 | lof | +| 161010.XSHE | 富国天丰 | 2008/12/8 | lof | +| 161015.XSHE | 富国天盈 | 2014/6/4 | lof | +| 161017.XSHE | 富国500 | 2011/10/21 | lof | +| 161029.XSHE | 银行FG | 2019/6/17 | lof | +| 161033.XSHE | 智能汽车 | 2016/2/29 | lof | +| 161035.XSHE | 医药增强 | 2016/11/25 | lof | +| 161037.XSHE | 高端制造 | 2017/5/11 | lof | +| 161038.XSHE | 成长量化 | 2017/8/18 | lof | +| 161039.XSHE | 富国1000 | 2018/6/20 | lof | +| 161115.XSHE | 易基岁丰 | 2010/12/3 | lof | +| 161116.XSHE | 易基黄金 | 2011/11/8 | lof | +| 161117.XSHE | 易基永旭 | 2012/7/18 | lof | +| 161119.XSHE | 易基综债 | 2013/1/9 | lof | +| 161124.XSHE | 香港小盘 | 2016/11/10 | lof | +| 161125.XSHE | 标普500 | 2016/12/14 | lof | +| 161126.XSHE | 标普医药 | 2016/12/14 | lof | +| 161127.XSHE | 标普生物 | 2016/12/27 | lof | +| 161128.XSHE | 标普科技 | 2016/12/27 | lof | +| 161129.XSHE | 原油基金 | 2017/2/15 | lof | +| 161130.XSHE | 纳指LOF | 2017/7/14 | lof | +| 161131.XSHE | 易基配售 | 2019/3/29 | lof | +| 161210.XSHE | 国投新兴 | 2010/7/1 | lof | +| 161213.XSHE | 国投消费 | 2011/1/20 | lof | +| 161216.XSHE | 双债A | 2011/5/20 | lof | +| 161217.XSHE | 国投资源 | 2011/8/29 | lof | +| 161219.XSHE | 国投产业 | 2012/1/16 | lof | +| 161222.XSHE | 国投瑞利 | 2015/5/4 | lof | +| 161224.XSHE | 国投丝路 | 2015/5/6 | lof | +| 161225.XSHE | 国投瑞盈 | 2015/8/14 | lof | +| 161226.XSHE | 白银基金 | 2015/8/17 | lof | +| 161227.XSHE | 深证100 | 2015/8/28 | lof | +| 161229.XSHE | 国投中国 | 2016/1/4 | lof | +| 161230.XSHE | 丰利A类 | 2016/2/25 | lof | +| 161232.XSHE | 国投瑞盛 | 2016/8/19 | lof | +| 161233.XSHE | 国投瑞泰 | 2017/2/27 | lof | +| 161505.XSHE | 银河通利 | 2014/5/23 | lof | +| 161607.XSHE | 融通巨潮 | 2005/6/16 | lof | +| 161610.XSHE | 融通领先 | 2007/7/18 | lof | +| 161614.XSHE | 融通添利 | 2012/4/6 | lof | +| 161626.XSHE | 融通通福 | 2017/1/10 | lof | +| 161630.XSHE | 融通农业 | 2017/2/15 | lof | +| 161631.XSHE | 人工智能 | 2017/4/19 | lof | +| 161706.XSHE | 招商成长 | 2005/12/9 | lof | +| 161713.XSHE | 招商信用 | 2010/7/30 | lof | +| 161714.XSHE | 招商金砖 | 2011/5/11 | lof | +| 161715.XSHE | 大宗商品 | 2017/7/14 | lof | +| 161716.XSHE | 招商双债 | 2015/3/16 | lof | +| 161722.XSHE | 招商丰泰 | 2015/7/22 | lof | +| 161727.XSHE | 招商增荣 | 2016/7/7 | lof | +| 161728.XSHE | 招商配售 | 2019/3/29 | lof | +| 161810.XSHE | 银华内需 | 2009/10/16 | lof | +| 161813.XSHE | 银华信用 | 2010/7/9 | lof | +| 161815.XSHE | 银华通胀 | 2010/12/20 | lof | +| 161820.XSHE | 银华纯债 | 2012/9/5 | lof | +| 161821.XSHE | 银华50A | 2013/1/18 | lof | +| 161823.XSHE | 银华永兴 | 2016/2/17 | lof | +| 161831.XSHE | 恒生中企 | 2015/4/13 | lof | +| 161834.XSHE | 银华鑫锐 | 2016/9/23 | lof | +| 161835.XSHE | 银华惠丰 | 2017/6/19 | lof | +| 161903.XSHE | 万家优选 | 2005/8/15 | lof | +| 161907.XSHE | 万家红利 | 2011/6/15 | lof | +| 161908.XSHE | 万家添利 | 2014/6/16 | lof | +| 161912.XSHE | 社会责任 | 2019/6/14 | lof | +| 162006.XSHE | 长城久富 | 2007/5/18 | lof | +| 162105.XSHE | 持久增利 | 2015/3/20 | lof | +| 162108.XSHE | 元盛债券 | 2015/5/20 | lof | +| 162207.XSHE | 泰达效率 | 2006/7/21 | lof | +| 162215.XSHE | 泰达聚利 | 2016/5/25 | lof | +| 162307.XSHE | 海富100 | 2010/1/8 | lof | +| 162308.XSHE | 海富增利 | 2014/9/16 | lof | +| 162411.XSHE | 华宝油气 | 2012/6/8 | lof | +| 162414.XSHE | 新机遇 | 2015/7/1 | lof | +| 162415.XSHE | 美国消费 | 2016/4/6 | lof | +| 162416.XSHE | 香港本地 | 2018/4/18 | lof | +| 162510.XSHE | 国安双力 | 2015/5/20 | lof | +| 162605.XSHE | 景顺鼎益 | 2005/5/25 | lof | +| 162607.XSHE | 景顺资源 | 2006/4/7 | lof | +| 162703.XSHE | 广发小盘 | 2005/4/29 | lof | +| 162711.XSHE | 广发500L | 2010/1/8 | lof | +| 162712.XSHE | 广发聚利 | 2011/10/27 | lof | +| 162715.XSHE | 广发聚源 | 2013/7/10 | lof | +| 162717.XSHE | 再融资 | 2016/12/29 | lof | +| 162718.XSHE | 广发鑫瑞 | 2017/3/24 | lof | +| 162719.XSHE | 广发石油 | 2017/3/17 | lof | +| 163001.XSHE | 长信医疗 | 2010/4/16 | lof | +| 163003.XSHE | 长信利鑫 | 2016/7/22 | lof | +| 163005.XSHE | 长信利众 | 2016/3/16 | lof | +| 163110.XSHE | 申万量化 | 2011/8/1 | lof | +| 163111.XSHE | 申万中小 | 2017/5/26 | lof | +| 163119.XSHE | 申万健康 | 2016/11/1 | lof | +| 163208.XSHE | 诺安油气 | 2015/2/17 | lof | +| 163302.XSHE | 大摩资源 | 2007/7/5 | lof | +| 163402.XSHE | 兴全趋势 | 2006/1/19 | lof | +| 163407.XSHE | 兴全300 | 2011/1/19 | lof | +| 163409.XSHE | 兴全绿色 | 2011/7/7 | lof | +| 163412.XSHE | 兴全轻资 | 2012/5/31 | lof | +| 163415.XSHE | 兴全模式 | 2013/2/1 | lof | +| 163503.XSHE | 天治核心 | 2007/7/30 | lof | +| 163801.XSHE | 中银中国 | 2005/2/23 | lof | +| 163819.XSHE | 中银信用 | 2012/7/18 | lof | +| 163821.XSHE | 中银300E | 2012/7/13 | lof | +| 163824.XSHE | 中银盛利 | 2013/11/4 | lof | +| 163827.XSHE | 中银产债 | 2014/12/18 | lof | +| 163907.XSHE | 中海惠裕 | 2016/3/3 | lof | +| 164105.XSHE | 华富强债 | 2010/10/11 | lof | +| 164206.XSHE | 天弘添利 | 2015/12/15 | lof | +| 164208.XSHE | 天弘丰利 | 2014/12/3 | lof | +| 164210.XSHE | 天弘同利 | 2016/9/30 | lof | +| 164302.XSHE | 新华惠鑫 | 2017/2/24 | lof | +| 164403.XSHE | 农业精选 | 2016/8/15 | lof | +| 164509.XSHE | 国富恒利 | 2017/4/7 | lof | +| 164606.XSHE | 信用增利 | 2011/12/12 | lof | +| 164701.XSHE | 添富贵金 | 2012/3/1 | lof | +| 164702.XSHE | 添富季红 | 2012/10/25 | lof | +| 164703.XSHE | 添富纯债 | 2016/12/2 | lof | +| 164705.XSHE | 添富恒生 | 2015/4/13 | lof | +| 164808.XSHE | 工银四季 | 2011/3/28 | lof | +| 164812.XSHE | 政府债基 | 2016/3/29 | lof | +| 164814.XSHE | 工银双债 | 2013/12/23 | lof | +| 164815.XSHE | 原油LOF | 2013/6/18 | lof | +| 164823.XSHE | 深成LOF | 2017/10/13 | lof | +| 164824.XSHE | 印度基金 | 2018/8/1 | lof | +| 164902.XSHE | 交银添利 | 2011/4/20 | lof | +| 164906.XSHE | 中国互联 | 2015/7/10 | lof | +| 165309.XSHE | 建信300 | 2009/11/30 | lof | +| 165311.XSHE | 建信信用 | 2011/9/9 | lof | +| 165313.XSHE | 建信优势 | 2013/4/3 | lof | +| 165317.XSHE | 建信丰裕 | 2017/10/13 | lof | +| 165508.XSHE | 信诚深度 | 2010/9/20 | lof | +| 165509.XSHE | 信诚增强 | 2010/11/8 | lof | +| 165510.XSHE | 信诚四国 | 2011/1/20 | lof | +| 165512.XSHE | 信诚机遇 | 2011/9/16 | lof | +| 165513.XSHE | 信诚商品 | 2012/1/13 | lof | +| 165516.XSHE | 信诚周期 | 2012/11/5 | lof | +| 165517.XSHE | 信诚双盈 | 2015/4/23 | lof | +| 165525.XSHE | 基建工程 | 2016/12/9 | lof | +| 165528.XSHE | 信诚鼎利 | 2016/8/31 | lof | +| 165705.XSHE | 诺德双翼 | 2015/3/20 | lof | +| 165806.XSHE | 东吴100 | 2012/4/27 | lof | +| 165807.XSHE | 东吴鼎利 | 2016/5/20 | lof | +| 166001.XSHE | 中欧趋势 | 2007/4/23 | lof | +| 166006.XSHE | 中欧成长 | 2010/3/26 | lof | +| 166007.XSHE | 中欧互通精选混合A | 2010/8/16 | lof | +| 166008.XSHE | 中欧强债 | 2011/2/18 | lof | +| 166009.XSHE | 中欧动力 | 2011/4/29 | lof | +| 166011.XSHE | 中欧盛世 | 2015/4/21 | lof | +| 166012.XSHE | 中欧信用 | 2016/1/8 | lof | +| 166016.XSHE | 中欧纯债 | 2016/3/1 | lof | +| 166023.XSHE | 中欧瑞丰 | 2017/9/15 | lof | +| 166024.XSHE | 中欧恒利 | 2017/12/6 | lof | +| 166025.XSHE | 中欧远见 | 2019/5/27 | lof | +| 166105.XSHE | 信达鑫安 | 2015/6/4 | lof | +| 166401.XSHE | 增利C | 2015/1/8 | lof | +| 166402.XSHE | 沪港深F | 2017/6/9 | lof | +| 166902.XSHE | 民生增利 | 2013/1/30 | lof | +| 166904.XSHE | 民生添利 | 2013/10/29 | lof | +| 167001.XSHE | 平安鼎泰 | 2016/10/18 | lof | +| 167002.XSHE | 平安鼎越 | 2016/12/19 | lof | +| 167003.XSHE | 平安鼎弘 | 2017/6/6 | lof | +| 167501.XSHE | 安信宝利 | 2015/8/7 | lof | +| 167901.XSHE | 华宸300 | 2013/6/3 | lof | +| 168002.XSHE | 国寿精选 | 2017/10/23 | lof | +| 168101.XSHE | 九泰锐智 | 2015/9/15 | lof | +| 168102.XSHE | 九泰锐富 | 2016/5/4 | lof | +| 168103.XSHE | 九泰锐益 | 2016/11/23 | lof | +| 168104.XSHE | 九泰锐丰 | 2016/12/15 | lof | +| 168105.XSHE | 九泰泰富 | 2017/1/10 | lof | +| 168106.XSHE | 盈华A | 2017/6/16 | lof | +| 168108.XSHE | 九泰锐诚 | 2017/7/11 | lof | +| 168301.XSHE | 东海祥龙 | 2017/2/27 | lof | +| 169101.XSHE | 东证睿丰 | 2015/3/6 | lof | +| 169102.XSHE | 东证睿阳 | 2015/7/31 | lof | +| 169103.XSHE | 东证睿轩 | 2016/8/15 | lof | +| 169104.XSHE | 东证睿满 | 2017/2/21 | lof | +| 169105.XSHE | 东证睿华 | 2017/2/21 | lof | +| 169201.XSHE | 浙商鼎盈 | 2017/3/16 | lof | +| 169301.XSHE | 财通500 | 2019/7/31 | lof | +| 184801.XSHE | 鹏华前海 | 2015/9/30 | lof | +| 501000.XSHG | 国金鑫新灵活配置(LOF) | 2015/7/14 | lof | +| 501001.XSHG | 财通精选 | 2015/9/25 | lof | +| 501002.XSHG | 能源互联 | 2016/2/1 | lof | +| 501003.XSHG | 长信优选 | 2017/5/5 | lof | +| 501005.XSHG | 精准医疗 | 2016/3/21 | lof | +| 501006.XSHG | 精准医C | 2016/3/21 | lof | +| 501007.XSHG | 互联医疗 | 2017/2/20 | lof | +| 501008.XSHG | 互联医C | 2017/2/20 | lof | +| 501009.XSHG | 生物科技 | 2017/2/20 | lof | +| 501010.XSHG | 生物科C | 2017/2/20 | lof | +| 501011.XSHG | 中药基金 | 2017/2/20 | lof | +| 501012.XSHG | 中药C | 2017/2/20 | lof | +| 501015.XSHG | 财通升级 | 2016/6/6 | lof | +| 501016.XSHG | 券商基金 | 2017/5/19 | lof | +| 501017.XSHG | 国泰融丰 | 2016/8/26 | lof | +| 501018.XSHG | 南方原油 | 2016/6/28 | lof | +| 501019.XSHG | 军工基金 | 2017/4/21 | lof | +| 501020.XSHG | 国企改 | 2017/4/21 | lof | +| 501021.XSHG | 香港中小 | 2016/7/6 | lof | +| 501022.XSHG | 银华鑫盛 | 2016/11/10 | lof | +| 501023.XSHG | 港中小企 | 2016/10/24 | lof | +| 501025.XSHG | 香港银行 | 2016/11/24 | lof | +| 501026.XSHG | 财通福享 | 2016/12/15 | lof | +| 501027.XSHG | 国泰融信 | 2017/6/1 | lof | +| 501028.XSHG | 财通福瑞 | 2017/2/20 | lof | +| 501029.XSHG | 红利基金 | 2017/2/13 | lof | +| 501030.XSHG | 环境治理 | 2017/2/20 | lof | +| 501031.XSHG | 环境C | 2017/2/20 | lof | +| 501032.XSHG | 福盛定增 | 2017/4/21 | lof | +| 501035.XSHG | 创金睿选 | 2017/9/18 | lof | +| 501036.XSHG | 中证500A | 2017/10/9 | lof | +| 501037.XSHG | 中证500C | 2017/10/9 | lof | +| 501038.XSHG | 银华明择 | 2017/11/24 | lof | +| 501040.XSHG | 添富睿C | 2018/1/12 | lof | +| 501043.XSHG | 沪深300A | 2017/10/9 | lof | +| 501045.XSHG | 沪深300C | 2017/10/9 | lof | +| 501046.XSHG | 财通福鑫 | 2017/12/1 | lof | +| 501047.XSHG | 全指证券 | 2018/1/18 | lof | +| 501048.XSHG | 证券C | 2018/1/18 | lof | +| 501050.XSHG | 50AH | 2016/11/28 | lof | +| 501051.XSHG | 圆信汇利 | 2018/1/31 | lof | +| 501057.XSHG | 新能源车 | 2018/6/20 | lof | +| 501058.XSHG | 新能车C | 2018/6/20 | lof | +| 501059.XSHG | 国企红利 | 2018/7/26 | lof | +| 501060.XSHG | 金选300A | 2018/9/25 | lof | +| 501061.XSHG | 金选300C | 2018/9/25 | lof | +| 501062.XSHG | 南方瑞合 | 2018/12/5 | lof | +| 501065.XSHG | 经典成长 | 2019/5/8 | lof | +| 501067.XSHG | 富时AH50 | 2019/1/4 | lof | +| 501068.XSHG | AH50C | 2019/1/4 | lof | +| 501069.XSHG | 质量基金 | 2019/3/5 | lof | +| 501072.XSHG | 红利增强 | 2019/7/2 | lof | +| 501106.XSHG | 十年国开 | 2017/12/13 | lof | +| 501186.XSHG | 华夏配售 | 2019/3/29 | lof | +| 501188.XSHG | 添富配售 | 2019/3/29 | lof | +| 501189.XSHG | 嘉实配售 | 2019/3/29 | lof | +| 501300.XSHG | 美元债 | 2017/2/16 | lof | +| 501301.XSHG | 香港大盘 | 2017/5/8 | lof | +| 501302.XSHG | 恒生联接 | 2017/8/15 | lof | +| 501303.XSHG | 恒生中型 | 2017/10/25 | lof | +| 501305.XSHG | 港股高息 | 2018/1/18 | lof | +| 501306.XSHG | 港股高C | 2018/1/18 | lof | +| 501307.XSHG | 银河高股 | 2018/4/25 | lof | +| 501309.XSHG | 港股通 | 2018/12/10 | lof | +| 501310.XSHG | 价值基金 | 2018/11/22 | lof | +| 501311.XSHG | 新经济HK | 2019/2/14 | lof | +| 502000.XSHG | 500等权 | 2015/4/27 | lof | +| 502003.XSHG | 军工分级 | 2015/7/15 | lof | +| 502006.XSHG | 国企改革 | 2015/6/25 | lof | +| 502010.XSHG | 证券分级 | 2015/7/15 | lof | +| 502013.XSHG | 一带一路 | 2015/6/9 | lof | +| 502016.XSHG | 带路分级 | 2016/2/1 | lof | +| 502020.XSHG | 国金50 | 2015/6/5 | lof | +| 502023.XSHG | 钢铁分级 | 2015/8/24 | lof | +| 502026.XSHG | 新丝路 | 2015/8/24 | lof | +| 502030.XSHG | 高铁分级 | 2015/8/7 | lof | +| 502036.XSHG | 互联金融 | 2015/7/7 | lof | +| 502040.XSHG | 上50分级 | 2015/8/24 | lof | +| 502048.XSHG | 50分级 | 2015/4/27 | lof | +| 502053.XSHG | 券商分级 | 2015/8/24 | lof | +| 502056.XSHG | 医疗分级 | 2015/7/31 | lof | +| 505888.XSHG | 嘉实元和 | 2015/3/16 | lof | +| 511670.XSHG | 华泰天金 | 2017/8/28 | lof | diff --git "a/docs/joinquant-api/JQ_\345\256\217\350\247\202\347\273\217\346\265\216\346\225\260\346\215\256.md" "b/docs/joinquant-api/JQ_\345\256\217\350\247\202\347\273\217\346\265\216\346\225\260\346\215\256.md" new file mode 100644 index 0000000..ea2c630 --- /dev/null +++ "b/docs/joinquant-api/JQ_\345\256\217\350\247\202\347\273\217\346\265\216\346\225\260\346\215\256.md" @@ -0,0 +1,2495 @@ +## 宏观经济数据(或将停止更新) + +部分数据已经停止更新,未来全部宏观数据可能将不再更新或提供。 + +### 数据调用方法 + +``` + +from jqdata import macro +macro.run_query(query_object) +``` + +**参数** + +query_object: 一个[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html),可以通过全局的query函数获取Query对象。 + +**返回** + +返回一个 dataframe,每一行对应数据库返回的每一行,列索引是你所查询的字段 + +注意 + +1. 为了防止返回数据量过大, 我们每次最多返回4000行 +2. 不能进行连表查询,即同时查询多张表内数据 + +**示例** + +``` + +# 查询分地区农林牧渔业总产值表(季度累计) 的前10条数据 +q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER + ).limit(10) +df = macro.run_query(q) +``` + +``` + +# 查询2014年的分地区农林牧渔业总产值表(年度) +q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR + ).filter(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR.stat_year=='2014') +df = macro.run_query(q) +``` + +### 农业 + +#### 分地区农林牧渔业总产值表(季度累计) + +表名:MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_quarter | 统计季度 | 文本 | | YYYY-MM(03、06、09、12分别代表第1、2、3、4季度) | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| total | 农林牧渔业总产值_累计值 | 数字 | 亿元 | 农林牧渔业总产值指以货币表现的农、林、牧、渔业全部产品和对农林牧渔业生产活动进行的各种支持性服务活动的价值总量,它反映一定时期内农林牧渔业生产总规模和总成果。 | +| farming | 农业总产值_累计值 | 数字 | 亿元 | | +| forestry | 林业总产值_累计值 | 数字 | 亿元 | | +| animal_husbandry | 牧业总产值_累计值 | 数字 | 亿元 | | +| fishery | 渔业总产值_累计值 | 数字 | 亿元 | | + +#### 分地区农林牧渔业总产值表(年度) + +表名:MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| total | 农林牧渔业总产值 | 数字 | 亿元 | 农林牧渔业总产值指以货币表现的农、林、牧、渔业全部产品和对农林牧渔业生产活动进行的各种支持性服务活动的价值总量,它反映一定时期内农林牧渔业生产总规模和总成果。 | +| farming | 农业总产值 | 数字 | 亿元 | | +| forestry | 林业总产值 | 数字 | 亿元 | | +| animal_husbandry | 牧业总产值 | 数字 | 亿元 | | +| fishery | 渔业总产值 | 数字 | 亿元 | | +| total_idx | 农林牧渔业总产值指数 | 数字 | % | 上年=100,按可比价格 | +| farming_idx | 农业总产值指数 | 数字 | % | 上年=100 | +| forestry_idx | 林业总产值指数 | 数字 | % | 上年=100 | +| animal_husbandry_idx | 牧业总产值指数 | 数字 | % | 上年=100 | +| fishery_idx | 渔业总产值指数 | 数字 | % | 上年=100 | + +#### 全国农产品生产价格指数表(季度) + +表名:MAC_INDUSTRY_AGR_PRODUCT_IDX_QUARTER + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_quarter | 统计季度 | 文本 | | YYYY-MM(03、06、09、12分别代表第1、2、3、4季度) | +| agricultural_products | 农产品生产价格指数_当季值 | 数字 | | 农产品生产价格指数是反映一定时期内,农产品生产者出售农产品价格水平变动趋势及幅度的相对数。该指数可以客观反映全国农产品生产价格水平和结构变动情况,满足农业与国民经济核算需要。其中某代表品生产价格指数是通过对全部有出售该产品行为的调查单位的个体指数进行几何平均求得的,类价格指数是通过对其所属的类(或代表品)的价格指数进行加权平均求得的。季度累计价格指数的计算方法与分季指数的计算方法相同 | +| crop_products | 种植业产品生产价格指数_当季值 | 数字 | | | +| food | 粮食生产价格指数_当季值 | 数字 | | 粮食指人们用作主食的各种成品粮及其加工品,包括大米、面粉、粗杂粮以及各种粗、细粮制品,不包括薯类、豆类及糕点食品 | +| grain | 谷物生产价格指数_当季值 | 数字 | | | +| wheat | 小麦生产价格指数_当季值 | 数字 | | | +| rice | 稻谷生产价格指数_当季值 | 数字 | | | +| corn | 玉米生产价格指数_当季值 | 数字 | | | +| bean | 豆类生产价格指数_当季值 | 数字 | | | +| soybean | 大豆生产价格指数_当季值 | 数字 | | | +| potato | 薯类生产价格指数_当季值 | 数字 | | | +| oil_plants | 油料生产价格指数_当季值 | 数字 | | | +| cotton | 棉花生产价格指数_当季值 | 数字 | | | +| sugar | 糖料生产价格指数_当季值 | 数字 | | | +| tobacco | 烟叶生产价格指数_当季值 | 数字 | | | +| vegetable | 蔬菜生产价格指数_当季值 | 数字 | | | +| fruit | 水果生产价格指数_当季值 | 数字 | | | +| tea | 茶叶生产价格指数_当季值 | 数字 | | | +| forestry_products | 林业产品生产价格指数_当季值 | 数字 | | | +| wood | 木材生产价格指数_当季值 | 数字 | | | +| bamboo | 竹材生产价格指数_当季值 | 数字 | | | +| pectin | 胶脂和果实类林产品生产价格指数_当季值 | 数字 | | | +| animal_husbandry_products | 畜牧业产品生产价格指数_当季值 | 数字 | | | +| pig | 猪(毛重)生产价格指数_当季值 | 数字 | | | +| cow | 牛(毛重)生产价格指数_当季值 | 数字 | | | +| sheep | 羊(毛重)生产价格指数_当季值 | 数字 | | | +| poultry | 肉禽(毛重)生产价格指数_当季值 | 数字 | | | +| egg | 禽蛋生产价格指数_当季值 | 数字 | | | +| milk | 奶类生产价格指数_当季值 | 数字 | | | +| wool | 毛绒类生产价格指数_当季值 | 数字 | | | +| fishery | 渔业产品生产价格指数_当季值 | 数字 | | | +| marine_fishery_products | 海水捕捞产品生产价格指数_当季值 | 数字 | | | +| marine_farm_products | 海水养殖产品生产价格指数_当季值 | 数字 | | | +| fresh_fishery_products | 淡水捕捞产品生产价格指数_当季值 | 数字 | | | +| fresh_farm_products | 淡水养殖产品生产价格指数_当季值 | 数字 | | | + +### 国内贸易 + +#### 社会消费品销售总额(月度) + +表名:MAC_SALE_RETAIL_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| retail_sin | 社会消费品零售总额_当期值 | 数字 | 亿元 | 社会消费品零售总额指企业(单位、个体户)通过交易直接售给个人、社会集团非生产、非经营用的实物商品金额,以及提供餐饮服务所取得的收入金额。个人包括城乡居民和入境人员,社会集团包括机关、社会团体、部队、学校、企事业单位、居委会或村委会等。 | +| retail_acc | 社会消费品零售总额_累计值 | 数字 | 亿元 | | +| retail_sin_yoy | 社会消费品零售总额_同比增长 | 数字 | % | | +| retail_acc_yoy | 社会消费品零售总额_累计增长 | 数字 | % | | +| scale_retail_sin | 限上单位消费品零售额_当期值 | 数字 | 亿元 | | +| scale_retail_acc | 限上单位消费品零售额_累计值 | 数字 | 亿元 | | +| scale_retail_sin_yoy | 限上单位消费品零售额_同比增长 | 数字 | % | | +| scale_retail_acc_yoy | 限上单位消费品零售额_累计增长 | 数字 | % | | +| city_retail_sin | 城镇社会消费品零售总额_当期值 | 数字 | 亿元 | | +| city_retail_acc | 城镇社会消费品零售总额_累计值 | 数字 | 亿元 | | +| city_retail_sin_yoy | 城镇社会消费品零售总额_同比增长 | 数字 | % | | +| city_retail_acc_yoy | 城镇社会消费品零售总额_累计增长 | 数字 | % | | +| rural_retail_sin | 乡村社会消费品零售总额_当期值 | 数字 | 亿元 | | +| rural_retail_acc | 乡村社会消费品零售总额_累计值 | 数字 | 亿元 | | +| rural_retail_sin_yoy | 乡村社会消费品零售总额_同比增长 | 数字 | % | | +| rural_retail_acc_yoy | 乡村社会消费品零售总额_累计增长 | 数字 | % | | +| hotel_retail_sin | 餐饮收入_当期值 | 数字 | 亿元 | | +| hotel_retail_acc | 餐饮收入_累计值 | 数字 | 亿元 | | +| hotel_retail_sin_yoy | 餐饮收入_同比增长 | 数字 | % | | +| hotel_retail_acc_yoy | 餐饮收入_累计增长 | 数字 | % | | +| hotel_scale_retail_sin | 限上单位餐饮收入_当期值 | 数字 | 亿元 | | +| hotel_scale_retail_acc | 限上单位餐饮收入_累计值 | 数字 | 亿元 | | +| hotel_scale_retail_sin_yoy | 限上单位餐饮收入_同比增长 | 数字 | % | | +| hotel_scale_retail_acc_yoy | 限上单位餐饮收入_累计增长 | 数字 | % | | +| sale_retail_sin | 商品零售_当期值 | 数字 | 亿元 | | +| sale_retail_acc | 商品零售_累计值 | 数字 | 亿元 | | +| sale_retail_sin_yoy | 商品零售_同比增长 | 数字 | % | | +| sale_retail_acc_yoy | 商品零售_累计增长 | 数字 | % | | +| sale_scale_retail_sin | 限上单位商品零售类值_当期值 | 数字 | 亿元 | | +| sale_scale_retail_acc | 限上单位商品零售类值_累计值 | 数字 | 亿元 | | +| sale_scale_retail_sin_yoy | 限上单位商品零售类值_同比增长 | 数字 | % | | +| sale_scale_retail_acc_yoy | 限上单位商品零售类值_累计增长 | 数字 | % | | + +#### 限额以上零售分类表(月度) + +表名: MAC_SALE_SCALE_RETAIL_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| item_name | 条目名称 | 文本 | | | +| item_sale_sin | 该条目所对应的零售-当前值 | 数字 | 亿元 | | +| item_sale_acc | 该条目所对应的零售-累计值 | 数字 | 亿元 | | +| item_sale_sin_rate | 该条目所对应的零售_累计增长 | 数字 | % | | +| item_sale_acc_rate | 该条目所对应的零售_当期值 | 数字 | 亿元 | | + +#### 分地区消费品零售总额(年度) + +表名:MAC_AREA_RETAIL_SALE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| retail | 社会消费品零售总额 | 数字 | 亿元 | | +| retail_yoy | 社会消费品零售总额同比增长 | 数字 | % | | +| city_retail | 社会消费品零售总额-市 | 数字 | 亿元 | | +| city_county_retail | 社会消费品零售总额-县 | 数字 | 亿元 | | +| city_county_below_retail | 社会消费品零售总额-县以下 | 数字 | 亿元 | | +| city_whole_sale_retail | 社会消费品零售总额-批发和零售业 | 数字 | 亿元 | | +| hotels_retail | 社会消费品零售总额-住宿和餐饮业 | 数字 | 亿元 | | +| manufacturing_retail | 社会消费品零售总额-制造业 | 数字 | 亿元 | | +| agricultural_retail | 社会消费品零售总额-农业生产 | 数字 | 亿元 | | +| others_retail | 社会消费品零售总额-其他 | 数字 | 亿元 | | + +#### 亿元以上商品交易市场基本情况(年度) + +表名:MAC_SALE_MARKET + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| market_id | 市场编码 | 数字 | | | +| market_name | 市场名称 | 数字 | | | +| market_num | 市场数量 | 数字 | | 亿元以上商品交易市场指年成交额在亿元及以上的商品交易市场。商品交易市场是指经有关部门和组织批准设立,有固定场所、设施,有经营管理部门和监管人员,若干市场经营者入内,常年或实际开业三个月以上,集中、公开、独立地进行生活消费品、生产资料等现货商品交易以及提供相关服务的交易场所,包括各类消费品市场、生产资料市场等。 | +| stall_num | 摊位数量 | 数字 | | | +| operation_area | 营业面积 | 数字 | | 商品交易市场年末营业面积指市场经营场地、仓库等营业用建筑面积,不包括为市场经营提供服务的办公室和附设的旅馆、招待所、餐馆、停车场等的面积,按年末实际面积统计。 | +| turnover | 成交额 | 数字 | | 成交额指该市场所有摊位的全年商品交易额之合计。 | +| turnover_wholesale | 成交额-批发 | 数字 | | 成交额指该市场所有摊位的全年商品交易额之合计。 | +| turnover_retail | 成交额-零售 | 数字 | | 成交额指该市场所有摊位的全年商品交易额之合计。 | + +#### 分地区亿元以上商品交易市场基本情况(年度) + +表名:MAC_AREA_SALE_MARKET + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| market_num | 市场数量 | 数字 | | 亿元以上商品交易市场指年成交额在亿元及以上的商品交易市场。商品交易市场是指经有关部门和组织批准设立,有固定场所、设施,有经营管理部门和监管人员,若干市场经营者入内,常年或实际开业三个月以上,集中、公开、独立地进行生活消费品、生产资料等现货商品交易以及提供相关服务的交易场所,包括各类消费品市场、生产资料市场等。 | +| stall_num | 摊位数量 | 数字 | | | +| operation_area | 营业面积 | 数字 | | 商品交易市场年末营业面积指市场经营场地、仓库等营业用建筑面积,不包括为市场经营提供服务的办公室和附设的旅馆、招待所、餐馆、停车场等的面积,按年末实际面积统计。 | +| turnover | 成交额 | 数字 | | 成交额指该市场所有摊位的全年商品交易额之合计。 | +| turnover_wholesale | 成交额-批发 | 数字 | | 成交额指该市场所有摊位的全年商品交易额之合计。 | +| turnover_retail | 成交额-零售 | 数字 | | 成交额指该市场所有摊位的全年商品交易额之合计。 | + +### 就业与工资 + +#### 分地区城镇登记失业率(年度) + +表名:MAC_AREA_UNEMPLOY + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| unemploy | 城镇登记失业人数 | 数字 | 万人 | 城镇登记失业人员指有非农业户口,在一定的劳动年龄内(16周岁至退休年龄),有劳动能力,无业而要求就业,并在当地劳动保障部门进行失业登记的人员 | +| unemploy_rate | 城镇登记失业率 | 数字 | % | 城镇登记失业率城镇登记失业人员与城镇单位就业人员(扣除使用的农村劳动力、聘用的离退休人员、港澳台及外方人员)、城镇单位中的不在岗职工、城镇私营业主、个体户主、城镇私营企业和个体就业人员、城镇登记失业人员之和的比。 | + +#### 就业情况基本表(年度) + +表名:MAC_EMPLOY_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| population | 经济活动人口 | 数字 | 万人 | | +| employ | 就业人员 | 数字 | 万人 | | +| employ_primary | 第一产业就业人员 | 数字 | 万人 | | +| employ_secondary | 第二产业就业人员 | 数字 | 万人 | | +| employ_tertiary | 第三产业就业人员 | 数字 | 万人 | | +| employ_urban | 城镇就业人员 | 数字 | 万人 | 城镇单位就业人员指在各级国家机关、政党机关、社会团体及企业、事业单位中工作,取得工资或其他形式的劳动报酬的全部人员。包括在岗职工、再就业的离退休人员、民办教师以及在各单位中工作的外方人员和港澳台方人员、兼职人员、借用的外单位人员和第二职业者。不包括离开本单位仍保留劳动关系的职工。 | +| employ_urban_state_owned | 国有单位城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。就业人员包括:(1)职工、(2)再就业的离退休人员、(3)私营业主、(4)个体户主、(5)私营企业和个体就业人员、(6)乡镇企业就业人员、(7)农村就业人员、(8)其他就业人员。 | +| employ_urban_collective | 城镇集体单位城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。就业人员包括:(1)职工、(2)再就业的离退休人员、(3)私营业主、(4)个体户主、(5)私营企业和个体就业人员、(6)乡镇企业就业人员、(7)农村就业人员、(8)其他就业人员。 | +| employ_urban_stock_cooperate | 股份合作单位城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_urban_joint_ownership | 联营单位城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_urban_limited | 有限责任公司城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_urban_stock | 股份有限公司城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_urban_private | 私营企业城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_urban_hkmt | 港澳台商投资单位城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_urban_foreign | 外商投资单位城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_urban_individual | 个体城镇就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_rural | 乡村就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_rural_private | 私营企业乡村就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| employ_rural_individual | 个体乡村就业人员 | 数字 | 万人 | 就业人员数是指在16周岁及以上,从事一定社会劳动并取得劳动报酬或经营收入的人员。 | +| unemploy_num | 城镇登记失业人数 | 数字 | 万人 | | +| unemploy_rate | 城镇登记失业率 | 数字 | % | | + +#### 分地区城镇单位就业人员情况表(年度) + +表名:MAC_AREA_WAGEIDX_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 文本 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| wage | 城镇单位就业人员工资总额 | 数字 | 亿元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_state_owned | 国有城镇单位就业人员工资总额 | 数字 | 亿元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。。 | +| wage_collective | 城镇集体单位就业人员工资总额 | 数字 | 亿元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_others | 其他城镇单位就业人员工资总额 | 数字 | 亿元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。。 | +| wage_yoy | 其他城镇单位就业人员工资总额 | 数字 | 亿元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_state_owned_yoy | 国有城镇单位就业人员工资总额指数 | 数字 | | 上年=100 | +| wage_collective_yoy | 城镇集体单位就业人员工资总额指数 | 数字 | | 上年=100 | +| wage_others_yoy | 其他城镇单位就业人员工资总额指数 | 数字 | | 上年=100 | +| wage_avg | 城镇单位就业人员平均工资 | 数字 | 元 | 平均工资指单位就业人员在一定时期内平均每人所得的货币工资额。它表明一定时期职工工资收入的高低程度,是反映就业人员工资水平的主要指标。计算公式为:平均工资=报告期实际支付的全部就业人员工资总额/报告期全部就业人员平均人数。 | +| wage_employ_avg | 城镇单位在岗职工平均工资 | 数字 | 元 | 平均工资指单位就业人员在一定时期内平均每人所得的货币工资额。它表明一定时期职工工资收入的高低程度,是反映就业人员工资水平的主要指标。计算公式为:平均工资=报告期实际支付的全部就业人员工资总额/报告期全部就业人员平均人数。 | +| wage_state_owned_avg | 城镇国有单位就业人员平均工资 | 数字 | 元 | 平均工资指单位就业人员在一定时期内平均每人所得的货币工资额。它表明一定时期职工工资收入的高低程度,是反映就业人员工资水平的主要指标。计算公式为:平均工资=报告期实际支付的全部就业人员工资总额/报告期全部就业人员平均人数。 | +| wage_collective_avg | 城镇集体单位就业人员平均工资 | 数字 | 元 | 平均工资指单位就业人员在一定时期内平均每人所得的货币工资额。它表明一定时期职工工资收入的高低程度,是反映就业人员工资水平的主要指标。计算公式为:平均工资=报告期实际支付的全部就业人员工资总额/报告期全部就业人员平均人数。 | +| wage_others_avg | 城镇其他单位就业人员平均工资 | 数字 | 元 | 平均工资指单位就业人员在一定时期内平均每人所得的货币工资额。它表明一定时期职工工资收入的高低程度,是反映就业人员工资水平的主要指标。计算公式为:平均工资=报告期实际支付的全部就业人员工资总额/报告期全部就业人员平均人数。 | +| wage_avg_yoy | 城镇单位就业人员平均货币工资指数 | 数字 | | 上年=100 | +| wage_employ_avg_yoy | 城镇单位在岗职工平均货币工资指数 | 数字 | | 上年=100 | +| wage_state_owned_avg_yoy | 国有城镇单位就业人员平均货币工资指数 | 数字 | | 上年=100 | +| wage_collective_avg_yoy | 城镇集体单位就业人员平均货币工资指数 | 数字 | | 上年=100 | +| wage_others_avg_yoy | 其他城镇单位就业人员平均货币工资指数 | 数字 | | 上年=100 | + +#### 分地区分行业城镇单位就业人员工资情况表(年度) + +表名:MAC_AREA_INDUSTRY_WAGE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| industry_id | 行业编号 | 文本 | | | +| industry_name | 行业名称 | 文本 | | | +| wage | 该行业工资总额 | 数字 | 亿元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg | 该行业平均工资 | 数字 | 元 | 平均工资指单位就业人员在一定时期内平均每人所得的货币工资额。它表明一定时期职工工资收入的高低程度,是反映就业人员工资水平的主要指标。计算公式为:平均工资=报告期实际支付的全部就业人员工资总额/报告期全部就业人员平均人数。 | + +#### 分行业城镇单位就业人员工资情况表(年度) + +表名:MAC_INDUSTRY_WAGE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| industry_id | 行业编号 | 文本 | | | +| industry_name | 行业名称 | 文本 | | | +| wage | 该行业工资总额 | 数字 | 亿元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg | 该行业平均工资 | 数字 | 元 | 平均工资指单位就业人员在一定时期内平均每人所得的货币工资额。它表明一定时期职工工资收入的高低程度,是反映就业人员工资水平的主要指标。计算公式为:平均工资=报告期实际支付的全部就业人员工资总额/报告期全部就业人员平均人数。 | +| employ | 该行业就业人员数量 | 数字 | 万人 | | + +#### 分地区按注册类型分城镇单位就业人员工资情况表(年度) + +表名:MAC_AREA_REGISTERED_WAGE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| wage_avg | 城镇单位就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_state_owned | 国有单位就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_collective | 城镇集体单位就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_stock_cooperate | 股份合作单位就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_joint_ownership | 联营单位就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_limited | 有限责任公司就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_stock | 股份有限公司就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_private | 其他单位就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_hkmt | 港、澳、台商投资单位就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | +| wage_avg_foreign | 外商投资单位就业人员平均工资 | 数字 | 元 | 工资总额是税前工资,包括单位从个人工资中直接为其代扣或代缴的房费、水费、电费、住房公积金和社会保险基金个人缴纳部分等。工资总额不论是计入成本的还是不计入成本的,不论是以货币形式支付的还是以实物形式支付的,均应列入工资总额的计算范围。 | + +#### 分地区按行业分城镇单位就业人员情况表(年度) + +表名:MAC_AREA_INDUSTRY_EMPLOY_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| industry_id | 行业编号 | 文本 | | | +| industry_name | 行业名称 | 文本 | | | +| employ | 该行业就业人数 | 数字 | 万人 | | + +### 资源环境 + +#### 各地区森林资源情况表(年度) + +表名:MAC_RESOURCES_AREA_FOREST + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| forestry_land_area | 林业用地面积 | 数字 | 万公顷 | 人工林面积指由人工播种、植苗或扦插造林形成的生长稳定,(一般造林3-5年后或飞机播种5-7年后)每公顷保存株数大于或等于造林设计植树株数80%或郁闭度0.20以上(含0.20)的林分面积。 | +| forest_area | 森林面积 | 数字 | 万公顷 | 森林面积包括郁闭度0.2以上的乔木林地面积和竹林面积,国家特别规定的灌木林地面积,农田林网以及村旁、路旁、水旁、宅旁林木的覆盖面积。 | +| man_made_forest_area | 人工林面积 | 数字 | 万公顷 | | +| forest_cover_rate | 森林覆盖率 | 数字 | % | 森林覆盖率指以行政区域为单位的森林面积占区域土地总面积的百分比。计算公式为:森林覆盖率=森林面积/土地总面积×100%。 | +| standing_forest_stock_volume | 活立木总蓄积量 | 数字 | 亿立方米 | 活立木总蓄积量指一定范围土地上全部树木蓄积的总量,包括森林蓄积、疏林蓄积、散生木蓄积和四旁树蓄积。 | +| forest_stand_volume | 森林蓄积量 | 数字 | 亿立方米 | 森林蓄积量指一定森林面积上存在着的林木树干部分的总材积。 | + +#### 生态环境情况信息表(年度) + +表名:MAC_RESOURCES_ECOLOGICAL_ENVIRONMENT + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| forest_area | 森林面积 | 数字 | 万公顷 | 2001、2002年为第五次全国森林资源清查数 (1994-1998年),包括台湾省数据;2003-2006年为第六次清查数(1999-2003年),包括香港、澳门特别行政区和台湾省数据。 | +| forest_cover_rate | 森林覆盖率 | 数字 | % | 森林覆盖率指以行政区域为单位的森林面积占区域土地总面积的百分比。计算公式为:森林覆盖率=森林面积/土地总面积×100%。 | +| man_made_forest_area | 造林总面积 | 数字 | 千公顷 | 造林面积指在宜林荒山荒地、宜林沙荒地、无立木林地、疏林地和退耕地等其他宜林地上通过人工措施形成或恢复森林、林木、灌木林的过程。 | +| nature_reserves_num | 自然保护区个数 | 数字 | 个 | 自然保护区指为了保护自然环境和自然资源,促进国民经济的持续发展,将一定面积的陆地和水体划分出来,并经各级人民政府批准而进行特殊保护和管理的区域个数。根据保护对象,自然保护区分为自然生态系统类、野生生物类、自然遗迹类。风景名胜区、文物保护区不计在内。 | +| nature_reserves_area | 自然保护区面积 | 数字 | 万公顷 | | + +#### 水资源情况表(年度) + +表名:MAC_RESOURCES_AREA_WATER_RESOURCES + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| total_amount | 水资源总量 | 数字 | 亿立方米 | 水资源总量指当地降水形成的地表和地下产水总量,即地表径流量与降水入渗补给量之和。 | +| surface | 地表水资源量 | 数字 | 亿立方米 | 地表水资源量指河流、湖泊以及冰川等地表水体中可以逐年更新的动态水量,即天然河川径流量。 | +| ground | 地下水资源量 | 数字 | 亿立方米 | 地表水资源量指河流、湖泊以及冰川等地表水体中可以逐年更新的动态水量,即天然河川径流量。 | +| duplicated_measurement | 地表水与地下水资源重复量 | 数字 | 亿立方米 | 地表水与地下水重复计算量指地表水和地下水相互转化的部分,即天然河川径流量中的地下水排泄量和地下水补给量中来源于地表水的入渗补给量。 | +| per_amount | 人均水资源量 | 数字 | 立方米/人 | | + +#### 全国水资源量年度信息表(年度) + +表名:MAC_RESOURCES_WATER_RESOURCES_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total_amount | 水资源总量 | 数字 | 亿立方米 | 水资源总量指当地降水形成的地表和地下产水总量,即地表径流量与降水入渗补给量之和。 | +| surface | 地表水资源量 | 数字 | 亿立方米 | 地表水资源量指河流、湖泊以及冰川等地表水体中可以逐年更新的动态水量,即天然河川径流量。 | +| ground | 地下水资源量 | 数字 | 亿立方米 | 地表水资源量指河流、湖泊以及冰川等地表水体中可以逐年更新的动态水量,即天然河川径流量。 | +| duplicated_measurement | 地表水与地下水资源重复量 | 数字 | 亿立方米 | 地表水与地下水重复计算量指地表水和地下水相互转化的部分,即天然河川径流量中的地下水排泄量和地下水补给量中来源于地表水的入渗补给量。 | +| per_amount | 人均水资源量 | 数字 | 立方米/人 | | + +#### 各地区供水用水情况表(年度) + +表名:MAC_RESOURCES_AREA_WATER_SUPPLY_USE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| water_supply | 供水总量 | 数字 | 亿立方米 | 供水总量指各种水源为用水户提供的包括输水损失在内的毛水量。 | +| surface_water | 地表水供水总量 | 数字 | 亿立方米 | 地表水源供水量指地表水体工程的取水量,按蓄、引、提、调四种形式统计。从水库、塘坝中引水或提水,均属蓄水工程供水量;从河道或湖泊中自流引水的,无论有闸或无闸,均属引水工程供水量;利用扬水站从河道或湖泊中直接取水的,属提水工程供水量;跨流域调水指水资源一级区或独立流域之间的跨流域调配水量,不包括在蓄、引、提水量中。 | +| ground_water | 地下水供水总量 | 数字 | 亿立方米 | 地下水源供水量指水井工程的开采量,按浅层淡水、深层承压水和微咸水分别统计。城市地下水源供水量包括自来水厂的开采量和工矿企业自备井的开采量 | +| others | 其他供水总量 | 数字 | 亿立方米 | 其他水源供水量包括污水处理再利用、集雨工程、海水淡化等水源工程的供水量。 | +| water_use | 用水总量 | 数字 | 亿立方米 | 用水总量指各类用水户取用的包括输水损失在内的毛水量。 | +| agriculture | 农业用水总量 | 数字 | 亿立方米 | 农业用水包括农田灌溉用水、林果地灌溉用水、草地灌溉用水、鱼塘补水和畜禽用水。 | +| industry | 工业用水总量 | 数字 | 亿立方米 | 工业用水指工矿企业在生产过程中用于制造、加工、冷却、空调、净化、洗涤等方面的用水,按新水取用量计,不包括企业内部的重复利用水量。 | +| daily_consumption | 生活用水总量 | 数字 | 亿立方米 | 生活用水包括城镇生活用水和农村生活用水。城镇生活用水由居民用水和公共用水(含第三产业及建筑业等用水)组成;农村生活用水指居民生活用水。 | +| ecology | 生态用水总量 | 数字 | 亿立方米 | | +| per_amount | 人均用水量 | 数字 | 立方米/人 | | + +#### 供水用水情况表(年度) + +表名:MAC_RESOURCES_WATER_SUPPLY_USE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| water_supply | 供水总量 | 数字 | 亿立方米 | 供水总量指各种水源为用水户提供的包括输水损失在内的毛水量。 | +| surface_water | 地表水供水总量 | 数字 | 亿立方米 | 地表水源供水量指地表水体工程的取水量,按蓄、引、提、调四种形式统计。从水库、塘坝中引水或提水,均属蓄水工程供水量;从河道或湖泊中自流引水的,无论有闸或无闸,均属引水工程供水量;利用扬水站从河道或湖泊中直接取水的,属提水工程供水量;跨流域调水指水资源一级区或独立流域之间的跨流域调配水量,不包括在蓄、引、提水量中。 | +| ground_water | 地下水供水总量 | 数字 | 亿立方米 | 地下水源供水量指水井工程的开采量,按浅层淡水、深层承压水和微咸水分别统计。城市地下水源供水量包括自来水厂的开采量和工矿企业自备井的开采量 | +| others | 其他供水总量 | 数字 | 亿立方米 | 其他水源供水量包括污水处理再利用、集雨工程、海水淡化等水源工程的供水量。 | +| water_use | 用水总量 | 数字 | 亿立方米 | 用水总量指各类用水户取用的包括输水损失在内的毛水量。 | +| agriculture | 农业用水总量 | 数字 | 亿立方米 | 农业用水包括农田灌溉用水、林果地灌溉用水、草地灌溉用水、鱼塘补水和畜禽用水。 | +| industry | 工业用水总量 | 数字 | 亿立方米 | 工业用水指工矿企业在生产过程中用于制造、加工、冷却、空调、净化、洗涤等方面的用水,按新水取用量计,不包括企业内部的重复利用水量。 | +| daily_consumption | 生活用水总量 | 数字 | 亿立方米 | 生活用水包括城镇生活用水和农村生活用水。城镇生活用水由居民用水和公共用水(含第三产业及建筑业等用水)组成;农村生活用水指居民生活用水。 | +| ecology | 生态用水总量 | 数字 | 亿立方米 | | +| per_amount | 人均用水量 | 数字 | 立方米/人 | | + +#### 水环境情况信息表(年度) + +表名:MAC_RESOURCES_WATER_ENVIRONMENT + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| waste_water_discharge | 废水排放总量 | 数字 | 万吨 | 废水排放总量指工业废水排放量与生活污水排放量之和。 | +| COD_discharge | 化学需氧量排放量 | 数字 | 万吨 | 化学需氧量(COD)排放量指工业废水中COD排放量与生活污水中COD排放量之和。化学需氧量指用化学氧化剂氧化水中有机污染物时所需的氧量。一般利用化学氧化剂将废水中可氧化的物质(有机物、亚硝酸盐、亚铁盐、硫化物等)氧化分解,然后根据残留的氧化剂的量计算出氧的消耗量,来表示废水中有机物的含量,反映水体有机物污染程度。COD值越高,表示水中有机污染物污染越重。 | +| NH3_N2_discharge | 氨氮排放量 | 数字 | 万吨 | | + +#### 各地区废气排放及处理情况表(年度) + +表名:MAC_RESOURCES_AREA_WASTE_GAS_EMISSION + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| SO2_discharged | 二氧化硫排放量 | 数字 | 吨 | 二氧化硫排放量指报告期内工业SO2排放量与生活SO2排放量之和。 | +| NO_discharged | 氮氧化物排放量 | 数字 | 吨 | 氮氧化物排放量指报告期内企业在燃料燃烧和生产工艺过程中排入大气的氮氧化物总质量。 | +| soot_discharged | 烟(粉)尘排放量 | 数字 | 吨 | 烟(粉)尘排放量指报告期内企业在燃料燃烧和生产工艺过程中排入大气的烟尘及工业粉尘的总质量之和。烟尘或工业粉尘排放量可以通过除尘系统的排风量和除尘设备出口烟尘浓度相乘求得。 | + +#### 自然灾害情况信息表(年度) + +表名:MAC_RESOURCES_NATURAL_DISASTER + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | | +| geological_disaster_num | 发生地质灾害起数 | 数字 | 次 | 地质灾害指滑坡、崩塌、泥石流、地面塌陷等突发性地质灾害与地裂缝、地面沉降、海水入侵等缓变性地质灾害。地质灾害数量的计量单位统一用“处”,对于难以区分确切数量的同一次降雨(或其他因素)引发的群发性地质灾害归为1处灾害。地裂缝、地面沉降、海水入侵数量只统计报告期内发现的或报告期之前发现且报告期内继续发展的。 | +| earthquake_num | 地震灾害次数 | 数字 | 次 | | +| forest_fire_num | 森林火灾次数 | 数字 | 次 | 森林火灾次数指发生在城市市区外的一切森林、林木和林地的火灾次数。按照受害森林面积和伤亡人数,森林火灾分为一般森林火灾、较大森林火灾、重大森林火灾和特别重大森林火灾:1.一般森林火灾:受害森林面积在1公顷以下或者其他林地起火的,或者死亡1人以上3人以下的,或者重伤1人以上10人以下的;2.较大森林火灾:受害森林面积在1公顷以上100公顷以下的,或者死亡3人以上10人以下的,或者重伤10人以上50人以下的;3.重大森林火灾:受害森林面积在100公顷以上1000公顷以下的,或者死亡10人以上30人以下的,或者重伤50人以上100人以下的;4.特别重大森林火灾:受害森林面积在1000公顷以上的,或者死亡30人以上的,或者重伤100人以上的。本条所称“以上”包括本数,“以下”不包括本数。 | +| forest_fire_area | 火场总面积 | 数字 | 万公顷 | | +| forest_pest_affected_area | 森林病虫鼠害发生面积 | 数字 | 万公顷 | 森林病虫鼠害指对森林、林木、林木种苗及木材、竹材形成的病害、虫害和鼠害。森林病害是指林木机体遭受真菌、细菌、病毒、寄生性种子植物和线虫等的危害,而使林木在生理机能、细胞和组织结构以及外部形态等方面发生的病理性变化。森林虫害是指林木机体遭受松毛虫、金花虫、竹蝗、金龟子、蝼蛄等各种昆虫的危害,而造成一定面积森林的生长衰弱或死亡。森林鼠害是指森林、林木、林木种苗遭受各种鼠类的危害,而造成一定程度的损失或死亡。 | +| forest_pest_protected_area | 森林病虫鼠害防治面积 | 数字 | 万公顷 | | +| forest_pest_protected_rate | 森林病虫鼠害防治率 | 数字 | % | | + +#### 环境污染治理投资情况信息表(年度) + +表名:MAC_RESOURCES_ENVIRONMENT_TREAT_INVEST + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | | +| environment_pollution | 环境污染治理投资总额 | 数字 | 亿元 | | +| infrastructure | 城市环境基础设施建设投资额 | 数字 | 亿元 | | +| fuel_gas | 城市燃气建设投资额 | 数字 | 亿元 | | +| centralized_heating | 城市集中供热建设投资额 | 数字 | 亿元 | | +| drainage | 城市排水建设投资额 | 数字 | 亿元 | | +| gardening | 城市园林绿化建设投资额 | 数字 | 亿元 | | +| sanitation | 城市市容环境卫生建设投资额 | 数字 | 亿元 | | +| industrial_pollution | 工业污染源治理投资 | 数字 | 万元 | | +| three_simultaneities | 建设项目“三同时”环保投资额 | 数字 | 亿元 | | + +### 房地产行业 + +#### 房地产开发投资情况表(月度累计) + +表名:MAC_INDUSTRY_ESTATE_INVEST_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYY-MM | +| invest | 房地产投资_累计值 | 数字 | 亿元 | 房地产开发投资指各种登记注册类型的房地产开发法人单位统一开发的包括统代建、拆迁还建的住宅、厂房、仓库、饭店、宾馆、度假村、写字楼、办公楼等房屋建筑物,配套的服务设施,土地开发工程(如道路、给水、排水、供电、供热、通讯、平整场地等基础设施工程)和土地购置的投资;不包括单纯的土地开发和交易活动。 | +| invest_yoy | 房地产投资_累计增长 | 数字 | % | | +| auxiliary_project | 房地产配套工程投资_累计值 | 数字 | 亿元 | | +| auxiliary_project_yoy | 房地产配套工程投资_累计增长 | 数字 | % | | +| resident | 房地产住宅投资_累计值 | 数字 | 亿元 | | +| resident_yoy | 房地产住宅投资_累计增长 | 数字 | % | | +| below90_house | 90平方米及以下住房投资_累计值 | 数字 | 亿元 | | +| below90_house_yoy | 90平方米及以下住房投资_累计增长 | 数字 | % | | +| above144_house | 144平方米以上住房投资_累计值 | 数字 | 亿元 | | +| above144_house_yoy | 144平方米以上住房投资_累计增长 | 数字 | % | | +| villa_flat | 别墅、高档公寓投资_累计值 | 数字 | 亿元 | | +| villa_flat_yoy | 别墅、高档公寓投资_累计增长 | 数字 | % | | +| office | 房地产办公楼投资_累计值 | 数字 | 亿元 | | +| office_yoy | 房地产办公楼投资_累计增长 | 数字 | % | | +| business | 房地产商业营业用房投资_累计值 | 数字 | 亿元 | | +| business_yoy | 房地产商业营业用房投资_累计增长 | 数字 | % | | +| other_house | 其它房地产投资_累计值 | 数字 | 亿元 | | +| other_house_yoy | 其它房地产投资_累计增长 | 数字 | % | | +| construct | 房地产开发建筑工程投资_累计值 | 数字 | 亿元 | | +| construct_yoy | 房地产开发建筑工程投资_累计增长 | 数字 | % | | +| install | 房地产开发安装工程投资_累计值 | 数字 | 亿元 | | +| install_yoy | 房地产开发安装工程投资_累计增长 | 数字 | % | | +| equipment_purchase | 房地产设备工器具购置投资_累计值 | 数字 | 亿元 | | +| equipment_purchase_yoy | 房地产设备工器具购置投资_累计增长 | 数字 | % | | +| other_expense | 房地产其它费用投资_累计值 | 数字 | 亿元 | | +| other_expense_yoy | 房地产其它费用投资_累计增长 | 数字 | % | | +| land_purchase | 房地产土地购置费_累计值 | 数字 | 亿元 | | +| land_purchase_yoy | 房地产土地购置费_累计增长 | 数字 | % | | +| plan_invest | 房地产开发计划总投资_累计值 | 数字 | 亿元 | | +| plan_invest_yoy | 房地产开发计划总投资_累计增长 | 数字 | % | | +| new_fixed_assets | 房地产开发新增固定资产投资_累计值 | 数字 | 亿元 | | +| new_fixed_assets_yoy | 房地产开发新增固定资产投资_累计增长 | 数字 | % | | + +#### 分地区房地产开发投资情况表(月度累计) + +表名:MAC_INDUSTRY_AREA_ESTATE_INVEST_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| invest | 房地产投资_累计值 | 数字 | 亿元 | 房地产开发投资指各种登记注册类型的房地产开发法人单位统一开发的包括统代建、拆迁还建的住宅、厂房、仓库、饭店、宾馆、度假村、写字楼、办公楼等房屋建筑物,配套的服务设施,土地开发工程(如道路、给水、排水、供电、供热、通讯、平整场地等基础设施工程)和土地购置的投资;不包括单纯的土地开发和交易活动。 | +| invest_yoy | 房地产投资_累计增长 | 数字 | % | | +| resident | 房地产住宅投资_累计值 | 数字 | 亿元 | | +| resident_yoy | 房地产住宅投资_累计增长 | 数字 | % | | + +#### 房地产开发投资资金来源情况表(月度累计) + +表名:MAC_INDUSTRY_ESTATE_FUND_SOURCE_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYY-MM | +| total_invest | 房地产投资资金来源_累计值 | 数字 | 亿元 | | +| total_invest_yoy | 房地产投资资金来源_累计增长 | 数字 | % | | +| surplus | 房地产投资上年资金结余_累计值 | 数字 | 亿元 | 上年末结余资金指上年资金来源中没有形成投资额而结余的资金。包括尚未用到工程中的材料价值、未开始安装的需要安装设备价值及结存的现金和银行存款等。 | +| surplus_yoy | 房地产投资上年资金结余_累计增长 | 数字 | % | | +| invest | 房地产投资本年资金来源小计_累计值 | 数字 | 亿元 | | +| invest_yoy | 房地产投资本年资金来源小计_累计增长 | 数字 | % | | +| domestic_loan | 房地产投资国内贷款_累计值 | 数字 | 亿元 | | +| domestic_loan_yoy | 房地产投资国内贷款_累计增长 | 数字 | % | 国内贷款指报告期内向银行及非银行金融机构借入的各种国内借款,包括银行利用自有资金及吸收存款发放的贷款、上级主管部门拨入的国内贷款、国家专项贷款(包括煤代油贷款、劳改煤矿专项贷款等),地方财政专项资金安排的贷款、国内储备贷款、周转贷款等。 | +| foreign_capital | 房地产投资利用外资_累计值 | 数字 | 亿元 | 利用外资指报告期内收到的境外(包括外国及港澳台地区)资金(包括设备、材料、技术在内)。包括对外借款(外国政府贷款、国际金融组织贷款、出口信贷、外国银行商业贷款、对外发行债券和股票)、外商直接投资、外商其他投资(包括补偿贸易、加工装配由外商提供的设备价款、国际租赁,外商投资收益的再投资资金)。不包括我国自有外汇资金(国家外汇、地方外汇、留成外汇、调剂外汇和中国境内银行自有资金发放的外汇贷款等)。各类外资按报告期的外汇牌价(中间价)折成人民币计算。 | +| foreign_capital_yoy | 房地产投资利用外资_累计增长 | 数字 | % | | +| self_financing | 房地产投资自筹资金_累计值 | 数字 | 亿元 | 自筹资金指各地区、各部门及企事业单位筹集用于房地产开发与经营的预算外资金。 | +| self_financing_yoy | 房地产投资自筹资金_累计增长 | 数字 | % | | +| other_capital | 房地产投资其他资金_累计值 | 数字 | 亿元 | 工程款指在房地产开发过程中应付未付给施工单位(乙方)的工程投资款。 | +| other_capital_yoy | 房地产投资其他资金_累计增长 | 数字 | % | | +| payment | 房地产投资各项应付款_累计值 | 数字 | 亿元 | | +| payment_yoy | 房地产投资各项应付款_累计增长 | 数字 | % | | +| project_funds | 房地产投资工程款_累计值 | 数字 | 亿元 | | +| project_funds_yoy | 房地产投资工程款_累计增长 | 数字 | % | | + +#### 各地区房地产开发规模与开、竣工面积增长情况表(月度累计) + +表名:MAC_INDUSTRY_AREA_ESTATE_BUILD_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| construct_area | 房地产施工面积_累计值 | 数字 | 万平方米 | 施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的房屋建筑面积、上期跨入本期继续施工的房屋建筑面积、上期停缓建在本期恢复施工的房屋建筑面积、本期竣工的房屋建筑面积以及本期施工后又停缓建的房屋建筑面积。多层建筑应填各层建筑面积之和。 | +| construct_area_yoy | 房地产施工面积_累计增长 | 数字 | % | | +| new_start_area | 房地产新开工施工面积_累计值 | 数字 | 万平方米 | 施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的房屋建筑面积、上期跨入本期继续施工的房屋建筑面积、上期停缓建在本期恢复施工的房屋建筑面积、本期竣工的房屋建筑面积以及本期施工后又停缓建的房屋建筑面积。多层建筑应填各层建筑面积之和。 | +| new_start_area_yoy | 房地产新开工施工面积_累计增长 | 数字 | % | | +| complete_area | 房地产竣工面积_累计值 | 数字 | 万平方米 | 竣工面积指报告期内房屋建筑按照设计要求已全部完工,达到住人和使用条件,经验收鉴定合格或达到竣工验收标准,可正式移交使用的各栋房屋建筑面积的总和。竣工面积以房屋单位工程(栋)为核算对象,在整栋房屋符合竣工条件后按其全部建筑面积一次性计算,而不是按各栋施工房屋中已完成的部分或层次分割计算。 | +| complete_area_yoy | 房地产竣工面积_累计增长 | 数字 | % | | +| resident_construct_area | 商品住宅施工面积_累计值 | 数字 | 万平方米 | 施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的房屋建筑面积、上期跨入本期继续施工的房屋建筑面积、上期停缓建在本期恢复施工的房屋建筑面积、本期竣工的房屋建筑面积以及本期施工后又停缓建的房屋建筑面积。多层建筑应填各层建筑面积之和。 | +| resident_construct_area_yoy | 商品住宅施工面积_累计增长 | 数字 | % | | +| resident_new_start_area | 商品住宅新开工施工面积_累计值 | 数字 | 万平方米 | 施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的房屋建筑面积、上期跨入本期继续施工的房屋建筑面积、上期停缓建在本期恢复施工的房屋建筑面积、本期竣工的房屋建筑面积以及本期施工后又停缓建的房屋建筑面积。多层建筑应填各层建筑面积之和。 | +| resident_new_start_area_yoy | 商品住宅新开工施工面积_累计增长 | 数字 | % | | +| resident_complete_area | 商品住宅竣工面积_累计值 | 数字 | 万平方米 | 竣工面积指报告期内房屋建筑按照设计要求已全部完工,达到住人和使用条件,经验收鉴定合格或达到竣工验收标准,可正式移交使用的各栋房屋建筑面积的总和。竣工面积以房屋单位工程(栋)为核算对象,在整栋房屋符合竣工条件后按其全部建筑面积一次性计算,而不是按各栋施工房屋中已完成的部分或层次分割计算。 | +| resident_complete_area_yoy | 商品住宅竣工面积_累计增长 | 数字 | % | | +| office_construct_area | 办公楼施工面积_累计值 | 数字 | 万平方米 | 施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的房屋建筑面积、上期跨入本期继续施工的房屋建筑面积、上期停缓建在本期恢复施工的房屋建筑面积、本期竣工的房屋建筑面积以及本期施工后又停缓建的房屋建筑面积。多层建筑应填各层建筑面积之和。 | +| office_construct_area_yoy | 办公楼施工面积_累计增长 | 数字 | % | | +| office_new_start_area | 办公楼新开工施工面积_累计值 | 数字 | 万平方米 | 施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的房屋建筑面积、上期跨入本期继续施工的房屋建筑面积、上期停缓建在本期恢复施工的房屋建筑面积、本期竣工的房屋建筑面积以及本期施工后又停缓建的房屋建筑面积。多层建筑应填各层建筑面积之和。 | +| office_new_start_area_yoy | 办公楼新开工施工面积_累计增长 | 数字 | % | | +| office_complete_area | 办公楼竣工面积_累计值 | 数字 | 万平方米 | 竣工面积指报告期内房屋建筑按照设计要求已全部完工,达到住人和使用条件,经验收鉴定合格或达到竣工验收标准,可正式移交使用的各栋房屋建筑面积的总和。竣工面积以房屋单位工程(栋)为核算对象,在整栋房屋符合竣工条件后按其全部建筑面积一次性计算,而不是按各栋施工房屋中已完成的部分或层次分割计算。 | +| office_complete_area_yoy | 办公楼竣工面积_累计增长 | 数字 | % | 竣工面积指报告期内房屋建筑按照设计要求已全部完工,达到住人和使用条件,经验收鉴定合格或达到竣工验收标准,可正式移交使用的各栋房屋建筑面积的总和。竣工面积以房屋单位工程(栋)为核算对象,在整栋房屋符合竣工条件后按其全部建筑面积一次性计算,而不是按各栋施工房屋中已完成的部分或层次分割计算。 | +| business_construct_area | 商业营业用房施工面积_累计值 | 数字 | 万平方米 | 施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的房屋建筑面积、上期跨入本期继续施工的房屋建筑面积、上期停缓建在本期恢复施工的房屋建筑面积、本期竣工的房屋建筑面积以及本期施工后又停缓建的房屋建筑面积。多层建筑应填各层建筑面积之和。 | +| business_construct_area_yoy | 商业营业用房施工面积_累计增长 | 数字 | % | | +| business_new_start_area | 商业营业用房新开工施工面积_累计值 | 数字 | 万平方米 | 施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的房屋建筑面积、上期跨入本期继续施工的房屋建筑面积、上期停缓建在本期恢复施工的房屋建筑面积、本期竣工的房屋建筑面积以及本期施工后又停缓建的房屋建筑面积。多层建筑应填各层建筑面积之和。 | +| business_new_start_area_yoy | 商业营业用房新开工施工面积_累计增长 | 数字 | % | | +| business_complete_area | 商业营业用房竣工面积_累计值 | 数字 | 万平方米 | 竣工面积指报告期内房屋建筑按照设计要求已全部完工,达到住人和使用条件,经验收鉴定合格或达到竣工验收标准,可正式移交使用的各栋房屋建筑面积的总和。竣工面积以房屋单位工程(栋)为核算对象,在整栋房屋符合竣工条件后按其全部建筑面积一次性计算,而不是按各栋施工房屋中已完成的部分或层次分割计算。 | +| business_complete_area_yoy | 商业营业用房竣工面积_累计增长 | 数字 | % | 竣工面积指报告期内房屋建筑按照设计要求已全部完工,达到住人和使用条件,经验收鉴定合格或达到竣工验收标准,可正式移交使用的各栋房屋建筑面积的总和。竣工面积以房屋单位工程(栋)为核算对象,在整栋房屋符合竣工条件后按其全部建筑面积一次性计算,而不是按各栋施工房屋中已完成的部分或层次分割计算。 | + +#### 70个大中城市房屋销售价格指数(月度) + +表名:MAC_INDUSTRY_ESTATE_70CITY_INDEX_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| fixed_base_type | 指数定基类型 | 文本 | | | +| resident_idx | 新建住宅销售价格指数 | 数字 | | | +| commodity_house_idx | 新建商品住宅销售价格指数 | 数字 | | | +| second_hand_idx | 二手住宅销售价格指数 | 数字 | | | +| commodity_house_below90_idx | 90平米及以下新建商品住宅销售价格指数 | 数字 | | | +| second_hand_below90_idx | 90平米及以下二手住宅销售价格指数 | 数字 | | | +| commodity_house_between_90_140_idx | 90-144平米新建商品住宅销售价格指数 | 数字 | | | +| second_hand_between_90_140_idx | 90-144平米二手住宅销售价格指数 | 数字 | | | +| commodity_house_above140_idx | 144平米以上新建商品住宅销售价格指数 | 数字 | | | +| second_house_above140_idx | 144平米以上二手住宅销售价格指数 | 数字 | | | + +### 金融业 + +#### 人民币外汇牌价(日级) + +表名:MAC_RMB_EXCHANGE_RATE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| day | 统计日期 | 文本 | | YYYY-MM-DD | +| currency_id | 货币编码 | 数字 | | 1-韩国元;2-土耳其里拉;3-澳大利亚元;4-瑞典克朗;5-泰国铢;6-比利时法郎;8-丹麦克朗;10-荷兰盾;11-欧元;12-印度卢比;14-新西兰元;15-日本元;17-西班牙比塞塔;20-挪威克朗;21-英镑;22-港币;24-法国法郎;26-新加坡元;27-菲律宾比索;28-俄罗斯卢布;30-阿联酋迪拉姆;33-马来西亚林吉特;34-瑞士法郎;35-新台币;36-澳门元;38-加拿大元;39-印尼卢比;40-美元;41-巴西里亚尔;43-芬兰马克;44-南非兰特;51-沙特里亚尔 | +| cash_buy_rate | 现汇买入价 | 数字 | | | +| cash_buy | 现钞买入价 | 数字 | | | +| spot_sell | 现汇卖出价 | 数字 | | | +| cash_offer_prc | 现钞卖出价 | 数字 | | | +| safe_prc | 外管局中间价(废弃) | 数字 | | | +| bank_reduced_prc | 中行折算价 | 数字 | | | +| currency_name | 货币名称 | 文本 | | | + +#### 银行间拆借利率表(日级) + +表名:MAC_LEND_RATE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| day | 日期 | 文本 | | YYYY-MM-DD | +| currency_id | 货币编码 | 文本 | | 1-人民币;2-港币;3-美元USD;4-日本元JPY;5-英镑GBP;6-欧元;7-瑞士法郎;16-新加坡元;20-德国马克;21-法国法郎;22-ECU;23-澳大利亚元;24-AUS 25-加拿大元;26-西班牙比塞塔;27-意大利里拉;28-荷兰盾;29-PTE;30-XEU;31-丹麦克朗;32-新西兰元;33-瑞典克朗 | +| market_id | 拆借市场编码 | 文本 | | 伦敦银行同业拆借利率 LIBOR;上海银行间同业拆放利率 SHIBOR;香港银行同业拆借利率 HIBOR;新加坡银行同业拆借利率 SIBOR;中国银行同业拆借利率 CHIBOR。宏观体系编码:1=HIBOR,2=LIBOR,3=CHIBOR,4=SIBOR,5=SHIBOR,录入值为:1,2,3,4,5。 | +| term_id | 拆借期限编码 | 文本 | | 隔夜=20,一周=7,两周=14,三周=9,一月=1,两月=2,三月=3,四月=4,五月=5,六月=6,七月=21,八月=22,九月=23,十月=24,十一月=25,一年=12。注意不是每个拆借市场都支持所有的拆解周期 | +| interest_rate | 拆借利率 | 数字 | | | +| currency_name | 货币名称 | 文本 | | | + +#### 金融机构人民币信贷资金平衡表(年度) + +表名:MAC_CREDIT_BALANCE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total_source | 金融机构人民币信贷资金来源 | 数字 | | 信贷资金指金融机构以信用方式积聚和分配的货币资金。金融机构信贷资金的来源有各项存款、金融债券、对国际金融机构负债、流通中现金、其他项目等;信贷资金的运用有各项贷款、有价证券及投资、金银占款、外汇占款、财政借款及在国际金融机构中的资产等。 | +| total_deposit | 金融机构资金来源各项存款 | 数字 | | 存款指企业、机关、团体或居民根据资金必须收回的原则,把货币资金存入银行或其他信贷机构保管并取得一定利息的一种信用活动形式。根据存款对象或性质的不同可划分为单位存款、个人存款、财政性存款、临时性存款、委托存款、其他存款等科目。它是银行信贷资金的主要来源。 | +| corporate_deposit | 金融机构资金来源各项存款中单位存款 | 数字 | | | +| personal_deposit | 金融机构资金来源各项存款中个人存款 | 数字 | | | +| fiscal_deposit | 金融机构资金来源各项存款中财政性存款 | 数字 | | | +| temporary_deposit | 金融机构资金来源各项存款中临时性存款 | 数字 | | | +| designated_deposit | 金融机构资金来源各项存款中委托存款 | 数字 | | | +| finance_bond | 金融机构资金来源金融债券 | 数字 | | | +| m0 | 金融机构资金来源流通中货币 | 数字 | | | +| finance_liability | 金融机构资金来源对国际金融机构负债 | 数字 | | | +| total_use | 金融机构人民币信贷资金运用 | 数字 | | | +| total_loan | 金融机构资金运用各项贷款 | 数字 | | 贷款指银行或其他信贷机构根据资金必须归还的原则,按一定利率,为企业、个人等提供资金的一种信用活动形式。我国银行贷款分为短期贷款、中长期贷款、融资租赁、票据融资、各项垫款、境外贷款等。 | +| domestic_loan | 金融机构资金运用各项贷款境内贷款 | 数字 | | | +| short_term_loan | 金融机构资金运用各项贷款中短期贷款 | 数字 | | | +| medium_long_term_loan | 金融机构资金运用各项贷款中中长期贷款 | 数字 | | | +| finance_lease | 金融机构资金运用各项贷款中融资租赁 | 数字 | | | +| finance_bill | 金融机构资金运用各项贷款中票据租赁 | 数字 | | | +| advance | 金融机构资金运用各项贷款中各项垫款 | 数字 | | | +| oversea_loan | 金融机构资金运用各项贷款境外贷款 | 数字 | | | +| security | 金融机构资金运用有价证券及投资 | 数字 | | | +| othershare | 金融机构资金运用股权及其他投资 | 数字 | | | +| bullion_purchase | 金融机构资金运用黄金占款 | 数字 | | | +| forex_purchase | 金融机构资金运用外汇占款 | 数字 | | | +| finance_assets | 金融机构资金运用在国际金融机构资产 | 数字 | | | + +#### 货币供应量(月度) + +表名:MAC_MONEY_SUPPLY_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| m2 | 货币和准货币(M2)供应量 | 数字 | | | +| m1 | 货币(M1)供应量 | 数字 | | 货币=流通中货币+单位活期存款 | +| m0 | 流通中现金(M0)供应量 | 数字 | | | +| m2_yoy | 货币和准货币(M2)供应量同比增长率 | 数字 | | | +| m1_yoy | 货币(M1)供应量同比增长率 | 数字 | | | +| m0_yoy | 流通中现金(M0)供应量同比增长率 | 数字 | | | + +#### 货币供应量(年度) + +表名:MAC_MONEY_SUPPLY_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| m2 | 货币和准货币(M2)供应量 | 数字 | | | +| m1 | 货币(M1)供应量 | 数字 | | 货币=流通中货币+单位活期存款 | +| m0 | 流通中现金(M0)供应量 | 数字 | | | +| demond_deposit | 货币供应量中活期存款供应量 | 数字 | | | +| quosi | 准货币供应量 | 数字 | | 准货币=单位定期存款+个人存款+其他存款 | +| time_deposit | 准货币供应量定期存款 | 数字 | | | +| saving_deposit | 准货币供应量储蓄存款 | 数字 | | | +| other_deposit | 准货币供应量其他存款 | 数字 | | | +| m2_yoy | 货币和准货币(M2)供应量同比增长率 | 数字 | | | +| m1_yoy | 货币(M1)供应量同比增长率 | 数字 | | | +| m0_yoy | 流通中现金(M0)供应量同比增长率 | 数字 | | | +| demond_deposit_yoy | 货币供应量中活期存款供应量同比增长率 | 数字 | | | +| quosi_yoy | 准货币供应量同比增长率 | 数字 | | | +| time_deposit_yoy | 准货币供应量定期存款同比增长率 | 数字 | | | +| saving_deposit_yoy | 准货币供应量储蓄存款同比增长率 | 数字 | | | +| other_deposit_yoy | 准货币供应量其他存款同比增长率 | 数字 | | | + +#### 货币当局资产负债表(年度) + +表名:MAC_CURRENCY_STATE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total_assets | 货币当局总资产 | 数字 | | 资产指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。 | +| foreign_assets | 货币当局国外资产 | 数字 | | | +| foreign_exchange | 货币当局外汇 | 数字 | | | +| money_gold | 货币当局货币黄金 | 数字 | | | +| other_foreign_assets | 货币当局其他国外资产 | 数字 | | | +| government_claim | 货币当局对政府债权 | 数字 | | | +| bank_claim | 货币当局对存款货币银行债权 | 数字 | | | +| other_finance_claim | 货币当局对其他金融性公司债权 | 数字 | | | +| non_finance_claim | 货币当局对非金融性公司债权 | 数字 | | | +| other_assets | 货币当局其他资产 | 数字 | | | +| total_liability | 货币当局总负债 | 数字 | | | +| reserve_money | 货币当局储蓄货币 | 数字 | | | +| currency_issue | 货币当局储备货币发行 | 数字 | | | +| finance_deposit | 货币当局金融性公司存款 | 数字 | | | +| bank_deposit | 货币当局存款货币银行存款 | 数字 | | 存款指企业、机关、团体或居民根据资金必须收回的原则,把货币资金存入银行或其他信贷机构保管并取得一定利息的一种信用活动形式。根据存款对象或性质的不同可划分为单位存款、个人存款、财政性存款、临时性存款、委托存款、其他存款等科目。它是银行信贷资金的主要来源。 | +| other_finance_deposit | 货币当局其他金融性公司存款 | 数字 | | | +| non_reserve_finance_deposit | 货币当局不计入储备货币的金融性公司存款 | 数字 | | | +| bond_issue | 货币当局发行债券 | 数字 | | | +| foreign_liability | 货币当局国外负债 | 数字 | | | +| government_deposit | 货币当局政府存款 | 数字 | | | +| owned_capital | 货币当局自有资金 | 数字 | | | +| other_liability | 货币当局其他负债 | 数字 | | | + +#### 其他存款性公司资产负债表(年度) + +表名:MAC_OTHER_DEPOSIT + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total_assets | 其他存款性公司总资产 | 数字 | | 资产指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。 | +| foreign_assets | 其他存款性公司国外资产 | 数字 | | | +| reserve_assets | 其他存款性公司储备资产 | 数字 | | | +| reserve_deposit | 其他存款性公司准备金存款 | 数字 | | | +| cash_in_vault | 其他存款性公司库存现金 | 数字 | | | +| government_claim | 其他存款性公司对政府债权 | 数字 | | | +| central_bank_claim | 其他存款性公司对中央银行债权 | 数字 | | | +| other_claim | 其他存款性公司对其他存款性公司债权 | 数字 | | | +| other_finance_claim | 其他存款性公司对其他金融性公司债权 | 数字 | | | +| non_finance_claim | 其他存款性公司对非金融性公司债权 | 数字 | | | +| other_resident_claim | 其他存款性公司对其他居民部门债权 | 数字 | | | +| other_assets | 其他存款性公司其他资产 | 数字 | | | +| total_liability | 其他存款性公司总负债 | 数字 | | | +| non_finance_liability | 其他存款性公司对非金融机构及住户负债 | 数字 | | | +| non_finance_include_broad_money | 其他存款性公司纳入广义货币的存款 | 数字 | | 存款指企业、机关、团体或居民根据资金必须收回的原则,把货币资金存入银行或其他信贷机构保管并取得一定利息的一种信用活动形式。根据存款对象或性质的不同可划分为单位存款、个人存款、财政性存款、临时性存款、委托存款、其他存款等科目。它是银行信贷资金的主要来源。 | +| corporate_demand_deposit | 其他存款性公司纳入广义货币的企业活期存款 | 数字 | | | +| corporate_time_deposit | 其他存款性公司纳入广义货币的企业定期存款 | 数字 | | | +| personal_deposit | 其他存款性公司纳入广义货币的个人存款 | 数字 | | | +| exclude_broad_money | 其他存款性公司不纳入广义货币的存款 | 数字 | | | +| transfer_deposit | 其他存款性公司不纳入广义货币的可转让存款 | 数字 | | | +| other_deposit | 其他存款性公司不纳入广义存款的其他存款 | 数字 | | | +| other_non_finance_liability | 其他存款性公司对非金融机构及住户负债其他负债 | 数字 | | | +| central_bank_liability | 其他存款性公司对中央银行负债 | 数字 | | | +| other_deposit_liability | 其他存款性公司对其他存款性公司负债 | 数字 | | | +| other_finance_liability | 其他存款性公司对其他金融性公司负债 | 数字 | | | +| include_broad_money | 其他存款性公司对其他金融性公司负债中计入广义货币的存款 | 数字 | | | +| foreign_liability | 其他存款性公司国外负债 | 数字 | | | +| bond_issue | 其他存款性公司债券发行 | 数字 | | | +| paid_in_capital | 其他存款性公司实收资本 | 数字 | | | +| other_liability | 其他存款性公司其他负债 | 数字 | | | + +#### 社会融资规模及构成(年度) + +表名:MAC_SOCIAL_SCALE_FINANCE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | | +| social_finance_scale | 社会融资规模 | 数字 | | 社会融资规模指一定时期内实体经济从金融体系获得的资金总额,是增量概念。主要包括:人民币贷款、外币贷款(折合人民币)、委托贷款、信托贷款、未贴现的银行承兑汇票、企业债券、非金融企业境内股票融资、投资性房地产、保险公司赔偿等。 | +| rmb_loan | 人民币贷款社会融资规模 | 数字 | | | +| foreign_loan | 外币贷款(折合人民币)社会融资规模 | 数字 | | | +| entrust_loan | 委托贷款社会融资规模 | 数字 | | | +| trust_loan | 信托贷款社会融资规模 | 数字 | | | +| out_fulfilled_scale | 未贴现银行承兑汇票社会融资规模 | 数字 | | | +| corporate_bond_scale | 企业债券社会融资规模 | 数字 | | | +| non_finance_scale | 非金融企业境内股票社会融资规模 | 数字 | | | + +#### 证券市场基本情况(年度) + +表名:MAC_STK_MARKET + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| public_company | 境内上市公司数(A、B股) | 数字 | | | +| public_b_company | 境内上市外资股公司数(B股) | 数字 | | | +| public_h_company | 境外上市公司数(H股) | 数字 | | | +| total_share | 股票总发行股本 | 数字 | | | +| flow_share | 流通股本 | 数字 | | | +| total_value | 股票市价总值 | 数字 | | | +| flow_value | 股票流通市值 | 数字 | | | +| total_trade_volume | 股票成交量 | 数字 | | | +| total_trade_amount | 股票成交金额 | 数字 | | | +| xshg_close | 上证综合指数 | 数字 | | | +| xshe_close | 深证综合指数 | 数字 | | | +| account_num | 股票有效账户数 | 数字 | | | +| xshg_avg_pe | 上海平均市盈率 | 数字 | | | +| xshe_avg_pe | 深圳平均市盈率 | 数字 | | | +| xshg_avg_turnover | 上海平均换手率 | 数字 | | | +| xshe_avg_turnover | 深圳平均换手率 | 数字 | | | +| treasury_bond_issue | 国债发行额 | 数字 | | | +| company_bond_issue | 企业债券发行额 | 数字 | | | +| bond_amount | 债券成交额 | 数字 | | | +| treasury_bond_spot_amount | 国债现货成交金额 | 数字 | | | +| treasury_bond_repurchase_amount | 国债回购成交金额 | 数字 | | | +| security_fund_num | 证券投资基金只数 | 数字 | | | +| security_fund_cap | 证券投资基金规模 | 数字 | | | +| security_fund_amount | 证券投资基金成交金额 | 数字 | | | +| future_volume | 期货总成交量 | 数字 | | | +| future_amount | 期货总成交额 | 数字 | | | + +#### 黄金和外汇储备(月度) + +表名:MAC_GOLD_FOREIGN_RESERVE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_date | 统计年月 | 文本 | | YYYY-MM | +| gold | 黄金储备 | 数字 | 亿美元 | | +| foreign | 外汇储备 | 数字 | 亿美元 | | + +#### 股票发行量和筹资额(年度) + +表名:MAC_STK_ISSUE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| shared_issued | 股票发行量 | 数字 | | | +| a_shared_issued | A股发行量 | 数字 | | | +| hn_shared_issued | H股,N股发行量 | 数字 | | | +| b_shared_issued | B股发行量 | 数字 | | | +| stk_financing_amount | 股票筹资额 | 数字 | | | +| a_stk_financing_amount | A股筹资额 | 数字 | | | +| allot_financing_amount | 配股筹资额 | 数字 | | | +| hn_stk_financing_amount | H股,N股筹资额 | 数字 | | | +| b_stk_financing_amount | B股筹资额 | 数字 | | | + +#### 股票市场统计表(年度) + +表名:MAC_STK_TRADE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| public_company | 股票发行量 | 数字 | | | +| stock_num | 上市股票数目 | 数字 | | | +| a_stock_num | A股股票数目 | 数字 | | | +| b_stock_num | B股股票只数 | 数字 | | | +| total_share | 股票总发行股本 | 数字 | 亿元 | | +| a_total_share | A股发行股本 | 数字 | 亿元 | | +| b_total_share | B股发行股本 | 数字 | 亿元 | | +| circulating_share | 流通股本 | 数字 | 亿元 | | +| a_circulating_share | A股流通股本 | 数字 | 亿元 | | +| b_circulating_share | B股流通股本 | 数字 | 亿元 | | +| total_value | 股票市价总值 | 数字 | 亿元 | | +| a_total_value | A股市价总值 | 数字 | 亿元 | | +| b_total_value | B股市价总值 | 数字 | 亿元 | | +| circulation_value | 股票流通市值 | 数字 | 亿元 | | +| a_circulation_value | A股流通市值 | 数字 | 亿元 | | +| b_circulation_value | B股流通市值 | 数字 | 亿元 | | +| amount | 股票成交金额 | 数字 | 亿元 | | +| a_amount | A股成交金额 | 数字 | 亿元 | | +| b_amount | B股成交金额 | 数字 | 亿元 | | +| volume | 总成交股数 | 数字 | 亿股 | | +| a_volume | A股成交股数 | 数字 | 亿股 | | +| b_volume | B股成交股数 | 数字 | 亿股 | | +| sh_composite_index_high | 上证综合指数最高 | 数字 | | | +| sh_composite_index_low | 上证综合指数最低 | 数字 | | | +| sh_composite_index_close | 上证综合指数收盘 | 数字 | | | +| sz_composite_index_high | 深证综合指数最高 | 数字 | | | +| sz_composite_index_low | 深证综合指数最低 | 数字 | | | +| sz_composite_index_close | 深证综合指数收盘 | 数字 | | | + +### 财政政策 + +#### 国家财政收支总额及增长速度表(年度) + +表名:MAC_FISCAL_TOTAL_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| revenue | 财政收入 | 数字 | 亿元 | 财政收入指国家财政参与社会产品分配所取得的收入,是实现国家职能的财力保证。主要包括:(1)各项税收:包括国内增值税、国内消费税、进口货物增值税和消费税、出口货物退增值税和消费税、营业税、企业所得税、个人所得税、资源税、城市维护建设税、房产税、印花税、城镇土地使用税、土地增值税、车船税、船舶吨税、车辆购置税、关税、耕地占用税、契税、烟叶税等。(2)非税收入:包括专项收入、行政事业性收费、罚没收入和其他收入。财政收入按现行分税制财政体制划分为中央本级收入和地方本级收入。 | +| expense | 财政支出 | 数字 | 亿元 | 财政支出指国家财政将筹集起来的资金进行分配使用,以满足经济建设和各项事业的需要。主要包括:一般公共服务、外交、国防、公共安全、教育、科学技术、文化体育与传媒、社会保障和就业、医疗卫生、环境保护、城乡社区事务、农林水事务、交通运输、资源勘探电力信息等事务、商业服务等事务、金融监管支出、国土气象等事务、住房保障支出、粮油物资储备管理等事务、国债付息支出等方面的支出。财政支出根据政府在经济和社会活动中的不同职权,划分为中央财政支出和地方财政支出。 | +| revenue_yoy | 财政收入增长速度 | 数字 | % | | +| expense_yoy | 财政支出增长速度 | 数字 | % | | + +#### 中央财政与地方财政收支及比重表(年度) + +表名:MAC_FISCAL_BALANCE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| revenue | 全国财政收入 | 数字 | 亿元 | 财政收入指国家财政参与社会产品分配所取得的收入,是实现国家职能的财力保证。主要包括:(1)各项税收:包括国内增值税、国内消费税、进口货物增值税和消费税、出口货物退增值税和消费税、营业税、企业所得税、个人所得税、资源税、城市维护建设税、房产税、印花税、城镇土地使用税、土地增值税、车船税、船舶吨税、车辆购置税、关税、耕地占用税、契税、烟叶税等。(2)非税收入:包括专项收入、行政事业性收费、罚没收入和其他收入。财政收入按现行分税制财政体制划分为中央本级收入和地方本级收入。 | +| central_revenue | 中央财政收入 | 数字 | 亿元 | | +| local_revenue | 地方财政收入 | 数字 | 亿元 | | +| central_revenue_rate | 中央财政收入比重 | 数字 | % | | +| local_revenue_rate | 地方财政收入比重 | 数字 | % | | +| expense | 全国财政支出 | 数字 | 亿元 | 财政支出指国家财政将筹集起来的资金进行分配使用,以满足经济建设和各项事业的需要。主要包括:一般公共服务、外交、国防、公共安全、教育、科学技术、文化体育与传媒、社会保障和就业、医疗卫生、环境保护、城乡社区事务、农林水事务、交通运输、资源勘探电力信息等事务、商业服务等事务、金融监管支出、国土气象等事务、住房保障支出、粮油物资储备管理等事务、国债付息支出等方面的支出。财政支出根据政府在经济和社会活动中的不同职权,划分为中央财政支出和地方财政支出。 | +| central_expense | 中央财政支出 | 数字 | 亿元 | | +| local_expense | 地方财政支出 | 数字 | 亿元 | | +| central_expense_rate | 中央财政支出比重 | 数字 | % | | +| local_expense_rate | 地方财政支出比重 | 数字 | % | | + +#### 中央和地方财政主要收入项目情况表(年度) + +表名:MAC_FISCAL_CENTRAL_REVENUE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| item_id | 条目ID | 文本 | | | +| item_name | 条目名称 | 文本 | | | +| revenue | 国家财政收入 | 数字 | 亿元 | 财政收入指国家财政参与社会产品分配所取得的收入,是实现国家职能的财力保证。主要包括:(1)各项税收:包括国内增值税、国内消费税、进口货物增值税和消费税、出口货物退增值税和消费税、营业税、企业所得税、个人所得税、资源税、城市维护建设税、房产税、印花税、城镇土地使用税、土地增值税、车船税、船舶吨税、车辆购置税、关税、耕地占用税、契税、烟叶税等。(2)非税收入:包括专项收入、行政事业性收费、罚没收入和其他收入。财政收入按现行分税制财政体制划分为中央本级收入和地方本级收入。 | +| central_revenue | 中央财政收入 | 数字 | 亿元 | | +| local_revenue | 地方财政收入 | 数字 | 亿元 | | + +#### 中央和地方财政主要支出项目情况表(年度) + +表名:MAC_FISCAL_CENTRAL_EXPENSE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| item_id | 条目ID | 文本 | | | +| item_name | 条目名称 | 文本 | | | +| expense | 国家财政支出 | 数字 | 亿元 | 财政支出指国家财政将筹集起来的资金进行分配使用,以满足经济建设和各项事业的需要。主要包括:一般公共服务、外交、国防、公共安全、教育、科学技术、文化体育与传媒、社会保障和就业、医疗卫生、环境保护、城乡社区事务、农林水事务、交通运输、资源勘探电力信息等事务、商业服务等事务、金融监管支出、国土气象等事务、住房保障支出、粮油物资储备管理等事务、国债付息支出等方面的支出。财政支出根据政府在经济和社会活动中的不同职权,划分为中央财政支出和地方财政支出。 | +| central_expense | 中央财政支出 | 数字 | 亿元 | | +| local_expense | 地方财政支出 | 数字 | 亿元 | | + +#### 各项税收表(年度) + +表名:MAC_FISCAL_TAX_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| tax | 各项税收 | 数字 | 亿元 | | +| add_value_tax | 国内增值税 | 数字 | 亿元 | | +| business_tax | 营业税 | 数字 | 亿元 | | +| consumption_tax | 国内消费税 | 数字 | 亿元 | | +| tariff | 关税 | 数字 | 亿元 | | +| individual_tax | 个人所得税 | 数字 | 亿元 | | +| corporate_tax | 企业所得税 | 数字 | 亿元 | | + +#### 预算外资金分项目收支表(年度) + +表名:MAC_FISCAL_EXTRA_REVENUE_EXPENSE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| revenue | 预算外资金收入 | 数字 | 亿元 | | +| revenue_administration | 预算外资金收入中行政事业性收费 | 数字 | 亿元 | | +| revenue_fund | 预算外资金收入中政府性基金收入 | 数字 | 亿元 | | +| revenue_pool_fund | 预算外资金收入中乡镇自筹、统筹资金 | 数字 | 亿元 | | +| revenue_local_finance | 预算外资金收入中地方财政收入 | 数字 | 亿元 | | +| revenue_state_enterprise | 预算外资金收入中国有企业和主管部门收入 | 数字 | 亿元 | | +| revenue_other | 预算外资金收入中其他收入 | 数字 | 亿元 | | +| expense | 预算外资金支出 | 数字 | 亿元 | | +| expense_pubic_service | 预算外一般公共服务资金支出 | 数字 | 亿元 | | +| expense_education | 预算外教育资金支出 | 数字 | 亿元 | | +| expense_security_employment | 预算外社会保障和就业资金支出 | 数字 | 亿元 | | +| expense_transportation | 预算外交通运输资金支出 | 数字 | 亿元 | | +| expense_community_affairs | 预算外城乡社区事务资金支出 | 数字 | 亿元 | | +| expense_other | 预算外其他资金支出 | 数字 | 亿元 | | + +#### 中央财政与地方财政预算外收支表(年度) + +表名:MAC_FISCAL_EXTRAL_BALANCE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| revenue | 全国预算外资金收入 | 数字 | 亿元 | | +| central_revenue | 中央预算外资金收入 | 数字 | 亿元 | | +| local_revenue | 地方预算外资金收入 | 数字 | 亿元 | | +| expense | 全国预算外资金支出 | 数字 | 亿元 | | +| central_expense | 中央预算外资金支出 | 数字 | 亿元 | | +| local_expense | 地方预算外资金支出 | 数字 | 亿元 | | + +#### 外债余额表(年度) + +表名:MAC_FISCAL_EXTERNAL_DEBT_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| debt | 外债余额 | 数字 | 亿美元 | | +| government_loan | 国家外债余额中外国政府贷款 | 数字 | 亿美元 | | +| financial_organization_loan | 国家外债余额中国际金融组织贷款 | 数字 | 亿美元 | | +| commerce_loan | 国家外债余额中国际商业贷款 | 数字 | 亿美元 | | +| trade_credit | 国家外债余额中贸易信贷 | 数字 | 亿美元 | | +| long_term_debt | 国家外债余额中长期债务余额 | 数字 | 亿美元 | | +| short_term_debt | 国家外债余额中短期债务余额 | 数字 | 亿美元 | | + +#### 外债风险指标表(年度) + +表名:MAC_FISCAL_RISK_INDICATOR_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| debt_service_ratio | 国家外债偿债率 | 数字 | % | 偿债率指偿还外债本息与当年贸易和非贸易外汇收入(国际收支口径)之比。 | +| liability_ratio | 国家外债负债率 | 数字 | % | 负债率指外债余额与当年国内生产总值之比。 | +| foreign_debt_ratio | 国家外债债务率 | 数字 | % | 债务率指外债余额与当年贸易和非贸易外汇收入(国际收支口径)之比。 | + +#### 各地区财政收入表(年度) + +表名:MAC_AREA_FISCAL_REVENUE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| general_budget | 地方财政一般预算收入 | 数字 | 亿元 | 地方财政一般预算收入包括增值税、营业税、企业所得税、个人所得税、资源税、城市维护建设税、房产税、印花税、城镇土地使用税、土地增值税、车船税、耕地占用税、契税、烟草税、其他各项税收等税收收入和专项收入、行政事业性收费收入、罚没收入、国有资本经营收入、国有资源(资产)有偿使用收入、其他收入等非税收入。 | +| tax | 地方财政税收收入 | 数字 | 亿元 | 各项税收包括增值税、消费税、营业税、企业所得税、企业所得税退税、个人所得税、资源税、固定资产投资方向调节税、城市维护建设税、房产税、印花税、城镇土地使用税、土地增值税、车船税、耕地占用税、契税、烟叶税、其他税收收入。 | +| add_value_tax | 地方财政国内增值税 | 数字 | 亿元 | | +| business_tax | 地方财政营业税 | 数字 | 亿元 | | +| corporate_income_tax | 地方财政企业所得税 | 数字 | 亿元 | 企业所得税反映税务机关按《中华人民共和国企业所得税暂行条例》征收的企业所得税及依照《中华人民共和国外商投资企业和外国企业所得税法》征收的外商投资企业和外国企业所得税。税务机关对港澳台商投资企业征收的企业所得税也包括在内。 | +| individual_income_tax | 地方财政个人所得税 | 数字 | 亿元 | 个人所得税反映按照《中华人民共和国个人所得税法》、《对储蓄存款利息所得征收个人所得税的实施办法》征收的个人所得税。 | +| resource_tax | 地方财政资源税 | 数字 | 亿元 | | +| adjustment_tax | 地方财政固定资产投资方向调节税 | 数字 | 亿元 | | +| maintenance_construction_tax | 地方财政城市维护建设税 | 数字 | 亿元 | | +| house_property_tax | 地方财政房产税 | 数字 | 亿元 | | +| stamp_tax | 地方财政印花税 | 数字 | 亿元 | | +| land_tax | 地方财政城镇土地使用税 | 数字 | 亿元 | | +| land_increment_tax | 地方财政土地增值税 | 数字 | 亿元 | | +| vehicle_vessel_tax | 地方财政车船税 | 数字 | 亿元 | | +| land_occupation_tax | 地方财政耕地占用税 | 数字 | 亿元 | | +| contract_tax | 地方财政契税 | 数字 | 亿元 | | +| tobacco_tax | 地方财政烟叶税 | 数字 | 亿元 | | +| other_tax | 地方财政其他税收收入 | 数字 | 亿元 | | +| non_tax | 地方财政非税收入 | 数字 | 亿元 | | +| special | 地方财政专项收入 | 数字 | 亿元 | | +| administration | 地方财政行政事业性收费收入 | 数字 | 亿元 | | +| punishment | 地方财政罚没收入 | 数字 | 亿元 | | +| capital_operation | 地方财政国有资本经营收入 | 数字 | 亿元 | | +| asset_use | 地方财政国有资源(资产)有偿使用收入 | 数字 | 亿元 | | +| other_non_tax | 地方财政其他非税收入 | 数字 | 亿元 | | + +#### 各地区财政支出表(年度) + +表名:MAC_AREA_FISCAL_EXPENSE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| general_budget | 地方财政一般预算支出 | 数字 | 亿元 | 地方财政一般预算支出包括一般公共服务、国防、公共安全、教育、科学技术、文化体育与传媒、社会保障就业、医疗卫生、环境保护、城乡社区事务、农林水事务、交通运输等方面的支出。 | +| public_sevice | 地方财政一般公共服务支出 | 数字 | 亿元 | 一般性公共服务支出反映政府提供一般公共服务的支出。 | +| diplomacy | 地方财政外交支出 | 数字 | 亿元 | | +| defence | 地方财政国防支出 | 数字 | 亿元 | | +| public_security | 地方财政公共安全支出 | 数字 | 亿元 | | +| education | 地方财政教育支出 | 数字 | 亿元 | 教育支出反映政府教育事务支出。有关具体教育事务包括教育行政管理、学前教育、小学教育、初中教育、普通高中教育、普通高等教育、初等职业教育、中专教育、技校教育、职业高中教育、高等职业教育、广播电视教育、留学生教育、特殊教育、干部继续教育、教育机关服务等。 | +| science_technology | 地方财政科学技术支出 | 数字 | 亿元 | 科学技术支出反映用于科学技术方面的支出。 | +| cultural_sports_media | 地方财政文化体育与传媒支出 | 数字 | 亿元 | 文化体育与传媒支出反映政府在文化、文物、体育、广播电视、新闻出版等方面的支出。 | +| social_security_employment | 地方财政社会保障和就业支出 | 数字 | 亿元 | 社会保障和就业支出反映政府在社会保障与就业方面的支出。有关事项包括社会保障与就业管理事务、民政管理事务、财政对社会保险基金的补助、补充全国社会保障基金、行政事业单位离退休、企业改革补助、就业补助、抚恤、退役安置、社会福利、残疾人事业、城市居民最低生活保障、其他城镇社会救济、农村社会救济、自然灾害生活补助、红十字事务等。 | +| public_health | 地方财政医疗卫生支出 | 数字 | 亿元 | 医疗卫生支出即地方财政一般预算内支出中的医疗卫生支出项目。指政府医疗卫生方面的支出。具体包括医疗卫生管理事务支出、医疗服务支出、医疗保障支出、疾病预防控制支出、卫生监督支出、妇幼保健支出、农村卫生支出等。 | +| environmental_protection | 地方财政环境保护支出 | 数字 | 亿元 | | +| community_affairs | 地方财政城乡社区事务支出 | 数字 | 亿元 | 城乡社区事务支出反映政府城乡社区事务支出。具体包括:城乡社区管理事务支出、城乡社区规划与管理支出、城乡社区公共设施支出、城乡社区住宅支出、城乡社区环境卫生支出、建设市场管理与监督支出等。 | +| agriculture_forestry | 地方财政农林水事务支出 | 数字 | 亿元 | 农林水事务支出即地方财政一般预算支出中的农业支出项目。指政府农林水事务支出,包括农业支出、林业支出、水利支出、扶贫支出、农业综合开发支出等。 | +| transportation | 地方财政交通运输支出 | 数字 | 亿元 | 交通运输支出反映政府交通运输方面的支出。包括公路运输支出、水路运输支出、铁路运输支出、民用航空运输支出等。 | +| resource_exploration_power | 地方财政资源勘探电力信息等事务支出 | 数字 | 亿元 | | +| business_service | 地方财政商业服务业等事务支出 | 数字 | 亿元 | | +| financial_supervision | 地方财政金融监管支出 | 数字 | 亿元 | | +| earthquake_reconstruction | 地方财政地震灾后重建支出 | 数字 | 亿元 | | +| land_resource_meteorology | 地方财政国土资源气象等事务支出 | 数字 | 亿元 | | +| housing_security | 地方财政住房保障支出支出 | 数字 | 亿元 | | +| material_reserve_management | 地方财政粮油物资储备管理等事务 | 数字 | 亿元 | | +| debt_interest | 地方财政国债还本付息支出 | 数字 | 亿元 | | +| other | 地方财政其他支出 | 数字 | 亿元 | | + +### 固定资产投资 + +#### 固定资产投资情况(月度) + +表名:MAC_FIXED_INVESTMENT + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| fixed_assets_investment | 固定资产投资完成额_累计值 | 数字 | 亿元 | 固定资产投资(不含农户)指城镇和农村各种登记注册类型的企业、事业、行政单位及城镇个体户进行的计划总投资500万元及500万元以上的建设项目投资和房地产开发投资,包含原口径的城镇固定资产投资加上农村企事业组织项目投资,该口径自2011年起开始使用。 | +| state_owned | 国有及国有控股固定资产投资额_累计值 | 数字 | 亿元 | | +| real_estate | 房地产开发投资额_累计值 | 数字 | 亿元 | 房地产开发投资指各种登记注册类型的房地产开发法人单位统一开发的包括统代建、拆迁还建的住宅、厂房、仓库、饭店、宾馆、度假村、写字楼、办公楼等房屋建筑物,配套的服务设施,土地开发工程(如道路、给水、排水、供电、供热、通讯、平整场地等基础设施工程)和土地购置的投资;不包括单纯的土地开发和交易活动。 | +| primary | 第一产业固定资产投资完成额_累计值 | 数字 | 亿元 | | +| secondary | 第二产业固定资产投资完成额_累计值 | 数字 | 亿元 | | +| tertiary | 第三产业固定资产投资完成额_累计值 | 数字 | 亿元 | | +| centre_project | 中央项目固定资产投资完成额_累计值 | 数字 | 亿元 | 中央是指中共中央、人大常委会和国务院各部、委、局、总公司以及直属机构直接领导的建设项目和企业、事业、行政单位。这些单位的固定资产投资计划由国务院各部门直接编制和下达,统一组织或委托下级实施。包括有中央垂直管理的部门(如国家统计局各级调查队)和中央直属企业、事业单位(如工商银行、中国电信、中国石油)等。 | +| local_project | 地方项目固定资产投资完成额_累计值 | 数字 | 亿元 | 地方是由省(自治区、直辖市)、地(区、市、州、盟)、县(区、市、旗)三级政府及业务主管部门直接领导和管理的建设项目、企业、事业、行政单位。地方项目还包括不隶属以上各级政府及主管部门的建设项目和企业、事业单位,如外商投资企业和无主管部门的企业等。 | +| new_construct | 新建固定资产投资完成额_累计值 | 数字 | 亿元 | 新建指从无到有“平地起家”开始建设的项目。现有企业、事业、行政单位投资的项目一般不属于新建。但如有的单位原有基础很小,经过建设后新增的固定资产价值超过该企业、事业、行政单位原有固定资产价值(原值)三倍以上的,也应作为新建。 | +| expand | 扩建固定资产投资完成额_累计值 | 数字 | 亿元 | 扩建指在厂内或其他地点,为扩大原有产品的生产能力(或效益)或增加新的产品生产能力,而增建的生产车间(或主要工程)、分厂、独立的生产线的企业、事业单位。行政、事业单位在原单位增建业务性用房(如学校增建教学用房、医院增建门诊部、病房等)也作为扩建。现有企、事业单位为扩大原有主要产品生产能力或增加新的产品生产能力,增建一个或几个主要生产车间(或主要工程)、分厂,同时进行一些更新改造工程的,也应作为扩建。 | +| reconstruct | 改建固定资产投资完成额_累计值 | 数字 | 亿元 | 改建和技术改造指现有企业、事业单位对原有设施进行技术改造或更新(包括相应配套的辅助性生产、生活福利设施)的建设项目。改建项目包括现有企业、事业单位为适应市场变化的需要,而改变企业的主要产品种类(如军工企业转民产品等)的建设项目,原有产品生产作业线由于各工序(车间)之间能力不平衡,为填平补齐充分发挥原有生产能力而增建不增加本企业主要产品设计能力的车间的建设项目。技术改造是指企业、事业单位在现有基础上,用先进的技术代替落后的技术,用先进的工艺和装备代替落后的工艺和装备,以改变企业落后的技术经济面貌,实现以内涵为主的扩大再生产,达到提高产品质量、促进产品更新换代、节约能源、降低消耗、扩大生产规模、全面提高社会经济效益的目的。技术改造具体包括以下内容:机器设备和工具的更新改造;生产工艺改革、节约能源和原材料的改造;厂房建筑和公共设施的改造;保护环境进行的“三废”治理改造;劳动条件和生产环境的改造等。 | +| construct_install | 建筑安装工程固定资产投资完成额_累计值 | 数字 | 亿元 | 建筑工程指各种房屋、建筑物的建造工程,又称建筑工作量。这部分投资额必须兴工动料,通过施工活动才能实现,是固定资产投资额的重要组成部分。安装工程指各种设备、装置的安装工程,又称安装工作量。在安装工程中,不包括被安装设备本身价值。 | +| equipment_purchase | 设备工器具购置固定资产投资完成额_累计值 | 数字 | 亿元 | 设备工具器具购置指报告期内购置或自制的,达到固定资产标准的设备、工具、器具的价值。新建单位及扩建单位的新建车间,按照设计或计划要求购置或自制的全部设备、工具、器具,不论是否达到固定资产标准均计入“设备工具器具购置”中。 | +| other_expense | 其他费用固定资产投资完成额_累计值 | 数字 | 亿元 | 其他费用指在固定资产建造和购置过程中发生的,除建筑安装工程和设备、工器具购置投资完成额以外的应当分摊计入固定资产投资的费用,不指经营中财务上的其他费用。 | +| construct_area | 房屋施工面积_累计值(万平方米) | 数字 | 万平方米 | 房屋施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的面积、上期跨入本期继续施工的房屋面积、上期停缓建在本期恢复施工的房屋面积、本期竣工的房屋面积以及本期施工后又停缓建的房屋面积。多层建筑应填各层建筑面积之和。 | +| resident_complete_area | 房屋竣工面积_累计值(万平方米) | 数字 | 万平方米 | 房屋竣工面积报告期内房屋建筑按照设计要求已全部完工,达到住人和使用条件,经验收鉴定合格或达到竣工验收标准,可正式移交使用的各栋房屋建筑面积的总和。 | +| new_fixed_assets | 新增固定资产_累计值 | 数字 | 亿元 | 新增固定资产是指已经完成建造和购置过程,并已交付生产或使用单位的固定资产的价值,包括已经建成投入生产或交付使用的工程投资和达到固定资产标准的设备、工具、器具的投资及有关应摊入的费用。该指标是表示固定资产投资成果的价值指标,也是反映建设进度,计算固定资产投资效果的重要指标。 | +| fixed_assets_investment_yoy | 固定资产投资完成额_累计增长 | 数字 | % | | +| state_owned_yoy | 国有及国有控股固定资产投资额_累计增长 | 数字 | % | | +| real_estate_yoy | 房地产开发投资额_累计增长 | 数字 | % | | +| primary_yoy | 第一产业固定资产投资完成额_累计增长 | 数字 | % | | +| secondary_yoy | 第二产业固定资产投资完成额_累计增长 | 数字 | % | | +| tertiary_yoy | 第三产业固定资产投资完成额_累计增长 | 数字 | % | | +| centre_project_yoy | 中央项目固定资产投资完成额_累计增长 | 数字 | % | | +| local_project_yoy | 地方项目固定资产投资完成额_累计增长 | 数字 | % | | +| new_construct_yoy | 新建固定资产投资完成额_累计增长 | 数字 | % | | +| expand_yoy | 扩建固定资产投资完成额_累计增长 | 数字 | % | | +| reconstruct_yoy | 改建固定资产投资完成额_累计增长 | 数字 | % | | +| construct_install_yoy | 建筑安装工程固定资产投资完成额_累计增长 | 数字 | % | | +| equipment_purchase_yoy | 设备工器具购置固定资产投资完成额_累计增长 | 数字 | % | | +| other_expense_yoy | 其他费用固定资产投资完成额_累计增长 | 数字 | % | | +| construct_area_yoy | 房屋施工面积_累计增长 | 数字 | % | | +| resident_complete_area_yoy | 房屋竣工面积_累计增长 | 数字 | % | | +| new_fixed_assets_yoy | 新增固定资产_累计增长 | 数字 | % | | + +#### 分地区固定资产投资情况(月度) + +表名:MAC_AREA_FIXED_INVESTMENT + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| fixed_assets_investment | 固定资产投资完成额_累计值 | 数字 | 亿元 | 固定资产投资(不含农户)指城镇和农村各种登记注册类型的企业、事业、行政单位及城镇个体户进行的计划总投资500万元及500万元以上的建设项目投资和房地产开发投资,包含原口径的城镇固定资产投资加上农村企事业组织项目投资,该口径自2011年起开始使用。 | +| construct_install | 建筑安装工程固定资产投资完成额_累计值 | 数字 | 亿元 | 建筑工程指各种房屋、建筑物的建造工程,又称建筑工作量。这部分投资额必须兴工动料,通过施工活动才能实现,是固定资产投资额的重要组成部分。安装工程指各种设备、装置的安装工程,又称安装工作量。在安装工程中,不包括被安装设备本身价值。 | +| equipment_purchase | 设备工器具购置固定资产投资完成额_累计值 | 数字 | 亿元 | 设备工具器具购置指报告期内购置或自制的,达到固定资产标准的设备、工具、器具的价值。新建单位及扩建单位的新建车间,按照设计或计划要求购置或自制的全部设备、工具、器具,不论是否达到固定资产标准均计入“设备工具器具购置”中。 | +| other_expense | 其他费用固定资产投资完成额_累计值 | 数字 | 亿元 | 其他费用指在固定资产建造和购置过程中发生的,除建筑安装工程和设备、工器具购置投资完成额以外的应当分摊计入固定资产投资的费用,不指经营中财务上的其他费用。 | +| resident_construct | 住宅建设投资额_累计值 | 数字 | 亿元 | | +| construct_area | 住宅施工面积_累计值 | 数字 | 亿元 | 住宅指专供居住的房屋,包括别墅、公寓、职工家属宿舍和集体宿舍(包括职工单身宿舍和学生宿舍)等。但不包括住宅楼中作为人防用、不住人的地下室等。住宅按照用途可以划分为经济适用住房和别墅、高档公寓等。按照户型结构可以划分为90平方米以下住房,144平方米以上住房等。房屋施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的面积、上期跨入本期继续施工的房屋面积、上期停缓建在本期恢复施工的房屋面积、本期竣工的房屋面积以及本期施工后又停缓建的房屋面积。多层建筑应填各层建筑面积之和。 | +| resident_complete | 住宅竣工面积_累计值 | 数字 | 亿元 | 住宅指专供居住的房屋,包括别墅、公寓、职工家属宿舍和集体宿舍(包括职工单身宿舍和学生宿舍)等。但不包括住宅楼中作为人防用、不住人的地下室等。住宅按照用途可以划分为经济适用住房和别墅、高档公寓等。按照户型结构可以划分为90平方米以下住房,144平方米以上住房等。房屋施工面积指报告期内施工的全部房屋建筑面积。包括本期新开工的面积、上期跨入本期继续施工的房屋面积、上期停缓建在本期恢复施工的房屋面积、本期竣工的房屋面积以及本期施工后又停缓建的房屋面积。多层建筑应填各层建筑面积之和。 | +| construct_num | 施工项目项目个数_累计值 | 数字 | 个 | | +| new_construct_num | 新开工项目项目个数_累计值 | 数字 | 个 | | +| fixed_assets_investment_yoy | 固定资产投资完成额_累计增长 | 数字 | % | | +| construct_install_yoy | 建筑安装工程固定资产投资完成额_累计增长 | 数字 | % | | +| equipment_purchase_yoy | 设备工器具购置固定资产投资完成额_累计增长 | 数字 | % | | +| other_expense_yoy | 其他费用固定资产投资完成额_累计增长 | 数字 | % | | +| resident_construct_yoy | 住宅建设投资额_累计增长 | 数字 | % | | +| construct_area_yoy | 住宅施工面积_累计增长 | 数字 | % | | +| resident_complete_yoy | 住宅竣工面积_累计增长 | 数字 | % | | +| construct_num_yoy | 施工项目项目个数_累计增减额 | 数字 | % | 施工项目个数是指本年正式进行过建筑或安装施工活动的建设项目个数。包括本年新开工项目,以前年度开工跨入本年继续施工项目,本年全部建成投产项目、以前年度全部停缓建在本年恢复施工的项目,本年进行过施工又在本年内全部停缓建的项目。施工项目个数可以反映一定时期固定资产投资的实际规模,与同期全部建成投产项目个数相比,可以从建设速度的角度反映固定资产投资的效果。 | +| new_construct_num_yoy | 新开工项目项目个数_累计增减额 | 数字 | % | | + +#### 分行业固定资产投资情况(月度) + +表名:MAC_INDUSTRY_FIXED_INVEST + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| item_name | 条目名称 | 文本 | | | +| investment_value | 该条目固定资产投资额_累计值 | 数字 | 亿元 | 固定资产投资(不含农户)指城镇和农村各种登记注册类型的企业、事业、行政单位及城镇个体户进行的计划总投资500万元及500万元以上的建设项目投资和房地产开发投资,包含原口径的城镇固定资产投资加上农村企事业组织项目投资,该口径自2011年起开始使用。 | +| investment_perc | 该条目固定资产投资额_累计增长 | 数字 | % | | + +#### 按注册类型登记分固定资产投资(月度) + +表名:MAC_REGISTERED_FIXED_INVESTMENT + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| item_name | 条目名称 | 文本 | | | +| investment_value | 该条目固定资产投资额_累计值 | 数字 | 亿元 | 固定资产投资(不含农户)指城镇和农村各种登记注册类型的企业、事业、行政单位及城镇个体户进行的计划总投资500万元及500万元以上的建设项目投资和房地产开发投资,包含原口径的城镇固定资产投资加上农村企事业组织项目投资,该口径自2011年起开始使用。 | +| investment_perc | 该条目固定资产投资额_累计增长 | 数字 | % | | + +#### 固定资产投资情况表(年度) + +表名:MAC_FIXED_INVESTMENT_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| fixed_investment | 全社会固定资产投资 | 数字 | 亿元 | 固定资产投资(不含农户)指城镇和农村各种登记注册类型的企业、事业、行政单位及城镇个体户进行的计划总投资500万元及500万元以上的建设项目投资和房地产开发投资,包含原口径的城镇固定资产投资加上农村企事业组织项目投资,该口径自2011年起开始使用。 | +| urban_fixed_investment | 城镇固定资产投资 | 数字 | 亿元 | | +| mainland | 内资企业全社会固定资产投资 | 数字 | 亿元 | | +| state_owned | 国有全社会固定资产投资 | 数字 | 亿元 | | +| collective | 集体全社会固定资产投资 | 数字 | 亿元 | | +| joint_stock | 股份合作全社会固定资产投资 | 数字 | 亿元 | | +| joint_owned | 联营全社会固定资产投资 | 数字 | 亿元 | | +| limited | 有限责任公司全社会固定资产投资 | 数字 | 亿元 | | +| stock | 股份有限公司全社会固定资产投资 | 数字 | 亿元 | | +| private | 私营全社会固定资产投资 | 数字 | 亿元 | | +| individual | 个体全社会固定资产投资 | 数字 | 亿元 | | +| others | 其他全社会固定资产投资 | 数字 | 亿元 | | +| hkmt | 港、澳、台商投资全社会固定资产投资 | 数字 | 亿元 | | +| foreign | 外商投资全社会固定资产投资 | 数字 | 亿元 | | +| state_budget | 全社会固定资产投资中国家预算内资金 | 数字 | 亿元 | | +| domestic_loan | 全社会固定资产投资中国内贷款 | 数字 | 亿元 | | +| foreign_investment | 全社会固定资产投资中利用外资 | 数字 | 亿元 | | +| self_raised_fund | 全社会固定资产投资中自筹资金 | 数字 | 亿元 | | +| other_fund | 全社会固定资产投资中其他资金 | 数字 | 亿元 | | +| construct_install | 全社会固定资产投资中建筑安装工程 | 数字 | 亿元 | | +| equipment_purchase | 全社会固定资产投资中设备工具器具购置 | 数字 | 亿元 | | +| other_expense | 全社会固定资产投资中其它费用 | 数字 | 亿元 | | + +### 对外贸易 + +#### 货物进出口总额表(年度) + +表名:MAC_TRADE_VALUE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total_rmb | 进出口总额(人民币) | 数字 | 亿元 | 货物进出口总额指实际进出我国国境的货物总金额。包括对外贸易实际进出口货物,来料加工装配进出口货物,国家间、联合国及国际组织无偿援助物资和赠送品,华侨、港澳台同胞和外籍华人捐赠品,租赁期满归承租人所有的租赁货物,进料加工进出口货物,边境地方贸易及边境地区小额贸易进出口货物(边民互市贸易除外),中外合资企业、中外合作经营企业、外商独资经营企业进出口货物和公用物品,到、离岸价格在规定限额以上的进出口货样和广告品(无商业价值、无使用价值和免费提供出口的除外),从保税仓库提取在中国境内销售的进口货物,以及其他进出口货物。该指标用以观察一个国家在对外贸易方面的总规模。我国规定出口货物按离岸价格统计,进口货物按到岸价格统计。 | +| export_rmb | 出口总额(人民币) | 数字 | 亿元 | | +| import_rmb | 进口总额(人民币) | 数字 | | | +| balance_rmb | 进出口差额(人民币) | 数字 | 亿元 | 差额=出口额-进口额 | +| total_dollar | 进出口总额(美元) | 数字 | 百万美元 | | +| export_dollar | 出口总额(美元) | 数字 | 百万美元 | | +| import_dollar | 进口总额(美元) | 数字 | 百万美元 | | +| balance_dollar | 进出口差额(美元) | 数字 | 百万美元 | 差额=出口额-进口额 | + +#### 海关进出口货物分类金额表(年度) + +表名:MAC_TRADE_VALUE_SITC_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| item_id | 条目ID | 文本 | | | +| item_name | 条目名称 | 文本 | | | +| export_dollar | 出口总额 | 数字 | 百万美元 | | +| import_dollar | 进口总额 | 数字 | 百万美元 | | + +#### 地区按经营单位所在地分货物进出口总额表(年度) + +表名:MAC_TRADE_VALUE_LOCATION_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| total_dollar | 经营单位所在地进出口总额 | 数字 | 千美元 | 商品经营单位所在地进出口额指在所在地海关注册登记的有进出口经营权的企业实际进、出口额。 | +| export_dollar | 经营单位所在地出口总额 | 数字 | 千美元 | | +| import_dollar | 经营单位所在地进口总额 | 数字 | 千美元 | | + +#### 各地区按境内目的地和货源地分货物进出口总额表(年度) + +表名:MAC_TRADE_VALUE_DESTINATION_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| total_dollar | 境内目的地和货源地进出口总额 | 数字 | 千美元 | | +| export_dollar | 境内目的地和货源地出口总额 | 数字 | 千美元 | 货源地出口额指出口货物的产地或原始发货地的实际出口额。 | +| import_dollar | 境内目的地和货源地进口总额 | 数字 | 千美元 | 目的地进口额指进口货物的消费、使用或最终抵运地的实际进口额 | + +#### 利用外资情况表(月度) + +表名:MAC_FOREIGN_CAPITAL_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| num_acc | 外商直接投资合同项目数_累计值 | 数字 | 个 | | +| num_acc_yoy | 外商直接投资合同项目数_累计增长 | 数字 | % | | +| joint_num_acc | 合资经营企业外商直接投资合同项目数_累计值 | 数字 | 个 | 中外合资经营企业指外国企业或外国人与中国内地企业依照《中华人民共和国中外合资经营企业法》及有关法律的规定,按合同规定的比例投资设立,分享利润和分担风险的企业。 | +| joint_num_acc_yoy | 合资经营企业外商直接投资合同项目数_累计增长 | 数字 | % | 中外合资经营企业指外国企业或外国人与中国内地企业依照《中华人民共和国中外合资经营企业法》及有关法律的规定,按合同规定的比例投资设立,分享利润和分担风险的企业。 | +| cooperative_num_acc | 合作经营企业外商直接投资合同项目数_累计值 | 数字 | 个 | 中外合作经营企业指外国企业或外国人与中国内地企业依照《中华人民共和国中外合作经营企业法》及有关法律的规定,依照合作合同的约定进行投资或提供条件设立,分配利润、分担风险和亏损的企业。 | +| cooperative_num_acc_yoy | 合作经营企业外商直接投资合同项目数_累计增长 | 数字 | % | 中外合作经营企业指外国企业或外国人与中国内地企业依照《中华人民共和国中外合作经营企业法》及有关法律的规定,依照合作合同的约定进行投资或提供条件设立,分配利润、分担风险和亏损的企业。 | +| foreign_num_acc | 外资企业外商直接投资合同项目数_累计值 | 数字 | 个 | 外商独资企业指依照《中华人民共和国外资企业法》及有关法律的规定,在中国内地由外国投资者全额投资设立的企业 | +| foreign_num_acc_yoy | 外资企业外商直接投资合同项目数_累计增长 | 数字 | % | 外商独资企业指依照《中华人民共和国外资企业法》及有关法律的规定,在中国内地由外国投资者全额投资设立的企业 | +| foreign_share_num_acc | 外商投资股份制企业外商直接投资合同项目数_累计值 | 数字 | 个 | 外商投资股份有限公司指根据国家有关规定,经商务部(原外经贸部)批准设立,并且其中外资的股本占公司注册资本的比例达25%以上的股份有限公司。凡其中外资股本占公司注册资本的比例小于25%的,属于内资中的股份有限公司。 | +| foreign_share_num_acc_yoy | 外商投资股份制企业外商直接投资合同项目数_累计增长 | 数字 | % | 外商投资股份有限公司指根据国家有关规定,经商务部(原外经贸部)批准设立,并且其中外资的股本占公司注册资本的比例达25%以上的股份有限公司。凡其中外资股本占公司注册资本的比例小于25%的,属于内资中的股份有限公司。 | +| value_acc | 实际利用外商直接投资金额_累计值 | 数字 | 百万美元 | 外商直接投资指外国投资者在我国境内通过设立外商投资企业、合伙企业、与中方投资者共同进行石油资源的合作勘探开发以及设立外国公司分支机构等方式进行投资。外国投资者可以用现金、实物、技术等投资,还可以用从外商投资企业获得的利润进行再投资。 | +| value_acc_yoy | 实际利用外商直接投资金额_累计增长 | 数字 | % | 外商直接投资指外国投资者在我国境内通过设立外商投资企业、合伙企业、与中方投资者共同进行石油资源的合作勘探开发以及设立外国公司分支机构等方式进行投资。外国投资者可以用现金、实物、技术等投资,还可以用从外商投资企业获得的利润进行再投资。 | +| joint_value_acc | 合资经营企业实际利用外商直接投资金额_累计值 | 数字 | 百万美元 | 中外合资经营企业指外国企业或外国人与中国内地企业依照《中华人民共和国中外合资经营企业法》及有关法律的规定,按合同规定的比例投资设立,分享利润和分担风险的企业。 | +| joint_value_acc_yoy | 合资经营企业实际利用外商直接投资金额_累计增长 | 数字 | % | 中外合资经营企业指外国企业或外国人与中国内地企业依照《中华人民共和国中外合资经营企业法》及有关法律的规定,按合同规定的比例投资设立,分享利润和分担风险的企业。 | +| cooperative_value_acc | 合作经营企业实际利用外商直接投资金额_累计值 | 数字 | 百万美元 | 中外合作经营企业指外国企业或外国人与中国内地企业依照《中华人民共和国中外合作经营企业法》及有关法律的规定,依照合作合同的约定进行投资或提供条件设立,分配利润、分担风险和亏损的企业。 | +| cooperative_value_acc_yoy | 合作经营企业实际利用外商直接投资金额_累计增长 | 数字 | % | 中外合作经营企业指外国企业或外国人与中国内地企业依照《中华人民共和国中外合作经营企业法》及有关法律的规定,依照合作合同的约定进行投资或提供条件设立,分配利润、分担风险和亏损的企业。 | +| foreign_value_acc | 外资企业实际利用外商直接投资金额_累计值 | 数字 | 百万美元 | 外商独资企业指依照《中华人民共和国外资企业法》及有关法律的规定,在中国内地由外国投资者全额投资设立的企业。 | +| foreign_value_acc_yoy | 外资企业实际利用外商直接投资金额_累计增长 | 数字 | % | 外商独资企业指依照《中华人民共和国外资企业法》及有关法律的规定,在中国内地由外国投资者全额投资设立的企业。 | +| foreign_share_value_acc | 外商投资股份制企业实际利用外商直接投资金额_累计值 | 数字 | 百万美元 | 外商投资股份有限公司指根据国家有关规定,经商务部(原外经贸部)批准设立,并且其中外资的股本占公司注册资本的比例达25%以上的股份有限公司。凡其中外资股本占公司注册资本的比例小于25%的,属于内资中的股份有限公司。 | +| foreign_share_value_acc_yoy | 外商投资股份制企业实际利用外商直接投资金额_累计增长 | 数字 | % | 外商投资股份有限公司指根据国家有关规定,经商务部(原外经贸部)批准设立,并且其中外资的股本占公司注册资本的比例达25%以上的股份有限公司。凡其中外资股本占公司注册资本的比例小于25%的,属于内资中的股份有限公司。 | + +#### 利用外资概况表(年度) + +表名:MAC_FOREIGN_CAPITAL_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total_invest_value | 实际利用外资额 | 数字 | 万美元 | 实际使用外资金额指批准的合同外资金额的实际执行数,外国投资者根据批准外商投资企业的合同(章程)的规定实际缴付的出资额和企业投资总额内外国投资者以自己的境外自有资金实际直接向企业提供的贷款。 | +| invest_value | 实际利用外商直接投资金额 | 数字 | 万美元 | 外商直接投资指外国投资者在我国境内通过设立外商投资企业、合伙企业、与中方投资者共同进行石油资源的合作勘探开发以及设立外国公司分支机构等方式进行投资。外国投资者可以用现金、实物、技术等投资,还可以用从外商投资企业获得的利润进行再投资 | +| other_invest_value | 实际利用外商其他投资额 | 数字 | 万美元 | 外商其他投资指除对外借款和外商直接投资以外的各种利用外资的形式。包括企业在境内外股票市场公开发行的以外币计价的股票发行价总额,国际租赁进口设备的应付款,补偿贸易中外商提供的进口设备、技术、物料的价款,加工装配贸易中外商提供的进口设备、物料的价款。 | +| total_contract_project_num | 合同利用外资项目 | 数字 | 个 | | +| total_contract_invest_value | 合同利用外资额 | 数字 | 万美元 | | +| contract_project_num | 合同利用外商直接投资项目 | 数字 | 个 | | +| contract_invest_value | 合同利用外商直接投资金额 | 数字 | 万美元 | 外商直接投资指外国投资者在我国境内通过设立外商投资企业、合伙企业、与中方投资者共同进行石油资源的合作勘探开发以及设立外国公司分支机构等方式进行投资。外国投资者可以用现金、实物、技术等投资,还可以用从外商投资企业获得的利润进行再投资。 | +| contract_other_invest_value | 合同利用外商其他投资额 | 数字 | 万美元 | 外商其他投资指除对外借款和外商直接投资以外的各种利用外资的形式。包括企业在境内外股票市场公开发行的以外币计价的股票发行价总额,国际租赁进口设备的应付款,补偿贸易中外商提供的进口设备、技术、物料的价款,加工装配贸易中外商提供的进口设备、物料的价款。 | + +#### 按行业分对外直接投资情况表(年度) + +表名:MAC_INDUSTRY_OFDI_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| item_id | 条目ID | 文本 | | | +| item_name | 条目名称 | 文本 | | | +| invest | 对外直接投资额 | 数字 | 万美元 | 对外直接投资净额指境内投资主体对外直接投资额中扣除反向投资额后的净额,当期对外直接投资净额简称流量,对外直接投资累计净额简称存量。 | +| accumulation | 截至本年底对外直接投资存量 | 数字 | 万美元 | 对外直接投资净额指境内投资主体对外直接投资额中扣除反向投资额后的净额,当期对外直接投资净额简称流量,对外直接投资累计净额简称存量。 | + +#### 分国别对外外直接投资情况表(年度) + +表名:MAC_NATION_OFDI + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| invest | 对外直接投资额 | 数字 | 万美元 | 对外直接投资净额指境内投资主体对外直接投资额中扣除反向投资额后的净额,当期对外直接投资净额简称流量,对外直接投资累计净额简称存量。 | +| accumulation | 截至本年底对外直接投资存量 | 数字 | 万美元 | 对外直接投资净额指境内投资主体对外直接投资额中扣除反向投资额后的净额,当期对外直接投资净额简称流量,对外直接投资累计净额简称存量。 | + +#### 分地区外商投资企业年底注册登记情况表(年度) + +表名:MAC_AREA_FOREIGN_REGISTER + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| enterprise_num | 外商投资企业数 | 数字 | 户 | 外商投资指我国政府、部门、企业和其他经济组织通过吸收外商直接投资以及其他方式筹措的境外现汇、技术、设备等。 | +| invest | 外商投资企业投资总额 | 数字 | 百万美元 | | +| registered_capital | 外商投资企业注册资本 | 数字 | 百万美元 | | +| foreign_registered | 外方外商投资企业注册资本 | 数字 | 百万美元 | | + +#### 按行业分外商投资企业年底注册登记情况表(年度) + +表名:MAC_INDUSTRY_FOREIGN_REGISTER + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| item_id | 条目ID | 文本 | | | +| item_name | 条目名称 | 文本 | | | +| enterprise_num | 外商投资企业数 | 数字 | 户 | 外商投资指我国政府、部门、企业和其他经济组织通过吸收外商直接投资以及其他方式筹措的境外现汇、技术、设备等。 | +| invest | 外商投资企业投资总额 | 数字 | 百万美元 | | +| registered_capital | 外商投资企业注册资本 | 数字 | 百万美元 | | +| foreign_registered | 外方外商投资企业注册资本 | 数字 | 百万美元 | | + +#### 对外经济合作表(年度) + +表名:MAC_FOREIGN_COOPERATE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 示例 | 说明 | +| --- | --- | --- | --- | --- | --- | +| id | id | 数字 | | | | +| stat_year | 统计年份 | 文本 | | | YYYY | +| project_contract_num | 对外承包工程合同数 | 数字 | 份 | | 对外承包工程根据《对外承包工程管理条例》,对外承包工程是指中国的企业或者其他单位承包境外建设工程项目的活动。对外承包工程项目分为十一大类:房屋建筑项目、工业建设项目、制造加工设施建设项目、水利建设项目、废水(物)处理项目、交通运输建设项目、危险品处理项目、电力工程建设项目、石油化工项目、通讯工程项目、其他。 | +| project_value | 对外承包工程合同金额 | 数字 | 亿美元 | | 对外承包工程根据《对外承包工程管理条例》,对外承包工程是指中国的企业或者其他单位承包境外建设工程项目的活动。新签合同额指企业在报告期内签订的合法有效的对外承包工程项目合同的金额。 | +| project_turnover | 对外承包工程完成营业额 | 数字 | 亿美元 | | 对外承包工程根据《对外承包工程管理条例》,对外承包工程是指中国的企业或者其他单位承包境外建设工程项目的活动。完成营业额指企业在报告期内完成的以货币形式表现的工作量。 | +| project_abroad_person_num | 对外承包工程年末在外人数 | 数字 | 人 | | 对外承包工程根据《对外承包工程管理条例》,对外承包工程是指中国的企业或者其他单位承包境外建设工程项目的活动。期末在外人数指报告期末企业在国(境)外执行对外承包工程和劳务合作项目的人数。 | +| labour_dispatch_num | 对外劳务合作派出劳务人数 | 数字 | 人 | | 对外劳务合作指组织劳务人员赴其他国家或地区为国外的企业或机构工作的经营性活动。派出人数指企业在报告期内派往国(境)外执行对外承包工程和劳务合作项目的人数。 | +| labour_abroad_person_num | 对外劳务合作年末在外人数 | 数字 | 人 | | 对外劳务合作指组织劳务人员赴其他国家或地区为国外的企业或机构工作的经营性活动。期末在外人数指报告期末企业在国(境)外执行对外承包工程和劳务合作项目的人数。 | + +#### 按国别对外经济合作表(年度) + +表名:MAC_NATION_COOPERATE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| project_turnover | 对外承包工程完成营业额 | 数字 | 万美元 | 对外承包工程根据《对外承包工程管理条例》,对外承包工程是指中国的企业或者其他单位承包境外建设工程项目的活动。完成营业额指企业在报告期内完成的以货币形式表现的工作量。 | +| project_dispatch_num | 对外承包工程派出劳务人数 | 数字 | 人 | 对外承包工程根据《对外承包工程管理条例》,对外承包工程是指中国的企业或者其他单位承包境外建设工程项目的活动。期末在外人数指报告期末企业在国(境)外执行对外承包工程和劳务合作项目的人数。 | +| project_abroad_person_num | 对外承包工程年末在外人数 | 数字 | 人 | 对外承包工程根据《对外承包工程管理条例》,对外承包工程是指中国的企业或者其他单位承包境外建设工程项目的活动。期末在外人数指报告期末企业在国(境)外执行对外承包工程和劳务合作项目的人数。 | +| labour_dispatch_num | 对外劳务合作派出劳务人数 | 数字 | 人 | 对外劳务合作指组织劳务人员赴其他国家或地区为国外的企业或机构工作的经营性活动。派出人数指企业在报告期内派往国(境)外执行对外承包工程和劳务合作项目的人数。 | +| labour_abroad_person_num | 对外劳务合作年末在外人数 | 数字 | 人 | 对外劳务合作指组织劳务人员赴其他国家或地区为国外的企业或机构工作的经营性活动。期末在外人数指报告期末企业在国(境)外执行对外承包工程和劳务合作项目的人数。 | + +### 景气指数 + +#### 宏观经济景气指数(月度) + +表名:MAC_ECONOMIC_BOOM_IDX + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| early_warning_idx | 预警指数 | 数字 | | | +| consistency_idx | 一致指数 | 数字 | | | +| leading_idx | 先行指数 | 数字 | | | +| lagging_idx | 滞后指数 | 数字 | | | + +#### 消费者景气指数(月度) + +表名:MAC_CONSUMER_BOOM_IDX + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| expectation_idx | 消费者预期指数 | 数字 | | | +| satisfaction_idx | 消费者满意指数 | 数字 | | | +| confidence_idx | 消费者信心指数 | 数字 | | | + +#### 宏观经济景气预警指数(月度) + +表名:MAC_BOOM_WARNING_IDX + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| warning_idx | 预警指数信号 | 数字 | | | +| industry_idx_sgn | 工业生产指数信号 | 数字 | | | +| fixed_assets_sgn | 固定资产投资信号 | 数字 | | | +| rpi_sgn | 消费品零售总额信号 | 数字 | | | +| import_export_sgn | 进出口总额信号 | 数字 | | | +| gov_revenue_sgn | 财政收入信号 | 数字 | | | +| industry_profit_sgn | 工业企业利润信号 | 数字 | | | +| resident_dpi_sgn | 居民可支配收入信号 | 数字 | | | +| loan_sgn | 金融机构各项贷款信号 | 数字 | | | +| m2_sgn | 货币供应M2信号 | 数字 | | | +| cpi_sgn | 居民消费价格指数信号 | 数字 | | | + +#### 企业景气及企业家信心指数(季度) + +表名:MAC_ENTERPRISE_BOOM_CONFIDENCE_IDX + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_quarter | 统计季度 | 文本 | | YYYY-MM | +| boom_idx | 企业景气指数 | 数字 | | | +| boom_idx_yoy | 企业景气指数同比增长 | 数字 | | | +| boom_idx_mom | 企业景气指数环比增长 | 数字 | | | +| confidence_idx | 企业家信心指数 | 数字 | | | +| confidence_idx_yoy | 企业家信心指数同比增长 | 数字 | | | +| confidence_idx_mom | 企业家信心指数环比增长 | 数字 | | | + +#### 制造业采购经理指数(月度) + +表名:MAC_MANUFACTURING_PMI + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| pmi | 制造业采购经理指数 | 数字 | | | +| produce_idx | 生产指数 | 数字 | | | +| new_orders_idx | 新订单指数 | 数字 | | | +| new_export_orders_idx | 新出口订单指数 | 数字 | | | +| order_in_hand_idx | 在手订单指数 | 数字 | | | +| finished_produce_idx | 产成品库存指数 | 数字 | | | +| purchase_quantity_idx | 采购量指数 | 数字 | | | +| import_idx | 进口指数 | 数字 | | | +| exfactory_idx | 出厂价格指数 | 数字 | | | +| purchases_idx | 主要原材料购进价格指数 | 数字 | | | +| raw_material_idx | 原材料库存指数 | 数字 | | | +| employ_idx | 从业人员指数 | 数字 | | | +| delivery_time_idx | 供应商配送时间指数 | 数字 | | | +| production_expected_idx | 生产经营活动预期指数 | 数字 | | | + +#### 非制造业采购经理指数(月度) + +表名:MAC_NONMANUFACTURING_PMI + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| business_idx | 商务活动指数 | 数字 | | | +| new_orders_idx | 新订单指数 | 数字 | | | +| new_export_orders_idx | 新出口订单指数 | 数字 | | | +| order_in_hand_idx | 在手订单指数 | 数字 | | | +| inventory_idx | 存货指数 | 数字 | | | +| input_idx | 投入品价格指数 | 数字 | | | +| sell_idx | 销售价格指数 | 数字 | | | +| employ_idx | 从业人员指数 | 数字 | | | +| delivery_time_idx | 供应商配送时间指数 | 数字 | | | +| bussiness_activity_expected_idx | 业务活动预期指数 | 数字 | | | + +#### 分地区居民消费价格指数(月度) + +表名:MAC_AREA_CPI_MONTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| item_name | 条目名称 | 文本 | | | +| item_value | 该条目的值 | 数字 | | 居民消费价格指数是反映一定时期内城乡居民所购买的生活消费品和服务项目价格变动趋势和程度的相对数,是对城市居民消费价格指数和农村居民消费价格指数进行综合汇总计算的结果。通过该指数可以观察和分析消费品的零售价格和服务项目价格变动对城乡居民实际生活费支出的影响程度。 | + +#### 全国居民消费价格指数(月度) + +表名:MAC_CPI_MONTH + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| id | 主键 | | | +| stat_month | 日期 | str | | +| area_code | 统计范围代码 | str | 701001-全国,701002-城市,701003-农村 | +| area_name | 统计范围 | str | | +| cpi_month | 当月CPI | decimal(10,4) | (上年同月=100) | +| yoy | 同比 | decimal(10,4) | | +| mom | 环比 | decimal(10,4) | | +| acc | 当年度累计 | decimal(10,4) | 当年度累计=当年度各个月份CPI的加权平均 | + +### 工业 + +#### 全国工业增长速度(月度) + +表名:MAC_INDUSTRY_GROWTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| growth_yoy | 工业增加值_同比增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| growth_acc | 工业增加值_累计增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| state_owned_yoy | 国有及国有控股企业增加值_同比增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| state_owned_acc | 国有及国有控股企业增加值_累计增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| private_yoy | 私营企业增加值_同比增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| private_acc | 私营企业增加值_累计增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| collective_yoy | 集体企业增加值_同比增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| collective_acc | 集体企业增加值_累计增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| stock_cooperate_yoy | 股份合作企业增加值_同比增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| stock_cooperate_acc | 股份合作企业增加值_累计增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| joint_stock_yoy | 股份制企业增加值_同比增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| joint_stock_acc | 股份制企业增加值_累计增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| foreign_yoy | 外商及港澳台投资企业增加值_同比增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | +| foreign_acc | 外商及港澳台投资企业增加值_累计增长 | 数字 | % | 工业增加值是指工业企业在报告期内以货币形式表现的从事工业生产活动的最终成果。工业增加值有两种计算方法:一是生产法,即工业总产出减去工业中间投入加上应交增值税;二是收入法,即从收入的角度出发,根据生产要素在生产过程中应得到的收入份额计算,具体构成项目有固定资产折旧、劳动者报酬、生产税净额、营业盈余。工业增加值同比增长是指本月度工业增加值相对上年同月数的变动趋势和程度。按不变价格计算。 | + +#### 全国工业分行业增长速度(月度) + +表名:MAC_INDUSTRY_CATEGORY_GROWTH + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| coal_mining_yoy | 煤炭开采和洗选业增加值_同比增长 | 数字 | % | | +| oil_gas_mining_yoy | 石油和天然气开采业增加值_同比增长 | 数字 | % | | +| black_metal_mining_yoy | 黑色金属矿采选业增加值_同比增长 | 数字 | % | | +| nonferrous_metal_mining_yoy | 有色金属矿采选业增加值_同比增长 | 数字 | % | | +| nonmetal_mining_yoy | 非金属矿采选业增加值_同比增长 | 数字 | % | | +| mining_aid_yoy | 开采辅助活动增加值_同比增长 | 数字 | % | | +| other_mining_yoy | 其他采矿业增加值_同比增长 | 数字 | % | | +| agro_food_yoy | 农副食品加工业增加值_同比增长 | 数字 | % | | +| food_manu_yoy | 食品制造业增加值_同比增长 | 数字 | % | | +| drink_manu_yoy | 酒、饮料和精制茶制造业增加值_同比增长 | 数字 | % | | +| tobacco_manu_yoy | 烟草制品业增加值_同比增长 | 数字 | % | | +| textile_yoy | 纺织业增加值_同比增长 | 数字 | % | | +| cloth_manu_yoy | 纺织服装、服饰业增加值_同比增长 | 数字 | % | | +| leather_manu_yoy | 皮革、毛皮、羽毛及其制品和制鞋业增加值_同比增长 | 数字 | % | | +| wood_manu_yoy | 木材加工及木、竹、藤、棕、草制品业增加值_同比增长 | 数字 | % | | +| furniture_manu_yoy | 家具制造业增加值_同比增长 | 数字 | % | | +| paper_manu_yoy | 造纸及纸制品业增加值_同比增长 | 数字 | % | | +| print_yoy | 印刷和记录媒介复制业增加值_同比增长 | 数字 | % | | +| refinery_yoy | 石油加工、炼焦及核燃料加工业增加值_同比增长 | 数字 | % | | +| chemical_manu_yoy | 化学原料及化学制品制造业增加值_同比增长 | 数字 | % | | +| medical_manu_yoy | 医药制造业增加值_同比增长 | 数字 | % | | +| chemical_fiber_yoy | 化学纤维制造业增加值_同比增长 | 数字 | % | | +| rubber_manu_yoy | 橡胶和塑料制品业增加值_同比增长 | 数字 | % | | +| nonmetal_manu_yoy | 非金属矿物制品业增加值_同比增长 | 数字 | % | | +| black_metal_manu_yoy | 黑色金属冶炼及压延加工业增加值_同比增长 | 数字 | % | | +| nonferrous_metal_manu_yoy | 有色金属冶炼及压延加工业增加值_同比增长 | 数字 | % | | +| metal_product_manu_yoy | 金属制品业增加值_同比增长 | 数字 | % | | +| general_equipment_manu_yoy | 通用设备制造业增加值_同比增长 | 数字 | % | | +| professional_equipment_manu_yoy | 专用设备制造业增加值_同比增长 | 数字 | % | | +| car_manu_yoy | 汽车制造业增加值_同比增长 | 数字 | % | | +| transport_manu_yoy | 铁路、船舶、航空航天和其他运输设备制造业增加值_同比增长 | 数字 | % | | +| electrical_equipment_manu_yoy | 电气机械及器材制造业增加值_同比增长 | 数字 | % | | +| communication_equipment_manu_yoy | 通信设备、计算机及其他电子设备制造业增加值_同比增长 | 数字 | % | | +| meter_manu_yoy | 仪器仪表制造业增加值_同比增长 | 数字 | % | | +| other_manu_yoy | 其他制造业增加值_同比增长 | 数字 | % | | +| reuse_manu_yoy | 废弃资源综合利用业增加值_同比增长 | 数字 | % | | +| repair_manu_yoy | 金属制品、机械和设备修理业增加值_同比增长 | 数字 | % | | +| power_yoy | 电力、热力的生产和供应业增加值_同比增长 | 数字 | % | | +| gas_yoy | 燃气生产和供应业增加值_同比增长 | 数字 | % | | +| water_yoy | 水的生产和供应业增加值_同比增长 | 数字 | % | | +| coal_mining_acc | 煤炭开采和洗选业增加值_累计增长 | 数字 | % | | +| oil_gas_mining_acc | 石油和天然气开采业增加值_累计增长 | 数字 | % | | +| black_metal_mining_acc | 黑色金属矿采选业增加值_累计增长 | 数字 | % | | +| nonferrous_metal_mining_acc | 有色金属矿采选业增加值_累计增长 | 数字 | % | | +| nonmetal_mining_acc | 非金属矿采选业增加值_累计增长 | 数字 | % | | +| mining_aid_acc | 开采辅助活动增加值_累计增长 | 数字 | % | | +| other_mining_acc | 其他采矿业增加值_累计增长 | 数字 | % | | +| agro_food_acc | 农副食品加工业增加值_累计增长 | 数字 | % | | +| food_manu_acc | 食品制造业增加值_累计增长 | 数字 | % | | +| drink_manu_acc | 酒、饮料和精制茶制造业增加值_累计增长 | 数字 | % | | +| tobacco_manu_acc | 烟草制品业增加值_累计增长 | 数字 | % | | +| textile_acc | 纺织业增加值_累计增长 | 数字 | % | | +| cloth_manu_acc | 纺织服装、服饰业增加值_累计增长 | 数字 | % | | +| leather_manu_acc | 皮革、毛皮、羽毛及其制品和制鞋业增加值_累计增长 | 数字 | % | | +| wood_manu_acc | 木材加工及木、竹、藤、棕、草制品业增加值_累计增长 | 数字 | % | | +| furniture_manu_acc | 家具制造业增加值_累计增长 | 数字 | % | | +| paper_manu_acc | 造纸及纸制品业增加值_累计增长 | 数字 | % | | +| print_acc | 印刷和记录媒介复制业增加值_累计增长 | 数字 | % | | +| refinery_acc | 石油加工、炼焦及核燃料加工业增加值_累计增长 | 数字 | % | | +| chemical_manu_acc | 化学原料及化学制品制造业增加值_累计增长 | 数字 | % | | +| medical_manu_acc | 医药制造业增加值_累计增长 | 数字 | % | | +| chemical_fiber_acc | 化学纤维制造业增加值_累计增长 | 数字 | % | | +| rubber_manu_acc | 橡胶和塑料制品业增加值_累计增长 | 数字 | % | | +| nonmetal_manu_acc | 非金属矿物制品业增加值_累计增长 | 数字 | % | | +| black_metal_manu_acc | 黑色金属冶炼及压延加工业增加值_累计增长 | 数字 | % | | +| nonferrous_metal_manu_acc | 有色金属冶炼及压延加工业增加值_累计增长 | 数字 | % | | +| metal_product_manu_acc | 金属制品业增加值_累计增长 | 数字 | % | | +| general_equipment_manu_acc | 通用设备制造业增加值_累计增长 | 数字 | % | | +| professional_equipment_manu_acc | 专用设备制造业增加值_累计增长 | 数字 | % | | +| car_manu_acc | 汽车制造业增加值_累计增长 | 数字 | % | | +| transport_manu_acc | 铁路、船舶、航空航天和其他运输设备制造业增加值_累计增长 | 数字 | % | | +| electrical_equipment_manu_acc | 电气机械及器材制造业增加值_累计增长 | 数字 | % | | +| communication_equipment_manu_acc | 通信设备、计算机及其他电子设备制造业增加值_累计增长 | 数字 | % | | +| meter_manu_acc | 仪器仪表制造业增加值_累计增长 | 数字 | % | | +| other_manu_acc | 其他制造业增加值_累计增长 | 数字 | % | | +| reuse_manu_acc | 废弃资源综合利用业增加值_累计增长 | 数字 | % | | +| repair_manu_acc | 金属制品、机械和设备修理业增加值_累计增长 | 数字 | % | | +| power_acc | 电力、热力的生产和供应业增加值_累计增长 | 数字 | % | | +| gas_acc | 燃气生产和供应业增加值_累计增长 | 数字 | % | | +| water_acc | 水的生产和供应业增加值_累计增长 | 数字 | % | | + +#### 全国工业企业主要经济指标(月度) + +表名:MAC_INDUSTRY_INDICATOR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_month | 统计月份 | 文本 | | YYYY-MM | +| enterprise_value_acc | 企业单位数_累计值 | 数字 | 个 | 工业企业数包括独立核算法人工业企业和附营工业生产单位。独立核算法人工业企业指从事生产经营活动的单位。它同时具备以下条件:①依法成立,有自己的名称、组织机构和场所,能够独立承担民事责任;②独立拥有和使用资产,承担负债,有权与其他单位签订合同;③会计上独立核算,能够编制资产负债表 | +| loss_enterprise_value_acc | 亏损企业_累计值 | 数字 | 个 | 工业企业数包括独立核算法人工业企业和附营工业生产单位。独立核算法人工业企业指从事生产经营活动的单位。它同时具备以下条件:①依法成立,有自己的名称、组织机构和场所,能够独立承担民事责任;②独立拥有和使用资产,承担负债,有权与其他单位签订合同;③会计上独立核算,能够编制资产负债表 | +| loss_enterprise_ratio_acc | 亏损企业_累计增长 | 数字 | % | 工业企业数包括独立核算法人工业企业和附营工业生产单位。独立核算法人工业企业指从事生产经营活动的单位。它同时具备以下条件:①依法成立,有自己的名称、组织机构和场所,能够独立承担民事责任;②独立拥有和使用资产,承担负债,有权与其他单位签订合同;③会计上独立核算,能够编制资产负债表 | +| current_asset_value_acc | 流动资产合计_累计值 | 数字 | 亿元 | 资产满足以下条件之一应归为流动资产:(1)预计在一个正常营业周期中变现、出售或耗用,主要包括存货、应收账款等;(2)主要为交易目的而持有;(3)预计在资产负债表日起一年内(含一年)变现;(4)自资产负债日起一年内,交换其他资产或清偿负债的能力不受限制的现金或现金等价物。包括货币资金、应收票据、应收账款、存货等项目。根据会计“资产负债表”中“流动资产合计”项目的期末余额数填报。 | +| current_asset_ratio_acc | 流动资产合计_累计增长 | 数字 | % | 资产满足以下条件之一应归为流动资产:(1)预计在一个正常营业周期中变现、出售或耗用,主要包括存货、应收账款等;(2)主要为交易目的而持有;(3)预计在资产负债表日起一年内(含一年)变现;(4)自资产负债日起一年内,交换其他资产或清偿负债的能力不受限制的现金或现金等价物。包括货币资金、应收票据、应收账款、存货等项目。根据会计“资产负债表”中“流动资产合计”项目的期末余额数填报。 | +| accounts_receivable_value_acc | 应收账款_累计值 | 数字 | 亿元 | 应收账款指企业因销售商品、提供劳务等经营活动,应向购货单位或接受劳务单位收取的款项,主要包括企业销售商品或提供劳务等应向有关债务人收取的价款及代购货单位垫付的包装费、运杂费等。根据会计“资产负债表”中“应收账款”项目的期末余额数填报。 | +| accounts_receivable_ratio_acc | 应收账款_累计增长 | 数字 | % | 应收账款指企业因销售商品、提供劳务等经营活动,应向购货单位或接受劳务单位收取的款项,主要包括企业销售商品或提供劳务等应向有关债务人收取的价款及代购货单位垫付的包装费、运杂费等。根据会计“资产负债表”中“应收账款”项目的期末余额数填报。 | +| inventories_value_acc | 应收账款_累计值 | 数字 | 亿元 | 应收账款指企业因销售商品、提供劳务等经营活动,应向购货单位或接受劳务单位收取的款项,主要包括企业销售商品或提供劳务等应向有关债务人收取的价款及代购货单位垫付的包装费、运杂费等。根据会计“资产负债表”中“应收账款”项目的期末余额数填报。 | +| inventories_ratio_acc | 存货_累计增长 | 数字 | % | 存货指企业在日常活动中持有以备出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料或物料等,通常包括原材料、在产品、半成品、产成品、商品以及周转材料等。根据会计“资产负债表”中“存货”项目的期末余额数填报。其中:“年初存货”根据会计“资产负债表”中“存货”项目的年初余额数填报。注意:“存货”具有实物形态,不属于无形资产,由于企业持有存货的最终目的是为了出售,所以房地产开发企业(单位)购置的土地、尚未销售的商品房等均计入“存货”。 | +| finished_product_value_acc | 产成品存货_累计值 | 数字 | 亿元 | 产成品指工业企业已经完成全部生产过程并验收入库,可以按照合同规定的条件送交订货单位,或者可以作为商品对外销售的产品。根据会计“产成品”科目的借方余额填报 | +| finished_product_ratio_acc | 产成品存货_累计增长 | 数字 | % | 产成品指工业企业已经完成全部生产过程并验收入库,可以按照合同规定的条件送交订货单位,或者可以作为商品对外销售的产品。根据会计“产成品”科目的借方余额填报 | +| total_assets_value_acc | 资产总计_累计值 | 数字 | 亿元 | 资产总计指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。根据会计“资产负债表”中“资产总计”项目的期末余额数填报。 | +| total_assets_ratio_acc | 资产总计_累计增长 | 数字 | % | 资产总计指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。根据会计“资产负债表”中“资产总计”项目的期末余额数填报。 | +| liabilities_value_acc | 负债合计_累计值 | 数字 | 亿元 | 负债合计指企业过去的交易或者事项形成的,预期会导致经济利益流出企业的现时义务。负债一般按偿还期长短分为流动负债和非流动负债。根据会计“资产负债表”中“负债合计”项目的期末余额数填报。 | +| liabilities_ratio_acc | 负债合计_累计增长 | 数字 | % | 负债合计指企业过去的交易或者事项形成的,预期会导致经济利益流出企业的现时义务。负债一般按偿还期长短分为流动负债和非流动负债。根据会计“资产负债表”中“负债合计”项目的期末余额数填报。 | +| main_business_value_acc | 主营业务收入_累计值 | 数字 | 亿元 | 主营业务收入指企业确认的销售商品、提供劳务等主营业务的收入。根据会计“主营业务收入”科目的期末贷方余额填报。 | +| main_business_ratio_acc | 主营业务收入_累计增长 | 数字 | % | 主营业务收入指企业确认的销售商品、提供劳务等主营业务的收入。根据会计“主营业务收入”科目的期末贷方余额填报。 | +| main_business_tax_value_acc | 主营业务税金及附加_累计值 | 数字 | 亿元 | 主营业务税金及附加指企业经营主要业务应负担的营业税、消费税、城市维护建设税、教育费附加等。根据会计“主营业务税金及附加”科目的期末借方余额(结转前)填报。执行2006年《企业会计准则》的企业,如未设置该科目,以“营业税金及附加”代替填报。 | +| main_business_tax_ratio_acc | 主营业务税金及附加_累计增长 | 数字 | % | 主营业务税金及附加指企业经营主要业务应负担的营业税、消费税、城市维护建设税、教育费附加等。根据会计“主营业务税金及附加”科目的期末借方余额(结转前)填报。执行2006年《企业会计准则》的企业,如未设置该科目,以“营业税金及附加”代替填报。 | +| sale_expense_value_acc | 销售费用_累计值 | 数字 | 亿元 | 销售费用指企业在销售商品和材料、提供劳务的过程中发生的各种费用,包括保险费、包装费、展览费和广告费、商品维修费、预计产品质量保证损失、运输费、装卸费等以及为销售本企业商品而专设的销售机构(含销售网点、售后服务网点等)的职工薪酬、业务费、折旧费等经营费用。 | +| sale_expense_ratio_acc | 销售费用_累计增长 | 数字 | % | 销售费用指企业在销售商品和材料、提供劳务的过程中发生的各种费用,包括保险费、包装费、展览费和广告费、商品维修费、预计产品质量保证损失、运输费、装卸费等以及为销售本企业商品而专设的销售机构(含销售网点、售后服务网点等)的职工薪酬、业务费、折旧费等经营费用。 | +| management_cost_value_acc | 管理费用_累计值 | 数字 | 亿元 | 管理费用指企业为组织和管理企业生产经营所发生的费用,包括企业在筹建期间内发生的开办费、董事会和行政管理部门在企业经营管理中发生的,或者应当由企业统一负担的公司经费等。根据会计“利润表”中“管理费用”项目的本期金额数填报。 | +| management_cost_ratio_acc | 管理费用_累计增长 | 数字 | % | 管理费用指企业为组织和管理企业生产经营所发生的费用,包括企业在筹建期间内发生的开办费、董事会和行政管理部门在企业经营管理中发生的,或者应当由企业统一负担的公司经费等。根据会计“利润表”中“管理费用”项目的本期金额数填报。 | +| financial_expense_value_acc | 财务费用_累计值 | 数字 | 亿元 | 财务费用指企业为筹集生产经营所需资金等而发生的筹资费用,包括企业生产经营期间发生的利息支出(减利息收入)、汇兑损失(减汇兑收益)以及相关的手续费等。根据会计“利润表”中“财务费用”项目的本期金额数填报。 | +| financial_expense_ratio_acc | 财务费用_累计增长 | 数字 | % | 财务费用指企业为筹集生产经营所需资金等而发生的筹资费用,包括企业生产经营期间发生的利息支出(减利息收入)、汇兑损失(减汇兑收益)以及相关的手续费等。根据会计“利润表”中“财务费用”项目的本期金额数填报。 | +| interest_expense_value_acc | 利息支出_累计值 | 数字 | 亿元 | 利息支出指企业短期借款利息、长期借款利息、应付票据利息、票据贴现利息、应付债券利息、长期应付引进国外设备款利息等利息支出。根据企业“财务费用明细账”中“财务费用——利息支出”科目的本期发生额填报。如果企业没有单独设立“利息收入”科目,应填报利息支出减去银行存款等的利息收入后的净额。 | +| interest_expense_ratio_acc | 利息支出_累计增长 | 数字 | % | 利息支出指企业短期借款利息、长期借款利息、应付票据利息、票据贴现利息、应付债券利息、长期应付引进国外设备款利息等利息支出。根据企业“财务费用明细账”中“财务费用——利息支出”科目的本期发生额填报。如果企业没有单独设立“利息收入”科目,应填报利息支出减去银行存款等的利息收入后的净额。 | +| total_interest_value_acc | 利润总额_累计值 | 数字 | 亿元 | 利润总额指企业在一定会计期间的经营成果,是生产经营过程中各种收入扣除各种耗费后的盈余,反映企业在报告期内实现的盈亏总额。根据会计“利润表”中“利润总额”项目的本期金额数填报。 | +| total_interest_ratio_acc | 利润总额_累计增长 | 数字 | % | 利润总额指企业在一定会计期间的经营成果,是生产经营过程中各种收入扣除各种耗费后的盈余,反映企业在报告期内实现的盈亏总额。根据会计“利润表”中“利润总额”项目的本期金额数填报。 | +| enterprise_total_loss_value_acc | 亏损企业亏损总额_累计值 | 数字 | 亿元 | | +| enterprise_total_loss_ratio_acc | 亏损企业亏损总额_累计增长 | 数字 | % | | +| vat_value_acc | 应交增值税_累计值 | 数字 | 亿元 | 应交增值税指企业按税法规定,从事货物销售或提供加工、修理修配劳务等增加货物价值的活动本期应交纳的税金。计算公式为:应交增值税=销项税额-(进项税额-进项税额转出)-出口抵减内销产品应纳税额-减免税款+出口退税,进项税额指企业在报告期内购入货物或接受应税劳务而支付的、准予从销项税额中抵扣的增值税额。销项税额指企业在报告期内销售货物或提供应税劳务应收取的增值税额。 | +| vat_ratio_acc | 应交增值税_累计增长 | 数字 | % | 应交增值税指企业按税法规定,从事货物销售或提供加工、修理修配劳务等增加货物价值的活动本期应交纳的税金。计算公式为:应交增值税=销项税额-(进项税额-进项税额转出)-出口抵减内销产品应纳税额-减免税款+出口退税,进项税额指企业在报告期内购入货物或接受应税劳务而支付的、准予从销项税额中抵扣的增值税额。销项税额指企业在报告期内销售货物或提供应税劳务应收取的增值税额。 | + +### 保险业 + +#### 全国各地区保险业务统计表(年度) + +表名:MAC_INSURANCE_AREA_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| income | 原保险保费收入 | 数字 | 亿元 | 原保险保费收入为本年累计数,保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| property_income | 财产险保费收入 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| personal_income | 人身险保费收入 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| expense | 原保险赔付支出 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| property_expense | 财产险支出 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| personal_expense | 人身险支出 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | + +#### 保险公司保费金额表(年度) + +表名:MAC_INSURANCE_PREMIUM_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total_income | 保险公司保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| property_income | 财产保险公司保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| enterprise | 企业财产保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| family | 家庭财产保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| vehicle | 机动车辆保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| project | 财产保险公司工程保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| liability | 财产保险公司责任保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| credit | 财产保险公司信用保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| guarantee | 财产保险公司保证保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| ship | 财产保险公司船舶保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| freight | 财产保险公司货物运输保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| special_risk | 财产保险公司特殊风险保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| farm | 财产保险公司农业保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| property_health | 财产保险公司健康险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| property_accident | 财产保险公司意外伤害保险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| other | 财产保险公司其他险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| personal_income | 人寿保险公司保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| life | 人寿保险公司寿险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| health | 人寿保险公司健康险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| accident | 人寿保险公司人身意外伤害险保费 | 数字 | 亿元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | + +#### 保险公司赔款及给付表(年度) + +表名:MAC_INSURANCE_PAYMENT_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total_expense | 保险公司赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| property_expense | 财产保险公司赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| enterprise | 企业财产保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| family | 家庭财产保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| vehicle | 机动车辆保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| project | 财产保险公司工程保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| liability | 财产保险公司责任保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| credit | 财产保险公司信用保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| guarantee | 财产保险公司保证保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| ship | 财产保险公司船舶保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| freight | 财产保险公司货物运输保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| special_risk | 财产保险公司特殊风险保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| farm | 财产保险公司农业保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| property_health | 财产保险公司健康险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| property_accident | 财产保险公司意外伤害保险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| other | 财产保险公司其他险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| personal_expense | 人寿保险公司赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| life | 人寿保险公司寿险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| health | 人寿保险公司健康险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| accident | 人寿保险公司人身意外伤害险赔款及给付 | 数字 | 亿元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | + +#### 保险公司资产情况(年度) + +表名:MAC_INSURANCE_ASSETS_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| total | 保险业资产总额 | 数字 | 亿元 | 资产指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。 | +| assets | 财产险公司资产 | 数字 | 亿元 | 资产指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。 | +| life | 寿险公司资产 | 数字 | 亿元 | 资产指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。 | +| reinsurance | 再保险公司资产 | 数字 | 亿元 | 资产指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。 | +| china_invested | 中资保险公司资产 | 数字 | 亿元 | 资产指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。 | +| foreign_invested | 外资保险公司资产 | 数字 | 亿元 | 资产指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。资产一般按流动性分为流动资产和非流动资产。其中流动资产可分为货币资金、交易性金融资产、应收票据、应收账款、预付款项、其他应收款、存货等;非流动资产可分为长期股权投资、固定资产、无形资产及其他非流动资产等。 | + +#### 保险公司原保费收入和赔付支出情况(年度) + +表名:MAC_INSURANCE_REVENUE_EXPENSE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| original_revenue | 原保险保费收入 | 数字 | 万元 | 原保险保费收入为本年累计数,保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| property_revenue | 财产险保费收入 | 数字 | 万元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| life_revenue | 人身险保费收入 | 数字 | 万元 | 保费指投保人为取得保险人在约定范围内所承担赔偿责任而支付给保险人的费用。 | +| original_expense | 原保险赔付支出 | 数字 | 万元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| property_expense | 财产险支出 | 数字 | 万元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | +| life_expense | 人身险支出 | 数字 | 万元 | 赔款指保险人根据保险合同的规定,向被保险人支付的赔偿保险责任损失的金额。给付包括死伤医疗给付和满期给付。死伤医疗给付是指保险人根据人寿保险及长期健康保险合同的规定,因被保险人在保险期内发生保险责任范围内的保险事故支付给被保险人(或受益人)的金额。满期给付是指被保险人生存期满,保险人按人寿保险合同规定支付给被保险人的满期保险金额。 | + +### 国民经济 + +#### 全国各地区的行政划分(年度) + +表名:MAC_AREA_DIV + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| province_name | 该地区所在省份名称 | 文本 | | | +| city_name | 该地区所在城市名称 | 文本 | | | + +#### 分地区国内生产总值表(季度) + +表名:MAC_AREA_GDP_QUARTER + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_quarter | 统计的季度 | 文本 | | YYYY-MM(03、06、09、12分别代表第1、2、3、4季度) | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| gdp_acc | 国内生产总值(累计值) | 数字 | 亿元 | 国内生产总值(GDP)指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内生产活动的最终成果。国内生产总值有三种表现形态,即价值形态、收入形态和产品形态。从价值形态看,它是所有常住单位在一定时期内生产的全部货物和服务价值与同期投入的全部非固定资产货物和服务价值的差额,即所有常住单位的增加值之和;从收入形态看,它是所有常住单位在一定时期内创造并分配给常住单位和非常住单位的初次收入之和;从产品形态看,它是所有常住单位在一定时期内最终使用的货物和服务价值与货物和服务净出口价值之和。在实际核算中,国内生产总值有三种计算方法,即生产法、收入法和支出法。三种方法分别从不同的方面反映国内生产总值及其构成。按当年价格计算。对于一个地区来说,称为地区生产总值或地区GDP。 | +| gdp_primary_acc | 国内生产总值-第一产业(累计值) | 数字 | 亿元 | 第一产业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事第一产业生产活动的最终成果。第一产业是指农、林、牧、渔业。 | +| gdp_secondary_acc | 国内生产总值-第二产业(累计值) | 数字 | 亿元 | 第二产业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事第二产业生产活动的最终成果。第二产业是指采矿业,制造业,电力、煤气及水的生产和供应业,建筑业。 | +| gdp_tertiary_acc | 国内生产总值-第三产业(累计值) | 数字 | 亿元 | 第三产业增加值是指按市场价格计算的一个国家(或地区)所有常住单位在一定时期内从事第三产业生产活动的最终成果。第三产业是指除第一、二产业以外的其他行业。 | +| gdp_sin | 国内生产总值(当前值) | 数字 | 亿元 | | +| gdp_primary_sin | 国内生产总值-第一产业(当季值) | 数字 | 亿元 | | +| gdp_secondary_sin | 国内生产总值-第二产业(当季值) | 数字 | 亿元 | | +| gdp_tertiary_sin | 国内生产总值-第三产业(当季值) | 数字 | 亿元 | | +| gdp_yoy_acc | 国内生产总值同比(累计值) | 数字 | % | | +| gdp_primary_yoy_acc | 国内生产总值同比-第一产业(累计值) | 数字 | % | | +| gdp_secondary_yoy_acc | 国内生产总值同比-第二产业(累计值) | 数字 | % | | +| gdp_tertiary_yoy_acc | 国内生产总值同比-第三产业(累计值) | 数字 | % | | +| gdp_yoy_sin | 国内生产总值同比(当季值) | 数字 | % | | +| gdp_primary_yoy_sin | 国内生产总值同比-第一产业(当季值) | 数字 | % | | +| gdp_secondary_yoy_sin | 国内生产总值同比-第二产业(当季值) | 数字 | % | | +| gdp_tertiary_yoy_sin | 国内生产总值同比-第三产业(当季值) | 数字 | % | | +| gdp_mom | 国内生产总值环比 | 数字 | % | | + +#### 分地区国内生产总值表(年度) + +表名:MAC_AREA_GDP_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计的年度 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| gni | 该地区的总收入 | 数字 | 亿元 | | +| gdp | 该地区的生产总值 | 数字 | 亿元 | | +| gdp_primary | 该地区的第一产业生产总值 | 数字 | 亿元 | | +| gdp_agro | 该地区的农林牧渔业生产总值 | 数字 | 亿元 | | +| gdp_secondary | 该地区的第二产业生产总值 | 数字 | 亿元 | | +| gdp_industry | 该地区的工业生产总值 | 数字 | 亿元 | | +| gdp_construction | 该地区的建筑业生产总值 | 数字 | 亿元 | | +| gdp_tertiary | 该地区的第三产业生产总值 | 数字 | 亿元 | | +| gdp_transport | 该地区的交通运输、仓储和邮政业生产总值 | 数字 | 亿元 | | +| gdp_sale | 该地区的批发和零售业生产总值 | 数字 | 亿元 | 1952-2004年报告披露为批发零售贸易及餐饮,现统一记为批发零售 | +| gdp_hotel | 该地区的住宿和餐饮业生产总值 | 数字 | 亿元 | | +| gdp_financial | 该地区的金融业生产总值 | 数字 | 亿元 | 1997-2004年报告披露为金融保险业,现记为金融业 | +| gdp_estate | 该地区的房地产业生产总值 | 数字 | 亿元 | | +| gdp_others | 该地区的其他行业生产总值 | 数字 | 亿元 | | +| primary_percent | 该地区的第一产业占比 | 数字 | % | | +| secondary_percent | 该地区的第二产业占比 | 数字 | % | | +| tertiary_percent | 该地区的第三产业占比 | 数字 | % | | +| gpd_per_capita | 该地区人均国内生产总值 | 数字 | 元 | | + +#### 分地区国内生产总值指数表(上年=100,年度) + +表名:MAC_AREA_GDP_YEAR_IDX + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计的年度 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| gni_idx | 该地区总收入增长指数 | 数字 | % | 上年=100 | +| gdp_idx | 该地区生产总值增长指数 | 数字 | % | 上年=100,地区生产总值指数指反映一定时期内地区生产总值变动趋势和程度的相对数,该指标是以上一年为基期计算的指数。按不变价格计算。 | +| gdp_primary_idx | 该地区生产总值中第一产业增长指数 | 数字 | % | 上年=100,第一产业增加值指数是指反映一定时期内第一产业增加值变动趋势和程度的相对数,该指标是以上一年为基期计算的指数。按不变价格计算。 | +| gdp_agro_idx | 该地区生产总值中农林牧渔业增长指数 | 数字 | % | 上年=100 | +| gdp_secondary_idx | 该地区生产总值中第二产业增长指数 | 数字 | % | 上年=100,第二产业增加值指数是指反映一定时期内第二产业增加值变动趋势和程度的相对数,该指标是以上一年为基期计算的指数。按不变价格计算。 | +| gdp_industry_idx | 该地区生产总值中工业增长指数 | 数字 | % | 上年=100 | +| gdp_construction_idx | 该地区生产总值中建筑业增长指数 | 数字 | % | 上年=100 | +| gdp_tertiary_idx | 该地区生产总值中第三产业增长指数 | 数字 | % | 上年=100,第三产业增加值指数是指反映一定时期内第三产业增加值变动趋势和程度的相对数,该指标是以上一年为基期计算的指数。按不变价格计算。 | +| gdp_sale_idx | 该地区生产总值中批发和零售业增长指数 | 数字 | % | 上年=100 | +| gdp_transport_idx | 该地区生产总值中交通运输、仓储和邮政业增长指数 | 数字 | % | 上年=100 | +| gdp_hotel_idx | 该地区生产总值中住宿和餐饮业增长指数 | 数字 | % | 上年=100 | +| gdp_financial_idx | 该地区生产总值中金融业增长指数 | 数字 | % | 上年=100 | +| gdp_estate_idx | 该地区生产总值中房地产业增长指数 | 数字 | % | 上年=100 | +| gdp_others_idx | 该地区生产总值中其他行业增长指数 | 数字 | % | 上年=100 | +| gdp_per_capita_idx | 该地区人均生产总值增长指数 | 数字 | % | 上年=100 | + +#### 分地区国内生产总值指数表(年度) + +表名:MAC_AREA_GDP_YEAR_IDX_1978 + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计的年度 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| gni_idx | 该地区总收入增长指数 | 数字 | % | 1978年=100,地区生产总值指数指反映一定时期内地区生产总值变动趋势和程度的相对数,该指标是以上一年为基期计算的指数。按不变价格计算。 | +| gdp_idx | 该地区生产总值增长指数 | 数字 | % | 1978年=100 | +| gdp_primary_idx | 该地区生产总值中第一产业增长指数 | 数字 | % | 1978年=100,第一产业增加值指数是指反映一定时期内第一产业增加值变动趋势和程度的相对数,该指标是以上一年为基期计算的指数。按不变价格计算。 | +| gdp_agro_idx | 该地区生产总值中农林牧渔业增长指数 | 数字 | % | 1978年=100 | +| gdp_secondary_idx | 该地区生产总值中第二产业增长指数 | 数字 | % | 1978年=100,第二产业增加值指数是指反映一定时期内第二产业增加值变动趋势和程度的相对数,该指标是以上一年为基期计算的指数。按不变价格计算。 | +| gdp_industry_idx | 该地区生产总值中工业增长指数 | 数字 | % | 1978年=100 | +| gdp_construction_idx | 该地区生产总值中建筑业增长指数 | 数字 | % | 1978年=100 | +| gdp_tertiary_idx | 该地区生产总值中第三产业增长指数 | 数字 | % | 1978年=100,第三产业增加值指数是指反映一定时期内第三产业增加值变动趋势和程度的相对数,该指标是以上一年为基期计算的指数。按不变价格计算。 | +| gdp_sale_idx | 该地区生产总值中批发和零售业增长指数 | 数字 | % | 1978年=100 | +| gdp_transport_idx | 该地区生产总值中交通运输、仓储和邮政业增长指数 | 数字 | % | 1978年=100 | +| gdp_hotel_idx | 该地区生产总值中住宿和餐饮业增长指数 | 数字 | % | 1978年=100 | +| gdp_financial_idx | 该地区生产总值中金融业增长指数 | 数字 | % | 1978年=100 | +| gdp_estate_idx | 该地区生产总值中房地产业增长指数 | 数字 | % | 1978年=100 | +| gdp_others_idx | 该地区生产总值中其他行业增长指数 | 数字 | % | 1978年=100 | +| gdp_per_capita_idx | 该地区人均生产总值增长指数 | 数字 | % | 1978年=100 | + +#### 分地区支出法国内生产总值表(年度) + +表名:MAC_AREA_GDP_EXPEND_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计的年度 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| gdp_expend | 支出法该地区生产总值 | 数字 | 亿元 | 支出法国内生产总值是从最终使用的角度反映一个国家(或地区)一定时期内生产活动最终成果的一种方法,包括最终消费支出、资本形成总额及货物和服务净出口三部分。计算公式为:支出法国内生产总值=最终消费支出+资本形成总额+货物和服务净出口 | +| gdp_fin_comsum_expend | 最终消费支出 | 数字 | 亿元 | 最终消费支出指常住单位为满足物质、文化和精神生活的需要,从本国经济领土和国外购买的货物和服务的支出。它不包括非常住单位在本国经济领土内的消费支出。最终消费支出分为居民消费支出和政府消费支出。 | +| gdp_household_expend | 居民消费支出 | 数字 | 亿元 | 居民消费支出指常住住户在一定时期内对于货物和服务的全部最终消费支出。居民消费支出除了直接以货币形式购买的货物和服务的消费支出外,还包括以其他方式获得的货物和服务的消费支出,即所谓的虚拟消费支出。居民虚拟消费支出包括如下几种类型:单位以实物报酬及实物转移的形式提供给劳动者的货物和服务;住户生产并由本住户消费了的货物和服务,其中的服务仅指住户的自有住房服务和付酬的家庭雇员提供的家庭和个人服务;金融机构提供的金融媒介服务。 | +| gdp_ruarl_household_expend | 农村居民消费支出 | 数字 | 亿元 | | +| gdp_citizen_household_expend | 城镇居民消费支出 | 数字 | 亿元 | | +| gdp_gov_expend | 政府消费支出 | 数字 | 亿元 | 政府消费支出指政府部门为全社会提供的公共服务的消费支出和免费或以较低的价格向居民住户提供的货物和服务的净支出,前者等于政府服务的产出价值减去政府单位所获得的经营收入的价值,后者等于政府部门免费或以较低价格向居民住户提供的货物和服务的市场价值减去向住户收取的价值。 | +| gdp_gross_capital_format | 资本形成总额 | 数字 | 亿元 | 资本形成总额指常住单位在一定时期内获得减去处置的固定资产和存货的净额,包括固定资本形成总额和存货增加两部分。 | +| gdp_gross_fixed_format | 固定资本形成总额 | 数字 | 亿元 | 固定资本形成总额指常住单位在一定时期内获得的固定资产减处置的固定资产的价值总额。固定资产是通过生产活动生产出来的,且其使用年限在一年以上、单位价值在规定标准以上的资产,不包括自然资产。可分为有形固定资本形成总额和无形固定资本形成总额。有形固定资本形成总额包括一定时期内完成的建筑工程、安装工程和设备工器具购置(减处置)价值,以及土地改良、新增役、种、奶、毛、娱乐用牲畜和新增经济林木价值。无形固定资本形成总额包括矿藏的勘探、计算机软件等获得减处置。 | +| gdp_gross_inventory_format | 存货增加 | 数字 | 亿元 | 存货增加指常住单位在一定时期内存货实物量变动的市场价值,即期末价值减期初价值的差额,再扣除当期由于价格变动而产生的持有收益。存货增加可以是正值,也可以是负值,正值表示存货上升,负值表示存货下降。存货包括生产单位购进的原材料、燃料和储备物资等存货,以及生产单位生产的产成品、在制品和半成品等存货。 | +| gdp_net_export | 货物和服务净出口 | 数字 | 亿元 | 货物和服务净出口指货物和服务出口减货物和服务进口的差额。出口包括常住单位向非常住单位出售或无偿转让的各种货物和服务的价值;进口包括常住单位从非常住单位购买或无偿得到的各种货物和服务的价值。由于服务活动的提供与使用同时发生,一般把常住单位从非常住单位得到的服务作为进口,非常住单位从常住单位得到的服务作为出口。货物的出口和进口都按离岸价格计算。 | +| final_consum_rate | 最终消费率 | 数字 | % | 最终消费率(消费率)=最终消费支出/支出法国内生产总值(除法) | +| capital_format_rate | 资本形成率 | 数字 | % | 资本形成率(投资率)=资本形成总额/支出法国内生产总值(除法) | + +#### 分地区收入法国内生产总值表(年度) + +表名:MAC_AREA_GDP_INCOME_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计的年度 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| gdp_income | 收入法该地区生产总值 | 数字 | 亿元 | 从收入角度计算的地区生产总值,等于劳动者报酬、生产税净额、固定资产折旧和营业盈余之和。 | +| gdp_employee_payment | 劳动者报酬 | 数字 | 亿元 | 劳动者报酬指劳动者因从事生产活动所获得的全部报酬。包括劳动者获得的各种形式的工资、奖金和津贴,既包括货币形式的,也包括实物形式的,还包括劳动者所享受的公费医疗和医药卫生费、上下班交通补贴、单位支付的社会保险费、住房公积金等。 | +| gdp_net_tax_on_product | 生产税净额 | 数字 | 亿元 | 生产税净额指生产税减生产补贴后的余额。生产税指政府对生产单位从事生产、销售和经营活动以及因从事生产活动使用某些生产要素(如固定资产、土地、劳动力)所征收的各种税、附加费和规费。生产补贴与生产税相反,指政府对生产单位的单方面转移支出,因此视为负生产税,包括政策亏损补贴、价格补贴等。 | +| gdp_fix_asset_depreciation | 固定资产折旧 | 数字 | 亿元 | 固定资产折旧指一定时期内为弥补固定资产损耗按照规定的固定资产折旧率提取的固定资产折旧,或按国民经济核算统一规定的折旧率虚拟计算的固定资产折旧。它反映了固定资产在当期生产中的转移价值。各类企业和企业化管理的事业单位的固定资产折旧是指实际计提的折旧费;不计提折旧的政府机关、非企业化管理的事业单位和居民住房的固定资产折旧是按照统一规定的折旧率和固定资产原值计算的虚拟折旧。原则上,固定资产折旧应按固定资产的重置价值计算,但是目前我国尚不具备对全社会固定资产进行重估价的基础,所以暂时只能采用上述办法。 | +| gdp_operate_profit | 营业盈余 | 数字 | 亿元 | 营业盈余指常住单位创造的增加值扣除劳动者报酬、生产税净额和固定资产折旧后的余额。它相当于企业的营业利润加上生产补贴,但要扣除从利润中开支的工资和福利等。 | + +#### 国家统计局发布经济信息的日程表(年度) + +表名:MAC_STATS_REPORT_CALENDAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| report_date | 公告发布日期 | 文本 | | | +| content | 公告的主题 | 文本 | | | + +### 人民生活 + +#### 各地区居民消费水平表(年度) + +表名:MAC_AREA_CONSUME_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| income | 居民人均可支配收入 | 数字 | 元 | | +| income_yoy | 居民人均可支配收入_同比增长 | 数字 | % | | +| urban_income | 城镇居民人均可支配收入 | 数字 | 元 | | +| urban_income_yoy | 城镇居民人均可支配收入_同比增长 | 数字 | % | | +| rural_income | 农村居民人均可支配收入 | 数字 | 元 | | +| rural_income_yoy | 农村居民人均可支配收入_同比增长 | 数字 | % | | +| expense | 居民人均消费支出 | 数字 | 元 | | +| expense_yoy | 居民人均消费支出_同比增长 | 数字 | % | | +| urban_expense | 城镇居民人均消费支出 | 数字 | 元 | | +| urban_expense_yoy | 城镇居民人均消费支出_同比增长 | 数字 | % | | +| rural_expense | 农村居民人均消费支出 | 数字 | 元 | | +| rural_expense_yoy | 农村居民人均消费支出_同比增长 | 数字 | % | | + +#### 居民人均收入支出表(年度) + +表名:MAC_REVENUE_EXPENSE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| category | 居民类型 | 文本 | | | +| income | 人均可支配收入 | 数字 | 元 | 可支配收入指调查户可用于最终消费支出和其他非义务性支出以及储蓄的总和,即居民家庭可以用来自由支配的收入。它是家庭总收入扣除交纳的个人所得税、个人交纳的社会保障支出以及调查户的记账补贴后的收入。计算公式为:可支配收入=家庭总收入-交纳个人所得税-个人交纳的社会保障支出-记账补贴。 | +| wage_income | 人均可支配工资性收入 | 数字 | 元 | 工资收入指就业人员通过各种途径得到的全部劳动报酬,包括所从事主要职业的工资以及从事第二职业、其他兼职和零星劳动得到的其他劳动收入。 | +| business_income | 人均可支配经营净收入 | 数字 | 元 | 经营净收入指家庭成员从事生产经营活动所获得的净收入。是全部生产经营收入中扣除生产成本和税金(但不扣除个人所得税)后所得的收入。 | +| property_income | 人均可支配财产净收入 | 数字 | 元 | 财产性收入指家庭拥有的动产(如银行存款、有价证券)、不动产(如房屋、土地等)所获得的收入。包括出让财产使用权所获得的利息、租金、专利收入;财产营运所获得的红利收入、财产增值收益等。 | +| transfer_income | 人均可支配转移净收入 | 数字 | 元 | 转移性收入指国家、单位、社会团体对居民家庭的各种转移支付和居民家庭间的收入转移。包括政府对个人收入转移的离退休金、失业救济金、赔偿等;单位对个人收入转移的辞退金、保险索赔、住房公积金、家庭间的赠送和赡养等。 | +| expense | 人均消费支出 | 数字 | 元 | 消费性支出指调查户用于本家庭日常生活的全部支出,包括食品、衣着、居住、家庭设备用品及服务、医疗保健、交通和通信、教育文化娱乐服务、其他商品和服务八大类等。包括用于赠送的商品或服务。 | +| food_alcohol_expense | 人均食品烟酒消费支出 | 数字 | 元 | 食品消费支出指用于购买食品和在外饮食服务的相关支出,包括在商店、集市、工作单位食堂和饮食业购买和直接消费的主食、副食、烟草、酒、饮料以及干鲜瓜果、糖果、糕点、奶制品等。 | +| clothes_expense | 人均衣着消费支出 | 数字 | 元 | 衣着消费支出指用于各种穿着用品及加工穿着品的各种材料的支出,包括棉、麻、丝、毛和各种人造纤维、合成纤维纺织的各种布匹、呢绒、绸缎及其加工的服装,各种鞋、袜、帽及其他零星穿着用品等。 | +| resident_expense | 人均居住消费支出 | 数字 | 元 | 居住消费支出指用于各种与居住有关的支出,包括住房、水、电、燃料方面的支出。 | +| living_goods_expense | 人均生活用品及服务消费支出 | 数字 | 元 | | +| traffic_expense | 人均交通和通信消费支出 | 数字 | 元 | 交通和通信指用于交通和通信工具及相关的各种服务费、维修费等支出。 | +| education_recreation_expense | 人均教育、文化和娱乐消费支出 | 数字 | 元 | 文教娱乐服务消费支出指用于教育和文化娱乐用品及服务的支出。 | +| healthcare_expense | 人均医疗保健消费支出 | 数字 | 元 | 医疗保健消费支出指用于医疗和保健的药品、用品和服务的支出。包括医疗器具、保健用品、医药费、滋补保健品、医疗保健服务及其他医疗保健费用。 | +| other_expense | 人均其他用品及服务消费支出 | 数字 | 元 | 其他消费支出指除上述食品、衣着、居住、家庭设备及用品、医疗保健、交通通信、文教娱乐支出以外的其他商品和服务现金支出。 | + +#### 城乡居民家庭人均收入及恩格尔系数(年度) + +表名:MAC_ENGEL_COEFFICIENT_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| urban_income | 城镇居民家庭人均可支配收入 | 数字 | 元 | 可支配收入指调查户可用于最终消费支出和其他非义务性支出以及储蓄的总和,即居民家庭可以用来自由支配的收入。它是家庭总收入扣除交纳的个人所得税、个人交纳的社会保障支出以及调查户的记账补贴后的收入。计算公式为:可支配收入=家庭总收入-交纳个人所得税-个人交纳的社会保障支出-记账补贴。 | +| urban_income_index | 城镇居民家庭人均可支配收入指数 | 数字 | | 1978=100,可支配收入指调查户可用于最终消费支出和其他非义务性支出以及储蓄的总和,即居民家庭可以用来自由支配的收入。它是家庭总收入扣除交纳的个人所得税、个人交纳的社会保障支出以及调查户的记账补贴后的收入。计算公式为:可支配收入=家庭总收入-交纳个人所得税-个人交纳的社会保障支出-记账补贴。 | +| rural_income | 农村居民家庭人均纯收入 | 数字 | 元 | 纯收入指农村住户当年从各个来源得到的总收入相应地扣除所发生的费用后的收入总和。计算方法:纯收入=总收入-家庭经营费用支出-税费支出-生产性固定资产折旧-调查补贴-赠送农村内部亲友支出。纯收入主要用于再生产投入和当年生活消费支出,也可用于储蓄和各种非义务性支出。“农民人均纯收入”按人口平均的纯收入水平,反映的是一个地区或一个农户农村居民的平均收入水平。 | +| rural_income_index | 农村居民家庭人均纯收入指数 | 数字 | | 1978=100,纯收入指农村住户当年从各个来源得到的总收入相应地扣除所发生的费用后的收入总和。计算方法:纯收入=总收入-家庭经营费用支出-税费支出-生产性固定资产折旧-调查补贴-赠送农村内部亲友支出。纯收入主要用于再生产投入和当年生活消费支出,也可用于储蓄和各种非义务性支出。“农民人均纯收入”按人口平均的纯收入水平,反映的是一个地区或一个农户农村居民的平均收入水平。 | +| urban_engel_coefficient | 城镇居民家庭恩格尔系数 | 数字 | % | | +| rural_engel_coefficient | 农村居民家庭恩格尔系数 | 数字 | % | | + +#### 城乡居民人民币储蓄存款表(年度) + +表名:MAC_RESIDENT_SAVING_DEPOSIT_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| deposit | 城乡居民人民币储蓄存款年底余额 | 数字 | 亿元 | 人民币储蓄存款余额是指城乡居民在某一时点上在银行和其他金融机构的人民币储蓄存款总额。 | +| time_deposit | 城乡居民人民币定期储蓄存款年底余额 | 数字 | 亿元 | | +| demand_deposit | 城乡居民人民币活期储蓄存款年底余额 | 数字 | 亿元 | | +| deposit_increase | 城乡居民人民币储蓄存款年增加额 | 数字 | 亿元 | | +| time_deposit_increase | 城乡居民人民币定期储蓄存款年增加额 | 数字 | 亿元 | | +| demand_deposit_increase | 城乡居民人民币活期储蓄存款年增加额 | 数字 | 亿元 | | + +#### 分地区城镇居民家庭平均每人全年收入来源表(年度) + +表名:MAC_AREA_URBAN_INCOME_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | | +| area_name | 地区名称 | 文本 | | | +| disposable_income | 城镇居民人均可支配收入 | 数字 | 元 | 可支配收入指调查户可用于最终消费支出和其他非义务性支出以及储蓄的总和,即居民家庭可以用来自由支配的收入。它是家庭总收入扣除交纳的个人所得税、个人交纳的社会保障支出以及调查户的记账补贴后的收入。计算公式为:可支配收入=家庭总收入-交纳个人所得税-个人交纳的社会保障支出-记账补贴。 | +| income | 城镇居民人均总收入 | 数字 | 元 | 家庭总收入指调查户中生活在一起的所有家庭成员在调查期得到的工资性收入、经营净收入、财产性收入、转移性收入的总和,不包括出售财物和借贷收入。收入的统计标准以实际发生的数额为准,无论收入是补发还是预发,只要是调查期得到的都应如实计算,原则上不作分摊。 | +| wage_income | 城镇居民人均工资性收入 | 数字 | 元 | 工资收入指就业人员通过各种途径得到的全部劳动报酬,包括所从事主要职业的工资以及从事第二职业、其他兼职和零星劳动得到的其他劳动收入。 | +| business_income | 城镇居民人均经营净收入 | 数字 | 元 | 经营净收入指家庭成员从事生产经营活动所获得的净收入。是全部生产经营收入中扣除生产成本和税金(但不扣除个人所得税)后所得的收入。 | +| property_income | 城镇居民人均财产性收入 | 数字 | 元 | 财产性收入指家庭拥有的动产(如银行存款、有价证券)、不动产(如房屋、土地等)所获得的收入。包括出让财产使用权所获得的利息、租金、专利收入;财产营运所获得的红利收入、财产增值收益等。 | +| transfer_income | 城镇居民人均转移性收入 | 数字 | 元 | 转移性收入指国家、单位、社会团体对居民家庭的各种转移支付和居民家庭间的收入转移。包括政府对个人收入转移的离退休金、失业救济金、赔偿等;单位对个人收入转移的辞退金、保险索赔、住房公积金、家庭间的赠送和赡养等。 | + +#### 分地区城镇及农村居民家庭平均每人全年消费性支出表(年度) + +表名:MAC_AREA_URBAN_RURAL_EXPENSE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| category | 居民类型 | 文本 | | | +| expense | 家庭人均现金消费支出 | 数字 | 元 | 消费性支出指调查户用于本家庭日常生活的全部支出,包括食品、衣着、居住、家庭设备用品及服务、医疗保健、交通和通信、教育文化娱乐服务、其他商品和服务八大类等。包括用于赠送的商品或服务。 | +| food_expense | 家庭人均食品消费支出 | 数字 | 元 | 食品消费支出指用于购买食品和在外饮食服务的相关支出,包括在商店、集市、工作单位食堂和饮食业购买和直接消费的主食、副食、烟草、酒、饮料以及干鲜瓜果、糖果、糕点、奶制品等。 | +| clothes_expense | 家庭人均衣着消费支出 | 数字 | 元 | 衣着消费支出指用于各种穿着用品及加工穿着品的各种材料的支出,包括棉、麻、丝、毛和各种人造纤维、合成纤维纺织的各种布匹、呢绒、绸缎及其加工的服装,各种鞋、袜、帽及其他零星穿着用品等。 | +| resident_expense | 家庭人均居住消费支出 | 数字 | 元 | 居住消费支出指用于各种与居住有关的支出,包括住房、水、电、燃料方面的支出。 | +| household_equipment_expense | 家庭人均家庭设备及用品消费支出 | 数字 | 元 | 家庭设备及用品消费支出指用于家庭各类日用消费品及家庭服务的支出。包括日用耐用消费品、室内装饰品、床上用品、家庭日用杂品、家具、家庭服务。 | +| healthcare_expense | 家庭人均医疗保健消费支出 | 数字 | 元 | 医疗保健消费支出指用于医疗和保健的药品、用品和服务的支出。包括医疗器具、保健用品、医药费、滋补保健品、医疗保健服务及其他医疗保健费用。 | +| traffic_expense | 家庭人均交通和通信消费支出 | 数字 | 元 | 交通和通信指用于交通和通信工具及相关的各种服务费、维修费等支出。 | +| education_recreation_expense | 家庭人均文教娱乐服务消费支出 | 数字 | 元 | 文教娱乐服务消费支出指用于教育和文化娱乐用品及服务的支出。 | +| other_expense | 家庭人均其它消费支出 | 数字 | 元 | 其他消费支出指除上述食品、衣着、居住、家庭设备及用品、医疗保健、交通通信、文教娱乐支出以外的其他商品和服务现金支出。 | + +#### 农村居民家庭平均每人纯收入(年度) + +表名:MAC_RURAL_NET_INCOME_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| income | 农村居民家庭平均每人纯收入 | 数字 | 元 | 纯收入指农村住户当年从各个来源得到的总收入相应地扣除所发生的费用后的收入总和。计算方法:纯收入=总收入-家庭经营费用支出-税费支出-生产性固定资产折旧-调查补贴-赠送农村内部亲友支出。纯收入主要用于再生产投入和当年生活消费支出,也可用于储蓄和各种非义务性支出。“农民人均纯收入”按人口平均的纯收入水平,反映的是一个地区或一个农户农村居民的平均收入水平。 | +| wage_income | 农村居民家庭平均每人工资性纯收入 | 数字 | 元 | | +| business_income | 农村居民家庭平均每人家庭经营纯收入 | 数字 | 元 | | +| property_income | 农村居民家庭平均每人财产性纯收入 | 数字 | 元 | | +| transfer_income | 农村居民家庭平均每人转移性纯收入 | 数字 | 元 | | +| farming_income | 农村居民家庭平均每人农业纯收入 | 数字 | 元 | | +| forestry_income | 农村居民家庭平均每人林业纯收入 | 数字 | 元 | | +| animal_husbandry_income | 农村居民家庭平均每人牧业纯收入 | 数字 | 元 | | +| fishery_income | 农村居民家庭平均每人渔业纯收入 | 数字 | 元 | | +| industry_income | 农村居民家庭平均每人工业纯收入 | 数字 | 元 | | +| construction_income | 农村居民家庭平均每人建筑业纯收入 | 数字 | 元 | | +| traffic_income | 农村居民家庭平均每人交通运输业、邮电业纯收入 | 数字 | 元 | | +| wholesale_income | 农村居民家庭平均每人批发、零售贸易及餐饮业纯收入 | 数字 | 元 | | +| service_income | 农村居民家庭平均每人社会服务业纯收入 | 数字 | 元 | | +| education_culture_income | 农村居民家庭平均每人文教卫生业纯收入 | 数字 | 元 | | +| other_income | 农村居民家庭平均每人其他纯收入 | 数字 | 元 | | + +#### 各地区按来源分农村居民家庭人均纯收入(年度) + +表名:MAC_AREA_RURAL_NET_INCOME_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| income | 农村居民家庭人均纯收入 | 数字 | 元 | 纯收入指农村住户当年从各个来源得到的总收入相应地扣除所发生的费用后的收入总和。计算方法:纯收入=总收入-家庭经营费用支出-税费支出-生产性固定资产折旧-调查补贴-赠送农村内部亲友支出。纯收入主要用于再生产投入和当年生活消费支出,也可用于储蓄和各种非义务性支出。“农民人均纯收入”按人口平均的纯收入水平,反映的是一个地区或一个农户农村居民的平均收入水平。 | +| wage_income | 农村居民家庭人均工资性纯收入 | 数字 | 元 | 工资性收入指农村住户成员受雇于单位或个人,靠出卖劳动力而获得的全部劳动报酬和各种福利收入。 | +| business_income | 农村居民家庭人均家庭经营纯收入 | 数字 | 元 | 农村居民家庭经营收入指农村住户以家庭为生产经营单位进行生产筹划和管理而获得的收入。家庭经营活动按行业划分为农业、林业、畜牧业、渔业、工业、建筑业、交通运输和邮电业、批发和零售贸易餐饮业、社会服务业、文教卫生业和其他家庭经营。 | +| property_income | 农村居民家庭人均财产性纯收入 | 数字 | 元 | 农村居民财产性收入指金融资产或有形非生产性资产的所有者向其他机构单位提供资金或将有形非生产性资产供其支配,作为回报而从中获得的收入。 | +| transfer_income | 农村居民家庭人均转移性纯收入 | 数字 | 元 | 农村居民转移性收入指农村住户和住户成员无须付出任何对应物而获得的货物、服务、资金或资产所有权等,不包括无偿提供的用于固定资本形成的资金。一般情况下,指农村住户在二次分配中的所有收入。农村居民家庭平均每人转移性纯收入不包括农村内部亲友赠送收入。 | + +#### 分地区农村居民家庭住房情况表(年度) + +表名:MAC_AREA_RURAL_HOUSE_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| house_area | 农村居民人均住房面积 | 数字 | 平方米/人 | 住宅建筑面积是指房屋外墙勒脚以上的外围水平面积,包括阳台、走廊、室外楼梯等的建筑面积。 | +| house_value | 农村居民家庭住房价值 | 数字 | 元/平方米 | 住房价值指农村住户期末居住的房屋当初购买或新建时的价值。新建房屋的价值可按实际消耗的建筑材料和人工的报酬计算,有的地方,人工不要报酬,只管吃喝,可将吃喝的费用,当作报酬,计入房价内。原有房屋,按房屋质量和新旧程度,根据当地实际情况进行估价。对原有房屋进行大翻修的,也应考虑在内。 | +| concrete_structure | 农村居民家庭住房钢筋混凝土结构 | 数字 | 平方米/人 | 钢筋混凝土结构是指房屋的梁、柱、承重墙等主要部分是用钢筋混凝土建造的住房。 | +| brick_wood_structure | 农村居民家庭住房砖木结构 | 数字 | 平方米/人 | 砖木结构是指梁、柱、承重墙等主要部分是用砖、石和木料建造的的住房。以砖、石作墙基的土坯房不包括在内。 | + +### 人口信息 + +#### 人口基本情况表(年度) + +表名:MAC_POPULATION_YEAR + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| population | 年末常住人口 | 数字 | | 年末人口数指每年12月31日24时的人口数。年度统计的全国人口总数内未包括香港、澳门特别行政区和台湾省以及海外华侨人数。 | +| male | 男性人口 | 数字 | | | +| female | 女性人口 | 数字 | | | +| urban | 城镇人口 | 数字 | | 城镇人口是指居住在城镇范围内的全部常住人口。 | +| rural | 乡村人口 | 数字 | | 乡村人口是除城镇人口以外的全部人口。 | +| birth_rate | 人口出生率 | 数字 | ‰ | | +| death_rate | 人口死亡率 | 数字 | ‰ | | +| growth_rate | 人口自然增长率 | 数字 | ‰ | | + +#### 各地区人口平均预期寿命表(年度) + +表名:MAC_LIFE_EXPECT + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| life_expect | 平均预期寿命 | 数字 | 岁 | 平均预期寿命是指已经活到一定岁数的人平均还能再活的年数。它是反映人类健康水平、死亡水平的综合指标,其高低主要受社会经济条件和医疗水平等因素的制约,不同社会、不同时期有很大差别。在不特别指明岁数的情况下,平均预期寿命就是指0岁人口的平均预期寿命。 | +| male_life_expect | 男性平均预期寿命 | 数字 | 岁 | 平均预期寿命是指已经活到一定岁数的人平均还能再活的年数。它是反映人类健康水平、死亡水平的综合指标,其高低主要受社会经济条件和医疗水平等因素的制约,不同社会、不同时期有很大差别。在不特别指明岁数的情况下,平均预期寿命就是指0岁人口的平均预期寿命。 | +| female_life_expect | 女性平均预期寿命 | 数字 | 岁 | 平均预期寿命是指已经活到一定岁数的人平均还能再活的年数。它是反映人类健康水平、死亡水平的综合指标,其高低主要受社会经济条件和医疗水平等因素的制约,不同社会、不同时期有很大差别。在不特别指明岁数的情况下,平均预期寿命就是指0岁人口的平均预期寿命。 | + +#### 按年龄和性别分人口数表(年度) + +表名:MAC_POPULATION_AGE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| age | 年龄段 | 文本 | | | +| rate | 该年龄段占总抽样人口的比例 | 数字 | | | +| population | 该年龄段的人口数 | 数字 | | | +| male | 该年龄段的男性人口数 | 数字 | | | +| female | 该年龄段的女性人口数 | 数字 | | | +| gender_ratio | 该年龄段的性别比 | 数字 | | 性别比指人口中男性与女性人口之比(以女性人口为100)。 | + +#### 各地区户数、人口数、性别比和户规模表(年度) + +表名:MAC_AREA_HOUSEHOLD_SIZE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| household | 总户数(人口抽样调查) | 数字 | 户 | | +| family_household | 家庭户户数(人口抽样调查) | 数字 | 户 | | +| collective_household | 集体户户数(人口抽样调查) | 数字 | 户 | | +| family_household_population | 家庭户人口数(人口抽样调查) | 数字 | 人 | 家庭户是指以家庭成员关系为主的人口,或者还有其他人口,居住一处共同生活的,作为一个家庭户。单身居住独自生活的也作为一个家庭户。居住生活在同一家庭户的人,不论其工作性质如何,农业户口还是非农业户口,有无正式户口,都应登记为一户。 | +| male_family | 家庭户男性人口数(人口抽样调查) | 数字 | 人 | | +| female_family | 家庭户女性人口数(人口抽样调查) | 数字 | 人 | | +| collective_household_population | 集体户人口数(人口抽样调查) | 数字 | 人 | 集体户是指相互之间没有家庭成员关系,集体居住在机关、团体、学校、工厂、矿山、工地、农场、公司、商店、医院、托儿所、敬老院、寺院、教堂等单位内集体宿舍及其他住所共同生活的人口,作为集体户。从事各种流动作业、集体居住的人口,也作为集体户登记。集体户以居住在同一房间的人作为一个集体户进行登记。 | +| male_collective | 集体户男性人口数(人口抽样调查) | 数字 | 人 | | +| female_collective | 集体户女性人口数(人口抽样调查) | 数字 | 人 | | + +#### 户口登记状况(年度) + +表名:MAC_AREA_HOUSEHOLD_REGISTER + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| population | 人口数(人口抽样调查) | 数字 | 人 | | +| male | 男性人口数(人口抽样调查) | 数字 | 人 | | +| female | 女性人口数(人口抽样调查) | 数字 | 人 | | +| residing | 住本乡、镇、街道,户口在本乡、镇、街道人口数(人口抽样调查) | 数字 | 人 | | +| male_residing | 住本乡、镇、街道,户口在本乡、镇、街道男性人口数(人口抽样调查) | 数字 | 人 | | +| female_residing | 住本乡、镇、街道,户口在本乡、镇、街道女性人口数(人口抽样调查) | 数字 | 人 | | +| residing_6months | 住本乡、镇、街道,户口在外乡、镇、街道,离开户口登记地半年以上人口数(人口抽样调查) | 数字 | 人 | | +| male_residing_6months | 住本乡、镇、街道,户口在外乡、镇、街道,离开户口登记地半年以上男性人口数(人口抽样调查) | 数字 | 人 | | +| female_residing_6months | 住本乡、镇、街道,户口在外乡、镇、街道,离开户口登记地半年以上女性人口数(人口抽样调查) | 数字 | 人 | | +| household_unsettle | 住本乡、镇、街道,户口待定人口数(人口抽样调查) | 数字 | 人 | | +| male_household_unsettle | 住本乡、镇、街道,户口待定男性人口数(人口抽样调查) | 数字 | 人 | | +| female_household_unsettle | 住本乡、镇、街道,户口待定女性人口数(人口抽样调查) | 数字 | 人 | | +| residing_abroad | 居住在港澳台或国外,户口在本乡、镇、街道人口数(人口抽样调查) | 数字 | 人 | | +| male_residing_abroad | 居住在港澳台或国外,户口在本乡、镇、街道男性人口数(人口抽样调查) | 数字 | 人 | | +| female_residing_abroad | 居住在港澳台或国外,户口在本乡、镇、街道女性人口数(人口抽样调查) | 数字 | 人 | | + +#### 各地区人口年龄结构和抚养比例表(年度) + +表名:MAC_AREA_POP_DEPENDENCY + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| population | 人口数(人口抽样调查) | 数字 | 人 | | +| age_between_0_and_14 | 0-14岁人口数(人口抽样调查) | 数字 | 人 | | +| age_between_15_and_64 | 15-64岁人口数(人口抽样调查) | 数字 | 人 | | +| age_over_65 | 65岁及以上人口数(人口抽样调查) | 数字 | 人 | | +| dependency_ratio | 总抚养比(人口抽样调查) | 数字 | % | 总抚养比也称总负担系数。指人口总体中非劳动年龄人口数与劳动年龄人口数之比。通常用百分比表示。说明每100名劳动年龄人口大致要负担多少名非劳动年龄人口。用于从人口角度反映人口与经济发展的基本关系。 | +| children_dependency_ratio | 少年儿童抚养比(人口抽样调查) | 数字 | % | 少年儿童抚养比也称少年儿童抚养系数。指某一人口中少年儿童人口数与劳动年龄人口数之比。通常用百分比表示。以反映每100名劳动年龄人口要负担多少名少年儿童。 | +| old_dependency_ratio | 老年人口抚养比(人口抽样调查) | 数字 | % | 老年人口抚养比也称老年人口抚养系数。指某一人口中老年人口数与劳动年龄人口数之比。通常用百分比表示。用以表明每100名劳动年龄人口要负担多少名老年人。老年人口抚养比是从经济角度反映人口老化社会后果的指标之一。 | + +#### 各地区按性别和婚姻状况分的人口表(年度) + +表名:MAC_AREA_POP_MARITAL + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | | | | +| stat_year | 统计年份 | | | YYYY | +| area_code | 地区代码 | | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | | | | +| age_over_15 | 15岁及以上人口数(人口抽样调查) | | 人 | | +| male_age_over_15 | 15岁及以上男性人口数(人口抽样调查) | | 人 | | +| female_age_over_15 | 15岁及以上女性人口数(人口抽样调查) | | 人 | | +| never_married | 15岁及以上未婚人口数(人口抽样调查) | | 人 | | +| male_never_married | 15岁及以上男性未婚人口数(人口抽样调查) | | 人 | | +| female_never_married | 15岁及以上女性未婚人口数(人口抽样调查) | | 人 | | +| first_married | 15岁及以上初婚有配偶人口数(人口抽样调查) | | 人 | | +| male_first_married | 15岁及以上男性初婚有配偶人口数(人口抽样调查) | | 人 | | +| female_first_married | 15岁及以上女性初婚有配偶人口数(人口抽样调查) | | 人 | | +| remarried | 15岁及以上再婚有配偶人口数(人口抽样调查) | | 人 | | +| male_remarried | 15岁及以上男性再婚有配偶人口数(人口抽样调查) | | 人 | | +| female_remarried | 15岁及以上女性再婚有配偶人口数(人口抽样调查) | | 人 | | +| divorced | 15岁及以上离婚人口数(人口抽样调查) | | 人 | | +| male_divorced | 15岁及以上男性离婚人口数(人口抽样调查) | | 人 | | +| female_divorced | 15岁及以上女性离婚人口数(人口抽样调查) | | 人 | | +| widowed | 15岁及以上丧偶人口数(人口抽样调查) | | 人 | | +| male_widowed | 15岁及以上男性丧偶人口数(人口抽样调查) | | 人 | | +| female_widowed | 15岁及以上女性丧偶人口数(人口抽样调查) | | 人 | | + +#### 各地区按性别和受教育程度分人口情况表(年度) + +表名:MAC_AREA_POP_EDUCATION + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| age_over_6 | 6岁及6岁以上人口数(人口抽样调查) | 数字 | 人 | | +| male_age_over_6 | 6岁及6岁以上男性人口数(人口抽样调查) | 数字 | 人 | | +| female_age_over_6 | 6岁及6岁以上女性人口数(人口抽样调查) | 数字 | 人 | | +| no_schooling | 6岁及6岁以上未上过学人口数(人口抽样调查) | 数字 | 人 | | +| male_no_schooling | 6岁及6岁以上未上过学男性人口数(人口抽样调查) | 数字 | 人 | | +| female_no_schooling | 6岁及6岁以上未上过学女性人口数(人口抽样调查) | 数字 | 人 | | +| primary_school | 6岁及6岁以上小学人口数(人口抽样调查) | 数字 | 人 | 小学指接受的最高一级教育为小学,无论其是否在校、毕业、肄业或辍学 | +| male_primary_school | 6岁及6岁以上小学男性人口数(人口抽样调查) | 数字 | 人 | | +| female_primary_school | 6岁及6岁以上小学女性人口数(人口抽样调查) | 数字 | 人 | | +| junior_secondary_school | 6岁及6岁以上初中人口数(人口抽样调查) | 数字 | 人 | 初中指接受的最高一级教育为初中,无论其是否在校、毕业、肄业或辍学。相当于初中程度的技工学校,也属于此类。 | +| male_junior_secondary_school | 6岁及6岁以上初中男性人口数(人口抽样调查) | 数字 | 人 | | +| female_junior_secondary_school | 6岁及6岁以上初中女性人口数(人口抽样调查) | 数字 | 人 | | +| senior_secondary_school | 6岁及6岁以上高中人口数(人口抽样调查) | 数字 | 人 | 高中指接受的最高一级教育为普通高中、职业高中和中等专业学校,无论其是否在校、毕业、肄业或辍学。相当于高中程度的技工学校,也属于此类。 | +| male_senior_secondary_school | 6岁及6岁以上高中男性人口数(人口抽样调查) | 数字 | 人 | | +| female_senior_secondary_school | 6岁及6岁以上高中女性人口数(人口抽样调查) | 数字 | 人 | | +| college | 6岁及6岁以上大专及以上人口数(人口抽样调查) | 数字 | 人 | 大学专科指接受的最高一级教育为大学专科。在普通高等学校学习大学专科的,无论其是否在校、毕业、肄业或辍学,都属于此类。 | +| male_college | 6岁及6岁以上大专及以上男性人口数(人口抽样调查) | 数字 | 人 | | +| female_college | 6岁及6岁以上大专及以上女性人口数(人口抽样调查) | 数字 | 人 | | + +#### 各地区按性别分的15岁及以上文盲人口表(年度) + +表名:MAC_AREA_POP_ILLITERATE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| age_over_15 | 15岁及以上人口数(人口抽样调查) | 数字 | 人 | | +| male_age_over_15 | 15岁及以上男性人口数(人口抽样调查) | 数字 | 人 | | +| female_age_over_15 | 15岁及以上女性人口数(人口抽样调查) | 数字 | 人 | | +| illiterate | 15岁及以上文盲人口数(人口抽样调查) | 数字 | 人 | | +| male_illiterate | 15岁及以上男性文盲人口数(人口抽样调查) | 数字 | 人 | | +| female_illiterate | 15岁及以上女性文盲人口数(人口抽样调查) | 数字 | 人 | | + +#### 各地区按家庭户规模分的户数表(年度) + +表名:MAC_AREA_FAMILY_HOUSEHOLD + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| area_code | 地区代码 | 文本 | | 关联:MAC_AREA_DIV.area_code | +| area_name | 地区名称 | 文本 | | | +| family_household | 家庭户户数(人口抽样调查) | 数字 | 户 | | +| one_persons | 一人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| two_persons | 二人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| three_persons | 三人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| four_persons | 四人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| five_persons | 五人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| six_persons | 六人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| seven_persons | 七人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| eight_persons | 八人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| nine_persons | 九人户家庭户户数(人口抽样调查) | 数字 | 户 | | +| over_ten_persons | 十人及以上户家庭户户数(人口抽样调查) | 数字 | 户 | | + +#### 育龄妇女分年龄生育状况表(年度) + +表名:MAC_POP_FERTILITY_RATE + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| age | 年龄段 | 文本 | | | +| rate | 该年龄段育龄妇女占抽样人数比例 | 数字 | | | +| population | 该年龄段平均育龄妇女人数(人口抽样调查) | 数字 | 人 | | +| births | 该年龄段育龄妇女生育孩子的人数(人口抽样调查) | 数字 | 人 | | +| first_births | 该年龄段育龄妇女第一孩次出生人口数(人口抽样调查) | 数字 | 人 | | +| second_births | 该年龄段育龄妇女第二孩次出生人口数(人口抽样调查) | 数字 | 人 | | +| third_births | 该年龄段育龄妇女第三孩次及以上出生人口数(人口抽样调查) | 数字 | 人 | | +| fertility_rate | 该年龄段育龄妇女的生育率(人口抽样调查) | 数字 | ‰ | | +| first_fertility_rate | 该年龄段育龄妇女第一孩次生育率(人口抽样调查) | 数字 | ‰ | | +| second_fertility_rate | 该年龄段育龄妇女第二孩次生育率(人口抽样调查) | 数字 | ‰ | | +| third_fertility_rate | 该年龄段育龄妇女第三孩次及以上生育率(人口抽样调查) | 数字 | ‰ | | + +#### 人口年龄结构和抚养比例表(年度) + +表名:MAC_POPULATION_DEPENDENCY + +| 列名 | 列的含义 | 类型 | 单位 | 说明 | +| --- | --- | --- | --- | --- | +| id | id | 数字 | | | +| stat_year | 统计年份 | 文本 | | YYYY | +| population | 人口数(人口抽样调查) | 数字 | 人 | | +| age_between_0_and_14 | 0-14岁人口数(人口抽样调查) | 数字 | 人 | | +| age_between_15_and_64 | 15-64岁人口数(人口抽样调查) | 数字 | 人 | | +| age_over_65 | 65岁及以上人口数(人口抽样调查) | 数字 | 人 | | +| dependency_ratio | 总抚养比(人口抽样调查) | 数字 | % | | +| children_dependency_ratio | 少年儿童抚养比(人口抽样调查) | 数字 | % | | +| old_dependency_ratio | 老年人口抚养比(人口抽样调查) | 数字 | % | | diff --git "a/docs/joinquant-api/JQ_\345\270\270\350\247\201\351\227\256\351\242\230.md" "b/docs/joinquant-api/JQ_\345\270\270\350\247\201\351\227\256\351\242\230.md" new file mode 100644 index 0000000..4aaa240 --- /dev/null +++ "b/docs/joinquant-api/JQ_\345\270\270\350\247\201\351\227\256\351\242\230.md" @@ -0,0 +1,770 @@ +## 常见问题 + +感谢您使用JoinQuant(聚宽)量化交易平台,以下内容希望解答您对JoinQuant的疑问。 + 如果您想了解我们提供的API如何使用,请查看[API文档](https://www.joinquant.com/help/api/index)。 + 如果以下内容仍没有解决您的问题,请您通过[社区提问](https://www.joinquant.com/community#tag=faq)的方式告诉我们,谢谢。 + +[常见Bug或者警告>>>](https://www.joinquant.com/view/community/detail/6cab768c4b2fa259385a45927089367f) + +### 关于JoinQuant + +### 数据 + +#### JoinQuant提供哪些数据及数据更新频率 + +[提供的数据及更新频率](https://www.joinquant.com/help/api/help?name=JQData#JQData%E6%8F%90%E4%BE%9B%E5%93%AA%E4%BA%9B%E6%95%B0%E6%8D%AE%E5%8F%8A%E6%95%B0%E6%8D%AE%E6%9B%B4%E6%96%B0%E9%A2%91%E7%8E%87) + +1. 股票数据:我们拥有所有A股上市公司2005年以来的股票行情数据、[市值数据](https://www.joinquant.com/data/dict/fundamentals#市值数据)、[财务数据](https://www.joinquant.com/data/dict/fundamentals)、[上市公司基本信息](https://www.joinquant.com/help/api/help?name=Stock#上市公司概况)、[融资融券信息](https://www.joinquant.com/help/api/help?name=Stock#获取股票的融资融券信息)等。为了避免[幸存者偏差](https://baike.baidu.com/item/%E5%B9%B8%E5%AD%98%E8%80%85%E5%81%8F%E5%B7%AE/10313799?fr=aladdin),我们包括了已经退市的股票数据(但是不包含2005年之前退市的股票)。 +2. 基金数据:我们目前提供了600多种在交易所上市的基金的行情、净值等数据,包含[ETF](https://www.joinquant.com/data/dict/fundData#etf列表)、[LOF](https://www.joinquant.com/data/dict/fundData#lof列表)、[分级A/B基金](https://www.joinquant.com/data/dict/fundData#分级基金列表)以及[货币基金](https://www.joinquant.com/help/api/help?name=fund#货币基金列表)的完整的行情、净值数据等,请点击[基金数据](https://www.joinquant.com/data/dict/fundData)查看。 +3. 金融期货数据:我们提供中金所推出的所有[金融期货产品](https://www.joinquant.com/data/dict/sfData)的行情数据,并包含历史产品的数据。 +4. 股票指数:我们支持近600种[股票指数](https://www.joinquant.com/data/dict/indexData)数据,包括指数的行情数据以及成分股数据。为了避免未来函数,我们支持获取历史任意时刻的指数成分股信息,具体见[get_index_stocks](https://www.joinquant.com/help/api/help?name=api#get_index_stocks)和[get_index_weights](https://www.joinquant.com/help/api/help?name=api#get_index_weights)。注意:指数不能买卖 +5. 行业板块:我们支持按行业、按板块选股,具体见[get_industry_stocks](https://www.joinquant.com/help/api/help?name=api#get_industry_stocks) +6. 概念板块:我们支持按概念板块选股,具体见[get_concept_stocks](https://www.joinquant.com/help/api/help?name=api#get_concept_stocks) +7. 宏观数据:我们提供全方位的[宏观数据](https://www.joinquant.com/data/dict/macroData),为投资者决策提供有力数据支持。 +8. 所有的行情数据我们均已处理好前复权信息。 +9. 我们当日的回测数据会在收盘后通过多数据源进行校验,并在T+1(第二天)的00:01更新。 + +#### JoinQuant提供的数据支持下载吗? + +JoinQuant提供的数据可以在官网的回测、模拟交易、研究模块使用; + 本地下载请使用[jqdatasdk](https://www.joinquant.com/help/api/help?name=JQData#JQData-%E6%9C%AC%E5%9C%B0%E9%87%8F%E5%8C%96%E6%95%B0%E6%8D%AE%E8%AF%B4%E6%98%8E%E4%B9%A6)。 + +#### 数据后缀是怎么定义的? + +市场后缀按照 [ISO10383 标准](https://www.iso20022.org/market-identifier-codes) + +| 交易市场 | 代码后缀 | 示例代码 | 证券简称 | +| --- | --- | --- | --- | +| 上海证券交易所 | .XSHG | '600519.XSHG' | 贵州茅台 | +| 深圳证券交易所 | .XSHE | '000001.XSHE' | 平安银行 | +| 中金所 | .CCFX | 'IC9999.CCFX' | 中证500主力合约 | +| 大商所 | .XDCE | 'A9999.XDCE' | 豆一主力合约 | +| 上期所 | .XSGE | 'AU9999.XSGE' | 黄金主力合约 | +| 郑商所 | .XZCE | 'CY8888.XZCE' | 棉纱期货指数 | +| 上海国际能源期货交易所 | .XINE | 'SC9999.XINE' | 原油主力合约 | +| 广州期货交易所 | .GFEX | 'SI9999.GFEX' | 工业硅主力合约 | + +- 场外基金:代码后缀为.OF,例如银河沪深300价值指数的代码为519671.OF +- 期权和对应的标的后缀相同,具体的可以查看[期权合约资料](https://www.joinquant.com/help/api/help?name=Option#%E8%8E%B7%E5%8F%96%E6%9C%9F%E6%9D%83%E5%90%88%E7%BA%A6%E8%B5%84%E6%96%99) +- 其他数据后缀请查询[数据字典](https://www.joinquant.com/data) + +#### 发现数据有问题怎么办? + +(1)查看下我们的[数据常见疑问汇总](https://www.joinquant.com/view/community/detail/1226a48b1f9b7bd90dc3516feea8b5cc?type=2),也许您认为的问题已经有说明了; + (2)在[社区发帖](https://www.joinquant.com/view/community/list?listType=2&type=isNew&tags=),详细描述下您的问题,包括以下内容: + +- 具体是什么问题; +- 发下查询语句; +- 发下查询结果并标记下觉得有问题的地方; +- 发下对比截图; +- [发帖参考贴](https://www.joinquant.com/post/15582?tag=algorithm) + +#### 不同平台的行情数据或者财务数据不同 + +行情数据不同 + (1)目前我们默认提供的是前复权数据,不复权数据可以将get_price的fq设置为None获取; + (2)不同平台的复权数据源或者算法不同,导致前复权及后复权数据的不同,具体的可以多对比一些平台就了解了; + (3)fq不为None时的成交量数据我们也做了复权处理,需要不复权数据可以将fq设置为None; + (4)更多行情数据的说明请查看[数据常见疑问汇总](https://www.joinquant.com/view/community/detail/1226a48b1f9b7bd90dc3516feea8b5cc?type=2) + +财务数据不同 + (1)财务指标数据有单季度和报告期两种,一般财经网站上提供的财务指标数据都是上市公司披露的原始报告期数据,所以请先确定对比的是相同的数据; + (2)我们同时提供的有单季度的和报告期的数据,[单季度](https://www.joinquant.com/help/api/help?name=Stock#%E8%8E%B7%E5%8F%96%E5%8D%95%E5%AD%A3%E5%BA%A6%E5%B9%B4%E5%BA%A6%E8%B4%A2%E5%8A%A1%E6%95%B0%E6%8D%AE)和[报告期](https://www.joinquant.com/help/api/help?name=Stock#%E8%8E%B7%E5%8F%96%E6%8A%A5%E5%91%8A%E6%9C%9F%E8%B4%A2%E5%8A%A1%E6%95%B0%E6%8D%AE)的财务数据,您也可以分别查看使用。例如可以通过下面的方式获取报告期的eps: + + (3)单季度财务数据提供上市之后的数据(不包含上市之前的),报告期有上市前的财务数据;核查时请注意上市时间; + (4)上市公司公布财报分四种,一季度报、中期年度报、前三季度报、全年年报,统计的周期跨度分别为第一季度、前两个季度、前三个季度、全年,而聚宽考虑到量化分析,所以默认查询的财务指标数据是单季度的;例如[同花顺](http://stockpage.10jqka.com.cn/000759/finance/#finance)上的单季度数据查询方法,选择按单季度统计,如下图: (5)市值(valuation)数据中market_cap、pb_ratio、pe_ratio、ps_ratio等由于算法或者数据源不同,各个平台数据不一定完全相同; + (6)公告没有披露的数据为空值; + +查询过程有问题的话,请查看[数据常见疑问汇总](https://www.joinquant.com/view/community/detail/1226a48b1f9b7bd90dc3516feea8b5cc?type=2) + +还有问题请在聚宽社区发帖,详细描述下您的问题,并附上对应的查询代码、结果截图以及预期结果,我们核查下答复您。 + +#### JQData,jqdatasdk和jqdata的关系 + +(1)JQData和jqdatasdk是同一个产品不同的名称,是一个Python库(或模块),是聚宽提供的数据接口,在您自己搭建的本地环境中使用(可以脱离官网独立使用),具体方法见[JQData的API](https://www.joinquant.com/help/api/help?name=JQData); + (2)jqdata是官网的数据产品,主要在官网使用,具体使用方法见[官网的API](https://www.joinquant.com/help/api/help?name=api); + (3)jqdata和jqdatasdk中的获取数据的函数及使用方法稍微不同,使用对应的API就没问题;再强调一下,**jqdatasdk不能在官网的回测、模拟、研究中使用** + +#### 如何获取行业及概念板块的行情数据及pe,pb等数据 + +(1)概念板块目前只可以通过[get_concept_stocks](https://www.joinquant.com/help/api/help?name=api#%E6%95%B0%E6%8D%AE%E8%8E%B7%E5%8F%96%E5%87%BD%E6%95%B0)获取某个概念板块包含哪些股票; + (2)目前没有概念板块的行情数据,敬请期待; + (3)可以通过[get_industry_stocks](https://www.joinquant.com/help/api/help?name=api#%E6%95%B0%E6%8D%AE%E8%8E%B7%E5%8F%96%E5%87%BD%E6%95%B0)获取某个行业有哪些股票,也可以通过[get_industry](https://www.joinquant.com/help/api/help?name=api#%E6%95%B0%E6%8D%AE%E8%8E%B7%E5%8F%96%E5%87%BD%E6%95%B0)查询股票属于哪个行业; + (4)目前不支持行业的行情数据,及指数的PE/股息率 + +#### 有关期货主力合约或者指数与其他平台问题 + +### 为什么有时看到的期货主力合约和其他平台不一致,是怎么判断的,什么时候更新的 + +(1)因此我们根据**持仓量(不是成交量)**对期货合约进行拼接,形成主力连续合约; + + (2)主力合约根据T-2和T-1的持仓量生成,在T-1的晚上、也即T日的夜盘开始前就切换到新的主力合约; + (3)wind等显示主连的数据及主力合约 + +#### JQData使用过程过程有问题怎么处理? + +(1)有关账户、权限、价格等方面,可以查看[JQData文档](https://www.joinquant.com/help/api/doc?name=logon&id=9830); + (2)查看[JQData常见问题](https://www.joinquant.com/view/community/detail/16925); + (3)在聚宽社区中[社区提问题模块](https://www.joinquant.com/view/community/list/2?type=isNew&tags=)发帖提问,详细描述下问题,发下对应的测试代码及结果截图,我们核查后答复您。 + +### 回测 + +爱分享的小伙伴已经在社区分享了[许多策略](https://www.joinquant.com/community/algorithm),您可以一键克隆免费使用。 + +#### 回测的作用? + +策略有效体现了您的交易思想,通过历史数据的回测,可以检验策略的有效性。 + +#### 回测可以使用哪些数据? + +回测可以免费使用 JoinQuant 提供的所有数据。[点击这里](https://www.joinquant.com/data)了解更多信息。 + +回测使用的交易数据有一天的延时,即当天的交易数据在第二天的0:01分更新。 + +延时原因:回测使用的交易数据基于Level-2行情数据,Level-2级别的完整交易数据需要收盘后才能获得,目前市场上没有权威的行情数据,为了保证数据的准确性,我们购买了多个数据提供商的数据,经过一系列处理后才投入使用。 + +#### 如何创建并运行策略? + +通过策略列表页进入策略详情页后,按如下步骤编写策略,运行回测: + +(1)进入[策略列表](https://www.joinquant.com/algorithm/index/list)页面 + +您可以看到一些默认的策略,您可以直接打开这些策略,编译运行或者运行回测。 + +(2)点击新建策略,编辑策略,编译运行,快速回测 + +点击新建策略后会出现一些模板策略,您可以直接运行这些策略、修改这些策略或者删除模板策略重新写 + +(3)完整回测 + +#### 如何编写一个最简单的策略? + +- 参照[示例策略](https://www.joinquant.com/algorithm/index/new),修改代码; +- 从[社区](https://www.joinquant.com/community/algorithm)克隆一个您感兴趣的策略; +- [新建一个策略](https://www.joinquant.com/algorithm/index/list),从头开始实现自己的交易思路; + +如果您想要更详细的了解如何写策略,[点击这里](https://www.joinquant.com/api#开始写策略) + +#### 编译运行和运行回测的区别? + +编译运行便于您快速调试代码,检查代码中的错误,策略的运行结果也能更快的展示,仅统计了基准收益、Total Returns(策略总收益)、Alpha(阿尔法)、Beta(贝塔)、Sharpe(夏普比率)、Max Drawdown(最大回撤)等。 + +运行回测是一次完整的回测,不仅包括编译运行中已经统计的指标,还包括交易详情、每日持仓&收益等信息。 + +#### 回测时Cash(可用资金)为负是因为什么? + +市价单时, 为了让用户能够满仓买入一支股票, 我们并不是按照涨停价计算可买的数量, 而是按照当时的实际价格计算的, 如果按照涨停价计算可买的数量的话, 可能总是只能有90%的仓位. 而成交价格因为滑点的原因可能比市价高一些. 导致成交金额超出了可用资金,与实际情况有些出入. 这个也是导致仓位有时大于100%的原因。 + +#### 多次回测的结果不一样, 可能是什么原因? + +(1)比较的前提: 开始/结束日期、起始资金、策略及运行频率必须相同;运行环境必须完全相同,例如都是在聚宽官网的Python3环境运行;可以在聚宽官网回测列表中,回测对比和代码对比工具对比查看 + + (2)策略的原因(在相同条件下多次回测比较结果是否相同来排除): + +- 代码中有随机因素,包括但不限于这些例子:(A)遍历 dict中的元素. 因为dict 是无序存储的, 每次遍历的顺序可能不一样;(B)集合在Python内部通过哈希表实现,其本征无序,输出时所显示的顺序具有随机性;(c)使用的一些Python模块的函数是随机,例如一些机器学习算法;(d)[MySQL、sqlalchemy等数据查询出现的随机因素](https://www.joinquant.com/view/community/detail/7221e4e7cef20a72bd21b0bd65b7fe6c?type=2) +- 不稳定的排序,比如多列的DataFrame, 根据一列进行排序, 每次排序后最终的DataFrame可能是不一样的; +- 没有采用真实价格回测, 而且建立回测的日期不一样,因为回测中看到的价格可能是根据建立回测的日期做前复权处理的,如果建立的两个日期之间有股票发生了除权, 而策略又操作了这只股票, 则会可能会导致回测不一样; +- Python环境的问题,例如官网的python2和python3环境,这两个一些地方不同(例如:Python2 中除法只保留整数位,除法这个问题加入后面代码可以解决: from **future** import division (注意future前和后面都有两个下划线)) + +(3)参考:模拟交易和回测的差别,模拟交易和回测的差别 + +- [模拟交易和回测的差别](https://www.joinquant.com/help/api/help?name=api#%E6%A8%A1%E6%8B%9F%E4%BA%A4%E6%98%93%E5%92%8C%E5%9B%9E%E6%B5%8B%E7%9A%84%E5%B7%AE%E5%88%AB) + +#### 参数优化及并行回测 + +#### 参数优化及并行回测参考教程 + +- [多回测运行和参数分析框架](https://www.joinquant.com/view/community/detail/80ee3db068254e1e9aadbdd9b2420270?type=1) +- [多回测运行和参数分析框架(Python3)](https://www.joinquant.com/view/community/detail/aaaf43b0b39a46f1600cbf44f3cf8513) +- [在投资研究中调用回测或者模拟交易,多基准绘图](https://www.joinquant.com/view/community/detail/872b885345bbdf13d2138580a7baa066) +- [研究中写策略并回测](https://www.joinquant.com/view/community/detail/6342bc6bd43e371bda10f7402359b805) + +#### 区分create_backtest(策略ID)和get_backtest(回测ID) + +- 策略ID(algorithmId):每个策略的唯一标识,可以为此策略设置不同的回测条件,得到不同的回测ID + +- **聚宽官网** +- 回测ID(backtestId):每个回测的唯一标识 + +- **聚宽官网** +- 模拟交易ID(backtestId):每个模拟交易的唯一标识 + +- **聚宽官网** +- create_backtest:在研究中创建回测,需要使用策略ID(algorithmId) +- get_backtest:在研究中获取回测或者模拟交易的信息,获取回测信息使用回测ID(backtestId),获取模拟交易信息使用模拟交易ID(backtestId) +- 三个ID的关系 + +- 策略ID设置不同的回测条件(开始时间、资金、频率),会得到不同的回测结果; +- 每组回测条件下的回测ID是唯一的 +- 可以根据回测结果创建模拟交易,[创建模拟交易的方法](https://www.joinquant.com/help/api/help?name=faq#%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E6%A8%A1%E6%8B%9F%E4%BA%A4%E6%98%93%EF%BC%9F) + +#### 回测运行比较慢 + +回测时耗费的时间和您的网速、策略、运行频率、回测时间区间有关: + +- 整个回测过程是发送请求到服务器,然后在网页上显示回测结果,如果您网络比较慢的话,会有影响; +- 运行频率:一般的数据量,天 < 分钟 < tick,因此一般的tick级策略耗费的时间相对比较长,这个是正常的; +- 回测区间:这个当然是回测的时间越短,耗时越短了; +- 具体策略:可以参考[性能分析](https://www.joinquant.com/help/api/help?name=api#enable_profile),查看下哪部分比较耗费时间,然后优化下策略; + +### 模拟交易 + +模拟交易的数据与实际数据完全同步,您可以通过模拟交易进一步检验策略的有效性。 + +#### 模拟交易运行时间 + +时限为限时的模拟交易,及VIP/SVIP的全部模拟交易,在正常时间实时运行; + +普通用户时限为永久的模拟交易,统一在收盘后延时运行(2019-12-01起)。 延时运行的模拟交易,交易数据统一在第二天开盘前更新,并且无法开启微信通知,分钟级、Tick级模拟交易不展示当日收益。运行时间的变更将会在模拟交易下一次运行时生效。如果您想在交易时间实时运行模拟交易,可以 + +1,[使用积分兑换限时模拟交易位](https://www.joinquant.com/view/credits/detail/8),限时模拟交易位到期后将会关闭,无法再次开启,请注意及时续费 + +2,[成为VIP或SVIP](https://www.joinquant.com/view/vip/charge),不仅可以实时运行模拟交易,还可以在高峰排队时优先运行,VIP/SVIP到期后将会恢复原先的运行时间 + +#### 模拟交易使用什么数据? + +模拟交易使用的数据是实时更新的Level-1数据,目前模拟交易数据有10s延时。 延时原因:为了保证数据的准确性,我们做了一系列处理。 + +#### 如何进行模拟交易? + +您可以通过以下两种方法进行模拟交易(推荐使用方法一), **创建模拟交易的前提是已经运行了回测,如果没有回测的话,请先[创建回测](https://www.joinquant.com/help/api/help?name=faq#%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E5%B9%B6%E8%BF%90%E8%A1%8C%E7%AD%96%E7%95%A5%EF%BC%9F)** + +##### 方法一,使用回测结果创建 + +找到需要创建模拟交易的回测,点击模拟交易,输入参数,点击确定 + +##### 方法二,在模拟交易列表中创建 + +1.进入[模拟交易列表](https://www.joinquant.com/algorithm/trade/list) + +2.点击新建模拟交易,在跳出的窗口中依次输入交易名称和初始资金,并选择策略及其回测后点击确定。 + +#### 如果提示没有可用的模拟交易位,请点击[模拟交易列表](https://www.joinquant.com/algorithm/trade/list?process=1)最下面的**获取新的模拟交易位**,使用积分兑换模拟交易位;请注意模拟交易位是和频率有关的,需要选择对应运行频率的模拟交易位。 + +#### 模拟交易支持哪些操作? + +- 模拟交易支持暂停、重启、关闭; +- 模拟交易暂停后,不会再执行策略代码,不会产生交易信号,收益曲线还会一直画; +- 模拟交易重启后,策略恢复执行,重启会从当前时间(执行重启操作的时间)开始执行,注意与重跑的区别; +- 模拟交易关闭后,模拟交易将彻底结束,无法再次打开; + +#### 如何替换模拟交易的代码? + +您可以根据需要替换模拟交易的代码,替换代码后,我们按照新的代码计算累计收益、持仓、下单等内容,替代之前的各项指标、持仓、下单不会使用新的代码重新计算。 为了保证新代码的正确性,替换代码时只能选择当前模拟交易对应策略的回测详情;需要先回测再创建模拟交易。 旧代码中的全局变量(包括全局对象g)会保留,并应用到新代码中,所以请您确保新代码使用旧代码的全局变量不会出现问题;如果不希望使用旧的全局变量,您可以定义新的全局变量。 + +替换步骤如下: + +- 仔细查看[替换代码注意事项](https://www.joinquant.com/help/api/help?name=api#模拟盘注意事项) +- 仔细查看[怎样替换代码](https://www.joinquant.com/view/community/detail/e5cc8c36bcee96bfe6886153f54a46cf) +- 找到此模拟交易对应的策略,修改策略后并**回测**; +- 在模拟交易页面依次点击:代码--->替换代码; +- 在跳出的窗口中选择需要替换的**回测**,并点击确定; +- 查看替换后的代码。 + +替换代码与修改代码的区别 + +- 修改代码少了回测的步骤,适用于修改量比较少且不容易出错的情况; +- 如果对修改后的代码没有把握的话,建议先回测再替换代码; +- 修改代码如果要修改全局变量、修改函数运行时间、添加运行函数等,仍然需要after_code_changed + +替换代码后,代码何时运行 + +- 这个和具体策略的状态(是否已经暂停或者运行失败了)、是不是实时运行的策略、频率(分钟还是天)、代码、替换时间(盘中还是盘后)有关; +- 一般的正常运行模拟,替换代码后,会在原代码下一次运行时运行新代码(例如分钟级别的盘中替换,下一分钟就会运行新代码;天级别的一般是run_daily中下一个运行时间或者下一个交易日); +- 分钟级别策略可以重新替换代码,在after_code_changed中不加任何判断条件的前提下打印当前时间; +- 仍有疑问可以在确定正常运行分钟级别策略前提下,在社区发帖提供具体信息讨论:(1)设置页面,策略信息部分;(2)设置页面,替换代码记录;(3)代码页面,策略的初始化部分和替换代码部分代码;(4)策略日志; +- 不确定的话,可以关闭使用新代码新建模拟; + +替换代码示例 + +``` + +# 初始化函数,设定基准等等 +def initialize(context): + # 设定沪深300作为基准 + set_benchmark('000300.XSHG') + # 开启动态复权模式(真实价格) + set_option('use_real_price', True) + # 将日志级别设置为error + log.set_level('order', 'error') + + # 设置全局变量 + g.day = 1 + + # 开盘时运行 + run_daily(market_open, time='09:30', reference_security='000300.XSHG') + # 快收盘时运行 + run_daily(close_market_end, time='14:50', reference_security='000300.XSHG') + +## 开盘时运行函数 +def market_open(context): + print(context.current_dt) + print(g.day) + print('='*50) + +## 快收盘时运行 +def close_market_end(context): + print("注意注意,快收盘了") + print(g.day) + print('='*50) + +########################### 上面为替换代码前原始代码,下面为替换代码添加 ########################### +## 收盘后运行函数,后来添加 +def after_market_open(context): + print("收盘啦,洗洗睡...") + print('='*50) + +def after_code_changed(context): + # 先取消之前run_daily中注册的函数,否则之前注册的9:30仍然会运行 + unschedule_all() + # 修改market_open的运行时间为10:00 + run_daily(market_open, time='10:00', reference_security='000300.XSHG') + # 快收盘时运行(再次注册,因为被unschedule_all取消了) + run_daily(close_market_end, time='14:50', reference_security='000300.XSHG') + # 添加新写的函数after_market_open + run_daily(after_market_open, time='15:30', reference_security='000300.XSHG') + # 修改全局变量g.day + g.day = 888 + # 将日志级别设置为debug + log.set_level('order', 'debug') +``` + +#### 如何重新设置日志级别(替换代码) + +日志级别的说明: + 1.如果还没有开启模拟交易:建议使用默认的日志级别(不用设置日志级别)或者设置日志级别为debug,具体方法为log.set_level('order', 'debug'); + 2.如果已经开启模拟交易,且在初始化中设置日志级别为error,可以通过替换代码的方式实现: + (1)如果您之前替换过代码,策略中有after_code_changed,直接在after_code_changed中添加log.set_level('order', 'debug')即可; + (2)如果您之前没有替换过代码,需要在策略中添加after_code_changed,并且在after_code_changed中添加log.set_level('order', 'debug'),最终形式为: + +``` + +def after_code_changed(context): + # 设置日志级别为debug + log.set_level('order', 'debug') +``` + +(3)替换代码的方法 + +示例代码如下: + +``` + +# 初始化函数,设定基准等等 +def initialize(context): + # 推荐:设置日志级别为debug(或者不设置日志级别,使用系统推荐的) + log.set_level('order', 'debug') + + # 不推荐:设置日志级别为error(为了可以方便地看到您的问题,建议不要这样设置) + # log.set_level('order', 'error') + + # 开盘前运行 + run_daily(before_market_open, time='09:00', reference_security='000300.XSHG') + +## 开盘前运行函数 +def before_market_open(context): + print(context.current_dt) + +# 替换代码,设置日志级别为debug +def after_code_changed(context): + # 设置日志级别为debug + log.set_level('order', 'debug') + print("已经设置日志级别为debug啦!") +``` + +(4)更多的替换代码方法 + [如何替换模拟交易的代码](https://www.joinquant.com/help/api/help?name=faq#%E5%A6%82%E4%BD%95%E6%9B%BF%E6%8D%A2%E6%A8%A1%E6%8B%9F%E4%BA%A4%E6%98%93%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%9F) + [怎样替换代码](https://www.joinquant.com/view/community/detail/0fd4ee9e029c205c4beb48547c582f00) + [替换代码及注意事项](https://ycjq.95358.com/post/25?tag=new) + +#### 如何开启微信通知? + +开启微信通知后,您可以通过微信接收模拟交易的下单信号,也可以通过[send_message](https://www.joinquant.com/help/api/help?name=api#%E5%85%B6%E4%BB%96%E5%87%BD%E6%95%B0)发送自定义微信内容。 + 回测不支持微信通知; + 盘中开启微信通知,当日不推送微信信号; + 模拟交易的下单信号由腾讯微信发送,可能有30s内的延迟; + 延时模拟交易不支持微信通知,[开启实时运行](https://www.joinquant.com/help/api/help?name=faq#%E5%BB%B6%E6%97%B6%E8%BF%90%E8%A1%8C) + 默认每天发送自定义消息条数为5,[获取更多每日发送自定义消息数据](https://www.joinquant.com/view/credits/detail/9d50cc3a6e3ccc073c297403b84c715e) + 未收到微信消息:(1)确定是否已经开启微信通知,且是实时运行的模拟交易;(2)区分模拟交易的下单信号还是自定义消息:下单先检查一下交易详情页面有没有下单记录;自定义需要自己检查策略逻辑是否符合发送条件,还有是否已经超过自定义消息条数。 + +- 开启微信通知步骤如下: + +绑定微信账号并开启微信通知,使用微信扫一扫绑定微信账号。 + 注意:一个JoinQuant账号仅支持绑定一个微信账号,一个微信号也只能和一个聚宽账号绑定 + +- 微信通知示例 + +模拟交易下单信号及异常信号提醒 + +- 替换之前绑定的微信号,请查看下面的如何重新绑定 点击如图箭头所示位置,出现如图所示二维码,扫码后即重新绑定微信。 + +#### 数据有延迟? + +数据有延迟是正常的。即便在同花顺、东方财富等客户端看到的数据也是延迟的数据。 + 因为信息从证券交易所发出,再到数据提供商,再到终端,是存在延时的。 + 我们数据存在的延时是指与交易所发出数据的时刻的延时,并不是与您在客户端看到的数据的延时。 + 可以使用tick级别的数据,基本无延迟; + 本地实时获取数据可以使用[jqdatasdk](https://www.joinquant.com/help/api/help?name=JQData) + +#### 日志提示:策略进程异常退出,可能是什么原因? + +在平台上运行策略时,日志出现该提示,通常是因为策略进程非正常结束所致。以下列举几种可能得原因: + +- 调用 `sys.exit()` 企图退出程序 `sys.exit()` 表示结束进程的运行,在平台上运行时则表示整个回测或者模拟运行结束,这样做是没有必要的。若需退出函数,请使用 `return` 即可。 +- 调用 raise SystemExit 企图抛出异常 当调用 `raise SystemExit` ,实际上它会调用 `sys.exit()` ,所以也可能导致进程非正常退出。 +- 错误的字符串格式化方式 使用 `%` 来格式化字符串,可能会遇到类似 `ValueError: unsupported format character` 的错误,导致进程异常退出。字符串格式化中希望输出 `%` 的情况如: `收益:%s%` ,实际意图是希望输出 `收益:0.1%` ,但用法可能是错误的,因为输出`%`时需要对其进行转义。建议使用 `str.format` 的方式格式化字符串。[点击这里](https://www.joinquant.com/post/5547)了解更多信息。 +- 调用第三方库 部分第三方库是用C语言扩展,直接调用动态库,如:numpy,错误的调用可能会导致**段错误**,这样策略进程也会异常退出。另有部分第三方库可能创建新的进程、线程、锁等,平台资源有限,所以限制了策略进程所能占用的资源,若占用资源过大,可能导致进程崩溃。 +- 其他不正确的代码书写方式 Python 是动态型语言,很多错误的书写方式是语法检测不出来的,如:错误的使用了字符串格式化方式,这些错误只有当代码运行到该处时才会报错,否则表现为正常运行的情况。 + +#### 模拟交易或者回测怎么读取本地文件或者保存文件到研究 + +- 官网的策略是不能读取您本地文件或数据的,但是我们支持您上传到我们的投资研究中读取,同时也支持连网获取数据,具体使用方法请参考教程[在回测及模拟交易中读取研究中数据](https://www.joinquant.com/view/community/detail/19300)。将回测或者模拟的数据保存到研究中中的方法贴中也有说明。 + +#### 模拟交易没有运行? + +- 鼠标放在收益曲线最右侧, 可以看到最后一次运行的时间; +- 查看模拟交易什么时候开始运行的,一般是当天开启,下一个交易日才运行; +- 如果是对run_weekly/run_monthly有疑问, 注意这两个方法设置的是**第几个交易日**, 不是周几/几号 , **开始策略的那一周/月第一个交易日是从开始的那一天开始计算的**, 比如本周w五个交易日, 策略从周二开始, 注册运行run_weekly(day=3) , 第一个交易日是周二, 第三个交易日是周四 ,所以第一周是在周四运行, 往后每周的第三个交易日运行。 +- 刷新下页面; +- 查看模拟交易的状态是否正常,查看日志是否运行失败; +- 在模拟交易列表中查看对应的模拟交易位到期时间,检查是否已经到期,被关闭; +- 是否有一个多月没有登录,如果一个月没有登录官网的话,系统会停掉模拟交易,对应的日志也有说明,登录后,下一个交易日即可运行; +- 查看是不是延时运行的,是的话可以[改为实时运行](https://www.joinquant.com/help/api/help?name=faq#%E5%BB%B6%E6%97%B6%E8%BF%90%E8%A1%8C),然后下一个交易日看看; +- 是不是替换了代码,替换代码注意事项及替换后什么时候生效请查看[如何替换代码](https://www.joinquant.com/help/api/help?name=faq#%E5%A6%82%E4%BD%95%E6%9B%BF%E6%8D%A2%E6%A8%A1%E6%8B%9F%E4%BA%A4%E6%98%93%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%9F); +- 确定下,是不是具体什么时候一定有日志,但是没有出现,**没有日志不一定是没有运行**,不符合打印日志的条件就不会打印;如果输出日志带有判断逻辑,请自行检查打印条件是否触发。 + +#### 模拟交易界面上参数说明 + +- 查看模拟交易的状态是否正常,查看日志是否运行失败; +- 在模拟交易列表中查看对应的模拟交易位到期时间,检查是否已经到期,被关闭; +- 是否有一个多月没有登录,如果一个月没有登录官网的话,系统会停掉模拟交易,对应的日志也有说明,登录后,下一个交易日即可运行; +- 查看模拟交易什么时候开始运行的,一般是当天开启,下一个交易日才运行; +- 确定下,是不是具体什么时候一定有日志,但是没有出现,没有日志不一定是没有运行; + +#### 模拟交易运行时间 + +#### 延时运行 + +- 为了优化资源配置,非会员及非积分兑换的模拟交易位会在第二天凌晨三点后运行,延时模拟交易不支持微信通知; +- 加入[聚宽会员](https://www.joinquant.com/view/vip/charge),模拟交易会实时运行; +- 或者使用积分兑换的模拟交易位,模拟交易也会实时运行;[积分兑换](https://www.joinquant.com/view/credits/list)后,再在对应的模拟交易设置页面,将原来的模拟交易位替换成新的模拟交易位即可 +- 加入会员或者替换交易位后立即生效,下一个交易日实时运行 + +### 投资研究 + +#### 研究的说明 + +#### 研究的作用 + +相较于回测,研究模块提供更大的自由度,您可以更好的验证自己的交易思想。研究模块支持以下功能: + +- 每个Cell独立运行,实时查看结果; +- 更好的代码补全; +- 支持自定义库; +- 支持使用matplotlib/seaborn等Python库画各种统计图; +- 支持Markdown和代码混排,可读性更好; +- Notebook支持分享到社区,方便与大家交流。 +- 查看[使用帮助](https://www.joinquant.com/research)了解更多信息。 +- 支持和回测及模拟交易交互,详情查看API文档 get_backtest和create_backtest。 + +#### 研究内核的选择 + +- 在原有 Python2 与 Python 3 内核的基础上, 我们新增加了一个内核, Python2(PacVer 2.0) ,[查看详情](https://www.joinquant.com/post/10330); +- 其中Python2环境和官网回测环境相同,PacVer中的python模块版本相对比较高; +- 建议使用Python2和/或Python3内核。 + +#### 研究内存、磁盘等不够用怎么办? + +- 在[积分商城](https://www.joinquant.com/view/credits/list)使用积分兑换更多资源 + +#### 上传文件和下载文件是否有限制? + +- 最大上传文件20M,下载文件没有大小限制,但由于我们做了限速会慢一些,要耐心; +- 如果要下载的数据比较大,建议使用我们的[JQData](https://www.joinquant.com/help/api/help?name=JQData) + +#### 研究和回测中都支持哪些第三方Python库 + +- [研究和回测中都支持哪些第三方Python库](https://www.joinquant.com/post/10520) +- 云端目前不支持自定义python库 + +#### 投资研究使用教程 + +[聚宽新手指南-投资研究使用教程](https://www.joinquant.com/view/community/detail/34426b055bc8600cba6abec85d164ea5) + +#### 回测及模拟交易和研究的数据如何交互 + +- 回测中可以使用[read_file](https://www.joinquant.com/help/api/help?name=api#read_file)/[write_file](https://www.joinquant.com/help/api/help?name=api#write_file)读写研究模块的文件。 [如何在回测及模拟交易中读取(或写入)研究中不同格式的文件(csv、json等)及数据](https://www.joinquant.com/view/community/detail/19300) [在回测及模拟交易中获取研究数据](https://www.joinquant.com/view/community/detail/b048a3e848d190ad810c3930fb07a4dc) +- 研究中可以使用create_backtest创建回测,通过get_backtest获取回测及模拟交易的结果 + +#### 投资研究打不开的解决方法 + +- 如果网络正常的话,有可能是文件比较多或者比较大,加载比较慢,稍微等会再看; +- 确定是一个文件打不开,还是所有的问题打不开;一个文件打不开时检查下文件名是不是有特殊字符(&,@,%等); +- 重启研究环境,在[研究根目录](https://www.joinquant.com/research),右侧点击**重启**按钮; +- 进入[研究服务](https://www.joinquant.com/hub/home),先点击红色"停止服务",再点击绿色"我的服务"; +- 退出登录,清空浏览器缓存,再次登录; +- 换个浏览器登录,推荐使用Chrome、火狐、edge; +- 文件太多了,清空回收站,然后再删除一些文件; +- 磁盘数据每三小时更新一次(研究文件太多,统计所有研究文件数及大小需要时间及资源),删除三小时后再重启查看; +- 还有问题,请使用官网右下角在线客服系统,联系或者留言技术人员,并提供您的注册手机号; +- 注意:研究环境不要随意安装Python库/模块。 +- 如果因为ipynb文件中, 内容输出过多导致页面无法正常加载(个别ipynb打开后无内容但是其他ipynb或者新建的文件可正常打开运行),可使用以下方法清空ipynb的输出内容建立一个副本 : + +``` + +import json +# 旧notebook文件路径 +file_path = 'path_to_your_notebook.ipynb' + +# 加载原始.ipynb文件 +with open(file_path, 'r', encoding='utf-8') as file: + notebook = json.load(file) + +# 遍历所有单元格并清空code单元格的输出和执行计数 +for cell in notebook['cells']: + if cell['cell_type'] == 'code': + cell['outputs'] = [] + cell['execution_count'] = None + +# 将更新后的notebook保存为新文件 +with open(file_path.replace('.ipynb', '_clean.ipynb'), 'w', encoding='utf-8') as file: + json.dump(notebook, file, ensure_ascii=False, indent=2) +``` + +#### 查看研究文件大小及数量 + +在研究文件中运行以下代码,即可查看 + +``` + +import os +from pandas import DataFrame +from collections import defaultdict +import pandas +pandas.set_option('display.max_rows',None) + +def list_dir_human(start_path = '.'): + dir_info_list = [] + first_dir_singel = True + total_size = 0 + files_number = 0 + # 类型(0-file,1-dir) 大小 子文件数量 + dir_info = defaultdict(list) + dir_info['.(当前目录)'] = [1, 0, 0] + for dirpath, dirnames, filenames in os.walk(start_path): + root_dir = None + path_url_splited = dirpath.split("/") + if len(path_url_splited) > 1: + root_dir = path_url_splited[1] + else: + for dir_ in dirnames: + dir_info[dir_] = [1, 0, 0] + files_number += 1 + files_number += len(filenames) + if root_dir: + dir_info[root_dir][2] += (len(filenames) + 1) + for f in filenames: + if os.path.isdir(f): + print(f) + fp = os.path.join(dirpath, f) + if not os.path.islink(fp): + size_ = os.path.getsize(fp) + total_size += size_ + if root_dir: + dir_info[root_dir][1] += size_ + else: + dir_info[f] = [0, size_, -1] + dir_info['.(当前目录)'][1] = total_size + dir_info['.(当前目录)'][2] = files_number + for key, value in dir_info.items(): + dir_info[key].insert(0,key) + dir_info[key][2] /= (1024*1024) + dir_info[key][2] = round(dir_info[key][2], 3) + dir_info_list.append(dir_info[key]) + dir_info_list.sort(key=lambda x:(x[1],x[0]), reverse=True) + dir_info_list = DataFrame(dir_info_list, columns=['名称', '类型(0-文件,1-目录)', '大小(M)', '文件数量']) + return dir_info_list + +# 参数为相对目录,不可为绝对路径 +list_dir_human('.') +``` + +### 其他第三方库问题 + +python的第三方库之间往往存在依赖关系,升级或者安装某个第三方库可能会导致其他库不兼容甚至导致研究环境无法正常启动,所以不建议自行安装第三方库。 如果实在有安装第三方库的需求,可以创建个目录,将第三方库安装到此目录中,使用时将此目录加入python环境变量再导入。 **注意:由于研究环境有文件个数不得大于1万的限制,所以安装第三方库需要慎重,不要大肆安装。** 安装命令可以使用 : !pip install 库名 --target="/home/jquser/提前建好的目录" --no-dependencies (--no-dependencies <不需要安装的依赖库名> ) 为可选参数 , 避免重复安装依赖库) 。 如需要卸载此目录下的第三方库,将对应的文件夹移入到回收站然后删除即可。 使用时,通过以下代码将第三方库添加到环境变量: + +``` + +import sys +sys.path.append( "/home/jquser/提前建好的目录" ) +``` + +#### 研究和回测中都支持哪些第三方Python库 + +[研究和回测(模拟)中都支持哪些第三方Python库](https://www.joinquant.com/view/community/detail/0b6bcc1ada0ab018f2d7dc2a342cf4ca) + +投资研究的使用方法请参考:[投资研究使用教程](https://www.joinquant.com/help/api/help?name=faq#%E6%8A%95%E8%B5%84%E7%A0%94%E7%A9%B6) + +#### Pandas常见问题 + +### Pandas: 如何增加 DataFrame 显示的行、列数? + +使用如下代码,更多设置请查看pandas官网教程 + +``` + +import pandas as pd + +# 设定最大显示行数、列数为10000 +pd.set_option('display.max_rows', 10000) +pd.set_option('display.max_columns', 10000) +pd.set_option('display.width', 10000) +``` + +### Pandas: object has no attribute sort_values + +原因:Pandas的没有sort_values这个方法;不同环境的Pandas版本不同,不同版本Pandas的排序方法不同。 + +解决方法:您可以查看下您使用环境中Pandas的版本,并使用对应的排序方法。具体使用方法请参考Pandas的教程。 + +一般的,Pandas早期版本的排序方法是sort,新版本的排序方法为sort_values。 + [sort的使用方法](http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.sort.html) + [sort_values的使用方法](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html) + +ascending=False为降序排列,即最大值在最前面;默认为升序排列 + +早期版本的排序order,sort + years_pct_sum[year].order(ascending=False) + data.sort('change_pct', ascending=False) + +新版本的排序sort_values + year_pct_sum_sort = years_pct_sum[year].sort_values(ascending=False) + data.sort_values(by='date') + +#### numpy.float64 浮点数的展示问题 + +有同学问到, 聚宽的数据是不是有问题, 怎么价格还带那么多位小数. 其实并不是我们数据的问题, 是numpy.float64 展示数据的问题.我们的价格是 numpy.float64 对象存储的, numpy.float64 展示的时候跟我们想象的不一样. + stackoverflow上的答案: [点击这里](http://stackoverflow.com/questions/27098529/numpy-float64-vs-python-float) + 详情可以查看:[点击这里](https://www.joinquant.com/post/754) + +#### 忽略或屏蔽提示及警告 + +``` + +import warnings +warnings.filterwarnings("ignore") +``` + +#### matplotlib中文显示 + +绘图使用到中文需要设置一下中文字体 : + +``` + +import matplotlib as mpl +mpl.rcParams['font.family']='serif' +mpl.rcParams['font.serif']='Droid Sans Fallback' +plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号 +``` + +#### mpl_finance + +下载或者复制粘贴mpl_finance.py, + https://github.com/matplotlib/mpl-finance/blob/master/mpl_finance.py + 然后上传到研究中即可使用 + +``` + +import warnings +warnings.filterwarnings("ignore") +import mpl_finance +``` + +mpl_finance的使用方法请自己在网上搜相关教程; + 投资研究的使用方法请参考:[投资研究使用教程](https://www.joinquant.com/help/api/help?name=faq#%E6%8A%95%E8%B5%84%E7%A0%94%E7%A9%B6) + +#### 已知的第三方库中的bug + +官网使用的第三方库需要兼容系统和用户自身的代码,所以一般不会对第三方库进行升级,容易引起兼容问题。这里对已知的第三方库中存在的bug进行整理。 + +1. pandas的shift(…., axis=1)在数据集含有nan值时存在异常(同时存在于研究、回测中) 问题复现代码: + +``` + +import pandas as pd +df = pd.DataFrame([[1,2,3], + [1,2,3], + [1,2,np.nan]]) +print(df.shift(periods= 1,axis=1)) +``` + +这个问题很容易复现,所以建议不要指定axis参数 , 尽量使用转置后shift再重新转置的方法进行处理,如上述代码可以变更为 : + +``` + +import pandas as pd +df = pd.DataFrame([[1,2,3], + [1,2,3], + [1,2,np.nan]]) +print(df.T.shift(periods= 1).T) +``` + +#### 研究中安装第三方库 + +python的第三方库之间往往存在依赖关系,升级或者安装某个第三方库可能会导致其他库不兼容甚至导致研究环境无法正常启动,所以不建议自行安装第三方库。 + 如果实在有安装第三方库的需求,可以创建个目录,将第三方库安装到此目录中,使用时将此目录加入python环境变量再导入。 + **注意:由于研究环境有文件个数不得大于1万的限制,所以安装第三方库需要慎重,不要大肆安装。** + 安装命令可以使用 : `!pip install 库名 --target="/home/jquser/提前建好的目录" --no-dependencies` (--no-dependencies <不需要安装的依赖库名> ) 为可选参数 , 避免重复安装依赖库) 。 + 如需要卸载此目录下的第三方库,将对应的文件夹移入到回收站然后删除即可。 + 使用时,通过以下代码将第三方库添加到环境变量: + +``` + +import sys +sys.path.append( "/home/jquser/提前建好的目录" ) +import 库名 +``` + +### 聚宽VIP说明 + +#### 客户服务 + +聚宽技术支持人员对平台常用功能的答疑,包括平台功能使用、需求及问题反馈等。免费用户只可通过留言的方式进行沟通。 + 注意 : `服务不包含代写策略、策略答疑、策略分析等`,具体的策略需要您自己实现及检查。 + +#### 平台资源 + +**免费回测时间:** 指每个自然日内,用户可以免费编译运行、回测的最长时间。超出后,每运行30分钟需消耗2积分。`积分小于等于0时,用户将无法新建编译运行和回测。` + +**最大并行回测:** 指同时运行回测的数量上限。您也可以使用积分进行兑换。 + +#### 积分优惠 + +**导出回测结果:** 导出回测交易详情、持仓&收益、日志时,分别需要消耗3积分/次。已经消耗过积分的,下次可以直接导出。 + +**社区克隆策略/查看策略源码、克隆研究:** 在社区进行上述操作时,需要消耗10积分/次。已经消耗过积分的,下次可以直接克隆。每个用户每天克隆策略/查看策略源码、克隆研究的上限分别都为100次。 + 注意:`积分小于等于0时,用户将无法享受上述积分优惠。` + +#### 高级功能 + +**Tick级回测、模拟交易:** VIP、SVIP可以选择使用Tick级数据频率进行回测和模拟交易,普通用户仅能选择天和分钟级数据频率。 + +**模拟交易实时运行:** VIP和SVIP用户的全部模拟交易位、普通用户购买的限时模拟交易位,可以在交易时间实时运行。普通用户时限为永久的模拟交易,将在次日凌晨的空闲时间延时运行。 + +**调仓信号优先推送:** 交易拥堵时段会优先运行VIP、SVIP的模拟交易,从而能够更快的收到交易信号推送。 + +#### 更多专属功能即将上线 + +#### VIP会员更多问题 + +- 是否可以开发票? 如果要开发票请提前咨询小秘书(微信:JQhelper)后再支付 +- VIP会员和JQData的数据是什么关系,购买会员后下载数据条数没有变化? 没有关系的,聚宽官网的VIP会员主要是官网的回测和模拟交易等功能,不包含本地下载数据条数的; 如果需要购买JQData数据,请查看[JQData文档](https://www.joinquant.com/help/api/doc?name=logon&id=9830); 如果误买的话,也可以联系小秘书申请退订。 +- 加入会员后模拟交易仍然没有实时运行? 模拟交易是否实时运行在每天凌晨三点判断一次,三点前成为会员的,下一个交易日实时运行。 +- 有关VIP升级SVIP SVIP的时限是根据VIP的剩余时限转换的 +- 有关会员时间 月付按照每月30天计算,年付按照每年365天计算 + +### 实盘说明 + +注意 :`一创聚宽已于2023-12-29停止维护,见`[一创聚宽(实盘)项目终止公告](https://www.joinquant.com/view/community/detail/cbb83ea89b10b140778e55b86a6a526f?type=3) + +**聚宽目前没有提供任何形式的实盘及交易通道服务。** diff --git "a/docs/joinquant-api/JQ_\346\212\200\346\234\257\345\210\206\346\236\220\346\214\207\346\240\207.md" "b/docs/joinquant-api/JQ_\346\212\200\346\234\257\345\210\206\346\236\220\346\214\207\346\240\207.md" new file mode 100644 index 0000000..90d8d01 --- /dev/null +++ "b/docs/joinquant-api/JQ_\346\212\200\346\234\257\345\210\206\346\236\220\346\214\207\346\240\207.md" @@ -0,0 +1,5546 @@ +## 因子说明 + +为了让用户有更多可直接调用的技术分析指标因子,我们计划基于通达信、东方财富、同花顺等的公式,来完善我们的技术分析指标因子库。 + 我们给出了公式的API、参数说明、返回值的结果及类型说明、备注(相较于上述三家结果及算法的比对)、用法注释及示例,旨在帮助您更方便、更快速的在策略研究中使用这些因子函数。 + +支持多周期,取数逻辑同get_bars + +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月; +- include_now:是否包含当前周期,默认为 True. + +**注意** + +- 如果需要在Python3环境使用,print需要加(),例如:print(ACCER1[security_list1]) +- 如果传入了fq_ref_date,则以fq_ref_date为基准日进行复权 ; 否则默认为None,回测中如果开启动态复权,则返回复权计算动态前的技术指标(复权基准日为策略逻辑时间),否则返回前复权计算的指标 ;研究及jqdatasdk默认返回前复权计算的指标 +- 当check_date可以精确到分时秒时,如'2019-08-05 11:30:00',datetime.datetime(2019,1,10)(datetime对象本身带有分时秒,默认为00:00:00),返回当前时间点的指标值 +- 当check_date只精确到日期时,如'2019-08-05',datetime.date(2019,1,10),返回当天收盘后的指标,盘中调用当天的指标会产生未来数据,策略中建议check_date直接填写context.current_dt +- 文档中的统计天数,默认是unit为'1d',当unit不为'1d'的话,指的是统计周期unit +- 因复权数据不同平台不一致、部分算法不一致、涉及回溯的技术指标提取的数据量不同,计算得到的结果可能和其他平台存在差异[技术指标数据与其他平台有差异](https://www.joinquant.com/view/community/detail/48502bfa85355991258093e990d74f35) + +## 重要提示 ★ + +**在使用之前请导入 technical_analysis 库** + +``` + +# (官网)导入 technical_analysis 库 +>>> from jqlib.technical_analysis import * + +# (本地jqdatasdk)导入 technical_analysis 库 , 注意目前jqdatasdk不支持 fq_ref_date 参数 +>>> from jqdatasdk.technical_analysis import * +``` + +## 超买超卖型 + +### ACCER-幅度涨速 + +``` + +ACCER(security_list, check_date, N = 8, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- ACCER 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 0.0013989466754443464, '603177.XSHG': nan, '000002.XSHE': 0.024078586658544048, '601211.XSHG': -0.0056372951942572323} + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 算法:先求出斜率,再对其价格进行归一 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 ACCER 值 +ACCER1 = ACCER(security_list1, check_date='2017-01-04', N = 8) +print ACCER1[security_list1] + +# 输出 security_list2 的 ACCER 值 +ACCER2 = ACCER(security_list2, check_date='2017-01-04', N = 8) +for stock in security_list2: + print ACCER2[stock] +``` + +### ADTM-动态买卖气指标 + +``` + +ADTM(security_list, check_date, N = 23, M = 8, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- ADTM和MAADTM 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.49999999999999584, '603177.XSHG': nan, '000002.XSHE': 0.83612040133779286, '601211.XSHG': -0.050991501416427533}, {'000001.XSHE': 0.46909197819443404, '603177.XSHG': nan, '000002.XSHE': 0.79181488308861514, '601211.XSHG': 0.10434158941106236}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1. 该指标在+1到-1之间波动; +2. 低于-0.5时为很好的买入点,高于+0.5时需注意风险. + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 ADTM 值 +ADTM1, MAADTM1 = ADTM(security_list1, check_date='2017-01-04', N = 23, M = 8) +print ADTM1[security_list1] +print MAADTM1[security_list1] + +# 输出 security_list2 的 ADTM 值 +ADTM2, MAADTM2 = ADTM(security_list2, check_date='2017-01-04', N = 23, M = 8) +for stock in security_list2: + print ADTM2[stock] + print MAADTM2[stock] +``` + +### ATR-真实波幅 + +``` + +ATR(security_list, check_date, timeperiod=14, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数 timeperiod +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- MTR和ATR 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 0.080000000000000071, '603177.XSHG': nan, '000002.XSHE': 0.16000000000000014, '601211.XSHG': 0.19000000000000128}, {'000001.XSHE': 0.059999999999999866, '603177.XSHG': nan, '000002.XSHE': 0.51142857142857168, '601211.XSHG': 0.28571428571428648}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +算法:今日振幅、今日最高与昨收差价、今日最低与昨收差价中的最大值,为真实波幅,求真实波幅的N日移动平均 参数:N 天数,一般取14 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 ATR 值 +MTR1,ATR1 = ATR(security_list1, check_date='2017-01-04', timeperiod=14) +print MTR1[security_list1] +print ATR1[security_list1] + +# 输出 security_list2 的 ATR 值 +MTR2,ATR2 = ATR(security_list2, check_date='2017-01-04', timeperiod=14) +for stock in security_list2: + print MTR2[stock] + print ATR2[stock] +``` + +### BIAS-乖离率 + +``` + +BIAS(security_list,check_date, N1=6, N2=12, N3=24, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1: 统计的天数 N1 +- N2: 统计的天数 N2 +- N3: 统计的天数 N3 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- BIAS1, BIAS2, BIAS3 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 0.9012256669069999, '603177.XSHG': nan, '000002.XSHE': 0.064516129032250957, '601211.XSHG': 0.285408490902611}, {'000001.XSHE': 1.4222302744813846, '603177.XSHG': nan, '000002.XSHE': -0.54106047853793771, '601211.XSHG': 1.0015719739501157}, {'000001.XSHE': 1.8605285902742783, '603177.XSHG': nan, '000002.XSHE': -0.51514361883382098, '601211.XSHG': 1.9332321011717053}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1.本指标的乖离极限值随个股不同而不同,使用者可利用参考线设定,固定其乖离范围; 2.当股价的正乖离扩大到一定极限时,股价会产生向下拉回的作用力; 3.当股价的负乖离扩大到一定极限时,股价会产生向上拉升的作用力; 4.本指标可设参考线。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 BIAS 值 +BIAS11,BIAS12,BIAS13 = BIAS(security_list1,check_date='2017-01-04', N1=6, N2=12, N3=24) +print BIAS11[security_list1] +print BIAS12[security_list1] +print BIAS13[security_list1] + +# 输出 security_list2 的 BIAS 值 +BIAS21,BIAS22,BIAS23 = BIAS(security_list2,check_date='2017-01-04', N1=6, N2=12, N3=24) +for stock in security_list2: + print BIAS21[stock] + print BIAS22[stock] + print BIAS23[stock] +``` + +### BIAS_QL-乖离率_传统版 + +``` + +BIAS_QL(security_list, check_date, N = 6, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- BIAS和BIASMA 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 48.10992396473096, '603177.XSHG': nan, '000002.XSHE': 76.922476397442992, '601211.XSHG': 42.883942027049542}, {'000001.XSHE': 44.033385880780266, '603177.XSHG': nan, '000002.XSHE': 79.616029960653222, '601211.XSHG': 32.35472793345135}) + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +1. 因为BIAS_QL的计算公式与BIAS36相似,而常见的炒股软件中均没有找到BIAS_QL的用法注释,所以此处使用了BIAS36的用法注释; +2. 本指标的乖离极限值随个股不同而不同,使用者可利用参考线设定,固定其乖离范围。※一般6-12BIAS信号的可靠度比3-6BIAS佳; +3. 当股价的正乖离扩大到一定极限时,股价会产生向下拉回的作用力; +4. 当股价的负乖离扩大到一定极限时,股价会产生向上拉升的作用力; +5. 本指标可设参考线。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 BIAS_QL 值 +BIAS1, BIASMA1 = BIAS_QL(security_list1, check_date = '2017-01-04', N = 6, M = 6) +print BIAS1[security_list1] +print BIASMA1[security_list1] + +# 输出 security_list2 的 BIAS_QL 值 +BIAS2, BIASMA2 = BIAS_QL(security_list2, check_date = '2017-01-04', N = 6, M = 6) +for stock in security_list2: + print BIAS2[stock] + print BIASMA2[stock] +``` + +### BIAS_36-三六乖离 + +``` + +BIAS_36(security_list, check_date, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- BIAS36, BIAS612和MABIAS 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.021666666666666501, '603177.XSHG': nan, '000002.XSHE': 0.92333333333333201, '601211.XSHG': -0.2083333333333357}, {'000001.XSHE': -0.054999999999999716, '603177.XSHG': nan, '000002.XSHE': 1.1916666666666735, '601211.XSHG': -0.37666666666667226}, {'000001.XSHE': -0.020555555555556992, '603177.XSHG': nan, '000002.XSHE': 0.65916666666666279, '601211.XSHG': -0.17138888888888873}) + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +1. 本指标的乖离极限值随个股不同而不同,使用者可利用参考线设定,固定其乖离范围。※一般6-12BIAS信号的可靠度比3-6BIAS佳; +2. 当股价的正乖离扩大到一定极限时,股价会产生向下拉回的作用力; +3. 当股价的负乖离扩大到一定极限时,股价会产生向上拉升的作用力; +4. 本指标可设参考线。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 BIAS36 值 +BIAS36_1, BIAS612_1, ABIAS_1 = BIAS_36(security_list1, check_date='2017-01-04', M = 6) +print BIAS36_1[security_list1] +print BIAS612_1[security_list1] +print ABIAS_1[security_list1] + +# 输出 security_list2 的 BIAS36 值 +BIAS36_2, BIAS612_2, ABIAS_2 = BIAS_36(security_list2, check_date='2017-01-04', M = 6) +for stock in security_list2: + print BIAS36_2[stock] + print BIAS612_2[stock] + print ABIAS_2[stock] +``` + +### CCI-商品路径指标 + +``` + +CCI(security_list, check_date, N=14, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- CCI 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 176.62274280137152, '603177.XSHG': nan, '000002.XSHE': -30.935837245695815, '601211.XSHG': 98.68173258003705} + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1.CCI 为正值时,视为多头市场;为负值时,视为空头市场; 2.常态行情时,CCI 波动于±100 的间;强势行情,CCI 会超出±100 ; 3.CCI>100 时,买进,直到CCI<100 时,卖出; 4.CCI<-100 时,放空,直到CCI>-100 时,回补。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 CCI 值 +CCI1 = CCI(security_list1, check_date='2017-01-04', N=14) +print CCI1[security_list1] + +# 输出 security_list2 的 CCI 值 +CCI2 = CCI(security_list2, check_date='2017-01-04', N=14) +for stock in security_list2: + print CCI2[stock] +``` + +### CYF-市场能量 + +``` + +CYF(security_list, check_date, N = 21, unit = '1d', include_now = True) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True + +**返回:** + +- CYF 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 25.457927713284477, '603177.XSHG': nan, '000002.XSHE': 34.823659982605108, '601211.XSHG': 47.605522169406555} + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 +- 因本指标调用的API较多,该程序计算速度较慢 + +**用法注释:** + +1. CYF反映了市场公众的状态和追涨热情,又称市场能量指标; +2. 使用CYF判断股票的活跃程度, CYF小于10的股票是冷门股,CYF在20到40之间是活跃股,CYF大于50是热门股; +3. CYF与股价顶背离时,易形成反转. + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CYF 值 +CYF1 = CYF(security_list1, check_date='2017-01-04', N = 21) +print CYF1[security_list1] + +# 输出 security_list2 的 CYF 值 +CYF2 = CYF(security_list2, check_date='2017-01-04', N = 21) +for stock in security_list2: + print CYF2[stock] +``` + +### DKX-多空线 + +``` + +DKX(security_list, check_date, M = 10, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- DKX和MADKX 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.7320238095238096, '603177.XSHG': nan, '000002.XSHE': 18.6065, '601211.XSHG': 18.081222222222227}, {'000001.XSHE': 8.7608388888888875, '603177.XSHG': nan, '000002.XSHE': 16.825250793650795, '601211.XSHG': 18.38326587301588}) + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +1. 当多空线上穿其均线时为买入信号; +2. 当多空线下穿其均线时为卖出信号。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 DKX 值 +DKX1,MADKX1 = DKX(security_list1, check_date='2017-01-04', M = 10) +print DKX1[security_list1] +print MADKX1[security_list1] + +# 输出 security_list2 的 DKX 值 +DKX2,MADKX2 = DKX(security_list2, check_date='2017-01-04', M = 10) +for stock in security_list2: + print DKX2[stock] + print MADKX2[stock] +``` + +### KD-随机指标KD + +``` + +KD(security_list, check_date, N = 9, M1 = 3, M2 = 3, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M1:统计的天数 M1 +- M2:统计的天数 M2 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- K和D 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 76.634909558440839, '603177.XSHG': nan, '000002.XSHE': 31.205826728484286, '601211.XSHG': 65.666306018342183}, {'000001.XSHE': 77.290976650878633, '603177.XSHG': nan, '000002.XSHE': 32.552242430383409, '601211.XSHG': 64.593395785918702}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1. KD的计算公式与SKDJ的不太大,而常见的炒股软件中均没有找到KD的用法注释,所以该处的用法注释使用的是公式SKDJ的; +2. 指标>80 时,回档机率大;指标<20 时,反弹机率大; +3. K在20左右向上交叉D时,视为买进信号; +4. K在80左右向下交叉D时,视为卖出信号; +5. SKDJ波动于50左右的任何讯号,其作用不大。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 KD值 +K1, D1 = KD(security_list1, check_date = '2017-01-04', N = 9, M1 = 3, M2 = 3) +print K1[security_list1] +print D1[security_list1] + +# 输出 security_list2 的 KD 值 +K2, D2 = KD(security_list2, check_date = '2017-01-04', N = 9, M1 = 3, M2 = 3) +for stock in security_list2: + print K2[stock] + print D2[stock] +``` + +### KDJ-随机指标 + +``` + +KDJ(security_list, check_date, N =9, M1=3, M2=3, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M1:统计的天数 M1 +- M2:统计的天数 M2 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- K,D和J 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 89.145187806127595, '603177.XSHG': nan, '000002.XSHE': 20.523907534762358, '601211.XSHG': 82.545216532766361}, {'000001.XSHE': 82.915346288340473, '603177.XSHG': nan, '000002.XSHE': 21.246652224886216, '601211.XSHG': 80.903864946907802}, {'000001.XSHE': 101.60487084170185, '603177.XSHG': nan, '000002.XSHE': 19.078418154514644, '601211.XSHG': 85.827919704483492}) + +**备注:** + +- 计算方式与通达信、东方财富和同花顺相同 + +**用法注释:** + +1.指标>80 时,回档机率大;指标<20时,反弹机率大; 2.K在20左右向上交叉D时,视为买进信号; 3.K在80左右向下交叉D时,视为卖出信号; 4.J>100 时,股价易反转下跌;J<0 时,股价易反转上涨; 5.KDJ 波动于50左右的任何信号,其作用不大。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 KDJ 值 +K1,D1,J1 = KDJ(security_list1, check_date='2017-01-04', N =9, M1=3, M2=3) +print K1[security_list1] +print D1[security_list1] +print J1[security_list1] + +# 输出 security_list2 的 KDJ 值 +K2,D2,J2 = KDJ(security_list2, check_date='2017-01-04', N =9, M1=3, M2=3) +for stock in security_list2: + print K2[stock] + print D2[stock] + print J2[stock] +``` + +### SKDJ-慢速随机指标 + +``` + +SKDJ(security_list, check_date, N = 9, M = 3, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- K和D 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 43.670179685638736, '603177.XSHG': nan, '000002.XSHE': 88.536829377842508, '601211.XSHG': 11.706561251360608}, {'000001.XSHE': 39.385998813653607, '603177.XSHG': nan, '000002.XSHE': 83.231798914083683, '601211.XSHG': 14.897182159244849}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1. 指标>80 时,回档机率大;指标<20 时,反弹机率大; +2. K在20左右向上交叉D时,视为买进信号; +3. K在80左右向下交叉D时,视为卖出信号; +4. SKDJ波动于50左右的任何讯号,其作用不大。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 SKDJ 值 +K1, D1 = SKDJ(security_list1, check_date = '2017-01-04', N = 9, M = 3) +print K1[security_list1] +print D1[security_list1] + +# 输出 security_list2 的 SKDJ 值 +K2, D2 = SKDJ(security_list2, check_date = '2017-01-04', N = 9, M = 3) +for stock in security_list2: + print K2[stock] + print D2[stock] +``` + +### MFI-资金流量指标 + +``` + +MFI(security_list, check_date, timeperiod=14, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- MFI 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 49.042496052317411, '603177.XSHG': nan, '000002.XSHE': 82.747463608411636, '601211.XSHG': 24.455594865835923} + +**备注:** + +- 计算方式与同花顺、东方财富和通达信相同 + +**用法注释:** + +1.MFI>80 为超买,当其回头向下跌破80 时,为短线卖出时机; 2.MFI<20 为超卖,当其回头向上突破20 时,为短线买进时机; 3.MFI>80,而产生背离现象时,视为卖出信号; 4.MFI<20,而产生背离现象时,视为买进信号。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 MFI 值 +MFI1 = MFI(security_list1,check_date='2017-01-04', timeperiod=14) +print MFI1[security_list1] + +# 输出 security_list2 的 MFI 值 +MFI2 = MFI(security_list2,check_date='2017-01-04', timeperiod=14) +for stock in security_list2: + print MFI2[stock] +``` + +### MTM-动量线 + +``` + +MTM(security_list, check_date, timeperiod=14, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- MTM的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': -0.12999999999999901, '603177.XSHG': nan, '000002.XSHE': 5.9499999999999993, '601211.XSHG': -1.2699999999999996} + +**备注:** + +- 计算方式与通达信、同花顺和东方财富和相同 + +**用法注释:** + +MTM线 :当日收盘价与N日前的收盘价的差; MTMMA线:对上面的差值求N日移动平均; 参数:N 间隔天数,也是求移动平均的天数,一般取6用法: 1.MTM从下向上突破MTMMA,买入信号; 2.MTM从上向下跌破MTMMA,卖出信号; 3.股价续创新高,而MTM未配合上升,意味上涨动力减弱; 4.股价续创新低,而MTM未配合下降,意味下跌动力减弱; 5.股价与MTM在低位同步上升,将有反弹行情;反之,从高位同步下降,将有回落走势。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 MTM 值 +MTM1 = MTM(security_list1,check_date='2017-01-04', timeperiod=12) +print MTM1[security_list1] + +# 输出 security_list2 的 MTM 值 +MTM2= MTM(security_list2,check_date='2017-01-04', timeperiod=12) +for stock in security_list2: + print MTM2[stock] +``` + +### ROC-变动率指标 + +``` + +ROC(security_list, check_date, timeperiod=12, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- ROC的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: {'000001.XSHE': -1.4557670772676223, '603177.XSHG': nan, '000002.XSHE': 33.999999999999986, '601211.XSHG': -6.7302596714361336} + +**备注:** + +- 计算方式与通达信、同花顺和东方财富相同 + +**用法注释:** + +1.本指标的超买超卖界限值随个股不同而不同,使用者应自行调整; 2.本指标的超买超卖范围,一般介于±6.5之间; 3.本指标用法请参考MTM 指标用法; 4.本指标可设参考线。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 ROC 值 +ROC1 = ROC(security_list1,check_date='2017-01-04', timeperiod=12) +print ROC1[security_list1] + +# 输出 security_list2 的 ROC 值 +ROC2 = ROC(security_list2,check_date='2017-01-04', timeperiod=12) +for stock in security_list2: + print ROC2[stock] +``` + +### RSI-相对强弱指标 + +``` + +RSI(security_list, check_date, N1=6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1:统计的天数N1 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- RSI 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: {'000001.XSHE': 86.697784941552129, '603177.XSHG': nan, '000002.XSHE': 45.669839353084029, '601211.XSHG': 65.952531344607962} + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1.RSI>80 为超买,RSI<20 为超卖; 2.RSI 以50为中界线,大于50视为多头行情,小于50视为空头行情; 3.RSI 在80以上形成M头或头肩顶形态时,视为向下反转信号; 4.RSI 在20以下形成W底或头肩底形态时,视为向上反转信号; 5.RSI 向上突破其高点连线时,买进;RSI 向下跌破其低点连线时,卖出。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 RSI 值 +RSI1 = RSI(security_list1, check_date='2017-01-04', N1=6) +print RSI1[security_list1] + +# 输出 security_list2 的 RSI 值 +RSI2 = RSI(security_list2, check_date='2017-01-04', N1=6) +for stock in security_list2: + print RSI2[stock] +``` + +### MARSI-相对强弱平均线 + +``` + +MARSI(security_list, check_date, M1 = 10, M2 = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- M1:统计的天数 M1 +- M2:统计的天数 M2 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- RSI10和RSI6 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 48.10992396473096, '603177.XSHG': nan, '000002.XSHE': 76.922476397442992, '601211.XSHG': 42.883942027049542}, {'000001.XSHE': 44.033385880780266, '603177.XSHG': nan, '000002.XSHE': 79.616029960653222, '601211.XSHG': 32.35472793345135}) + +**备注:** + +- 计算方式与通达信相同,与同花顺计算方式本质上相同,但参数不一致,东方财富没有该指标 + +**用法注释:** + +1. RSI>80 为超卖;RSI<20 为超买; +2. RSI 以50为中界线,大于50视为多头行情,小于50视为空头行情; +3. RSI 在80以上形成M头或头肩顶形态时,视为向下反转信号; +4. RSI 在20以下形成W底或头肩底形态时,视为向上反转信号; +5. RSI 向上突破其高点连线时,买进;RSI 向下跌破其低点连线时,卖出。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 MARSI 值 +RSI10_1, RSI6_1 = MARSI(security_list1, check_date = '2017-01-04', M1 = 10, M2 = 6) +print RSI10_1[security_list1] +print RSI6_1[security_list1] + +# 输出 security_list2 的 MARSI 值 +RSI10_2, RSI6_2 = MARSI(security_list2, check_date = '2017-01-04', M1 = 10, M2 = 6) +for stock in security_list2: + print RSI10_2[stock] + print RSI6_2[stock] +``` + +### OSC-变动速率线 + +``` + +OSC(security_list, check_date, N = 20, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- OSC和MAOSC 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 7.3500000000001009, '603177.XSHG': nan, '000002.XSHE': -17.449999999998766, '601211.XSHG': -5.150000000000432}, {'000001.XSHE': 10.992588074732661, '603177.XSHG': nan, '000002.XSHE': -6.6110853409889812, '601211.XSHG': 8.2021191350369627}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1. OSC 以100 为中轴线,OSC>100 为多头市场;OSC<100 为空头市场; +2. OSC 向上交叉其平均线时,买进;OSC 向下交叉其平均线时卖出; +3. OSC 在高水平或低水平与股价产生背离时,应注意股价随时有反转的可能; +4. OSC 的超买超卖界限值随个股不同而不同,使用者应自行调整 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 OSC 值 +OSC1, MAOSC1 = OSC(security_list1, check_date = '2017-01-04', N = 20, M = 6) +print OSC1[security_list1] +print MAOSC1[security_list1] + +# 输出 security_list2 的 OSC 值 +OSC2, MAOSC2 = OSC(security_list2, check_date = '2017-01-04', N = 20, M = 6) +for stock in security_list2: + print OSC2[stock] + print MAOSC2[stock] +``` + +### UDL-引力线 + +``` + +UDL(security_list, check_date, N1 = 3, N2 = 5, N3 = 10, N4 = 20, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1:统计的天数 N1 +- N2:统计的天数 N2 +- N3:统计的天数 N3 +- N4:统计的天数 N4 +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- UDL和MAUDL 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 8.7100833333333352, '603177.XSHG': nan, '000002.XSHE': 19.746000000000006, '601211.XSHG': 17.816458333333333}, {'000001.XSHE': 8.711291666666666, '603177.XSHG': nan, '000002.XSHE': 18.525548611111123, '601211.XSHG': 18.064673611111122}) + +**备注:** + +- 计算方式与通达信和同花顺相同,东方财富没有该指标 + +**用法注释:** + +1. 本指标的超买超卖界限值随个股不同而不同,使用者应自行调整; +2. 使用时,可列出一年以上走势图,观察其常态性分布范围,然后用参考线设定其超买超卖范围。通常UDL 高于某个极限时,短期股价会下跌;UDL 低于某个极限时,短期股价会上涨; +3. 本指标可设参考线。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 UDL 值 +UDL1, MAUDL1 = UDL(security_list1, check_date = '2017-01-04', N1 = 3, N2 = 5, N3 = 10, N4 = 20, M = 6) +print UDL1[security_list1] +print MAUDL1[security_list1] + +# 输出 security_list2 的 UDL 值 +UDL2, MAUDL2 = UDL(security_list2, check_date = '2017-01-04', N1 = 3, N2 = 5, N3 = 10, N4 = 20, M = 6) +for stock in security_list2: + print UDL2[stock] + print MAUDL2[stock] +``` + +### WR-威廉指标 + +``` + +WR(security_list, check_date, N = 10, N1 = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- WR和MAWR 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 57.50000000000005, '603177.XSHG': nan, '000002.XSHE': 0.0, '601211.XSHG': 93.706293706293721}, {'000001.XSHE': 55.172413793103658, '603177.XSHG': nan, '000002.XSHE': 0.0, '601211.XSHG': 88.157894736842152}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**方法注释:** + +1. WR波动于0 - 100,100置于顶部,0置于底部。 +2. 本指标以50为中轴线,高于50视为股价转强;低于50视为股价转弱 +3. 本指标高于20后再度向下跌破20,卖出;低于80后再度向上突破80,买进。 +4. WR连续触底3 - 4次,股价向下反转机率大;连续触顶3 - 4次,股价向上反转机率大。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 WR 值 +WR1, MAWR1 = WR(security_list1, check_date = '2017-01-04', N = 10, N1 = 6) +print WR1[security_list1] +print MAWR1[security_list1] + +# 输出 security_list2 的 WR 值 +WR2, MAWR2 = WR(security_list2, check_date = '2017-01-04', N = 10, N1 = 6) +for stock in security_list2: + print WR2[stock] + print MAWR2[stock] +``` + +### LWR-LWR威廉指标 + +``` + +LWR(security_list, check_date, N = 9, M1 = 3, M2 = 3, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M1:统计的天数 M1 +- M2:统计的天数 M2 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- LWR1和LWR2 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 55.650573690335541, '603177.XSHG': nan, '000002.XSHE': 10.13678425444178, '601211.XSHG': 87.916457180768532}, {'000001.XSHE': 58.489680228929586, '603177.XSHG': nan, '000002.XSHE': 16.390638110862337, '601211.XSHG': 80.912153275638602}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1. LWR2<30,超买;LWR2>70,超卖。 +2. 线LWR1向下跌破线LWR2,买进参考信号;线LWR1向上突破线LWR2,卖出参考信号。 +3. 线LWR1与线LWR2的交叉发生在30以下,70以上,才有效。 +4. LWR指标不适于发行量小,交易不活跃的股票; +5. LWR指标对大盘和热门大盘股有极高准确性。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 LWR 值 +LWR1, LWR2 = LWR(security_list1, check_date = '2017-01-04', N = 9, M1 = 3, M2 = 3) +print LWR1[security_list1] +print LWR2[security_list1] + +# 输出 security_list2 的 LWR 值 +LWR1, LWR2 = LWR(security_list2, check_date = '2017-01-04', N = 9, M1 = 3, M2 = 3) +for stock in security_list2: + print LWR1[stock] + print LWR2[stock] +``` + +### TAPI-加权指数成交值 + +``` + +TAPI(index_stock, security_list, check_date, M=6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock:大盘指数代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- TAPI和MATAPI 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:({'000001.XSHE': 256244.00809560539, '603177.XSHG': nan, '000002.XSHE': 2290672.9391872431, '601211.XSHG': 295372.46021602425}, {'000001.XSHE': 305104.20587265556, '603177.XSHG': nan, '000002.XSHE': 1682196.5742840525, '601211.XSHG': 431300.71571008326}) + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +1. 先界定TAPI长期以来经常性的高低极限值,当TAPI触及顶端极限时,股价可能形成头部;当TAPI触及底端极限时,股价可能形成底部; +2. 行情上涨,TAPI应伴随上涨;若不升反跌,则近期内将面临回档; +3. 先前大盘量缩下跌,当其回升时,TAPI值却持续下跌,可视为买入信号。 + +**示例:** + +``` + +# 大盘指数代码 +index_stock = '399106.XSHE' +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 TAPI 值 +TAPI1,MATAPI1 = TAPI(index_stock, security_list1, check_date='2017-01-04', M=6) +print TAPI1[security_list1] +print MATAPI1[security_list1] + +# 输出 security_list2 的 TAPI 值 +TAPI2,MATAPI2 = TAPI(index_stock, security_list2, check_date='2017-01-04', M=6) +for stock in security_list2: + print TAPI2[stock] + print MATAPI2[stock] +``` + +### FSL-分水岭 + +``` + +FSL(security_list, check_date) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 + +**返回:** + +- SWL和SWS 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.9778100759204698, '603177.XSHG': nan, '000002.XSHE': 20.894317966512268, '601211.XSHG': 18.208534476715137}, {'000001.XSHE': 9.0214752948717933, '603177.XSHG': nan, '000002.XSHE': 21.072509500000002, '601211.XSHG': 18.330323064102565}) + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +- 股价在分水岭之上为强势,反之为弱势. + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 FSL 值 +SWL1,SWS1 = FSL(security_list1, check_date='2017-01-04') +print SWL1[security_list1] +print SWS1[security_list1] + +# 输出 security_list2 的 FSL 值 +SWL2,SWS2 = FSL(security_list2, check_date='2017-01-04') +for stock in security_list2: + print SWL2[stock] + print SWS2[stock] +``` + +## 趋势型 + +### CHO-佳庆指标 + +``` + +CHO(security_list, check_date, N1 = 10, N2 = 20, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1:统计的天数 N1 +- N2: 统计的天数 N2 +- M: 统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- CHO 和 MACHO 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': -2349.7877426190771, '603177.XSHG': nan, '000002.XSHE': 267047.22475180856, '601211.XSHG': -1726.9088373843188}, {'000001.XSHE': -2304.8620185057907, '603177.XSHG': nan, '000002.XSHE': 292638.40931959258, '601211.XSHG': -3050.487984994948}) + +**备注:** + +- 计算方式与通达信、同花顺(交易量不是以手为单位)和东方财富相同 + +**用法注释:** + +1.CHO 曲线产生急促的「凸起」时,代表行情即将向上或向下反转; 2.股价>90 天平均线,CHO由负转正时,买进; 3.股价<90 天平均线,CHO由正转负时,卖出; 4.本指标也可设参考线,自定超买超卖的界限值; 5.本指标须配合OBOS、ENVELOPE同时使用。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 CHO 值 +CHO1,MACHO1 = CHO(security_list1,check_date='2017-01-04', N1 = 10, N2 = 20, M = 6) +print CHO1[security_list1] +print MACHO1[security_list1] + +# 输出 security_list2 的 CHO 值 +CHO2,MACHO2 = CHO(security_list2,check_date='2017-01-04', N1 = 10, N2 = 20, M = 6) +for stock in security_list2: + print CHO2[stock] + print MACHO2[stock] +``` + +### CYE-市场趋势 + +``` + +CYE(security_list, check_date, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- CYEL和CYES的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.22946305644790699, '603177.XSHG': nan, '000002.XSHE': 4.3811058515459811, '601211.XSHG': -0.38592508513052126}, {'000001.XSHE': 0.0057132410073656359, '603177.XSHG': nan, '000002.XSHE': 2.139178579978255, '601211.XSHG': -0.26377299139325172}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +1. CYE指标又叫趋势指标,是计算机模拟人的感觉用数值分析的方法对即日的K线进行一次拟合和趋势的判断; +2. CYE以 0轴为界,其上为上升趋势,否则为下降趋势. + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 CYE 值 +CYEL1,CYES1 = CYE(security_list1,check_date='2017-01-04') +print CYEL1[security_list1] +print CYES1[security_list1] + +# 输出 security_list2 的 CYE 值 +CYEL2,CYES2 = CYE(security_list2,check_date='2017-01-04') +for stock in security_list2: + print CYEL2[stock] + print CYES2[stock] +``` + +#### DMI - 趋向指标 + +``` + +DMI(security_list, check_date, N=14, MM = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- MM : 统计的天数 MM +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- PDI, MDI, ADX, ADXR的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 25.688830529080601, '603177.XSHG': nan, '000002.XSHE': 53.19815968968976, '601211.XSHG': 18.761296151049379}, {'000001.XSHE': 12.721819718749906, '603177.XSHG': nan, '000002.XSHE': 4.3611435006995558, '601211.XSHG': 25.554094733429896}, {'000001.XSHE': 25.604986954849515, '603177.XSHG': nan, '000002.XSHE': 74.405711362635628, '601211.XSHG': 27.156295106705297}, {'000001.XSHE': 24.423375009809824, '603177.XSHG': nan, '000002.XSHE': 68.677055698186052, '601211.XSHG': 30.275031367421029}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +用法:市场行情趋向明显时,指标效果理想。 PDI(上升方向线) MDI(下降方向线) ADX(趋向平均值) 1.PDI线从下向上突破MDI线,显示有新多头进场,为买进信号; 2.PDI线从上向下跌破MDI线,显示有新空头进场,为卖出信号; 3.ADX值持续高于前一日时,市场行情将维持原趋势; 4.ADX值递减,降到20以下,且横向行进时,市场气氛为盘整; 5.ADX值从上升倾向转为下降时,表明行情即将反转。 参数:N 统计天数; M 间隔天数,一般为14、6 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 DMI 值 +dmi_pdi, dmi_mdi, dmi_adx, dmi_adxr = DMI(security_list1,check_date='2017-01-04', N= 14, MM = 6) +print dmi_pdi[security_list1] +print dmi_mdi[security_list1] +print dmi_adx[security_list1] +print dmi_adxr[security_list1] + +# 输出 security_list2 的 DMI 值 +dmi_pdi, dmi_mdi, dmi_adx, dmi_adxr = DMI(security_list2,check_date='2017-01-04', N= 14, MM = 6) +for stock in security_list2: + print dmi_pdi[stock] + print dmi_mdi[stock] + print dmi_adx[stock] + print dmi_adxr[stock] +``` + +### DBQR-对比强弱 + +``` + +DBQR(index_stock, security_list, check_date, N = 5, M1 = 10, M2 = 20, M3 = 60, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock:大盘股票代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M1:统计的天数 M1 +- M2:统计的天数 M2 +- M3:统计的天数 M3 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- ZS, GG, MADBQR1, MADBQR2和MADBQR3的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.008962931388970025, '000002.XSHE': 0.008962931388970025, '601211.XSHG': 0.008962931388970025}, {'000001.XSHE': 0.011494252873563383, '603177.XSHG': nan, '000002.XSHE': 0.22774869109947632, '601211.XSHG': -0.01895206243032329}, {'000001.XSHE': -0.0075263047885744793, '603177.XSHG': nan, '000002.XSHE': 0.11067285706112595, '601211.XSHG': -0.031800418795617236}, {'000001.XSHE': 0.00045608985991743469, '603177.XSHG': nan, '000002.XSHE': 0.11198281967226727, '601211.XSHG': -0.012823522774402763}, {'000001.XSHE': 0.00683851952397502, '603177.XSHG': nan, '000002.XSHE': 0.044647671789494942, '601211.XSHG': 0.0081085126473629619}) + +**备注:** + +- 计算方式与通达信相同(其中ZS值与用户选择的大盘股票代码直接相关),同花顺和东方财富没有该指标 + +**用法注释:** + +- 对比强弱指标包含有两条指标线,一条是对应指数的强弱线。另外一条是个股的强弱线。当个股强弱线与指数强弱线发生金叉时,表明个股开始强过大盘,是买入时机。 +- 当个股强弱线与指数强弱线发生死叉时,表明个股开始弱于大盘,是卖出时机。对比强弱指标是一个短线指标。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 DBQR 值 +dbqr_zs, dbqr_gg, dbqr_madbqr1, dbqr_madbqr2, dbqr_madbqr3 = DBQR('000001.XSHG',security_list1,check_date='2017-01-04', N = 5, M1 = 10, M2 = 20, M3 = 60) +print dbqr_zs['000001.XSHG'] +print dbqr_gg[security_list1] +print dbqr_madbqr1[security_list1] +print dbqr_madbqr2[security_list1] +print dbqr_madbqr3[security_list1] + +# 输出 security_list2 的 DBQR 值 +dbqr_zs, dbqr_gg, dbqr_madbqr1, dbqr_madbqr2, dbqr_madbqr3 = DBQR('000001.XSHG',security_list2,check_date='2017-01-04', N = 5, M1 = 10, M2 = 20, M3 = 60) +for stock in security_list2: + print dbqr_zs['000001.XSHG'] + print dbqr_gg[stock] + print dbqr_madbqr1[stock] + print dbqr_madbqr2[stock] + print dbqr_madbqr3[stock] +``` + +### DMA-平均差 + +``` + +DMA(security_list, check_date, N1 = 10, N2 = 50, M = 10, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1:统计的天数 N1 +- N2: 统计的天数 N2 +- M: 统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- DIF 和 DIFMA 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.10940000000000794, '603177.XSHG': nan, '000002.XSHE': 4.5221999999999927, '601211.XSHG': 0.021799999999998931}, {'000001.XSHE': 0.20262000000000988, '603177.XSHG': nan, '000002.XSHE': 3.4217399999999927, '601211.XSHG': 0.53958000000000261}) + +**备注:** + +- 计算方式与通达信、同花顺(名为“新DMA”)和东方财富相同 + +**用法注释:** + +1.DMA 向上交叉其平均线时,买进; 2.DMA 向下交叉其平均线时,卖出; 3.DMA 的交叉信号比MACD、TRIX 略快; 4.DMA 与股价产生背离时的交叉信号,可信度较高; 5.DMA、MACD、TRIX 三者构成一组指标群,互相验证。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 DMA 值 +DIF1,DIFMA1 = DMA(security_list1,check_date='2017-01-04', N1 = 10, N2 = 50, M = 10) +print DIF1[security_list1] +print DIFMA1[security_list1] + +# 输出 security_list2 的 DMA 值 +DIF2,DIFMA2 = DMA(security_list2,check_date='2017-01-04', N1 = 10, N2 = 50, M = 10) +for stock in security_list2: + print DIF2[stock] + print DIFMA2[stock] +``` + +### DPO-区间震荡线 + +``` + +DPO(security_list, check_date, N=20, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M : 统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- DPO 和 MADPO 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 0.035000000000000142, '603177.XSHG': nan, '000002.XSHE': 9.1530000000000129, '601211.XSHG': -0.99149999999998784}, {'000001.XSHE': 0.0036666666666658188, '603177.XSHG': nan, '000002.XSHE': 6.5928333333333455, '601211.XSHG': -0.79808333333332138}) + +**备注:** + +- 计算方式与通达信,东方财富相同,与同花顺不同 + +**用法注释:** + +1.DPO>0 DPO<0 ,表示目前处于空头市场; 2.在0 轴上方设定一条超买线,当股价波动至超买线时,会形成短期高点; 3.在0 轴下方设定一条超卖线,当股价波动至超卖线时,会形成短期低点; 4.超买超卖的范围随个股不同而不同,使用者应自行调整; 5.本指标可设参考线。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 DPO 值 +DPO1,MADPO1 = DPO(security_list1,check_date='2017-01-04', N= 20, M = 6) +print DPO1[security_list1] +print MADPO1[security_list1] + +# 输出 security_list2 的 DPO 值 +DPO2,MADPO2 = DPO(security_list2,check_date='2017-01-04', N= 20, M = 6) +for stock in security_list2: + print DPO2[stock] + print MADPO2[stock] +``` + +### EMV-简易波动指标 + +``` + +EMV(security_list, check_date, N = 14, M = 9, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- EMV和MAEMV的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': -0.19292255670566558, '603177.XSHG': nan, '000002.XSHE': 3.851095221636061, '601211.XSHG': -0.75492717743004634}, {'000001.XSHE': -0.20164346999313121, '603177.XSHG': nan, '000002.XSHE': 2.0612852628683846, '601211.XSHG': -0.72654134699455397}) + +**备注:** + +- 计算方式与通达信、同花顺和东方财富相同 + +**用法注释:** + +1.EMV 由下往上穿越0 轴时,视为中期买进信号; 2.EMV 由上往下穿越0 轴时,视为中期卖出信号; 3.EMV 的平均线穿越0 轴,产生假信号的机会较少; 4.当ADX 低于±DI时,本指标失去效用; 5.须长期使用EMV 指标才能获得最佳利润。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 EMV 值 +EMV1,MAEMV1 = EMV(security_list1,check_date='2017-01-04', N = 14, M = 9) +print EMV1[security_list1] +print MAEMV1[security_list1] + +# 输出 security_list2 的 EMV 值 +EMV2,MAEMV2 = EMV(security_list2,check_date='2017-01-04', N = 14, M = 9) +for stock in security_list2: + print EMV2[stock] + print MAEMV2[stock] +``` + +### GDX-鬼道线 + +``` + +GDX(security_list, check_date, N = 30, M = 9, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 济安线、压力线和支撑线的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.579464236747615, '603177.XSHG': nan, '000002.XSHE': 21.274312299926329, '601211.XSHG': 18.052914184896178}, {'000001.XSHE': 9.3516160180549015, '603177.XSHG': nan, '000002.XSHE': 23.1890004069197, '601211.XSHG': 19.677676461536834}, {'000001.XSHE': 7.8073124554403304, '603177.XSHG': nan, '000002.XSHE': 19.359624192932959, '601211.XSHG': 16.428151908255522}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +通道理论公式,是一种用技术手段和经验判断来决定买卖股票的方法。该公式对趋势线做了平滑和修正处理,更精确的反应了股价运行规律。当股价上升到压力线时,投资者就卖出股票,而当股价下跌到支撑线时,投资者就进行相应的补进。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 GDX 值 +gdx_jax, gdx_ylx, gdx_zcx = GDX(security_list1,check_date='2017-01-04', N = 30, M = 9) +print gdx_jax[security_list1] +print gdx_ylx[security_list1] +print gdx_zcx[security_list1] + +# 输出 security_list2 的 GDX 值 +gdx_jax, gdx_ylx, gdx_zcx = GDX(security_list2,check_date='2017-01-04', N = 30, M = 9) +for stock in security_list2: + print gdx_jax[stock] + print gdx_ylx[stock] + print gdx_zcx[stock] +``` + +### JLHB-绝路航标 + +``` + +JLHB(security_list, check_date, N = 7, M = 5, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- B, VAR2和绝路航标的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 62.675406125612177, '603177.XSHG': nan, '000002.XSHE': 50.248304902948838, '601211.XSHG': 48.413005376201845}, {'000001.XSHE': 66.875000000000057, '603177.XSHG': nan, '000002.XSHE': 80.0, '601211.XSHG': 43.800904977375581}, {'000001.XSHE': 0, '603177.XSHG': nan, '000002.XSHE': 0, '601211.XSHG': 0}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 + +**用法注释:** + +反趋势类选股指标。综合了动量观念、强弱指标与移动平均线的优点,在计算过程中主要研究高低价位与收市价的关系,反映价格走势的强弱和超买超卖现象。在市场短期超买超卖的预测方面又较敏感。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 JLHB 值 +jlhb_b, jlhb_var2, jlhb_jlhb = JLHB(security_list1,check_date='2017-01-04', N = 7, M = 5) +print jlhb_b[security_list1] +print jlhb_var2[security_list1] +print jlhb_jlhb[security_list1] + +# 输出 security_list2 的 JLHB 值 +jlhb_b, jlhb_var2, jlhb_jlhb = JLHB(security_list2,check_date='2017-01-04', N = 7, M = 5) +for stock in security_list2: + print jlhb_b[stock] + print jlhb_var2[stock] + print jlhb_jlhb[stock] +``` + +### JS-加速线 + +``` + +JS(security_list, check_date, N = 5, M1 = 5, M2 = 10, M3 = 20, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M1:统计的天数 M1 +- M2:统计的天数 M2 +- M3:统计的天数 M3 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- JS, MAJS1, MAJS2和MAJS3 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.22988505747126764, '603177.XSHG': nan, '000002.XSHE': 4.5549738219895266, '601211.XSHG': -0.37904124860646582}, {'000001.XSHE': 0.19895890422201745, '603177.XSHG': nan, '000002.XSHE': 2.7934335630385538, '601211.XSHG': -0.42736705593419566}, {'000001.XSHE': -0.1505260957714892, '603177.XSHG': nan, '000002.XSHE': 2.2134571412225181, '601211.XSHG': -0.63600837591234527}, {'000001.XSHE': 0.0091217971983490014, '603177.XSHG': nan, '000002.XSHE': 2.2396563934453453, '601211.XSHG': -0.25647045548805508}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 + +**用法注释:** + +加速线指标是衡量股价涨速的工具,加速线指标上升表明股价上升动力增加,加速线指标下降表明股价下降压力增加。 加速线适用于DMI表明趋势明显时(DMI.ADX大于20)使用: 1.如果加速线在0值附近形成平台,则表明既不是最好的买入时机也不是最好的卖入时机; 2.在加速线发生金叉后,均线形成底部是买入时机; 3.在加速线发生死叉后,均线形成顶部是卖出时机; + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 JS 值 +js_jsx, js_majsx1, js_majsx2, js_majsx3 = JS(security_list1,check_date='2017-01-04', N = 5, M1 = 5, M2 = 10, M3 = 20) +print js_jsx[security_list1] +print js_majsx1[security_list1] +print js_majsx2[security_list1] +print js_majsx3[security_list1] + +# 输出 security_list2 的 JS 值 +js_jsx, js_majsx1, js_majsx2, js_majsx3 = JS(security_list2,check_date='2017-01-04', N = 5, M1 = 5, M2 = 10, M3 = 20) +for stock in security_list2: + print js_jsx[stock] + print js_majsx1[stock] + print js_majsx2[stock] + print js_majsx3[stock] +``` + +### MACD-平滑异同平均 + +``` + +MACD(security_list, check_date, SHORT = 12, LONG = 26, MID = 9, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- SHORT:统计的天数 SHORT +- LONG:统计的天数 LONG +- MID:统计的天数 MID +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- DIF, DEA和MACD的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.024474457964069884, '603177.XSHG': nan, '000002.XSHE': 1.9534717416190936, '601211.XSHG': -0.13735007291032986}, {'000001.XSHE': 0.031674925444633864, '603177.XSHG': nan, '000002.XSHE': 1.4784672678080988, '601211.XSHG': -0.020490844872792721}, {'000001.XSHE': -0.014400934961127959, '603177.XSHG': nan, '000002.XSHE': 0.95000894762198973, '601211.XSHG': -0.23371845607507427}) + +**备注:** + +- 计算方式与通达信、东方财富和同花顺相同 + +**用法注释:** + +DIFF线 收盘价短期、长期指数平滑移动平均线间的差 DEA线 DIFF线的M日指数平滑移动平均线 MACD线 DIFF线与DEA线的差,彩色柱状线 参数:SHORT(短期)、LONG(长期)、M 天数,一般为12、26、9 + +用法: 1.DIFF、DEA均为正,DIFF向上突破DEA,买入信号。 2.DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号。 3.DEA线与K线发生背离,行情反转信号。 4.分析MACD柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 MACD 值 +macd_dif, macd_dea, macd_macd = MACD(security_list1,check_date='2017-01-04', SHORT = 12, LONG = 26, MID = 9) +print macd_dif[security_list1] +print macd_dea[security_list1] +print macd_macd[security_list1] + +# 输出 security_list2 的 MACD 值 +macd_dif, macd_dea, macd_macd = MACD(security_list2,check_date='2017-01-04', SHORT = 12, LONG = 26, MID = 9) +for stock in security_list2: + print macd_dif[stock] + print macd_dea[stock] + print macd_macd[stock] +``` + +### QACD-快速异同平均 + +``` + +QACD(security_list, check_date, N1 = 12, N2 = 26, M = 9, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1:统计的天数 N1 +- N2:统计的天数 N2 +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- DIF, MACD和DDIF的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.024474457258216731, '603177.XSHG': nan, '000002.XSHE': 1.9534717597632003, '601211.XSHG': -0.13735007291033341}, {'000001.XSHE': 0.031674924406612889, '603177.XSHG': nan, '000002.XSHE': 1.4784672944906101, '601211.XSHG': -0.020490844872803629}, {'000001.XSHE': -0.0072004671483961585, '603177.XSHG': nan, '000002.XSHE': 0.47500446527259022, '601211.XSHG': -0.11685922803752978}) + +**备注:** + +- 计算方式与通达信和同花顺(同花顺的N2取值为6)相同,东方财富没有该公式 + +**用法注释:** + +1.DIF 向上交叉MACD,买进;DIF 向下交叉MACD,卖出; 2.DIF 连续两次向下交叉MACD,将造成较大的跌幅; 3.DIF 连续两次向上交叉MACD,将造成较大的涨幅; 4.DIF 与股价形成背离时所产生的信号,可信度较高; 5.DMA、MACD、TRIX 三者构成一组指标群,互相验证。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 QACD 值 +qacd_dif, qacd_macd, qacd_ddif = QACD(security_list1,check_date='2017-01-04', N1 = 12, N2 = 26, M = 9) +print qacd_dif[security_list1] +print qacd_macd[security_list1] +print qacd_ddif[security_list1] + +# 输出 security_list2 的 QACD 值 +qacd_dif, qacd_macd, qacd_ddif = QACD(security_list2,check_date='2017-01-04', N1 = 12, N2 = 26, M = 9) +for stock in security_list2: + print qacd_dif[stock] + print qacd_macd[stock] + print qacd_ddif[stock] +``` + +### QR-强弱指标 + +``` + +QR(index_stock, security_list, check_date, N = 21, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock:大盘股票代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 个股,大盘和强弱指标的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.57142857142857961, '603177.XSHG': nan, '000002.XSHE': 68.462643678160916, '601211.XSHG': -5.4779806659505876}, {'000001.XSHE': -0.60666287471217795, '000002.XSHE': -0.60666287471217795, '601211.XSHG': -0.60666287471217795}, {'000001.XSHE': 1.0486350432810712, '603177.XSHG': nan, '000002.XSHE': 62.726365293281042, '601211.XSHG': -4.7928242094193871}) + +**备注:** + +- 计算方式与通达信相同(其中ZS值与用户选择的大盘股票代码直接相关),同花顺和东方财富没有该指标 + +**用法注释:** + +指标攀升表明个股走势渐强于大盘,后市看好;指标滑落表明个股走势弱于大盘,可择机换股。同时要结合大盘走势研判,应选择大盘转暖或走牛时出击。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 QR 值 +qr_gg, qr_dp, qr_qrz = QR('000001.XSHG',security_list1,check_date='2017-01-04', N = 21) +print qr_gg[security_list1] +print qr_dp['000001.XSHG'] +print qr_qrz[security_list1] + +# 输出 security_list2 的 QR 值 +qr_gg, qr_dp, qr_qrz = QR('000001.XSHG',security_list2,check_date='2017-01-04', N = 21) +for stock in security_list2: + print qr_gg[stock] + print qr_dp['000001.XSHG'] + print qr_qrz[stock] +``` + +### TRIX-终极指标 + +``` + +TRIX(security_list, check_date, N = 12, M = 9, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- TRIX和MATRIX的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.025791210363593713, '603177.XSHG': nan, '000002.XSHE': 1.7583370989762825, '601211.XSHG': -0.10625713971250776}, {'000001.XSHE': 0.069768190877912417, '603177.XSHG': nan, '000002.XSHE': 1.4324777288907538, '601211.XSHG': 0.047380407660970618}) + +**备注:** + +- 计算方式与通达信和东方财富相同,与同花顺不同(差异在于同花顺的M取值为20,其中TRIX值大小相同,而MATRIX值与程序返回结果存在差异) + +**用法注释:** + +1.TRIX由下往上交叉其平均线时,为长期买进信号; 2.TRIX由上往下交叉其平均线时,为长期卖出信号; 3.DMA、MACD、TRIX 三者构成一组指标群,互相验证。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的TRIX值 +TRIX1,MATRIX1 = TRIX(security_list1,check_date='2017-01-04', N = 12, M = 9) +print TRIX1[security_list1] +print MATRIX1[security_list1] + +# 输出 security_list2 的 TRIX 值 +TRIX2,MATRIX2 = TRIX(security_list2,check_date='2017-01-04', N = 12, M = 9) +for stock in security_list2: + print TRIX2[stock] + print MATRIX2[stock] +``` + +### UOS-终极指标 + +``` + +UOS(security_list, check_date, N1 = 7, N2 = 14, N3 = 28, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1:统计的天数 N1 +- N2:统计的天数 N2 +- N3:统计的天数 N3 +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 终极指标和MAUOS的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 57.771547164847973, '603177.XSHG': nan, '000002.XSHE': 70.504859217869893, '601211.XSHG': 46.33057503226491}, {'000001.XSHE': 53.661130731923997, '603177.XSHG': nan, '000002.XSHE': 65.893320720410188, '601211.XSHG': 46.940452580831135}) + +**备注:** + +- 计算方式与通达信,东方财富和同花顺相同 + +**用法注释:** + +1.UOS 上升至50~70的间,而后向下跌破其N字曲线低点时,为短线卖点; 2.UOS 上升超过70以上,而后向下跌破70时,为中线卖点; 3.UOS 下跌至45以下,而后向上突破其N字曲线高点时,为短线买点; 4.UOS 下跌至35以下,产生一底比一底高的背离现象时,为底部特征; 5.以上各项数据会因个股不同而略有不同,请利用参考线自行修正。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的UOS值 +uos_ultiInc, uos_mauos = UOS(security_list1,check_date='2017-01-04', N1 = 7, N2 = 14, N3 = 28, M = 6) +print uos_ultiInc[security_list1] +print uos_mauos[security_list1] + +# 输出 security_list2 的 UOS 值 +uos_ultiInc, uos_mauos = UOS(security_list2,check_date='2017-01-04', N1 = 7, N2 = 14, N3 = 28, M = 6) +for stock in security_list2: + print uos_ultiInc[stock] + print uos_mauos[stock] +``` + +### VMACD-量平滑移动平均 + +``` + +VMACD(security_list, check_date, SHORT = 12, LONG = 26, MID = 9, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- SHORT:统计的天数 SHORT +- LONG:统计的天数 LONG +- MID:统计的天数 MID +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- DIF, DEA和MACD 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': -29420.22472378047, '603177.XSHG': nan, '000002.XSHE': 246548.71517315158, '601211.XSHG': -54288.764521957521}, {'000001.XSHE': -34871.616925081325, '603177.XSHG': nan, '000002.XSHE': 403729.04101507459, '601211.XSHG': -60719.532041579558}, {'000001.XSHE': 5451.392201300856, '603177.XSHG': nan, '000002.XSHE': -157180.32584192301, '601211.XSHG': 6430.7675196220371}) + +**备注:** + +- 计算方式与通达信,东方财富相同,与同花顺计算方式基本相同,差别在于同花顺的VOL是以交易量为单位,不是以手为单位 + +**用法注释:** + +基于成交量的MACD算法。 用法: 1.DIFF、DEA均为正,DIFF向上突破DEA,买入信号。 2.DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号。 3.DEA线与K线发生背离,行情反转信号。 4.分析MACD柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的VMACD值 +vmacd_dif, vmacd_dea, vmacd_macd = VMACD(security_list1,check_date='2017-01-04', SHORT = 12, LONG = 26, MID = 9) +print vmacd_dif[security_list1] +print vmacd_dea[security_list1] +print vmacd_macd[security_list1] + +# 输出 security_list2 的 VMACD 值 +vmacd_dif, vmacd_dea, vmacd_macd = VMACD(security_list2,check_date='2017-01-04', SHORT = 12, LONG = 26, MID = 9) +for stock in security_list2: + print vmacd_dif[stock] + print vmacd_dea[stock] + print vmacd_macd[stock] +``` + +### VPT-量价曲线 + +``` + +VPT(security_list, check_date, N = 51, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list: 标的列表 +- check_date: 要查询数据的日期 +- N: 统计的天数 N +- M: 统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- VPT 和 MAVPT 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 110162.20673868078, '603177.XSHG': nan, '000002.XSHE': 2333294.6410979889, '601211.XSHG': 213564.11670755409}, {'000001.XSHE': 109563.07430249352, '603177.XSHG': nan, '000002.XSHE': 1968746.2352547429, '601211.XSHG': 216122.67977483606}) + +**备注:** + +- 计算方式与通达信相同,与东方财富相同(差别在于东方财富选取的N,M分别为24和5),与同花顺相同(差别在于同花顺的VOL是以交易量为单位,不是以手为单位) + +**用法注释:** + +1.VPT 由下往上穿越0 轴时,为买进信号; 2.VPT 由上往下穿越0 轴时,为卖出信号; 3.股价一顶比一顶高,VPT 一顶比一顶低时,暗示股价将反转下跌; 4.股价一底比一底低,VPT 一底比一底高时,暗示股价将反转上涨; 5.VPT 可搭配EMV 和WVAD指标使用效果更佳。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +VPT1,MAVPT1 = VPT(security_list1,context.previous_date, N= 51, M = 6) +print VPT1[security_list1] + +# 输出 security_list2 的 VPT 值 +VPT2,MAVPT2 = VPT(security_list2,context.previous_date, N= 51, M = 6) +for stock in security_list2: + print VPT2[stock] +``` + +### WVAD-威廉变异离散量 + +``` + +WVAD(security_list, check_date, N = 24, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- WVAD 和 MAWVAD的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 92.062648361186916, '603177.XSHG': nan, '000002.XSHE': 2329.1965559178616, '601211.XSHG': 3.1691529344278888}, {'000001.XSHE': 33.985407654779912, '603177.XSHG': nan, '000002.XSHE': 1964.3494800488843, '601211.XSHG': -25.500673953544354}) + +**备注:** + +- 计算方式与通达信和东方财富相同,与同花顺不同 + +**用法注释:** + +1.WVAD由下往上穿越0 轴时,视为长期买进信号; 2.WVAD由上往下穿越0 轴时,视为长期卖出信号; 3.当ADX 低于±DI时,本指标失去效用; 4.长期使用WVAD指标才能获得最佳利润; 5.本指标可与EMV 指标搭配使用。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 WVAD 值 +wvad_wvad, wvad_mawvad = WVAD(security_list1,check_date='2017-01-04', N = 24, M = 6) +print wvad_wvad[security_list1] +print wvad_mawvad[security_list1] + +# 输出 security_list2 的 WVAD 值 +wvad_wvad, wvad_mawvad = WVAD(security_list2,check_date='2017-01-04', N = 24, M = 6) +for stock in security_list2: + print wvad_wvad[stock] + print wvad_mawvad[stock] +``` + +## 能量型 + +### BRAR-情绪指标 + +``` + +BRAR(security_list, check_date, N=26, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- BR和AR 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 90.769230769230703, '603177.XSHG': nan, '000002.XSHE': 210.38812785388123, '601211.XSHG': 81.198910081743762}, {'000001.XSHE': 92.349726775956157, '603177.XSHG': nan, '000002.XSHE': 283.66762177650412, '601211.XSHG': 81.192660550459109}) + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +1. BR>400,暗示行情过热,应反向卖出;BR<40 ,行情将起死回生,应买进; +2. AR>180,能量耗尽,应卖出;AR<40 ,能量已累积爆发力,应买进; +3. BR 由300 以上的高点下跌至50以下的水平,低于AR 时,为绝佳买点; +4. BR、AR、CR、VR 四者合为一组指标群,须综合搭配使用。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 BRAR 值 +BR1,AR1 = BRAR(security_list1, check_date='2017-01-04', N=26) +print BR1[security_list1] +print AR1[security_list1] + +# 输出 security_list2 的 BRAR 值 +BR2,AR2 = BRAR(security_list2, check_date='2017-01-04', N=26) +for stock in security_list2: + print BR2[stock] + print AR2[stock] +``` + +### CR-带状能量线 + +``` + +CR(security_list, check_date, N=26, M1=10, M2=20, M3=40, M4=62, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M1:统计的天数 M1 +- M2:统计的天数 M2 +- M3:统计的天数 M3 +- M4:统计的天数 M4 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- CR和MA1,MA2,MA3,MA4 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 92.287917737788732, '603177.XSHG': nan, '000002.XSHE': 310.60606060606005, '601211.XSHG': 65.852168601099407}, {'000001.XSHE': 140.86650665677868, '603177.XSHG': nan, '000002.XSHE': 263.61151123494176, '601211.XSHG': 132.45402304938904}, {'000001.XSHE': 147.02494118319379, '603177.XSHG': nan, '000002.XSHE': 187.92520738936778, '601211.XSHG': 138.9584146734295}, {'000001.XSHE': 98.715266031757878, '603177.XSHG': nan, '000002.XSHE': 116.68759448530741, '601211.XSHG': 93.303386336228911}, {'000001.XSHE': 78.759338424450661, '603177.XSHG': nan, '000002.XSHE': 100.63420206110173, '601211.XSHG': 78.912222905134882}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1. CR>400时,其10日平均线向下滑落,视为卖出信号;CR<40买进; +2. CR 由高点下滑至其四条平均线下方时,股价容易形成短期底部; +3. CR 由下往上连续突破其四条平均线时,为强势买进点; +4. CR 除了预测价格的外,最大的作用在于预测时间; +5. BR、AR、CR、VR 四者合为一组指标群,须综合搭配使用。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CR 值 +CR1, MA1, MA2, MA3, MA4 = CR(security_list1, check_date='2017-01-04', N=26, M1=10, M2=20, M3=40, M4=62) +print CR1[security_list1] +print MA1[security_list1] +print MA2[security_list1] +print MA3[security_list1] +print MA4[security_list1] + +# 输出 security_list2 的 CR 值 +CR1, MA1, MA2, MA3, MA4 = CR(security_list2, check_date='2017-01-04', N=26, M1=10, M2=20, M3=40, M4=62) +for stock in security_list2: + print CR1[stock] + print MA1[stock] + print MA2[stock] + print MA3[stock] + print MA4[stock] +``` + +### CYR-市场强弱 + +``` + +CYR(security_list, check_date, N = 13, M = 5, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- CYR 和 MACYR 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': -0.054093150941103563, '603177.XSHG': nan, '000002.XSHE': 3.2324567390829451, '601211.XSHG': -0.39420121431832378}, {'000001.XSHE': -0.061359574639450187, '603177.XSHG': nan, '000002.XSHE': 1.7008273617957137, '601211.XSHG': -0.35959378850023205}) + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +1. CYR是成本均线派生出的指标,是13日成本均线的升降幅度; +2. 使用CYR可以对股票的强弱进行排序,找出其中的强势和弱势股票。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CYR 值 +CYR1,MACYR1 = CYR(security_list1, check_date='2017-01-04', N = 13, M = 5) +print CYR1[security_list1] +print MACYR1[security_list1] + +# 输出 security_list2 的 CYR 值 +CYR2,MACYR2 = CYR(security_list2, check_date='2017-01-04', N = 13, M = 5) +for stock in security_list2: + print CYR2[stock] + print MACYR2[stock] +``` + +### MASS-梅斯线 + +``` + +MASS(security_list, check_date, N1=9, N2=25, M=6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1:统计的天数 N1 +- N2:统计的天数 N2 +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- MASS和MAMASS 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 24.239711786446705, '603177.XSHG': nan, '000002.XSHE': 32.023209054655545, '601211.XSHG': 23.609848955660624}, {'000001.XSHE': 23.894883731671456, '603177.XSHG': nan, '000002.XSHE': 31.687243323851508, '601211.XSHG': 23.978558571459313}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1. MASS>27 后,随后又跌破26.5,此时股价若呈上涨状态,则卖出; +2. MASS<27 后,随后又跌破26.5,此时股价若呈下跌状态,则买进; +3. MASS<20 的行情,不宜进行投资。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 MASS 值 +MASS1,MAMASS1 = MASS(security_list1, check_date='2017-01-04', N1=9, N2=25, M=6) +print MASS1[security_list1] +print MAMASS1[security_list1] + +# 输出 security_list2 的 MASS 值 +MASS2,MAMASS2 = MASS(security_list2, check_date='2017-01-04', N1=9, N2=25, M=6) +for stock in security_list2: + print MASS2[stock] + print MAMASS2[stock] +``` + +### PCNT-幅度比 + +``` + +PCNT(security_list, check_date, M = 5, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- PCNT 和 MAPCNT 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': -0.81775700934579765, '603177.XSHG': nan, '000002.XSHE': 9.1257995735607711, '601211.XSHG': -0.17261219792866017}, {'000001.XSHE': -0.093375782685468367, '603177.XSHG': nan, '000002.XSHE': 5.1789530788938016, '601211.XSHG': -0.6614506214203465}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +1. PCNT 重视价格的涨跌幅度,排除观察涨跌跳动值; +2. 较高的PCNT 值,表示该股波动幅度大; +3. 较低的PCNT 值,表示该股波动幅度小。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 PCNT 值 +PCNT1,MAPCNT1 = PCNT(security_list1, check_date='2017-01-04', M=5) +print PCNT1[security_list1] +print MAPCNT1[security_list1] + +# 输出 security_list2 的 PCNT 值 +PCNT2,MAPCNT2 = PCNT(security_list2, check_date='2017-01-04', M=5) +for stock in security_list2: + print PCNT2[stock] + print MAPCNT2[stock] +``` + +### PSY-心理线 + +``` + +PSY(security_list, check_date, timeperiod=12, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- PSY 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 50.0, '603177.XSHG': nan, '000002.XSHE': 58.333333333333336, '601211.XSHG': 33.333333333333329} + +**备注:** + +- 计算方式与通达信、同花顺和东方财富相同 + +**用法注释:** + +1.PSY>75,形成M头时,股价容易遭遇压力; 2.PSY<25,形成W底时,股价容易获得支撑; 3.PSY 与VR 指标属一组指标群,须互相搭配使用。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 PSY 值 +PSY1 = PSY(security_list1,check_date='2017-01-04', timeperiod=14) +print PSY1[security_list1] + +# 输出 security_list2 的 PSY 值 +PSY2 = PSY(security_list2,check_date='2017-01-04', timeperiod=14) +for stock in security_list2: + print PSY2[stock] +``` + +### VR-成交量变异率 + +``` + +VR(security_list, check_date, N=26, M=6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- VR和MAVR 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 131.42761741216233, '603177.XSHG': nan, '000002.XSHE': 213.15765431976482, '601211.XSHG': 84.984239389082546}, {'000001.XSHE': 133.5803410407361, '603177.XSHG': nan, '000002.XSHE': 182.61022230207126, '601211.XSHG': 117.87968865084336}) + +**备注:** + +- 计算方式与通达信和东方财富相同,与同花顺中的VR指标不同 + +**用法注释:** + +1. VR>450,市场成交过热,应反向卖出; +2. VR<40 ,市场成交低迷,人心看淡的际,应反向买进; +3. VR 由低档直接上升至250,股价仍未遭受阻力,此为大行情的前兆; +4. VR 除了与PSY为同指标群外,尚须与BR、AR、CR同时搭配研判 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 VR 值 +VR1,MAVR1 = VR(security_list1, check_date='2017-01-04', N=26, M=6) +print VR1[security_list1] +print MAVR1[security_list1] + +# 输出 security_list2 的 VR 值 +VR2,MAVR2 = VR(security_list2, check_date='2017-01-04', N=26, M=6) +for stock in security_list2: + print VR2[stock] + print MAVR2[stock] +``` + +## 成交量型 + +### AMO-成交金额 + +``` + +AMO(security_list, check_date, M1 = 5, M2 = 10, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- M1:统计的天数 M1 +- M2:统计的天数 M2 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- AMOW,AMO1和AMO2 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 42858.215500999999, '603177.XSHG': nan, '000002.XSHE': 528895.0784, '601211.XSHG': 26720.7556}, {'000001.XSHE': 36852.956986600002, '603177.XSHG': nan, '000002.XSHE': 391033.63072000002, '601211.XSHG': 30396.797399999999}, {'000001.XSHE': 40629.7649418, '603177.XSHG': nan, '000002.XSHE': 432376.88320000004, '601211.XSHG': 36740.013179999994}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 +- 本函数未显示VOLSTICK,其在通达信中是柱状线的图形 + +**用法注释:** + +1. 成交金额大,代表交投热络,可界定为热门股; +2. 底部起涨点出现大成交金额,代表攻击量; +3. 头部地区出现大成交金额,代表出货量; +4. 观察成交金额的变化,比观察成交手数更具意义,因为成交手数并未反应股价的涨跌的后所应支出的实际金额。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 AMO 值 +AMOW,AMO1,AMO2 = AMO(security_list1, check_date='2017-01-04', M1 = 5, M2 = 10) +print AMOW[security_list1] +print AMO1[security_list1] +print AMO2[security_list1] + +# 输出 security_list2 的 AMO 值 +AMOW,AMO1,AMO2 = AMO(security_list2, check_date='2017-01-04', M1 = 5, M2 = 10) +for stock in security_list2: + print AMOW[stock] + print AMO1[stock] + print AMO2[stock] +``` + +### CCL-持仓量(适用期货期权) + +``` + +CCL(futures_list, check_date, M=5) +``` + +**参数:** + +- futures_list:期货、期权列表 +- check_date:要查询数据的日期 +- M:统计的天数 M + +**返回:** + +- CCL和MACCL 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为期货期权代码,值(value)为数据。 +- 如:({'IF1712.CCFX': 2533.0, 'IF1803.CCFX': nan, 'IF1709.CCFX': 9828.0, 'IF1708.CCFX': 1504.0}, {'IF1712.CCFX': 2500.0, 'IF1803.CCFX': nan, 'IF1709.CCFX': 9748.6000000000004, 'IF1708.CCFX': 1213.8}) + +**备注:** + +- 计算方式与通达信和东方财富(参数M取值不同)相同,同花顺没有该指标 + +**用法注释:** + +1. 持仓量上升或下降的变化为图表分析师提供了判断价格走势的线索。 +2. 持仓量远不如价格信息重要,所以它主要用于印证市场走势。 + +**示例:** + +``` + +# 定义金融期货代码列表 +futures_list1 = 'IF1708.CCFX' +futures_list2 = ['IF1708.CCFX','IF1709.CCFX','IF1712.CCFX','IF1803.CCFX'] + +# 计算并输出 futures_list1 的 CCL 值 +CCL1,MACCL1 = CCL(futures_list1, check_date='2017-07-04', M=5) +print CCL1[futures_list1] +print MACCL1[futures_list1] + +# 输出 futures_list2 的 CCL 值 +CCL2,MACCL2 = CCL(futures_list2, check_date='2017-07-04', M=5) +for stock in futures_list2: + print CCL2[stock] + print MACCL2[stock] +``` + +### DBLB-对比量比 + +``` + +DBLB(index_stock, security_list, check_date, N=5, M=5, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock: 大盘股票代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- DBLB和MADBLB 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:({'000001.XSHE': 2.1493659892493957, '603177.XSHG': nan, '000002.XSHE': 0.76166585836540168, '601211.XSHG': 3.1383580528664869}, {'000001.XSHE': 1.310194821508738, '603177.XSHG': nan, '000002.XSHE': 0.82666969680671354, '601211.XSHG': 1.3389363967102343}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 + +**用法注释:** + +- 对比量比指标用于用于测度成交量放大程度或萎缩程度 的指标。对比量比值越大,说明成交量较前期成交量放 大程度越大,对比量比值越小,说明成交量较前期成交 量萎缩程度越大,一般认为: + +1. 对比量比大于20可以认为成交量极度放大; +2. 对比量比大于3,可以认为成交量显著放大; +3. 对比量比小于0.2,可以认为成交量极度萎缩; +4. 对比量比小于0.4,可以认为成交量显著萎缩。 + +**示例:** + +``` + +# 定义股票池列表 +index_stock = '399106.XSHE' +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 DBLB 值 +DBLB1,MADBLB1 = DBLB(index_stock, security_list1, check_date='2017-01-04', N=5, M=5) +print DBLB1[security_list1] +print MADBLB1[security_list1] + +# 输出 security_list2 的 DBLB 值 +DBLB2,MADBLB2 = DBLB(index_stock, security_list2, check_date='2017-01-04', N=5, M=5) +for stock in security_list2: + print DBLB2[stock] + print MADBLB2[stock] +``` + +### DBQRV-对比强弱量 + +``` + +DBQRV(index_stock, security_list, check_date, N = 5, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock: 大盘股票代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- ZS和GG 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:({'399106.XSHE': 0.6426864576400364}, {'000001.XSHE': 2.6501693742416115, '603177.XSHG': nan, '000002.XSHE': 0.10023325347228342, '601211.XSHG': 3.7644208422132119})(此次示例把深证综指(399106.XSHE)当做了大盘股票) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 + +**用法注释:** + +- 对比强弱量指标包含有两条指标线,一条是对应指数量的 强弱线。另外一条是个股成交量的强弱线。当个股强弱线 与指数强弱线发生金叉时,表明个股成交活跃过大盘。当 个股强弱线与指数强弱线发生死叉时,表明个股活跃度开 始弱于大盘。对比强弱量指标也是一个短线指标。 +- 注意:此指标使用到了大盘的数据,所以需要下载完整的 日线数据,否则显示可能不正确 + +**示例:** + +``` + +# 定义股票池列表 +index_stock = '399106.XSHE' +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 DBQRV 值 +ZS1,GG1 = DBQRV(index_stock, security_list1, check_date='2017-01-04', N = 5) +print ZS1[index_stock] +print GG1[security_list1] + +# 输出 security_list2 的 DBQRV 值 +ZS2,GG2 = DBQRV(index_stock, security_list2, check_date='2017-01-04', N = 5) +for stock in security_list2: + print ZS2[index_stock] + print GG2[stock] +``` + +### HSL-换手线 + +``` + +HSL(security_list, check_date, N = 5, unit = '1d', include_now = True) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True + +**返回:** + +- HSL和MAHSL 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 0.42388098152752657, '603177.XSHG': nan, '000002.XSHE': 2.4040782443554365, '601211.XSHG': 1.0070272131147542}, {'000001.XSHE': 0.36486110275710459, '603177.XSHG': nan, '000002.XSHE': 1.9485759345950888, '601211.XSHG': 1.1303558950819672}) + +**备注:** + +- 计算方式与通达信和同花顺相同,东方财富没有该指标 +- 通达信中HSCOL指标的计算方式与HSL完全相同,如果需要HSCOL,请以HSL做参考。 + +**用法注释:** + +1. 换手线是根据换手率绘制的曲线,使对于成交量的研判 +2. 不受股本变动的影响,更增加了成交量具有可比性。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 HSL 值 +HSL1,MAHSL1 = HSL(security_list1, check_date='2017-01-04', N = 5) +print HSL1[security_list1] +print MAHSL1[security_list1] + +# 输出 security_list2 的 HSL 值 +HSL2,MAHSL2 = HSL(security_list2, check_date='2017-01-04', N = 5) +for stock in security_list2: + print HSL2[stock] + print MAHSL2[stock] +``` + +### OBV-累积能量线 + +``` + +OBV(security_list, check_date, timeperiod=30, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- OBV 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 7606250650.0, '603177.XSHG': nan, '000002.XSHE': 10161140224.0, '601211.XSHG': 3422411336.0} + +**备注:** + +- 返回结果与通达信、同花顺、东方财富结果均不一致 + +**用法注释:** + +1.股价一顶比一顶高,而OBV 一顶比一顶低,暗示头部即将形成; 2.股价一底比一底低,而OBV 一底比一底高,暗示底部即将形成; 3.OBV 突破其N字形波动的高点次数达5 次时,为短线卖点; 4.OBV 跌破其N字形波动的低点次数达5 次时,为短线买点; 5.OBV 与ADVOL、PVT、WAD、ADL同属一组指标群,使用时应综合研判。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 OBV 值 +OBV1 = OBV(security_list1,check_date='2017-01-04', timeperiod=30) +print OBV1[security_list1] + +# 输出 security_list2 的 OBV 值 +OBV2 = OBV(security_list2,check_date='2017-01-04', timeperiod=30) +for stock in security_list2: + print OBV2[stock] +``` + +### VOL-成交量 + +``` + +VOL(security_list, check_date, M1=5, M2=10, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- VOL 和 MAVOL 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 500351.22999999998, '603177.XSHG': nan, '000002.XSHE': 2333030.52, '601211.XSHG': 153571.64999999999}, {'000001.XSHE': 430683.87, '603177.XSHG': nan, '000002.XSHE': 1890989.6699999999, '601211.XSHG': 172379.274}, {'000001.XSHE': 474050.94499999995, '603177.XSHG': nan, '000002.XSHE': 2246594.1269999999, '601211.XSHG': 205083.77899999998}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1. 成交量大,代表交投热络,可界定为热门股; +2. 底部起涨点出现大成交量(成交手数),代表攻击量; +3. 头部地区出现大成交量(成交手数),代表出货量; +4. 观察成交金额的变化,比观察成交手数更具意义,因为成交手数并未反应股价的涨跌的后所应支出的实际金额。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 VOL 值 +VOL1,MAVOL11,MAVOL12 = VOL(security_list1, check_date='2017-01-04', M1=5, M2=10) +print VOL1[security_list1] +print MAVOL11[security_list1] +print MAVOL12[security_list1] + +# 输出 security_list2 的 VOL 值 +VOL2,MAVOL21,MAVOL22 = VOL(security_list2, check_date='2017-01-04', M1=5, M2=10) +for stock in security_list2: + print VOL2[stock] + print MAVOL21[stock] + print MAVOL22[security_list1] +``` + +### VRSI-相对强弱量 + +``` + +VRSI(security_list, check_date, N1=6, N2=12, N3=24, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N1:统计的天数 N1 +- N2:统计的天数 N2 +- N3:统计的天数 N3 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- RSI1,VRSI2和VRSI3 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 50.467938637493823, '603177.XSHG': nan, '000002.XSHE': 50.382520845028509, '601211.XSHG': nan}, {'000001.XSHE': 49.322460708038193, '603177.XSHG': nan, '000002.XSHE': 51.166143930198224, '601211.XSHG': nan}, {'000001.XSHE': 49.251191741159232, '603177.XSHG': nan, '000002.XSHE': 51.867549823141722, '601211.XSHG': nan}) + +**备注:** + +- 计算方式与通达信和同花顺相同,东方财富没有该指标 + +**用法注释:** + +1. VRSI>20 为超买;VRSI<20 为超卖; +2. VRSI 以50为中界线,大于50视为多头行情,小于50视为空头行情; +3. VRSI 在80以上形成M头或头肩顶形态时,视为向下反转信号; +4. VRSI 在20以下形成W底或头肩底形态时,视为向上反转信号; +5. VRSI 向上突破其高点连线时,买进;VRSI 向下跌破其低点连线时,卖出。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 VRSI 值 +VRSI1,VRSI2,VRSI3 = VRSI(security_list1, check_date='2017-01-04', N1=6, N2=12, N3=24) +print VRSI1[security_list1] +print VRSI2[security_list1] +print VRSI3[security_list1] + +# 输出 security_list2 的 VRSI 值 +VRSI1,VRSI2,VRSI3 = VRSI(security_list2, check_date='2017-01-04', N1=6, N2=12, N3=24) +for stock in security_list2: + print VRSI1[stock] + print VRSI2[stock] + print VRSI3[stock] +``` + +### LB-量比 + +``` + +LB(security_list, check_date, N=5, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期时间 +- N:统计的天数 N +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 量比的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.98, '603177.XSHG': nan, '000002.XSHE': 1.25846}) + +**用法注释:** + +1. 量比是指股市开市后平均每分钟的成交量与过去N个交易日平均每分钟成交量之比 +2. 当天开盘截至到当前时刻(check_date),平均每分钟的成交手数,除以过去N天平均每分钟的成交手数,这里的unit就是分钟级别的,所以不用unit属性; + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 LB 值 +lb = LB(security_list1, check_date='2017-01-04 10:00:00', N=5) +print(lb[security_list1]) + +# 输出 security_list2 的 LB 值 +lb = LB(security_list2, check_date='2017-01-04', N=10) +for stock in security_list2: + print(lb[stock]) +``` + +## 均线型 + +### AMV-成本价均线 + +``` + +AMV(security_list, check_date, timeperiod = 13, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- AMV的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{‘000001.XSHE’: 8.2675000000000001, ‘603177.XSHG’: nan, ‘000002.XSHE’: 18.232499999999998, ‘601211.XSHG’: 16.314999999999998} + +**备注:** + +- 计算方式与通达信,同花顺相同,东方财富没有该指标 + +**用法注释:** + +- 成本价均线不同于一般移动平均线系统,成本价均线系统首次将成交量引入均线系统,充分提高均线系统的可靠性。同样对于成本价均线可以使用月均线系统(5,10,20,250)和季均线系统(20,40,60,250),另外成本价均线还可以使用自身特有的均线系统(5,13,34,250),称为市场平均建仓成本均线,简称成本价均线。在四个均线中参数为250的均线为年度均线,为行情支撑均线。成本均线不容易造成虚假信号或骗线,比如某日股价无量暴涨,移动均线会大幅拉升,但成本均线却不会大幅上升,因为在无量的情况下市场持仓成本不会有太大的变化。依据均线理论,当短期均线站在长期均线之上时叫多头排列,反之就叫空头排列。短期均线上穿长期均线叫金叉,短期均线下穿长期均线叫死叉。均线的多头排列是牛市的标志,空头排列是熊市的标志。均线系统一直是市场广泛认可的简单而可靠的分析指标,其使用要点是尽量做多头排列的股票,回避空头排列的股票。34日成本线是市场牛熊的重要的分水岭。一旦股价跌破34日成本线,则常常是最后的出逃机会。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 AMV 值 +AMV1 = AMV(security_list1,check_date='2017-01-04', timeperiod=13) +print AMV1[security_list1] + +# 输出 security_list2 的 AMV 值 +AMV2 = AMV(security_list2,check_date='2017-01-04', timeperiod=13) +for stock in security_list2: + print AMV2[stock] +``` + +### ALLIGAT-鳄鱼线 + +``` + +ALLIGAT(security_list, check_date, timeperiod = 21, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 上唇 牙齿 下颚 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.2959999999999976, '603177.XSHG': nan, '000002.XSHE': 18.943000000000001, '601211.XSHG': 16.442000000000004}, {'000001.XSHE': 8.3268749999999994, '603177.XSHG': nan, '000002.XSHE': 17.969375000000003, '601211.XSHG': 16.434999999999999}, {'000001.XSHE': 8.4411538461538456, '603177.XSHG': nan, '000002.XSHE': 15.414615384615388, '601211.XSHG': 16.79269230769231}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 + +**用法注释:** + +- 鳄鱼线是运用分形几何学和非线性动力学的一组平均线(实际上就是一种比较特别的均线)。它分为蓝、红、绿三条。 蓝线被称为鳄鱼的颚部,红线被称为鳄鱼的牙齿,绿色被称为鳄鱼的唇吻。 它们的构造方法如下: 颚部——13根价格线的平滑移动均线,并将数值向未来方向移动8根价格线; 牙齿——8根价格线的平滑移动平均线,并将数值向未来方向移动5根价格线; 唇吻——5根价格线的平滑移动均线,并将数值向未来方向移动3根价格线。 鳄鱼线的基本使用方法是: 当颚部、牙齿、唇吻纠缠在一起时,我们便进入了观望期(鳄鱼休息了) 当唇吻(绿)在牙齿(红)以上,牙齿在颚部(蓝)以上时,我们便进入了多头市场(颚鱼要开始吃牛肉了) 当唇吻在牙齿以下,牙齿在颚部以下时,我便进入了空头市场(鳄鱼要开始吃熊肉了) + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 ALLIGAT 值 +up1, teeth1, down1 = ALLIGAT(security_list1,check_date='2017-01-04', timeperiod = 21) +print up1[security_list1] +print teeth1[security_list1] +print down1[security_list1] + +# 输出 security_list2 的 ALLIGAT 值 +up2, teeth2, down2 = ALLIGAT(security_list2,check_date='2017-01-04', timeperiod = 21) +for stock in security_list2: + print up2[stock] + print teeth2[stock] + print down2[stock] +``` + +### BBI-多空均线 + +``` + +BBI(security_list, check_date, timeperiod1=3, timeperiod2=6, timeperiod3=12, timeperiod4=24, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod1:统计的天数 N1 +- timeperiod2:统计的天数 N2 +- timeperiod3:统计的天数 N3 +- timeperiod4:统计的天数 N4 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- BBI 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: {'000001.XSHE': 9.223020833333333, '603177.XSHG': nan, '000002.XSHE': 20.7265625, '601211.XSHG': 18.572187500000002} + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1.股价位于BBI 上方,视为多头市场; 2.股价位于BBI 下方,视为空头市场。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 BBI 值 +BBI1 = BBI(security_list1, check_date='2017-01-04', timeperiod1=3, timeperiod2=6, timeperiod3=12, timeperiod4=24) +print BBI1[security_list1] + +# 输出 security_list2 的 BBI 值 +BBI2 = BBI(security_list2, check_date='2017-01-04', timeperiod1=3, timeperiod2=6, timeperiod3=12, timeperiod4=24) +for stock in security_list2: + print BBI2[stock] +``` + +### EXPMA-指数平均线 + +``` + +EXPMA(security_list, check_date, timeperiod = 12, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- EXPMA的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 8.3341666666666665, '603177.XSHG': nan, '000002.XSHE': 19.265000000000001, '601211.XSHG': 16.537499999999998} + +**备注:** + +- 计算方式与同花顺、东方财富和通达信相同 + +**用法注释:** + +1. EXPMA 一般以观察12日和50日二条均线为主; +2. 12日指数平均线向上交叉50日指数平均线时,买进; +3. 12日指数平均线向下交叉50日指数平均线时,卖出; +4. EXPMA 是多种平均线计算方法的一; +5. EXPMA 配合MTM 指标使用,效果更佳。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 EXPMA 值 +EXPMA1 = EXPMA(security_list1,check_date='2017-01-04', timeperiod=12) +print EXPMA1[security_list1] + +# 输出 security_list2 的 EXPMA 值 +EXPMA2 = EXPMA(security_list2,check_date='2017-01-04', timeperiod=12) +for stock in security_list2: + print EXPMA2[stock] +``` + +### BBIBOLL-多空布林线 + +``` + +BBIBOLL(security_list, check_date, N = 11, M = 6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- N:统计的天数 +- M:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- BBIBOLL UPR DWN 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.3691666666666649, '603177.XSHG': nan, '000002.XSHE': 19.480520833333337, '601211.XSHG': 16.675729166666663}, {'000001.XSHE': 8.5978513909597396, '603177.XSHG': nan, '000002.XSHE': 24.940210721576193, '601211.XSHG': 17.285976571029227}, {'000001.XSHE': 8.1404819423735901, '603177.XSHG': nan, '000002.XSHE': 14.020830945090481, '601211.XSHG': 16.065481762304099}) + +**备注:** + +- 计算方式与通达信和同花顺相同,东方财富没有该指标 + +**用法注释:** + +1. 为BBI与BOLL的迭加; +2. 高价区收盘价跌破BBI线,卖出信号; +3. 低价区收盘价突破BBI线,买入信号; +4. BBI线向上,股价在BBI线之上,多头势强; +5. BBI线向下,股价在BBI线之下,空头势强。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 BBIBOLL 值 +bbi1, upr1, dwn1 = BBIBOLL(security_list1,check_date='2017-01-04', N = 11, M = 6) +print bbi1[security_list1] +print upr1[security_list1] +print dwn1[security_list1] + +# 输出 security_list2 的 BBIBOLL 值 +bbi2, upr2, dwn2 = BBIBOLL(security_list2,check_date='2017-01-04', N = 11, M = 6) +for stock in security_list2: + print bbi2[stock] + print upr2[stock] + print dwn2[stock] +``` + +### MA-均线 + +``` + +MA(security_list, check_date, timeperiod=5, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数timeperiod +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- MA 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 9.2599999999999998, '603177.XSHG': nan, '000002.XSHE': 20.68, '601211.XSHG': 18.704000000000001} + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +1.股价高于平均线,视为强势;股价低于平均线,视为弱势 2.平均线向上涨升,具有助涨力道;平均线向下跌降,具有助跌力道; 3.二条以上平均线向上交叉时,买进; 4.二条以上平均线向下交叉时,卖出; 5.移动平均线的信号经常落后股价,若以EXPMA 、VMA 辅助,可以改善。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 MA 值 +MA1 = MA(security_list1, check_date='2017-01-04', timeperiod=5) +print MA1[security_list1] + +# 输出 security_list2 的 MA 值 +MA2 = MA(security_list2, check_date='2017-01-04', timeperiod=5) +for stock in security_list2: + print MA2[stock] +``` + +### HMA-高价平均线 + +``` + +HMA(security_list, check_date, timeperiod = 12, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- HMA的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 8.3641666666666676, '603177.XSHG': nan, '000002.XSHE': 19.754999999999999, '601211.XSHG': 16.634166666666665} + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 一般移动平均线以收盘价为计算基础,高价平均线是以每日最高价为计算基础。目前市场上许多投资人将其运用在空头市场,认为它的压力效应比传统平均线更具参考价值。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 HMA 值 +HMA1 = HMA(security_list1,check_date='2017-01-04', timeperiod=12) +print HMA1[security_list1] + +# 输出 security_list2 的 HMA 值 +HMA2 = HMA(security_list2,check_date='2017-01-04', timeperiod=12) +for stock in security_list2: + print HMA2[stock] +``` + +### LMA-低价平均线 + +``` + +LMA(security_list, check_date, timeperiod = 12, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- LMA的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{‘000001.XSHE’: 8.2675000000000001, ‘603177.XSHG’: nan, ‘000002.XSHE’: 18.232499999999998, ‘601211.XSHG’: 16.314999999999998} + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 一般移动平均线以收盘价为计算基础,低价平均线是以每日最低价为计算基础。目前市场上许多投资人将其运用在多头市场,认为它的支撑效应比传统平均线更具参考价值。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 LMA 值 +LMA1 = LMA(security_list1,check_date='2017-01-04', timeperiod=12) +print LMA1[security_list1] + +# 输出 security_list2 的 LMA 值 +LMA2 = LMA(security_list2,check_date='2017-01-04', timeperiod=12) +for stock in security_list2: + print LMA2[stock] +``` + +### VMA-变异平均线 + +``` + +VMA(security_list, check_date, timeperiod = 12, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- VMA的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 8.3202083333333334, '603177.XSHG': nan, '000002.XSHE': 18.979166666666668, '601211.XSHG': 16.474166666666669} + +**备注:** + +- 计算方式与通达信和同花顺相同,东方财富没有该指标 + +**用法注释:** + +1. 股价高于平均线,视为强势;股价低于平均线,视为弱势; +2. 平均线向上涨升,具有助涨力道;平均线向下跌降,具有助跌力道; +3. 二条以上平均线向上交叉时,买进; +4. 二条以上平均线向下交叉时,卖出; +5. VMA 比一般平均线的敏感度更高,消除了部份平均线落后的缺陷。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 VMA 值 +VMA1 = VMA(security_list1,check_date='2017-01-04', timeperiod=12) +print VMA1[security_list1] + +# 输出 security_list2 的 VMA 值 +VMA2 = VMA(security_list2,check_date='2017-01-04', timeperiod=12) +for stock in security_list2: + print VMA2[stock] +``` + +## 路径型 + +### BOLL-布林线 + +``` + +Bollinger_Bands(security_list, check_date, timeperiod=20, nbdevup=2, nbdevdn=2, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数timeperiod +- nbdevup:统计的天数 nbdevup +- nbdevdn:统计的天数 nbdevdn +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 上轨线UB 、中轨线MB、下轨线LB 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: ({'000001.XSHE': 9.2899945886169739, '603177.XSHG': nan, '000002.XSHE': 21.378028110909778, '601211.XSHG': 18.846866409164456}, {'000001.XSHE': 9.1745000000000037, '603177.XSHG': nan, '000002.XSHE': 20.795500000000004, '601211.XSHG': 18.423999999999999}, {'000001.XSHE': 9.0590054113830334, '603177.XSHG': nan, '000002.XSHE': 20.21297188909023, '601211.XSHG': 18.001133590835543}) + +**备注:** + +- 计算方式与通达信、东方财富和同花顺相同 + +**用法注释:** + +1.股价上升穿越布林线上限时,回档机率大; 2.股价下跌穿越布林线下限时,反弹机率大; 3.布林线震动波带变窄时,表示变盘在即; 4.BOLL须配合BB 、WIDTH 使用; + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 BOLL 值 +upperband, middleband, lowerband = Bollinger_Bands(security_list1, check_date='2017-01-04', timeperiod=20, nbdevup=2, nbdevdn=2) +print upperband[security_list1] +print middleband[security_list1] +print lowerband[security_list1] + +# 输出 security_list2 的 BOLL 值 +upperband, middleband, lowerband = Bollinger_Bands(security_list2, check_date='2017-01-04', timeperiod=20, nbdevup=2, nbdevdn=2) +for stock in security_list2: + print upperband[stock] + print middleband[stock] + print lowerband[stock] +``` + +### ENE-轨道线 + +``` + +ENE(security_list,check_date,N=25,M1=6,M2=6, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- N:统计的天数 +- M1:统计的天数 +- M2:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- UPPER LOWER ENE的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.9341039999999996, '603177.XSHG': nan, '000002.XSHE': 17.686311999999997, '601211.XSHG': 17.851672000000001}, {'000001.XSHE': 7.9226959999999993, '603177.XSHG': nan, '000002.XSHE': 15.684087999999997, '601211.XSHG': 15.830727999999999}, {'000001.XSHE': 8.4283999999999999, '603177.XSHG': nan, '000002.XSHE': 16.685199999999998, '601211.XSHG': 16.841200000000001}) + +**备注:** + +- 计算方式与东方财富和通达信相同,同花顺没有该指标 + +**用法注释:** + +1. 股价上升穿越轨道线上限时,回档机率大; +2. 股价下跌穿越轨道线下限时,反弹机率大; +3. 股价波动于轨道线内时,代表常态行情,此时,超买超卖指标可发挥效用; +4. 股价波动于轨道线外时,代表脱轨行情,此时,应使用趋势型指标。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 ENE 值 +up1, low1, ENE1 = ENE(security_list1,check_date='2017-01-04',N=25,M1=6,M2=6) +print up1[security_list1] +print low1[security_list1] +print ENE1[security_list1] + +# 输出 security_list2 的 ENE 值 +up2, low2, ENE2 = ENE(security_list2,check_date='2017-01-04',N=25,M1=6,M2=6) +for stock in security_list2: + print up2[stock] + print low2[stock] + print ENE2[stock] +``` + +### MIKE-麦克支撑压力 + +``` + +MIKE(security_list, check_date, timeperiod = 10, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- STOR MIDR WEKR WEKS MIDS STOS 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.6416666666666675, '603177.XSHG': nan, '000002.XSHE': 26.2775, '601211.XSHG': 17.473333333333329}, {'000001.XSHE': 8.5164999999999988, '603177.XSHG': nan, '000002.XSHE': 23.604055555555551, '601211.XSHG': 17.071111111111108}, {'000001.XSHE': 8.3913333333333338, '603177.XSHG': nan, '000002.XSHE': 20.930611111111112, '601211.XSHG': 16.668888888888887}, {'000001.XSHE': 8.1854999999999993, '603177.XSHG': nan, '000002.XSHE': 15.899777777777777, '601211.XSHG': 16.035555555555558}, {'000001.XSHE': 8.1048333333333336, '603177.XSHG': nan, '000002.XSHE': 13.542388888888889, '601211.XSHG': 15.804444444444448}, {'000001.XSHE': 8.024166666666666, '603177.XSHG': nan, '000002.XSHE': 11.185, '601211.XSHG': 15.573333333333336}) + +**备注:** + +- 计算方式与通达信和东方财富相同,与同花顺不同 + +**用法注释:** + +1. MIKE指标共有六条曲线,上方三条压力线,下方三条支撑线; +2. 当股价往压力线方向涨升时,其下方支撑线不具参考价值; +3. 当股价往支撑线方向下跌时,其上方压力线不具参考价值; + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 MIKE 值 +stor1, midr1, wekr1, weks1, mids1, stos1 = MIKE(security_list1,check_date='2017-01-04',timeperiod = 10) +print stor1[security_list1] +print midr1[security_list1] +print wekr1[security_list1] +print weks1[security_list1] +print mids1[security_list1] +print stos1[security_list1] + +# 输出 security_list2 的 MIKE 值 +stor2, midr2, wekr2, weks2, mids2, stos2 = MIKE(security_list2,check_date='2017-01-04', timeperiod = 10) +for stock in security_list2: + print stor2[stock] + print midr2[stock] + print wekr2[stock] + print weks2[stock] + print mids2[stock] + print stos2[stock] +``` + +### PBX-瀑布线 + +``` + +PBX(security_list, check_date, timeperiod = 9, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- PBX的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 8.4039531237966347, '603177.XSHG': nan, '000002.XSHE': 17.843806850286313, '601211.XSHG': 16.843910079955958} + +**备注:** + +- 计算方式与通达信和同花顺相同,东方财富没有该指标 + +**用法注释:** + +1. 股价上升穿越轨道线上限时,回档机率大; +2. 股价下跌穿越轨道线下限时,反弹机率大; +3. 股价波动于轨道线内时,代表常态行情,此时,超买超卖指标可发挥效用; +4. 股价波动于轨道线外时,代表脱轨行情,此时,应使用趋势型指标。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 PBX 值 +PBX1 = PBX(security_list1,check_date='2017-01-04', timeperiod = 9) +print PBX1[security_list1] + +# 输出 security_list2 的 PBX 值 +PBX2 = PBX(security_list2,check_date='2017-01-04', timeperiod = 9) +for stock in security_list2: + print PBX2[stock] +``` + +### XS-薛斯通道 + +``` + +XS(security_list, check_date, timeperiod = 13, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- SUP SDN LUP LDN 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.919597907192415, '603177.XSHG': nan, '000002.XSHE': 19.023175426273021, '601211.XSHG': 17.912385099606233}, {'000001.XSHE': 7.9098321063781789, '603177.XSHG': nan, '000002.XSHE': 16.869608396883621, '601211.XSHG': 15.884567918518734}, {'000001.XSHE': 9.5082405240369283, '603177.XSHG': nan, '000002.XSHE': 21.585636157538445, '601211.XSHG': 18.877898148622897}, {'000001.XSHE': 7.1728832023436473, '603177.XSHG': nan, '000002.XSHE': 16.283900960950056, '601211.XSHG': 14.241221410364643}) + +**备注:** + +- 计算方式与通达信相同,与东方财富不同,同花顺没有该指标 + +**用法注释:** + +- 薛斯建立于薛斯的循环理论的基础上,属于短线指标。在薛斯通道中,股价实际上是被短期小通道包容着在长期大通道中上下运行,基本买卖策略是当短期小通道接近长期大通道时,预示着趋势的近期反转。在上沿接近时趋势向下反转,可扑捉短期卖点。在下沿接近时趋势向上反转,可捕捉短期买点。研究这个方法可以在每一波行情中成功地逃顶捉底,寻求最大限度的赢利。薛斯通道的研判法则: + +1. 长期大通道是反映该股票的长期趋势状态,趋势有一定惯性,延伸时间较长,反映股票大周期,可以反握 股票整体趋势,适于中长线投资; +2. 短期小通道反映该股票的短期走势状态,包容股票的涨跌起伏,有效地滤除股票走势中的频繁振动,但保留了股票价格在大通道内的上下波动,反映股票小周期,适于中短线炒作; +3. 长期大通道向上,即大趋势总体向上 ,此时短期小通道触及(或接近长期大通道底部时,即买压增大,有反弹的可能。而短期小通道触及长期大通道顶部,既卖压增大,形态出现回调或盘整,有向长期大通道靠近的趋势。如果K线走势与短期小通道走势亦吻合得很好,那么更为有效; +4. 长期大通道向上,而短期小通道触及长期大通道顶此时该股为强力拉长阶段,可适当观望,待短期转平转头向下时,为较好出货点,但穿透区为风险区应注意反转信号,随时出货; +5. 长期大通道向下,即大趋势向下,此时短期小通道或价触顶卖压增加,有再次下跌趋势。而触底形态即买增大,有缓跌调整或止跌要求,同时价格运动将趋向近长期大通道上沿。回调宜慎重对待,待确认反转后方可买入; +6. 长期大通道向下,而短期小通道向下穿透长期大通道线,此时多为暴跌过程,有反弹要求,但下跌过程会续,不宜立即建仓,应慎重,待长期大通道走平且有上趋势,短期小通道回头向上穿回时,是较好的低位仓机会; +7. 当长期大通道长期横向走平时,为盘整行情,价格沿道上下震荡,此时为调整、建仓、洗盘阶段,预示着一轮行情的出现,短线炒家可逢高抛出,逢低买入。以短期小通道强力上穿长期大通道,且长期大通道转向,表明强劲上涨行情开始。若以短期小通道向下透长期大通道,且长期大通道向下转向,表明下跌将续。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 XS 值 +sup1, sdn1, lup1, ldn1 = XS(security_list1,check_date='2017-01-04',timeperiod = 13) +print sup1[security_list1] +print sdn1[security_list1] +print lup1[security_list1] +print ldn1[security_list1] + +# 输出 security_list2 的 XS 值 +sup2, sdn2, lup2, ldn2 = XS(security_list2,check_date='2017-01-04', timeperiod = 13) +for stock in security_list2: + print sup2[stock] + print sdn2[stock] + print lup2[stock] + print ldn2[stock] +``` + +### XS2-薛斯通道2 + +``` + +XS2(security_list, check_date, N = 102, M = 7, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- N:统计的天数 +- M:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- PASS1 PASS2 PASS3 PASS4 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.4950699999999948, '603177.XSHG': nan, '000002.XSHE': 20.858490000000007, '601211.XSHG': 16.910580000000024}, {'000001.XSHE': 8.1619299999999946, '603177.XSHG': nan, '000002.XSHE': 20.040510000000005, '601211.XSHG': 16.247420000000023}, {'000001.XSHE': 8.902368598745646, '603177.XSHG': nan, '000002.XSHE': 22.024829980205435, '601211.XSHG': 18.300698543678497}, {'000001.XSHE': 7.7375727073209815, '603177.XSHG': nan, '000002.XSHE': 19.143076524851448, '601211.XSHG': 15.9062146220757}) + +**备注:** + +- 计算方式与通达信和相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 特点: + +1. 根据通道形态找出波动的短周期,长周期是多少。 +2. 根据周期预测股票的后期走势。 +3. 股价的波动周期的各底是买入时机,股价的波动各顶是卖出时机。 + +- 用法: + +1. 当股价运行到短周期通道的下轨时是短线买入机会,当股价运行到短周期通道的上轨时是短线的卖出时机。 +2. 当股价运行到长周期的下轨时是中长线买入时机,而当股价运行到长周期的上轨时是中长线的卖出时机。 +3. 当短周期运行到长周期的下轨时,从下向上突破长周期的下轨时是买入时机,而当短周期运行到长周期的上轨时,从上向下突破长周期的上轨时为卖出时机。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 XS2 值 +pass1, pass2, pass3, pass4 = XS2(security_list1,check_date='2017-01-04',N=102,M=7) +print pass1[security_list1] +print pass2[security_list1] +print pass3[security_list1] +print pass4[security_list1] + +# 输出 security_list2 的 XS2 值 +pass_1, pass_2, pass_3, pass_4 = XS2(security_list2,check_date='2017-01-04', N=102,M=7) +for stock in security_list2: + print pass_1[stock] + print pass_2[stock] + print pass_3[stock] + print pass_4[stock] +``` + +## 其他型 + +### EMA-指数移动平均 + +``` + +EMA(security_list, check_date, timeperiod=30, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数timeperiod +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- EMA 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如: {'000001.XSHE': 9.2093998886039152, '603177.XSHG': nan, '000002.XSHE': 21.508006572807883, '601211.XSHG': 18.477471693552996} + +**备注:** + +- EMA(X,N),求X的N日指数平滑移动平均。 +- 通达信,同花顺和东方财富软件中没有独立的EMA指标,但在技术指标公式中很常见 + +**用法注释:** + +返回指数移动平均 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 EMA 值 +EMA1 = EMA(security_list1, check_date='2017-01-04', timeperiod=30) +print EMA1[security_list1] + +# 输出 security_list2 的 EMA 值 +EMA2 = EMA(security_list2, check_date='2017-01-04', timeperiod=30) +for stock in security_list2: + print EMA2[stock] +``` + +### SMA-移动平均 + +``` + +SMA(security_list, check_date, N = 7, M = 1, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- M:权重 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- SMA(X的 N 日移动平均) 的值。 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 9.2162678826932893, '603177.XSHG': nan, '000002.XSHE': 20.728620789626724, '601211.XSHG': 18.560024926286996} + +**备注:** + +- SMA(X, N, M), 求X的N日移动平均,M为权重。 +- 与EMA指标类似,通达信,同花顺和东方财富软件中都没有独立的SMA指标,但在技术指标公式中很常见 + +**用法注释:** + +返回移动平均 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 SMA 值 +SMA1 = SMA(security_list1, check_date='2017-01-04', N = 7, M = 1) +print SMA1[security_list1] + +# 输出 security_list2 的 SMA 值 +SMA2 = SMA(security_list2, check_date='2017-01-04', N = 7, M = 1) +for stock in security_list2: + print SMA2[stock] +``` + +### BDZX-波段之星 + +``` + +BDZX(security_list, check_date, timeperiod = 40, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- AK AD1 AJ AA BB CC BUY SELL的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 22.397881644648351, '603177.XSHG': nan, '000002.XSHE': 108.93248196853847, '601211.XSHG': 18.728878312355658}, {'000001.XSHE': 15.461025692779121, '603177.XSHG': nan, '000002.XSHE': 105.76639666053059, '601211.XSHG': 10.553105095800039}, {'000001.XSHE': 36.271593548386811, '603177.XSHG': nan, '000002.XSHE': 115.26465258455423, '601211.XSHG': 35.080424745466892}, {'000001.XSHE': 100, '603177.XSHG': nan, '000002.XSHE': 100, '601211.XSHG': 100}, {'000001.XSHE': 0, '603177.XSHG': nan, '000002.XSHE': 0, '601211.XSHG': 0}, {'000001.XSHE': 80, '603177.XSHG': nan, '000002.XSHE': 80, '601211.XSHG': 80}, {'000001.XSHE': 20, '603177.XSHG': nan, '000002.XSHE': 20, '601211.XSHG': 20}, {'000001.XSHE': 20, '603177.XSHG': nan, '000002.XSHE': 20, '601211.XSHG': 20}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的BDZX值 +ak1, ad11, aj1, aa1, bb1, cc1, buy1, sell1 = BDZX(security_list1,check_date='2017-01-04',timeperiod = 40) +print ak1[security_list1] +print ad11[security_list1] +print aj1[security_list1] +print aa1[security_list1] +print bb1[security_list1] +print cc1[security_list1] +print buy1[security_list1] +print sell1[security_list1] + +# 输出 security_list2 的BDZX值 +ak2, ad12, aj2, aa2, bb2, cc2, buy2, sell2 = BDZX(security_list2,check_date='2017-01-04',timeperiod = 40) +for stock in security_list2: + print ak2[stock] + print ad12[stock] + print aj2[stock] + print aa2[stock] + print bb2[stock] + print cc2[stock] + print buy2[stock] + print sell2[stock] +``` + +### CDP-STD-逆势操作 + +``` + +CDP_STD(security_list, check_date, timeperiod = 2, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- CDP AH NH NL AL的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.2999999999999989, '603177.XSHG': nan, '000002.XSHE': 20.716666666666669, '601211.XSHG': 16.420000000000002}, {'000001.XSHE': 8.3999999999999986, '603177.XSHG': nan, '000002.XSHE': 23.683333333333337, '601211.XSHG': 16.839999999999996}, {'000001.XSHE': 8.3399999999999981, '603177.XSHG': nan, '000002.XSHE': 21.903333333333336, '601211.XSHG': 16.580000000000002}, {'000001.XSHE': 8.2799999999999976, '603177.XSHG': nan, '000002.XSHE': 20.123333333333338, '601211.XSHG': 16.320000000000004}, {'000001.XSHE': 8.2199999999999971, '603177.XSHG': nan, '000002.XSHE': 18.343333333333341, '601211.XSHG': 16.060000000000006}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +1. 在股价波动不是很大的情况下,即开盘价位在近高值与近低值之间时,通常交易者可以在近低值价位买进,而在近高值 价位卖出,或在近高值价位卖出,近低值价位买进; +2. 当开盘价开在最高值或最低值附近时,则意味着跳空开高跳空开低,是一个大行情发动的开始; +3. 投资者可以在最高值的价位去追买,在最低值的价位去追。通常,一个跳空意味着强烈的涨跌,一般有相当利润。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CDP_STD 值 +cdp1, ah1, nh1, nl1, al1 = CDP_STD(security_list1,check_date='2017-01-04',timeperiod = 2) +print cdp1[security_list1] +print ah1[security_list1] +print nh1[security_list1] +print nl1[security_list1] +print al1[security_list1] + +# 输出 security_list2 的 CDP_STD 值 +cdp2, ah2, nh2, nl2, al2 = CDP_STD(security_list2,check_date='2017-01-04',timeperiod = 2) +for stock in security_list2: + print cdp2[stock] + print ah2[stock] + print nh2[stock] + print nl2[stock] + print al2[stock] +``` + +### CJDX-超级短线 + +``` + +CJDX(security_list, check_date, timeperiod = 16, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- J D X 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.11002480230239936, '603177.XSHG': nan, '000002.XSHE': 2.6556460504346004, '601211.XSHG': 0.29901270180941614}, {'000001.XSHE': -0.01320344720107162, '603177.XSHG': nan, '000002.XSHE': 2.1633636400906964, '601211.XSHG': 0.077664343546118675}, {'000001.XSHE': 0.11002480230239936, '603177.XSHG': nan, '000002.XSHE': 2.6556460504346004, '601211.XSHG': 0.29901270180941614}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CJDX 值 +j1, d1, x1 = CJDX(security_list1,check_date='2017-01-04',timeperiod = 16) +print j1[security_list1] +print d1[security_list1] +print x1[security_list1] + +# 输出 security_list2 的 CJDX 值 +j2, d2, x2 = CJDX(security_list2,check_date='2017-01-04', timeperiod = 16) +for stock in security_list2: + print j2[stock] + print d2[stock] + print x2[stock] +``` + +### CYHT-财运亨通 + +``` + +CYHT(security_list, check_date, timeperiod = 60, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 高抛 SK SD 低吸 强弱分界 卖出 买进的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 80, '603177.XSHG': nan, '000002.XSHE': 80, '601211.XSHG': 80}, {'000001.XSHE': 17.929490206459231, '603177.XSHG': nan, '000002.XSHE': 83.601127541849465, '601211.XSHG': 12.914568429828984}, {'000001.XSHE': 17.146097465013412, '603177.XSHG': nan, '000002.XSHE': 82.349398031667931, '601211.XSHG': 11.993894956959814}, {'000001.XSHE': 20, '603177.XSHG': nan, '000002.XSHE': 20, '601211.XSHG': 20}, {'000001.XSHE': 50, '603177.XSHG': nan, '000002.XSHE': 50, '601211.XSHG': 50}, {'000001.XSHE': 78, '603177.XSHG': nan, '000002.XSHE': 78, '601211.XSHG': 78}, {'000001.XSHE': 40, '603177.XSHG': nan, '000002.XSHE': 22, '601211.XSHG': 40}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CYHT 值 +h_throw1, sk1, sd1, weak1, bound1, sell1, buy1 = CYHT(security_list1,check_date='2017-07-03', timeperiod = 60) +print h_throw1[security_list1] +print sk1[security_list1] +print sd1[security_list1] +print weak1[security_list1] +print bound1[security_list1] +print sell1[security_list1] +print buy1[security_list1] + +# 输出 security_list2 的 CYHT 值 +h_throw2, sk2, sd2, weak2, bound2, sell2, buy2 = CYHT(security_list2,check_date='2016-01-04', timeperiod = 60) +for stock in security_list2: + print h_throw2[stock] + print sk2[stock] + print sd2[stock] + print weak2[stock] + print bound2[stock] + print sell2[stock] + print buy2[stock] +``` + +### JAX-济安线 + +``` + +JAX(security_list, check_date, timeperiod = 30, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- JAX的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8.5740591143944016, '603177.XSHG': nan, '000002.XSHE': 20.897541170540642, '601211.XSHG': 17.019535303955521}, {'000001.XSHE': 8.5740591143944016, '603177.XSHG': nan, '000002.XSHE': nan, '601211.XSHG': 17.019535303955521}, {'000001.XSHE': 8.308706269396076, '603177.XSHG': nan, '000002.XSHE': 21.390565309524611, '601211.XSHG': 16.648839215213961}, {'000001.XSHE': 8.308706269396076, '603177.XSHG': nan, '000002.XSHE': nan, '601211.XSHG': 16.648839215213961}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 随行情自动调整参数,在济安线上面做多,重心价低于济安线做空。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 JAX 值 +jax1, j1, a1, x1 = JAX(security_list1,check_date='2017-01-04',timeperiod = 30) +print jax1[security_list1] +print j1[security_list1] +print a1[security_list1] +print x1[security_list1] + +# 输出 security_list2 的 JAX 值 +jax2, j2, a2, x2 = JAX(security_list2,check_date='2017-01-04', timeperiod = 30) +for stock in security_list2: + print jax2[stock] + print j2[stock] + print a2[stock] + print x2[stock] +``` + +### JFZX-飓风智能中线 + +``` + +JFZX(security_list, check_date, timeperiod = 30, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 多头力量 空头力量 多空平衡的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 51.561349115382981, '603177.XSHG': nan, '000002.XSHE': 74.378474653808553, '601211.XSHG': 45.557918745746676}, {'000001.XSHE': 48.438650884617019, '603177.XSHG': nan, '000002.XSHE': 25.621525346191447, '601211.XSHG': 54.442081254253324}, {'000001.XSHE': 50, '603177.XSHG': nan, '000002.XSHE': 50, '601211.XSHG': 50}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 JFZX 值 +most1, empty1, balance1 = JFZX(security_list1,check_date='2017-01-04',timeperiod = 30) +print most1[security_list1] +print empty1[security_list1] +print balance1[security_list1] +# 输出 security_list2 的 JFZX 值 +most2, empty2, balance2 = JFZX(security_list2,check_date='2017-01-04', timeperiod = 30) +for stock in security_list2: + print most2[stock] + print empty2[stock] + print balance2[stock] +``` + +### JYJL-交易参考均量 + +``` + +JYJL(security_list, check_date, N = 120, M = 5, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- N:统计的天数 +- M:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 单位时间总量 单位时间内均量的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 7182321907.0, '603177.XSHG': nan, '000002.XSHE': 21805306577.0, '601211.XSHG': 4912822384.0}, {'000001.XSHE': 299263412.79166663, '603177.XSHG': nan, '000002.XSHE': 908554440.70833337, '601211.XSHG': 204700932.66666666}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 JYJL 值 +com1, per1 = JYJL(security_list1,check_date='2017-01-04',N = 120, M = 5) +print com1[security_list1] +print per1[security_list1] +# 输出 security_list2 的 JYJL 值 +com2, per2 = JYJL(security_list2,check_date='2017-01-04', N = 120, M = 5) +for stock in security_list2: + print com2[stock] + print per2[stock] +``` + +### LHXJ-猎狐先觉 + +``` + +LHXJ(security_list, check_date, timeperiod = 100, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 弃盘 控盘 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': -0.078954910995084795, '603177.XSHG': nan, '000002.XSHE': -2.4117024942960295, '601211.XSHG': -0.55041969706332594}, {'000001.XSHE': 0.078954910995084795, '603177.XSHG': nan, '000002.XSHE': 2.4117024942960295, '601211.XSHG': 0.55041969706332594}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 LHXJ 值 +give_up1, control1 = LHXJ(security_list1,check_date='2017-01-04',timeperiod = 100) +print give_up1[security_list1] +print control1[security_list1] +# 输出 security_list2 的 LHXJ 值 +give_up2, control2 = LHXJ(security_list2,check_date='2017-01-04', timeperiod = 100) +for stock in security_list2: + print give_up2[stock] + print control2[stock] +``` + +### LYJH-猎鹰歼狐 + +``` + +LYJH(security_list, check_date, M = 80, M1 = 50, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- M:统计的天 +- M1:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- EMPTY MOST LH LH1的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 70.233318935447187, '603177.XSHG': nan, '000002.XSHE': 3.3460592852753157, '601211.XSHG': 75.765157023322814}, {'000001.XSHE': 41.673107311405985, '603177.XSHG': nan, '000002.XSHE': 77.29146032043505, '601211.XSHG': 43.650685322144895}, {'000001.XSHE': 80, '603177.XSHG': nan, '000002.XSHE': 80, '601211.XSHG': 80}, {'000001.XSHE': 50, '603177.XSHG': nan, '000002.XSHE': 50, '601211.XSHG': 50}) + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 LYJH 值 +empty1, most1, lh1, lh11 = LYJH(security_list1,check_date='2017-01-04',M = 80, M1 = 50) +print empty1[security_list1] +print most1[security_list1] +print lh1[security_list1] +print lh11[security_list1] + +# 输出 security_list2 的 LYJH 值 +empty2, most2, lh2, lh12 = LYJH(security_list2,check_date='2017-01-04',M = 80, M1 = 50) +for stock in security_list2: + print empty2[stock] + print most2[stock] + print lh2[stock] + print lh12[stock] +``` + +### TBP-STD-趋势平衡点 + +``` + +TBP_STD(security_list, check_date, timeperiod=30, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- tbp,多头获利,多头停损,空头回补和空头停损的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 7.6199999999999992, '603177.XSHG': nan, '000002.XSHE': 19.489999999999998, '601211.XSHG': 14.91}, {'000001.XSHE': 7.9133333333333331, '603177.XSHG': nan, '000002.XSHE': 21.903333333333336, '601211.XSHG': 15.940000000000001}, {'000001.XSHE': 7.4466666666666663, '603177.XSHG': nan, '000002.XSHE': 18.786666666666669, '601211.XSHG': 14.67}, {'000001.XSHE': nan, '603177.XSHG': nan, '000002.XSHE': nan, '601211.XSHG': nan}, {'000001.XSHE': nan, '603177.XSHG': nan, '000002.XSHE': nan, '601211.XSHG': nan}) + +**备注:** + +- 计算方式与通达信一致,东方财富和同花顺没有该指标 + +**用法注释:** + +- 一.开始进场 + +1. 当收盘价高于TBP时,在收盘的那一刻,应该进场买入股票; +2. 当收盘价低于TBP时,在收盘的那一刻,应该卖出股票出场或融券放空; +- 二.市况反转(股价未触及了结点或停损点时) + +1. 当收盘价高于TBP时,在收盘的那一刻,应该把空头交易改为多头交易; +2. 当收盘价低于TBP时,在收盘的那一刻,应该把多头交易改为空头交易; +- 三.出场 + +1. 当股价抵达了结点时,应获利了结出场,但不能反转; +2. 当股价碰触停损点时,应停损出场,但不能反转; +- 四.重新进场 + +1. 出场后,须依据收盘时的TBP来决定是否重新进场; +- 五.决定明天的TBP + +1. 如果市况是多头,则先挑出前两天速量因子中较小者,然后,再与昨天的收盘价相加,即可求出明天的TBP; +2. 如果市况是空头,则先挑出前两天速量加子中较大者,然后,再与昨天的收盘 价相加,即可求出明天的TBP。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 TBP-STD 值 +tbp,dthl,dtts,kthb,ktts = TBP_STD(security_list1, check_date='2017-01-04', timeperiod=30) +print tbp[security_list1] +print dthl[security_list1] +print dtts[security_list1] +print dthb[security_list1] +print dtts[security_list1] +# 输出 security_list2 的 TBP-STD 值 +tbp,dthl,dtts,kthb,ktts = TBP_STD(security_list1, check_date='2017-01-04', timeperiod=30) +for stock in security_list2: + print tbp[stock] + print dthl[stock] + print dtts[stock] + print dthb[stock] + print dtts[stock] +``` + +### ZBCD-准备抄底 + +``` + +ZBCD(security_list, check_date, timeperiod = 10, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date: 要查询数据的日期 +- timeperiod:统计的天数 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 抄底 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 2.2391834797025112, '603177.XSHG': nan, '000002.XSHE': 22.322622024365632, '601211.XSHG': 4.8837093022246734} + +**备注:** + +- 计算方式与通达信相同,东方财富和同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 ZBCD 值 +cd1 = ZBCD(security_list1,check_date='2017-01-04',timeperiod = 10) +print cd1[security_list1] + +# 输出 security_list2 的 ZBCD 值 +cd2 = ZBCD(security_list2,check_date='2017-01-04', timeperiod = 10) +for stock in security_list2: + print cd2[stock] +``` + +## 神系 + +### SG-SMX-生命线 + +``` + +SG_SMX(index_stock, security_list, check_date, N = 50, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock: 大盘股票代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- ZY1, ZY2 和 ZY3 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:({'000001.XSHE': 1.8249767841949445, '603177.XSHG': nan, '000002.XSHE': 4.1215983992887697, '601211.XSHG': 3.6984717987521352}, {'000001.XSHE': 1.8127958869845739, '603177.XSHG': nan, '000002.XSHE': 4.1584984587193548, '601211.XSHG': 3.6942602296341875}, {'000001.XSHE': 1.7890675015767712, '603177.XSHG': nan, '000002.XSHE': 4.2813808808869398, '601211.XSHG': 3.6389978817776334}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 +- 没有计算通达信公式中跟输出结果无关的数据 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +index_stock = '399001.XSHE' +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 SMX 值 +ZY1, ZY2, ZY3 = SG_SMX(index_stock, security_list1, check_date='2017-01-04', N = 50) +print ZY1[security_list1] +print ZY2[security_list1] +print ZY3[security_list1] + +# 输出 security_list2 的 SMX 值 +ZY1, ZY2, ZY3 = SG_SMX(index_stock, security_list2, check_date='2017-01-04', N = 50) +for stock in security_list2: + print ZY1[stock] + print ZY2[stock] + print ZY3[stock] +``` + +### SG-LB-量比 + +``` + +SG_LB(index_stock, security_list, check_date, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock: 大盘股票代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- SG_LB,MA5和MA10 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:({'000001.XSHE': 10.109096220368592, '603177.XSHG': nan, '000002.XSHE': 2.7192841800000771, '601211.XSHG': 4.0452705438643175}, {'000001.XSHE': 8.6241703174432391, '603177.XSHG': nan, '000002.XSHE': 2.9900942255843939, '601211.XSHG': 4.4009642301227458}, {'000001.XSHE': 9.0082294808292254, '603177.XSHG': nan, '000002.XSHE': 3.9101232166994464, '601211.XSHG': 4.6234315070278713}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +index_stock = '399106.XSHE' +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 SG-LB 值 +LB,MA5,MA10 = SG_LB(index_stock, security_list1, check_date='2017-01-04') +print LB[security_list1] +print MA5[security_list1] +print MA10[security_list1] + +# 输出 security_list2 的 SG-LB 值 +LB,MA5,MA10 = SG_LB(index_stock, security_list2, check_date='2017-01-04') +for stock in security_list2: + print LB[stock] + print MA5[stock] + print MA10[stock] +``` + +### SG-PF-强势股评分 + +``` + +SG_PF(index_stock, security_list, check_date, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock:大盘股票代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 强势股评分 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:{'000001.XSHE': 20, '603177.XSHG': nan, '000002.XSHE': 15, '601211.XSHG': 10} + +**备注:** + +- 计算方式与通达信和同花顺不完全一致,东方财富没有该指标 +- 对公式有修改,将计算A1,A2,A3,A4的公式(如 A1:IF(ZY1>HHV(ZY1,3),10,0);)修改为A1:IF(ZY1>=HHV(ZY1,3),10,0),原因在于条件ZY1>HHV(ZY1,3)永不成立,就没有存在的意义,且考虑到公式是求一支股票的强势程度,即今天的ZY1是N日内的最大值,所以加了等于号 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +index_stock = '399001.XSHE' +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 SG-PF 值 +PF1 = SG_PF(index_stock, security_list1, check_date='2017-01-04') +print PF1[security_list1] + +# 输出 security_list2 的 SG-PF 值 +PF2 = SG_PF(index_stock, security_list2, check_date='2017-01-04') +for stock in security_list2: + print PF2[stock] +``` + +### XDT-心电图 + +``` + +XDT(index_stock,security_list, check_date, P1 = 5, P2 = 10, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- P1:统计的天数 P1 +- P2:统计的天数 P2 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- QR,MAQR1和MAQR2 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 0.91082877183074495, '603177.XSHG': nan, '000002.XSHE': 2.0548217717445239, '601211.XSHG': 1.8365403667306197}, {'000001.XSHE': 0.91460263585968915, '603177.XSHG': nan, '000002.XSHE': 2.0651657576824887, '601211.XSHG': 1.8592000444660219}, {'000001.XSHE': 0.91681359839247212, '603177.XSHG': nan, '000002.XSHE': 2.0851497017887906, '601211.XSHG': 1.8742782030819618}) + +**备注:** + +- 计算方式与通达信,同花顺和东方财富相同 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +index_stock = '399001.XSHE' +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 XDT 值 +QR1,MAQR11,MAQR12 = XDT(index_stock, security_list1, check_date='2017-01-04', P1 = 5, P2 = 10) +print QR1[security_list1] +print MAQR11[security_list1] +print MAQR12[security_list1] + +# 输出 security_list2 的 XDT 值 +QR2,MAQR21,MAQR22 = XDT(index_stock, security_list2, check_date='2017-01-04', P1 = 5, P2 = 10) +for stock in security_list2: + print QR2[stock] + print MAQR21[stock] + print MAQR22[stock] +``` + +## 龙系 + +### ZLMM-主力买卖 + +``` + +ZLMM(security_list, check_date, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- MMS, MMM和MML 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 81.84073256710262, '603177.XSHG': 100.0, '000002.XSHE': 55.243339562598599, '601211.XSHG': 66.72863363565412}, {'000001.XSHE': 77.146636073746109, '603177.XSHG': 100.0, '000002.XSHE': 49.409986856429853, '601211.XSHG': 63.28540263029231}, {'000001.XSHE': 56.074044372334619, '603177.XSHG': 100.00000000000001, '000002.XSHE': 37.402631031296416, '601211.XSHG': 53.621023102642006}) + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +白线为短期趋势线,黄线为中期趋势线,紫线为长期趋势线。 + +1. 主力买卖与主力进出配合使用时准确率极高。 +2. 当底部构成发出信号,且主力进出线向上时判断买点,准确率极高。 +3. 当短线上穿中线及长线时,形成最佳短线买点交叉形态(如底部构成已发出信号或主力进出线也向上且短线乖离率不大时)。 +4. 当短线、中线均上穿长线,形成中线最佳买点形态(如底部构成已发出信号或主力进出线也向上且三线均向上时)。 +5. 当短线下穿中线,且短线与长线正乖离率太大时,形成短线最佳卖点交叉形态。 +6. 当短线、中线下穿长线,且是主力进出已走平或下降时,形成中线最佳卖点交叉形态。 +7. 在上升途中,短、中线回落受长线支撑再度上行之时,为较佳的买入时机。 +8. 指标在0以上表明个股处于强势,指标跌穿0线表明该股步入弱势。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 ZLMM 值 +MMS1,MMM1,MML1 = ZLMM(security_list1, check_date='2017-01-04') +print MMS1[security_list1] +print MMM1[security_list1] +print MML1[security_list1] + +# 输出 security_list2 的 ZLMM 值 +MMS2,MMM2,MML2 = ZLMM(security_list2, check_date='2017-01-04') +for stock in security_list2: + print MMS2[stock] + print MMM2[stock] + print MML2[stock] +``` + +### RAD-威力雷达 + +``` + +RAD(index_stock, security_list, check_date, D=3, S=30, M=30, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- index_stock:大盘股票代码 +- security_list:股票列表 +- check_date:要查询数据的日期 +- D:统计的天数 D +- S:统计的天数 S +- M:统计的天数 M +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- RADER1和RADERMA 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为股票代码,值(value)为数据。 +- 如:({'000001.XSHE': 41.007798368877012, '603177.XSHG': nan, '000002.XSHE': -124.32686046196363, '601211.XSHG': 31.098497424710864}, {'000001.XSHE': 61.801642266353412, '603177.XSHG': nan, '000002.XSHE': -145.61770337759745, '601211.XSHG': 89.416830374282384}) + +**备注:** + +- RADERMA与通达信存在不大于1的差异,与另外两者结果不一致;三家炒股软件的RADERMA值也各不相同,应该是在计算RADERMA时设置的RADER1数据的长度不同造成的 +- 计算方式与通达信和东方财富相同,与同花顺不相同 + +**用法注释:** + +1. RAD 曲线往上跷升越陡者,代表该股为强势股。 +2. RAD 指标选择强势股的效果相当良好,请多多利用。 + +**示例:** + +``` + +# 定义股票池列表 +index_stock = '399001.XSHE' +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 RAD 值 +RAD1,MARAD1 = RAD(index_stock, security_list1, check_date='2017-01-04', D=3, S=30, M=30) +print RAD1[security_list1] +print MARAD1[security_list1] + +# 输出 security_list2 的 RAD 值 +RAD2,MARAD2 = RAD(index_stock, security_list2, check_date='2017-01-04', D=3, S=30, M=30) +for stock in security_list2: + print RAD2[stock] + print MARAD2[stock] +``` + +### SHT-龙系短线 + +``` + +SHT(security_list, check_date, N=5, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- SHT和SHTMA 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 1.9308833356099495, '603177.XSHG': nan, '000002.XSHE': -0.47615239234731388, '601211.XSHG': 2.0635067459722265}, {'000001.XSHE': 1.2099901505545463, '603177.XSHG': nan, '000002.XSHE': -0.46395687264301505, '601211.XSHG': 1.9891297585929468}) + +**备注:** + +- 计算方式与通达信和东方财富(指标名称为SHO)相同,同花顺没有该指标 +- 计算公式中MY和SHT值相同,只输出了SHT + +**用法注释:** + +1. 当指标曲线向上交叉其平均线时,视为短线买进信号。 +2. 当指标曲线向下交叉其平均线时,视为短线卖出信号。 +3. 本指标可搭配KDJ、DMA指标使用。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 SHT 值 +SHT1,MASHT1 = SHT(security_list1, check_date='2017-01-04', N=5) +print SHT1[security_list1] +print MASHT1[security_list1] + +# 输出 security_list2 的 SHT 值 +SHT2,MASHT2 = SHT(security_list2, check_date='2017-01-04', N=5) +for stock in security_list2: + print SHT2[stock] + print MASHT2[stock] +``` + +## 鬼系 + +### CYW-主力控盘 + +``` + +CYW(security_list, check_date, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 主力控盘 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 156.19960836507815, '603177.XSHG': nan, '000002.XSHE': -1.0073386373887827, '601211.XSHG': 128.07126639142004} + +**备注:** + +- 计算方式与通达信和东方财富相同,同花顺没有该指标 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CYW 值 +CYW1 = CYW(security_list1, check_date='2017-01-04') +print CYW1[security_list1] + +# 输出 security_list2 的 CYW 值 +CYW2 = CYW(security_list2, check_date='2017-01-04') +for stock in security_list2: + print CYW2[stock] +``` + +### CYS-市场盈亏 + +``` + +CYS(security_list, check_date, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 市场盈亏 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:{'000001.XSHE': 1.3988916898194301, '603177.XSHG': nan, '000002.XSHE': -1.0261207332078812, '601211.XSHG': 1.0911602313875552} + +**备注:** + +- 计算方式与通达信和东方财富相同,与同花顺本质上相同 + +**用法注释:** + +- CYS指标主要用于捕捉超跌股,CYS13<-16为短线超跌,CYS34<-22为中线超跌。一般情况下,买入超跌股,获得一个小额赢利概率较大。 +- 注意区分某一个股超跌与大盘下跌时形成的个股超跌的差别,若大盘表现不错,但某些个股出现超跌,则这种超跌的原因是个股基本面的崩溃,风险较大,但当大盘出现调整时,部分个股调整过度,呈现出超跌状态,则是较佳的短线品种,可进行关注。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CYS 值 +CYS1 = CYS(security_list1, check_date='2017-01-04') +print CYS1[security_list1] + +# 输出 security_list2 的 CYS 值 +CYS2 = CYS(security_list2, check_date='2017-01-04') +for stock in security_list2: + print CYS2[stock] +``` + +## 特色型 + +### AROON-阿隆指标 + +``` + +AROON(security_list, check_date, N = 25, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 上轨和下轨 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 8, '603177.XSHG': 16, '000002.XSHE': 4, '601211.XSHG': 52}, {'000001.XSHE': 76, '603177.XSHG': 68, '000002.XSHE': 100, '601211.XSHG': 72}) + +**备注:** + +- 计算方式与通达信相同, 同花顺和东方财富没有该指标 + +**用法注释:** + +1. 在分析Aroon指标时,主要观察三种状态: +2. 极值0和100,当UP线达到100时,市场处于强势;如果维持在70~100之间,表示一个上升趋势。同样,如果Down线达到0,表示处于弱势,如果维持在0~30之间,表示处于下跌趋势。如果两条线同处于极值水平,则表明一个更强的趋势。 +3. 平行运动,如果两条线平行运动时,表明市场趋势被打破。可以预期该状况将持续下去,只到由极值水平或交叉穿行时为止。 +4. 交叉穿行,当下行线上穿上行线时,表明潜在弱势,预期价格开始趋于下跌。反之,表明潜在强势,预期价格趋于走高。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 AROON 值 +SG1,XG1 = AROON(security_list1, check_date='2017-01-04', N = 25) +print SG1[security_list1] +print XG1[security_list1] + +# 输出 security_list2 的 AROON 值 +SG2,XG2 = AROON(security_list2, check_date='2017-01-04', N = 25) +for stock in security_list2: + print SG2[stock] + print XG2[stock] +``` + +### CFJT-财富阶梯 + +``` + +CFJT(security_list, check_date, MM = 200, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- 突破,A1X,多方和空方 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 9.091020360179682, '603177.XSHG': nan, '000002.XSHE': 20.803750806335895, '601211.XSHG': 18.557344251180741}, {'000001.XSHE': 0.30048617213779022, '603177.XSHG': nan, '000002.XSHE': -0.35335749810512884, '601211.XSHG': 0.10620817622332195}, {'000001.XSHE': 9.0220919736614977, '603177.XSHG': nan, '000002.XSHE': None, '601211.XSHG': 18.29222867039314}, {'000001.XSHE': None, '603177.XSHG': nan, '000002.XSHE': 26.722071885395618, '601211.XSHG': None}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 +- 只输出通达信公式中的赋值数据,没有画图 +- MM 取值200,是因为各支股票的在某些阶段的BARSLAST(CROSS(A1X,0))(即上次A1X上穿0距今天数)不一致,有的会是50左右(出现次数较多),有的是100左右(出现次数较少),在兼顾考虑程序运行占用内存的情况下,本函数选择获取MM(200)天的数据来计算,来使其尽量适用于任何股票,同时用户可以自己设置MM的取值。 + +**用法注释:** + +- 在红色阶梯内做多,在绿色阶梯内做空。(来自新浪博客) + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 CFJT 值 +TP1,A1X1,DF1,KF1 = CFJT(security_list1, check_date='2017-01-04', MM = 200) +print TP1[security_list1] +print A1X1[security_list1] +print DF1[security_list1] +print KF1[security_list1] +# 输出 security_list2 的 CFJT 值 +TP2,A1X2,DF2,KF2 = CFJT(security_list1, check_date='2017-01-04', MM = 200) +for stock in security_list2: + print TP2[stock] + print A1X2[stock] + print DF2[stock] + print KF2[stock] +``` + +### ZSDB-指数对比 + +``` + +ZSDB(index_stock, check_date, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- A和指数涨幅 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'399001.XSHE': 10004.844999999999}, {'399001.XSHE': 0.73852218600089092}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 +- 公式中需要画图部分未输出 + +**用法注释:** + +- 无 + +**示例:** + +``` + +# 定义大盘股票 +index_stock = '399001.XSHE' + +# 计算并输出 index_stock 的 ZSDB 值 +A1,ZSZF1 = ZSDB(index_stock, check_date='2017-01-04') +print A1[index_stock] +print ZSZF1[index_stock] +``` + +## 图表型 + +### ZX-重心线 + +``` + +ZX(security_list, check_date, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- AV 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': -2349.7877426190771, '603177.XSHG': nan, '000002.XSHE': 267047.22475180856, '601211.XSHG': -1726.9088373843188}, {'000001.XSHE': 2304.8620185057907, '603177.XSHG': nan, '000002.XSHE': 292638.40931959258, '601211.XSHG': -3050.487984994948}) + +**备注:** + +- 计算方式与通达信和同花顺相同,东方财富没有该指标 + +**用法注释:** + +重心线指标,重心线是由重心价连接而成的曲线,反映历史平均价位, 对于指数计算公式为: ZX = 成交金额/成交量。 对个股而言: ZX = (最高指数+最低指数+收盘指数) / 3 类似于不加权平均指数。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] + +# 计算并输出 security_list1 的 ZX 值 +AV1 = ZX(security_list1, check_date='2017-01-04') +print AV1[security_list1] + +# 输出 security_list2 的 ZX 值 +AV2 = ZX(security_list2, check_date='2017-01-04') +for stock in security_list2: + print AV2[stock] +``` + +### PUCU-逆时钟曲线 + +``` + +PUCU(security_list, check_date, N=24, unit = '1d', include_now = True, fq_ref_date = None) +``` + +**参数:** + +- security_list:标的列表 +- check_date:要查询数据的日期 +- N:统计的天数 N +- unit:统计周期,默认为 '1d', 支持如下周期: '1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'. '1w' 表示一周, ‘1M' 表示一月 +- include_now:是否包含当前周期,默认为 True +- fq_ref_date:复权基准日,默认为 None + +**返回:** + +- PU 和 CU 的值 + +**返回结果类型:** + +- 字典(dict):键(key)为标的代码,值(value)为数据。 +- 如:({'000001.XSHE': 9.193749999999998, '603177.XSHG': nan, '000002.XSHE': 23.042083333333334, '601211.XSHG': 18.68916666666667}, {'000001.XSHE': 631259.65249999997, '603177.XSHG': nan, '000002.XSHE': 540794.70458333334, '601211.XSHG': 580351.75625000009}) + +**备注:** + +- 计算方式与通达信相同,同花顺和东方财富没有该指标 + +**用法注释:** + +1. 图表的曲线上有一个箭头,该处代表目前价量的位置; +2. 曲线由绿变成红色时,视为买进信号; +3. 曲线由红变成绿色时,视为卖出信号。 + +**示例:** + +``` + +# 定义股票池列表 +security_list1 = '000001.XSHE' +security_list2 = ['000001.XSHE','000002.XSHE','601211.XSHG','603177.XSHG'] +# 计算并输出 security_list1 的 PUCU 值 +PU1,CU1 = PUCU(security_list1, check_date='2017-01-04', N=24) +print PU1[security_list1] +print CU1[security_list1] + +# 输出 security_list2 的 PUCU 值 +PU2,CU2 = PUCU(security_list2, check_date='2017-01-04', N=24) +for stock in security_list2: + print PU2[stock] + print CU2[stock] +``` diff --git "a/docs/joinquant-api/JQ_\346\214\207\346\225\260\346\225\260\346\215\256.md" "b/docs/joinquant-api/JQ_\346\214\207\346\225\260\346\225\260\346\215\256.md" new file mode 100644 index 0000000..fb43697 --- /dev/null +++ "b/docs/joinquant-api/JQ_\346\214\207\346\225\260\346\225\260\346\215\256.md" @@ -0,0 +1,343 @@ +## 获取沪深指数数据 + +目前只提供了指数的行情数据,指数其他数据请参考[获取中证指数/行业的行情,pe,pb,股息率](https://www.joinquant.com/view/community/detail/16656) + +### 指数概况 + +包含指数的上市时间、退市时间、代码、名称等。平台支持的指数见指数列表。 + +#### 获取单支指数数据 + +获取单支指数的信息. + +**调用方法** + +``` + +get_security_info(code) +``` + +**参数** + +- code: 指数代码 + +**返回值** + +- 一个对象, 有如下属性: + +- display_name # 中文名称 +- name # 缩写简称 +- start_date # 上市日期, [datetime.date] 类型 +- end_date # 退市日期,[datetime.date] 类型, 如果没有退市则为2200-01-01 +- type # 类型,index(指数) + +**示例** + +``` + +# 输出沪深300指数信息 +print(get_security_info('000300.XSHG')) +``` + +#### 获取所有指数数据 + +获取平台支持的所有指数数据 + +**调用方法** + +``` + +get_all_securities(types=['index'], date=None) +``` + +这里请在使用时注意防止未来函数。 + +**返回** + - display_name # 中文名称 + - name # 缩写简称 + - start_date # 上市日期 + - end_date # 退市日期,如果没有退市则为2200-01-01 + - type # 类型,index(指数) + +[pandas.DataFrame], 比如:`get_all_securities(['index'])[:2]`返回: + +| | display_name | name | start_date | end_date | type | +| --- | --- | --- | --- | --- | --- | +| 000001.XSHG | 上证指数 | SZZS | 1991-07-15 | 2200-01-01 | index | +| 000002.XSHG | A股指数 | AGZS | 1992-02-21 | 2200-01-01 | index | + +**示例** + +``` + +print(get_all_securities(['index'])) +``` + +#### 获取指数成份股 + +获取一个指数给定日期在平台可交易的成分股列表,我们支持近600种股票指数数据,包括指数的行情数据以及成分股数据。为了避免未来函数,我们支持获取历史任意时刻的指数成分股信息。请点击[指数列表](https://www.joinquant.com/data/dict/indexData)查看指数信息. + +**调用方法** + +``` + +get_index_stocks(index_symbol, date=None) +``` + +**参数** + - index_symbol, 指数代码 + - date: 查询日期, 一个字符串(格式类似’2015-10-15’)或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: + +1. 回测模块: 默认值会随着回测日期变化而变化, 等于context.current_dt +2. 研究模块: 默认是今天 + +**返回** + - 返回股票代码的list + +**示例** + +``` + +# 获取所有沪深300的股票 + codes= get_index_stocks('000300.XSHG') + print(codes) +``` + +#### 获取指数成份股权重 + +获取给定日期和指数的指数成分股权重数据,指数数据请查看下面的**沪深指数列表** + +**调用方法** + +``` + +get_index_weights(index_id, date=None) +``` + +**参数** + +- index_id: 代表指数的标准形式代码, 形式:指数代码.交易所代码,例如"000001.XSHG"。 +- date: 查询权重信息的日期,形式:"%Y-%m-%d",例如"2018-05-03";date可以是None,当date=None时,返回最近一次更新的指数成份股权重。 + +**返回** + +- 查询到对应日期,且有权重数据,返回 pandas.DataFrame, code(股票代码),display_name(股票名称), date(日期), weight(权重); +- 查询到对应日期,且无权重数据, 返回距离查询日期最近日期的权重信息; +- 找不到对应日期的权重信息, 返回距离查询日期最近日期的权重信息; + +**示例** + +``` + +#获取2018年5月9日这天的上证指数的成份股权重 +df = get_index_weights(index_id="000001.XSHG", date="2018-05-09") +print(df) + +#输出 +code display_name date weight +603648.XSHG 畅联股份 2018-05-09 0.023 +603139.XSHG 康惠制药 2018-05-09 0.007 +603138.XSHG 海量数据 2018-05-09 0.015 +603136.XSHG 天目湖 2018-05-09 0.009 +603131.XSHG 上海沪工 2018-05-09 0.011 + ... ... ... +603005.XSHG 晶方科技 2018-05-09 0.023 +603007.XSHG 花王股份 2018-05-09 0.013 +603006.XSHG 联明股份 2018-05-09 0.008 +603009.XSHG 北特科技 2018-05-09 0.014 +603008.XSHG 喜临门 2018-05-09 0.022 +``` + +### 行情数据 + +交易类数据提供指数的行情数据,通过API接口调用即可获取相应的数据。主要包括以下类别: + +- [历史行情数据](https://www.joinquant.com/help/data/index#%E5%8E%86%E5%8F%B2%E8%A1%8C%E6%83%85%E6%95%B0%E6%8D%AE) +- [当前单位时间的行情数据](https://www.joinquant.com/help/data/index#%E5%BD%93%E5%89%8D%E5%8D%95%E4%BD%8D%E6%97%B6%E9%97%B4%E7%9A%84%E6%95%B0%E6%8D%AE) + +#### 历史行情数据 + +获取指数历史交易数据,**可以通过参数设置获取日k线、分钟k线数据**。获取数据的基本属性如下: + +- open 时间段开始时价格 +- close 时间段结束时价格 +- low 最低价 +- high 最高价 +- volume 成交的指数数量 +- money 成交的金额 +- factor 前复权因子, 我们提供的价格都是前复权后的, 但是利用这个值可以算出原始价格, 方法是价格除以factor, 比如: `close/factor` +- high_limit 涨停价 +- low_limit 跌停价 +- avg 这段时间的平均价, 等于`money/volume` +- pre_close 前一个单位时间结束时的价格, 按天则是前一天的收盘价, 按分钟这是前一分钟的结束价格 +- paused 布尔值, 这只指数是否停牌, 停牌时open/close/low/high/pre_close依然有值,都等于停牌前的收盘价, volume=money=0 + +**调用方法** + +``` + +get_price(security, start_date='2015-01-01', end_date='2015-12-31', frequency='daily', fields=None, skip_paused=False, fq='pre') +``` + +**注:设定不同的unit参数,获取日K线或分钟k线,详情见参数。** 这里请在使用时注意防止未来函数. + +用户可以在 [after_trading_end](https://www.joinquant.com/api#after_trading_end)中调用[get_price](https://www.joinquant.com/help/data/index#getdd)函数获取当日的开盘价、收盘价、成交额、成交量、最高价以及最低价等 + +**关于停牌**: 因为此API可以获取多只股票的数据, 可能有的股票停牌有的没有, 为了保持时间轴的一致, 我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充(请看[SecurityUnitData]的paused属性). 如想跳过, 请使用 skip_paused=True 参数, 同时只取一只股票的信息 + +**参数** + +- security: 一支指数代码或者一个指数代码的list + - start_date: 字符串或者[datetime.datetime]/[datetime.date]对象, 开始时间, 默认是’2015-01-01’. 注意: + +- 当取分钟数据时, 时间可以精确到分钟, 比如: 传入 `datetime.datetime(2015, 1, 1, 10, 0, 0)` 或者 `'2015-01-01 10:00:00'`. +- 当取分钟数据时, 如果只传入日期, 则日内时间是当日的 00:00:00. +- 当取天数据时, 传入的日内时间会被忽略 + +- end_date: 格式同上, 结束时间, 默认是’2015-12-31’, 包含此日期. **注意: 当取分钟数据时, 如果 end_date 只有日期, 则日内时间等同于 00:00:00, 所以返回的数据是不包括 end_date 这一天的**. + - frequency: 单位时间长度, 几天或者几分钟, 现在支持’Xd’,’Xm’, ‘daily’(等同于’1d’), ‘minute’(等同于’1m’), X是一个正整数, 分别表示X天和X分钟(不论是按天还是按分钟回测都能拿到这两种单位的数据), 注意, 当X > 1时, field只支持[‘open’, ‘close’, ‘high’, ‘low’, ‘volume’, ‘money’]这几个标准字段. 默认值是daily + - fields: 字符串list, 选择要获取的行情数据字段, 默认是None(表示[‘open’, ‘close’, ‘high’, ‘low’, ‘volume’, ‘money’]这几个标准字段), 支持[属性](https://www.joinquant.com/help/data/index#%E5%8E%86%E5%8F%B2%E8%A1%8C%E6%83%85%E6%95%B0%E6%8D%AE)里面的所有基本属性. + - skip_paused: 是否跳过不交易日期(包括停牌, 未上市或者退市后的日期). 如果不跳过, 停牌时会使用停牌前的数据填充(具体请看[SecurityUnitData]的paused属性), 上市前或者退市后数据都为 nan, , 但要注意: + +- 默认为 False + +- 当 skip_paused 是 True 时, 只能取一只股票的信息 + - fq: 复权选项: + +- `'pre'`: 前复权(根据’use_real_price’选项不同含义会有所不同, 参见[set_option](https://www.joinquant.com/api#set_option)), 默认是前复权 +- `None`: 不复权, 返回实际价格 +- `'post'`: 后复权 + +**返回** + +- **请注意, 为了方便比较一只指数的多个属性, 同时也满足对比多只指数的一个属性的需求, 我们在security参数是一只指数和多只指数时返回的结构完全不一样** +- 如果是一支指数, 则返回[pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是行情字段名字, 比如’open’/’close’. 比如: `get_price('000300.XSHG')[:2]`返回: + +| | open | close | high | low | volume | money | +| --- | --- | --- | --- | --- | --- | --- | +| 2015-01-05 00:00:00 | 3566.09 | 3641.54 | 3669.04 | 3551.51 | 451198098.0 | 519849817448.0 | +| 2015-01-06 00:00:00 | 3608.43 | 3641.06 | 3683.23 | 3587.23 | 420962185.0 | 498529588258.0 | + +- 如果是多支指数, 则返回[pandas.Panel]对象, 里面是很多[pandas.DataFrame]对象, 索引是行情字段(open/close/…), 每个[pandas.DataFrame]的行索引是[datetime.datetime]对象, 列索引是指数代号. 比如`get_price(['000300.XSHG', '000001.XSHG'])['open'][:2]`返回: + +| | 000300.XSHG | 000001.XSHG | +| --- | --- | --- | +| 2015-01-05 00:00:00 | 3566.09 | 3258.63 | +| 2015-01-06 00:00:00 | 3608.43 | 3330.80 | + +**示例** + +``` + +# 获取一支指数 +df = get_price('000001.XSHG') # 获取000001.XSHG的2015年的按天数据 +df = get_price('000001.XSHG', start_date='2015-01-01', end_date='2015-02-01', frequency='minute', fields=['open', 'close']) # 获得000001.XSHG的2015年02月的分钟数据, 只获取open+close字段 +df = get_price('000001.XSHG', start_date='2015-12-01 14:00:00', end_date='2015-12-02 12:00:00', frequency='1m') # 获得000001.XSHG的2015年12月1号14:00-2015年12月2日12:00的分钟数据 + +# 获取多只指数 +panel = get_price(get_index_stocks('000903.XSHG')) # 获取中证100的所有成分股的2015年的天数据, 返回一个[pandas.Panel] +df_open = panel['open'] # 获取开盘价的[pandas.DataFrame], 行索引是[datetime.datetime]对象, 列索引是指数代号 +df_volume = panel['volume'] # 获取交易量的[pandas.DataFrame] + +print(df_open['000001.XSHE']) # 获取平安银行的2015年每天的开盘价数据 +``` + +#### 当前单位时间的行情数据(策略专用) + +获取当前时刻指数的如下属性: + - high_limit # 涨停价 + - low_limit # 跌停价 + - paused # 是否停牌 + - day_open # 当天开盘价, 分钟回测时可用, 天回测时, 是NaN + +**调用方法** + +``` + +get_current_data(security_list=None) +``` + +回测时, 通过API获取的是一个单位时间(天/分钟)的数据, 而有些数据, 我们在这个单位时间是知道的, 比如涨跌停价,是否停牌,当天的开盘价(分钟回测时). 所以可以使用这个API用来获取这些数据. + +**参数** + - security_list: 指数代码列表. + +**返回值** + 一个dict, key是指数代码, value是拥有如下属性的对象 + - high_limit # 涨停价 + - low_limit # 跌停价 + - paused # 是否停牌 + - day_open # 当天开盘价, 分钟回测时可用, 天回测时, 是NaN + +**示例** + +``` + +def handle_data(context, data): + current_data = get_current_data(['000001.XSHG']) + print current_data + print current_data['000001.XSHG'].day_open #查询指数当天的开盘价 +``` + +#### 获取指数tick数据 + +``` + +get_ticks(security,end_dt,start_dt,count, fields, skip ,df) +``` + +**获取指数tick数据, 支持 2017-01-01 至今的tick数据。(每3秒一次快照)** + +**参数**: + +- security: 指数代码,如'000001.XSHG' +- end_dt: 结束日期,格式为'YYYY-MM-DD HH:MM:SS' +- start_dt: 开始日期,格式为'YYYY-MM-DD HH:MM:SS' +- count: 取出指定时间区间内前N条的tick数据。 +- fields: 选择要获取的行情数据字段,默认为None,返回结果如下指数tick返回结果。 +- skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留从2019年9月11日以来无成交的tick数据。 +- df:默认为False,返回numpy.ndarray格式的tick数据;df=True的时候,返回pandas.Dataframe格式的数据。 +- **指数tick返回结果** + +| 字段名 | 说明 | 字段类型 | +| --- | --- | --- | +| time | 时间 | datetime | +| current | 当前价 | float | +| high | 当日最高价 | float | +| low | 当日最低价 | float | +| volume | 累计成交量(股) | float | +| money | 累计成交额 | float | + +**获取指数tick数据示例**: + +``` + +#获取上证指数2019-11-19的tick数据 +get_ticks('000001.XSHG',start_dt='2019-11-19 09:00:00',end_dt='2019-11-19 15:05:00') + +array([(20191119092524.0, 2904.2783, 2904.2783, 2904.2783, 97512400.0, 1020336191.2), + (20191119093001.25, 2904.7994, 2904.7994, 2903.8679, 183081500.0, 2000573900.1), + (20191119093006.55, 2903.451, 2904.7994, 2902.855, 200479500.0, 2179424162.3), + ..., + (20191119150000.29, 2932.609, 2933.3961, 2902.855, 13441031700.0, 154664571071.1), + (20191119150003.0, 2933.3928, 2933.3961, 2902.855, 13515838000.0, 155541500735.1), + (20191119150003.06, 2933.9908, 2933.9908, 2902.855, 13541760400.0, 155770741258.1)], + dtype=(numpy.record, [('time', '>>](https://www.joinquant.com/view/community/detail/c0f06b43c15a2f46939cf1239a6274db?type=1) +- 有关目前提供的300ETF期权数据说明:(1)行情数据:上交所和中金所有天、分钟和tick频率的,深交所目前只有天频率的(OPT_DAILY_PRICE);(2)OPT_TRADE_RANK_STK:上交所和深交所;OPT_DAILY_PREOPEN:上交所;OPT_DAILY_PRICE: 全部;OPT_RISK_INDICATOR:全部;OPT_CONTRACT_INFO:全部;OPT_ADJUSTMENT:上交所;OPT_EXERCISE_INFO:上交所; + +### 获取期权合约资料 + +``` + +from jqdata import * +opt.run_query(query(opt.OPT_CONTRACT_INFO).filter(opt.OPT_CONTRACT_INFO.code==code).limit(n)) +``` + +描述:记录ETF期权,300股指期权,铜期权,白糖期权、豆粕期权等自上市以来的所有合约资料,包括合约代码,挂牌日期,开盘参考价等,为回测研究提供最基础的合约信息 + +**参数:** + +- **query(opt.OPT_CONTRACT_INFO)**:表示从opt.OPT_CONTRACT_INFO这张表中查询期权基本资料数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **opt.OPT_CONTRACT_INFO**:收录了期权基本资料数据,表结构和字段信息如下: + +**字段设计** + +| **名称** | **类型** | **描述** | **示例** | **备注** | +| --- | --- | --- | --- | --- | +| code | str | 合约代码 | 10001313.XSHG;CU1901C46000.XSGE;SR903C4700.XZCE;M1707-C-2400.XDCE | 注意合约代码使用大写字母 | +| trading_code | str | 合约交易代码 | 510050C1810M02800 | 合约调整会产生新的交易代码 | +| name | str | 合约简称 | 50ETF购10月2800豆粕购7月2400 | 合约调整会产生新的合约简称 | +| contract_type | str | 合约类型。CO-认购期权,PO-认沽期权 | CO | | +| exchange_code | str | 证券市场编码,XSHG:上海证券交易所;XSGE:上海期货交易所;XZCE:郑州商品交易所;XDCE:大连商品交易所;CCFX:中国金融期货交易所 | XSHG | | +| currency_id | str | 货币代码CNY-人民币 | CNY | | +| underlying_symbol | str | 标的代码 | 510050.XSHG | | +| underlying_name | str | 标的简称 | 华夏上证50ETF | | +| underlying_exchange | str | 标的交易市场 | XSHG | | +| underlying_type | str | 标的品种类别。ETF-交易型开放式指数基金FUTURE-期货 | ETF | | +| exercise_price | float | 行权价格 | 2.8 | 合约调整会产生新的行权价格 | +| contract_unit | int | 合约单位 | 10000 | 合约调整会产生新的合约单位 | +| contract_status | str | 合约状态:LIST-上市、DELIST-退市。SUSPEND-停牌 | DELIST | 新期权上市由交易所公布LIST:挂牌日期<=当前日期<=最后交易日DELIST:当前日期>最后交易日 | +| list_date | str | 挂牌日期 | 2018-09-25 | | +| list_reason | str | 合约挂牌原因 | | | +| list_price | decimal(20,4) | 开盘参考价 | | 合约挂牌当天交易所会公布 | +| high_limit | decimal(20,4) | 挂牌涨停价 | | 合约挂牌当天交易所会公布 | +| low_limit | decimal(20,4) | 挂牌跌停价 | | 合约上市当天交易所会公布 | +| expire_date | str | 到期日 | 2018/10/24 | | +| last_trade_date | str | 最后交易日 | 2018/10/24 | | +| exercise_date | str | 行权日 | 2018/10/24 | 50ETF,铜期权是欧式期权,行权日固定。白糖期权和豆粕期权是美式期权,到期日之前都可以行权,行权日不固定,可为空。 | +| delivery_date | str | 交收日期 | 2018/10/25 | | +| is_adjust | int | 是否调整 | | 原合约调整为新的合约会发生合约资料的变化1-是,0-否 | +| delist_date | str | 摘牌日期 | 2018/10/24 | | +| delist_reason | str | 合约摘牌原因 | | | + +- **filter(opt.OPT_CONTRACT_INFO.code==code)**:指定筛选条件,通过opt.OPT_CONTRACT_INFO.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回3000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +# 查询当前可交易的50ETF期权合约信息 +# 回测/模拟交易中将datetime.now()换成context.current_dt + +from jqdata import * +from datetime import datetime +opt.run_query(query(opt.OPT_CONTRACT_INFO).filter((opt.OPT_CONTRACT_INFO.underlying_symbol == "510050.XSHG") & (opt.OPT_CONTRACT_INFO.last_trade_date > datetime.now()))) +``` + +``` + +#查询("10001313.XSHG ")最新的期权基本资料数据。 +from jqdata import * +q=query(opt.OPT_CONTRACT_INFO).filter(opt.OPT_CONTRACT_INFO.code=='10001313.XSHG') +df=opt.run_query(q) +print(df) + + id code trading_code name contract_type \ +0 2435 10001313.XSHG 510050C1812A02500 50ETF购12月2450A CO + + exchange_code currency_id underlying_symbol underlying_name \ +0 XSHG CNY 510050.XSHG 50ETF + + underlying_exchange ... list_price high_limit low_limit \ +0 XSHG ... 0.3523 0.6216 0.083 + + expire_date last_trade_date exercise_date delivery_date is_adjust \ +0 2018-12-26 2018-12-26 2018-12-26 2018-12-27 1 + + delist_date delist_reason +0 None None +``` + +### 获取期权合约调整记录 + +``` + +from jqdata import * +opt.run_query(query(opt.OPT_ADJUSTMENT).filter(opt.OPT_ADJUSTMENT.code==code).limit(n)) +``` + +描述:记录ETF期权因分红除息所带来的期权交易代码,合约简称,合约单位,行权价格的变化 + +**参数:** + +- **query(opt.OPT_ADJUSTMENT)**:表示从opt.OPT_ADJUSTMENT这张表中查询期权合约调整数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **opt.OPT_ADJUSTMENT**:收录了期权合约调整数据,表结构和字段信息如下: + +**字段设计** + +| **名称** | **类型** | **描述** | **示例** | **备注** | +| --- | --- | --- | --- | --- | +| code | str | 合约代码 | 10001313.XSHG; | | +| adj_date | date | 调整日期 | | | +| contract_type | str | 合约类型。CO-认购期权,PO-认沽期权 | CO | | +| ex_trading_code | str | 原交易代码 | 510050C1812M02500 | 合约调整会产生新的交易代码 | +| ex_name | str | 原合约简称 | 50ETF购10月2800豆粕购7月2400 | 合约调整会产生新的合约简称 | +| ex_exercise_price | float | 原行权价 | | | +| ex_contract_unit | int | 原合约单位 | | | +| new_trading_code | str | 新交易代码 | 510050C1812A02500 | | +| new_name | str | 新合约简称 | | | +| new_exercise_price | float | 新行权价 | | | +| new_contract_unit | int | 新合约单位 | | | +| adj_reason | str | 调整原因 | | | +| expire_date | str | 到期日 | 2018/10/24 | | +| last_trade_date | str | 最后交易日 | 2018/10/24 | | +| exercise_date | str | 行权日 | 2018/10/24 | 50ETF期权是欧式期权,行权日固定 | +| delivery_date | str | 交收日期 | 2018/10/25 | | +| position | int | 合约持仓 | | | + +- **filter(opt.OPT_ADJUSTMENT.code==code)**:指定筛选条件,通过opt.OPT_ADJUSTMENT.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回3000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询("10001313.XSHG ")最新的期权合约调整记录。 +from jqdata import * +q=query(opt.OPT_ADJUSTMENT).filter(opt.OPT_ADJUSTMENT.code=='10001313.XSHG') +df=opt.run_query(q) +print(df) + + id code adj_date contract_type ex_trading_code \ +0 70 10001313.XSHG 2018-12-03 CO 510050C1812M02500 + + ex_name ex_exercise_price ex_contract_unit new_trading_code \ +0 50ETF购12月2500 2.5 10000 510050C1812A02500 + + new_name new_exercise_price new_contract_unit adj_reason \ +0 50ETF购12月2450A 2.45 10202 除息 + + expire_date last_trade_date exercise_date delivery_date position +0 2018-12-26 2018-12-26 2018-12-26 2018-12-27 107928 +``` + +### 获取期权每日盘前静态文件 + +``` + +from jqdata import * +opt.run_query(query(opt.OPT_DAILY_PREOPEN).filter(opt.OPT_DAILY_PREOPEN.code==code).limit(n)) +``` + +描述:提供ETF期权每日交易的基本参数,包含合约单位,行权价格,持仓量,涨跌停价等数据 + +**参数:** + +- **query(opt.OPT_DAILY_PREOPEN)**:表示从opt.OPT_DAILY_PREOPEN这张表中查询期权每日盘前静态数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **opt.OPT_DAILY_PREOPEN**:收录了期权每日盘前静态数据,表结构和字段信息如下: + +**字段设计** + +| **名称** | **类型** | **描述** | **示例** | **备注** | +| --- | --- | --- | --- | --- | +| date | str | 交易日期 | 2018-11-09 | | +| code | str | 合约代码 | 10001313.XSHG | | +| trading_code | str | 合约交易代码 | 510050C1812M02500 | 保留,每个交易日仍然存在一 一对应关系 | +| name | str | 合约简称 | 50ETF购12月2500 | 保留,每个交易日仍然存在一 一对应关系 | +| exchange_code | str | 证券市场编码XSHG:上海证券交易所 | XSHG | | +| underlying_symbol | str | 标的代码 | 510050.XSHG | | +| underlying_name | str | 标的名称 | 50ETF | | +| underlying_exchange | str | 标的交易市场 | XSHG | | +| underlying_type | str | 标的品种类别,STOCK:股票;ETF:交易型开放式指数基金;FUTURE:期货 | F | | +| exercise_type | str | 期权履约方式:A 美式;E 欧式 | E | | +| contract_type | str | 合约类型。CO-认购期权,PO-认沽期权 | CO | | +| contract_unit | int | 合约单位 | 10000 | | +| exercise_price | float | 行权价格 | 2.5 | | +| list_date | str | 挂牌日期 | 2018/4/26 | | +| last_trade_date | str | 最后交易日 | 2018/12/26 | | +| exercise_date | str | 行权日 | 2018/12/26 | | +| delivery_date | str | 交收日期 | 2018/12/27 | | +| expire_date | str | 到期日 | 2018/12/26 | | +| contract_version | str | 合约版本号 | 0 | | +| position | int | 持仓量 | 13630 | | +| pre_close | float | 前收盘价 | 0.1391 | | +| pre_settle | float | 前结算价 | 0.1391 | | +| pre_close_underlying | float | 标的证券前收盘 | 2.537 | | +| is_limit | str | 涨跌幅限类型,“N”为有涨跌幅限制,深交所无此字段 | N | | +| high_limit | float | 涨停价 | 0.3928 | | +| low_limit | float | 跌停价 | 0.0001 | | +| margin_unit | float | 单位保证金 | 4435.4 | | +| margin_ratio_1 | float | 保证金计算比例参数一 | 12 | | +| margin_ratio_2 | float | 保证金计算比例参数二 | 7 | | +| round_lot | int | 整手数 | 1 | | +| limit_order_min | int | 单笔限价申报下限,深交所无此字段 | 1 | | +| limit_order_max | int | 单笔限价申报上限,深交所无此字段 | 30 | | +| market_order_min | int | 单笔市价申报下限,深交所无此字段 | 1 | | +| market_order_max | int | 单笔市价申报上限,深交所无此字段 | 10 | | +| quote_change_min | float | 最小报价变动(数值) | 0.0001 | | +| contract_status | str | 合约状态信息,深交所无此字段 | 0000E | 该字段为8位字符串,左起每位表示特定的含义,无定义则填空格。第1位:‘0’表示可开仓,‘1’表示限制卖出开仓(不.包括备兑开仓)和买入开仓。第2位:‘0’表示未连续停牌,‘1’表示连续停牌。(预留,暂填0)第3位:‘0’表示未临近到期日,‘1’表示距离到期日不足5个交易日。第4位:‘0’表示近期未做调整,‘1’表示最近5个交易日内合约发生过调整。第5位:‘A’表示当日新挂牌的合约,‘E’表示存续的合约 | + +- **filter(opt.OPT_DAILY_PREOPEN.code==code)**:指定筛选条件,通过opt.OPT_DAILY_PREOPEN.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回3000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询("10001313.XSHG ")最新的期权每日盘前静态数据。 +from jqdata import * +q=query(opt.OPT_DAILY_PREOPEN.code, + opt.OPT_DAILY_PREOPEN.trading_code, + opt.OPT_DAILY_PREOPEN.name, +opt.OPT_DAILY_PREOPEN.exercise_date,).filter(opt.OPT_DAILY_PREOPEN.code=='10001313.XSHG').order_by(opt.OPT_DAILY_PREOPEN.date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + code trading_code name exercise_date +0 10001313.XSHG 510050C1812A02500 50ETF购12月2450A 2018-12-26 +1 10001313.XSHG 510050C1812A02500 50ETF购12月2450A 2018-12-26 +2 10001313.XSHG 510050C1812A02500 50ETF购12月2450A 2018-12-26 +3 10001313.XSHG 510050C1812A02500 XD50ETF购12月2450A 2018-12-26 +4 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +5 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +6 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +7 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +8 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +9 10001313.XSHG 510050C1812M02500 50ETF购12月2500 2018-12-26 +``` + +### 获取期权日行情数据 + +``` + +from jqdata import * +opt.run_query(query(opt.OPT_DAILY_PRICE).filter(opt.OPT_DAILY_PRICE.code==code).limit(n)) +``` + +描述:提供期权每日开盘价,收盘价,最高价,最低价,成交量,成交额,涨跌幅,持仓量等日行情数据。 + +**参数:** + +- **query(opt.OPT_DAILY_PRICE)**:表示从opt.OPT_DAILY_PRICE这张表中查询期权日行情数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **opt.OPT_DAILY_PRICE**:收录了期权日行情数据,表结构和字段信息如下: + +**字段设计** + +| **名称** | **类型** | **描述** | **示例** | **备注** | +| --- | --- | --- | --- | --- | +| code | str | 合约代码 | 10001313.XSHG;CU1901C46000.XSGE;SR903C4700.XZCE;M1707-C-2400.XDCE | 合约代码使用大写字母 | +| exchange_code | str | 证券市场编码,XSHG:上海证券交易所;XSGE:上海期货交易所;XZCE:郑州商品交易所;XDCE:大连商品交易所 | XSHG | | +| date | str | 交易日期 | 2018/10/25 | | +| pre_settle | float | 前结算价 | 0.1997 | | +| pre_close | float | 前收价 | 0.1997 | | +| open | float | 今开盘 | 0.1683 | | +| high | float | 最高价 | 0.2072 | | +| low | float | 最低价 | 0.1517 | | +| close | float | 收盘价 | 0.2035 | | +| change_pct_close | float | 收盘价涨跌幅(%) | | 收盘价/前结算价 | +| settle_price | float | 结算价 | 0.204 | 收盘价是一天交易的最后一个价,它是由于收盘前1分钟所有买卖盘集中撮合而成 ;结算价:原则上,期权合约的结算价格为该合约当日收盘集合竞价的成交价格。但是,如果当日收盘集合竞价未形成成交价格,或者成交价格明显不合理(比如价格倒挂),那么上交所就会考虑期权交易的多重影响因素,另行计算合约的结算价格。即根据同标的、同到期日、同类型其他行权价的期权合约隐含波动率,推算该合约隐含波动率,并以此计算该合约结算价。 | +| change_pct_settle | float | 结算价涨跌幅(%) | | 结算价/前结算价 | +| volume | float | 成交量(张) | 3126 | | +| money | float | 成交金额(元) | 5620827 | | +| position | int | 持仓量 | 5095 | | + +- **filter(opt.OPT_DAILY_PRICE.code==code)**:指定筛选条件,通过opt.OPT_DAILY_PRICE.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回3000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询上证50ETF期权('10001313.XSHG')最近10个交易日的日行情数据。 +from jqdata import * +q=query(opt.OPT_DAILY_PRICE).filter(opt.OPT_DAILY_PRICE.code=='10001313.XSHG').order_by(opt.OPT_DAILY_PRICE.date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + id code exchange_code date pre_settle pre_close \ +0 321643 10001313.XSHG XSHG 2018-12-05 0.0797 0.0797 +1 320840 10001313.XSHG XSHG 2018-12-04 0.0788 0.0788 +2 320046 10001313.XSHG XSHG 2018-12-03 0.0592 0.0604 +3 319315 10001313.XSHG XSHG 2018-11-30 0.0510 0.0510 +4 318593 10001313.XSHG XSHG 2018-11-29 0.0550 0.0550 +5 317860 10001313.XSHG XSHG 2018-11-28 0.0468 0.0468 +6 317132 10001313.XSHG XSHG 2018-11-27 0.0553 0.0553 +7 316364 10001313.XSHG XSHG 2018-11-26 0.0595 0.0595 +8 315590 10001313.XSHG XSHG 2018-11-23 0.0783 0.0783 +9 314816 10001313.XSHG XSHG 2018-11-22 0.0892 0.0892 + + open high low close change_pct_close settle_price \ +0 0.0673 0.0785 0.0664 0.0716 -10.1631 0.0716 +1 0.0780 0.0821 0.0701 0.0797 1.1421 0.0797 +2 0.0880 0.0919 0.0749 0.0788 33.1081 0.0788 +3 0.0500 0.0620 0.0497 0.0604 18.4314 0.0604 +4 0.0613 0.0629 0.0480 0.0510 -7.2727 0.0510 +5 0.0468 0.0577 0.0460 0.0550 17.5214 0.0550 +6 0.0589 0.0603 0.0455 0.0468 -15.3707 0.0468 +7 0.0612 0.0676 0.0506 0.0553 -7.0588 0.0553 +8 0.0784 0.0799 0.0589 0.0595 -24.0102 0.0595 +9 0.0923 0.0931 0.0718 0.0783 -12.2197 0.0783 + + change_pct_settle volume money position +0 -10.1631 44938.0 33451080.0 72717 +1 1.1421 55720.0 43805151.0 74468 +2 33.1081 106122.0 90415448.0 81186 +3 18.4314 146824.0 82267433.0 107928 +4 -7.2727 139922.0 78418357.0 122002 +5 17.5214 94165.0 49885293.0 97160 +6 -15.3707 83460.0 44309064.0 96531 +7 -7.0588 78105.0 46594632.0 75401 +8 -24.0102 63644.0 42066470.0 64213 +9 -12.2197 41977.0 33248317.0 46825 +``` + +### 获取期权分钟行情(仅本地数据提供) + +``` + +get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, count=None) +``` + +获取期权的历史行情, 按天或者按分钟,这里在使用时注意 end_date 的设置,不要引入未来的数据;其中50ETF期权从2017-01-01开始,商品期权从2019-12-02开始。 **注意** + +- 仅[本地数据](https://www.joinquant.com/help/api/doc?name=JQDatadoc)提供 + +**参数** + +- security: 期权合约代码;如security='10001979.XSHG' #50ETF期权,上海证券交易所;security='CU2001C42000.XSGE'#铜期权,上海期货交易所; security='SR003C5600.XZCE' #白糖期权,郑州商品交易所; security='M2005-P-2400.XDCE' #豆粕期权,大连商品交易所; +- count: **与 start_date 二选一,不可同时使用**. 数量, 返回的结果集的行数, 即表示获取 end_date 之前几个 frequency 的数据 +- start_date: **与 count 二选一,不可同时使用**. 字符串或者 [datetime.datetime]/[datetime.date] 对象, 开始时间. + +- 如果 count 和 start_date 参数都没有, 则 start_date 生效, 值是 '2015-01-01'. 注意: +- 当取分钟数据时, 时间可以精确到分钟, 比如: 传入 `datetime.datetime(2015, 1, 1, 10, 0, 0)` 或者 `'2015-01-01 10:00:00'`. +- 当取分钟数据时, 如果只传入日期, 则日内时间是当日的 00:00:00. +- 当取天数据时, 传入的日内时间会被忽略 +- end_date: 格式同上, 结束时间, 默认是'2015-12-31', 包含此日期. **注意: 当取分钟数据时, 如果 end_date 只有日期, 则日内时间等同于 00:00:00, 所以返回的数据是不包括 end_date 这一天的**. +- frequency: 单位时间长度, 几天或者几分钟, 现在支持'Xd','Xm', 'daily'(等同于'1d'), 'minute'(等同于'1m'), X是一个正整数, 分别表示X天和X分钟(不论是按天还是按分钟回测都能拿到这两种单位的数据), 注意, 当X > 1时, fields只支持['open', 'close', 'high', 'low', 'volume', 'money']这几个标准字段. 默认值是daily +- fields: 字符串list, 选择要获取的行情数据字段, 默认是None(表示['open', 'close', 'high', 'low', 'volume', 'money']这几个标准字段), 支持SecurityUnitData里面的所有基本属性,,包含:['open', ' close', 'low', 'high', 'volume', 'money', 'high_limit',' low_limit', 'avg', ' pre_close', 'open_interest'(持仓量)] +- skip_paused: 是否跳过不交易日期(包括停牌, 未上市或者退市后的日期). 如果不跳过, 停牌时会使用停牌前的数据填充(具体请看SecurityUnitData的paused属性), 上市前或者退市后数据都为 nan, 但要注意: + +- 默认为 False +- 当 skip_paused 是 True 时, 只能取一只期权的信息 **关于停牌**: 因为此API可以获取多只期权的数据, 可能有的期权停牌有的没有, 为了保持时间轴的一致,我们默认没有跳过停牌的日期, 停牌时使用停牌前的数据填充(请看 SecurityUnitData 的 paused 属性). 如想跳过, 请使用 skip_paused=True 参数, 同时只取一只期权的信息 + +**返回结果** 返回pandas.DataFrame对象, 行索引是datetime.datetime对象, 列索引是行情字段名字 + +- **示例** + +``` + +# 获取10001313.XSHG期权合约的分钟行情 +p=get_price('10001313.XSHG','2018-12-21 09:00:00','2018-12-21 12:00:00','1m') +print(p) + + open close high low volume money +2018-12-21 09:31:00 0.0038 0.0034 0.0040 0.0034 310.0 11407.88 +2018-12-21 09:32:00 0.0034 0.0032 0.0034 0.0032 169.0 5760.05 +2018-12-21 09:33:00 0.0032 0.0033 0.0034 0.0032 228.0 7647.41 +2018-12-21 09:34:00 0.0033 0.0031 0.0033 0.0031 446.0 14496.03 +2018-12-21 09:35:00 0.0031 0.0031 0.0031 0.0030 340.0 10581.51 +2018-12-21 09:36:00 0.0028 0.0030 0.0030 0.0028 611.0 18203.43 +2018-12-21 09:37:00 0.0028 0.0031 0.0031 0.0028 528.0 15954.91 +2018-12-21 09:38:00 0.0031 0.0031 0.0033 0.0031 409.0 13138.13 +... +2018-12-21 11:15:00 0.0023 0.0023 0.0023 0.0023 134.0 3157.52 +2018-12-21 11:16:00 0.0023 0.0022 0.0023 0.0020 181.0 3969.59 +2018-12-21 11:17:00 0.0021 0.0021 0.0022 0.0021 99.0 2128.14 +2018-12-21 11:18:00 0.0022 0.0022 0.0022 0.0022 8.0 179.56 +2018-12-21 11:19:00 0.0022 0.0023 0.0023 0.0022 62.0 1442.56 +2018-12-21 11:20:00 0.0023 0.0025 0.0025 0.0023 87.0 2210.77 +2018-12-21 11:21:00 0.0025 0.0026 0.0026 0.0025 12.0 307.08 +2018-12-21 11:22:00 0.0025 0.0025 0.0025 0.0025 25.0 637.63 +2018-12-21 11:23:00 0.0026 0.0025 0.0026 0.0025 62.0 1627.22 +2018-12-21 11:24:00 0.0025 0.0025 0.0025 0.0025 45.0 1147.72 +2018-12-21 11:25:00 0.0023 0.0025 0.0025 0.0023 15.0 372.37 +2018-12-21 11:26:00 0.0023 0.0023 0.0025 0.0023 127.0 3122.84 +2018-12-21 11:27:00 0.0023 0.0025 0.0025 0.0023 19.0 473.37 +2018-12-21 11:28:00 0.0025 0.0023 0.0025 0.0023 40.0 1018.16 +2018-12-21 11:29:00 0.0025 0.0025 0.0025 0.0025 43.0 1096.71 +2018-12-21 11:30:00 0.0023 0.0023 0.0023 0.0023 48.0 1175.27 +``` + +### 获取指定时间周期的期权行情(仅本地数据提供) + +``` + +get_bars(security, count, unit='1d', + fields=['date','open','high','low','close'], + include_now=False, end_dt=None) +``` + +获取各种时间周期的bar数据,bar的分割方式与主流行情软件相同, 同时还支持返回当前时刻所在 bar 的数据。其中50ETF期权从2017-01-01开始,商品期权从2019-12-02开始。 **注意** + +- 仅[本地数据](https://www.joinquant.com/help/api/doc?name=JQDatadoc)提供 + +**参数** + +- security: 期权合约代码;如security='10001979.XSHG' #50ETF期权,上海证券交易所;security='CU2001C42000.XSGE'#铜期权,上海期货交易所; security='SR003C5600.XZCE' #白糖期权,郑州商品交易所; security='M2005-P-2400.XDCE' #豆粕期权,大连商品交易所; +- count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 +- unit: bar的时间单位, 支持如下周期:'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w', '1M'。其中m表示分钟,d表示天,w表示周,M表示月。 +- fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money'。 +- include_now: 取值True 或者False。 表示是否包含当前bar, 比如策略时间是9:33,unit参数为5m, 如果 include_now=True,则返回9:30-9:33这个分钟 bar。 +- end_dt:查询的截止时间,支持的类型为datetime.datetime或None,默认为datetime.now()。 + +**返回** + +返回一个pandas.dataframe对象,可以按任意周期返回期权合约的开盘价、收盘价、最高价、最低价,同时也可以利用date数据查看所返回的数据是什么时刻的。 + +**示例** + +``` + +#获取指定时间周期为5m的期权行情数据 +df = get_bars('10001313.XSHG',10,'5m',fields=['date','open','high','low','close'],end_dt='2018-12-21 15:00:00') +print(df) + + date open high low close +0 2018-12-21 14:10:00 0.0019 0.0022 0.0018 0.0021 +1 2018-12-21 14:15:00 0.0022 0.0023 0.0019 0.0019 +2 2018-12-21 14:20:00 0.0019 0.0022 0.0019 0.0022 +3 2018-12-21 14:25:00 0.0022 0.0022 0.0020 0.0020 +4 2018-12-21 14:30:00 0.0021 0.0021 0.0020 0.0020 +5 2018-12-21 14:35:00 0.0021 0.0023 0.0021 0.0022 +6 2018-12-21 14:40:00 0.0021 0.0022 0.0019 0.0020 +7 2018-12-21 14:45:00 0.0020 0.0021 0.0018 0.0019 +8 2018-12-21 14:50:00 0.0019 0.0020 0.0018 0.0019 +9 2018-12-21 14:55:00 0.0018 0.0019 0.0017 0.0018 +``` + +### 获取期权的tick行情(仅本地数据提供) + +``` + +get_ticks(security, start_dt, end_dt, count, fields , skip , df) +``` + +**期权部分**,支持期权tick数据,其中50ETF期权从2017-01-01开始,提供买卖五档;商品期权从2019-12-02开始,提供买卖一档。 + +**注意**: + +- 仅[本地数据](https://www.joinquant.com/help/api/doc?name=JQDatadoc)提供 + +**参数**: + +- security: 期权代码,如security='10001979.XSHG' #50ETF期权,上海证券交易所;security='CU2001C42000.XSGE'#铜期权,上海期货交易所; security='SR003C5600.XZCE' #白糖期权,郑州商品交易所; security='M2005-P-2400.XDCE' #豆粕期权,大连商品交易所; +- start_dt: 开始日期 +- end_dt: 结束日期 +- count: 取出指定时间区间内前多少条的tick数据; +- fields: 选择要获取的行情数据字段,默认为None; +- skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据 +- df:默认为False,返回numpy.ndarray格式的tick数据;df=True的时候,返回pandas.Dataframe格式的数据。 +- **期权tick返回结果:** + +| 字段名 | 说明 | 字段类型 | +| --- | --- | --- | +| time | 时间 | datetime | +| current | 当前价 | float | +| high | 当日最高价 | float | +| low | 当日最低价 | float | +| volume | 累计成交量(张) | float | +| money | 累计成交额(元) | float | +| position | 持仓量(张) | float | +| a1_p | 一档卖价 | float | +| a1_v | 一档卖量 | float | +| … | | | +| a5_p | 五档卖价 | float | +| a5_v | 五档卖量 | float | +| b1_p | 一档买价 | float | +| b1_v | 一档买量 | float | +| … | | | +| b5_p | 五档买价 | float | +| b5_v | 五档买量 | float | + +**期权tick数据示例**: + +``` + +# fields中的字段可以自己添加,下面只是示例 +df = get_ticks('10001313.XSHG',start_dt='2018-12-20 09:00:00',end_dt='2018-12-20 10:00:00', fields=['time', 'current', 'volume', 'a1_p', 'b1_p']) +print(df) + +[(20181220092500.0, 0.006, 30.0, 0.006, 0.0059) + (20181220092500.0, 0.006, 0.0, 0.006, 0.0059) + (20181220092520.0, 0.006, 0.0, 0.006, 0.0059) ..., + (20181220095959.0, 0.0042, 0.0, 0.0043, 0.0042) + (20181220100000.0, 0.0043, 2.0, 0.0043, 0.0042) + (20181220100000.0, 0.0043, 0.0, 0.0043, 0.0042)] +``` + +### 获取ETF期权交易和持仓排名统计 + +``` + +from jqdata import * +opt.run_query(query(opt.OPT_TRADE_RANK_STK).filter(opt.OPT_TRADE_RANK_STK.underlying_symbol==underlying_symbol).limit(n)) +``` + +描述:统计沪深ETF期权,每日最活跃三个合约的交易排名和持仓量最大三个合约的持仓排名情况 + +**参数:** + +- **query(opt.OPT_TRADE_RANK_STK)**:表示从opt.OPT_TRADE_RANK_STK这张表中查询股票期权交易和持仓排名统计数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **opt.OPT_TRADE_RANK_STK**:收录了股票期权交易和持仓排名统计数据,表结构和字段信息如下: + +**字段设计** + +| **名称** | **类型** | **描述** | **示例** | +| --- | --- | --- | --- | +| underlying_symbol | str | 标的代码 | 510050.XSHG | +| underlying_name | str | 标的简称 | 华夏上证50ETF | +| underlying_exchange | str | 证券市场编码:XSHG-上海证券交易所; | XSHG | +| date | str | 交易日期 | 2018-10-25 | +| rank | int | 排名 | 1 | +| volume | int | 数量(张) | 184891 | +| option_agency | str | 期权经营机构 | 华泰证券 | +| rank_type | str | 排名统计类型,601001:最活跃三个合约的认购交易排名;601002:最活跃三个合约的认沽交易排名;601003:持仓最大3个合约的认购持仓量排名;601004:持仓最大3个合约的认沽持仓量排名 | 601001 | + +- **filter(opt.OPT_TRADE_RANK_STK.underlying_symbol==underlying_symbol)**:指定筛选条件,通过opt.OPT_TRADE_RANK_STK.underlying_symbol==underlying_symbol可以指定你想要查询的标的代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回3000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询最活跃三个合约的认购交易排名(601001) +from jqdata import * +q=query(opt.OPT_TRADE_RANK_STK).filter(opt.OPT_TRADE_RANK_STK.rank_type==601001).order_by(opt.OPT_TRADE_RANK_STK.date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + id underlying_symbol underlying_name underlying_exchange date \ +0 18641 510050.XSHG 50ETF XSHG 2018-12-05 +1 18642 510050.XSHG 50ETF XSHG 2018-12-05 +2 18643 510050.XSHG 50ETF XSHG 2018-12-05 +3 18644 510050.XSHG 50ETF XSHG 2018-12-05 +4 18645 510050.XSHG 50ETF XSHG 2018-12-05 +5 18621 510050.XSHG 50ETF XSHG 2018-12-04 +6 18622 510050.XSHG 50ETF XSHG 2018-12-04 +7 18623 510050.XSHG 50ETF XSHG 2018-12-04 +8 18624 510050.XSHG 50ETF XSHG 2018-12-04 +9 18625 510050.XSHG 50ETF XSHG 2018-12-04 + + rank volume option_agency rank_type +0 2 78610 中信证券 601001 +1 5 56171 海通证券 601001 +2 3 66600 招商证券 601001 +3 1 79627 中泰证券 601001 +4 4 62392 华泰证券 601001 +5 1 89718 中信证券 601001 +6 4 69276 国泰君安 601001 +7 5 61900 招商证券 601001 +8 2 75760 中泰证券 601001 +9 3 72447 华泰证券 601001 +``` + +### 获取期权风险指标数据 + +``` + +from jqdata import * +opt.run_query(query(opt.OPT_RISK_INDICATOR).filter(opt.OPT_RISK_INDICATOR.code==code).limit(n)) +``` + +描述:统计各期权合约每日的风险指标,帮助用户更科学的衡量期权合约的价值变动 + +**参数:** + +- **query(opt.OPT_RISK_INDICATOR)**:表示从opt.OPT_RISK_INDICATOR这张表中查询期权风险指标数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **opt.OPT_RISK_INDICATOR**:收录了期权风险指标数据,表结构和字段信息如下: + +**字段设计** + +| **名称** | **类型** | **描述** | **示例** | **备注** | +| --- | --- | --- | --- | --- | +| code | str | 合约代码 | 10001313.XSHG;CU1901C46000.XSGE;SR903C4700.XZCE;M1707-C-2400.XDCE | 合约代码使用大写字母 | +| exchange_code | str | 证券市场编码 | XSHG | | +| date | str | 交易日期 | 2018-10-19 | | +| delta | float | DELTA | 0.906 | **Delta=期权价格变化/****期货****变化** | +| theta | float | THETA | -0.249 | **Theta=期权价格的变化/距离到期日时间的变化** | +| gamma | float | GAMMA | 0.669 | **Gamma=delta的变化/期货价格的变化** | +| vega | float | VEGA | 0.138 | **Vega=期权价格变化/波动率的变化** | +| rho | float | RHO | 0.213 | **Rho=期权价格的变化/****无风险利率****的变化** | + +- **filter(opt.OPT_RISK_INDICATOR.code==code)**:指定筛选条件,通过opt.OPT_RISK_INDICATOR.code==code可以指定你想要查询的合约代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回3000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询('10001313.XSHG')最新的期权风险指标数据。 +from jqdata import * +q=query(opt.OPT_RISK_INDICATOR).filter(opt.OPT_RISK_INDICATOR.code=='10001313.XSHG').order_by(opt.OPT_RISK_INDICATOR.date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + id code exchange_code date delta theta gamma \ +0 320797 10001313.XSHG XSHG 2018-12-05 0.609 -0.488 2.875 +1 83541 10001313.XSHG XSHG 2018-12-04 0.638 -0.471 2.730 +2 83540 10001313.XSHG XSHG 2018-12-03 0.610 -0.490 2.607 +3 83539 10001313.XSHG XSHG 2018-11-30 0.467 -0.519 2.278 +4 83538 10001313.XSHG XSHG 2018-11-29 0.419 -0.484 2.266 +5 83537 10001313.XSHG XSHG 2018-11-28 0.447 -0.466 2.341 +6 83536 10001313.XSHG XSHG 2018-11-27 0.391 -0.449 2.198 +7 83535 10001313.XSHG XSHG 2018-11-26 0.422 -0.470 2.108 +8 83534 10001313.XSHG XSHG 2018-11-23 0.418 -0.468 1.917 +9 83533 10001313.XSHG XSHG 2018-11-22 0.497 -0.477 1.929 + + vega rho +0 0.228 0.083 +1 0.229 0.091 +2 0.239 0.090 +3 0.263 0.078 +4 0.261 0.072 +5 0.270 0.080 +6 0.264 0.072 +7 0.275 0.080 +8 0.287 0.087 +9 0.302 0.108 +``` + +### 获取期权行权交收信息 + +``` + +from jqdata import * +opt.run_query(query(opt.OPT_EXERCISE_INFO).filter(opt.OPT_EXERCISE_INFO.underlying_symbol==underlying_symbol).limit(n)) +``` + +描述:统计ETF期权在各个行权日的交收情况,一定程度上也代表了用户对当前市场的风险偏好 + +**参数:** + +- **query(opt.OPT_EXERCISE_INFO)**:表示从opt.OPT_EXERCISE_INFO这张表中查询期权行权交收信息数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **opt.OPT_EXERCISE_INFO**:收录了期权行权交收信息数据,表结构和字段信息如下: + +**字段设计** + +| **名称** | **类型** | **描述** | **示例** | **备注** | | +| --- | --- | --- | --- | --- | --- | +| underlying_symbol | str | 标的代码 | 510050.XSHG | | | +| underlying_name | str | 标的名称 | | | | +| exercise_date | str | 行权日 | 2018-10-24 | | | +| constract_type | str | 合约类型,CO-认购期权,PO-认沽期权 | CO | | | +| exercise_number | int | 行权数量 | 12520 | | | + +- **filter(opt.OPT_EXERCISE_INFO.underlying_symbol==underlying_symbol)**:指定筛选条件,通过opt.OPT_EXERCISE_INFO.underlying_symbol==underlying_symbol可以指定你想要查询的标的代码;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回3000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询华夏上证50ETF("510050.XSHG")最新的期权行权交收信息数据。 +from jqdata import * +q=query(opt.OPT_EXERCISE_INFO).filter(opt.OPT_EXERCISE_INFO.underlying_symbol=='510050.XSHG').order_by(opt.OPT_EXERCISE_INFO.exercise_date.desc()).limit(10) +df=opt.run_query(q) +print(df) + + id underlying_symbol underlying_name exercise_date contract_type exercise_number +0 86 510050.XSHG 50ETF 2018-11-28 PO 14419 +1 85 510050.XSHG 50ETF 2018-11-28 CO 17330 +2 84 510050.XSHG 50ETF 2018-10-24 PO 21933 +3 83 510050.XSHG 50ETF 2018-10-24 CO 12520 +4 82 510050.XSHG 50ETF 2018-09-26 PO 9550 +5 81 510050.XSHG 50ETF 2018-09-26 CO 20286 +6 80 510050.XSHG 50ETF 2018-08-22 PO 10228 +7 79 510050.XSHG 50ETF 2018-08-22 CO 10208 +8 78 510050.XSHG 50ETF 2018-07-25 PO 5754 +9 77 510050.XSHG 50ETF 2018-07-25 CO 19632 +``` + +## 期权列表 + +文档更新可能存在滞后,请直接查询[期权合约资料表](https://www.joinquant.com/help/api/help#Option:%E8%8E%B7%E5%8F%96%E6%9C%9F%E6%9D%83%E5%90%88%E7%BA%A6%E8%B5%84%E6%96%99)获取 + +| 上市日期 | 品种名称 | 交易所 | 示例合约代码 | 示例合约名称 | 示例合约标的物 | 示例合约标的物名称 | 合约规格 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| 2015-02-09 | 50ETF期权 | XSHG | 10000001.XSHG | 50ETF购3月2200 | 510050.XSHG | 50ETF | [50ETF期权合约规格](http://www.sse.com.cn/assortment/options/contract/c/c_20230303_5717359.shtml) | +| 2017-03-31 | 豆粕期权 | XDCE | M1712-P-2650.XDCE | 豆粕沽12月2650 | M1712.XDCE | 连豆粕1712合约 | [豆粕期权合约规格](http://m.dce.com.cn/dalianshangpinmobile/pzzx90/dpqq95/hyygz49/6216504/index.html) | +| 2017-04-19 | 白糖期权 | XZCE | SR807P6900.XZCE | 白糖沽7月6900 | SR1807.XZCE | 郑白糖807合约 | [白糖期权合约规格](http://www.czce.com.cn/cn/sspz/bt/H770204index_1.htm) | +| 2018-09-21 | 铜期权 | XSGE | CU1906P48000.XSGE | 铜沽6月48000 | CU1906.XSGE | 沪铜1906合约 | [铜期权合约规格](https://www.shfe.com.cn/products/cuQ/standard/) | +| 2019-01-28 | 棉花期权 | XZCE | CF905P16400.XZCE | 棉花沽5月16400 | CF1905.XZCE | 郑棉花905合约 | [棉花期权合约规格](http://www.czce.com.cn/cn/sspz/mh/H770203index_1.htm) | +| 2019-01-28 | 天胶期权 | XSGE | RU1907C10750.XSGE | 天胶购7月10750 | RU1907.XSGE | 沪天胶1907合约 | [天胶期权合约规格](https://www.shfe.com.cn/products/ruQ/standard/) | +| 2019-01-28 | 玉米期权 | XDCE | C2001-P-2040.XDCE | 玉米沽1月2040 | C2001.XDCE | 连玉米2001合约 | [玉米期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/ymqq/hyygz63/6216478/index.html) | +| 2019-12-09 | 铁矿石期权 | XDCE | I2009-C-520.XDCE | 铁矿石购9月520 | I2009.XDCE | 连铁矿石2009合约 | [铁矿石期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/tksqq21/hyygz11/6216456/index.html) | +| 2019-12-16 | 甲醇期权 | XZCE | MA003P2100.XZCE | 甲醇沽3月2100 | MA2003.XZCE | 郑甲醇003合约 | [甲醇期权合约规格](http://www.czce.com.cn/cn/sspz/jc/H770208index_1.htm) | +| 2019-12-16 | PTA期权 | XZCE | TA004C4900.XZCE | PTA购4月4900 | TA2004.XZCE | 郑精对苯二甲酸004合约 | [PTA期权合约规格](http://www.czce.com.cn/cn/sspz/pta/H770205index_1.htm) | +| 2019-12-20 | 黄金期权 | XSGE | AU2010C348.XSGE | 黄金购10月348 | AU2010.XSGE | 沪黄金2010合约 | [黄金期权合约规格](https://www.shfe.com.cn/products/auQ/standard/) | +| 2019-12-23 | 沪深300期权 | CCFX | IO2012-P-4500.CCFX | 沪深300沽12月4500 | 000300.XSHG | 沪深300指数 | [沪深300期权合约规格](http://www.cffex.com.cn/hs300gzqq/) | +| 2019-12-23 | 300ETF期权 | XSHE | 90000034.XSHE | 300ETF沽2月4300 | 159919.XSHE | 嘉实沪深300ETF | [300ETF期权合约规格](http://www.szse.cn/lawrules/rule/derivative/t20191219_572722.html) | +| 2019-12-23 | 300ETF期权 | XSHG | 10002160.XSHG | 300ETF购3月4300 | 510300.XSHG | 华泰柏瑞沪深300ETF | [300ETF期权合约规格](http://www.sse.com.cn/assortment/options/contract/c/c_20230303_5717360.shtml) | +| 2020-01-16 | 菜籽粕期权 | XZCE | RM009C2175.XZCE | 菜籽粕购9月2175 | RM2009.XZCE | 郑菜籽粕009合约 | [菜籽粕期权合约规格](http://www.czce.com.cn/cn/sspz/czy/H770206index_1.htm) | +| 2020-03-31 | 液化石油气期权 | XDCE | PG2103-P-2700.XDCE | 液化石油气沽3月2700 | PG2103.XDCE | 连液化石油气2103合约 | [液化石油气期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/yhsyqqq/hyygz73/6210761/index.html) | +| 2020-06-30 | 动力煤期权 | XZCE | ZC010P500.XZCE | 动力煤沽10月500 | ZC2010.XZCE | 郑动力煤010合约 | [动力煤期权合约规格](http://www.czce.com.cn/cn/sspz/dlm/H770212index_1.htm) | +| 2020-07-06 | 乙烯期权 | XDCE | L2101-P-6700.XDCE | 乙烯沽1月6700 | L2101.XDCE | 连乙烯2101合约 | [乙烯期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/6226615/hyygz184/6227275/index.html) | +| 2020-07-06 | 聚氯乙烯期权 | XDCE | V2104-C-5900.XDCE | 聚氯乙烯购4月5900 | V2104.XDCE | 连聚氯乙烯2104合约 | [聚氯乙烯期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/6226619/hyygz9/6227280/index.html) | +| 2020-07-06 | 聚丙烯期权 | XDCE | PP2105-P-6800.XDCE | 聚丙烯沽5月6800 | PP2105.XDCE | 连聚丙烯2105合约 | [聚丙烯期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/6226623/hyygz75/6227284/index.html) | +| 2020-08-10 | 锌期权 | XSGE | ZN2010C19600.XSGE | 锌购10月19600 | ZN2010.XSGE | 沪锌2010合约 | [锌期权合约规格](https://www.shfe.com.cn/products/znQ/standard/) | +| 2020-08-10 | 铝期权 | XSGE | AL2101P15600.XSGE | 铝沽1月15600 | AL2101.XSGE | 沪铝2101合约 | [铝期权合约规格](https://www.shfe.com.cn/products/alQ/standard/) | +| 2021-06-18 | 棕油期权 | XDCE | P2203-P-6800.XDCE | 棕油沽3月6800 | P2203.XDCE | 连棕油2203合约 | [棕油期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/6282422/6282423/6282591/index.html) | +| 2021-06-21 | 原油期权 | XINE | SC2110P510.XINE | 原油沽10月510 | SC2110.XINE | 沪原油2110合约 | [原油期权合约规格](https://www.ine.cn/products/scQ/) | +| 2022-07-22 | 中证1000期权 | CCFX | MO2212-C-7600.CCFX | 中证1000购12月7600 | 000852.XSHG | 中证1000指数 | [中证1000期权合约规格](http://www.cffex.com.cn/zz1000gzqq/) | +| 2022-08-08 | 黄大豆2号期权 | XDCE | B2307-P-4100.XDCE | 黄大豆2号沽7月4100 | B2307.XDCE | 连黄大豆2号2307合约 | [黄大豆2号期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/hdd2hqq/hyygz64/8509657/index.html) | +| 2022-08-08 | 黄大豆1号期权 | XDCE | A2305-P-6400.XDCE | 黄大豆1号沽5月6400 | A2305.XDCE | 连黄大豆1号2305合约 | [黄大豆1号期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/hdd1hqq/hyygz4/8509653/index.html) | +| 2022-08-08 | 豆油期权 | XDCE | Y2211-C-8600.XDCE | 豆油购11月8600 | Y2211.XDCE | 连豆油2211合约 | [豆油期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/dyqq/hyygz2/8509701/index.html) | +| 2022-08-26 | 花生期权 | XZCE | PK212P11200.XZCE | 花生沽12月11200 | PK2212.XZCE | 郑花生212合约 | [花生期权合约规格](http://www.czce.com.cn/cn/sspz/hsqh/H770226index_1.htm) | +| 2022-08-26 | 菜籽油期权 | XZCE | OI305P9900.XZCE | 菜籽油沽5月9900 | OI2305.XZCE | 郑菜籽油305合约 | [菜籽油期权合约规格](http://www.czce.com.cn/cn/sspz/czy/H770206index_1.htm) | +| 2022-09-19 | 500ETF期权 | XSHG | 10004510.XSHG | 500ETF沽10月6000 | 510500.XSHG | 南方中证500ETF | [500ETF期权合约规格](http://www.sse.com.cn/assortment/options/contract/c/c_20230303_5717361.shtml) | +| 2022-09-19 | 中证500ETF期权 | XSHE | 90001345.XSHE | 中证500ETF购3月5000 | 159922.XSHE | 嘉实中证500ETF | [中证500ETF期权合约规格](http://www.szse.cn/disclosure/notice/general/t20220916_595888.html) | +| 2022-09-19 | 创业板ETF期权 | XSHE | 90001228.XSHE | 创业板ETF沽10月2100 | 159915.XSHE | 易方达创业板ETF | [创业板ETF期权合约规格](http://www.szse.cn/disclosure/notice/general/t20220916_595887.html) | +| 2022-12-12 | 深证100ETF期权 | XSHE | 90001612.XSHE | 深证100ETF沽1月3000 | 159901.XSHE | 易方达深证100ETF | [深证100ETF期权合约规格](http://www.szse.cn/disclosure/notice/general/t20221209_597760.html) | +| 2022-12-19 | 上证50期权 | CCFX | HO2303-P-2500.CCFX | 上证50沽3月2500 | 000016.XSHG | 上证50指数 | [上证50期权合约规格](http://www.cffex.com.cn/sz50gzqq/) | +| 2022-12-23 | 工业硅期权 | GFEX | SI2311-C-19600.GFEX | 工业硅购11月19600 | SI2311.GFEX | 粤工业硅2311合约 | [工业硅期权合约规格](http://www.gfex.com.cn/gfex/gyeg/sspz.shtml) | +| 2022-12-26 | 螺钢期权 | XSGE | RB2310C3750.XSGE | 螺钢购10月3750 | RB2310.XSGE | 沪螺钢2310合约 | [螺钢期权合约规格](https://www.shfe.com.cn/products/rbQ/standard/) | +| 2022-12-26 | 白银期权 | XSGE | AG2306P5600.XSGE | 白银沽6月5600 | AG2306.XSGE | 沪白银2306合约 | [白银期权合约规格](https://www.shfe.com.cn/products/agQ/standard/) | +| 2023-05-15 | 乙二醇期权 | XDCE | EG2310-P-4500.XDCE | 乙二醇沽10月4500 | EG2310.XDCE | 连乙二醇2310合约 | [乙二醇期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/yecqq/hyygz99/8543272/index.html) | +| 2023-05-15 | 苯乙烯期权 | XDCE | EB2309-C-8400.XDCE | 苯乙烯购9月8400 | EB2309.XDCE | 连苯乙烯2309合约 | [苯乙烯期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/byxqq/hyygz7/8543277/index.html) | +| 2023-06-05 | 科创板50期权 | XSHG | 10005558.XSHG | 科创板50沽6月900 | 588080.XSHG | 科创板50 | [科创板50期权合约规格](http://www.sse.com.cn/assortment/options/contract/c/c_20230602_5722082.shtml) | +| 2023-06-05 | 科创50期权 | XSHG | 10005533.XSHG | 科创50购12月1000 | 588000.XSHG | 科创50 | [科创50期权合约规格](http://www.sse.com.cn/assortment/options/contract/c/c_20230602_5722081.shtml) | +| 2023-07-24 | 碳酸锂期权 | GFEX | LC2406-P-180000.GFEX | 碳酸锂沽06月180000 | LC2406.GFEX | 粤碳酸锂2406合约 | [碳酸锂期权合约规格](http://www.gfex.com.cn/gfex/tsl/sspz.shtml) | +| 2023-07-31 | 丁二烯橡胶期权 | XSGE | BR2402C11800.XSGE | 丁二烯橡胶购2月11800 | BR2402.XSGE | 沪丁二烯橡胶2402合约 | [丁二烯橡胶期权合约规格](https://www.shfe.com.cn/products/br/standard/text/) | +| 2023-09-18 | 对二甲苯期权 | XZCE | PX406C9100.XZCE | 对二甲苯购6月9100 | PX2406.XZCE | 郑对二甲苯406合约 | [对二甲苯期权合约规格](http://www.czce.com.cn/cn/sspz/dejbqhqq/H770227index_1.htm) | +| 2023-09-18 | 烧碱期权 | XZCE | SH405C3240.XZCE | 烧碱购5月3240 | SH2405.XZCE | 郑烧碱405合约 | [烧碱期权合约规格](http://www.czce.com.cn/cn/sspz/sjqhqq/H770228index_1.htm) | +| 2023-10-20 | 涤纶短纤期权 | XZCE | PF401P6600.XZCE | 涤纶短纤沽1月6600 | PF2401.XZCE | 郑涤纶短纤401合约 | [涤纶短纤期权合约规格](http://www.czce.com.cn/cn/sspz/dxqh/H770225index_1.htm) | +| 2023-10-20 | 纯碱期权 | XZCE | SA404P1660.XZCE | 纯碱沽4月1660 | SA2404.XZCE | 郑纯碱404合约 | [纯碱期权合约规格](http://www.czce.com.cn/cn/sspz/cjqh/H770224index_1.htm) | +| 2023-10-20 | 硅铁期权 | XZCE | SF402P6400.XZCE | 硅铁沽2月6400 | SF2402.XZCE | 郑硅铁402合约 | [硅铁期权合约规格](http://www.czce.com.cn/cn/sspz/gt/H770217index_1.htm) | +| 2023-10-20 | 锰硅期权 | XZCE | SM403P7600.XZCE | 锰硅沽3月7600 | SM2403.XZCE | 郑锰硅403合约 | [锰硅期权合约规格](http://www.czce.com.cn/cn/sspz/meng/H770220index_1.htm) | +| 2023-10-20 | 鲜苹果期权 | XZCE | AP405C9000.XZCE | 鲜苹果购5月9000 | AP2405.XZCE | 郑鲜苹果405合约 | [鲜苹果期权合约规格](http://www.czce.com.cn/cn/sspz/pg/H770221index_1.htm) | +| 2023-10-20 | 尿素期权 | XZCE | UR401C2080.XZCE | 尿素购1月2080 | UR2401.XZCE | 郑尿素401合约 | [尿素期权合约规格](http://www.czce.com.cn/cn/sspz/nsqh/H770223index_1.htm) | +| 2024-06-21 | 干制红枣期权 | XZCE | CJ501P11400.XZCE | 干制红枣沽1月11400 | CJ2501.XZCE | 郑干制红枣501合约 | [干制红枣期权合约规格](http://www.czce.com.cn/cn/sspz/hzqh/H770222index_1.htm#tabs-4) | +| 2024-06-21 | 平板玻璃期权 | XZCE | FG409P1360.XZCE | 平板玻璃沽9月1360 | FG2409.XZCE | 郑平板玻璃409合约 | [平板玻璃期权合约规格](http://www.czce.com.cn/cn/sspz/bl/H770209index_1.htm#tabs-4) | +| 2024-08-23 | 玉米淀粉期权 | XDCE | CS2507-P-2900.XDCE | 玉米淀粉沽7月2900 | CS2507.XDCE | 连玉米淀粉2507合约 | [玉米淀粉期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/8606077/8606078/8608200/index.html) | +| 2024-08-23 | 生猪期权 | XDCE | LH2505-P-14400.XDCE | 生猪沽5月14400 | LH2505.XDCE | 连生猪2505合约 | [生猪期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/8606123/8606124/8608208/index.html) | +| 2024-08-23 | 鸡蛋期权 | XDCE | JD2501-P-3250.XDCE | 鸡蛋沽1月3250 | JD2501.XDCE | 连鸡蛋2501合约 | [鸡蛋期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/8606105/8606106/8607940/index.html) | +| 2024-09-02 | 铅期权 | XSGE | PB2412C15400.XSGE | 铅购12月15400 | PB2412.XSGE | 沪铅2412合约 | [铅期权合约规格](https://www.shfe.com.cn/products/option/nonferrousmetal/pb_o/) | +| 2024-09-02 | 镍期权 | XSGE | NI2501P116000.XSGE | 镍沽1月116000 | NI2501.XSGE | 沪镍2501合约 | [镍期权合约规格](https://www.shfe.com.cn/products/option/nonferrousmetal/ni_o/) | +| 2024-09-02 | 锡期权 | XSGE | SN2412P245000.XSGE | 锡沽12月245000 | SN2412.XSGE | 沪锡2412合约 | [锡期权合约规格](https://www.shfe.com.cn/products/option/nonferrousmetal/sn_o/) | +| 2024-09-02 | 氧化铝期权 | XSGE | AO2501P3450.XSGE | 氧化铝沽1月3450 | AO2501.XSGE | 沪氧化铝2501合约 | [氧化铝期权合约规格](https://www.shfe.com.cn/products/option/nonferrousmetal/ao_o/) | +| 2024-11-19 | 原木期权 | XDCE | LG2511-C-750.XDCE | 原木购11月750 | LG2511.XDCE | 连原木2511合约 | [原木期权合约规格](http://www.dce.com.cn/dalianshangpin/sspz/8621129/8621130/8622207/index.html) | +| 2024-12-27 | 多晶硅期权 | GFEX | PS2512-P-47000.GFEX | 多晶硅沽12月47000 | PS2512.GFEX | 粤多晶硅2512合约 | [多晶硅期权合约规格](http://www.gfex.com.cn/gfex/djg/sspz.shtml) | +| 2024-12-27 | 瓶级聚酯切片期权 | XZCE | PR503C5800.XZCE | 瓶级聚酯切片购3月5800 | PR2503.XZCE | 郑瓶级聚酯切片503合约 | [瓶级聚酯切片期权合约规格](http://www.czce.com.cn/cn/sspz/ppqh/H770229index_1.htm#tabs-4) | diff --git "a/docs/joinquant-api/JQ_\346\234\237\350\264\247\346\225\260\346\215\256.md" "b/docs/joinquant-api/JQ_\346\234\237\350\264\247\346\225\260\346\215\256.md" new file mode 100644 index 0000000..9163b87 --- /dev/null +++ "b/docs/joinquant-api/JQ_\346\234\237\350\264\247\346\225\260\346\215\256.md" @@ -0,0 +1,1016 @@ +## 获取期货数据 + +### 获取期货概况 + +包含期货的开始时间、结束时间、代码、名称等。 + +更多的API可参考[官方API文档](https://www.joinquant.com/api) + +#### 获取单只期货信息 + +获取单支期货的信息. + +**调用方法** + +``` + +get_security_info(code) +``` + +**参数** + +- code: 期货代码 + +**返回值** + +一个对象, 有如下属性: + +- display_name # 中文名称 +- name # 缩写简称 +- start_date # 开始日期, [datetime.date] 类型 +- end_date # 结束日期,[datetime.date] 类型 +- type # 类型,futures(期货) + +**示例** + +``` + +# 输出沪深300股指期货信息 +get_security_info('IF1605.CCFX') +``` + +#### 获取所有期货信息 + +获取平台支持的所有期货数据 + +**调用方法** + +``` + +get_all_securities(types=['futures']) +``` + +这里请在使用时注意防止未来函数。 + +返回 + +- display_name # 中文名称 +- name # 缩写简称 +- start_date # 开始日期, [datetime.date] 类型 +- end_date # 结束日期,[datetime.date] 类型 +- type # 类型,futures(期货) + +一个[pandas.DataFrame] + +**示例** + +``` + +#获取所有期货数据中的前5条 +get_all_securities(['futures']).head() + + display_name name start_date end_date type +A0501.XDCE 豆一0501 a0501 2003-07-15 2005-01-17 futures +A0503.XDCE 豆一0503 a0503 2003-09-15 2005-03-14 futures +A0505.XDCE 豆一0505 a0505 2003-11-17 2005-05-20 futures +A0507.XDCE 豆一0507 a0507 2004-01-16 2005-07-14 futures +A0509.XDCE 豆一0509 a0509 2004-03-15 2005-09-14 futures +``` + +#### 期货结算价与持仓量 + +得到期货在一段时间的的如下的数据: + +- futures_sett_price: 期货结算价 +- futures_positions: 期货持仓量 + +**调用方法** + +``` + +get_extras(info, security_list, start_date=None, end_date=None, df=True): +``` + +**参数** + +- info: [‘futures_sett_price’,‘futures_positions’] 中的一个 +- security_list: 标的列表 +- start_date/end_date: 开始结束日期, 同[get_price] +- df: 返回[pandas.DataFrame]对象还是一个dict, 同[history] + +**返回值** + +- df=True:[pandas.DataFrame]对象, 列索引是期货代号, 行索引是[datetime.datetime] + +**示例** + +``` + +#查询'IF1604.CCFX', 'A9999.XDCE'的期货结算价,dataframe显示 +get_extras('futures_sett_price', ['IF1604.CCFX', 'A9999.XDCE'], start_date='2016-04-06', end_date='2016-04-08',df=True) + + IF1604.CCFX A9999.XDCE +2016-04-06 3235.4 3335.0 +2016-04-07 3208.8 3329.0 +2016-04-08 3164.0 3322.0 +``` + +- df=False 一个dict, key是基金代号, value是[numpy.ndarray] + +**示例** + +``` + +#查询'IF1604.CCFX', 'A9999.XDCE'的期货结算价,dict显示 +get_extras('futures_sett_price', ['IF1604.CCFX', 'A9999.XDCE'], start_date='2016-04-06', end_date='2016-04-08',df=False) + +{'A9999.XDCE': array([ 3335., 3329., 3322.]), + 'IF1604.CCFX': array([ 3235.4, 3208.8, 3164. ])} +``` + +### 获取期货行情数据 + +#### 获取期货行情数据 + +获取期货历史交易数据,**可以通过参数设置获取日k线、分钟k线数据**。获取数据的基本属性如下: + +- open: 时间段开始时价格 +- close: 时间段结束时价格 +- low: 最低价 +- high: 最高价 +- volume: 成交量 +- money: 成交额 +- factor: 复权因子,对期货没有意义 +- high_limit: 涨停价 +- low_limit: 跌停价 +- avg: 这段时间的平均价。计算方法(1)天级别:成交额除以成交量再除以合约乘数;(2)分钟级别:用该分钟所有tick的现价乘以该tick的成交量加起来之后,再除以该分钟的成交量。 +- pre_close: 前一个单位时间结束时的价格, 按天则是前一天的收盘价(期货中pre_close是前结算价,建议使用- -- get_extras获取结算价); +- paused: bool值, 这只股票是否停牌, 对期货没有意义 +- open_interest 持仓量 **调用方法** + +``` + +get_price(security, start_date='2015-01-01', end_date='2015-12-31', frequency='daily', fields=None, skip_paused=False, fq='pre' ,panel=True) +``` + +**注:设定不同的unit参数,获取日K线或分钟k线,详情见参数。** 这里请在使用时注意防止未来函数. + +**参数** + +- security: 一支股票代码或者一个股票代码的list +- count: **与 start_date 二选一,不可同时使用**. 数量, 返回的结果集的行数, 即表示获取 end_date 之前几个 frequency 的数据 +- start_date: **与 count 二选一,不可同时使用**. 字符串或者 datetime.datetime/datetime.date 对象, 开始时间. + +- 如果 count 和 start_date 参数都没有, 则 start_date 生效, 值是 '2015-01-01'. 注意: +- 当取分钟数据时, 时间可以精确到分钟, 比如: 传入 `datetime.datetime(2015, 1, 1, 10, 0, 0)` 或者 `'2015-01-01 10:00:00'`. +- 当取分钟数据时, 如果只传入日期, 则日内时间是当日的 00:00:00. +- 当取天数据时, 传入的日内时间会被忽略 +- end_date: 格式同上, 结束时间, 默认是'2015-12-31', 包含此日期. **注意: 当取分钟数据时, 如果 end_date 只有日期, 则日内时间等同于 00:00:00, 所以返回的数据是不包括 end_date 这一天的**. +- frequency: 单位时间长度, 几天或者几分钟, 现在支持'Xd','Xm', 'daily'(等同于'1d'), 'minute'(等同于'1m'), X是一个正整数, 分别表示X天和X分钟(不论是按天还是按分钟回测都能拿到这两种单位的数据), 注意, 当X > 1时, fields只支持['open', 'close', 'high', 'low', 'volume', 'money']这几个标准字段,**合成数据的逻辑见下文**. 默认值是daily +- fields: 字符串list, 选择要获取的行情数据字段, 默认是None(表示['open', 'close', 'high', 'low', 'volume', 'money']这几个标准字段), 支持的所有字段:['open', 'close', 'low', 'high', 'volume', 'money', 'factor', 'high_limit','low_limit', 'avg', 'pre_close', 'paused','open_interest']。 +- skip_paused: 是否跳过不交易日期(包括停牌, 未上市或者退市后的日期). 如果不跳过, 停牌时会使用停牌前的数据填充(对期货没有停牌的情况), 上市前或者退市后数据都为 nan, 但要注意: + +- 默认为 False +- 当 skip_paused 是 True 时, 获取多个标的时需要将panel参数设置为False(panel结构需要索引对齐) +- fq: 复权选项,对期货没有意义 +- panel:在pandas 0.25版后,panel被彻底移除。获取多标的数据时建议设置panel为False,返回等效的dataframe +- fill_paused:对于停牌股票的价格处理,对期货没有意义 + +**合成数据的逻辑** + +当frequency为X天和X分钟时,代表使用以X为长度的滑动窗口进行合并数据。举例: + +- 9:33:00调用get_price获取1个单位的数据,frequency='5min',表示使用上一交易日14:58、14:59、15:00、本交易日9:31、9:32这5根1分钟K线来合成数据; +- 9:37:00调用get_price获取1个单位的数据,frequency='5min',表示使用本交易日9:32、9:33、9:34、9:35、9:36这5根1分钟K线来合成数据; + +**返回** + +- **请注意, 为了方便比较一只期货的多个属性, 同时也满足对比多只期货的一个属性的需求, 我们在security参数是一只期货和多只期货时返回的结构完全不一样** +- 如果是一支期货, 则返回[pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是行情字段名字, 比如’open’/’close’. 比如: `get_price('IC1505.CCFX', start_date='2015-05-06', end_date='2015-05-08')[:2]` 返回: + +| open | close | high | low | volume | money | +| --- | --- | --- | --- | --- | --- | +| 2015-05-06 | 8168 | 8040.8 | 8280.6 | 7970 | 111973 | +| 2015-05-07 | 8020 | 7911.4 | 8068.0 | 7901 | 109599 | + +- 如果是多支期货, 则返回[pandas.Panel]对象(默认panel参数为True), 里面是很多[pandas.DataFrame]对象, 索引是行情字段(open/close/…), 每个[pandas.DataFrame]的行索引是[datetime.datetime]对象, 列索引是期货代号. 比如`get_price(['IC1505.CCFX', 'IC1506.CCFX'], start_date='2015-05-06', end_date='2015-05-08')['open'][:2]`返回: + +| IC1505.CCFX | IC1506.CCFX | +| --- | --- | +| 2015-05-06 | 8168 | +| 2015-05-07 | 8020 | + +**示例** + +``` + +# 获取一支期货 +df = get_price(['IC1505.CCFX', 'IC1506.CCFX'], start_date='2015-05-06', end_date='2015-05-08') # 获取IC1506.CCFX的2015年的按天数据 +df = get_price('IC1506.CCFX', start_date='2015-05-06', end_date='2015-05-08', frequency='minute', fields=['open', 'close']) # 获得IC1506.CCFX的分钟数据, 只获取open+close字段 + +# 获取多只期货 +panel = get_price(['IC1505.CCFX', 'IC1506.CCFX'], start_date='2015-05-06', end_date='2015-05-08') # 获取中IC1505和IC1506的天数据, 返回一个[pandas.Panel] +df_open = panel['open'] # 获取开盘价的[pandas.DataFrame], 行索引是[datetime.datetime]对象, 列索引是期货代号 +df_volume = panel['volume'] # 获取交易量的[pandas.DataFrame] +df_open['IC1506.CCFX'] # 获取IC1506的开盘价数据 +``` + +#### 获取期货bar数据 + +获取各种时间周期的 bar 数据, bar 的分割方式与主流股票软件相同, 而且支持返回当前时刻所在 bar 的数据; + get_bars 开盘时取的bar高开低收都是当天的开盘价,成交量成交额为0; + get_bars 如果bar个数少于count个,则返回实际个数,并不会填充。 + 更详细的get_bars解释,[【API解析】get_bars 定义和逻辑](https://www.joinquant.com/view/community/detail/f05b9cbce3612bb2fad36740551d28be?type=1) + +``` + +get_bars(security, count, unit='1d',fields=['date', 'open','high','low','close'], + include_now=False, end_dt=None, fq_ref_date=None, df=False) +``` + +**参数** + +- security: 标的代码或包含交易代码的列表,支持一个或多个标的,多个标的用list或tuple。 +- count: 大于0的整数,表示获取bar的个数。如果行情数据的bar不足count个,返回的长度则小于count个数。 +- unit: bar的时间单位, 支持标准bar和非标准bar 当unit为'1m', '5m', '15m', '30m', '60m', '120m', '1d', '1w'(一周), '1M'(一月)标准bar时,bar的分割方式与主流股票软件类似,期货的bar各平台也许稍微有差异,我们与文华接近; 当unit为非上述标准bar时('xm', 例如'3m'),只支持分钟级别的,x需要小于240,以每天的开盘为起始点,每x分钟为一条bar; +- fields: 获取数据的字段, 支持如下值:'date', 'open', 'close', 'high', 'low', 'volume', 'money', 'open_interest'(持仓量,是期货和期权特有的字段), 'factor'(后复权因子) +- include_now: 取值True 或者False。 表示是否包含当前bar, 比如策略时间是9:33,unit参数为5m, 如果 include_now=True,则返回9:30-9:33这个分钟 bar。 +- end_dt:查询的截止时间,支持的类型为datetime.datetime或None或str。默认值为None + +- 在回测/模拟环境下默认为context.current_dt +- 在投资研究环境下默认为datetime.now() +- 由于bar的最小单位是一分钟,所以end_dt的秒和毫秒没有什么意义,会被替换为0,例如:end_dt=datetime.datetime(2019, 11, 22, 9, 35, 23) 和 end_dt=datetime.datetime(2019, 11, 22, 9, 35, 00) 是一样的 +- fq_ref_date:复权基准日期,对期货没有意义 +- df:是否返回pandas.DataFrame对象,默认为False,返回的是numpy.ndarray对象 + +**返回值** + +- df = False + +- 若security为字符串格式的标的代码时,返回一个 numpy.ndarry 对象。 +- 若security为list或者tuple格式的标的代码时,返回一个dict,key为标的代码,value为numpy.ndarry 对象。 +- df = True + +- 若security为字符串格式的标的代码时,返回pandas.DataFrame,dataframe 的index是一个整数数组 +- 若security为list或者tuple格式的标的代码时,返回pandas.DataFrame,dataframe 的index是一个MultiIndex + +**示例** + +``` + +get_bars(["ER8888.XZCE", "AP1905.XZCE"], end_dt=datetime.datetime.now(), count=3,include_now=False) +``` + +#### 获取期货tick数据 + +``` + +get_ticks(security, start_dt, end_dt, count, fields ,skip , df) +``` + +**支持 2010-01-01 至今的tick数据,提供买一卖一数据。(每0.5秒一次快照)**如果要获取主力合约的tick数据,可以先使用get_dominant_future(underlying_symbol,dt)获取主力合约对应的标的,然后再用get_ticks()获取该合约的tick数据 + +**参数**: + +- security: 股票代码或期货代码 +- start_dt: 开始日期 +- end_dt: 结束日期 +- count: 取出指定时间区间内前多少条的tick数据。 +- fields: 选择要获取的行情数据字段,默认为["time", "current", "high", "low", "volume", "money"],支持的字段如下: +- skip:默认为True,过滤掉无成交变化的tick数据;当指定skip=False时,返回的tick数据会保留无成交有盘口变化的tick数据(股票自2019年6月25日以后;期货自2019年8月19日以后) +- df:默认为False,返回numpy.ndarray格式的tick数据;df=True的时候,返回pandas.Dataframe格式的数据。 +- **期货tick返回结果:** + +| 字段名 | 说明 | 字段类型 | +| --- | --- | --- | +| datetime | 时间 | datetime | +| current | 当前价 | float | +| high | 当日最高价 | float | +| low | 当日最低价 | float | +| volume | 累计成交量(手) | float | +| money | 累计成交额 | float | +| position | 持仓量 | float | +| a1_v | 一档卖量 | float | +| a1_p | 一档卖价 | float | +| b1_v | 一档买量 | float | +| b1_p | 一档买价 | float | + +**期货tick数据示例**: + +``` + +#获取AU1812期货合约在2018-07-02的tick数据,start_dt和count只能有一个不为None值 +>>>get_ticks('AU1812.XSGE',start_dt='2018-07-02',end_dt='2018-07-03',count=None) + time current high low volume money \ +0 2018-07-02 09:00:00.000 271.90 272.45 271.00 44536.0 1.210032e+10 +1 2018-07-02 09:00:01.000 271.85 272.45 271.00 44664.0 1.213512e+10 +2 2018-07-02 09:00:01.500 271.90 272.45 271.00 44674.0 1.213784e+10 +3 2018-07-02 09:00:02.000 272.00 272.45 271.00 44722.0 1.215089e+10 +4 2018-07-02 09:00:02.500 271.95 272.45 271.00 44748.0 1.215796e+10 +5 2018-07-02 09:00:03.000 271.95 272.45 271.00 44750.0 1.215851e+10 +6 2018-07-02 09:00:03.500 271.90 272.45 271.00 44754.0 1.215960e+10 +7 2018-07-02 09:00:04.000 271.90 272.45 271.00 44778.0 1.216612e+10 +8 2018-07-02 09:00:05.000 271.90 272.45 271.00 44838.0 1.218244e+10 +9 2018-07-02 09:00:05.500 271.90 272.45 271.00 44844.0 1.218407e+10 +10 2018-07-02 09:00:06.000 271.85 272.45 271.00 44886.0 1.219549e+10 +11 2018-07-02 09:00:06.500 271.85 272.45 271.00 44928.0 1.220690e+10 +12 2018-07-02 09:00:07.000 271.85 272.45 271.00 44934.0 1.220854e+10 +13 2018-07-02 09:00:07.500 271.85 272.45 271.00 44970.0 1.221832e+10 +14 2018-07-02 09:00:08.000 271.85 272.45 271.00 44978.0 1.222050e+10 +15 2018-07-02 09:00:08.500 271.85 272.45 271.00 44992.0 1.222431e+10 +16 2018-07-02 09:00:09.000 271.80 272.45 271.00 45042.0 1.223790e+10 +17 2018-07-02 09:00:09.500 271.90 272.45 271.00 45072.0 1.224605e+10 +18 2018-07-02 09:00:10.000 271.85 272.45 271.00 45088.0 1.225040e+10 +19 2018-07-02 09:00:10.500 271.85 272.45 271.00 45114.0 1.225747e+10 +20 2018-07-02 09:00:11.000 271.85 272.45 271.00 45156.0 1.226889e+10 +21 2018-07-02 09:00:11.500 271.80 272.45 271.00 45178.0 1.227487e+10 +22 2018-07-02 09:00:12.000 271.80 272.45 271.00 45190.0 1.227813e+10 +23 2018-07-02 09:00:12.500 271.85 272.45 271.00 45198.0 1.228030e+10 +24 2018-07-02 09:00:13.000 271.80 272.45 271.00 45246.0 1.229335e+10 +25 2018-07-02 09:00:14.000 271.85 272.45 271.00 45256.0 1.229607e+10 +26 2018-07-02 09:00:14.500 271.80 272.45 271.00 45266.0 1.229879e+10 +27 2018-07-02 09:00:15.000 271.80 272.45 271.00 45324.0 1.231455e+10 +28 2018-07-02 09:00:15.500 271.80 272.45 271.00 45328.0 1.231564e+10 +29 2018-07-02 09:00:16.000 271.80 272.45 271.00 45330.0 1.231618e+10 +... ... ... ... ... ... ... +5559 2018-07-02 23:57:07.000 272.05 272.95 272.05 42474.0 1.157839e+10 +5560 2018-07-02 23:57:08.000 272.10 272.95 272.05 42480.0 1.158002e+10 +5561 2018-07-02 23:57:15.000 272.10 272.95 272.05 42482.0 1.158057e+10 +5562 2018-07-02 23:57:40.000 272.10 272.95 272.05 42522.0 1.159145e+10 +5563 2018-07-02 23:57:50.000 272.10 272.95 272.05 42536.0 1.159526e+10 +5564 2018-07-02 23:57:54.000 272.10 272.95 272.05 42540.0 1.159635e+10 +5565 2018-07-02 23:58:13.000 272.10 272.95 272.05 42542.0 1.159689e+10 +5566 2018-07-02 23:58:27.000 272.10 272.95 272.05 42544.0 1.159744e+10 +5567 2018-07-02 23:58:29.000 272.10 272.95 272.05 42546.0 1.159798e+10 +5568 2018-07-02 23:58:38.000 272.05 272.95 272.05 42554.0 1.160016e+10 +5569 2018-07-02 23:58:48.000 272.05 272.95 272.05 42562.0 1.160233e+10 +5570 2018-07-02 23:58:49.000 272.05 272.95 272.05 42570.0 1.160451e+10 +5571 2018-07-02 23:58:51.000 272.10 272.95 272.05 42572.0 1.160505e+10 +5572 2018-07-02 23:59:00.000 272.05 272.95 272.05 42576.0 1.160614e+10 +5573 2018-07-02 23:59:15.000 272.10 272.95 272.05 42578.0 1.160669e+10 +5574 2018-07-02 23:59:21.000 272.05 272.95 272.05 42580.0 1.160723e+10 +5575 2018-07-02 23:59:25.000 272.05 272.95 272.05 42708.0 1.164205e+10 +5576 2018-07-02 23:59:26.000 272.05 272.95 272.05 42710.0 1.164260e+10 +5577 2018-07-02 23:59:26.500 272.05 272.95 272.05 42712.0 1.164314e+10 +5578 2018-07-02 23:59:28.000 272.05 272.95 272.05 42714.0 1.164369e+10 +5579 2018-07-02 23:59:30.000 272.10 272.95 272.05 42716.0 1.164423e+10 +5580 2018-07-02 23:59:35.000 272.00 272.95 272.00 42786.0 1.166327e+10 +5581 2018-07-02 23:59:35.500 272.00 272.95 272.00 42922.0 1.170027e+10 +5582 2018-07-02 23:59:37.000 272.05 272.95 272.00 42942.0 1.170571e+10 +5583 2018-07-02 23:59:37.500 272.05 272.95 272.00 42966.0 1.171224e+10 +5584 2018-07-02 23:59:38.000 272.05 272.95 272.00 42974.0 1.171442e+10 +5585 2018-07-02 23:59:43.000 272.05 272.95 272.00 42978.0 1.171550e+10 +5586 2018-07-02 23:59:45.000 272.05 272.95 272.00 42986.0 1.171768e+10 +5587 2018-07-02 23:59:46.000 272.05 272.95 272.00 42994.0 1.171986e+10 +5588 2018-07-02 23:59:59.000 272.05 272.95 272.00 42998.0 1.172094e+10 + + position a1_p a1_v b1_p b1_v +0 365404.0 271.90 1.0 271.85 5.0 +1 365338.0 271.90 2.0 271.85 10.0 +2 365336.0 271.90 3.0 271.85 10.0 +3 365300.0 272.00 191.0 271.95 4.0 +4 365300.0 272.00 193.0 271.90 4.0 +5 365302.0 271.95 4.0 271.90 14.0 +6 365298.0 271.95 16.0 271.90 20.0 +7 365310.0 271.95 31.0 271.90 18.0 +8 365296.0 271.90 2.0 271.85 26.0 +9 365292.0 271.90 7.0 271.85 26.0 +10 365270.0 271.90 2.0 271.85 16.0 +11 365258.0 271.90 21.0 271.80 46.0 +12 365256.0 271.90 30.0 271.85 3.0 +13 365258.0 271.90 14.0 271.85 9.0 +14 365256.0 271.90 14.0 271.85 7.0 +15 365250.0 271.90 17.0 271.85 14.0 +16 365232.0 271.85 6.0 271.80 32.0 +17 365212.0 271.90 20.0 271.85 12.0 +18 365204.0 271.90 26.0 271.85 8.0 +19 365202.0 271.90 28.0 271.85 20.0 +20 365208.0 271.85 6.0 271.80 28.0 +21 365220.0 271.90 25.0 271.80 26.0 +22 365214.0 271.85 3.0 271.80 26.0 +23 365212.0 271.85 7.0 271.80 27.0 +24 365184.0 271.85 14.0 271.80 26.0 +25 365190.0 271.85 16.0 271.80 31.0 +26 365180.0 271.85 30.0 271.80 29.0 +27 365160.0 271.85 29.0 271.80 1.0 +28 365156.0 271.85 33.0 271.80 5.0 +29 365154.0 271.85 33.0 271.80 13.0 +... ... ... ... ... ... +5559 361640.0 272.10 4.0 272.05 95.0 +5560 361636.0 272.10 21.0 272.05 95.0 +5561 361636.0 272.10 21.0 272.05 98.0 +5562 361666.0 272.10 13.0 272.05 98.0 +5563 361666.0 272.10 9.0 272.05 103.0 +5564 361666.0 272.10 15.0 272.05 102.0 +5565 361666.0 272.10 39.0 272.05 96.0 +5566 361666.0 272.10 61.0 272.05 84.0 +5567 361664.0 272.10 61.0 272.05 84.0 +5568 361662.0 272.10 70.0 272.05 81.0 +5569 361662.0 272.10 66.0 272.05 77.0 +5570 361662.0 272.10 62.0 272.05 72.0 +5571 361662.0 272.10 76.0 272.05 72.0 +5572 361662.0 272.10 67.0 272.05 70.0 +5573 361662.0 272.10 80.0 272.05 76.0 +5574 361664.0 272.10 72.0 272.05 75.0 +5575 361630.0 272.10 82.0 272.05 11.0 +5576 361632.0 272.10 92.0 272.05 10.0 +5577 361634.0 272.10 92.0 272.05 9.0 +5578 361634.0 272.10 92.0 272.05 23.0 +5579 361634.0 272.10 91.0 272.05 23.0 +5580 361634.0 272.05 69.0 272.00 295.0 +5581 361578.0 272.05 57.0 272.00 281.0 +5582 361570.0 272.05 12.0 272.00 289.0 +5583 361562.0 272.10 96.0 272.05 14.0 +5584 361554.0 272.10 97.0 272.05 25.0 +5585 361554.0 272.10 97.0 272.05 24.0 +5586 361546.0 272.10 95.0 272.05 20.0 +5587 361538.0 272.10 91.0 272.05 16.0 +5588 361534.0 272.10 85.0 272.05 17.0 + +[5589 rows x 11 columns] +``` + +### 获取期货交易统计数据 + +#### 获取期货龙虎榜数据 + +``` + +from jqdata import finance +finance.run_query(query(finance.FUT_MEMBER_POSITION_RANK).filter(finance.FUT_MEMBER_POSITION_RANK.code==code).limit(n)) +``` + +描述:记录各个期货交易所对不同商品下的期货合约,记录该交易所会员持仓排名前20的信息。(每天更新) + +获取期货交易所会员持仓(龙虎榜) + +**参数:** + +- **query(finance.FUT_MEMBER_POSITION_RANK)**:表示从finance.FUT_MEMBER_POSITION_RANK这张表中查询期货龙虎榜数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FUT_MEMBER_POSITION_RANK**:收录了期货龙虎榜数据,表结构和字段信息如下: + +**字段设计** + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| day | 交易日 | date | | +| code | 合约编码 | varchar(12) | 同一商品根据交割日的不同对应不同的期货合约,比如:'CU1807.XSGE' | +| exchange | 交易所编码 | varchar(10) | 英文编码 XSGE:上海期货交易所, XDCE:大连商品交易所, XZCE:郑州商品交易所, CCFX:中国金融期货交易所, XINE:上海能源中心 , GFEX : 广期所 | +| exchange_name | 交易所名称 | varchar(30) | | +| underlying_code | 标的编码 | varchar(10) | | +| underlying_name | 标的名称 | varchar(50) | | +| rank_type_ID | 排名类别编码 | int | 501001-成交量排名, 501002-持买单量排名, 501003-持卖单量排名 | +| rank_type | 排名类别 | varchar(50) | 包含:成交量排名,持买单量排名,持卖单量排名 | +| rank | 排名 | int | | +| member_name | 会员简称 | varchar(50) | | +| indicator | 统计指标 | int | 统计指标根据排名类别确定,分别代表:成交量,持买单量,持卖单量。单位:手 | +| indicator_increase | 统计指标比上交易日增减 | int | 单位:手 | + +一手:是指交易单位,也就是一张合约所代表的单位数量的标的物,一般根据品种有所不同,比如:大豆一手是10吨,铜一手是5吨,国债期货交易单位是钱,一手几万元。 + +**交易所编码** + +| 交易所名称 | 编码 | +| --- | --- | +| 上海期货交易所 | XSGE | +| 大连商品交易所 | XDCE | +| 郑州商品交易所 | XZCE | +| 中国金融期货交易所 | CCFX | + +**排名类别编码** + +| 交易所名称 | 编码 | +| --- | --- | +| 成交量排名 | 501001 | +| 持买单量排名 | 501002 | +| 持卖单量排名 | 501003 | + +- **filter(finance.FUT_MEMBER_POSITION_RANK.code==code)**:指定筛选条件,通过finance.FUT_MEMBER_POSITION_RANK.code==code可以指定你想要查询的合约编码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FUT_MEMBER_POSITION_RANK.rank_type_ID=="501001",表示按成交量排名查询龙虎榜数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询A1905.XDCE最新一个交易日的持仓量龙虎榜数据 +q=query(finance.FUT_MEMBER_POSITION_RANK.day, + finance.FUT_MEMBER_POSITION_RANK.code, + finance.FUT_MEMBER_POSITION_RANK.rank_type, + finance.FUT_MEMBER_POSITION_RANK.rank, + finance.FUT_MEMBER_POSITION_RANK.member_name, +finance.FUT_MEMBER_POSITION_RANK.indicator,).filter(finance.FUT_MEMBER_POSITION_RANK.code=='A1905.XDCE',finance.FUT_MEMBER_POSITION_RANK.rank_type_ID==501002).order_by(finance.FUT_MEMBER_POSITION_RANK.day.desc()).limit(20) +df=finance.run_query(q) +print(df) + + day code rank_type rank member_name indicator +0 2018-12-05 A1905.XDCE 持买单量排名 7 兴证期货 1753 +1 2018-12-05 A1905.XDCE 持买单量排名 8 广发期货 1575 +2 2018-12-05 A1905.XDCE 持买单量排名 6 华泰期货 1792 +3 2018-12-05 A1905.XDCE 持买单量排名 5 永安期货 1977 +4 2018-12-05 A1905.XDCE 持买单量排名 4 一德期货 2072 +5 2018-12-05 A1905.XDCE 持买单量排名 3 五矿经易 2424 +6 2018-12-05 A1905.XDCE 持买单量排名 2 国投安信 2959 +7 2018-12-05 A1905.XDCE 持买单量排名 1 华安期货 4525 +8 2018-12-05 A1905.XDCE 持买单量排名 20 宏源期货 621 +9 2018-12-05 A1905.XDCE 持买单量排名 9 广州金控 1271 +10 2018-12-05 A1905.XDCE 持买单量排名 10 国泰君安 1184 +11 2018-12-05 A1905.XDCE 持买单量排名 11 浙商期货 1121 +12 2018-12-05 A1905.XDCE 持买单量排名 18 中国国际 681 +13 2018-12-05 A1905.XDCE 持买单量排名 17 南华期货 746 +14 2018-12-05 A1905.XDCE 持买单量排名 16 申银万国 772 +15 2018-12-05 A1905.XDCE 持买单量排名 15 北京首创 921 +16 2018-12-05 A1905.XDCE 持买单量排名 14 中信期货 1013 +17 2018-12-05 A1905.XDCE 持买单量排名 13 东证期货 1067 +18 2018-12-05 A1905.XDCE 持买单量排名 12 信达期货 1079 +19 2018-12-05 A1905.XDCE 持买单量排名 19 徽商期货 625 +``` + +#### 获取期货仓单数据 + +``` + +from jqdata import finance +finance.run_query(query(finance.FUT_WAREHOUSE_RECEIPT).filter(finance.FUT_WAREHOUSE_RECEIPT.underlying_code==underlying_code).limit(n)) +``` + +描述:期货仓单是指由期货交易所指定交割仓库,按照期货交易所指定的程序,签发的符合合约规定质量的**实物提货凭证**。记录了交易所所有期货实物的库存情况以及变更情况。 + +**参数:** + +- **query(finance.FUT_WAREHOUSE_RECEIPT)**:表示从finance.FUT_WAREHOUSE_RECEIPT这张表中查询期货仓单数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FUT_WAREHOUSE_RECEIPT**:收录了期货仓单数据,表结构和字段信息如下: + +**字段设计** + +| 字段名称 | 中文名称 | 字段类型 | 注释 | +| --- | --- | --- | --- | +| day | 日期 | date | | +| exchange | 交易所编码 | varchar(10) | 英文编码 | +| exchange_name | 交易所名称 | varchar(30) | 上海期货交易所,大连商品交易所,郑州商商品交易所,中国金融期货交易所, 上海能源中心 , 广期所 | +| underlying_code | 品种编码 | varchar(10) | | +| product_name | 品种名称 | varchar(20) | | +| warehouse_name | 仓库名称 | varchar(20) | 上期所:将地区和仓库数据合并成一条,仓库名称=“地区”+“仓库”。大商所:仓库名称存在多个不同的名字的,取第一个字体加粗的仓库名称。郑商所:不区分品牌,对每个仓库取仓库小计值 | +| warehouse_receipt_number | 今日期货仓单 | int | | +| unit | 单位 | varchar(10) | | +| warehouse_receipt_number_increase | 比昨日增减 | int | | + +**交易所名称编码** + +| 交易所名称 | 编码 | +| --- | --- | +| 上海期货交易所 | XSGE | +| 大连商品交易所 | XDCE | +| 郑州商商品交易所 | XZCE | +| 中国金融期货交易所 | CCFX | + +- **filter(finance.FUT_WAREHOUSE_RECEIPT.underlying_code==underlying_code)**:指定筛选条件,通过finance.FUT_WAREHOUSE_RECEIPT.underlying_code==underlying_code可以指定你想要查询的品种;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询品种为铜('CU')的2018年12月05日的仓单数据 +q=query(finance.FUT_WAREHOUSE_RECEIPT.day, + finance.FUT_WAREHOUSE_RECEIPT.underlying_code, + finance.FUT_WAREHOUSE_RECEIPT.warehouse_name, +finance.FUT_WAREHOUSE_RECEIPT.warehouse_receipt_number).filter(finance.FUT_WAREHOUSE_RECEIPT.underlying_code=='CU',finance.FUT_WAREHOUSE_RECEIPT.day=='2018-12-05').order_by(finance.FUT_WAREHOUSE_RECEIPT.day.desc()) +df=finance.run_query(q) +print(df) + + day underlying_code warehouse_name warehouse_receipt_number +0 2018-12-05 CU 上海-上海裕强 0 +1 2018-12-05 CU 上海-上港物流 3524 +2 2018-12-05 CU 上海-世天威洋山 0 +3 2018-12-05 CU 上海-中储临港(保税) 0 +4 2018-12-05 CU 上海-中储吴淞 5238 +5 2018-12-05 CU 上海-中储大场 224 +6 2018-12-05 CU 上海-中海华东宝山 2804 +7 2018-12-05 CU 上海-同盛松江 177 +8 2018-12-05 CU 上海-同盛洋山(保税) 0 +9 2018-12-05 CU 上海-国储外高桥 0 +10 2018-12-05 CU 上海-国储天威 199 +11 2018-12-05 CU 上海-外运华东张华浜 25 +12 2018-12-05 CU 上海-期晟公司 200 +13 2018-12-05 CU 上海-裕强闵行 2111 +14 2018-12-05 CU 广东-八三O黄浦 9141 +15 2018-12-05 CU 广东-南储仓储 5025 +16 2018-12-05 CU 江苏-上港物流苏州 0 +17 2018-12-05 CU 江苏-中储无锡 10517 +18 2018-12-05 CU 江苏-常州融达 6787 +19 2018-12-05 CU 江苏-无锡国联 1349 +20 2018-12-05 CU 江苏-添马行物流 202 +21 2018-12-05 CU 江西-江西国储 1238 +22 2018-12-05 CU 浙江-国储837处 4205 +23 2018-12-05 CU 浙江-宁波九龙仓 0 +``` + +### 期货手续费及保证金 + +#### 获取期货手续费 + +``` + +from jqdata import finance +finance.run_query(query(finance.FUT_CHARGE).filter(finance.FUT_CHARGE.day==date).limit(n)) +``` + +描述:获取期货手续费。注意这是结算参数,正常是盘后更新,但是盘前也可以根据公告推导,因此盘前(含夜盘)是推算得到的,准确的结算参数需要在盘后 17:00 之后获取 + +**参数:** + +- **query(finance.FUT_CHARGE)**:表示从finance.FUT_CHARGE这张表中查询期货手续费数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FUT_CHARGE**:收录了期货手续费数据,表结构和字段信息如下: + +**字段设计** + +| 字段名称 | 中文名称 | 字段类型 | 注释 | +| --- | --- | --- | --- | +| day | 日期 | date | | +| code | 标的代码 | varchar(12) | | +| exchange | 交易所编码 | varchar(10) | 英文编码 | +| exchange_name | 交易所名称 | varchar(30) | | +| unit | 计量单位 | varchar(10) | '元/手' 或者 '‱' | +| clearance_charge | 平仓手续费 | DECIMAL(19, 4) | 上期所/能源中心,郑商所,中金所为交易手续费 | +| opening_charge | 开仓手续费 | DECIMAL(19, 4) | 上期所//能源中心,郑商所,中金所不支持 , (大商所和广期所一般等于平仓手续费) | +| short_clearance_charge | 短平手续费 | DECIMAL(19, 4) | 大商所和广期所是短平手续费,郑商所为平今,上期货//能源中心和中金所根据折扣率换算 | +| short_opening_charge | 短开手续费 | DECIMAL(19, 4) | 仅大商所(一般等于短平)和广期所支持 | + +- **filter(finance.FUT_CHARGE.code==code)**:指定筛选条件,通过finance.FUT_CHARGE.code==code可以指定你想要查询的标的;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**示例:** + +``` + +#查询SI2312的2022年12月22日的手续费数据 +from jqdata import finance +df = finance.run_query(query(finance.FUT_CHARGE).filter(finance.FUT_CHARGE.day == '2022-12-22', + finance.FUT_CHARGE.code == "SI2312.GFEX" + )) +print(df) + + id date ... short_clearance_charge short_opening_charge +0 1389520 2022-12-22 ... 1.0 1.0 + +[1 rows x 10 columns] +``` + +#### 获取期货保证金 + +``` + +from jqdata import finance +finance.run_query(query(finance.FUT_MARGIN).filter(finance.FUT_MARGIN.day==date).limit(n)) +``` + +描述:获取期货保证金(结算参数)。 + +**参数:** + +- **query(finance.FUT_MARGIN)**:表示从finance.FUT_MARGIN这张表中查询期货保证金数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FUT_MARGIN**:收录了期货保证金数据,表结构和字段信息如下: + +**字段设计** + +| 字段名称 | 中文名称 | 字段类型 | 注释 | +| --- | --- | --- | --- | +| day | 日期 | date | | +| code | 标的代码 | varchar(12) | | +| exchange | 交易所编码 | varchar(10) | 英文编码 | +| exchange_name | 交易所名称 | varchar(30) | | +| specul_buy_margin_rate | 投机买保证金率 | DECIMAL(19, 4) | 上期所,大商所,广期所为交易保证金(投机),中金所为多头保证金, 郑商所为交易保证金 | +| specul_sell_margin_rate | 投机卖保证金率 | DECIMAL(19, 4) | 上期所/能源中心,大商所,广期所为交易保证金(投机),中金所为空头保证金, 郑商所为交易保证金 | +| hedg_buy_margin_rate | 套保买保证金率 | DECIMAL(19, 4) | 上期所/能源中心,大商所,广期所为交易保证金(套保) | +| hedg_sell_margin_rate | 套保卖保证金率 | DECIMAL(19, 4) | 上期所/能源中心,大商所,广期所为交易保证金(套保) | + +- **filter(finance.FUT_MARGIN.code==code)**:指定筛选条件,通过finance.FUT_MARGIN.code==code可以指定你想要查询的标的;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**示例:** + +``` + +#查询SI2312的2022年12月22日的保证金数据 +from jqdata import finance +df = finance.run_query(query(finance.FUT_MARGIN).filter(finance.FUT_MARGIN.day == '2022-12-22', + finance.FUT_MARGIN.code == "SI2312.GFEX" + )) +print(df) + + id date ... hedg_buy_margin_rate hedg_sell_margin_rate +0 637002 2022-12-22 ... 10.0 10.0 + +[1 rows x 9 columns] +``` + +## 期货列表 + +### 金融期货列表 + +提供当前时间段内有效的金融期货合约数据(如行情数据等),具体调用方法可以参考[API文档](https://www.joinquant.com/api#api%E6%96%87%E6%A1%A3).(温馨提示:鉴于内容太多, 可使用`Ctrl + F`进行搜索)可使用`get_all_securities(['futures'])`获取当前阶段的金融期货列表包含期货代码、名称,起止日期等信息。或登录[中金所官网](http://www.cffex.com.cn/)进行查询。 + +### 支持的金融期货种类 + +#### 1. 沪深300指数期货合约表 + +| 信息 | 内容 | +| --- | --- | +| 合约标的 | 沪深300指数 | +| 合约乘数 | 每点300元 | +| 报价单位 | 指数点 | +| 最小变动价位 | 0.2点 | +| 合约月份 | 当月、下月及随后两个季月 | +| 交易时间 | 上午:9:30-11:30,下午:13:00-15:00 | +| 每日价格最大波动限制 | 上一个交易日结算价的±10% | +| 最低交易保证金 | 合约价值的8% | +| 最后交易日 | 合约到期月份的第三个周五,遇国家法定假日顺延 | +| 交割日期 | 同最后交易日 | +| 交割方式 | 现金交割 | +| 交易代码 | IF | +| 上市交易所 | 中国金融期货交易所 | + +#### 2. 上证50股指期货合约表 + +| 信息 | 内容 | +| --- | --- | +| 合约标的 | 上证50指数 | +| 合约乘数 | 每点300元 | +| 报价单位 | 指数点 | +| 最小变动价位 | 0.2点 | +| 合约月份 | 当月、下月及随后两个季月 | +| 交易时间 | 上午: 9:30-11:30,下午:13:00-15:00 | +| 每日价格最大波动限制 | 上一个交易日结算价的±10% | +| 最低交易保证金 | 合约价值的8% | +| 最后交易日 | 合约到期月份的第三个周五,遇国家法定假日顺延 | +| 交割日期 | 同最后交易日 | +| 交割方式 | 现金交割 | +| 交易代码 | IH | +| 上市交易所 | 中国金融期货交易所 | + +#### 3. 中证500股指期货合约表 + +| 信息 | 内容 | +| --- | --- | +| 合约标的 | 中证500指数 | +| 合约乘数 | 每点200元 | +| 报价单位 | 指数点 | +| 最小变动价位 | 0.2点 | +| 合约月份 | 当月、下月及随后两个季月 | +| 交易时间 | 上午: 9:30-11:30, 下午:13:00-15:00 | +| 每日价格最大波动限制 | 上一个交易日结算价的±10% | +| 最低交易保证金 | 合约价值的8% | +| 最后交易日 | 合约到期月份的第三个周五,遇国家法定假日顺延 | +| 交割日期 | 同最后交易日 | +| 交割方式 | 现金交割 | +| 交易代码 | IC | +| 上市交易所 | 中国金融期货交易所 | + +#### 4. 中证1000股指期货合约表 + +| 信息 | 内容 | +| --- | --- | +| 合约标的 | 中证1000指数 | +| 合约乘数 | 每点200元 | +| 报价单位 | 指数点 | +| 最小变动价位 | 0.2点 | +| 合约月份 | 当月、下月及随后两个季月 | +| 交易时间 | 上午: 9:30-11:30, 下午:13:00-15:00 | +| 每日价格最大波动限制 | 上一个交易日结算价的±10% | +| 最低交易保证金 | 合约价值的8% | +| 最后交易日 | 合约到期月份的第三个周五,遇国家法定假日顺延 | +| 交割日期 | 同最后交易日 | +| 交割方式 | 现金交割 | +| 交易代码 | IM | +| 上市交易所 | 中国金融期货交易所 | + +#### 5. 2年期国债期货合约表 + +| 信息 | 内容 | +| --- | --- | +| 合约标的 | 面值为200万元人民币、票面利率为3%的名义中短期国债 | +| 可交割国债 | 发行期限不高于5年,合约到期月份首日剩余期限为1.5-2.25年的记账式附息国债 | +| 报价方式 | 百元净价报价 | +| 最小变动价位 | 0.005元 | +| 合约月份 | 最近的三个季月(3月、6月、9月、12月中的最近三个月循环) | +| 交易时间 | 9:15 - 11:30, 13:00 - 15:15 | +| 最后交易日交易时间 | 9:15 - 11:30 | +| 每日价格最大波动限制 | 上一交易日结算价的±0.5% | +| 最低交易保证金 | 合约价值的0.5% | +| 最后交易日 | 合约到期月份的第二个星期五 | +| 最后交割日 | 最后交易日后的第三个交易日 | +| 交割方式 | 实物交割 | +| 交易代码 | TS | +| 上市交易所 | 中国金融期货交易所 | + +#### 6. 5年期国债期货合约表 + +| 信息 | 内容 | +| --- | --- | +| 合约标的 | 面值为100万元人民币、票面利率为3%的名义中期国债 | +| 可交割国债 | 合约到期月份首日剩余期限为4-5.25年的记账式附息国债 | +| 报价方式 | 百元净价报价 | +| 最小变动价位 | 0.005元 | +| 合约月份 | 最近的三个季月(3月、6月、9月、12月中的最近三个月循环) | +| 交易时间 | 09:15—11:30, 13:00—15:15 | +| 最后交易日交易时间 | 09:15—11:30 | +| 每日价格最大波动限制 | 上一交易日结算价的±1.2% | +| 最低交易保证金 | 合约价值的1% | +| 最后交易日 | 合约到期月份的第二个星期五 | +| 最后交割日 | 最后交易日后的第三个交易日 | +| 交割方式 | 实物交割 | +| 交易代码 | TF | +| 上市交易所 | 中国金融期货交易所 | + +#### 7. 10年期国债期货合约表 + +| 信息 | 内容 | +| --- | --- | +| 合约标的 | 面值为100万元人民币、票面利率为3%的名义长期国债 | +| 可交割国债 | 合约到期月份首日剩余期限为6.5-10.25年的记账式附息国债 | +| 报价方式 | 百元净价报价 | +| 最小变动价位 | 0.005元 | +| 合约月份 | 最近的三个季月(3月、6月、9月、12月中的最近三个月循环) | +| 交易时间 | 9:15 - 11:30,13:00 - 15:15 | +| 最后交易日交易时间 | 9:15 - 11:30 | +| 每日价格最大波动限制 | 上一交易日结算价的±2% | +| 最低交易保证金 | 合约价值的2% | +| 最后交易日 | 合约到期月份的第二个星期五 | +| 最后交割日 | 最后交易日后的第三个交易日 | +| 交割方式 | 实物交割 | +| 交易代码 | T | +| 上市交易所 | 中国金融期货交易所 | + +#### 8. 30年国指期货合约表 + +| 信息 | 内容 | +| --- | --- | +| 合约标的 | 面值为100万元人民币、票面利率为3%的名义超长期国债 | +| 可交割国债 | 发行期限不高于30年,合约到期月份首日剩余期限不低于25年的记账式附息国债 | +| 报价方式 | 百元净价报价 | +| 最小变动价位 | 0.01元 | +| 合约月份 | 最近的三个季月(3月、6月、9月、12月中的最近三个月循环) | +| 交易时间 | 9:30 - 11:30, 13:00 - 15:15 | +| 最后交易日交易时间 | 9:30 - 11:30 | +| 每日价格最大波动限制 | 上一交易日结算价的±3.5% | +| 最低交易保证金 | 合约价值的3.5% | +| 最后交易日 | 合约到期月份的第二个星期五 | +| 最后交割日 | 最后交易日后的第三个交易日 | +| 交割方式 | 实物交割 | +| 交易代码 | TL | +| 上市交易所 | 中国金融期货交易所 | + +### 商品期货列表 + +提供当前时间段内有效的商品期货期货合约数据(如行情数据等),具体调用方法可以参考API文档。 + +指数合约的合成规则:使用该品种内所有正在交易的合约, 按照持仓量加权计算。 + +具体的合约代码请查看下面的:主力合约及品种指数 + +### 主力连续合约及品种指数 + +### 中金所 + +| 名称 | 主力合约代码 | 指数合约代码 | 开始时间 | 退市时间 | 备注 | +| --- | --- | --- | --- | --- | --- | +| 沪深300合约 | IF9999.CCFX | IF8888.CCFX | 2010-04-16 | | | +| 5年期国债合约 | TF9999.CCFX | TF8888.CCFX | 2013-09-06 | | | +| 10年期国债合约 | T9999.CCFX | T8888.CCFX | 2015-03-20 | | | +| 中证500合约 | IC9999.CCFX | IC8888.CCFX | 2015-04-16 | | | +| 上证50合约 | IH9999.CCFX | IH8888.CCFX | 2015-04-16 | | | +| 2年期国债合约 | TS9999.CCFX | TS8888.CCFX | 2018-08-17 | | | +| 中证1000合约 | IM9999.CCFX | IM8888.CCFX | 2022-07-22 | | | +| 30年期国债合约 | TL9999.CCFX | TL8888.CCFX | 2023-04-21 | | | + +### 广期所 + +| 名称 | 主力合约代码 | 指数合约代码 | 开始时间 | 退市时间 | 备注 | +| --- | --- | --- | --- | --- | --- | +| 工业硅合约 | SI9999.GFEX | SI8888.GFEX | 2022-12-22 | | | +| 碳酸锂合约 | LC9999.GFEX | LC8888.GFEX | 2023-07-21 | | | +| 多晶硅合约 | PS9999.GFEX | PS8888.GFEX | 2024-12-26 | | | + +### 大商所 + +| 名称 | 主力合约代码 | 指数合约代码 | 开始时间 | 退市时间 | 备注 | +| --- | --- | --- | --- | --- | --- | +| 豆一合约 | A9999.XDCE | A8888.XDCE | 2005-01-03 | | | +| 豆二合约 | B9999.XDCE | B8888.XDCE | 2005-01-03 | | | +| 豆粕合约 | M9999.XDCE | M8888.XDCE | 2005-01-03 | | | +| 玉米合约 | C9999.XDCE | C8888.XDCE | 2005-01-03 | | | +| 豆油合约 | Y9999.XDCE | Y8888.XDCE | 2006-01-09 | | | +| 聚乙烯合约 | L9999.XDCE | L8888.XDCE | 2007-07-31 | | | +| 棕榈油合约 | P9999.XDCE | P8888.XDCE | 2007-10-29 | | | +| 聚氯乙烯合约 | V9999.XDCE | V8888.XDCE | 2009-05-25 | | | +| 焦炭合约 | J9999.XDCE | J8888.XDCE | 2011-04-15 | | | +| 焦煤合约 | JM9999.XDCE | JM8888.XDCE | 2013-03-22 | | | +| 铁矿石合约 | I9999.XDCE | I8888.XDCE | 2013-10-18 | | | +| 鸡蛋合约 | JD9999.XDCE | JD8888.XDCE | 2013-11-08 | | | +| 胶合板合约 | BB9999.XDCE | BB8888.XDCE | 2013-12-06 | | | +| 纤维板合约 | FB9999.XDCE | FB8888.XDCE | 2013-12-06 | | | +| 聚丙烯合约 | PP9999.XDCE | PP8888.XDCE | 2014-02-28 | | | +| 玉米淀粉合约 | CS9999.XDCE | CS8888.XDCE | 2014-12-19 | | | +| 乙二醇合约 | EG9999.XDCE | EG8888.XDCE | 2018-12-10 | | | +| 粳米合约 | RR9999.XDCE | RR8888.XDCE | 2019-08-16 | | | +| 苯乙烯合约 | EB9999.XDCE | EB8888.XDCE | 2019-09-26 | | | +| 液化石油气合约 | PG9999.XDCE | PG8888.XDCE | 2020-03-30 | | | +| 生猪合约 | LH9999.XDCE | LH8888.XDCE | 2021-01-08 | | | +| 原木合约 | LG9999.XDCE | LG8888.XDCE | 2024-11-18 | | | + +### 上海国际能源交易中心 + +| 名称 | 主力合约代码 | 指数合约代码 | 开始时间 | 退市时间 | 备注 | +| --- | --- | --- | --- | --- | --- | +| 原油合约 | SC9999.XINE | SC8888.XINE | 2018-03-26 | | | +| 20号胶合约 | NR9999.XINE | NR8888.XINE | 2019-08-12 | | | +| 低硫燃料油合约 | LU9999.XINE | LU8888.XINE | 2020-06-22 | | | +| 阴极铜合约 | BC9999.XINE | BC8888.XINE | 2020-11-19 | | | +| 集运指数(欧线)合约 | EC9999.XINE | EC8888.XINE | 2023-08-18 | | | + +### 上期所 + +| 名称 | 主力合约代码 | 指数合约代码 | 开始时间 | 退市时间 | 备注 | +| --- | --- | --- | --- | --- | --- | +| 铝合约 | AL9999.XSGE | AL8888.XSGE | 2005-01-03 | | | +| 天然橡胶合约 | RU9999.XSGE | RU8888.XSGE | 2005-01-03 | | | +| 燃料油合约 | FU9999.XSGE | FU8888.XSGE | 2005-01-03 | | | +| 铜合约 | CU9999.XSGE | CU8888.XSGE | 2005-01-03 | | | +| 锌合约 | ZN9999.XSGE | ZN8888.XSGE | 2007-03-26 | | | +| 黄金合约 | AU9999.XSGE | AU8888.XSGE | 2008-01-09 | | | +| 线材合约 | WR9999.XSGE | WR8888.XSGE | 2009-03-27 | | | +| 螺纹钢合约 | RB9999.XSGE | RB8888.XSGE | 2009-03-27 | | | +| 铅合约 | PB9999.XSGE | PB8888.XSGE | 2011-03-24 | | | +| 白银合约 | AG9999.XSGE | AG8888.XSGE | 2012-05-10 | | | +| 石油沥青合约 | BU9999.XSGE | BU8888.XSGE | 2013-10-09 | | | +| 热轧卷板合约 | HC9999.XSGE | HC8888.XSGE | 2014-03-21 | | | +| 锡合约 | SN9999.XSGE | SN8888.XSGE | 2015-03-27 | | | +| 镍合约 | NI9999.XSGE | NI8888.XSGE | 2015-03-27 | | | +| 纸浆合约 | SP9999.XSGE | SP8888.XSGE | 2018-11-27 | | | +| 不锈钢合约 | SS9999.XSGE | SS8888.XSGE | 2019-09-25 | | | +| 氧化铝合约 | AO9999.XSGE | AO8888.XSGE | 2023-06-19 | | | +| 丁二烯橡胶合约 | BR9999.XSGE | BR8888.XSGE | 2023-07-28 | | | + +### 郑商所 + +| 名称 | 主力合约代码 | 指数合约代码 | 开始时间 | 退市时间 | 备注 | +| --- | --- | --- | --- | --- | --- | +| 硬白小麦合约 | WT9999.XZCE | WT8888.XZCE | 2005-01-03 | 2012-11-22 | | +| 强麦合约 | WS9999.XZCE | WS8888.XZCE | 2005-01-03 | 2013-05-23 | WS为旧的强麦合约代码,自WS1305停止执行 | +| 绿豆合约 | GN9999.XZCE | GN8888.XZCE | 2005-01-03 | 2010-03-23 | | +| 棉花合约 | CF9999.XZCE | CF8888.XZCE | 2005-01-03 | | | +| 白糖合约 | SR9999.XZCE | SR8888.XZCE | 2006-01-06 | | | +| PTA合约 | TA9999.XZCE | TA8888.XZCE | 2006-12-18 | | | +| 菜籽油合约 | RO9999.XZCE | RO8888.XZCE | 2007-06-08 | 2013-05-15 | RO为旧的菜籽油合约,自RO1305停止执行 | +| 早籼稻合约 | ER9999.XZCE | ER8888.XZCE | 2009-04-20 | 2013-05-23 | ER为旧的早籼稻合约,自ER1305停止执行 | +| 甲醇合约 | ME9999.XZCE | ME8888.XZCE | 2011-10-28 | 2015-05-15 | ME为旧的甲醇合约代码,自ME1505停止执行 | +| 普麦合约 | PM9999.XZCE | PM8888.XZCE | 2012-01-17 | | | +| 菜籽油合约 | OI9999.XZCE | OI8888.XZCE | 2012-07-16 | | OI为新的菜籽油合约,自OI1307开始执行 | +| 早籼稻合约 | RI9999.XZCE | RI8888.XZCE | 2012-07-24 | | RI为新的早籼稻合约,自RI1307开始执行 | +| 强麦合约 | WH9999.XZCE | WH8888.XZCE | 2012-07-24 | | WH为新的强麦合约代码,自WH1307开始执行 | +| 玻璃合约 | FG9999.XZCE | FG8888.XZCE | 2012-12-03 | | | +| 油菜籽合约 | RS9999.XZCE | RS8888.XZCE | 2012-12-28 | | | +| 菜籽粕合约 | RM9999.XZCE | RM8888.XZCE | 2012-12-28 | | | +| 动力煤合约 | TC9999.XZCE | TC8888.XZCE | 2013-09-26 | 2016-04-08 | TC为旧的动力煤合约,自TC1605停止执行 | +| 粳稻谷合约 | JR9999.XZCE | JR8888.XZCE | 2013-11-18 | | | +| 甲醇合约 | MA9999.XZCE | MA8888.XZCE | 2014-06-17 | | MA为新的甲醇合约代码,自MA1506开始执行 | +| 晚籼稻合约 | LR9999.XZCE | LR8888.XZCE | 2014-07-08 | | | +| 硅铁合约 | SF9999.XZCE | SF8888.XZCE | 2014-08-08 | | | +| 锰硅合约 | SM9999.XZCE | SM8888.XZCE | 2014-08-08 | | | +| 动力煤合约 | ZC9999.XZCE | ZC8888.XZCE | 2015-05-18 | | ZC为新的动力煤合约,自ZC1605开始执行 | +| 棉纱合约 | CY9999.XZCE | CY8888.XZCE | 2017-08-18 | | | +| 苹果合约 | AP9999.XZCE | AP8888.XZCE | 2017-12-22 | | | +| 红枣合约 | CJ9999.XZCE | CJ8888.XZCE | 2019-04-30 | | | +| 尿素合约 | UR9999.XZCE | UR8888.XZCE | 2019-08-09 | | | +| 纯碱合约 | SA9999.XZCE | SA8888.XZCE | 2019-12-06 | | | +| 短纤合约 | PF9999.XZCE | PF8888.XZCE | 2020-10-12 | | | +| 花生合约 | PK9999.XZCE | PK8888.XZCE | 2021-02-01 | | | +| 烧碱合约 | SH9999.XZCE | SH8888.XZCE | 2023-09-15 | | | +| 对二甲苯合约 | PX9999.XZCE | PX8888.XZCE | 2023-09-15 | | | +| 瓶级聚酯切片合约 | PR9999.XZCE | PR8888.XZCE | 2024-08-30 | | | diff --git "a/docs/joinquant-api/JQ_\350\201\232\345\256\275\345\233\240\345\255\220\345\272\223.md" "b/docs/joinquant-api/JQ_\350\201\232\345\256\275\345\233\240\345\255\220\345\272\223.md" new file mode 100644 index 0000000..67452ed --- /dev/null +++ "b/docs/joinquant-api/JQ_\350\201\232\345\256\275\345\233\240\345\255\220\345\272\223.md" @@ -0,0 +1,524 @@ +## 使用方法 + +**说明:** + +- 在单因子分析中可以直接获取因子库中的数据 +- 同时也可以通过API的形式,在其他模块中获取这些因子 +- 为保证数据的连续性,所有数据基于`后复权`计算 +- 涉及到财务数据的因子,使用对应日期所能获取到的最新一期单季度数据进行计算 +- 为了防止单次返回数据时间过长,每次调用 api 请求的因子值不能超过 200000 个 +- 频率为天,每天05:00更新前一天数据 +- 提供股票的因子数据,不支持期货、指数等 +- 因子库中nan值:缺少依赖数据;财务数据中如果标的未披露相关字段,依赖数据不完整的话会返回nan值,请注意到财务报表披露规则变更,标的报表披露形式(金融类,非金融类等) , 以及标的上市时间等 +- 有关因子处理:除了因子描述及说明中有解释处理方法的因子,其他的都是原始因子,没有经过处理 + +### 获取因子值 + +获取因子值: + +``` + +# 导入函数库 +from jqfactor import get_factor_values +# 取值函数 +get_factor_values(securities, factors, start_date, end_date, count) +``` + +**参数** + +- securities:股票池,单只股票(字符串)或一个股票列表 +- factors: 因子名称,单个因子(字符串)或一个因子列表 +- start_date:开始日期,字符串或 datetime 对象,与 coun t参数二选一 +- end_date: 结束日期, 字符串或 datetime 对象,可以与 start_date 或 count 配合使用 +- count: 截止 end_date 之前交易日的数量(含 end_date 当日),与 start_date 参数二选一 + +**返回** + +- 一个 dict: key 是因子名称, value 是 pandas.dataframe。 +- dataframe 的 index 是日期, column 是股票代码, value 是因子值 + +**示例** + +``` + +# 导入函数库 +from jqfactor import get_factor_values + +# 获取因子Skewness60(个股收益的60日偏度)从 2017-01-01 至 2017-03-04 的因子值 +factor_data = get_factor_values(securities=['000001.XSHE'], factors=['Skewness60','DEGM','quick_ratio'], start_date='2017-01-01', end_date='2017-03-04') +# 查看因子值 +factor_data['Skewness60'] +``` + +### 获取所有因子 + +``` + +get_all_factors() +``` + +描述:获取聚宽因子库中所有的因子code和因子名称 + +**参数**:无 + +**返回**:pandas.DataFrame, + +- factor:因子code +- factor_intro:因子说明 +- category:因子分类名称 +- category_intro:因子分类说明 **示例**: + +``` + +#获取聚宽因子库所有因子 +from jqfactor import get_all_factors +print(get_all_factors()) + +#输出 + factor factor_intro category category_intro +0 beta BETA style 风险因子 - 风格因子 +1 book_to_price_ratio 市净率因子 style 风险因子 - 风格因子 +2 earnings_yield 盈利预期因子 style 风险因子 - 风格因子 +3 growth 成长因子 style 风险因子 - 风格因子 +4 leverage 杠杆因子 style 风险因子 - 风格因子 +5 liquidity 流动性因子 style 风险因子 - 风格因子 +6 momentum 动量因子 style 风险因子 - 风格因子 +7 non_linear_size 非线性市值因子 style 风险因子 - 风格因子 +8 residual_volatility 残差波动因子 style 风险因子 - 风格因子 +9 size 市值因子 style 风险因子 - 风格因子 +10 administration_expense_ttm 管理费用TTM basics 基础科目及衍生类因子 +11 asset_impairment_loss_ttm 资产减值损失TTM basics 基础科目及衍生类因子 +12 EBIT 息税前利润 basics 基础科目及衍生类因子 +... +... +``` + +## 风险模型因子列表 + +### 风格因子 + +#### 风格因子简介 + +| 因子 code | 因子名称 | 简介 | +| --- | --- | --- | +| size | 市值 | 捕捉大盘股和小盘股之间的收益差异 | +| beta | 贝塔 | 表征股票相对于市场的波动敏感度 | +| momentum | 传统动量 | 描述了过去两年里相对强势的股票与弱势股票之间的差异 | +| residual_volatility | 残差波动率 | 解释了剥离了市场风险后的波动率高低产生的收益率差异 | +| non_linear_size | 非线性市值 | 描述了无法由规模因子解释的但与规模有关的收益差异,通常代表中盘股 | +| book_to_price_ratio | 账面市值比 | 描述了股票估值高低不同而产生的收益差异, 即价值因子 | +| liquidity | 流动性 | 解释了由股票相对的交易活跃度不同而产生的收益率差异 | +| earnings_yield | 盈利能力 | 描述了由盈利收益导致的收益差异 | +| growth | 成长 | 描述了对销售或盈利增长预期不同而产生的收益差异 | +| leverage | 杠杆 | 描述了高杠杆股票与低杠杆股票之间的收益差异 | + +除了上面的风格因子,在计算风格因子过程中的描述因子daily_standard_deviation、cumulative_range等也可以通过get_factor_values、get_all_factors以及get_factor_kanban_values获取;描述因子是原始值,没有进行数据处理。 + +#### 风格因子数据处理说明 + +对描述因子和风格因子的数据分别进行正规化的处理,步骤如下: + +- 对描述因子分别进行去极值和标准化 去极值为将2.5倍标准差之外的值,赋值成2.5倍标准差的边界值 标准化为市值加权标准化 x=(x- mean(x))/(std(x)) 其中,均值的计算使用股票的市值加权,标准差为正常标准差。 +- 对描述因子按照权重加权求和 按照公式给出的权重对描述因子加权求和。如果某个因子的值为nan,则对不为nan的因子加权求和,同时权重重新归一化;如果所有因子都为nan,则结果为nan。 +- 对风格因子市值加权标准化 +- 缺失值填充 按照聚宽一级行业分行业,以不缺失的股票因子值相对于市值的对数进行回归,对缺失值进行填充 +- 对风格因子去极值,去极值方法同上面去极值描述 + +#### 风格因子计算说明 + +- 市值因子 size + +- 定义:1•natural_log_of_market_cap +- 解释 + +- 对数市值 natural_log_of_market_cap:公司的总市值的自然对数。 +- 贝塔因子 beta + +- 定义:1•raw_beta +- 解释 + +- raw_beta:CAPM 模型中的β,过去252个交易日股票的收益与市场收益(全A股票收益按流通市值加权)进行时间序列指数加权回归后的斜率系数。指数加权的半衰期为63个交易日。 停牌股票收益率为0,股票上市需超过21个交易日,否则beta为nan。 +- 动量因子 momentum + +- 定义:1•relative_strength +- 解释 + +- 相对强弱 relative_strength:滞后21个交易日的过去504个交易日股票超额对数收益率的指数加权之和。其中指数权重半衰期为126个交易日。停牌股票收益率为0,上市之前收益率为nan。 +- 残差波动率因子 residual_volatility + +- 定义:0.74•daily_standard_deviation + 0.16•cumulative_range + 0.10•historical_sigma +- 解释 + +- 日收益率标准差 daily_standard_deviation:日标准差,过去252日的超额收益的指数加权标准差,以42个交易日为半衰期。 +- 收益离差 cumulative_range:过去12个月中月收益率(以21个交易日为一个月)的最大值和最小值之间的差异。股票需上市需超过6个月,否则结果为nan。 +- 残差历史波动率 historical_sigma:计算beta时的回归残差项的过去252个交易日的标准差。股票上市需超过21个交易日,否则结果为nan。 +- 用 daily_standard_deviation、cumulative_range、historical_sigma 加权求和得到的 residual_volatility,之后 关于 beta 和 size 因子做正交化以消除共线性。 +- 非线性市值因子 non_linear_size + +- 定义:1•cube_of_size +- 解释 + +- 市值立方因子 cube_of_size:首先对标准化后的市值因子size暴露值求立方,将得到的结果与市值进行加权回归的正交化处理。 +- 账面市值比因子 book_to_price_ratio + +- 定义:book_to_price_ratio +- 解释 + +- 最新一季财报的账面价值与当前市值的比值(pb_ratio的倒数)。其中小于0的值设置为nan。 +- 流动性因子 liquidity + +- 定义:0.35•share_turnover_monthly + 0.35•average_share_turnover_quarterly + 0.3•average_share_turnover_annual +- 解释 + +- 月换手率 share_turnover_monthly:股票一个月换手率,过去21日的股票换手率之和的对数。 +- 季度平均平均月换手率 average_share_turnover_quarterly:过去3个月平均换手率,计算过去3个月的平均换手率,并取对数。 +- 年度平均月换手率 average_share_turnover_annual:过去12个月平均换手率,计算过去12个月的平均换手率,并取对数。 +- 用 share_turnover_monthly、average_share_turnover_quarterly、average_share_turnover_annual 加权求和得到的 liquidity 关于对数市值做正交化以消除共线性。 +- 盈利能力因子 earnings_yield + +- 定义:0.68•predicted_earnings_to_price_ratio + 0.21•cash_earnings_to_price_ratio + 0.11•earnings_to_price_ratio +- 解释 + +- 预期利润市值比 predicted_earnings_to_price_ratio:用未来12个月的净利预测值除以当前市值。 +- 现金流量市值比 cash_earnings_to_price_ratio:过去12个月的净经营现金流除以当前股票市值。 +- 利润市值比 earnings_to_price_ratio:过去12个月的归母净利润除以当前股票市值。 +- 成长因子 growth + +- 定义:0.18•long_term_predicted_earnings_growth + 0.11•short_term_predicted_earnings_growth + 0.24•earnings_growth + 0.47•sales_growth +- 解释 + +- 预期长期盈利增长率 long_term_predicted_earnings_growth:未来三年净利润分析师一致预期相对于净利润(不含少数股东损益)最新年报值的平均增长率。一个分析师预测的股票值为nan。 +- 预期短期盈利增长率 short_term_predicted_earnings_growth:未来一年净利润分析师一致预期相对于净利润(不含少数股东损益)最新年报值的平均增长率,只有一个分析师预测的股票值为nan。 +- 5年盈利增长率 earnings_growth:盈利增长率,过去5年的基本每股收益(basic_eps)关于[0,1,2,3,4]回归的斜率系数,然后再除以过去 5 年基本每股收益绝对值的均值。 +- 5年营业收入增长率 sales_growth:营收增长率,过去 5 年每股营业收入关于[0,1,2,3,4]回归的斜率系数,然后再除以过去 5 年每股营业收入绝对值的均值。对于保险行业的股票,使用“已赚保费”代替“销售收入”计算每股营业收入,对于银行业的股票,sales_growth为nan。 +- earnings_growth和sales_growth至少需要有4年的财务数据,否则为nan。 +- 杠杆因子 leverage + +- 定义:0.38•market_leverage + 0.35•debt_to_assets + 0.27•book_leverage +- 解释 + +- 市场杠杆 market_leverage:(当前的普通股市值+优先股账面价值+长期债务账面价值)/当前的普通股市值。 +- 资产负债比 debt_to_assets:总负债的账面价值/总资产的账面价值。 +- 账面杠杆 book_leverage:(普通股账面价値+优先股账面价值+长期债务账面价值)/普通股账面价值。账面杠杆需在0到100之间,否则结果为nan。 + +### 行业因子 + +可以获取以下行业的分类因子,股票属于这个行业则为赋值为1,否则赋值为0 + 1.[证监会行业](https://www.joinquant.com/help/api/help#plateData:%E8%AF%81%E7%9B%91%E4%BC%9A%E8%A1%8C%E4%B8%9A) + 2.[聚宽行业(一二级)](https://www.joinquant.com/help/api/help#plateData:%E8%81%9A%E5%AE%BD%E8%A1%8C%E4%B8%9A) + 3.[申万行业(一二三级)](https://www.joinquant.com/help/api/help#plateData:%E7%94%B3%E4%B8%87%E8%A1%8C%E4%B8%9A) + +``` + +>>> df_dic = get_factor_values('000001.XSHE',['A01','HY007','801780','801723'] ,end_date='2023-02-23',count=1) +print(df_dic) +>>> {'A01': 000001.XSHE + 2023-02-23 0, +'HY007': 000001.XSHE + 2023-02-23 1, +'801780': 000001.XSHE + 2023-02-23 1, +'801723': 000001.XSHE + 2023-02-23 0} +``` + +### 风格因子pro(仅本地数据jqdatasdk可用) + +#### 风格因子PRO简介 + +风格因子pro在原有的风格因子基础上,对底层的因子进一步细分和扩充。目前仅jqdatasdk提供,如有需求可[咨询运营开通](https://www.joinquant.com/help/api/doc?name=logon&id=9831) + +| 因子 code | 因子名称 | 简介 | +| --- | --- | --- | +| btop | 市净率因子 | 描述了股票估值高低不同而产生的收益差异, 即价值因子 | +| divyild | 分红因子 | 股票历史和预测的股息价格比的股票回报差异 | +| earnqlty | 盈利质量因子 | 股票收益因其收益的应计部分而产生的差异 | +| earnvar | 盈利变动率因子 | 解释由于收益、销售额和现金流的可变性而导致的股票回报差异,以及分析师预测的收益与价格之比。 | +| earnyild | 收益因子 | 描述了由盈利收益导致的收益差异 | +| financial_leverage | 财务杠杆因子 | 描述了高杠杆股票与低杠杆股票之间的收益差异 | +| invsqlty | 投资能力因子 | 衡量当股票价格过高/过低时,公司对资产扩张/紧缩的的倾向以及管理观点 | +| liquidty | 流动性因子 | 解释了由股票相对的交易活跃度不同而产生的收益率差异 | +| long_growth | 长期成长因子 | 描述了对销售或盈利增长预期不同而产生的收益差异 | +| ltrevrsl | 长期反转因子 | 解释与长期股票价格行为相关的常见回报变化 | +| market_beta | 市场波动率因子 | 表征股票相对于市场的波动敏感度 | +| market_size | 市值规模因子 | 捕捉大盘股和小盘股之间的收益差异 | +| midcap | 中等市值因子 | 捕捉中等市值股票与大盘股或者小盘股之间的收益差异 | +| profit | 盈利能力因子 | 表征公司运营的效率,盈利能力指标的组合 | +| relative_momentum | 相对动量因子 | 解释与最近(12个月,滞后1个月)股价行为相关的股票回报的常见变化 | +| resvol | 残余波动率因子 | 捕捉股票回报的相对波动性,这种波动性不能用股票对市场回报的敏感性差异来解释(市场波动率因子) | + +## 基本面及量价因子列表 + +### 财务基本面因子 + +#### 质量因子 + +| 因子 code | 因子名称 | 计算方法 | +| --- | --- | --- | +| net_profit_to_total_operate_revenue_ttm | 净利润与营业总收入之比 | 净利润与营业总收入之比=净利润(TTM)/营业总收入(TTM) | +| cfo_to_ev | 经营活动产生的现金流量净额与企业价值之比TTM | 经营活动产生的现金流量净额TTM / 企业价值。其中,企业价值=司市值+负债合计-货币资金 | +| accounts_payable_turnover_days | 应付账款周转天数 | 应付账款周转天数 = 360 / 应付账款周转率 | +| net_profit_ratio | 销售净利率 | 售净利率=净利润(TTM)/营业收入(TTM) | +| net_non_operating_income_to_total_profit | 营业外收支利润净额/利润总额 | 营业外收支利润净额/利润总额 | +| fixed_asset_ratio | 固定资产比率 | 固定资产比率=(固定资产+工程物资+在建工程)/总资产 | +| account_receivable_turnover_days | 应收账款周转天数 | 应收账款周转天数=360/应收账款周转率 | +| DEGM | 毛利率增长 | 毛利率增长=(今年毛利率(TTM)/去年毛利率(TTM))-1 | +| sale_expense_to_operating_revenue | 营业费用与营业总收入之比 | 营业费用与营业总收入之比=销售费用(TTM)/营业总收入(TTM) | +| operating_tax_to_operating_revenue_ratio_ttm | 销售税金率 | 销售税金率=营业税金及附加(TTM)/营业收入(TTM) | +| inventory_turnover_days | 存货周转天数 | 存货周转天数=360/存货周转率 | +| OperatingCycle | 营业周期 | 应收账款周转天数+存货周转天数 | +| net_operate_cash_flow_to_operate_income | 经营活动产生的现金流量净额与经营活动净收益之比 | 经营活动产生的现金流量净额(TTM)/(营业总收入(TTM)-营业总成本(TTM)) | +| net_operating_cash_flow_coverage | 净利润现金含量 | 经营活动产生的现金流量净额/归属于母公司所有者的净利润 | +| quick_ratio | 速动比率 | 速动比率=(流动资产合计-存货)/ 流动负债合计 | +| intangible_asset_ratio | 无形资产比率 | 无形资产比率=(无形资产+研发支出+商誉)/总资产 | +| MLEV | 市场杠杆 | 市场杠杆=非流动负债合计/(非流动负债合计+总市值) | +| debt_to_equity_ratio | 产权比率 | 产权比率=负债合计/归属母公司所有者权益合计 | +| super_quick_ratio | 超速动比率 | (货币资金+交易性金融资产+应收票据+应收帐款+其他应收款)/流动负债合计 | +| inventory_turnover_rate | 存货周转率 | 存货周转率=营业成本(TTM)/AvgQ(存货,4,0) | +| operating_profit_growth_rate | 营业利润增长率 | 营业利润增长率=(今年营业利润(TTM)/去年营业利润(TTM))-1 | +| long_debt_to_working_capital_ratio | 长期负债与营运资金比率 | 长期负债与营运资金比率=非流动负债合计/(流动资产合计-流动负债合计) | +| current_ratio | 流动比率(单季度) | 流动比率=流动资产合计/流动负债合计 | +| net_operate_cash_flow_to_net_debt | 经营活动产生现金流量净额/净债务 | 经营活动产生现金流量净额/净债务 | +| net_operate_cash_flow_to_asset | 总资产现金回收率 | 经营活动产生的现金流量净额(ttm) / 总资产 | +| non_current_asset_ratio | 非流动资产比率 | 非流动资产比率=非流动资产合计/总资产 | +| total_asset_turnover_rate | 总资产周转率 | 总资产周转率=营业收入(ttm)/总资产 | +| long_debt_to_asset_ratio | 长期借款与资产总计之比 | 长期借款与资产总计之比=长期借款/总资产 | +| debt_to_tangible_equity_ratio | 有形净值债务率 | 负债合计/有形净值 其中有形净值=股东权益-无形资产净值,无形资产净值= 商誉+无形资产 | +| ROAEBITTTM | 总资产报酬率 | (利润总额(TTM)+利息支出(TTM)) / 总资产在过去12个月的平均 | +| operating_profit_ratio | 营业利润率 | 营业利润率=营业利润(TTM)/营业收入(TTM) | +| long_term_debt_to_asset_ratio | 长期负债与资产总计之比 | 长期负债与资产总计之比=非流动负债合计/总资产 | +| current_asset_turnover_rate | 流动资产周转率TTM | 过去12个月的营业收入/过去12个月的平均流动资产合计 | +| financial_expense_rate | 财务费用与营业总收入之比 | 财务费用(TTM) / 营业总收入(TTM) | +| operating_profit_to_total_profit | 经营活动净收益/利润总额 | 经营活动净收益/利润总额 | +| debt_to_asset_ratio | 债务总资产比 | 债务总资产比=负债合计/总资产 | +| equity_to_fixed_asset_ratio | 股东权益与固定资产比率 | 股东权益与固定资产比率=股东权益/(固定资产+工程物资+在建工程) | +| net_operate_cash_flow_to_total_liability | 经营活动产生的现金流量净额/负债合计 | 经营活动产生的现金流量净额/负债合计 | +| cash_rate_of_sales | 经营活动产生的现金流量净额与营业收入之比 | 经营活动产生的现金流量净额(TTM) / 营业收入(TTM) | +| operating_profit_to_operating_revenue | 营业利润与营业总收入之比 | 营业利润与营业总收入之比=营业利润(TTM)/营业总收入(TTM) | +| roa_ttm | 资产回报率TTM | 资产回报率=净利润(TTM)/期末总资产 | +| admin_expense_rate | 管理费用与营业总收入之比 | 管理费用与营业总收入之比=管理费用(TTM)/营业总收入(TTM) | +| fixed_assets_turnover_rate | 固定资产周转率 | 等于过去12个月的营业收入/过去12个月的平均(固定资产+工程物资+在建工程) | +| invest_income_associates_to_total_profit | 对联营和合营公司投资收益/利润总额 | 对联营和营公司投资收益/利润总额 | +| equity_to_asset_ratio | 股东权益比率 | 股东权益比率=股东权益/总资产 | +| goods_service_cash_to_operating_revenue_ttm | 销售商品提供劳务收到的现金与营业收入之比 | 销售商品提供劳务收到的现金与营业收入之比=销售商品和提供劳务收到的现金(TTM)/营业收入(TTM) | +| cash_to_current_liability | 现金比率 | 期末现金及现金等价物余额/流动负债合计的12个月均值 | +| net_operate_cash_flow_to_total_current_liability | 现金流动负债比 | 现金流动负债比=经营活动产生的现金流量净额(TTM)/流动负债合计 | +| ACCA | 现金流资产比和资产回报率之差 | 现金流资产比-资产回报率,其中现金流资产比=经营活动产生的现金流量净额/总资产 | +| roe_ttm | 权益回报率TTM | 权益回报率=净利润(TTM)/期末股东权益 | +| accounts_payable_turnover_rate | 应付账款周转率 | TTM(营业成本,0)/(AvgQ(应付账款,4,0) + AvgQ(应付票据,4,0) ) | +| gross_income_ratio | 销售毛利率 | 销售毛利率=(营业收入(TTM)-营业成本(TTM))/营业收入(TTM) | +| adjusted_profit_to_total_profit | 扣除非经常损益后的净利润/利润总额 | 扣除非经常损益后的净利润/利润总额 | +| account_receivable_turnover_rate | 应收账款周转率 | 即,TTM(营业收入,0)/(AvgQ(应收账款,4,0)+ AvgQ(应收票据,4,0)) | +| equity_turnover_rate | 股东权益周转率 | 股东权益周转率=营业收入(ttm)/股东权益 | +| total_profit_to_cost_ratio | 成本费用利润率 | 成本费用利润率=利润总额/(营业成本+财务费用+销售费用+管理费用),以上科目使用的都是TTM的数值 | +| operating_cost_to_operating_revenue_ratio | 销售成本率 | 销售成本率=营业成本(TTM)/营业收入(TTM) | +| LVGI | 财务杠杆指数 | 本期(年报)资产负债率/上期(年报)资产负债率 | +| SGI | 营业收入指数 | 本期(年报)营业收入/上期(年报)营业收入 | +| GMI | 毛利率指数 | 上期(年报)毛利率/本期(年报)毛利率 | +| DSRI | 应收账款指数 | 本期(年报)应收账款占营业收入比例/上期(年报)应收账款占营业收入比例 | +| rnoa_ttm | 经营资产回报率TTM | 销售利润率*经营资产周转率 | +| profit_margin_ttm | 销售利润率TTM | 营业利润/营业收入 | +| roe_ttm_8y | 长期权益回报率TTM | 8年(1+roe_ttm)的累乘 ^ (1/8) - 1 # 至少要有近4年的数据,否则为 nan | +| asset_turnover_ttm | 经营资产周转率TTM | 营业收入TTM/近4个季度期末净经营性资产均值; 净经营性资产=经营资产-经营负债 | +| roic_ttm | 投资资本回报率TTM | 权益回报率=归属于母公司股东的净利润(TTM)/ 前四个季度投资资本均值; 投资资本=股东权益+负债合计-无息流动负债-无息非流动负债; 无息流动负债=应付账款+预收款项+应付职工薪酬+应交税费+其他应付款+一年内的递延收益+其它流动负债; 无息非流动负债=非流动负债合计-长期借款-应付债券; | +| roa_ttm_8y | 长期资产回报率TTM | 8年(1+roa_ttm)的乘积 ^ (1/8) - 1 # 至少要有近4年的数据,否则为 nan | +| SGAI | 销售管理费用指数 | 本期(年报)销售管理费用占营业收入的比例/上期(年报)销售管理费用占营业收入的比例 | +| DEGM_8y | 长期毛利率增长 | 过去8年(1+DEGM)的累成 ^ (1/8) - 1 | +| maximum_margin | 最大盈利水平 | max(margin_stability, DEGM_8y) | +| margin_stability | 盈利能力稳定性 | mean(GM)/std(GM); GM 为过去8年毛利率ttm | + +#### 基础因子 + +| 因子 code | 因子名称 | 计算方法 | +| --- | --- | --- | +| net_working_capital | 净运营资本 | 流动资产 - 流动负债 | +| total_operating_revenue_ttm | 营业总收入TTM | 计算过去12个月的 营业总收入 之和 | +| operating_profit_ttm | 营业利润TTM | 计算过去12个月 营业利润 之和 | +| net_operate_cash_flow_ttm | 经营活动现金流量净额TTM | 计算过去12个月 经营活动产生的现金流量净值 之和 | +| operating_revenue_ttm | 营业收入TTM | 计算过去12个月的 营业收入 之和 | +| interest_carry_current_liability | 带息流动负债 | 流动负债合计 - 无息流动负债 | +| sale_expense_ttm | 销售费用TTM | 计算过去12个月 销售费用 之和 | +| gross_profit_ttm | 毛利TTM | 过去12个月的 毛利润 之和 | +| retained_earnings | 留存收益 | 盈余公积金+未分配利润 | +| total_operating_cost_ttm | 营业总成本TTM | 计算过去12个月的 营业总成本 之和 | +| non_operating_net_profit_ttm | 营业外收支净额TTM | 营业外收入(TTM) - 营业外支出(TTM) | +| net_invest_cash_flow_ttm | 投资活动现金流量净额TTM | 计算过去12个月 投资活动现金流量净额 之和 | +| financial_expense_ttm | 财务费用TTM | 计算过去12个月 财务费用 之和 | +| administration_expense_ttm | 管理费用TTM | 计算过去12个月 管理费用 之和 | +| net_interest_expense | 净利息费用 | 利息支出-利息收入 | +| value_change_profit_ttm | 价值变动净收益TTM | 计算过去12个月 价值变动净收益 之和 | +| total_profit_ttm | 利润总额TTM | 计算过去12个月 利润总额 之和 | +| net_finance_cash_flow_ttm | 筹资活动现金流量净额TTM | 计算过去12个月 筹资活动现金流量净额 之和 | +| interest_free_current_liability | 无息流动负债 | 应付票据+应付账款+预收账款(用 预售款项 代替)+应交税费+应付利息+其他应付款+其他流动负债 | +| EBIT | 息税前利润 | 净利润+所得税+财务费用 | +| net_profit_ttm | 净利润TTM | 计算过去12个月 净利润 之和 | +| OperateNetIncome | 经营活动净收益 | 经营活动净收益/利润总额(%) * 利润总额 | +| EBITDA | 息税折旧摊销前利润(报告期) | 一般企业:(营业总收入-营业税金及附加)-(营业成本+利息支出+手续费及佣金支出+销售费用+管理费用+研发费用+资产减值损失)+(固定资产折旧、油气资产折耗、生产性生物资产折旧)+无形资产摊销+长期待摊费用摊销; 银行业:(营业总收入-营业税金及附加)-(营业成本+管理费用+资产减值损失)+(固定资产折旧、油气资产折耗、生产性生物资产折旧+无形资产摊销+长期待摊费用摊销) | +| asset_impairment_loss_ttm | 资产减值损失TTM | 计算过去12个月 资产减值损失 之和 | +| np_parent_company_owners_ttm | 归属于母公司股东的净利润TTM | 计算过去12个月 归属于母公司股东的净利润 之和 | +| operating_cost_ttm | 营业成本TTM | 计算过去12个月的 营业成本 之和 | +| net_debt | 净债务 | 总债务-期末现金及现金等价物余额 | +| non_recurring_gain_loss | 非经常性损益 | 归属于母公司股东的净利润-扣除非经常损益后的净利润(元) | +| goods_sale_and_service_render_cash_ttm | 销售商品提供劳务收到的现金 | 计算过去12个月 销售商品提供劳务收到的现金 之和 | +| market_cap | 市值 | 市值 | +| cash_flow_to_price_ratio | 现金流市值比 | 1 / pcf_ratio (ttm) | +| sales_to_price_ratio | 营收市值比 | 1 / ps_ratio (ttm) | +| circulating_market_cap | 流通市值 | 流通市值 | +| operating_assets | 经营性资产 | 总资产 - 金融资产 | +| financial_assets | 金融资产 | 货币资金 + 交易性金融资产 + 应收票据 + 应收利息 + 应收股利 + 可供出售金融资产 + 持有至到期投资 | +| operating_liability | 经营性负债 | 总负债 - 金融负债 | +| financial_liability | 金融负债 | (流动负债合计-无息流动负债)+(有息非流动负债)=(流动负债合计-应付账款-预收款项-应付职工薪酬-应交税费-其他应付款-一年内的递延收益-其它流动负债)+(长期借款+应付债券) | + +#### 成长因子 + +| 因子 code | 因子名称 | 计算方法 | +| --- | --- | --- | +| operating_revenue_growth_rate | 营业收入增长率 | 营业收入增长率=(今年营业收入(TTM)/去年营业收入(TTM))-1 | +| total_asset_growth_rate | 总资产增长率 | 总资产 / 总资产_4 -1 | +| net_operate_cashflow_growth_rate | 经营活动产生的现金流量净额增长率 | (今年经营活动产生的现金流量净额(TTM)/去年经营活动产生的现金流量净额(TTM))-1 | +| total_profit_growth_rate | 利润总额增长率 | 利润总额增长率=(今年利润总额(TTM)/去年利润总额(TTM))-1 | +| np_parent_company_owners_growth_rate | 归属母公司股东的净利润增长率 | (今年归属于母公司所有者的净利润(TTM)/去年归属于母公司所有者的净利润(TTM))-1 | +| financing_cash_growth_rate | 筹资活动产生的现金流量净额增长率 | 过去12个月的筹资现金流量净额 / 4季度前的12个月的筹资现金流量净额 - 1 | +| net_profit_growth_rate | 净利润增长率 | 净利润增长率=(今年净利润(TTM)/去年净利润(TTM))-1 | +| net_asset_growth_rate | 净资产增长率 | (当季的股东权益/三季度前的股东权益)-1 | +| PEG | 市盈率相对盈利增长比率 | PEG = PE / (归母公司净利润(TTM)增长率 * 100) # 如果 PE 或 增长率为负,则为 nan | + +#### 每股因子 + +| 因子 code | 因子名称 | 计算方法 | +| --- | --- | --- | +| total_operating_revenue_per_share_ttm | 每股营业总收入TTM | 营业总收入(TTM)除以总股本 | +| cash_and_equivalents_per_share | 每股现金及现金等价物余额 | 每股现金及现金等价物余额 | +| surplus_reserve_fund_per_share | 每股盈余公积金 | 每股盈余公积金 | +| retained_profit_per_share | 每股未分配利润 | 每股未分配利润 | +| operating_revenue_per_share_ttm | 每股营业收入TTM | 营业收入(TTM)除以总股本 | +| net_asset_per_share | 每股净资产 | (归属母公司所有者权益合计-其他权益工具)除以总股本 | +| total_operating_revenue_per_share | 每股营业总收入 | 每股营业总收入 | +| retained_earnings_per_share | 每股留存收益 | 每股留存收益 | +| operating_revenue_per_share | 每股营业收入 | 每股营业收入 | +| net_operate_cash_flow_per_share | 每股经营活动产生的现金流量净额 | 每股经营活动产生的现金流量净额 | +| operating_profit_per_share_ttm | 每股营业利润TTM | 营业利润(TTM)除以总股本 | +| eps_ttm | 每股收益TTM | 过去12个月归属母公司所有者的净利润(TTM)除以总股本 | +| cashflow_per_share_ttm | 每股现金流量净额,根据当时日期来获取最近变更日的总股本 | 现金流量净额(TTM)除以总股本 | +| operating_profit_per_share | 每股营业利润 | 每股营业利润 | +| capital_reserve_fund_per_share | 每股资本公积金 | 每股资本公积金 | + +### 量价因子 + +#### 情绪因子 + +| 因子 code | 因子名称 | 计算方法 | +| --- | --- | --- | +| VROC12 | 12日量变动速率指标 | 成交量减N日前的成交量,再除以N日前的成交量,放大100倍,得到VROC值 ,n=12 | +| TVMA6 | 6日成交金额的移动平均值 | 6日成交金额的移动平均值 | +| VEMA10 | 成交量的10日指数移动平均 | | +| VR | 成交量比率(Volume Ratio) | VR=(AVS+1/2CVS)/(BVS+1/2CVS) | +| VOL5 | 5日平均换手率 | 5日换手率的均值,单位为% | +| BR | 意愿指标 | BR=N日内(当日最高价-昨日收盘价)之和 / N日内(昨日收盘价-当日最低价)之和×100 n设定为26 | +| VEMA12 | 12日成交量的移动平均值 | | +| TVMA20 | 20日成交金额的移动平均值 | 20日成交金额的移动平均值 | +| DAVOL5 | 5日平均换手率与120日平均换手率 | 5日平均换手率 / 120日平均换手率 | +| VDIFF | 计算VMACD因子的中间变量 | EMA(VOLUME,SHORT)-EMA(VOLUME,LONG) short设置为12,long设置为26,M设置为9 | +| WVAD | 威廉变异离散量 | (收盘价-开盘价)/(最高价-最低价)×成交量,再做加和,使用过去6个交易日的数据 | +| MAWVAD | 因子WVAD的6日均值 | | +| VSTD10 | 10日成交量标准差 | 10日成交量标准差 | +| ATR14 | 14日均幅指标 | 真实振幅的14日移动平均 | +| VOL10 | 10日平均换手率 | 10日换手率的均值,单位为% | +| DAVOL10 | 10日平均换手率与120日平均换手率之比 | 10日平均换手率 / 120日平均换手率 | +| VDEA | 计算VMACD因子的中间变量 | EMA(VDIFF,M) short设置为12,long设置为26,M设置为9 | +| VSTD20 | 20日成交量标准差 | 20日成交量标准差 | +| ATR6 | 6日均幅指标 | 真实振幅的6日移动平均 | +| VOL20 | 20日平均换手率 | 20日换手率的均值,单位为% | +| DAVOL20 | 20日平均换手率与120日平均换手率之比 | 20日平均换手率 / 120日平均换手率 | +| VMACD | 成交量指数平滑异同移动平均线 | 快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIFF, 由DIFF的M日移动平均得到DEA,由DIFF-DEA的值得到MACD | +| AR | 人气指标 | AR=N日内(当日最高价—当日开市价)之和 / N日内(当日开市价—当日最低价)之和 * 100,n设定为26 | +| VOL60 | 60日平均换手率 | 60日换手率的均值,单位为% | +| turnover_volatility | 换手率相对波动率 | 取20个交易日个股换手率的标准差 | +| VOL120 | 120日平均换手率 | 120日换手率的均值,单位为% | +| VROC6 | 6日量变动速率指标 | 成交量减N日前的成交量,再除以N日前的成交量,放大100倍,得到VROC值 ,n=6 | +| TVSTD20 | 20日成交金额的标准差 | 20日成交额的标准差 | +| ARBR | ARBR | 因子 AR 与因子 BR 的差 | +| money_flow_20 | 20日资金流量 | 用收盘价、最高价及最低价的均值乘以当日成交量即可得到该交易日的资金流量 | +| VEMA5 | 成交量的5日指数移动平均 | | +| VOL240 | 240日平均换手率 | 240日换手率的均值,单位为% | +| VEMA26 | 成交量的26日指数移动平均 | | +| VOSC | 成交量震荡 | 'VEMA12'和'VEMA26'两者的差值,再求差值与'VEMA12'的比,最后将比值放大100倍,得到VOSC值 | +| TVSTD6 | 6日成交金额的标准差 | 6日成交额的标准差 | +| PSY | 心理线指标 | 12日内上涨的天数/12 *100 | + +#### 风险因子 + +| 因子 code | 因子名称 | 计算方法 | +| --- | --- | --- | +| Variance20 | 20日年化收益方差 | 20日年化收益方差 | +| Skewness20 | 个股收益的20日偏度 | 个股收益的20日偏度 | +| Kurtosis20 | 个股收益的20日峰度 | 个股收益的20日峰度 | +| sharpe_ratio_20 | 20日夏普比率 | (Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差) | +| Variance60 | 60日年化收益方差 | 60日年化收益方差 | +| Skewness60 | 个股收益的60日偏度 | 个股收益的60日偏度 | +| Kurtosis60 | 个股收益的60日峰度 | 个股收益的60日峰度 | +| sharpe_ratio_60 | 60日夏普比率 | (Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差) | +| Variance120 | 120日年化收益方差 | 120日年化收益方差 | +| Skewness120 | 个股收益的120日偏度 | 个股收益的120日偏度 | +| Kurtosis120 | 个股收益的120日峰度 | 个股收益的120日峰度 | +| sharpe_ratio_120 | 120日夏普比率 | (Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差) | + +#### 技术因子 + +| 因子 code | 因子名称 | 计算方法 | +| --- | --- | --- | +| boll_down | 下轨线(布林线)指标 | (MA(CLOSE,M)-2*STD(CLOSE,M)) / 今日收盘价; M=20 | +| boll_up | 上轨线(布林线)指标 | (MA(CLOSE,M)+2*STD(CLOSE,M)) / 今日收盘价; M=20 | +| EMA5 | 5日指数移动均线 | 5日指数移动均线 / 今日收盘价 | +| EMAC10 | 10日指数移动均线 | 10日指数移动均线 / 今日收盘价 | +| EMAC12 | 12日指数移动均线 | 12日指数移动均线 / 今日收盘价 | +| EMAC20 | 20日指数移动均线 | 20日指数移动均线 / 今日收盘价 | +| EMAC26 | 26日指数移动均线 | 26日指数移动均线 / 今日收盘价 | +| EMAC120 | 120日指数移动均线 | 120日指数移动均线 / 今日收盘价 | +| MAC5 | 5日移动均线 | 5日移动均线 / 今日收盘价 | +| MAC10 | 10日移动均线 | 10日移动均线 / 今日收盘价 | +| MAC20 | 20日移动均线 | 20日移动均线 / 今日收盘价 | +| MAC60 | 60日移动均线 | 60日移动均线 / 今日收盘价 | +| MAC120 | 120日移动均线 | 120日移动均线 / 今日收盘价 | +| MACDC | 平滑异同移动平均线 | MACD(SHORT=12, LONG=26, MID=9) / 今日收盘价 | +| MFI14 | 资金流量指标 | ①求得典型价格(当日最高价,最低价和收盘价的均值) ②根据典型价格高低判定正负向资金流(资金流=典型价格*成交量) ③计算MR= 正向/负向 ④MFI=100-100/(1+MR) | +| price_no_fq | 不复权价格 | 不复权价格 | + +#### 动量因子 + +| 因子 code | 因子名称 | 计算方法 | +| --- | --- | --- | +| arron_up_25 | Aroon指标上轨 | Aroon(上升)=[(计算期天数-最高价后的天数)/计算期天数]*100 | +| arron_down_25 | Aroon指标下轨 | Aroon(下降)=[(计算期天数-最低价后的天数)/计算期天数]*100 | +| BBIC | BBI 动量 | BBI(3, 6, 12, 24) / 收盘价 (BBI 为常用技术指标类因子“多空均线”) | +| bear_power | 空头力道 | (最低价-EMA(close,13)) / close | +| BIAS5 | 5日乖离率 | (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取5 | +| BIAS10 | 10日乖离率 | (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取10 | +| BIAS20 | 20日乖离率 | (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取20 | +| BIAS60 | 60日乖离率 | (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取60 | +| bull_power | 多头力道 | (最高价-EMA(close,13)) / close | +| CCI10 | 10日顺势指标 | CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=10 | +| CCI15 | 15日顺势指标 | CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=15 | +| CCI20 | 20日顺势指标 | CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=20 | +| CCI88 | 88日顺势指标 | CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=88 | +| CR20 | CR指标 | ①中间价=1日前的最高价+最低价/2 ②上升值=今天的最高价-前一日的中间价(负值记0) ③下跌值=前一日的中间价-今天的最低价(负值记0) ④多方强度=20天的上升值的和,空方强度=20天的下跌值的和 ⑤CR=(多方强度÷空方强度)×100 | +| fifty_two_week_close_rank | 当前价格处于过去1年股价的位置 | 取过去的250个交易日各股的收盘价时间序列,每只股票按照从大到小排列,并找出当日所在的位置 | +| MASS | 梅斯线 | MASS(N1=9, N2=25, M=6) | +| PLRC12 | 12日收盘价格与日期线性回归系数 | 计算 12 日收盘价格,与日期序号(1-12)的线性回归系数,(close / mean(close)) = beta * t + alpha | +| PLRC24 | 24日收盘价格与日期线性回归系数 | 计算 24 日收盘价格,与日期序号(1-24)的线性回归系数, (close / mean(close)) = beta * t + alpha | +| PLRC6 | 6日收盘价格与日期线性回归系数 | 计算 6 日收盘价格,与日期序号(1-6)的线性回归系数,(close / mean(close)) = beta * t + alpha | +| Price1M | 当前股价除以过去一个月股价均值再减1 | 当日收盘价 / mean(过去一个月(21天)的收盘价) -1 | +| Price3M | 当前股价除以过去三个月股价均值再减1 | 当日收盘价 / mean(过去三个月(61天)的收盘价) -1 | +| Price1Y | 当前股价除以过去一年股价均值再减1 | 当日收盘价 / mean(过去一年(250天)的收盘价) -1 | +| Rank1M | 1减去 过去一个月收益率排名与股票总数的比值 | 1-(Rank(个股20日收益) / 股票总数) | +| ROC12 | 12日变动速率(Price Rate of Change) | ①AX=今天的收盘价—12天前的收盘价 ②BX=12天前的收盘价 ③ROC=AX/BX*100 | +| ROC120 | 120日变动速率(Price Rate of Change) | ①AX=今天的收盘价—120天前的收盘价 ②BX=120天前的收盘价 ③ROC=AX/BX*100 | +| ROC20 | 20日变动速率(Price Rate of Change) | ①AX=今天的收盘价—20天前的收盘价 ②BX=20天前的收盘价 ③ROC=AX/BX*100 | +| ROC6 | 6日变动速率(Price Rate of Change) | ①AX=今天的收盘价—6天前的收盘价 ②BX=6天前的收盘价 ③ROC=AX/BX*100 | +| ROC60 | 60日变动速率(Price Rate of Change) | ①AX=今天的收盘价—60天前的收盘价 ②BX=60天前的收盘价 ③ROC=AX/BX*100 | +| single_day_VPT | 单日价量趋势 | (今日收盘价 - 昨日收盘价)/ 昨日收盘价 * 当日成交量 # (复权方法为基于当日前复权) | +| single_day_VPT_12 | 单日价量趋势12均值 | MA(single_day_VPT, 12) | +| single_day_VPT_6 | 单日价量趋势6日均值 | MA(single_day_VPT, 6) | +| TRIX10 | 10日终极指标TRIX | MTR=收盘价的10日指数移动平均的10日指数移动平均的10日指数移动平均(求三次ema10); TRIX=(MTR-1日前的MTR)/1日前的MTR*100 | +| TRIX5 | 5日终极指标TRIX | MTR=收盘价的5日指数移动平均的5日指数移动平均的5日指数移动平均(求三次ema5); TRIX=(MTR-1日前的MTR)/1日前的MTR*100 | +| Volume1M | 当前交易量相比过去1个月日均交易量 与过去过去20日日均收益率乘积 | 当日交易量 / 过去20日交易量MEAN * 过去20日收益率MEAN | diff --git "a/docs/joinquant-api/JQ_\350\202\241\347\245\250\346\225\260\346\215\256.md" "b/docs/joinquant-api/JQ_\350\202\241\347\245\250\346\225\260\346\215\256.md" new file mode 100644 index 0000000..a60d018 --- /dev/null +++ "b/docs/joinquant-api/JQ_\350\202\241\347\245\250\346\225\260\346\215\256.md" @@ -0,0 +1,5630 @@ +## 获取股票数据 + +**注意** + +- run_query函数为了防止返回数据量过大, 我们每次最多返回条数为4000行(之前是3000行) +- query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- [Query的简单教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) +- [数据常见疑问汇总](https://www.joinquant.com/view/community/detail/fcb3baa6f926259c4caac3bce7c12b1c?type=2) + +### 获取股票概况 + +包含股票的上市时间、退市时间、代码、名称、是否是ST等。 + +更多API的可参考[官方API文档](https://www.joinquant.com/api) + +#### 获取单支股票数据 + +获取单支股票的信息 + +**调用方法** + +``` + +get_security_info(code) +``` + +**参数** + +- code: 证券代码 + +**返回值** + +- 一个对象, 有如下属性: + +1. display_name # 中文名称 +2. name # 缩写简称 +3. start_date # 上市日期, [datetime.date] 类型 +4. end_date # 退市日期, [datetime.date] 类型, 如果没有退市则为2200-01-01 +5. type # 类型,stock(股票),index(指数),etf(ETF基金),fja(分级A),fjb(分级B) +6. parent # 分级基金的母基金代码 + +**示例** + +``` + +# 输出平安银行信息的中文名称 +get_security_info('000001.XSHE').display_name +``` + +#### 获取所有股票数据 + +获取平台支持的所有股票数据 + +**调用方法** + +``` + +get_all_securities(types=['stock'], date=None) +``` + +**参数** + +- types:默认为stock,这里请在使用时注意防止未来函数。 +- date: 日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象, 用于获取某日期还在上市的股票信息. 默认值为 None, 表示获取所有日期的股票信息 + +**返回** + +- display_name # 中文名称 +- name # 缩写简称 +- start_date # 上市日期 +- end_date # 退市日期,如果没有退市则为2200-01-01 +- type # 类型,stock(股票) + +[pandas.DataFrame], 比如:`get_all_securities()[:2]`返回: + +``` + +display_name name start_date end_date type +000001.XSHE 平安银行 PAYH 1991-04-03 2200-01-01 stock +000002.XSHE 万科A WKA 1991-01-29 2200-01-01 stock +``` + +**示例** + +``` + +#将所有股票列表转换成数组 + stocks = list(get_all_securities(['stock']).index) + #获得2015年10月10日还在上市的所有股票列表 + get_all_securities(date='2015-10-10') +``` + +#### 判断股票是否是ST + +得到多只股票在一段时间是否是ST + +**调用方法** + +``` + +get_extras(info, security_list, start_date='2015-01-01', end_date='2015-12-31', df=True) +``` + +**参数** + +- info: ‘is_st’,是否股改, st,*st和退市整理期标的 +- security_list: 股票列表 +- start_date/end_date: 开始结束日期, 同[get_price] +- df: 返回[pandas.DataFrame]对象还是一个dict + +**返回值** + +- df=True: [pandas.DataFrame]对象, 列索引是股票代号, 行索引是[datetime.datetime], 比如 `get_extras('is_st', ['000001.XSHE', '000018.XSHE'], start_date='2013-12-01', end_date='2013-12-03')`返回: + +``` + +000001.XSHE 000018.XSHE +2013-12-02 False True +2013-12-03 False True +``` + +- df=False: 一个dict, key是股票代号, value是[numpy.ndarray], 比如`get_extras('is_st', ['000001.XSHE', '000018.XSHE'], start_date='2015-12-01', end_date='2015-12-03', df=False)` 返回: + +``` + +{ + '000001.XSHE': array([False, False, False], dtype=bool), + '000018.XSHE': array([False, False, False], dtype=bool) +} +``` + +#### 获取股票的融资融券信息 + +获取一只或者多只股票在一个时间段内的融资融券信息 + +**调用方法** + +``` + +get_mtss(security_list, start_date, end_date, fields=None) +``` + +**参数** + +- security_list: 一只股票代码或者一个股票代码的 list +- start_date: 开始日期, 一个字符串或者 [datetime.datetime](https://docs.python.org/2/library/datetime.html#datetime.datetime)/[datetime.date](https://docs.python.org/2/library/datetime.html#datetime.date) 对象 +- end_date: 结束日期, 一个字符串或者 [datetime.date](https://docs.python.org/2/library/datetime.html#datetime.date)/[datetime.datetime](https://docs.python.org/2/library/datetime.html#datetime.datetime)对象 +- fields: 字段名或者 list, 可选. 默认为 None, 表示取全部字段, 各字段含义如下: + +| 字段名 | 含义 | +| --- | --- | +| date | 日期 | +| sec_code | 股票代码 | +| fin_value | 融资余额(元) | +| fin_buy_value | 融资买入额(元) | +| fin_refund_value | 融资偿还额(元) | +| sec_value | 融券余量(股) | +| sec_sell_value | 融券卖出量(股) | +| sec_refund_value | 融券偿还股(股) | +| fin_sec_value | 融资融券余额(元) | + +**返回值** + 返回一个 [pandas.DataFrame](http://pandas.pydata.org/pandas-docs/version/0.16.2/generated/pandas.DataFrame.html#pandas.DataFrame) 对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应. + +**示例** + +``` + +from jqdata import * +# 获取一只股票的融资融券信息 +get_mtss('000001.XSHE', '2016-01-01', '2016-04-01') +get_mtss('000001.XSHE', '2016-01-01', '2016-04-01', fields=["date", "sec_code", "fin_value", "fin_buy_value"]) +get_mtss('000001.XSHE', '2016-01-01', '2016-04-01', fields="sec_sell_value") + +# 获取多只股票的融资融券信息 +get_mtss(['000001.XSHE', '000002.XSHE', '000099.XSHE'], '2015-03-25', '2016-01-25') +get_mtss(['000001.XSHE', '000002.XSHE', '000099.XSHE'], '2015-03-25', '2016-01-25', fields=["date", "sec_code", "sec_value", "fin_buy_value", "sec_sell_value"]) +``` + +### 股票分类信息 + +获取指数成份股,或者行业成份股。 + +#### 获取指数成份股 + +获取一个指数给定日期在平台可交易的成分股列表,我们支持近600种股票指数数据,包括指数的行情数据以及成分股数据。为了避免未来函数,我们支持获取历史任意时刻的指数成分股信息。请点击[指数列表](https://www.joinquant.com/help/api/help?name=index#沪深指数列表)查看指数信息. + +**调用方法** + +``` + +get_index_stocks(index_symbol, date=None) +``` + +**参数** + +- index_symbol, 指数代码 +- date: 查询日期, 一个字符串(格式类似’2015-10-15’)或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: + +1. 回测模块: 默认值会随着回测日期变化而变化, 等于context.current_dt +2. 研究模块: 默认是今天 + +**返回** + +- 返回股票代码的list + +**示例** + +``` + +# 获取所有沪深300的股票, 设为股票池 +stocks = get_index_stocks('000300.XSHG') +set_universe(stocks) +``` + +#### 获取行业、概念成份股 + +获取在给定日期一个行业或概念板块的所有股票,行业分类、概念分类列表见数据页面-[行业概念数据](https://www.joinquant.com/help/api/help?name=plateData)。 + +**调用方法** + +``` + +# 获取行业板块成分股 +get_industry_stocks(industry_code, date=None) + +# 获取概念板块成分股 +get_concept_stocks(concept_code, date=None) +``` + +**参数** + +- industry_code: 行业编码 +- date: 查询日期, 一个字符串(格式类似’2015-10-15’)或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: + +1. 回测模块: 默认值会随着回测日期变化而变化, 等于context.current_dt +2. 研究模块: 默认是今天 + +**返回** + +- 返回股票代码的list + +**示例** + +``` + +# 获取计算机/互联网行业的成分股 +stocks = get_industry_stocks('I64') + +# 获取风力发电概念板块的成分股 +stocks = get_concept_stocks('GN036') +``` + +#### 查询股票所属行业 + +``` + +get_industry(security, date=None) +``` + +**参数** + +- security:标的代码,类型为字符串,形式如"000001.XSHE";或为包含标的代码字符串的列表,形如["000001.XSHE", "000002.XSHE"] +- date:查询的日期。类型为字符串,形如"2018-06-01"或"2018-06-01 09:00:00";或为datetime.datetime对象和datetime.date。注意传入对象的时分秒将被忽略。 + +**返回** + +返回结果是一个dict,key是传入的股票代码 + +**示例** + +``` + +#获取贵州茅台("600519.XSHG")的所属行业数据 +d = get_industry("600519.XSHG",date="2018-06-01") +print(d) + +{'600519.XSHG': {'sw_l1': {'industry_code': '801120', 'industry_name': '食品饮料I'}, 'sw_l2': {'industry_code': '801123', 'industry_name': '饮料制造II'}, 'sw_l3': {'industry_code': '851231', 'industry_name': '白酒III'}, 'zjw': {'industry_code': 'C15', 'industry_name': '酒、饮料和精制茶制造业'}, 'jq_l2': {'industry_code': 'HY478', 'industry_name': '白酒与葡萄酒指数'}, 'jq_l1': {'industry_code': 'HY005', 'industry_name': '日常消费指数'}}} + +#同时获取多只股票的所属行业信息 +stock_list = ['000001.XSHE','000002.XSHE'] +d = get_industry(security=stock_list, date="2018-06-01") +print(d) + +{'000001.XSHE': {'sw_l1': {'industry_code': '801780', 'industry_name': '银行I'}, 'sw_l2': {'industry_code': '801192', 'industry_name': '银行II'}, 'sw_l3': {'industry_code': '851911', 'industry_name': '银行III'}, 'zjw': {'industry_code': 'J66', 'industry_name': '货币金融服务'}, 'jq_l2': {'industry_code': 'HY493', 'industry_name': '多元化银行指数'}, 'jq_l1': {'industry_code': 'HY007', 'industry_name': '金融指数'}}, '000002.XSHE': {'sw_l1': {'industry_code': '801180', 'industry_name': '房地产I'}, 'sw_l2': {'industry_code': '801181', 'industry_name': '房地产开发II'}, 'sw_l3': {'industry_code': '851811', 'industry_name': '房地产开发III'}, 'zjw': {'industry_code': 'K70', 'industry_name': '房地产业'}, 'jq_l2': {'industry_code': 'HY509', 'industry_name': '房地产开发指数'}, 'jq_l1': {'industry_code': 'HY011', 'industry_name': '房地产指数'}}} +``` + +### 获取行情数据 + +交易类数据提供股票的交易行情数据,通过API接口调用即可获取相应的数据。 具体请查看API,数据获取部分行情相关接口 **[数据获取函数](https://www.joinquant.com/help/api/help#api:%E6%95%B0%E6%8D%AE%E8%8E%B7%E5%8F%96%E5%87%BD%E6%95%B0)**。 + +| 名称 | 描述 | +| --- | --- | +| get_price | 获取历史数据,可查询多个标的多个数据字段,返回数据格式为 DataFrame | +| history | 获取历史数据,可查询多个标的单个数据字段,返回数据格式为 DataFrame 或 Dict(字典) | +| attribute_history | 获取历史数据,可查询单个标的多个数据字段,返回数据格式为 DataFrame 或 Dict(字典) | +| get_bars | 获取历史数据(包含快照数据),可查询单个或多个标的多个数据字段,返回数据格式为 numpy.ndarray或DataFrame | +| get_current_data ♠ | 获取当前逻辑时间数据(策略专用) | +| get_current_tick♠ | 获取当前逻辑时间最新的 tick 数据(策略专用) | +| get_ticks | 获取股票、期货、50ETF期权、股票指数及场内基金的tick 数据 | +| get_call_auction | 获取指定时间区间内集合竞价时的 tick 数据 | + +## 获取融资融券标的列表 + +### 获取融资标的列表 + +``` + +get_margincash_stocks(date) +``` + +**参数** date:默认为None,不指定时返回上交所、深交所最近一次披露的的可融资标的列表的list。 + +**返回结果** 返回指定日期上交所、深交所披露的的可融资标的列表的list。 + +**示例** + +``` + +# 获取融资标的列表,并赋值给 margincash_stocks +margincash_stocks = get_margincash_stocks(date='2018-07-02') + +# 判断平安银行是否在可融资列表 +>>> '000001.XSHE' in get_margincash_stocks(date='2018-07-02') +>>> True +``` + +### 获取融券标的列表 + +``` + +get_marginsec_stocks(date) +``` + +**参数** date:默认为None,不指定时返回上交所、深交所最近一次披露的的可融券标的列表的list。 + +**返回结果** 返回指定日期上交所、深交所披露的的可融券标的列表的list。 + +**示例** + +``` + +# 获取融券标的列表,并赋值给 marginsec_stocks +marginsec_stocks= get_marginsec_stocks(date='2018-07-05') + +# 判断平安银行是否在可融券列表 +>>> '000001.XSHE' in get_marginsec_stocks(date='2018-07-05') +>>> True +``` + +## 获取融资融券汇总数据 + +``` + +from jqdata import * +finance.run_query(query(finance.STK_MT_TOTAL).filter(finance.STK_MT_TOTAL.date=='2019-05-23').limit(n)) +``` + +描述:记录上海交易所和深圳交易所的融资融券汇总数据 + +**参数:** + +- **query(finance.STK_MT_TOTAL)**:表示从finance.STK_MT_TOTAL这张表中查询融资融券汇总数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411) +- **finance.STK_MT_TOTAL**:收录了融资融券汇总数据,表结构和字段信息如下: + +**字段设计** + +| 名称 | 类型 | 描述 | +| --- | --- | --- | +| date | date | 交易日期 | +| exchange_code | varchar(12) | 交易市场。例如,XSHG-上海证券交易所;XSHE-深圳证券交易所。对应DataAPI.SysCodeGet.codeTypeID=10002。 | +| fin_value | decimal(20,2) | 融资余额(元) | +| fin_buy_value | decimal(20,2) | 融资买入额(元) | +| sec_volume | int | 融券余量(股) | +| sec_value | decimal(20,2) | 融券余量金额(元) | +| sec_sell_volume | int | 融券卖出量(股) | +| fin_sec_value | decimal(20,2) | 融资融券余额(元) | + +- **filter(finance.STK_MT_TOTAL.date==date)**:指定筛选条件,通过finance.STK_MT_TOTAL.date==date可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询2019-05-23的融资融券汇总数据。 +from jqdata import * +df=finance.run_query(query(finance.STK_MT_TOTAL).filter(finance.STK_MT_TOTAL.date=='2019-05-23').limit(10)) +df + + id date exchange_code ... sec_value sec_sell_volume fin_sec_value +0 4445 2019-05-23 XSHE ... 1.465000e+09 26000000 3.615940e+11 +1 4446 2019-05-23 XSHG ... 6.018287e+09 144633497 5.665458e+11 +``` + +## 获取股票资金流向数据 + +获取一只或者多只股票在一个时间段内的资金流向数据 + +**调用方法** + +``` + +from jqdata import * +get_money_flow(security_list, start_date=None, end_date=None, fields=None, count=None) +``` + +**参数** + +- security_list: 一只股票代码或者一个股票代码的 list +- start_date: 开始日期, 一个字符串或者 [datetime.datetime]/[datetime.date] 对象 +- end_date: 结束日期, 一个字符串或者 [datetime.date]/[datetime.datetime] 对象 +- count: 数量, 与 start_date 二选一,不可同时使用, 必须大于 0. 表示返回 end_date 之前 count 个交易日的数据, 包含 end_date +- fields: 字段名或者 list, 可选. 默认为 None, 表示取全部字段, 各字段含义如下: + +| 字段名 | 含义 | 备注 | +| --- | --- | --- | +| date | 日期 | | +| sec_code | 股票代码 | | +| change_pct | 涨跌幅(%) | | +| net_amount_main | 主力净额(万) | 主力净额 = 超大单净额 + 大单净额 | +| net_pct_main | 主力净占比(%) | 主力净占比 = 主力净额 / 成交额 | +| net_amount_xl | 超大单净额(万) | 超大单:大于等于50万股或者100万元的成交单 | +| net_pct_xl | 超大单净占比(%) | 超大单净占比 = 超大单净额 / 成交额 | +| net_amount_l | 大单净额(万) | 大单:大于等于10万股或者20万元且小于50万股和100万元的成交单 | +| net_pct_l | 大单净占比(%) | 大单净占比 = 大单净额 / 成交额 | +| net_amount_m | 中单净额(万) | 中单:大于等于2万股或者4万元且小于10万股和20万元的成交单 | +| net_pct_m | 中单净占比(%) | 中单净占比 = 中单净额 / 成交额 | +| net_amount_s | 小单净额(万) | 小单:小于2万股和4万元的成交单 | +| net_pct_s | 小单净占比(%) | 小单净占比 = 小单净额 / 成交额 | + +**返回** + +返回一个 [pandas.DataFrame] 对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应. + +**示例** + +``` + +# 获取一只股票在一个时间段内的资金流量数据 +get_money_flow('000001.XSHE', '2016-02-01', '2016-02-04') +get_money_flow('000001.XSHE', '2015-10-01', '2015-12-30', fields="change_pct") +get_money_flow(['000001.XSHE'], '2010-01-01', '2010-01-30', ["date", "sec_code", "change_pct", "net_amount_main", "net_pct_l", "net_amount_m"]) + +# 获取多只股票在一个时间段内的资金流向数据 +get_money_flow(['000001.XSHE', '000040.XSHE', '000099.XSHE'], '2010-01-01', '2010-01-30') +# 获取多只股票在某一天的资金流向数据 +get_money_flow(['000001.XSHE', '000040.XSHE', '000099.XSHE'], '2016-04-01', '2016-04-01') +``` + +## 获取龙虎榜数据 + +``` + +get_billboard_list(stock_list, start_date, end_date, count) +``` + +获取指定日期区间内的龙虎榜数据 + +**参数** + +- stock_list: 一个股票代码的 list。 当值为 None 时, 返回指定日期的所有股票。 +- start_date:开始日期 +- end_date: 结束日期 +- count: 交易日数量, 可以与 end_date 同时使用, 表示获取 end_date 前 count 个交易日的数据(含 end_date 当日) + +**返回值** + +- pandas.DataFrame, 各 column 的含义如下: +- code: 股票代码 +- day: 日期 +- direction: ALL 表示『汇总』,SELL 表示『卖』,BUY 表示『买』 +- abnormal_code: 异常波动类型 +- abnormal_name: 异常波动名称 +- sales_depart_name: 营业部名称 +- rank: 0 表示汇总, 1~5 对应买入金额或卖出金额排名第一到第五 +- buy_value:买入金额 +- buy_rate:买入金额占比(买入金额/市场总成交额) +- sell_value:卖出金额 +- sell_rate:卖出金额占比(卖出金额/市场总成交额) +- total_value:总额(买入金额 + 卖出金额) +- net_value:净额(买入金额 - 卖出金额) +- amount:市场总成交额 + +**异常波动类型** + +| 参数编码 | 参数名称 | +| --- | --- | +| 106001 | 涨幅偏离值达7%的证券 | +| 106002 | 跌幅偏离值达7%的证券 | +| 106003 | 日价格振幅达到15%的证券 | +| 106004 | 换手率达20%的证券 | +| 106005 | 无价格涨跌幅限制的证券 | +| 106006 | 连续三个交易日内收盘价格涨幅偏离值累计达到20%的证券 | +| 106007 | 连续三个交易日内收盘价格跌幅偏离值累计达到20%的证券 | +| 106008 | 连续三个交易日内收盘价格涨幅偏离值累计达到15%的证券 | +| 106009 | 连续三个交易日内收盘价格跌幅偏离值累计达到15%的证券 | +| 106010 | 连续三个交易日内涨幅偏离值累计达到12%的ST证券、*ST证券和未完成股改证券 | +| 106011 | 连续三个交易日内跌幅偏离值累计达到12%的ST证券、*ST证券和未完成股改证券 | +| 106012 | 连续三个交易日的日均换手率与前五个交易日日均换手率的比值到达30倍 | +| 106013 | 单只标的证券的当日融资买入数量达到当日该证券总交易量的50%以上的证券 | +| 106014 | 单只标的证券的当日融券卖出数量达到当日该证券总交易量的50%以上的证券 | +| 106015 | 日价格涨幅达到20%的证券 | +| 106016 | 日价格跌幅达到-15%的证券 | +| 106099 | 其它异常波动的证券 | + +**示例** + +``` + +# 获取2018-08-01的龙虎榜数据 +get_billboard_list(stock_list=None, end_date = '2018-08-01', count =1) +``` + +## 上市公司分红送股(除权除息)数据 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_XR_XD).filter(finance.STK_XR_XD.code==code).order_by(finance.STK_XR_XD.report_date).limit(n)) +``` + +记录由上市公司年报、中报、一季报、三季报统计出的分红转增情况。 + +**参数:** + +- **query(finance.STK_XR_XD)**:表示从finance.STK_XR_XD这张表中查询上市公司除权除息的数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_XR_XD**:代表除权除息数据表,记录由上市公司年报、中报、一季报、三季报统计出的分红转增情况。表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 能否为空 | 含义 | +| --- | --- | --- | --- | --- | +| code | 股票代码 | varchar(12) | N | 加后缀 | +| company_id | 机构ID | int | N | | +| company_name | 机构名称 | varchar(100) | | | +| report_date | 分红报告期 | date | N | 一般为:一季报:YYYY-03-31;中报:YYYY-06-30;三季报:YYYY-09-30;年报:YYYY-12-31同时也可能存在其他日期 | +| bonus_type | 分红类型 | varchar(60) | | 201102新增,类型如下:年度分红 中期分红 季度分红 特别分红 向公众股东赠送 股改分红 | +| board_plan_pub_date | 董事会预案公告日期 | date | | | +| board_plan_bonusnote | 董事会预案分红说明 | varchar(500) | | 每10股送XX转增XX派XX元 | +| distributed_share_base_board | 分配股本基数(董事会) | decimal(20,4) | | 单位:万股 | +| shareholders_plan_pub_date | 股东大会预案公告日期 | date | | | +| shareholders_plan_bonusnote | 股东大会预案分红说明 | varchar(200) | | | +| distributed_share_base_shareholders | 分配股本基数(股东大会) | decimal(20,4) | | 单位:万股 | +| implementation_pub_date | 实施方案公告日期 | date | | | +| implementation_bonusnote | 实施方案分红说明 | varchar(200) | | 维护规则: 每10股送XX转增XX派XX元 或:不分配不转赠 | +| distributed_share_base_implement | 分配股本基数(实施) | | | 单位:万股 (如实施公告未披露则在登记日后1~2周内补充) | +| dividend_ratio | 送股比例 | decimal(20,4) | | 每10股送XX股 (最新送股比例) | +| transfer_ratio | 转增比例 | decimal(20,4) | | 每10股转增 XX股 ;(最新转增比例) | +| bonus_ratio_rmb | 派息比例(人民币) | decimal(20,4) | | 每10股派 XX。说明:这里的比例为最新的分配比例,预案公布的时候,预案的分配基数在此维护,如果股东大会或实施方案发生变化,再次进行修改,保证此处为最新的分配基数 | +| bonus_ratio_usd | 派息比例(美元) | decimal(20,4) | | 每10股派 XX。说明:这里的比例为最新的分配比例,预案公布的时候,预案的分配基数在此维护,如果股东大会或实施方案发生变化,再次进行修改,保证此处为最新的分配基数 如果这里只告诉了汇率,没有公布具体的外币派息,则要计算出; | +| bonus_ratio_hkd | 派息比例(港币) | decimal(20,4) | | 每10股派 XX。说明:这里的比例为最新的分配比例,预案公布的时候,预案的分配基数在此维护,如果股东大会或实施方案发生变化,再次进行修改,保证此处为最新的分配基数 如果这里只告诉了汇率,没有公布具体的外币派息,则要计算出; | +| at_bonus_ratio_rmb | 税后派息比例(人民币) | decimal(20,4) | | | +| exchange_rate | 汇率 | decimal(20,4) | | 当日以外币(美元或港币)计价的B股价格兑换成人民币的汇率 | +| dividend_number | 送股数量 | decimal(20,4) | | 单位:万股 (如实施公告未披露则在登记日后1~2周内补充) | +| transfer_number | 转增数量 | decimal(20,4) | | 单位:万股 (如实施公告未披露则在登记日后1~2周内补充) | +| bonus_amount_rmb | 派息金额(人民币) | decimal(20,4) | | 单位:万元 (如实施公告未披露则在登记日后1~2周内补充) | +| a_registration_date | A股股权登记日 | date | | | +| b_registration_date | B股股权登记日 | date | | B股股权登记存在**最后交易日,除权基准日以及股权登记日**三个日期,由于B股实行T+3制度,最后交易日持有的股份需要在3个交易日之后确定股东身份,然后在除权基准日进行除权。 | +| a_xr_date | A股除权日 | date | | | +| b_xr_baseday | B股除权基准日 | date | | 根据B股实行T+3交收制度,则B股的“股权登记日”是“最后交易日”后的第 三个交易日,直至“股权登记日”这一日为止,B股投资者的股权登记才告完成,也 就意味着B股股份至股权登记日为止,才真正划入B股投资者的名下。 | +| b_final_trade_date | B股最后交易日 | date | | | +| a_bonus_date | 派息日(A) | date | | | +| b_bonus_date | 派息日(B) | date | | | +| dividend_arrival_date | 红股到帐日 | date | | | +| a_increment_listing_date | A股新增股份上市日 | date | | | +| b_increment_listing_date | B股新增股份上市日 | date | | | +| total_capital_before_transfer | 送转前总股本 | decimal(20,4) | | 单位:万股 | +| total_capital_after_transfer | 送转后总股本 | decimal(20,4) | | 单位:万股 | +| float_capital_before_transfer | 送转前流通股本 | decimal(20,4) | | 单位:万股 | +| float_capital_after_transfer | 送转后流通股本 | decimal(20,4) | | 单位:万股 | +| note | 备注 | varchar(500) | | | +| a_transfer_arrival_date | A股转增股份到帐日 | date | | | +| b_transfer_arrival_date | B股转增股份到帐日 | date | | | +| b_dividend_arrival_date | B股送红股到帐日 | date | | 20080801新增 | +| note_of_no_dividend | 有关不分配的说明 | varchar(1000) | | | +| plan_progress_code | 方案进度编码 | int | | | +| plan_progress | 方案进度 | varchar(60) | | 董事会预案 实施方案 股东大会预案 取消分红 公司预案 延迟实施 | +| bonus_cancel_pub_date | 取消分红公告日期 | date | | | + +- **filter(finance.STK_XR_XD.report_date==report_date)**:指定筛选条件,通过finance.STK_XR_XD.report_date==report_date可以指定你想要查询的分红报告期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_XR_XD.code=='000001.XSHE',表示筛选股票编码为000001.XSHE的数据; 多个筛选条件用英文逗号分隔。 +- **order_by(finance.STK_XR_XD.report_date)**: 将返回结果按分红报告期排序 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个dataframe,每一行对应数据表中的一条数据,列索引是你所查询的字段名称。 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 **示例:** + +``` + +from jqdata import * +q=query(finance.STK_XR_XD).filter(finance.STK_XR_XD.report_date>='2015-01-01').limit(10) +df = finance.run_query(q) +print(df) + + id company_id company_name code report_date bonus_type \ +0 19 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2015-06-30 中期分红 +1 20 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2015-12-31 年度分红 +2 21 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2016-06-30 中期分红 +3 22 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2016-12-31 年度分红 +4 23 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2017-06-30 中期分红 +5 24 300000062 广东德美精细化工集团股份有限公司 002054.XSHE 2017-12-31 年度分红 +6 43 300000123 深圳市得润电子股份有限公司 002055.XSHE 2015-06-30 中期分红 +7 44 300000123 深圳市得润电子股份有限公司 002055.XSHE 2015-12-31 年度分红 +8 45 300000123 深圳市得润电子股份有限公司 002055.XSHE 2016-06-30 中期分红 +9 46 300000123 深圳市得润电子股份有限公司 002055.XSHE 2016-12-31 年度分红 board_plan_pub_date board_plan_bonusnote distributed_share_base_board \ +0 2015-08-29 不分配不转增 NaN +1 2016-04-27 10派1.2元(含税) 41923.0828 +2 2016-08-27 不分配不转增 NaN +3 2017-04-25 10派1.2元(含税) 41923.0828 +4 2017-08-29 不分配不转增 NaN +5 2018-04-27 10派0.47元(含税) 41923.0828 +6 2015-07-25 不分配不转增 NaN +7 2016-04-23 不分配不转增 NaN +8 2016-08-27 不分配不转增 NaN +9 2017-04-29 10派0.2元(含税) 45051.208 shareholders_plan_pub_date ... \ +0 NaN ... +1 2016-05-18 ... +2 NaN ... +3 2017-05-17 ... +4 NaN ... +5 2018-05-19 ... +6 NaN ... +7 2016-05-14 ... +8 NaN ... +9 2017-05-20 ... float_capital_before_transfer float_capital_after_transfer note \ +0 NaN NaN NaN +1 NaN NaN NaN +2 NaN NaN NaN +3 NaN NaN NaN +4 NaN NaN NaN +5 NaN NaN NaN +6 NaN NaN NaN +7 NaN NaN NaN +8 NaN NaN NaN +9 NaN NaN NaN + + a_transfer_arrival_date b_transfer_arrival_date b_dividend_arrival_date \ +0 NaN NaN NaN +1 NaN NaN NaN +2 NaN NaN NaN +3 NaN NaN NaN +4 NaN NaN NaN +5 NaN NaN NaN +6 NaN NaN NaN +7 NaN NaN NaN +8 NaN NaN NaN +9 NaN NaN NaN + + note_of_no_dividend plan_progress_code plan_progress bonus_cancel_pub_date +0 NaN 313001 董事会预案 NaN +1 NaN 313002 实施方案 NaN +2 NaN 313001 董事会预案 NaN +3 NaN 313002 实施方案 NaN +4 NaN 313001 董事会预案 NaN +5 NaN 313002 实施方案 NaN +6 NaN 313001 董事会预案 NaN +7 NaN 313003 股东大会预案 NaN +8 NaN 313001 董事会预案 NaN +9 NaN 313002 实施方案 NaN +``` + +## 沪深市场每日成交概况 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_EXCHANGE_TRADE_INFO).filter(finance.STK_EXCHANGE_TRADE_INFO.exchange_code==exchange_code).limit(n) +``` + +记录沪深两市股票交易的成交情况,包括市值、成交量,市盈率等情况。 + +**参数:** + +- **query(finance.STK_EXCHANGE_TRADE_INFO)**:表示从finance.STK_EXCHANGE_TRADE_INFO这张表中查询沪深两市股票交易的成交情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_EXCHANGE_TRADE_INFO**:代表沪深市场每日成交概况表,记录沪深两市股票交易的成交情况,包括市值、成交量,市盈率等情况,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 能否为空 | 含义 | +| --- | --- | --- | --- | --- | +| exchange_code | 市场编码 | varchar(12) | N | 编码规则见下表 | +| exchange_name | 市场名称 | varchar(100) | | 上海市场,上海A股,上海B股,深圳市场,深市主板,中小企业板,创业板 | +| date | 交易日期 | date | N | | +| total_market_cap | 市价总值 | decimal(20,8) | | 单位:亿 | +| circulating_market_cap | 流通市值 | decimal(20,8) | | 单位:亿 | +| volume | 成交量 | decimal(20,4) | | 单位:万 | +| money | 成交金额 | decimal(20,8) | | 单位:亿 | +| deal_number | 成交笔数 | decimal(20,4) | | 单位:万笔 | +| pe_average | 平均市盈率 | decimal(20,4) | | 上海市场市盈率计算方法:市盈率=∑(收盘价×发行数量)/∑(每股收益×发行数量),统计时剔除亏损及暂停上市的上市公司。 深圳市场市盈率计算方法:市盈率=∑市价总值/∑(总股本×上年每股利润),剔除上年利润为负的公司。 | +| turnover_ratio | 换手率 | decimal(10,4) | | 单位:% | + +市场编码名称对照表 + +| 市场编码 | 交易市场名称 | 备注 | +| --- | --- | --- | +| 322001 | 上海市场 | | +| 322002 | 上海A股 | | +| 322003 | 上海B股 | | +| 322004 | 深圳市场 | 该市场交易所未公布成交量和成交笔数 | +| 322005 | 深市主板 | | +| 322006 | 中小企业板 | | +| 322007 | 创业板 | | + +- **filter(finance.STK_EXCHANGE_TRADE_INFO.date==date)**:指定筛选条件,通过finance.STK_EXCHANGE_TRADE_INFO.date==date可以指定你想要查询的交易日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EXCHANGE_TRADE_INFO.exchange_code==322001,表示筛选市场编码为322001(上海市场)的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个dataframe,每一行对应数据表中的一条数据,列索引是你所查询的字段名称。 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 **示例:** + +``` + +q=query(finance.STK_EXCHANGE_TRADE_INFO).filter(finance.STK_EXCHANGE_TRADE_INFO.date>='2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id exchange_code exchange_name date total_market_cap \ +0 14847 322002 上海A股 2015-01-05 252101.167063 +1 14848 322003 上海B股 2015-01-05 883.102583 +2 14849 322001 上海市场 2015-01-05 252984.269645 +3 14850 322006 中小企业板 2015-01-05 51786.890000 +4 14851 322005 深市主板 2015-01-05 57235.450000 +5 14852 322004 深圳市场 2015-01-05 130625.770000 +6 14853 322007 创业板 2015-01-05 21603.430000 +7 14854 322002 上海A股 2015-01-06 252786.779098 +8 14855 322003 上海B股 2015-01-06 879.903673 +9 14856 322001 上海市场 2015-01-06 253666.682771 + + circulating_market_cap volume money deal_number pe_average \ +0 228118.117416 5.321700e+06 5504.189763 1800.6098 16.576 +1 883.102583 7.334709e+03 4.510566 3.7579 15.987 +2 229001.219999 5.335211e+06 5511.112029 1804.4529 16.574 +3 36548.430000 5.987000e+05 845.890000 381.6300 41.660 +4 47395.540000 1.412500e+06 1598.710000 579.6500 26.010 +5 96936.140000 NaN 2789.140000 NaN 34.600 +6 12992.170000 1.793000e+05 344.530000 140.9500 63.790 +7 228171.900720 5.011329e+06 5321.072770 1817.5373 16.581 +8 879.903673 6.242410e+03 3.806482 3.0057 15.922 +9 229051.804393 5.021845e+06 5328.157451 1820.6523 16.579 + + turnover_ratio +0 2.1486 +1 0.4856 +2 2.1385 +3 NaN +4 NaN +5 3.2800 +6 NaN +7 2.0226 +8 0.4133 +9 2.0128 +``` + +## 市场通(沪港通,深港通和港股通) + +### 合格证券变动记录 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_EL_CONST_CHANGE).filter(finance.STK_EL_CONST_CHANGE.code==code).limit(n)) +``` + +记录沪港通、深港通和港股通的成分股的变动情况。 + +**参数:** + +- **query(finance.STK_EL_CONST_CHANGE)**:表示从finance.STK_EL_CONST_CHANGE这张表中查询沪港通、深港通和港股通成分股的变动记录,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_EL_CONST_CHANGE**:记录沪港通、深港通和港股通成分股的变动情况,包括交易类型,变更日期,变更方向等,表结构和字段信息如下: + +| 字段 | 名称 | 类型 | 备注/示例 | +| --- | --- | --- | --- | +| link_id | 交易类型编码 | int | 同市场通编码 | +| link_name | 交易类型名称 | varchar(12) | | +| code | 证券代码 | varchar(12) | | +| name_ch | 中文简称 | varchar(30) | | +| name_en | 英文简称 | varchar(120) | | +| exchange | 该股票所在的交易所 | varchar(12) | 上海市场:XSHG/深圳市场:XSHE/香港市场:XHKG | +| change_date | 变更日期 | date | | +| direction | 变更方向 | varchar(6) | IN/OUT(分别为纳入和剔除) | + +- **filter(finance.STK_EL_CONST_CHANGE.code==code)**:指定筛选条件,通过finance.STK_EL_CONST_CHANGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EL_CONST_CHANGE.change_date>='2015-01-01',表示筛选变更日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **order_by(finance.STK_EL_CONST_CHANGE.change_date)**: 将返回结果按变更日期排序 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 **示例:** + +``` + +q=query(finance.STK_EL_CONST_CHANGE).filter(finance.STK_EL_CONST_CHANGE.link_id==310001).order_by(finance.STK_EL_CONST_CHANGE.change_date).limit(10) +df=finance.run_query(q) +print(df) + +id link_id link_name code name_ch name_en exchange change_date \ +0 536 310001 沪股通 600000.XSHG 浦发银行 NaN XSHG 2014-11-17 +1 537 310001 沪股通 600004.XSHG 白云机场 NaN XSHG 2014-11-17 +2 539 310001 沪股通 600007.XSHG 中国国贸 NaN XSHG 2014-11-17 +3 540 310001 沪股通 600008.XSHG 首创股份 NaN XSHG 2014-11-17 +4 541 310001 沪股通 600009.XSHG 上海机场 NaN XSHG 2014-11-17 +5 542 310001 沪股通 600010.XSHG 包钢股份 NaN XSHG 2014-11-17 +6 543 310001 沪股通 600011.XSHG 华能国际 NaN XSHG 2014-11-17 +7 544 310001 沪股通 600012.XSHG 皖通高速 NaN XSHG 2014-11-17 +8 545 310001 沪股通 600015.XSHG 华夏银行 NaN XSHG 2014-11-17 +9 546 310001 沪股通 600016.XSHG 民生银行 NaN XSHG 2014-11-17 +``` + +### 市场通交易日历 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_EXCHANGE_LINK_CALENDAR).filter(finance.STK_EXCHANGE_LINK_CALENDAR.day==day).limit(n)) +``` + +记录沪港通、深港通和港股通每天是否开市。 + +**参数:** + +- **query(finance.STK_EXCHANGE_LINK_CALENDAR)**:表示从finance.STK_EXCHANGE_LINK_CALENDAR这张表中查询市场沪港通、深港通和港股通交易日历的信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_EXCHANGE_LINK_CALENDAR**:代表了市场通交易日历表,记录沪港通、深港通和港股通每天是否开市,包括交易日期,交易日类型等,表结构和字段信息如下: + +| 字段 | 名称 | 类型 | 备注/示例 | +| --- | --- | --- | --- | +| day | 交易日期 | date | | +| link_id | 市场通编码 | int | | +| link_name | 市场通名称 | varchar(32) | 包括以下四个名称: 沪股通, 深股通, 港股通(沪), 港股通(深) | +| type_id | 交易日类型编码 | int | 如下 交易日类型编码 | +| type | 交易日类型 | varchar(32) | | + +**附注** + +港股通(沪)和港股通(深)的交易日在深港通开展后是一致的。 + +**交易日类型编码** + +| 交易日类型编码 | 交易日类型 | +| --- | --- | +| 312001 | 正常交易日 | +| 312003 | 休市 | + +**市场通编码** + +| 市场通编码 | 市场通名称 | +| --- | --- | +| 310001 | 沪股通 | +| 310002 | 深股通 | +| 310003 | 港股通(沪) | +| 310004 | 港股通(深) | + +- **filter(finance.STK_EXCHANGE_LINK_CALENDAR.day==day)**:指定筛选条件,通过finance.STK_EXCHANGE_LINK_CALENDAR.day==day可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EXCHANGE_LINK_CALENDAR.type_id=='312001',表示筛选交易日类型为正常交易日的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 **示例:** + +``` + +q=query(finance.STK_EXCHANGE_LINK_CALENDAR).filter(finance.STK_EXCHANGE_LINK_CALENDAR.day>='2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id day link_id link_name type_id type +0 1244830 2015-01-01 310001 沪股通 312003 全天休市 +1 145 2015-01-01 310003 港股通(沪) 312003 全天休市 +2 1244831 2015-01-02 310001 沪股通 312003 全天休市 +3 146 2015-01-02 310003 港股通(沪) 312003 全天休市 +4 1244832 2015-01-03 310001 沪股通 312003 全天休市 +5 147 2015-01-03 310003 港股通(沪) 312003 全天休市 +6 1244833 2015-01-04 310001 沪股通 312003 全天休市 +7 148 2015-01-04 310003 港股通(沪) 312003 全天休市 +8 1244834 2015-01-05 310001 沪股通 312001 正常交易日 +9 149 2015-01-05 310003 港股通(沪) 312001 正常交易日 +``` + +### 市场通十大成交活跃股 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_EL_TOP_ACTIVATE).filter(finance.STK_EL_TOP_ACTIVATE.code==code).limit(n)) +``` + +统计沪港通、深港通和港股通前十大交易活跃股的交易状况。 + +**参数:** + +- **query(finance.STK_EL_TOP_ACTIVATE)**:表示从finance.STK_EL_TOP_ACTIVATE这张表中查询沪港通、深港通和港股通前十大交易活跃股的交易状况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_EL_TOP_ACTIVATE**:代表了市场通十大成交活跃股表,统计沪港通、深港通和港股通前十大交易活跃股的交易状况,包括买入金额,卖出金额等,表结构和字段信息如下: + +| 字段 | 名称 | 类型 | 备注/示例 | +| --- | --- | --- | --- | +| day | 日期 | date | | +| link_id | 市场通编码 | int | | +| link_name | 市场通名称 | varchar(32) | 包括以下四个名称: 沪股通, 深股通, 港股通(沪), 港股通(深) | +| rank | 排名 | int | | +| code | 股票代码 | varchar(12) | | +| name | 股票名称 | varchar(100) | | +| exchange | 交易所名称 | varchar(12) | | +| buy | 买入金额(元) | decimal(20, 4) | (北向自2024-08-18之后不再披露) | +| sell | 卖出金额(元) | decimal(20, 4) | (北向自2024-08-18之后不再披露) | +| total | 买入及卖出金额(元) | decimal(20, 4) | | + +**市场通编码** + +| 市场通编码 | 市场通名称 | +| --- | --- | +| 310001 | 沪股通 | +| 310002 | 深股通 | +| 310003 | 港股通(沪) | +| 310004 | 港股通(深) | + +- **filter(finance.STK_EL_TOP_ACTIVATE.code==code)**:指定筛选条件,通过finance.STK_EL_TOP_ACTIVATE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EL_TOP_ACTIVATE.day>='2015-01-01',表示筛选日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 **示例:** + +``` + +q=query(finance.STK_EL_TOP_ACTIVATE).filter(finance.STK_EL_TOP_ACTIVATE.code=='000002.XSHE').limit(10) +df=finance.run_query(q) +print(df) + + id day link_id link_name rank code name exchange \ +0 323010 2018-01-15 310002 深股通 2 000002.XSHE 万科A 深交所 +1 323050 2018-01-16 310002 深股通 2 000002.XSHE 万科A 深交所 +2 323089 2018-01-17 310002 深股通 1 000002.XSHE 万科A 深交所 +3 323132 2018-01-18 310002 深股通 4 000002.XSHE 万科A 深交所 +4 323213 2018-01-23 310002 深股通 6 000002.XSHE 万科A 深交所 +5 323254 2018-01-24 310002 深股通 7 000002.XSHE 万科A 深交所 +6 341170 2018-01-25 310002 深股通 7 000002.XSHE 万科A 深交所 +7 341209 2018-01-26 310002 深股通 6 000002.XSHE 万科A 深交所 +8 341248 2018-01-29 310002 深股通 5 000002.XSHE 万科A 深交所 +9 341444 2018-01-30 310002 深股通 5 000002.XSHE 万科A 深交所 + + buy sell total +0 124497968.0 326656496.0 451154464.0 +1 127460061.0 465933921.0 593393982.0 +2 157676630.0 542617116.0 700293746.0 +3 203996076.0 105819761.0 309815837.0 +4 141515523.0 190282952.0 331798475.0 +5 110052973.0 163321615.0 273374588.0 +6 179785644.0 120157651.0 299943295.0 +7 166750550.0 78471253.0 245221803.0 +8 157899558.0 170790111.0 328689669.0 +9 201547219.0 165714289.0 367261508.0 +``` + +### 市场通成交与额度信息 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_ML_QUOTA).filter(finance.STK_ML_QUOTA.day==day).limit(n)) +``` + +记录沪股通、深股通和港股通每个交易日的成交与额度的控制情况。 + +**参数:** + +- **query(finance.STK_ML_QUOTA)**:表示从finance.STK_ML_QUOTA这张表中查询沪港通、深港通和港股通的成交与额度信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_ML_QUOTA**:代表了市场通成交与额度信息表,记录了沪港通、深港通和港股通成交与额度的信息,包括买入、卖出等,表结构和字段信息如下: + +| 字段 | 名称 | 类型 | 备注/示例 | +| --- | --- | --- | --- | +| day | 交易日期 | date | | +| link_id | 市场通编码 | int | | +| link_name | 市场通名称 | varchar(32) | 包括以下四个名称: 沪股通,深股通,港股通(沪),港股通(深);其中沪股通和深股通属于北向资金,港股通(沪)和港股通(深)属于南向资金。 | +| currency_id | 货币编码 | int | | +| currency | 货币名称 | varchar(16) | | +| buy_amount | 买入成交额 | decimal(20,4) | 亿(自2024-08-18之后北向不再披露) | +| buy_volume | 买入成交数 | decimal(20,4) | 笔(自2024-08-18之后北向不再披露) | +| sell_amount | 卖出成交额 | decimal(20,4) | 亿(自2024-08-18之后北向不再披露) | +| sell_volume | 卖出成交数 | decimal(20,4) | 笔(自2024-08-18之后北向不再披露) | +| sum_amount | 累计成交额 | decimal(20,4) | 买入成交额+卖出成交额 | +| sum_volume | 累计成交数目 | decimal(20,4) | 买入成交量+卖出成交量 | +| quota | 总额度 | decimal(20, 4) | 亿(2016-08-16号起,沪港通和深港通不再设总额度限制) | +| quota_balance | 总额度余额 | decimal(20, 4) | 亿 | +| quota_daily | 每日额度 | decimal(20, 4) | 亿 (自2024-08-18之后不再披露) | +| quota_daily_balance | 每日额度余额 | decimal(20, 4) | 亿 (自2024-08-18之后不再披露) | + +**货币编码** + +| 货币编码 | 货币名称 | +| --- | --- | +| 110001 | 人民币 | +| 110003 | 港元 | + +**市场通编码** + +| 市场通编码 | 市场通名称 | +| --- | --- | +| 310001 | 沪股通 | +| 310002 | 深股通 | +| 310003 | 港股通(沪) | +| 310004 | 港股通(深) | + +- **filter(finance.STK_ML_QUOTA.day==day)**:指定筛选条件,通过finance.STK_ML_QUOTA.day==day可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_ML_QUOTA.link_id==310001,表示筛选市场通编码为310001(沪股通)的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 **示例:** + +``` + +q=query(finance.STK_ML_QUOTA).filter(finance.STK_ML_QUOTA.day>='2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id day link_id link_name currency_id currency_name buy_amount \ +0 183 2015-01-05 310001 沪股通 110001 人民币 40.01 +1 271 2015-01-05 310003 港股通(沪) 110003 港元 20.51 +2 182 2015-01-06 310001 沪股通 110001 人民币 32.4 +3 270 2015-01-06 310003 港股通(沪) 110003 港元 11.15 +4 181 2015-01-07 310001 沪股通 110001 人民币 20.43 +5 269 2015-01-07 310003 港股通(沪) 110003 港元 10.28 +6 180 2015-01-08 310001 沪股通 110001 人民币 22.31 +7 268 2015-01-08 310003 港股通(沪) 110003 港元 7.86 +8 179 2015-01-09 310001 沪股通 110001 人民币 34.7 +9 267 2015-01-09 310003 港股通(沪) 110003 港元 11.16 + + buy_volume sell_amount sell_volume sum_amount sum_volume quota \ +0 96819.0 19.98 48515.0 59.99 145334.0 NaN +1 33888.0 5.22 12241.0 25.73 46129.0 NaN +2 67392.0 32.64 76188.0 65.04 143580.0 NaN +3 22180.0 2.88 6806.0 14.03 28986.0 NaN +4 62539.0 17.01 39833.0 37.44 102372.0 NaN +5 21663.0 2.85 6296.0 13.13 27959.0 NaN +6 53725.0 21.74 62294.0 44.05 116019.0 NaN +7 15741.0 2.95 7050.0 10.81 22791.0 NaN +8 128236.0 20.17 51436.0 54.87 179672.0 NaN +9 21465.0 4.47 8845.0 15.63 30310.0 NaN + + quota_balance quota_daily quota_daily_balance +0 NaN 130.0 83.11 +1 NaN 105.0 87.7 +2 NaN 130.0 109.09 +3 NaN 105.0 95.32 +4 NaN 130.0 112.47 +5 NaN 105.0 95.91 +6 NaN 130.0 119.22 +7 NaN 105.0 98.63 +8 NaN 130.0 113.83 +9 NaN 105.0 96.98 +``` + +### 市场通汇率 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_EXCHANGE_LINK_RATE).filter(finance.STK_EXCHANGE_LINK_RATE.day==day).limit(n)) +``` + +包含2014年11月起人民币和港币之间的参考汇率/结算汇兑比率信息。 + +**参数:** + +- **query(finance.STK_EXCHANGE_LINK_RATE)**:表示从finance.STK_EXCHANGE_LINK_RATE这张表中查询汇率信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_EXCHANGE_LINK_RATE**:代表了市场通汇率表,记录参考汇率/结算汇兑比率信息,包括买入参考/结算汇率、卖出参考/结算汇率等,表结构和字段信息如下: + +| 字段 | 名称 | 类型 | 备注/示例 | +| --- | --- | --- | --- | +| day | 日期 | Date | | +| link_id | 市场通编码 | int | | +| link_name | 市场通名称 | varchar(32) | 以“港股通(沪)”为代表 | +| domestic_currency | 本币 | varchar(12) | RMB | +| foreign_currency | 外币 | varchar(12) | HKD | +| refer_bid_rate | 买入参考汇率 | decimal(10, 5) | | +| refer_ask_rate | 卖出参考汇率 | decimal(10, 5) | | +| settle_bid_rate | 买入结算汇率 | decimal(10, 5) | | +| settle_ask_rate | 卖出结算汇率 | decimal(10, 5) | | + +**市场通编码** + +| 市场通编码 | 市场通名称 | +| --- | --- | +| 310003 | 港股通(沪) | +| 310004 | 港股通(深) | + +- **filter(finance.STK_EXCHANGE_LINK_RATE.day==day)**:指定筛选条件,通过finance.STK_EXCHANGE_LINK_RATE.day==day可以指定你想要查询的日期;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EXCHANGE_LINK_RATE.link_id==310001,表示筛选市场通编码为310001(沪股通)的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 **示例:** + +``` + +q=query(finance.STK_EXCHANGE_LINK_RATE).filter(finance.STK_EXCHANGE_LINK_RATE.day>='2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id day link_id link_name domestic_currency foreign_currency \ +0 31 2015-01-05 310003 港股通(沪) RMB HKD +1 32 2015-01-06 310003 港股通(沪) RMB HKD +2 33 2015-01-07 310003 港股通(沪) RMB HKD +3 34 2015-01-08 310003 港股通(沪) RMB HKD +4 35 2015-01-09 310003 港股通(沪) RMB HKD +5 36 2015-01-12 310003 港股通(沪) RMB HKD +6 37 2015-01-13 310003 港股通(沪) RMB HKD +7 38 2015-01-14 310003 港股通(沪) RMB HKD +8 39 2015-01-15 310003 港股通(沪) RMB HKD +9 40 2015-01-16 310003 港股通(沪) RMB HKD + + refer_bid_rate refer_ask_rate settle_bid_rate settle_ask_rate +0 0.7774 0.8254 0.80317 0.80283 +1 0.7785 0.8267 0.80307 0.80213 +2 0.7777 0.8259 0.80197 0.80163 +3 0.7773 0.8253 0.80116 0.80144 +4 0.7776 0.8258 0.802 0.8014 +5 0.7771 0.8251 0.80176 0.80044 +6 0.7758 0.8238 0.7999 0.7997 +7 0.7755 0.8235 0.79973 0.79927 +8 0.7752 0.8232 0.79983 0.79857 +9 0.7744 0.8222 0.79597 0.80063 +``` + +### 沪深港通持股数据 + +``` + +from jqdata import finance +df=finance.run_query(query(finance.STK_HK_HOLD_INFO).filter(finance.STK_HK_HOLD_INFO.link_id==310001)) +print(df) +``` + +记录了北向资金(沪股通、深股通)和南向资金港股通的持股数量和持股比例,数据从2017年3月17号开始至今,一般在盘前6:30左右更新昨日数据。 + 北向数据自 2024-08-17 开始, 改为按季度披露 + +**参数:** + +- **query(finance.STK_HK_HOLD_INFO)**:表示从finance.STK_HK_HOLD_INFO这张表中查询沪深港通的持股数据,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号分隔进行提取;如query(finance.STK_HK_HOLD_INFO.code)。query函数的更多用法详见:[query简易教程](https://www.joinquant.com/view/community/detail/16411)。 +- **finance.STK_HK_HOLD_INFO**:收录了沪深港通每日的持股数量和持股比例数据,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 能否为空 | 注释 | +| --- | --- | --- | --- | --- | +| day | 日期 | date | N | 北向自2024-08-18之后按照季度进行披露 | +| link_id | 市场通编码 | int | N | 三种类型:310001-沪股通,310002-深股通,310005-港股通 | +| link_name | 市场通名称 | varchar(32) | N | 三种类型:沪股通,深股通,港股通 | +| code | 股票代码 | varchar(12) | N | | +| name | 股票名称 | varchar(100) | N | | +| share_number | 持股数量 | int | | 单位:股,于中央结算系统的持股量 | +| share_ratio | 持股比例 | decimal(10,4) | | 单位:%,沪股通(占流通股百分比):占于上交所上市及交易的A股总数的百分比;深股通(占总股本百分比):占于深交所上市及交易的A股总数的百分比;港股通(占总股本百分比):占已发行股份百分比 | + +- **filter(finance.STK_HK_HOLD_INFO.link_id==310001)**:指定筛选条件,通过finance.STK_HK_HOLD_INFO.link_id==310001可以指定查询沪股通的持股数据;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_HK_HOLD_INFO.day=='2019-03-01',指定获取2019年3月1日的沪深港通持股数据。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是您所查询的字段名称 + +**注意:** + +1. 为了防止返回数据量过大, 我们每次最多返回4000行 +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#获取北向资金沪股通的持股数据 +from jqdata import finance +df=finance.run_query(query(finance.STK_HK_HOLD_INFO).filter(finance.STK_HK_HOLD_INFO.link_id==310001).order_by(finance.STK_HK_HOLD_INFO.day.desc())) +print(df) + + id day link_id link_name code name share_number share_ratio +0 1319365 2019-03-01 310001 沪股通 603997.XSHG 继峰股份 2905091 0.46 +1 1319364 2019-03-01 310001 沪股通 603993.XSHG 洛阳钼业 140398591 0.79 +2 1319363 2019-03-01 310001 沪股通 603989.XSHG 艾华集团 6574106 1.68 +3 1319362 2019-03-01 310001 沪股通 603986.XSHG 兆易创新 1851725 0.89 +4 1319361 2019-03-01 310001 沪股通 603979.XSHG 金诚信 191590 0.03 +5 1319360 2019-03-01 310001 沪股通 603959.XSHG 百利科技 81666 0.05 +6 1319359 2019-03-01 310001 沪股通 603939.XSHG 益丰药房 21973169 6.05 +7 1319358 2019-03-01 310001 沪股通 603929.XSHG 亚翔集成 156924 0.16 +8 1319357 2019-03-01 310001 沪股通 603899.XSHG 晨光文具 4751149 0.51 +9 1319356 2019-03-01 310001 沪股通 603898.XSHG 好莱客 1843470 0.59 +10 1319355 2019-03-01 310001 沪股通 603897.XSHG 长城科技 168377 0.37 +... +``` + +## 上市公司概况 + +### 上市公司基本信息 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_COMPANY_INFO).filter(finance.STK_COMPANY_INFO.code==code).limit(n)) +``` + +获取上市公司最新公布的基本信息,包含注册资本,主营业务,行业分类等。 + +**参数:** + +- **query(finance.STK_COMPANY_INFO)**:表示从finance.STK_COMPANY_INFO这张表中查询上市公司最新公布的基本信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_COMPANY_INFO**:代表上市公司基本信息表,收录了上市公司最新公布的基本信息,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| code | 证券代码 | varchar(12) | 多证券代码的优先级:A股>B股 | +| full_name | 公司名称 | varchar(100) | | +| short_name | 公司简称 | varchar(40) | | +| a_code | A股股票代码 | varchar(12) | | +| b_code | B股股票代码 | varchar(12) | | +| h_code | H股股票代码 | varchar(12) | | +| fullname_en | 英文名称 | varchar(100) | | +| shortname_en | 英文简称 | varchar(40) | | +| legal_representative | 法人代表 | varchar(40) | | +| register_location | 注册地址 | varchar(100) | | +| office_address | 办公地址 | varchar(150) | | +| zipcode | 邮政编码 | varchar(10) | | +| register_capital | 注册资金 | decimal(20,4) | 单位:万元 | +| currency_id | 货币编码 | int | | +| currency | 货币名称 | varchar(32) | | +| establish_date | 成立日期 | date | | +| website | 机构网址 | varchar(80) | | +| email | 电子信箱 | varchar(80) | | +| contact_number | 联系电话 | varchar(60) | | +| fax_number | 联系传真 | varchar(60) | | +| main_business | 主营业务 | varchar(500) | | +| business_scope | 经营范围 | varchar(4000) | | +| description | 机构简介 | varchar(4000) | | +| tax_number | 税务登记号 | varchar(50) | | +| license_number | 法人营业执照号 | varchar(40) | | +| pub_newspaper | 指定信息披露报刊 | varchar(120) | | +| pub_website | 指定信息披露网站 | varchar(120) | | +| secretary | 董事会秘书 | varchar(40) | | +| secretary_number | 董秘联系电话 | varchar(60) | | +| secretary_fax | 董秘联系传真 | varchar(60) | | +| secretary_email | 董秘电子邮箱 | varchar(80) | | +| security_representative | 证券事务代表 | varchar(40) | | +| province_id | 所属省份编码 | varchar(12) | | +| province | 所属省份 | varchar(60) | | +| city_id | 所属城市编码 | varchar(12) | | +| city | 所属城市 | varchar(60) | | +| industry_id | 行业编码 | varchar(12) | 证监会行业分类 | +| industry_1 | 行业一级分类 | varchar(60) | | +| industry_2 | 行业二级分类 | varchar(60) | | +| cpafirm | 会计师事务所 | varchar(200) | | +| lawfirm | 律师事务所 | varchar(200) | | +| ceo | 总经理 | varchar(100) | | +| comments | 备注 | varchar(300) | | + +- **filter(finance.STK_COMPANY_INFO.code==code)**:指定筛选条件,通过finance.STK_COMPANY_INFO.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_COMPANY_INFO.city==’北京市’,表示所属城市为北京市;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的上市公司基本信息,限定返回条数为10 +q=query(finance.STK_COMPANY_INFO).filter(finance.STK_COMPANY_INFO.code=='600276.XSHG').limit(10) +df=finance.run_query(q) +print(df) + + id company_id code full_name short_name a_code b_code \ +0 2474 420600276 600276.XSHG 江苏恒瑞医药股份有限公司 恒瑞医药 600276 NaN + + h_code fullname_en shortname_en \ +0 NaN Jiangsu Hengrui Medicine Co., Ltd. Hengrui Medicine + + ... province city_id city \ +0 ... 江苏 320700 连云港市 + + industry_id industry_1 industry_2 cpafirm \ +0 C27 制造业 医药制造业 江苏苏亚金诚会计师事务所(特殊普通合伙) + + lawfirm ceo comments +0 浩天律师事务所 周云曙 公司是国内少有的在研发方面投入较大的企业,现有多个品种在研,不仅在国内建 立了研究机构,投入较... + +[1 rows x 45 columns] +``` + +### 上市公司状态变动 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_STATUS_CHANGE).filter(finance.STK_STATUS_CHANGE.code==code).limit(n)) +``` + +获取上市公司已发行未上市、正常上市、实行ST、*ST、暂停上市、终止上市的变动情况等 + +**参数:** + +- **query(finance.STK_STATUS_CHANGE)**:表示从finance.STK_STATUS_CHANGE这张表中查询上市公司的状态变动信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_STATUS_CHANGE**:代表上市公司状态变动表,收录了上市公司已发行未上市、正常上市、实行ST、*ST、暂停上市、终止上市的变动情况等,表结构和字段信息如下: 上市状态编码 变更类型编码 + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| company_id | 机构ID | int | | +| code | 股票代码 | varchar(12) | | +| name | 股票名称 | varchar(40) | | +| pub_date | 公告日期 | date | | +| change_date | 变更日期 | date | | +| public_status_id | 上市状态编码 | int | 如下[上市状态编码](#list_status) | +| public_status | 上市状态 | varchar(32) | | +| change_reason | 变更原因 | varchar(500) | | +| change_type_id | 变更类型编码 | int | 如下[变更类型编码](#change_reason) | +| change_type | 变更类型 | varchar(60) | | +| comments | 备注 | varchar(255) | | + +| **上市状态编码** | **上市状态** | +| --- | --- | +| 301001 | 正常上市 | +| 301002 | ST | +| 301003 | *ST | +| 301004 | 暂停上市 | +| 301005 | 进入退市整理期 | +| 301006 | 终止上市 | +| 301007 | 已发行未上市 | +| 301008 | 预披露 | +| 301009 | 未过会 | +| 301010 | 发行失败 | +| 301011 | 暂缓发行 | +| 301012 | 暂缓上市 | +| 301013 | 停止转让 | +| 301014 | 正常转让 | +| 301015 | 实行投资者适当性管理表示 | +| 301099 | 其他 | + +| **变更类型编码** | **变更类型** | +| --- | --- | +| 303001 | 恢复上市 | +| 303002 | 摘星 | +| 303003 | 摘帽 | +| 303004 | 摘星摘帽 | +| 303005 | 披星 | +| 303006 | 戴帽 | +| 303007 | 戴帽披星 | +| 303008 | 拟上市 | +| 303009 | 新股上市 | +| 303010 | 发行失败 | +| 303011 | 暂停上市 | +| 303012 | 终止上市 | +| 303013 | 退市整理 | +| 303014 | 暂缓发行 | +| 303015 | 暂缓上市 | +| 303016 | 实行投资者适当性管理标识 | +| 303017 | 未过会 | +| 303018 | 预披露 | +| 303019 | 正常转让 | +| 303020 | 停止转让 | +| 303021 | 重新上市 | +| 303099 | 其他 | +- **filter(finance.STK_STATUS_CHANGE.code==code)**:指定筛选条件,通过finance.STK_STATUS_CHANGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_STATUS_CHANGE.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的上市公司状态变动,限定返回条数为10 +q=query(finance.STK_STATUS_CHANGE).filter(finance.STK_STATUS_CHANGE.code=='600276.XSHG').limit(10) +df=finance.run_query(q) +print(df) + + id company_id code name pub_date public_status_id \ +0 2840 420600276 600276.XSHG 恒瑞医药 2000-10-18 301001 + + public_status change_date change_reason change_type_id change_type comments +0 正常上市 2000-10-18 NaN 303009 新股上市 NaN +``` + +### 股票上市信息 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_LIST).filter(finance.STK_LIST.code==code).limit(n)) +``` + +获取沪深A股的上市信息,包含上市日期、交易所、发行价格、初始上市数量等 + +**参数:** + +- **query(finance.STK_LIST)**:表示从finance.STK_LIST这张表中查询沪深A股的上市信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_LIST**:代表股票上市信息表,收录了沪深A股的上市信息,包含上市日期、交易所、发行价格、初始上市数量等,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| code | 证券代码 | varchar(12) | | +| name | 证券简称 | varchar(40) | | +| short_name | 拼音简称 | varchar(20) | | +| category | 证券类别 | varchar(4) | A/B | +| exchange | 交易所 | varchar(12) | XSHG/XSHE | +| start_date | 上市日期 | date | | +| end_date | 终止上市日期 | date | | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| ipo_shares | 初始上市数量 | decimal(20,2) | 股 | +| book_price | 发行价格 | decimal(20,4) | 元 | +| par_value | 面值 | decimal(20,4) | 元 | +| state_id | 上市状态编码 | int | | +| state | 上市状态 | varchar(32) | | + +- **filter(finance.STK_LIST.code==code)**:指定筛选条件,通过finance.STK_LIST.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_LIST.start_date>=’2015-01-01’,表示筛选上市日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的上市信息,限定返回条数为10 +q=query(finance.STK_LIST).filter(finance.STK_LIST.code=='600276.XSHG').limit(10) +df=finance.run_query(q) +print(df) + + id code name short_name category exchange start_date \ +0 1364 600276.XSHG 恒瑞医药 HRYY A XSHG 2000-10-18 + + end_date company_id company_name ipo_shares book_price par_value \ +0 NaN 420600276 江苏恒瑞医药股份有限公司 40000000.0 11.98 1.0 + + state_id state +0 301001 正常上市 +``` + +### 股票简称变更情况 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_NAME_HISTORY).filter(finance.STK_NAME_HISTORY.code==code).limit(n)) +``` + +获取在A股市场和B股市场上市的股票简称的变更情况 + +**参数:** + +- **query(finance.STK_NAME_HISTORY)**:表示从finance.STK_NAME_HISTORY这张表中查询股票简称的变更情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_NAME_HISTORY**:代表股票简称变更表,收录了在A股市场和B股市场上市的股票简称的变更情况,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| code | 股票代码 | varchar(12) | | +| company_id | 公司ID | int | | +| new_name | 新股票简称 | varchar(40) | | +| new_spelling | 新英文简称 | varchar(40) | | +| org_name | 原证券简称 | varchar(40) | | +| org_spelling | 原证券英文简称 | varchar(40) | | +| start_date | 开始日期 | date | | +| pub_date | 公告日期 | date | | +| reason | 变更原因 | varchar(255) | | + +- **filter(finance.STK_NAME_HISTORY.code==code)**:指定筛选条件,通过finance.STK_NAME_HISTORY.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_NAME_HISTORY.pub_date>=’2015-01-01’,表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的股票简称变更信息,限定返回条数为10 +q=query(finance.STK_NAME_HISTORY).filter(finance.STK_NAME_HISTORY.code=='600276.XSHG').limit(10) +df=finance.run_query(q) +print(df) + + id code company_id new_name new_spelling org_name org_spelling \ +0 1459 600276.XSHG 420600276 恒瑞医药 HRYY NaN NaN +1 3588 600276.XSHG 420600276 G恒瑞 GHR NaN NaN +2 4007 600276.XSHG 420600276 恒瑞医药 HRYY NaN NaN + + start_date pub_date reason +0 2000-10-18 2000-10-18 NaN +1 2006-06-20 2006-06-15 NaN +2 2006-10-09 2006-09-28 NaN +``` + +### 上市公司员工情况 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_EMPLOYEE_INFO).filter(finance.STK_EMPLOYEE_INFO.code==code).limit(n)) +``` + +获取上市公司在公告中公布的员工情况,包括员工人数、学历等信息; + 更新时间:上市公司定期报告员工情况的维护时效为定期报告披露后一个月内 + +**参数:** + +- **query(finance.STK_EMPLOYEE_INFO)**:表示从finance.STK_EMPLOYEE_INFO这张表中查询上市公司员工情况的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_EMPLOYEE_INFO**:代表上市公司员工情况表,收录了上市公司在公告中公布的员工情况,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| code | 证券代码 | varchar(12) | ‘600276.XSHG’,’000001.XSHE’ | +| name | 证券名称 | varchar(64) | | +| end_date | 报告期截止日 | date | 统计截止该报告期的员工信息 | +| pub_date | 公告日期 | date | | +| employee | 在职员工总数 | int | 人 | +| retirement | 离退休人员 | int | 人 | +| graduate_rate | 研究生以上人员比例 | decimal(10,4) | % | +| college_rate | 大学专科以上人员比例 | decimal(10,4) | % | +| middle_rate | 中专及以下人员比例 | decimal(10,4) | % | + +- **filter(finance.STK_EMPLOYEE_INFO.code==code)**:指定筛选条件,通过finance.STK_EMPLOYEE_INFO.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_EMPLOYEE_INFO.pub_date>=’2015-01-01’,表示公告日期大于2015年1月1日上市公司公布的员工信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回3000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +# 指定查询对象为恒瑞医药(600276.XSHG)的员工信息且公告日期大于2015年1月1日,限定返回条数为10 +q=query(finance.STK_EMPLOYEE_INFO).filter(finance.STK_EMPLOYEE_INFO.code=='600276.XSHG',finance.STK_EMPLOYEE_INFO.pub_date>='2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id code name end_date pub_date employee \ + 0 21542 420600276 600276.XSHG 恒瑞医药 2014-12-31 2015-03-31 8770 + 1 21543 420600276 600276.XSHG 恒瑞医药 2015-12-31 2016-04-13 10191 + 2 21544 420600276 600276.XSHG 恒瑞医药 2016-12-31 2017-03-11 12653 + + retirement graduate_rate college_rate middle_rate + 0 NaN NaN NaN NaN + 1 NaN NaN NaN NaN + 2 NaN NaN NaN NaN +``` + +## 上市公司股东和股本信息 + +### 十大股东 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_SHAREHOLDER_TOP10).filter(finance.STK_SHAREHOLDER_TOP10.code==code).limit(n)) +``` + +获取上市公司前十大股东的持股情况,包括持股数量,所持股份性质,变动原因等。 + +**参数:** + +- **query(finance.STK_SHAREHOLDER_TOP10)**:表示从finance.STK_SHAREHOLDER_TOP10这张表中查询上市公司前十大股东的持股情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_SHAREHOLDER_TOP10**:代表上市公司十大股东表,收录了上市公司前十大股东的持股情况,包括持股数量,所持股份性质,变动原因等。表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | 在此是指上市公司的名称 | +| code | 股票代码 | varchar(12) | | +| end_date | 截止日期 | date | 公告中统计的十大股东截止到某一日期的更新情况。 | +| pub_date | 公告日期 | date | 公告中会提到十大股东的更新情况。 | +| change_reason_id | 变动原因编码 | int | | +| change_reason | 变动原因 | varchar(120) | | +| shareholder_rank | 股东名次 | int | | +| shareholder_name | 股东名称 | varchar(200) | | +| shareholder_name_en | 股东名称(英文) | varchar(200) | | +| shareholder_id | 股东ID | int | | +| shareholder_class_id | 股东类别编码 | int | | +| shareholder_class | 股东类别 | varchar(150) | 包括:券商、社保基金、证券投资基金、保险公司、QFII、其它机构、个人等 | +| share_number | 持股数量 | decimal(10,4) | 股 | +| share_ratio | 持股比例 | decimal(10,4) | % | +| sharesnature_id | 股份性质编码 | int | | +| sharesnature | 股份性质 | varchar(120) | 包括:国家股、法人股、个人股外资股、流通A股、流通B股、职工股、发起人股、转配股等 | +| share_pledge_freeze | 股份质押冻结数量 | decimal(10,4) | 如果股份质押数量和股份冻结数量任意一个字段有值,则等于后两者之和 | +| share_pledge | 股份质押数量 | decimal(10,4) | 股 | +| share_freeze | 股份冻结数量 | decimal(10,4) | 股 | +- **filter(finance.STK_SHAREHOLDER_TOP10.code==code)**:指定筛选条件,通过finance.STK_SHAREHOLDER_TOP10.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHAREHOLDER_TOP10.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的十大股东情况,限定返回条数为10条 +q=query(finance.STK_SHAREHOLDER_TOP10).filter(finance.STK_SHAREHOLDER_TOP10.code=='600276.XSHG',finance.STK_SHAREHOLDER_TOP10.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_name company_id code end_date pub_date \ +0 753808 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +1 753809 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +2 753810 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +3 753811 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +4 753812 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +5 753813 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +6 753814 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +7 753815 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +8 753816 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 +9 753817 江苏恒瑞医药股份有限公司 420600276 600276.XSHG 2014-12-31 2015-03-31 + + change_reason_id change_reason shareholder_rank \ +0 306019 定期报告 4 +1 306019 定期报告 9 +2 306019 定期报告 10 +3 306019 定期报告 2 +4 306019 定期报告 3 +5 306019 定期报告 5 +6 306019 定期报告 6 +7 306019 定期报告 7 +8 306019 定期报告 8 +9 306019 定期报告 1 + + shareholder_name ... shareholder_id \ +0 中国医药工业有限公司 ... 100014895 +1 交通银行-博时新兴成长股票型证券投资基金 ... 120050009 +2 新华人寿保险股份有限公司-分红-团体分红-018L-FH001沪 ... 100000383 +3 西藏达远投资有限公司 ... 100097529 +4 连云港恒创医药科技有限公司 ... 100008678 +5 江苏金海投资有限公司 ... 100008257 +6 香港中央结算有限公司 ... 100011907 +7 中国农业银行股份有限公司-国泰国证医药卫生行业指数分级证券投资基金 ... 120160219 +8 兴业银行股份有限公司-兴全趋势投资混合型证券投资基金 ... 120163402 +9 江苏恒瑞医药集团有限公司 ... 100008682 + + shareholder_class_id shareholder_class share_number share_ratio \ +0 307099 其他机构 73000000.0 4.85 +1 307003 证券投资基金 10107880.0 0.67 +2 307014 保险投资组合 9820232.0 0.65 +3 307099 其他机构 240536692.0 15.99 +4 307099 其他机构 112278458.0 7.47 +5 307099 其他机构 53474244.0 3.56 +6 307099 其他机构 30821240.0 2.05 +7 307003 证券投资基金 12489920.0 0.83 +8 307003 证券投资基金 11999901.0 0.8 +9 307099 其他机构 365776169.0 24.32 + + sharesnature_id sharesnature share_pledge_freeze share_pledge share_freeze +0 308007 流通A股 NaN NaN NaN +1 308007 流通A股 NaN NaN NaN +2 308007 流通A股 NaN NaN NaN +3 308007 流通A股 NaN NaN NaN +4 308007 流通A股 NaN NaN NaN +5 308007 流通A股 53474244.0 53474244.0 NaN +6 308007 流通A股 NaN NaN NaN +7 308007 流通A股 NaN NaN NaN +8 308007 流通A股 NaN NaN NaN +9 308007 流通A股 NaN NaN NaN +``` + +### 十大流通股东 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_SHAREHOLDER_FLOATING_TOP10).filter(finance.STK_SHAREHOLDER_FLOATING_TOP10.code==code).limit(n)) +``` + +获取上市公司前十大流通股东的持股情况,包括持股数量,所持股份性质,变动原因等。 + +**参数:** + +- **query(finance.STK_SHAREHOLDER_FLOATING_TOP10)**:表示从finance.STK_SHAREHOLDER_FLOATING_TOP10这张表中查询上市公司前十大流通股东的持股情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_SHAREHOLDER_FLOATING_TOP10**:代表上市公司十大流通股东表,收录了上市公司前十大流通股东的持股情况,包括持股数量,所持股份性质,变动原因等。表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| end_date | 截止日期 | date | | +| pub_date | 公告日期 | date | | +| change_reason_id | 变动原因编码 | int | | +| change_reason | 变动原因 | varchar(120) | | +| shareholder_rank | 股东名次 | int | | +| shareholder_id | 股东ID | int | | +| shareholder_name | 股东名称 | varchar(200) | | +| shareholder_name_en | 股东名称(英文) | varchar(150) | | +| shareholder_class_id | 股东类别编码 | int | | +| shareholder_class | 股东类别 | varchar(150) | | +| share_number | 持股数量 | int | 股 | +| share_ratio | 持股比例 | decimal(10,4) | % | +| sharesnature_id | 股份性质编码 | int | | +| sharesnature | 股份性质 | varchar(120) | | +- **filter(finance.STK_SHAREHOLDER_FLOATING_TOP10.code==code)**:指定筛选条件,通过finance.STK_SHAREHOLDER_FLOATING_TOP10.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHAREHOLDER_FLOATING_TOP10.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的十大流通股东情况,返回条数为10条 +q=query(finance.STK_SHAREHOLDER_FLOATING_TOP10).filter(finance.STK_SHAREHOLDER_FLOATING_TOP10.code=='600276.XSHG',finance.STK_SHAREHOLDER_FLOATING_TOP10.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name code end_date pub_date \ +0 585806 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +1 585807 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +2 585808 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +3 585809 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +4 585810 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +5 585811 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +6 585812 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +7 585813 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +8 585814 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 +9 585815 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2014-12-31 2015-03-31 + + change_reason_id change_reason shareholder_rank shareholder_id \ +0 15019 定期报告 1 0 +1 15019 定期报告 2 0 +2 15019 定期报告 3 0 +3 15019 定期报告 4 0 +4 15019 定期报告 5 0 +5 15019 定期报告 6 0 +6 15019 定期报告 7 77160219 +7 15019 定期报告 8 77163402 +8 15019 定期报告 9 77050009 +9 15019 定期报告 10 0 + + shareholder_name shareholder_name_en shareholder_class_id \ +0 江苏恒瑞医药集团有限公司 NaN 3999 +1 西藏达远投资有限公司 NaN 3999 +2 连云港恒创医药科技有限公司 NaN 3999 +3 中国医药工业有限公司 NaN 3999 +4 江苏金海投资有限公司 NaN 3999 +5 香港中央结算有限公司 NaN 3999 +6 中国农业银行股份有限公司-国泰国证医药卫生行业指数分级证券投资基金 NaN 3003 +7 兴业银行股份有限公司-兴全趋势投资混合型证券投资基金 NaN 3003 +8 交通银行-博时新兴成长股票型证券投资基金 NaN 3003 +9 新华人寿保险股份有限公司-分红-团体分红-018L-FH001沪 NaN 3017 + + shareholder_class share_number share_ratio sharesnature_id sharesnature +0 其他机构 332523790.0 22.109 25007 流通A股 +1 其他机构 229034683.0 15.228 25007 流通A股 +2 其他机构 102094053.0 6.788 25007 流通A股 +3 其他机构 70203316.0 4.668 25007 流通A股 +4 其他机构 50367370.0 3.349 25007 流通A股 +5 其他机构 17207872.0 1.144 25007 流通A股 +6 证券投资基金 15161505.0 1.008 25007 流通A股 +7 证券投资基金 10299800.0 0.685 25007 流通A股 +8 证券投资基金 9929500.0 0.66 25007 流通A股 +9 保险投资组合 9296487.0 0.618 25007 流通A股 +``` + +### 股东股份质押 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_SHARES_PLEDGE).filter(finance.STK_SHARES_PLEDGE.code==code).limit(n)) +``` + +获取上市公司股东股份的质押情况。 + +**参数:** + +- **query(finance.STK_SHARES_PLEDGE)**:表示从finance.STK_SHARES_PLEDGE这张表中查询上市公司股东股份的质押情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_SHARES_PLEDGE**:代表上市公司股东股份质押表,收录了上市公司股东股份的质押情况。表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| pledgor_id | 出质人ID | int | | +| pledgor | 出质人 | varchar(100) | 将资产质押出去的人成为出质人 | +| pledgee | 质权人 | varchar(100) | | +| pledge_item | 质押事项 | varchar(500) | 质押原因,记录借款人、借款金额、币种等内容 | +| pledge_nature_id | 质押股份性质编码 | int | | +| pledge_nature | 质押股份性质 | varchar(120) | | +| pledge_number | 质押数量 | int | 股 | +| pledge_total_ratio | 占总股本比例 | decimal(10,4) | % | +| start_date | 质押起始日 | date | | +| end_date | 质押终止日 | date | | +| unpledged_date | 质押解除日 | date | | +| unpledged_number | 质押解除数量 | int | 股 | +| unpledged _detail | 解除质押说明 | varchar(1000) | | +| is_buy_back | 是否质押式回购交易 | char(1) | | +- **filter(finance.STK_SHARES_PLEDGE.code==code)**:指定筛选条件,通过finance.STK_SHARES_PLEDGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHARES_PLEDGE.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为万科(000002.XSHE)的股东股份质押情况,返回条数为10条 +q=query(finance.STK_SHARES_PLEDGE).filter(finance.STK_SHARES_PLEDGE.code=='000002.XSHE',finance.STK_SHARES_PLEDGE.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name code pub_date pledgor_id \ +0 30928 430000002 万科企业股份有限公司 000002.XSHE 2015-11-11 NaN +1 41070 430000002 万科企业股份有限公司 000002.XSHE 2016-07-14 NaN +2 52962 430000002 万科企业股份有限公司 000002.XSHE 2017-03-08 NaN +3 52963 430000002 万科企业股份有限公司 000002.XSHE 2017-03-08 NaN +4 53281 430000002 万科企业股份有限公司 000002.XSHE 2017-03-14 NaN +5 53430 430000002 万科企业股份有限公司 000002.XSHE 2017-03-17 NaN +6 53454 430000002 万科企业股份有限公司 000002.XSHE 2017-03-17 NaN +7 53455 430000002 万科企业股份有限公司 000002.XSHE 2017-03-17 NaN +8 53456 430000002 万科企业股份有限公司 000002.XSHE 2017-03-17 NaN +9 53504 430000002 万科企业股份有限公司 000002.XSHE 2017-03-17 NaN + + pledgor pledgee \ +0 深圳市钜盛华股份有限公司 鹏华资产管理(深圳)有限公司 +1 深圳市钜盛华股份有限公司 中国银河证券股份有限公司 +2 深圳市钜盛华股份有限公司 鹏华资产管理(深圳)有限公司 +3 深圳市钜盛华股份有限公司 鹏华资产管理(深圳)有限公司 +4 深圳市钜盛华股份有限公司 平安证券股份有限公司 +5 广州市凯进投资有限公司 中信证券股份有限公司 +6 广州市悦朗投资有限公司 中信证券股份有限公司 +7 广州市广域实业有限公司 中信证券股份有限公司 +8 广州市启通实业有限公司 中信证券股份有限公司 +9 广州市昱博投资有限公司 中信证券股份有限公司 + + pledge_item pledge_nature_id \ +0 本公司股东深圳市钜盛华股份有限公司将持有的公司728,000,000股无限售流通A股质押给鹏... NaN +1 本公司股东深圳市钜盛华股份有限公司将持有的本公司37357300股股权质押给中国银河证券股份... 308007.0 +2 本公司股东深圳市钜盛华股份有限公司将2015年10月28日质押给鹏华资产管理(深圳)有限公司... 308007.0 +3 本公司股东深圳市钜盛华股份有限公司将2015年10月21日质押给鹏华资产管理(深圳)有限公司... 308007.0 +4 本公司第一大股东深圳市钜盛华股份有限公司将持有的本公司182000000股流通A股股权质押给... 308007.0 +5 本公司股东广州市凯进投资有限公司将持有的本公司50759970股股权质押给中信证券股份有限公... NaN +6 本公司股东广州市悦朗投资有限公司将持有的本公司205731814股股权质押给中信证券股份有限... NaN +7 本公司股东广州市广域实业有限公司将持有的本公司86701961股股权质押给中信证券股份有限公... NaN +8 本公司股东广州市启通实业有限公司将持有的本公司68205047股股权质押给中信证券股份有限公... NaN +9 本公司股东广州市昱博投资有限公司将持有的本公司210778555股股权质押给中信证券股份有限... NaN + + pledge_nature pledge_number pledge_total_ratio start_date end_date \ +0 NaN 728000000.0 7.0 2015-10-15 NaN +1 流通A股 37357300.0 NaN 2016-07-12 NaN +2 流通A股 NaN NaN 2015-10-28 2017-03-03 +3 流通A股 NaN NaN 2015-10-21 2017-03-03 +4 流通A股 182000000.0 NaN 2017-03-09 NaN +5 NaN 50759970.0 NaN 2017-03-16 2018-03-16 +6 NaN 205731814.0 NaN 2017-03-16 2018-03-16 +7 NaN 86701961.0 NaN 2017-03-16 2018-03-16 +8 NaN 68205047.0 NaN 2017-03-16 2018-03-16 +9 NaN 210778555.0 NaN 2017-03-16 2018-03-16 + + unpledged_date unpledged_number unpledged_detail is_buy_back +0 NaN NaN NaN NaN +1 NaN NaN NaN 1 +2 2017-03-03 91000000.0 NaN NaN +3 2017-03-03 91000000.0 NaN NaN +4 NaN NaN NaN 1 +5 NaN NaN NaN 1 +6 NaN NaN NaN 1 +7 NaN NaN NaN 1 +8 NaN NaN NaN 1 +9 NaN NaN NaN 1 +``` + +### 股东股份冻结 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_SHARES_FROZEN).filter(finance.STK_SHARES_FROZEN.code==code).limit(n)) +``` + +获取上市公司股东股份的冻结情况 + +**参数:** + +- **query(finance.STK_SHARES_FROZEN)**:表示从finance.STK_SHARES_FROZEN这张表中查询股东股份的冻结情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_SHARES_FROZEN**:代表上市公司股东股份冻结表,收录了上市公司股东股份的冻结情况,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| pub_date | 公告日期 | date | | +| code | 股票代码 | varchar(12) | | +| frozen_person_id | 被冻结当事人ID | int | | +| frozen_person | 被冻结当事人 | varchar(100) | | +| frozen_reason | 冻结事项 | varchar(600) | | +| frozen_share_nature_id | 被冻结股份性质编码 | int | | +| frozen_share_nature | 被冻结股份性质 | varchar(120) | 包括:国家股、法人股、个人股、外资股、流通A股、流通B股、职工股、发起人股、转配股 | +| frozen_number | 冻结数量 | int | 股 | +| frozen_total_ratio | 占总股份比例 | decimal(10,4) | % | +| freeze_applicant | 冻结申请人 | varchar(100) | | +| freeze_executor | 冻结执行人 | varchar(100) | | +| start_date | 冻结起始日 | date | | +| end_date | 冻结终止日 | date | | +| unfrozen_date | 解冻日期 | date | 分批解冻的为最近一次解冻日期 | +| unfrozen_number | 累计解冻数量 | int | 原解冻数量(股) | +| unfrozen_detail | 解冻处理说明 | varchar(1000) | 冻结过程及结束后的处理结果 | +- **filter(finance.STK_SHARES_FROZEN.code==code)**:指定筛选条件,通过finance.STK_SHARES_FROZEN.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHARES_FROZEN.pub_date>='2015-01-01',表示筛选公告日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为文一科技(600520.XSHG)的股东股份冻结情况,返回条数为10条 +q=query(finance.STK_SHARES_FROZEN).filter(finance.STK_SHARES_FROZEN.code=='600520.XSHG',finance.STK_SHARES_FROZEN.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name pub_date code frozen_person_id \ +0 4213 420600520 铜陵中发三佳科技股份有限公司 2015-07-11 600520.XSHG NaN +1 4227 420600520 铜陵中发三佳科技股份有限公司 2015-08-13 600520.XSHG NaN +2 4261 420600520 铜陵中发三佳科技股份有限公司 2015-09-22 600520.XSHG NaN +3 4446 420600520 铜陵中发三佳科技股份有限公司 2016-03-24 600520.XSHG NaN +4 4499 420600520 铜陵中发三佳科技股份有限公司 2016-04-30 600520.XSHG NaN +5 4509 420600520 铜陵中发三佳科技股份有限公司 2016-05-07 600520.XSHG NaN +6 4513 420600520 铜陵中发三佳科技股份有限公司 2016-05-21 600520.XSHG NaN +7 4541 420600520 铜陵中发三佳科技股份有限公司 2016-06-25 600520.XSHG NaN +8 4542 420600520 铜陵中发三佳科技股份有限公司 2016-06-25 600520.XSHG NaN +9 4569 420600520 铜陵中发三佳科技股份有限公司 2016-07-09 600520.XSHG NaN + + frozen_person frozen_reason frozen_share_nature_id frozen_share_nature \ +0 铜陵市三佳电子(集团)有限责任公司 NaN 308001.0 境内法人股 +1 铜陵市三佳电子(集团)有限责任公司 NaN 308001.0 境内法人股 +2 铜陵市三佳电子(集团)有限责任公司 NaN 308001.0 境内法人股 +3 铜陵市三佳电子(集团)有限责任公司 NaN 308001.0 境内法人股 +4 铜陵市三佳电子(集团)有限责任公司 NaN 308001.0 境内法人股 +5 铜陵市三佳电子(集团)有限责任公司 NaN 308001.0 境内法人股 +6 铜陵市三佳电子(集团)有限责任公司 NaN NaN NaN +7 铜陵市三佳电子(集团)有限责任公司 NaN NaN NaN +8 铜陵市三佳电子(集团)有限责任公司 NaN NaN NaN +9 铜陵市三佳电子(集团)有限责任公司 NaN NaN NaN + + ... frozen_total_ratio freeze_applicant freeze_executor \ +0 ... 17.09 NaN 上海市金山区人民法院 +1 ... 17.09 NaN NaN +2 ... 17.09 中信银行股份有限公司安庆分行 NaN +3 ... 17.089 NaN 安庆市宜秀区人民法院及安庆市迎江区人民法院 +4 ... 17.089 NaN 上海市浦东新区人民法院 +5 ... 17.089 NaN 上海市浦东新区人民法院 +6 ... 17.089 NaN 广东省深圳市宝安区人民法院 +7 ... NaN 上海富汇融资租赁有限公司 上海市浦东新区人民法院 +8 ... 17.089 NaN 铜陵市中级人民法院 +9 ... NaN NaN 广东省深圳市宝安区人民法院 + + change_reason_id change_reason start_date end_date unfrozen_date \ +0 NaN NaN 2015-07-10 NaN NaN +1 NaN NaN NaN 2015-08-11 2015-08-11 +2 NaN NaN NaN NaN NaN +3 NaN NaN NaN 2016-03-16 2016-03-16 +4 NaN NaN 2016-04-27 2019-04-20 NaN +5 NaN NaN 2016-05-04 2019-05-04 NaN +6 NaN NaN NaN NaN NaN +7 NaN NaN NaN 2016-06-23 2016-06-23 +8 NaN NaN NaN 2016-06-23 2016-06-23 +9 NaN NaN NaN 2016-07-07 2016-07-07 + + unfrozen_number unfrozen_detail +0 NaN NaN +1 27073333.0 NaN +2 NaN NaN +3 27073333.0 NaN +4 NaN NaN +5 NaN NaN +6 NaN NaN +7 27073333.0 NaN +8 27073333.0 NaN +9 27073333.0 NaN + +[10 rows x 21 columns] +``` + +### 股东户数 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_HOLDER_NUM).filter(finance.STK_HOLDER_NUM.code==code).limit(n)) +``` + +获取上市公司全部股东户数,A股股东、B股股东、H股股东的持股户数 + +**参数:** + +- **query(finance.STK_HOLDER_NUM)**:表示从finance.STK_HOLDER_NUM这张表中查询上市公司的股东户数,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_HOLDER_NUM**:代表上市公司股东户数表,收录了上市公司全部股东户数,A股股东、B股股东、H股股东的持股户数情况,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| code | 股票代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| end_date | 截止日期 | date | | +| share_holders | 股东总户数 | int | | +| a_share_holders | A股股东总户数 | int | | +| b_share_holders | B股股东总户数 | int | | +| h_share_holders | H股股东总户数 | int | | +- **filter(finance.STK_HOLDER_NUM.code==code)**:指定筛选条件,通过finance.STK_HOLDER_NUM.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_HOLDER_NUM.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为万科(000002.XSHE)的股东户数情况,返回条数为10条 +q=query(finance.STK_HOLDER_NUM).filter(finance.STK_HOLDER_NUM.code=='000002.XSHE',finance.STK_HOLDER_NUM.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id code end_date pub_date share_holders a_share_holders \ +0 139 000002.XSHE 2014-12-31 2015-03-31 496922 496907 +1 140 000002.XSHE 2015-03-24 2015-03-31 586390 586373 +2 141 000002.XSHE 2015-03-31 2015-04-27 652130 652113 +3 142 000002.XSHE 2015-06-30 2015-08-17 479264 479246 +4 143 000002.XSHE 2015-09-30 2015-10-28 332360 332339 +5 144 000002.XSHE 2015-12-31 2016-03-14 272370 272350 +6 145 000002.XSHE 2016-02-29 2016-03-14 272167 272145 +7 146 000002.XSHE 2016-03-31 2016-04-28 272085 272063 +8 147 000002.XSHE 2016-06-30 2016-08-25 272027 272006 +9 148 000002.XSHE 2016-07-31 2016-08-25 546713 546691 + + b_share_holders h_share_holders +0 NaN 15 +1 NaN 17 +2 NaN 17 +3 NaN 18 +4 NaN 21 +5 NaN 20 +6 NaN 22 +7 NaN 22 +8 NaN 21 +9 NaN 22 +``` + +### 大股东增减持 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_SHAREHOLDERS_SHARE_CHANGE).filter(finance.STK_SHAREHOLDERS_SHARE_CHANGE.code==code).limit(n)) +``` + +获取上市公司大股东的增减持情况。 + +**参数:** + +- **query(finance.STK_SHAREHOLDERS_SHARE_CHANGE)**:表示从finance.STK_SHAREHOLDERS_SHARE_CHANGE这张表中查询上市公司大股东的增减持情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_SHAREHOLDERS_SHARE_CHANGE**:代表上市公司大股东增减持情况表,收录了大股东的增减持情况,表结构和字段信息如下: + +| 段名称 | 中文名称 | 字段类型 | 备注/示例 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| end_date | 增(减)持截止日 | date | 变动截止日期 | +| type | 增(减)持类型 | int | 0--增持;1--减持 | +| shareholder_id | 股东ID | int | | +| shareholder_name | 股东名称 | varchar(100) | | +| change_number | 变动数量 | int | 股 | +| change_ratio | 变动数量占总股本比例 | decimal(10,4) | 录入变动数量后,系统自动计算变动比例,持股比例可以用持股数量除以股本情况表中的总股本 | +| price_ceiling | 增(减)持价格上限 | varchar(100) | 公告里面一般会给一个增持或者减持的价格区间,上限就是增持价格或减持价格的最高价。如果公告中只披露了平均价,那price_ceiling即为成交均价 | +| after_change_ratio | 变动后占比 | decimal(10,4) | %,变动后持股数量占总股本比例 | +- **filter(finance.STK_SHAREHOLDERS_SHARE_CHANGE.code==code)**:指定筛选条件,通过finance.STK_SHAREHOLDERS_SHARE_CHANGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_SHAREHOLDERS_SHARE_CHANGE.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为万科(000002.XSHE)的大股东增减持情况,返回条数为10条 +q=query(finance.STK_SHAREHOLDERS_SHARE_CHANGE).filter(finance.STK_SHAREHOLDERS_SHARE_CHANGE.code=='000002.XSHE',finance.STK_SHAREHOLDERS_SHARE_CHANGE.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name code pub_date end_date type \ +0 1362 430000002 万科企业股份有限公司 000002.XSHE 2015-10-22 2015-10-20 0 + + shareholder_id shareholder_name change_number change_ratio price_ceiling \ +0 NaN 深圳市矩盛华股份有限公司 369084217.0 3.34 NaN + + after_change_ratio +0 NaN +``` + +### 受限股份上市公告日期 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_LIMITED_SHARES_LIST).filter(finance.STK_LIMITED_SHARES_LIST.code==code).limit(n)) +``` + +获取上市公司受限股份上市公告日期和预计解禁日期。 + +**参数:** + +- **query(finance.STK_LIMITED_SHARES_LIST)**:表示从finance.STK_LIMITED_SHARES_LIST这张表中查询上市公司受限股份上市公告和预计解禁的日期,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[query简单教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) +- **finance.STK_LIMITED_SHARES_LIST**:代表受限股份上市公告日期表,收录了上市公司受限股份上市公告和预计解禁的日期,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| pub_date | 公告日期 | date | 上市流通方案公布日期 | +| shareholder_name | 股东名称 | varchar(100) | | +| expected_unlimited_date | 预计解除限售日期 | date | | +| expected_unlimited_number | 预计解除限售数量 | int | 单位:股 | +| expected_unlimited_ratio | 预计解除限售比例 | decimal(10,4) | 单位:%;预计解除限售数量占总股本比例 | +| actual_unlimited_date | 实际解除限售日期 | date | | +| actual_unlimited_number | 实际解除限售数量 | int | 单位:股 | +| actual_unlimited_ratio | 实际解除限售比例 | decimal(10,4) | 单位:%;实际解除限售数量占总股本比例 | +| limited_reason_id | 限售原因编码 | int | 如下 限售原因编码 | +| limited_reason | 限售原因 | varchar(60) | 用户选择:股改限售;发行限售 | +| trade_condition | 上市交易条件 | varchar(500) | 股份上市交易的条件限制 | +- **filter(finance.STK_LIMITED_SHARES_LIST.code==code)**:指定筛选条件,通过finance.STK_LIMITED_SHARES_LIST.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_LIMITED_SHARES_LIST.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为华泰证券(600276.XSHG)的受限股份上市公告日期,返回条数为10条 +q=query(finance.STK_LIMITED_SHARES_LIST).filter(finance.STK_LIMITED_SHARES_LIST.code=='601688.XSHG',finance.STK_LIMITED_SHARES_LIST.pub_date>'2018-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name code pub_date shareholder_name \ +0 34395 460000161 华泰证券股份有限公司 601688.XSHG 2018-08-04 阿里巴巴(中国)网络技术有限公司等 + + expected_unlimited_date expected_unlimited_number expected_unlimited_ratio \ +0 2019-08-02 1.088731e+09 None + + actual_unlimited_date actual_unlimited_number actual_unlimited_ratio \ +0 None None None + + limited_reason_id limited_reason trade_condition +0 309008 非公开发行限售 None +``` + +### 受限股份实际解禁日期 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_LIMITED_SHARES_UNLIMIT).filter(finance.STK_LIMITED_SHARES_UNLIMIT.code==code).limit(n)) +``` + +获取公司已上市的受限股份实际解禁的日期。 + +**参数:** + +- **query(finance.STK_LIMITED_SHARES_UNLIMIT)**:表示从finance.STK_LIMITED_SHARES_UNLIMIT这张表中查询上市公司受限股份实际解禁的日期,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_LIMITED_SHARES_UNLIMIT**:代表上市公司受限股份实际解禁表,收录了上市公司受限股份实际解禁的日期信息,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| shareholder_name | 股东名称 | varchar(100) | | +| actual_unlimited_date | 实际解除限售日期 | date | | +| actual_unlimited_number | 实际解除限售数量 | int | 股 | +| actual_unlimited_ratio | 本次解禁实际可流通比例 | decimal(10,4) | 本次解禁实际可流通数量/总股本,单位% | +| limited_reason_id | 限售原因编码 | int | | +| limited_reason | 限售原因 | varchar(60) | | +| actual_trade_number | 实际可流通数量 | int | 股 | +- **filter(finance.STK_LIMITED_SHARES_UNLIMIT.code==code)**:指定筛选条件,通过finance.STK_LIMITED_SHARES_UNLIMIT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_LIMITED_SHARES_UNLIMIT.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据,列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的受限股份实际解禁日期,返回条数为10条 +q=query(finance.STK_LIMITED_SHARES_UNLIMIT).filter(finance.STK_LIMITED_SHARES_UNLIMIT.code=='600276.XSHG',finance.STK_LIMITED_SHARES_UNLIMIT.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name code pub_date shareholder_name \ +0 11252 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2015-07-14 蒋素梅等 +1 11889 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2016-01-16 周云曙等 +2 12613 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2016-07-14 蒋素梅等 +3 13335 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-01-10 周云曙等 +4 14162 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-07-20 蒋素梅等 +5 15291 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2018-01-26 周云曙等 + + actual_unlimited_date actual_unlimited_number actual_unlimited_ratio \ +0 2015-07-17 4021160.0 0.1672 +1 2016-01-21 531960.0 0.0068 +2 2016-07-19 3488285.0 0.1486 +3 2017-01-16 478764.0 0.0051 +4 2017-07-25 4024089.0 0.1167 +5 2018-01-31 574517.0 0.0051 + + limited_reason_id limited_reason actual_trade_number +0 309004 股权激励 3270410.0 +1 309004 股权激励 132990.0 +2 309004 股权激励 3488285.0 +3 309004 股权激励 119691.0 +4 309004 股权激励 3287409.0 +5 309004 股权激励 143628.0 +``` + +### 上市公司股本变动 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_CAPITAL_CHANGE).filter(finance.STK_CAPITAL_CHANGE.code==code).limit(n)) +``` + +获取上市公司的股本变动情况 + +**参数:** + +- **query(finance.STK_CAPITAL_CHANGE)**:表示从finance.STK_CAPITAL_CHANGE这张表中查询股票简称的变更情况,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用英文逗号进行分隔;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) **finance.STK_CAPITAL_CHANGE**:代表上市公司的股本变动表,收录了上市公司发生上市、增发、配股,转增等时间带来的股本变动情况。表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| change_date | 变动日期 | date | | +| pub_date | 公告日期 | date | | +| change_reason_id | 变动原因编码 | int | | +| change_reason | 变动原因 | varchar(120) | | +| share_total | 总股本 | decimal(20,4) | 未流通股份+已流通股份,单位:万股 | +| share_non_trade | 未流通股份 | decimal(20,4) | 发起人股份 + 募集法人股份 + 内部职工股 + 优先股+转配股+其他未流通股+配售法人股+已发行未上市股份 | +| share_start | 发起人股份 | decimal(20,4) | 国家持股 +国有法人持股+境内法人持股 + 境外法人持股 + 自然人持股 | +| share_nation | 国家持股 | decimal(20,4) | 单位:万股 | +| share_nation_legal | 国有法人持股 | decimal(20,4) | 单位:万股 | +| share_instate_legal | 境内法人持股 | decimal(20,4) | 单位:万股 | +| share_outstate_legal | 境外法人持股 | decimal(20,4) | 单位:万股 | +| share_natural | 自然人持股 | decimal(20,4) | 单位:万股 | +| share_raised | 募集法人股 | decimal(20,4) | 单位:万股 | +| share_inside | 内部职工股 | decimal(20,4) | 单位:万股 | +| share_convert | 转配股 | decimal(20,4) | 单位:万股 | +| share_perferred | 优先股 | decimal(20,4) | 单位:万股 | +| share_other_nontrade | 其他未流通股 | decimal(20,4) | 单位:万股 | +| share_limited | 流通受限股份 | decimal(20,4) | 单位:万股 | +| share_legal_issue | 配售法人股 | decimal(20,4) | 战略投资配售股份+证券投资基金配售股份+一般法人配售股份(万股) | +| share_strategic_investor | 战略投资者持股 | decimal(20,4) | 单位:万股 | +| share_fund | 证券投资基金持股 | decimal(20,4) | 单位:万股 | +| share_normal_legal | 一般法人持股 | decimal(20,4) | 单位:万股 | +| share_other_limited | 其他流通受限股份 | decimal(20,4) | 单位:万股 | +| share_nation_limited | 国家持股(受限) | decimal(20,4) | 单位:万股 | +| share_nation_legal_limited | 国有法人持股(受限) | decimal(20,4) | 单位:万股 | +| other_instate_limited | 其他内资持股(受限) | decimal(20,4) | 单位:万股 | +| legal of other_instate_limited | 其他内资持股(受限)中的境内法人持股 | decimal(20,4) | 单位:万股 | +| natural of other_instate_limited | 其他内资持股(受限)中的境内自然人持股 | decimal(20,4) | 单位:万股 | +| outstate_limited | 外资持股(受限) | decimal(20,4) | 单位:万股 | +| legal of outstate_limited | 外资持股(受限)中的境外法人持股 | decimal(20,4) | 单位:万股 | +| natural of outstate_limited | 外资持股(受限)境外自然人持股 | decimal(20,4) | 单位:万股 | +| share_trade_total | 已流通股份 | decimal(20,4) | 人民币普通股 + 境内上市外资股(B股)+ 境外上市外资股(H股)+高管股+ 其他流通股 | +| share_rmb | 人民币普通股 | decimal(20,4) | 单位:万股 | +| share_b | 境内上市外资股(B股) | decimal(20,4) | 单位:万股 | +| share_b_limited | 限售B股 | decimal(20,4) | 单位:万股 | +| share_h | 境外上市外资股(H股) | decimal(20,4) | 单位:万股 | +| share_h_limited | 限售H股 | decimal(20,4) | 单位:万股 | +| share_management | 高管股 | decimal(20,4) | 单位:万股 | +| share_management_limited | 限售高管股 | decimal(20,4) | 单位:万股 | +| share_other_trade | 其他流通股 | decimal(20,4) | 单位:万股 | +| control_shareholder_limited | 控股股东、实际控制人(受限) | decimal(20,4) | 单位:万股 | +| core_employee_limited | 核心员工(受限) | decimal(20,4) | 单位:万股 | +| individual_fund_limited | 个人或基金(受限) | decimal(20,4) | 单位:万股 | +| other_legal_limited | 其他法人(受限) | decimal(20,4) | 单位:万股 | +| other_limited | 其他(受限) | decimal(20,4) | 单位:万股 | +- **filter(finance.STK_CAPITAL_CHANGE.code==code)**:指定筛选条件,通过finance.STK_CAPITAL_CHANGE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_CAPITAL_CHANGE.pub_date>='2015-01-01',表示筛选公布日期大于等于2015年1月1日之后的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe, 每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#指定查询对象为恒瑞医药(600276.XSHG)的股本变动情况,返回条数为10条 +q=query(finance.STK_CAPITAL_CHANGE).filter(finance.STK_CAPITAL_CHANGE.code=='600276.XSHG',finance.STK_CAPITAL_CHANGE.pub_date>'2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name code change_date pub_date \ +0 107 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-01-16 2017-01-10 +1 3506 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-05-31 2017-05-22 +2 4130 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-06-29 2017-06-29 +3 4417 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-07-25 2017-07-20 +4 7659 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-06-30 2017-08-30 +5 8432 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-09-22 2017-09-22 +6 9839 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2018-01-18 2018-01-20 +7 9911 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2018-01-31 2018-01-26 +8 12261 420600276 江苏恒瑞医药股份有限公司 600276.XSHG 2017-12-31 2018-04-16 + + change_reason_id change_reason share_total share_non_trade ... \ +0 306037 激励股份上市 234745.9674 0.0 ... +1 306010 送股 281695.1609 0.0 ... +2 306016 股份回购 281688.9833 0.0 ... +3 306037 激励股份上市 281688.9833 0.0 ... +4 306019 定期报告 281688.9833 0.0 ... +5 306016 股份回购 281688.3038 0.0 ... +6 306004 增发新股上市 283264.8038 0.0 ... +7 306037 激励股份上市 283264.8038 0.0 ... +8 306019 定期报告 281688.3038 0.0 ... + + share_h share_h_limited share_management share_management_limited \ +0 0.0 NaN 0.0 NaN +1 0.0 NaN 0.0 NaN +2 0.0 NaN 0.0 NaN +3 0.0 NaN 0.0 NaN +4 0.0 NaN 0.0 NaN +5 0.0 NaN 0.0 NaN +6 0.0 NaN 0.0 NaN +7 0.0 NaN 0.0 NaN +8 0.0 NaN 0.0 NaN + + share_other_trade control_shareholder_limited core_employee_limited \ +0 0.0 NaN NaN +1 0.0 NaN NaN +2 0.0 NaN NaN +3 0.0 NaN NaN +4 0.0 NaN NaN +5 0.0 NaN NaN +6 0.0 NaN NaN +7 0.0 NaN NaN +8 0.0 NaN NaN + + individual_fund_limited other_legal_limited other_limited +0 NaN NaN NaN +1 NaN NaN NaN +2 NaN NaN NaN +3 NaN NaN NaN +4 NaN NaN NaN +5 NaN NaN NaN +6 NaN NaN NaN +7 NaN NaN NaN +8 NaN NaN NaN + +[9 rows x 49 columns] +``` + +## 获取单季度/年度财务数据 + +查询股票的**市值数据、资产负债数据、现金流数据、利润数据、财务指标数据**. 详情通过[财务数据列表](https://www.joinquant.com/help/api/help?name=Stock#%E8%B4%A2%E5%8A%A1%E6%95%B0%E6%8D%AE%E5%88%97%E8%A1%A8)查看! 可通过以下api进行查询 : + +名称描述get_fundamentals 查询财务数据 +``` + +get_fundamentals(query_object, date=None, statDate=None) +``` + + 查询财务数据,详细的财务数据表及字段描述请点击财务数据文档查看,Query 对象的使用方法请参考[Query的简单教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) date和statDate参数只能传入一个: - 传入date时, 查询**指定日期date收盘后所能看到的最近(对市值表来说, 最近一天, 对其他表来说, 最近一个季度)的数据**, 默认我们会查找上市公司在当前日期之前发布的数据, 不会有未来函数.不要传递当天的日期取获取估值表,pe/市值等依赖收盘价的指标是盘后更新的。 - 传入statDate时, 查询 **statDate 指定的季度或者年份的财务数据**. 注意: 1. 由于公司发布财报不及时, 一般是看不到当季度或年份的财务报表的, 回测中使用这个数据可能会有未来函数, 请注意规避. 2. 由于估值表每天更新, 当按季度或者年份查询时, 返回季度或者年份最后一天的数据 3. 由于“资产负债数据”这个表是存量性质的, 查询年度数据是返回第四季度的数据。 4. 银行业、券商、保险专项数据只有年报数据,需传入statDate参数,当传入 date 参数 或 statDate 传入季度时返回空,请自行避免未来函数。 当 date 和 statDate 都不传入时, 相当于使用 date 参数, date 的默认值下面会描述. **参数** - query_object: 一个[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html), 可以通过全局的 query 函数获取 Query 对象,[Query对象的简单使用教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) - date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: 1. 回测模块: 默认值会随着回测日期变化而变化, 等于 context.current_dt 的前一天(实际生活中我们只能看到前一天的财报和市值数据, 所以要用前一天) 2. 研究模块: 使用平台财务数据的最新日期, 一般是昨天. - statDate: 财报统计的季度或者年份, 一个字符串, 有两种格式: 1. 季度: 格式是: **年 + 'q' + 季度序号**, 例如: '2015q1', '2013q4'. 2. 年份: 格式就是年份的数字, 例如: '2015', '2016'. **返回** 返回一个 [pandas.DataFrame], 每一行对应数据库返回的每一行(可能是几个表的联合查询结果的一行), 列索引是你查询的所有字段 注意: 1. 为了防止返回数据量过大, 我们每次最多返回5000行 2. 当相关股票上市前、退市后,财务数据返回各字段为空 **示例** +``` + +# 查询'000001.XSHE'的所有市值数据, 时间是2015-10-15 +q = query( + valuation +).filter( + valuation.code == '000001.XSHE' +) +df = get_fundamentals(q, '2015-10-15') +# 打印出总市值 +log.info(df['market_cap'][0]) +``` + +``` + +# 获取多只股票在某一日期的市值, 利润 +df = get_fundamentals(query( + valuation, income + ).filter( + # 这里不能使用 in 操作, 要使用in_()函数 + valuation.code.in_(['000001.XSHE', '600000.XSHG']) + ), date='2015-10-15') +``` + +``` + +# 选出所有的总市值大于1000亿元, 市盈率小于10, 营业总收入大于200亿元的股票 +df = get_fundamentals(query( + valuation.code, valuation.market_cap, valuation.pe_ratio, income.total_operating_revenue + ).filter( + valuation.market_cap > 1000, + valuation.pe_ratio < 10, + income.total_operating_revenue > 2e10 + ).order_by( + # 按市值降序排列 + valuation.market_cap.desc() + ).limit( + # 最多返回100个 + 100 + ), date='2015-10-15') +``` + +``` + +# 使用 or_ 函数: 查询总市值大于1000亿元 **或者** 市盈率小于10的股票 +from sqlalchemy.sql.expression import or_ +get_fundamentals(query( + valuation.code + ).filter( + or_( + valuation.market_cap > 1000, + valuation.pe_ratio < 10 + ) + )) +``` + +``` + +# 查询平安银行2014年四个季度的季报, 放到数组中 +q = query( + income.statDate, + income.code, + income.basic_eps, + balance.cash_equivalents, + cash_flow.goods_sale_and_service_render_cash + ).filter( + income.code == '000001.XSHE', + ) + +rets = [get_fundamentals(q, statDate='2014q'+str(i)) for i in range(1, 5)] +``` + +``` + +# 查询平安银行2014年的年报 +q = query( + income.statDate, + income.code, + income.basic_eps, + cash_flow.goods_sale_and_service_render_cash + ).filter( + income.code == '000001.XSHE', + ) + +ret = get_fundamentals(q, statDate='2014') +``` + +get_fundamentals_continuously 查询多日的财务数据 +``` + +get_fundamentals_continuously(query_object, end_date=None,count=None, panel=True) +``` + + 查询多日财务数据,详细的财务数据表及字段描述请点击财务数据文档查看,Query 对象的使用方法请参考[Query的简单教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) **参数** - query_object: 一个[sqlalchemy.orm.query.Query对象](https://docs.sqlalchemy.org/en/rel_1_0/orm/query.html), 可以通过全局的 query 函数获取 Query 对象,[Query对象的简单使用教程](https://www.joinquant.com/view/community/detail/433d0e9ed9fed11fc9f7772eab8d9376) - end_date: 查询日期, 一个字符串(格式类似'2015-10-15')或者[datetime.date]/[datetime.datetime]对象, 可以是None, 使用默认日期. 这个默认日期在回测和研究模块上有点差别: 1. 回测模块: 默认值会随着回测日期变化而变化, 等于 context.current_dt 的前一天(实际生活中我们只能看到前一天的财报和市值数据, 所以要用前一天) 2. 研究模块: 使用平台财务数据的最新日期, 一般是昨天. - count: 获取 end_date 前 count 个日期的数据 - panel:在pandas 0.24版后,panel被彻底移除。获取多标的数据时建议设置panel为False,返回等效的dataframe **返回** - 默认panel=True,返回一个 pandas.Panel; - 建议设置panel为False,返回等效的dataframe; **出于性能方面考虑,我们做出了返回总条数不超过5000条的限制。 也就是说:查询的股票数量\*count 要小于5000。 否则,返回的数据会不完整。** **示例** +``` + +>>> q = query(valuation.turnover_ratio, + valuation.market_cap, + indicator.eps + ).filter(valuation.code.in_(['000001.XSHE', '600000.XSHG'])) + +>>> panel = get_fundamentals_continuously(q, end_date='2018-01-01', count=5) + +>>> panel + +\ +Dimensions: 3 (items) x 5 (major_axis) x 2 (minor_axis) +Items axis: turnover_ratio to eps +Major_axis axis: 2017-12-25 to 2017-12-29 +Minor_axis axis: 000001.XSHE to 600000.XSHG + +>>> panel.minor_xs('600000.XSHG') + +turnover_ratio market_cap eps +day +2017-12-25 0.0687 3695.4270 0.48 +2017-12-26 0.0542 3710.1030 0.48 +2017-12-27 0.1165 3704.2324 0.48 +2017-12-28 0.0849 3680.7510 0.48 +2017-12-29 0.0582 3695.4270 0.48 + +>>> panel.major_xs('2017-12-25') + +turnover_ratio market_cap eps +code +000001.XSHE 0.9372 2275.0796 0.38 +600000.XSHG 0.0687 3695.4270 0.48 + +>>> panel.xs('turnover_ratio',axis=0) +# axis=0 表示 items axis; axis=1 表示 major axis; axis=2 表示 minor axis + +code 000001.XSHE 600000.XSHG +day +2017-12-25 0.9372 0.0687 +2017-12-26 0.6642 0.0542 +2017-12-27 0.8078 0.1165 +2017-12-28 0.9180 0.0849 +2017-12-29 0.5810 0.0582 +``` + +get_history_fundamentals获取多个季度/年度的历史财务数据 获取多个季度/年度的三大财务报表和财务指标数据. 可指定单季度数据, 也可以指定年度数据。可以指定观察日期, 也可以指定最后一个报告期的结束日期 +``` + +get_history_fundamentals(security, fields, watch_date=None, stat_date=None, count=1, interval='1q', stat_by_year=False) +``` + + ##### **参数** - security:股票代码或者股票代码列表。 - fields:要查询的财务数据的列表, 季度数据和年度数据可选择的列不同。示例: [balance.cash_equivalents, cash_flow.net_deposit_increase, income.total_operating_revenue] - watch_date:观察日期, 如果指定, 将返回 watch_date 日期前(包含该日期)发布的报表数据 - stat_date:统计日期, 可以是 '2019'/'2019q1'/'2018q4' 格式, 如果指定, 将返回 stat_date 对应报告期及之前的历史报告期的报表数据 - watch_date 和 stat_date 只能指定一个, 而且必须指定一个 - 如果没有 stat_date 指定报告期的数据, 则该数据会缺失一行. - count:查询历史的多个报告期时, 指定的报告期数量. 如果股票历史报告期的数量小于 count, 则该股票返回的数据行数将小于 count - interval:查询多个报告期数据时, 指定报告期间隔, 可选值: '1q'/'1y', 表示间隔一季度或者一年, 举例说明: - stat_date='2019q1', interval='1q', count=4, 将返回 2018q2,2018q3,2018q4,2019q1 的数据 - stat_date='2019q1', interval='1y', count=4, 将返回 2016q1,2017q1,2018q1,2019q1 的数据 - stat_by_year=True, stat_date='2018', interval='1y', count=4 将返回 2015/2016/2017/2018 年度的年报数据 - stat_by_year:bool, 是否返回年度数据. 默认返回的按季度统计的数据(比如income表中只有单个季度的利润). - 如果是True: - interval必须是 '1y' - 如果指定了 stat_date 的话, stat_date 必须是一个代表年份整数、字符串, 表明统计的年份,比如2019, "2019"。但不能是"20191q"这种格式。 - fields 可以选择 balance/income/cash_flow/indicator/bank_indicator/security_indicator/insurance_indicator 表中的列 - 如果是False: fields只能选择balance/income/cash_flow/indicator 表中的列 ##### **返回值** pandas.DataFrame, 数据库查询结果. 数据格式同 get_fundamentals. 每个股票每个报告期(一季度或者一年)的数据占用一行. ##### **注意** - 不支持valuation市值表 - 推荐用户对结果使用pandas的[groupby](https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.DataFrame.groupby.html)方法来进行分组分析数据 - 每次最多返回50000条数据,更多数据需要根据标的或者时间分多次获取 ##### **示例** +``` + +from jqdata import * +security = ['000001.XSHE', '600000.XSHG'] +df = get_history_fundamentals(security, fields=[balance.cash_equivalents, + cash_flow.net_deposit_increase, income.total_operating_revenue], + watch_date=None, stat_date='2019q1', count=5, interval='1q', stat_by_year=False) +print(df) +print(df.groupby('code').mean()) +``` + +get_valuation 获取多个标的在指定交易日范围内的市值表数据 +``` + +from jqdata import * +get_valuation(security, start_date=None, end_date=None, fields=None, count=None) +``` + + 获取多个标的在指定交易日范围内的市值表数据 ##### **参数** - security: 标的code字符串列表或者单个标的字符串 - end_date: 查询结束时间 - start_date: 查询开始时间,不能与count共用 - count: 表示往前查询每一个标的count个交易日的数据,如果期间标的停牌,则该标的返回的市值数据数量小于count - fields: 财务数据中市值表的字段,返回结果中总会包含code、day字段,可用字段如下: |code| 股票代码 带后缀.XSHE/.XSHG| |day |日期 取数据的日期| | capitalization |总股本(万股)| |circulating_cap| 流通股本(万股)| |market_cap |总市值(亿元)| |circulating_market_cap| 流通市值(亿元)| |turnover_ratio |换手率(%)| |pe_ratio |市盈率(PE, TTM)| |pe_ratio_lyr |市盈率(PE)| |pb_ratio |市净率(PB)| | ps_ratio| 市销率(PS, TTM)| |pcf_ratio| 市现率(PCF, 现金净流量TTM)| ##### **返回值** - 返回一个dataframe,索引默认是pandas的整数索引,返回的结果中总会包含code、day字段。 #### **注意** - 每次最多返回5000条数据,更多数据需要根据标的或者时间分多次获取 - 不要获取当天的估值数据,pe/市值等依赖收盘价的指标是盘后更新的。 ##### **示例** +``` + +from jqdata import * +# 传入单个标的 +df1 = get_valuation('000001.XSHE', end_date="2019-11-18", count=3, fields=['capitalization', 'market_cap']) +print(df1) + +# 传入多个标的 +df2 = get_valuation(['000001.XSHE', '000002.XSHE'], end_date="2019-11-18", count=3, fields=['capitalization', 'market_cap']) +print(df2) +``` + +### 财务数据列表 + +#### 市值数据 + +每天更新(总股本,流通股本会在早盘前预先填充 ,其他涉及收盘价的指标盘后更新) + +表名: valuation + +| 列名 | 列的含义 | 解释 | 公式 | +| --- | --- | --- | --- | +| code | 股票代码 | 带后缀.XSHE/.XSHG | | +| day | 日期 | 取数据的日期 | | +| capitalization | 总股本(万股) | 公司已发行的普通股股份总数(包含A股,B股和H股的总股本),当天盘前会根据最新已知的股本数据进行填充 | | +| circulating_cap | 流通股本(万股) | 公司已发行的境内上市流通、以人民币兑换的股份总数(A股市场的流通股本),当天盘前会根据最新已知的流通股本数据进行填充 | | +| market_cap | 总市值(亿元) | A股收盘价*已发行股票总股本(A股+B股+H股) | | +| circulating_market_cap | 流通市值(亿元) | 流通市值指在某特定时间内当时可交易的流通股股数乘以当时股价得出的流通股票总价值。 | A股市场的收盘价*A股市场的流通股数 | +| turnover_ratio | 换手率(%) | 指在一定时间内市场中股票转手买卖的频率,是反映股票流通性强弱的指标之一。 | 换手率=[指定交易日成交量(手)×100/截至该日股票的流通股本(股)]×100% | +| pe_ratio | 市盈率(PE, TTM) | 每股市价为每股收益的倍数,反映投资人对每元净利润所愿支付的价格,用来估计股票的投资报酬和风险 | 市盈率(PE,TTM)=(股票在指定交易日期的收盘价 * 截止当日公司总股本)/归属于母公司股东的净利润TTM。 | +| pe_ratio_lyr | 市盈率(PE) | 以上一年度每股盈利计算的静态市盈率. 股价/最近年度报告EPS | 市盈率(PE)=(股票在指定交易日期的收盘价 * 截至当日公司总股本)/归属母公司股东的净利润。 | +| pb_ratio | 市净率(PB) | 每股股价与每股净资产的比率 | 市净率=(股票在指定交易日期的收盘价 * 截至当日公司总股本)/(归属母公司股东的权益MRQ-其他权益工具)。 | +| ps_ratio | 市销率(PS, TTM) | 市销率为股票价格与每股销售收入之比,市销率越小,通常被认为投资价值越高。 | 市销率TTM=(股票在指定交易日期的收盘价 * 截至当日公司总股本)/营业总收入TTM | +| pcf_ratio | 市现率(PCF, 现金净流量TTM) | 每股市价为每股现金净流量的倍数 | 市现率=(股票在指定交易日期的收盘价 * 截至当日公司总股本)/现金及现金等价物净增加额TTM | + +#### 资产负债数据 + +按季度更新, 统计周期是一季度。可以使用get_fundamentals() 的statDate参数查询年度数据。 由于这个表是存量性质的, 查询年度数据是返回第四季度的数据。 + +表名: balance + +| 列名 | 列的含义 | 解释 | +| --- | --- | --- | +| code | 股票代码 | 带后缀.XSHE/.XSHG | +| pubDate | 日期 | 公司发布财报的日期 | +| statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | +| cash_equivalents | 货币资金(元) | 货币资金是指在企业生产经营过程中处于货币形态的那部分资金,按其形态和用途不同可分为包括库存现金、银行存款和其他货币资金。它是企业中最活跃的资金,流动性强,是企业的重要支付手段和流通手段,因而是流动资产的审查重点。货币资金:又称为货币资产,是指在企业生产经营过程中处于货币形态的资产。是指可以立即投入流通,用以购买商品或劳务或用以偿还债务的交换媒介物。 | +| settlement_provi | 结算备付金(元) | 结算备付金是指结算参与人根据规定,存放在其资金交收账户中用于证券交易及非交易结算的资金。资金交收账户即结算备付金账户。 | +| lend_capital | 拆出资金(元) | 企业(金融)拆借给境内、境外其他金融机构的款项。 | +| trading_assets | 交易性金融资产(元) | 交易性金融资产是指:企业为了近期内出售而持有的金融资产。通常情况下,以赚取差价为目的从二级市场购入的股票、债券和基金等,应分类为交易性金融资产,故长期股权投资不会被分类转入交易性金融资产及其直接指定为以公允价值计量且其变动计入当期损益的金融资产进行核算。 | +| bill_receivable | 应收票据(元) | 应收票据是指企业持有的还没有到期、尚未兑现的票据。应收票据是企业未来收取货款的权利,这种权利和将来应收取的货款金额以书面文件形式约定下来,因此它受到法律的保护,具有法律上的约束力。是一种债权凭证。根据我国现行法律的规定,商业汇票的期限不得超过6个月,因而我国的商业汇票是一种流动资产。在我国应收票据、应付票据通常是指“商业汇票”,包括“银行承兑汇票”和“商业承兑汇票”两种,是远期票据,付款期一般在1个月以上,6个月以内。其他的银行票据(支票、本票、汇票}等,都是作为货币资金来核算的,而不作为应收应付票据 | +| account_receivable | 应收账款(元) | 应收账款是指企业在正常的经营过程中因销售商品、产品、提供劳务等业务,应向购买单位收取的款项,包括应由购买单位或接受劳务单位负担的税金、代购买方垫付的各种运杂费等。 | +| advance_payment | 预付款项(元) | 预付款项,包括预付货款和预付工程款等,通常属于流动资产。预付账款与应收账款都属于公司的债权,但两者产生的原因不同,应收账款是公司应收的销货款,通常是用货币清偿的,而预付账款是预付给供货单位的购货款或预付给施工单位的工程价款和材料款,通常是用商品、劳务或完工工程来清偿的。 | +| insurance_receivables | 应收保费(元) | 保险公司按照合同约定应向投保人收取但尚未收到的保费收入。 | +| reinsurance_receivables | 应收分保账款(元) | 指公司开展分保业务而发生的各种应收款项。 | +| reinsurance_contract_reserves_receivable | 应收分保合同准备金(元) | 是用于核算企业(再保险分出人)从事再保险业务确认的应收分保未到期责任准备金,以及应向再保险接受人摊回的保险责任准备金。 | +| interest_receivable | 应收利息(元) | 应收利息是指:短期债券投资实际支付的价款中包含的已到付息期但尚未领取的债券利息。这部分应收利息不计入短期债券投资初始投资成本中。但实际支付的价款中包含尚未到期的债券利息,则计入短期债券投资初始投资成本中(不需要单独核算)。 | +| dividend_receivable | 应收股利(元) | 应收股利是指企业因股权投资而应收取的现金股利以及应收其他单位的利润,包括企业购入股票实际支付的款项中所包括的已宣告发放但尚未领取的现金股利和企业因对外投资应分得的现金股利或利润等,但不包括应收的股票股利。 | +| other_receivable | 其他应收款(元) | 其他应收款是企业应收款项的另一重要组成部分。是企业除应收票据、应收账款和预付账款以外的各种应收暂付款项。其他应收款通常包括暂付款,是指企业在商品交易业务以外发生的各种应收、暂付款项。 | +| bought_sellback_assets | 买入返售金融资产(元) | 指公司按返售协议约定先买入再按固定价格返售的证券等金融资产所融出的资金。 | +| inventories | 存货(元) | 是指企业在日常活动中持有的以备出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料和物料等。 | +| non_current_asset_in_one_year | 一年内到期的非流动资产(元) | 一年内到期的非流动资产反映企业将于一年内到期的非流动资产项目金额。包括一年内到期的持有至到期投资、长期待摊费用和一年内可收回的长期应收款。应根据有关科目的期末余额填列。执行企业会计制度的企业根据“一年内到期的长期债权投资”等科目填列。 | +| other_current_assets | 其他流动资产(元) | 其他流动资产,是指除货币资金、短期投资、应收票据、应收账款、其他应收款、存货等流动资产以外的流动资产 | +| total_current_assets | 流动资产合计(元) | 指在一年内或者超过一年的一个营业周期内变现或者耗用的资产,包括货币资金、短期投资、应收票据、应收账款、坏账准备、应收账款净额、预付账款、其他应收款、存货、待转其他业务支出、待摊费用、待处理流动资产净损失、一年内到期的长期债券投资、其他流动资产等项。 | +| loan_and_advance | 发放委托贷款及垫款(元) | 委托贷款是指由委托人提供合法来源的资金转入委托银行一般委存账户,委托银行根据委托人确定的贷款对象、用途、金额、期限、利率等代为发放、监督使用并协助收回的贷款业务。垫款是指银行在客户无力支付到期款项的情况下,被迫以自有资金代为支付的行为。 | +| hold_for_sale_assets | 可供出售金融资产(元) | 可供出售金融资产指初始确认时即被指定为可供出售的非衍生金融资产,以及下列各类资产之外的非衍生金融资产:(一)贷款和应收款项;(二)持有至到期投资;(三)交易性金融资产。 | +| hold_to_maturity_investments | 持有至到期投资(元) | 持有至到期投资指企业有明确意图并有能力持有至到期,到期日固定、回收金额固定或可确定的非衍生金融资产。以下非衍生金融资产不应划分为持有至到期投资:(一)初始确认时划分为交易性非衍生金融资产;(二)初始确认时被指定为可供出售非衍生金融资产;(三)符合贷款和应收款项定义的非衍生金融资产。 | +| longterm_receivable_account | 长期应收款(元) | 长期应收款是根据长期应收款的账户余额减去未确认融资收益还有一年内到期的长期应收款。 | +| longterm_equity_invest | 长期股权投资(元) | 长期股权投资是指企业持有的对其子公司、合营企业及联营企业的权益性投资以及企业持有的对被投资单位不具有控制、共同控制或重大影响,且在活跃市场中没有报价、公允价值不能可靠计量的权益性投资。 | +| investment_property | 投资性房地产(元) | 投资性房地产是指为赚取租金或资本增值,或两者兼有而持有的房地产。投资性房地产应当能够单独计量和出售。 | +| fixed_assets | 固定资产(元) | 固定资产是指企业为生产商品、提供劳务、出租或经营管理而持有的、使用寿命超过一个会计年度的有形资产。属于产品生产过程中用来改变或者影响劳动对象的劳动资料,是固定资本的实物形态。固定资产在生产过程中可以长期发挥作用,长期保持原有的实物形态,但其价值则随着企业生产经营活动而逐渐地转移到产品成本中去,并构成产品价值的一个组成部分。 | +| constru_in_process | 在建工程(元) | 在建工程是指企业固定资产的新建、改建、扩建,或技术改造、设备更新和大修理工程等尚未完工的工程支出。在建工程通常有”自营”和”出包”两种方式。自营在建工程指企业自行购买工程用料、自行施工并进行管理的工程;出包在建工程是指企业通过签订合同,由其它工程队或单位承包建造的工程。 | +| construction_materials | 工程物资(元) | 工程物资是指用于固定资产建造的建筑材料(如钢材、水泥、玻璃等),企业(民用航空运输)的高价周转件(例如飞机的引擎)等。买回来要再次加工建设的资产。在资产负债表中列示为非流动资产。 | +| fixed_assets_liquidation | 固定资产清理(元) | 固定资产清理是指企业因出售、报废和毁损等原因转入清理的固定资产价值及其在清理过程中所发生的清理费用和清理收入等。 | +| biological_assets | 生产性生物资产(元) | 生产性生物资产是指为产出农产品、提供劳务或出租等目的而持有的生物资产,包括经济林、薪炭林、产畜和役畜等。 | +| oil_gas_assets | 油气资产(元) | 重要资产,其价值在总资产中占有较大比重。油气资产是指油气开采企业所拥有或控制的井及相关设施和矿区权益。油气资产属于递耗资产。递耗资产是通过开掘、采伐、利用而逐渐耗竭,以致无法恢复或难以恢复、更新或按原样重置的自然资源,如矿藏、原始森林等。油气资产是油气生产企业的重要资产,其价值在总资产中占有较大比重。 | +| intangible_assets | 无形资产(元) | 无形资产是指企业拥有或者控制的没有实物形态的可辨认非货币性资产。资产满足下列条件之一的,符合无形资产定义中的可辨认性标准: 1、能够从企业中分离或者划分出来,并能够单独或者与相关合同、资产或负债一起,用于出售、转移、授予许可、租赁或者交换。 2、源自合同性权利或其他法定权利,无论这些权利是否可以从企业或其他权利和义务中转移或者分离。无形资产主要包括专利权、非专利技术、商标权、著作权、土地使用权、特许权等。商誉的存在无法与企业自身分离,不具有可辨认性,不属于本章所指无形资产。 | +| development_expenditure | 开发支出(元) | 开发支出项目是反映企业开发无形资产过程中能够资本化形成无形资产成本的支出部分。开发支出项目应当根据”研发支出”科目中所属的”资本化支出”明细科目期末余额填列。 | +| good_will | 商誉(元) | 商誉是指能在未来期间为企业经营带来超额利润的潜在经济价值,或一家企业预期的获利能力超过可辨认资产正常获利能力(如社会平均投资回报率)的资本化价值。商誉是企业整体价值的组成部分。在企业合并时,它是购买企业投资成本超过被并企业净资产公允价值的差额。 | +| long_deferred_expense | 长期待摊费用(元) | 长期待摊费用是指企业已经支出,但摊销期限在1年以上(不含1年)的各项费用,包括开办费、租入固定资产的改良支出及摊销期在1年以上的固定资产大修理支出、股票发行费用等。应由本期负担的借款利息、租金等,不得作为长期待摊费用。 | +| deferred_tax_assets | 递延所得税资产(元) | 指对于可抵扣暂时性差异,以未来期间很可能取得用来抵扣可抵扣暂时性差异的应纳税所得额为限确认的一项资产。而对于所有应纳税暂时性差异均应确认为一项递延所得税负债,但某些特殊情况除外。递延所得税资产和递延所得税负债是和暂时性差异相对应的,可抵减暂时性差异是将来可用来抵税的部分,是应该收回的资产,所以对应递延所得税资产递延所得税负债是由应纳税暂时性差异产生的,对于影响利润的暂时性差异,确认的递延所得税负债应该调整“所得税费用”。例如会计折旧小于税法折旧,导致资产的账面价值大于计税基础,如果产品已经对外销售了,就会影响利润,所以递延所得税负债应该调整当期的所得税费用。如果暂时性差异不影响利润,而是直接计入所有者权益的,则确认的递延所得税负债应该调整资本公积。例如可供出售金融资产是按照公允价值来计量的,公允价值产升高了,会计上调增了可供出售金融资产的账面价值,并确认的资本公积,因为不影响利润,所以确认的递延所得税负债不能调整所得税费用,而应该调整资本公积。 | +| other_non_current_assets | 其他非流动资产(元) | 贷款是指贷款人(我国的商业银行等金融机构)对借款人提供的并按约定的利率和期限还本付息的货币资金。贷款币可以是人民币,也可以是外币。 | +| total_non_current_assets | 非流动资产合计(元) | 公式:非流动资产合计=所有的非流动资产项目之和—一年内到期的非流动资产=固定资产—累计折旧—固定资产减值准备—一年内到期的非流动资产。 | +| total_assets | 资产总计(元) | 资产总计是指企业拥有或可控制的能以货币计量的经济资源,包括各种财产、债权和其他权利。企业的资产按其流动性划分为:流动资产、长期投资、固定资产、无形资产及递延资产、其他资产等,即为企业资产负债表的资产总计项。所谓流动性是指企业资产的变现能力和支付能力。该指标根据会计“资产负债表”中“资产总计”项的年末数填列。资产总计=流动资产+长期投资+固定资产+无形及递延资产+其他资产。 | +| shortterm_loan | 短期借款(元) | 短期借款企业用来维持正常的生产经营所需的资金或为抵偿某项债务而向银行或其他金融机构等外单位借入的、还款期限在一年以下或者一年的一个经营周期内的各种借款。 | +| borrowing_from_centralbank | 向中央银行借款(元) | 向中央银行借款的形式有两种,一种是直接借款,也称再贷款;另一种为间接借款,即所谓的再贴现。 | +| deposit_in_interbank | 吸收存款及同业存放(元) | 吸收存款是负债类科目,它核算企业(银行)吸收的除了同业存放款项以外的其他各种存款,即:收到的除金融机构以外的企业或者个人、组织的存款,包括单位存款(企业、事业单位、机关、社会团体等)、个人存款、信用卡存款、特种存款、转贷款资金和财政性存款等。同业存放,也称同业存款,全称是同业及其金融机构存入款项,是指因支付清算和业务合作等的需要,由其他金融机构存放于商业银行的款项。 | +| borrowing_capital | 拆入资金(元) | 拆入资金,是指信托投资公司向银行或其他金融机构借入的资金。拆入资金应按实际借入的金额入账。 | +| trading_liability | 交易性金融负债(元) | 交易性金融负债是指企业采用短期获利模式进行融资所形成的负债,比如短期借款、长期借款、应付债券。作为交易双方来说,甲方的金融债权就是乙方的金融负债,由于融资方需要支付利息,因比,就形成了金融负债。交易性金融负债是企业承担的交易性金融负债的公允价值。 | +| notes_payable | 应付票据(元) | 应付票据是指企业购买材料、商品和接受劳务供应等而开出、承兑的商业汇票,包括商业承兑汇票和银行承兑汇票。在我国应收票据、应付票据仅指“商业汇票”,包括“银行承兑汇票”和“商业承兑汇票”两种,属于远期票据,付款期一般在1个月以上,6个月以内。其他的银行票据(支票、本票、汇票)等,都是作为货币资金来核算的,而不作为应收应付票据。 | +| accounts_payable | 应付账款(元) | 应付账款是指因购买材料、商品或接受劳务供应等而发生的债务,这是买卖双方在购销活动中由于取得物资与支付贷款在时间上不一致而产生的负债。 | +| advance_peceipts | 预收款项(元) | 预收款项是在企业销售交易成立以前,预先收取的部分货款。 | +| sold_buyback_secu_proceeds | 卖出回购金融资产款(元) | 卖出回购金融资产款是用于核算企业(金融)按回购协议卖出票据、证券、贷款等金融资产所融入的资金。 | +| commission_payable | 应付手续费及佣金(元) | 是会计科目的一种,用以核算企业因购买材料、商品和接受劳务供应等经营活动应支付的款项。通常是指因购买材料、商品或接受劳务供应等而发生的债务,这是买卖双方在购销活动中由于取得物资与支付贷款在时间上不一致而产生的负债。 | +| salaries_payable | 应付职工薪酬(元) | 应付职工薪酬是指企业为获得职工提供的服务而给予各种形式的报酬以及其他相关支出。职工薪酬包括:职工工资、奖金、津贴和补贴;职工福利费;医疗保险费、养老保险费、失业保险费、工伤保险费和生育保险费等社会保险费;住房公积金;工会经费和职工教育经费;非货币性福利;因解除与职工的劳动关系给予的补偿;其他与获得职工提供的服务相关的支出。原“应付工资”和“应付福利费”取消,换成“应付职工薪酬”。 | +| taxs_payable | 应交税费(元) | 应交税费是指企业根据在一定时期内取得的营业收入、实现的利润等,按照现行税法规定,采用一定的计税方法计提的应交纳的各种税费。应交税费包括企业依法交纳的增值税、消费税、营业税、所得税、资源税、土地增值税、城市维护建设税、房产税、土地使用税、车船税、教育费附加、矿产资源补偿费等税费,以及在上缴国家之前,由企业代收代缴的个人所得税等。 | +| interest_payable | 应付利息(元) | 应付利息是指金融企业根据存款或债券金额及其存续期限和规定的利率,按期计提应支付给单位和个人的利息。应付利息应按已计但尚未支付的金额入账。应付利息包括分期付息到期还本的长期借款、企业债券等应支付的利息。应付利息与应计利息的区别:应付利息属于借款,应计利息属于企业存款。 | +| dividend_payable | 应付股利(元) | 应付股利是指企业根据年度利润分配方案,确定分配的股利。是企业经董事会或股东大会,或类似机构决议确定分配的现金股利或利润。企业分配的股票股利,不通过“应付股利”科目核算。确定时借记“未分配利润”帐户,贷记“应付股利”帐户;实际支付时借记“应付股利”帐户,贷记“银行存款”帐户。 | +| other_payable | 其他应付款(元) | 其他应付款是财务会计中的一个往来科目,通常情况下,该科目只核算企业应付其他单位或个人的零星款项,如应付经营租入固定资产和包装物的租金、存入保证金、应付统筹退休金等。 | +| reinsurance_payables | 应付分保账款(元) | 应付分保账款表示债务,这样一来,债权、债务关系更加一目了然。另外,财产保险公司应收分保账款是指本公司与其他保险公司之间开展分保业务发生的各种应收款项。 | +| insurance_contract_reserves | 保险合同准备金(元) | 险准备金是指保险人为保证其如约履行保险赔偿或给付义务,根据政府有关法律规定或业务特定需要,从保费收入或盈余中提取的与其所承担的保险责任相对应的一定数量的基金。 | +| proxy_secu_proceeds | 代理买卖证券款(元) | 代理买卖证券款是指公司接受客户委托,代理客户买卖股票、债券和基金等有价证券而收到的款项,包括公司代理客户认购新股的款项、代理客户领取的现金股利和债券利息,代客户向证券交易所支付的配股款等。 | +| receivings_from_vicariously_sold_securities | 代理承销证券款(元) | 代理承销证券款是指公司接受委托,采用承购包销方式或代销方式承销证券所形成的、应付证券发行人的承销资金。 | +| non_current_liability_in_one_year | 一年内到期的非流动负债(元) | 是反映企业各种非流动负债在一年之内到期的金额,包括一年内到期的长期借款、长期应付款和应付债券。本项目应根据上述账户分析计算后填列。计入(收录)流动负债中。 | +| other_current_liability | 其他流动负债(元) | 其他流动负债是指不能归属于短期借款,应付短期债券券,应付票据,应付帐款,应付所得税,其他应付款,预收账款这七款项目的流动负债。但以上各款流动负债,其金额未超过流动负债合计金额百分之五者,得并入其他流动负债内。 | +| total_current_liability | 流动负债合计(元) | 流动负债合计是指企业在一年内或超过一年的一个营业周期内需要偿还的债务,包括短期借款、应付帐款、其他应付款、应付工资、应付福利费、未交税金和未付利润、其他应付款、预提费用等。 | +| longterm_loan | 长期借款(元) | 长期借款是指企业从银行或其他金融机构借入的期限在一年以上(不含一年)的借款。我国股份制企业的长期借款主要是向金融机构借人的各项长期性借款,如从各专业银行、商业银行取得的贷款;除此之外,还包括向财务公司、投资公司等金融企业借人的款项。 | +| bonds_payable | 应付债券(元) | 应付债券是指企业为筹集资金而对外发行的期限在一年以上的长期借款性质的书面证明,约定在一定期限内还本付息的一种书面承诺。 | +| longterm_account_payable | 长期应付款(元) | 长期应付款是指企业除了长期借款和应付债券以外的长期负债,包括应付引进设备款、应付融资租入固定资产的租赁费等。 | +| specific_account_payable | 专项应付款(元) | 专项应付款是企业接受国家拨入的具有专门用途的款项所形成的不需要以资产或增加其他负债偿还的负债。专项应付款指企业接受国家拨入的具有专门用途的拨款,如新产品试制费拨款、中间试验费拨款和重要科学研究补助费拨款等科技三项拨款等。 | +| estimate_liability | 预计负债(元) | 预计负债是因或有事项可能产生的负债。根据或有事项准则的规定,与或有事项相关的义务同时符合以下三个条件的,企业应将其确认为负债:一是该义务是企业承担的现时义务;二是该义务的履行很可能导致经济利益流出企业,这里的“很可能”指发生的可能性为“大于50%,但小于或等于95%”;三是该义务的金额能够可靠地计量。 | +| deferred_tax_liability | 递延所得税负债(元) | 递延所得税负债是指根据应纳税暂时性差异计算的未来期间应付所得税的金额;递延所得税资产和递延所得税负债是和暂时性差异相对应的,可抵减暂时性差异是将来可用来抵税的部分,是应该收回的资产,所以对应递延所得税资产;递延所得税负债是由应纳税暂时性差异产生的,对于影响利润的暂时性差异,确认的递延所得税负债应该调整“所得税费用”。 | +| other_non_current_liability | 其他非流动负债(元) | 其他非流动负债项目是反映企业除长期借款、应付债券等项目以外的其他非流动负债。其他非流动负债项目应根据有关科目的期末余额填列。其他非流动负债项目应根据有关科目期末余额减去将于一年内(含一年)到期偿还数后的余额填列。非流动负债各项目中将于一年内(含一年)到期的非流动负债,应在”一年内到期的非流动负债”项目内单独反映。 | +| total_non_current_liability | 非流动负债合计(元) | 非流动负债合计指企业在偿还期在一年以上的债务,包括长期借款、应付债券和长期应付款。 | +| total_liability | 负债合计(元) | 负债合计是指企业所承担的能以,将以资产或劳务偿还的债务,偿还形式包括货币、资产或提供劳务。 | +| paidin_capital | 实收资本(或股本)(元) | 实收资本是指企业的投资者按照企业章程或合同、协议的约定,实际投入企业的资本。我国实行的是注册资本制,因而,在投资者足额缴纳资本之后,企业的实收资本应该等于企业的注册资本。“实收资本”科目用于核算企业实际收到的投资人投入的资本。 | +| capital_reserve_fund | 资本公积金(元) | 资本公积金是在公司的生产经营之外,由资本、资产本身及其他原因形成的股东权益收入。股份公司的资本公积金,主要来源于的股票发行的溢价收入、接受的赠与、资产增值、因合并而接受其他公司资产净额等。其中,股票发行溢价是上市公司最常见、是最主要的资本公积金来源。 | +| treasury_stock | 库存股(元) | 指股份有限公司已发行的股票,由于公司的重新回购或其他原因且不是为了注销的目的而由公司持有的股票。 | +| specific_reserves | 专项储备(元) | 专项储备用于核算高危行业企业按照规定提取的安全生产费以及维持简单再生产费用等具有类似性质的费用。 | +| surplus_reserve_fund | 盈余公积金(元) | 盈余公积是指企业按照规定从净利润中提取的各种积累资金。 | +| ordinary_risk_reserve_fund | 一般风险准备(元) | 指从事证券业务的金融企业按规定从 净利润中提取,用于弥补亏损的 风险准备。 | +| retained_profit | 未分配利润(元) | 未分配利润是企业未作分配的利润。它在以后年度可继续进行分配,在未进行分配之前,属于所有者权益的组成部分。 | +| foreign_currency_report_conv_diff | 外币报表折算差额(元) | 是指在编制合并财务报表时,把国外子公司或分支机构以所在国家货币编制的财务报表折算成以记账本位币表达的财务报表时,由于报表项目采用不同汇率折算而形成的汇兑损益。 | +| equities_parent_company_owners | 归属于母公司股东权益合计(元) | 母公司股东权益反映的是母公司所持股份部分的所有者权益数,所有者权益合计是反映的是所有的股东包括母公司与少数股东一起100%的股东所持股份的总体所有者权益合计数。即所有者权益合计=母公司股东权益合计母+少数股东权益合计。 | +| minority_interests | 少数股东权益(元) | 少数股东权益简称少数股权,是反映除母公司以外的其他投资者在子公司中的权益,表示其他投资者在子公司所有者权益中所拥有的份额。在控股合并形式下,子公司股东权益中未被母公司持有部分。在母公司拥有子公司股份不足100%,即只拥有子公司净资产的部分产权时,子公司股东权益的一部分属于母公司所有,即多数股权,其余部分仍属外界其他股东所有,由于后者在子公司全部股权中不足半数,对子公司没有控制能力,故被称为少数股权。 | +| total_owner_equities | 股东权益合计(元) | 指股本、资本公积、盈余公积、未分配利润的之和,代表了股东对企业的所有权,反映了股东在企业资产中享有的经济利益。 | +| total_sheet_owner_equities | 负债和股东权益合计 | 负债和股东权益总计是等于负债总额加上股东权益总额,也等于资产总额。 | + +#### 现金流数据 + +按季度更新, 统计周期是一季度。可以使用get_fundamentals() 的 statDate 参数查询年度数据。 + +表名: cash_flow + +| 列名 | 列的含义 | 解释 | +| --- | --- | --- | +| code | 股票代码 | 带后缀.XSHE/.XSHG | +| pubDate | 日期 | 公司发布财报日期 | +| statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | +| goods_sale_and_service_render_cash | 销售商品、提供劳务收到的现金(元) | 反映企业本期销售商品、提供劳务收到的现金,以及前期销售商品、提供劳务本期收到的现金(包括销售收入和应向购买者收取的增值税销项税额)和本期预收的款项,减去本期销售本期退回的商品和前期销售本期退回的商品支付的现金。企业销售材料和代购代销业务收到的现金,也在本项目反映。 | +| net_deposit_increase | 客户存款和同业存放款项净增加额(元) | 客户存款和同业存款净增加额=客户存款和同业存款期末余额-客户存款和同业存款期初余额。 | +| net_borrowing_from_central_bank | 向中央银行借款净增加额(元) | 向中央银行借款净增加额=向中央银行借款期末余额-向中央银行借款期初余额。 | +| net_borrowing_from_finance_co | 向其他金融机构拆入资金净增加额(元) | 向其他金融机构拆入资金净增加额=向其他金融机构拆入资金期末余额-向其他金融机构拆入资金期初余额。 | +| net_original_insurance_cash | 收到原保险合同保费取得的现金(元) | 收到原保险合同保费取得的现金 | +| net_cash_received_from_reinsurance_business | 收到再保险业务现金净额(元) | 再保险是指一个保险人,分出一定的保险金额给另一个保险人。 | +| net_insurer_deposit_investment | 保户储金及投资款净增加额(元) | 保户储金,是指保险公司以储金利息作为保费的保险业务,收到保户缴存的储金。投资款是收到股东的款项。 | +| net_deal_trading_assets | 处置交易性金融资产净增加额(元) | 交易性金融资产是指企业为了近期内出售而持有的债券投资、股票投资和基金投资。 | +| interest_and_commission_cashin | 收取利息、手续费及佣金的现金(元) | 收取利息、手续费及佣金的现金 | +| net_increase_in_placements | 拆入资金净增加额(元) | 拆入资金净增加额=拆入资金期末余额-拆入资金期初余额。 | +| net_buyback | 回购业务资金净增加额(元) | 回购交易是质押贷款的一种方式,通常用在政府债券上。债券经纪人向投资者临时出售一定的债券,同时签约在一定的时间内以稍高价格买回来。债券经纪人从中取得资金再用来投资,而投资者从价格差中得利。 | +| tax_levy_refund | 收到的税费返还(元) | 反映企业收到返还的增值税、营业税、所得税、消费税、关税和教育费附加返还款等各种税费。 | +| other_cashin_related_operate | 收到其他与经营活动有关的现金(元) | 反映企业收到的罚款收入、经营租赁收到的租金等其他与经营活动有关的现金流入,金额较大的应当单独列示。 | +| subtotal_operate_cash_inflow | 经营活动现金流入小计(元) | 销售商品、提供劳务+收到的现金收到的税费返还+收到其他与经营活动有关的现金。 | +| goods_and_services_cash_paid | 购买商品、接受劳务支付的现金(元) | 反映企业本期购买商品、接受劳务实际支付的现金(包括增值税进项税额),以及本期支付前期购买商品、接受劳务的未付款项和本期预付款项,减去本期发生的购货退回收到的现金。 | +| net_loan_and_advance_increase | 客户贷款及垫款净增加额(元) | 客户贷款是科目核算信托项目管理运用、处分信托财产而持有的各项贷款。垫款是指银行在客户无力支付到期款项的情况下,被迫以自有资金代为支付的行为。 | +| net_deposit_in_cb_and_ib | 存放中央银行和同业款项净增加额(元) | 存放中央银行款项是指各金融企业在中央银行开户而存入的用于支付清算、调拨款项、提取及缴存现金、往来资金结算以及按吸收存款的一定比例缴存于中央银行的款项和其他需要缴存的款项。存放同业是指商业银行存放在其他银行和非银行金融机构的存款。 | +| original_compensation_paid | 支付原保险合同赔付款项的现金(元) | 赔付支出主要指核算企业(保险)支付的原保险合同赔付款项和再保险合同赔付款项。原保险即是区别于再保险的名词。 | +| handling_charges_and_commission | 支付利息、手续费及佣金的现金(元) | 一般是指涉及到贷款利息,银行扣缴的手续费及佣金等现金的流出,用在利息指出,或者银行手续费支出,佣金支出等业务上。 | +| policy_dividend_cash_paid | 支付保单红利的现金(元) | 保单红利支出是根据原保险合同的约定,按照分红保险产品的红利分配方法及有关精算结果而估算,支付给保单持有人的红利。 | +| staff_behalf_paid | 支付给职工以及为职工支付的现金(元) | 这个项目反映企业实际支付给职工的现金以及为职工支付的现金,包括本期实际支付给职工的工资、奖金、各种津贴和补贴等,以及为职工支付的其他费用。不包括支付的离退休人员的各项费用和支付给在建工程人员的工资等。 | +| tax_payments | 支付的各项税费(元) | 反映企业本期发生并支付的、本期支付以前各期发生的以及预交的教育费附加、矿产资源补偿费、印花税、房产税、土地增值税、车船使用税、预交的营业税等税费,计入固定资产价值、实际支付的耕地占用税、本期退回的增值税、所得税等除外。 | +| other_operate_cash_paid | 支付其他与经营活动有关的现金(元) | 反映企业支付的罚款支出、支付的差旅费、业务招待费、保险费、经营租赁支付的现金等其他与经营活动有关的现金流出,金额较大的应当单独列示。 | +| subtotal_operate_cash_outflow | 经营活动现金流出小计(元) | 购买商品、接受劳务支付的现金+支付给职工以及为职工支付的现金+支付的各项税费+支付其他与经营活动有关的现金。 | +| net_operate_cash_flow | 经营活动产生的现金流量净额(元) | 公式: 经营活动产生的现金流量净额 | +| invest_withdrawal_cash | 收回投资收到的现金(元) | 反映企业出售、转让或到期收回除现金等价物以外的交易性金融资产、长期股权投资而收到的现金,以及收回长期债权投资本金而收到的现金,但长期债权投资收回的利息除外。 | +| invest_proceeds | 取得投资收益收到的现金(元) | 反映企业因股权性投资而分得的现金股利,从子公司、联营企业或合营企业分回利润而收到的现金,以及因债权性投资而取得的现金利息收入,但股票股利除外。 | +| fix_intan_other_asset_dispo_cash | 处置固定资产、无形资产和其他长期资产收回的现金净额(元) | 反映企业出售、报废固定资产、无形资产和其他长期资产所取得的现金(包括因资产毁损而收到的保险赔偿收入),减去为处置这些资产而支付的有关费用后的净额,但现金净额为负数的除外。 | +| net_cash_deal_subcompany | 处置子公司及其他营业单位收到的现金净额(元) | 反映企业处置子公司及其他营业单位所取得的现金减去相关处置费用后的净额。 | +| other_cash_from_invest_act | 收到其他与投资活动有关的现金(元) | 反映企业除上述各项目外收到或支付的其他与投资活动有关的现金流入或流出,金额较大的应当单独列示。 | +| subtotal_invest_cash_inflow | 投资活动现金流入小计(元) | 取得投资收益收到的现金+处置固定资产、无形资产和其他长期资产收回的现金净额+处置子公司及其他营业单位收到的现金净额+收到其他与投资活动有关的现金。 | +| fix_intan_other_asset_acqui_cash | 购建固定资产、无形资产和其他长期资产支付的现金(元) | 反映企业购买、建造固定资产、取得无形资产和其他长期资产所支付的现金及增值税款、支付的应由在建工程和无形资产负担的职工薪酬现金支出,但为购建固定资产而发生的借款利息资本化部分、融资租入固定资产所支付的租赁费除外。 | +| invest_cash_paid | 投资支付的现金(元) | 反映企业取得的除现金等价物以外的权益性投资和债权性投资所支付的现金以及支付的佣金、手续费等附加费用。 | +| impawned_loan_net_increase | 质押贷款净增加额(元) | 质押贷款是指贷款人按《担保法》规定的质押方式以借款人或第三人的动产或权利为质押物发放的贷款。 | +| net_cash_from_sub_company | 取得子公司及其他营业单位支付的现金净额(元) | 反映企业购买子公司及其他营业单位购买出价中以现金支付的部分,减去子公司或其他营业单位持有的现金和现金等价物后的净额。 | +| other_cash_to_invest_act | 支付其他与投资活动有关的现金(元) | 现金流量表科目。 | +| subtotal_invest_cash_outflow | 投资活动现金流出小计(元) | 购建固定资产、无形资产和其他长期资产支付的现金+投资支付的现金+取得子公司及其他营业单位支付的现金净额+支付其他与投资活动有关的现金。 | +| net_invest_cash_flow | 投资活动产生的现金流量净额(元) | 现金流量表科目。 | +| cash_from_invest | 吸收投资收到的现金(元) | 反映企业以发行股票、债券等方式筹集资金实际收到的款项,减去直接支付给金融企业的佣金、手续费、宣传费、咨询费、印刷费等发行费用后的净额。 | +| cash_from_mino_s_invest_sub | 子公司吸收少数股东投资收到的现金(元) | 《企业会计准则第33 号——合并财务报表》合并现金流量表科目。具体核算范围和方法参见上市公司定期报告。 | +| cash_from_borrowing | 取得借款收到的现金(元) | 反映企业举借各种短期、长期借款而收到的现金。 | +| cash_from_bonds_issue | 发行债券收到的现金(元) | 反映商业银行本期发行债券收到的本金。 | +| other_finance_act_cash | 收到其他与筹资活动有关的现金(元) | 反映企业除上述项目外,收到或支付的其他与筹资活动有关的现金流入或流出,包括以发行股票、债券等方式筹集资金而由企业直接支付的审计和咨询等费用、为购建固定资产而发生的借款利息资本化部分、融资租入固定资产所支付的租赁费、以分期付款方式购建固定资产以后各期支付的现金等。 | +| subtotal_finance_cash_inflow | 筹资活动现金流入小计(元) | 吸收投资收到的现金+取得借款收到的现金+收到其他与筹资活动有关的现金+发行债券收到的现金。 | +| borrowing_repayment | 偿还债务支付的现金(元) | 反映企业以现金偿还债务的本金。 | +| dividend_interest_payment | 分配股利、利润或偿付利息支付的现金(元) | 反映企业实际支付的现金股利、支付给其他投资单位的利润或用现金支付的借款利息、债券利息。 | +| proceeds_from_sub_to_mino_s | 子公司支付给少数股东的股利、利润(元) | 一般企业现金流量表科目。 | +| other_finance_act_payment | 支付其他与筹资活动有关的现金(元) | 包括:筹资费用所支付的现金,融资租赁所支付的现金,减少注册资本所支付的现金(收购本公司股票、退还联营单位的联营投资等)企业以分期付款方式构建固定资产除首期付款支付的现金以外的其他各期所支付的现金。 | +| subtotal_finance_cash_outflow | 筹资活动现金流出小计(元) | 现金流量表科目。 | +| net_finance_cash_flow | 筹资活动产生的现金流量净额(元) | 现金流量表科目。 | +| exchange_rate_change_effect | 汇率变动对现金及现金等价物的影响 | 指企业外币现金流量及境外子公司的现金流量折算成记账本位币时,所采用的是现金流量发生日的汇率或即期汇率的近似汇率。 | +| cash_equivalent_increase | 现金及现金等价物净增加额 | 中外币现金净增加额按期末汇率折算的金额。 | +| cash_equivalents_at_beginning | 期初现金及现金等价物余额(元) | 现金流量表科目。 | +| cash_and_equivalents_at_end | 期末现金及现金等价物余额(元) | 现金流量表科目。 | + +#### 利润数据 + +按季度更新, 统计周期是一季度。可以使用get_fundamentals() 的statDate参数查询年度数据。 + +表名: income + +| 列名 | 列的含义 | 解释 | +| --- | --- | --- | +| code | 股票代码 | 带后缀.XSHE/.XSHG | +| pubDate | 日期 | 公司发布财报日期 | +| statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | +| total_operating_revenue | 营业总收入(元) | 具体核算范围和方法参见上市公司定期报告 | +| operating_revenue | 营业收入(元) | 具体核算范围和方法参见上市公司定期报告 | +| interest_income | 利息收入(元) | 利息收入是指纳税人购买各种债券等有价证券的利息,外单位欠款付给的利息以及其他利息收入。包括:购买各种债券等有价证券的利息,如购买国库券,重点企业建设债券、国家保值公债以及政府部门和企业发放的各类有价证券;企业各项存款所取得的利息外单位欠本企业款而取得的利息;其他利息收入等。 | +| premiums_earned | 已赚保费(元) | 已赚保费是指保险起期已经预先缴付的保险费,过去的保险期间的保费就成为已赚的保费。 | +| commission_income | 手续费及佣金收入(元) | 手续费及佣金收入是指公司为客户办理各种业务收取的手续费及佣金收入,包括办理咨询业务、担保业务、代保管等代理业务以及办理投资业务等取得的手续费及佣金,如业务代办手续费收入、咨询服务收入、担保收入、资产管理收入、代保管收入,代理买卖证券、代理承销证券、代理兑付证券、代理保管证券等代理业务以及其他相关服务实现的手续费及佣金收入等。 | +| total_operating_cost | 营业总成本(元) | 营业总成本=主营业务成本+其他业务成本+利息支出+手续费及佣金支出+退保金+赔付支出净额+提取保险合同准备金净额+保单红利支出+分保费用+营业税金及附加+销售费用+管理费用+财务费用+资产减值损失+其他 | +| operating_cost | 营业成本(元) | 营业成本,也称运营成本。是指企业所销售商品或者提供劳务的成本。营业成本应当与所销售商品或者所提供劳务而取得的收入进行配比。 | +| interest_expense | 利息支出(元) | 利息支出是指临时借款的利息支出。在以收付实现制作为记帐基础的前提条件下,所谓支出应以实际支付为标准,即资金流出,标志着现金、银行存款的减少。就利息支出而言、给个人帐户计息,其资金并没有流出,现金、银行存款并没有减少,因此,给个人计息不应作为利息支出列支。 | +| commission_expense | 手续费及佣金支出(元) | 手续费及佣金支出,本科目主要核算企业(金融)发生的与其经营活动相关的各项手续费、佣金等支出。 | +| refunded_premiums | 退保金(元) | 退保金是指公司经营的长期人身保险业务中,投保人办理退保时,按保险条款规定支付给投保人的金额。 | +| net_pay_insurance_claims | 赔付支出净额(元) | 赔付支出主要指核算企业(保险)支付的原保险合同赔付款项和再保险合同赔付款项。企业(保险)可以单独设置“赔款支出”、“满期给付”、“年金给付”、“死伤医疗给付”、“分保赔付支出”等科目。可按保险合同和险种进行明细核算。 | +| withdraw_insurance_contract_reserve | 提取保险合同准备金净额(元) | 保险准备金是指保险人为保证其如约履行保险赔偿或给付义务,根据政府有关法律规定或业务特定需要,从保费收入或盈余中提取的与其所承担的保险责任相对应的一定数量的基金。 | +| policy_dividend_payout | 保单红利支出(元) | 保单红利支出是根据原保险合同的约定,按照分红保险产品的红利分配方法及有关精算结果而估算,支付给保单持有人的红利。 | +| reinsurance_cost | 分保费用(元) | 分保费用,是办理初保业务的保险公司向其他保险公司分保保险业务,在向对方支付分保费的同时,向对方收取的一定费用,用以弥补初保人的费用支出。 | +| operating_tax_surcharges | 营业税金及附加(元) | 反映企业经营主要业务应负担的营业税、消费税、城市维护建设税、资源税和教育费附加等。填报此项指标时应注意,实行新税制后,会计上规定应交增值税不再计入“主营业务税金及附加”项,无论是一般纳税企业还是小规模纳税企业均应在“应交增值税明细表”中单独反映。根据企业会计“利润表”中对应指标的本年累计数填列。 | +| sale_expense | 销售费用(元) | 销售费用是指企业在销售产品、自制半成品和提供劳务等过程中发生的各项费用。包括由企业负担的包装费、运输费、广告费、装卸费、保险费、委托代销手续费、展览费、租赁费(不含融资租赁费)和销售服务费、销售部门人员工资、职工福利费、差旅费、折旧费、修理费、物料消耗、低值易耗品摊销以及其他经费等。与销售有关的差旅费应计入销售费用。 | +| administration_expense | 管理费用(元) | 管理费用是指 企业行政管理部门为组织和管理生产经营活动而发生的各项费用。管理费用属于期间费用,在发生的当期就计入当期的损失或是利益。 | +| financial_expense | 财务费用(元) | 财务费用指企业在生产经营过程中为筹集资金而发生的筹资费用。包括企业生产经营期间发生的利息支出(减利息收入)、汇兑损益(有的企业如商品流通企业、保险企业进行单独核算,不包括在财务费用)、金融机构手续费,企业发生的现金折扣或收到的现金折扣等。但在企业筹建期间发生的利息支出,应计入开办费;为购建或生产满足资本化条件的资产发生的应予以资本化的借款费用,在“在建工程”、“制造费用”等账户核算。 | +| asset_impairment_loss | 资产减值损失(元) | 资产减值损失是指因资产的账面价值高于其可收回金额而造成的损失。 新会计准则规定资产减值范围主要是固定资产、无形资产以及除特别规定外的其他资产减值的处理。《资产减值》准则改变了固定资产、无形资产等的减值准备计提后可以转回的做法,资产减值损失一经确认,在以后会期间不得转回,消除了一些企业通过计提秘密准备来调节利润的可能,限制了利润的人为波动。资产减值损失在会计核算中属于损益类科目。 | +| fair_value_variable_income | 公允价值变动收益(元) | “公允价值变动收益” 这个科目,是“以公允价值计量且其变动计入当期损益的交易性金融资产”的一个科目。在资产负债表日,“交易性金融资产”的公允价值高于其账面价值的差额,应借记“交易性金融资产-公允价值变动”,贷记“公允价值变动损益”,公允价值低于其账面价值的差额,则做相反的分录。 | +| investment_income | 投资收益(元) | 投资收益是对外投资所取得的利润、股利和债券利息等收入减去投资损失后的净收益。严格地讲,所谓投资收益是指以项目为边界的货币收入等。 | +| invest_income_associates | 对联营企业和合营企业的投资收益(元) | 持有的对联营企业及合营企业的投资,按照《企业会计准则第2号——长期股权投资》的规定,应当采用权益法核算,在按持股比例等计算确认应享有或应分担被投资单位的净损益时,应当考虑以下因素:投资企业与联营企业及合营企业之间发生的内部交易损益按照持股比例计算归属于投资企业的部分,应当予以抵销,在此基础上确认投资损益。 投资企业与被投资单位发生的内部交易损失,按照《企业会计准则第8号———资产减值》等规定属于资产减值损失的,应当全额确认。 投资企业对于纳入其合并范围的子公司与其联营企业及合营企业之间发生的内部交易损益,也应当按照上述原则进行抵销,在此基础上确认投资损益。 投资企业对于首次执行日之前已经持有的对联营企业及合营企业的长期股权投资,如存在与该投资相关的股权投资借方差额,还应扣除按原剩余期限直线摊销的股权投资借方差额,确认投资损益。 投资企业在被投资单位宣告发放现金股利或利润时,按照规定计算应分得的部分确认应收股利,同时冲减长期股权投资的账面价值。 | +| exchange_income | 汇兑收益(元) | 汇兑收益,是指用记账本位币,按照不同的汇率报告相同数量的外币而产生的差额。简单地说,就是公司的外币货币性项目和非货币性项目因汇率变动,在折算成本币时造成损益。而这部分汇兑差额作为财务费用,计入当期损益,从而影响公司利润。 | +| operating_profit | 营业利润(元) | 营业利润是企业最基本经营活动的成果,也是企业一定时期获得利润中最主要、最稳定的来源。2006年财政部颁布的新企业会计准则-30号财务报表列报中已对营业利润进行了调整,将投资收益调入营业利润,同时取消了主营业务利润和其他业务利润的提法,补贴收入被并入营业外收入,营业利润减营业外收支调整即得到利润总额。 | +| non_operating_revenue | 营业外收入(元) | 营业外收入是指企业确认与企业生产经营活动没有直接关系的各种收入。 | +| non_operating_expense | 营业外支出(元) | 营业外支出是企业发生的与其日常活动无直接关系的各项损失,主要包括非流动资产处置损失、公益性捐赠支出、盘亏损失、非常损失、罚款支出等。 | +| disposal_loss_non_current_liability | 非流动资产处置净损失(元) | “非流动资产处置损失”属于损益类的科目,在编制利润表时这些科目如果有本期发生额,要填在利润表中。“非流动资产处置损失”是营业外支出的明细科目,在损益表中计入“营业外支出”,“营业外支出”下方会单独列示“非流动资产处置损失”,但是包括在“营业外支出”项目中。 | +| total_profit | 利润总额(元) | 利润总额指企业在生产经营过程中各种收入扣除各种耗费后的盈余,反映企业在报告期内实现的盈亏总额。 | +| income_tax_expense | 所得税费用(元) | 所得税费用是指企业经营利润应交纳的所得税。“所得税费用”,核算企业负担的所得税,是损益类科目;这一般不等于当期应交所得税,因为可能存在“暂时性差异”。如果只有永久性差异,则等于当期应交所得税。 | +| net_profit | 净利润(元) | 净利润(收益)是指在利润总额中按规定交纳了所得税后公司的利润留成,一般也称为税后利润或净利润。净利润的计算公式为:净利润=利润总额-所得税费用.净利润是一个企业经营的最终成果,净利润多,企业的经营效益就好;净利润少,企业的经营效益就差,它是衡量一个企业经营效益的主要指标。 | +| np_parent_company_owners | 归属于母公司股东的净利润(元) | 准确来讲应称之为“归属于上市公司股东的净利润”,这是因为净利润都归属于股东,只是在合并报表中的净利润有一部分是归属于子公司的其它股东的,这些子公司的其它股东也依法按比例享有子公司的净利润。 | +| minority_profit | 少数股东损益(元) | 少数股东损益是一个流量概念,是指公司合并报表的子公司其它非控股股东享有的损益,需要在利润表中予以扣除。利润表的“净利润”项下可以分“归属于母公司所有者的净利润”和“少数股东损益”。其对应的存量概念是“少数股东权益”。 | +| basic_eps | 基本每股收益(元) | 理论算法:归属于普通股股东的当期净利润/(当期实际发行在外的普通股加权平均数=∑(发行在外普通股股数×发行在外月份数)/12) | +| diluted_eps | 稀释每股收益(元) | 理论算法:归属于普通股股东的当期净利润(扣除当期已确认为费用的稀释性潜在普通股的利息、稀释性潜在普通股转换时将产生的收益或费用、相关所得税的影响)/假设稀释性潜在普通股于当期期初(或发行日)已经全部转换为普通股,于此计算的普通股股数的加权平均数。 | +| other_composite_income | 其他综合收益(元) | 其他综合收益是指企业根据企业会计准则规定未在损益中确认的各项利得和损失扣除所得税影响后的净额。企业在计算利润表中的其他综合收益时,应当扣除所得税影响;在计算合并利润表中的其他综合收益时,除了扣除所得税影响以外,还需要分别计算归属于母公司所有者的其他综合收益和归属于少数股东的其他综合收益。 | +| total_composite_income | 综合收益总额(元) | 综合收益总额项目,反映企业净利润与其他综合收益的合计金额。综合收益,包括其他综合收益和综合收益总额。其中,其他综合收益反映企业根据企业会计准则规定未在损益中确认的各项利得和损失扣除所得税影响后的净额;综合收益总额是企业净利润与其他综合收益的合计金额。 | +| ci_parent_company_owners | 归属于母公司所有者的综合收益总额(元) | 综合收益是指除所有者的出资额和各种为第三方或客户代收的款项以外的各种收入。根据美国财务会计准则委员会(FASB)1980年在第3号财务会计概念公告(SFAC3)(企业财务报表的要素)(后为1985年发布的SFAC6所取代)的解释,综合收益是指“一个主体在某一期间与非业主方面进行交易或发生其他事项和情况所引起的权益(净资产)变动。它包括这一期间内除业主投资和派给业主款外,一切权益上的变动。” | +| ci_minority_owners | 归属于少数股东的综合收益总额(元) | 综合收益是指除所有者的出资额和各种为第三方或客户代收的款项以外的各种收入。根据美国财务会计准则委员会(FASB)1980年在第3号财务会计概念公告(SFAC3)(企业财务报表的要素)(后为1985年发布的SFAC6所取代)的解释,综合收益是指“一个主体在某一期间与非业主方面进行交易或发生其他事项和情况所引起的权益(净资产)变动。它包括这一期间内除业主投资和派给业主款外,一切权益上的变动。” | + +#### 财务指标数据 + +按季度更新, 统计周期是一季度。可以使用get_fundamentals() 的statDate参数查询年度数据。 + +表名: indicator + +| 列名 | 列的含义 | 解释 | +| --- | --- | --- | +| code | 股票代码 | 带后缀.XSHE/.XSHG | +| pubDate | 日期 | 公司发布财报日期 | +| statDate | 日期 | 财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30 | +| eps | 每股收益EPS(元) | 每股收益(摊薄)=净利润/期末股本;分子从单季利润表取值,分母取季度末报告期股本值;净利润指归属于母公司股东的净利润(元) | +| adjusted_profit | 扣除非经常损益后的净利润(元) | 非经常性损益这一概念是证监会在1999年首次提出的,当时将其定义为:公司正常经营损益之外的一次性或偶发性损益。《问答第1号》则指出:非经常性损益是公司发生的与经营业务无直接关系的收支;以及虽与经营业务相关,但由于其性质、金额或发生频率等方面的原因,影响了真实公允地反映公司正常盈利能力的各项收入。 | +| operating_profit | 经营活动净收益(元) | 营业总收入-营业总成本 | +| value_change_profit | 价值变动净收益(元) | 公允价值变动净收益+投资净收益+汇兑净收益 | +| roe | 净资产收益率ROE(%) | 归属于母公司股东的净利润*2/(期初归属于母公司股东的净资产+期末归属于母公司股东的净资产) | +| inc_return | 净资产收益率(扣除非经常损益)(%) | 扣除非经常损益后的净利润(不含少数股东损益)*2/(期初归属于母公司股东的净资产+期末归属于母公司股东的净资产) | +| roa | 总资产净利率ROA(%) | 净利润*2/(期初总资产+期末总资产) | +| net_profit_margin | 销售净利率(%) | 净利润/营业收入 | +| gross_profit_margin | 销售毛利率(%) | 毛利/营业收入 | +| expense_to_total_revenue | 营业总成本/营业总收入(%) | 营业总成本/营业总收入(%) | +| operation_profit_to_total_revenue | 营业利润/营业总收入(%) | 营业利润/营业总收入(%) | +| net_profit_to_total_revenue | 净利润/营业总收入(%) | 净利润/营业总收入(%) | +| operating_expense_to_total_revenue | 营业费用/营业总收入(%) | 营业费用/营业总收入(%) | +| ga_expense_to_total_revenue | 管理费用/营业总收入(%) | 管理费用/营业总收入(%) | +| financing_expense_to_total_revenue | 财务费用/营业总收入(%) | 财务费用/营业总收入(%) | +| operating_profit_to_profit | 经营活动净收益/利润总额(%) | 经营活动净收益/利润总额(%) | +| invesment_profit_to_profit | 价值变动净收益/利润总额(%) | 价值变动净收益/利润总额(%) | +| adjusted_profit_to_profit | 扣除非经常损益后的净利润/净利润(%) | 扣除非经常损益后的净利润/净利润(%) | +| goods_sale_and_service_to_revenue | 销售商品提供劳务收到的现金/营业收入(%) | 销售商品提供劳务收到的现金/营业收入(%) | +| ocf_to_revenue | 经营活动产生的现金流量净额/营业收入(%) | 经营活动产生的现金流量净额/营业收入(%) | +| ocf_to_operating_profit | 经营活动产生的现金流量净额/经营活动净收益(%) | 经营活动产生的现金流量净额/经营活动净收益(%) | +| inc_total_revenue_year_on_year | 营业总收入同比增长率(%) | 营业总收入同比增长率是企业在一定期间内取得的营业总收入与其上年同期营业总收入的增长的百分比,以反映企业在此期间内营业总收入的增长或下降等情况。 | +| inc_total_revenue_annual | 营业总收入环比增长率(%) | 营业收入是指企业在从事销售商品,提供劳务和让渡资产使用权等日常经营业务过程中所形成的经济利益的总流入。环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | +| inc_revenue_year_on_year | 营业收入同比增长率(%) | 营业收入,是指公司在从事销售商品、提供劳务和让渡资产使用权等日常经营业务过程中所形成的经济利益的总流入,而营业收入同比增长率,则是检验上市公司去年一年挣钱能力是否提高的标准,营业收入同比增长,说明公司在上一年度挣钱的能力加强了,营业收入同比下降,则说明公司的挣钱能力稍逊于往年。 | +| inc_revenue_annual | 营业收入环比增长率(%) | 环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | +| inc_operation_profit_year_on_year | 营业利润同比增长率(%) | 同比增长率就是指公司当年期的营业利润和上月同期、上年同期的营业利润比较。(当期的营业利润-上月(上年)当期的营业利润)/上月(上年)当期的营业利润绝对值=利润同比增长率。 | +| inc_operation_profit_annual | 营业利润环比增长率(%) | 环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | +| inc_net_profit_year_on_year | 净利润同比增长率(%) | (当期的净利润-上月(上年)当期的净利润)/上月(上年)当期的净利润绝对值=净利润同比增长率。 | +| inc_net_profit_annual | 净利润环比增长率(%) | 环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | +| inc_net_profit_to_shareholders_year_on_year | 归属母公司股东的净利润同比增长率(%) | 归属于母公司股东净利润是指全部归属于母公司股东的净利润,包括母公司实现的净利润和下属子公司实现的净利润;同比增长率,一般是指和去年同期相比较的增长率。同比增长 和上一时期、上一年度或历史相比的增长(幅度)。 | +| inc_net_profit_to_shareholders_annual | 归属母公司股东的净利润环比增长率(%) | 环比增长率=(本期的某个指标的值-上一期这个指标的值)/上一期这个指标的值*100%。 | + +## 获取报告期财务数据 + +报告期财务数据是上市公司定期公告中按照报告期统计的财务数据,使用run_query()方法进行查询,各类型报表的使用方法如下。 + 报告期的数据单位为元 + +### 审计意见(新上线数据) + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_AUDIT_OPINION).filter(finance.STK_AUDIT_OPINION.code==code).limit(n)) +``` + +获取上市公司定期报告及审计报告中出具的审计意见 + +**参数:** + +- **query(finance.STK_AUDIT_OPINION)**:表示从finance.STK_AUDIT_OPINION这张表中查询上市公司审计意见的所有字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- 表结构和字段信息如下: + +| 字段 | 名称 | 类型 | 注释 | +| --- | --- | --- | --- | +| pub_date | 公告日期 | DATE | | +| end_date | 报告日期 | DATE | | +| report_type | 审计报告类型 | TINYINT(4) | 0(财务报表审计报告), 1(内部控制审计报告) | +| accounting_firm | 会计师事务所 | VARCHAR(100) | | +| accountant | 会计师 | VARCHAR(100) | | +| opinion_type_id | 审计意见类型id | INTEGER(11) | | +| opinion_type | 审计意见类型 | VARCHAR(20) | | + +**审计意见类型编码** + +| 审计意见类型编码 | 审计意见类型 | +| --- | --- | +| 1 | 无保留 | +| 2 | 无保留带解释性说明 | +| 3 | 保留意见 | +| 4 | 拒绝/无法表示意见 | +| 5 | 否定意见 | +| 6 | 未经审计 | +| 7 | 保留带解释性说明 | +| 10 | 经审计(不确定具体意见类型) | +| 11 | 无保留带持续经营重大不确定性 | + +- **filter(finance.STK_AUDIT_OPINION.code==code)**:指定筛选条件,通过finance.STK_AUDIT_OPINION.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_AUDIT_OPINION.pub_date>='2015-01-01',表示公告日期在2015年1月1日之后发布的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2015年之后公布的审计意见信息,限定返回条数为10条 +from jqdata import finance +q=query(finance.STK_AUDIT_OPINION).filter(finance.STK_AUDIT_OPINION.code=='600519.XSHG',finance.STK_AUDIT_OPINION.pub_date>='2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id code pub_date end_date report_type accounting_firm \ +0 91458 600519.XSHG 2015-04-21 2014-12-31 0 立信会计师事务所(特殊普通合伙) +1 91459 600519.XSHG 2015-04-21 2015-03-31 0 None +2 91460 600519.XSHG 2015-08-28 2015-06-30 0 None +3 91461 600519.XSHG 2015-10-23 2015-09-30 0 None +4 91462 600519.XSHG 2016-03-24 2015-12-31 0 立信会计师事务所(特殊普通合伙) +5 91463 600519.XSHG 2016-04-21 2016-03-31 0 None +6 91464 600519.XSHG 2016-08-27 2016-06-30 0 None +7 91465 600519.XSHG 2016-10-29 2016-09-30 0 None +8 91466 600519.XSHG 2017-04-15 2016-12-31 0 立信会计师事务所(特殊普通合伙) +9 91467 600519.XSHG 2017-04-15 2016-12-31 1 立信会计师事务所(特殊普通合伙) + + accountant opinion_type_id opinion_type +0 杨雄、江山 1 无保留 +1 None 6 未经审计 +2 None 6 未经审计 +3 None 6 未经审计 +4 江山、王晓明 1 无保留 +5 None 6 未经审计 +6 None 6 未经审计 +7 None 6 未经审计 +8 江山、王晓明 1 无保留 +9 江山、王晓明 1 无保留 +``` + +### 定期报告预约披露时间表(新上线数据) + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_REPORT_DISCLOSURE).filter(finance.STK_REPORT_DISCLOSURE.code==code).limit(n)) +``` + +获取上市公司定期报告预约披露及实际披露日期 + +**参数:** + +- **query(finance.STK_REPORT_DISCLOSURE)**:表示从finance.STK_REPORT_DISCLOSURE这张表中查询所有字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- 表结构和字段信息如下: + +| 字段 | 名称 | 类型 | 注释 | +| --- | --- | --- | --- | +| code | 公司代码 | VARCHAR(12) | | +| end_date | 截止日期 | DATE | | +| appoint_date | 预约披露日 | DATE | | +| first_date | 首次变更日 | DATE | | +| second_date | 二次变更日 | DATE | | +| third_date | 三次变更日 | DATE | | +| pub_date | 实际披露日 | DATE | | + +- **filter(finance.STK_REPORT_DISCLOSURE.code==code)**:指定筛选条件,通过finance.STK_REPORT_DISCLOSURE.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_REPORT_DISCLOSURE.pub_date>='2015-01-01',表示公告日期在2015年1月1日之后发布的数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2019年之后的数据,限定返回条数为10条 +from jqdata import finance +q=query(finance.STK_REPORT_DISCLOSURE).filter(finance.STK_REPORT_DISCLOSURE.code=='600519.XSHG', + finance.STK_REPORT_DISCLOSURE.end_date>='2019-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id code end_date appoint_date first_date second_date \ +0 143825 600519.XSHG 2019-03-31 2019-04-25 None None +1 140169 600519.XSHG 2019-06-30 2019-08-08 2019-07-18 None +2 136468 600519.XSHG 2019-09-30 2019-10-16 None None +3 132661 600519.XSHG 2019-12-31 2020-03-25 2020-04-22 None +4 159688 600519.XSHG 2020-03-31 2020-04-28 None None +5 155757 600519.XSHG 2020-06-30 2020-07-29 None None +6 151704 600519.XSHG 2020-09-30 2020-10-26 None None +7 147459 600519.XSHG 2020-12-31 2021-03-31 None None +8 177187 600519.XSHG 2021-03-31 2021-04-28 None None +9 172783 600519.XSHG 2021-06-30 2021-07-31 None None + + third_date pub_date +0 None 2019-04-25 +1 None 2019-07-18 +2 None 2019-10-16 +3 None 2020-04-22 +4 None 2020-04-28 +5 None 2020-07-29 +6 None 2020-10-26 +7 None 2021-03-31 +8 None 2021-04-28 +9 None 2021-07-31 +``` + +### 业绩预告 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_FIN_FORCAST).filter(finance.STK_FIN_FORCAST.code==code).limit(n)) +``` + +获取上市公司业绩预告等信息 + +**参数:** + +- **query(finance.STK_FIN_FORCAST)**:表示从finance.STK_FIN_FORCAST这张表中查询上市公司业绩报告的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- 以下"净利润" 一般披露为归母净利润 +- **finance.STK_FIN_FORCAST**:代表上市公司业绩预告表,收录了上市公司的业绩预告信息,表结构和字段信息如下: **预告期类型编码** **业绩类型编码** + +| 字段 | 名称 | 类型 | 注释 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| code | 股票代码 | varchar(12) | | +| name | 公司名称 | varchar(64) | | +| end_date | 报告期 | date | | +| report_type_id | 预告期类型编码 | int | 如下 [预告期类型编码](#type1) | +| report_type | 预告期类型 | varchar(32) | | +| pub_date | 公布日期 | date | | +| type_id | 预告类型编码 | int | 如下 [业绩类型编码](#type2) | +| type | 预告类型 | varchar(32) | | +| profit_min | 预告净利润(下限) | decimal(22,6) | | +| profit_max | 预告净利润(上限) | decimal(22,6) | | +| profit_last | 去年同期净利润 | decimal(22,6) | | +| profit_ratio_min | 预告净利润变动幅度(下限) | decimal(10,4) | 单位:% | +| profit_ratio_max | 预告净利润变动幅度(上限) | decimal(10,4) | 单位:% | +| content | 预告内容 | varchar(2048) | | + +| 预告期编码 | 预告期类型 | +| --- | --- | +| 304001 | 一季度预告 | +| 304002 | 中报预告 | +| 304003 | 三季度预告 | +| 304004 | 四季度预告 | + +| 业绩类型编码 | 业绩类型 | +| --- | --- | +| 305001 | 业绩大幅上升(50%以上) | +| 305002 | 业绩预增 | +| 305003 | 业绩预盈 | +| 305004 | 预计扭亏 | +| 305005 | 业绩持平 | +| 305006 | 无大幅变动 | +| 305007 | 业绩预亏 | +| 305008 | 业绩大幅下降(50%以上) | +| 305009 | 大幅减亏 | +| 305010 | 业绩预降 | +| 305011 | 预计减亏 | +| 305012 | 不确定 | +| 305013 | 取消预测 | +- **filter(finance.STK_FIN_FORCAST.code==code)**:指定筛选条件,通过finance.STK_FIN_FORCAST.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_FIN_FORCAST.pub_date>='2015-01-01',表示公告日期在2015年1月1日之后发布的业绩预告;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2015年之后公布的业绩预告信息,限定返回条数为10条 +from jqdata import finance +q=query(finance.STK_FIN_FORCAST).filter(finance.STK_FIN_FORCAST.code=='600519.XSHG',finance.STK_FIN_FORCAST.pub_date>='2015-01-01').limit(10) +df=finance.run_query(q) +print(df) + + id company_id code name end_date report_type_id \ +0 138256 420600519 600519.XSHG 贵州茅台酒股份有限公司 2017-12-31 304004 + + report_type pub_date type_id type profit_min profit_max \ +0 四季度预告 2018-01-31 305001 业绩大幅上升 None None + + profit_last profit_ratio_min profit_ratio_max \ +0 1.671836e+10 58 58 + + content +0 预计公司2017年01-12月归属于上市公司股东的净利润与上年同期相比增长58%。 +``` + +### 业绩快报(新上线数据) + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_PERFORMANCE_LETTERS).filter(finance.STK_PERFORMANCE_LETTERS.code==code).limit(n)) +``` + +获取上市公司业绩快报信息 + +**参数:** + +- **query(finance.STK_PERFORMANCE_LETTERS)**:表示从finance.STK_PERFORMANCE_LETTERS这张表中查询上市公司业绩报告的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_PERFORMANCE_LETTERS**:代表上市公司业绩预告表,收录了上市公司的业绩预告信息,表结构和字段信息如下: + +| 字段 | 名称 | 类型 | 注释 | +| --- | --- | --- | --- | +| company_id | 机构ID | INTEGER(11) | | +| company_name | 公司名称 | VARCHAR(100) | | +| code | 股票代码 | VARCHAR(12) | | +| name | 股票简称 | VARCHAR(12) | | +| pub_date | 公布日期 | DATE | | +| start_date | 开始日期 | DATE | | +| end_date | 截至日期 | DATE | | +| report_date | 报告期 | DATE | | +| report_type | 报告期类型 | int | 0:本期,1:上期 | +| total_operating_revenue | 营业总收入 | DECIMAL(20, 4) | | +| operating_revenue | 营业收入 | DECIMAL(20, 4) | | +| operating_profit | 营业利润 | DECIMAL(20, 4) | | +| total_profit | 利润总额 | DECIMAL(20, 4) | | +| np_parent_company_owners | 归属于母公司所有者的净利润 | DECIMAL(20, 4) | | +| total_assets | 总资产 | DECIMAL(20, 4) | | +| equities_parent_company_owners | 归属于上市公司股东的所有者权益 | DECIMAL(20, 4) | | +| basic_eps | 基本每股收益 | DECIMAL(20, 4) | | +| weight_roe | 净资产收益(加权) | DECIMAL(20, 4) | 披露值 | + +- **filter(finance.STK_PERFORMANCE_LETTERS.code==code)**:指定筛选条件,通过finance.STK_PERFORMANCE_LETTERS.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_PERFORMANCE_LETTERS.pub_date>='2015-01-01',表示公告日期在2015年1月1日之后发布的业绩快报;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +from jqdata import * +a=finance.run_query(query(finance.STK_PERFORMANCE_LETTERS).filter(finance.STK_PERFORMANCE_LETTERS.code=='000001.XSHE').limit(3)) +print(a) + + id company_id company_name code name pub_date start_date \ +0 1 430000001 平安银行股份有限公司 000001.XSHE 平安银行 2019-01-04 2018-01-01 +1 2 430000001 平安银行股份有限公司 000001.XSHE 平安银行 2019-01-04 2017-01-01 +2 3 430000001 平安银行股份有限公司 000001.XSHE 平安银行 2020-01-14 2019-01-01 + + end_date report_date report_type total_operating_revenue \ +0 2018-12-31 2018-12-31 0 None +1 2017-12-31 2018-12-31 1 None +2 2019-12-31 2019-12-31 0 None + + operating_revenue operating_profit total_profit \ +0 1.167160e+11 3.230500e+10 3.223100e+10 +1 1.057860e+11 3.022300e+10 3.015700e+10 +2 1.379580e+11 3.628900e+10 3.624000e+10 + + np_parent_company_owners total_assets equities_parent_company_owners \ +0 2.481800e+10 3.420753e+12 NaN +1 2.318900e+10 3.248474e+12 NaN +2 2.819500e+10 3.939070e+12 3.129830e+11 + + basic_eps weight_roe +0 NaN 11.49 +1 NaN 11.62 +2 16.1282 11.30 +``` + +### 合并利润表 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_INCOME_STATEMENT).filter(finance.STK_INCOME_STATEMENT.code==code).limit(n)) +``` + +获取上市公司定期公告中公布的合并利润表数据(2007版) + +**参数:** + +- **query(finance.STK_INCOME_STATEMENT)**:表示从finance.STK_INCOME_STATEMENT这张表中查询上市公司定期公告中公布的合并利润表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_INCOME_STATEMENT**:代表上市公司合并利润表,收录了上市公司定期公告中公布的合并利润表数据,表结构和字段信息如下: **报表来源编码** + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0:本期,1:上期 | +| source_id | 报表来源编码 | int | 如下 [报表来源编码](#source1) | +| source | 报表来源 | varchar(60) | 选择时程序自动填入 | +| total_operating_revenue | 营业总收入 | decimal(20,4) | | +| operating_revenue | 营业收入 | decimal(20,4) | | +| total_operating_cost | 营业总成本 | decimal(20,4) | | +| operating_cost | 营业成本 | decimal(20,4) | | +| operating_tax_surcharges | 营业税金及附加 | decimal(20,4) | | +| sale_expense | 销售费用 | decimal(20,4) | | +| administration_expense | 管理费用 | decimal(20,4) | | +| exploration_expense | 堪探费用 | decimal(20,4) | 勘探费用用于核算企业(石油天然气开采)核算的油气勘探过程中发生的地质调查、物理化学勘探各项支出和非成功探井等支出。 | +| financial_expense | 财务费用 | decimal(20,4) | | +| asset_impairment_loss | 资产减值损失 | decimal(20,4) | | +| fair_value_variable_income | 公允价值变动净收益 | decimal(20,4) | | +| investment_income | 投资收益 | decimal(20,4) | | +| invest_income_associates | 对联营企业和合营企业的投资收益 | decimal(20,4) | | +| exchange_income | 汇兑收益 | decimal(20,4) | | +| other_items_influenced_income | 影响营业利润的其他科目 | decimal(20,4) | | +| operating_profit | 营业利润 | decimal(20,4) | | +| subsidy_income | 补贴收入 | decimal(20,4) | | +| non_operating_revenue | 营业外收入 | decimal(20,4) | | +| non_operating_expense | 营业外支出 | decimal(20,4) | | +| disposal_loss_non_current_liability | 非流动资产处置净损失 | decimal(20,4) | | +| other_items_influenced_profit | 影响利润总额的其他科目 | decimal(20,4) | | +| total_profit | 利润总额 | decimal(20,4) | | +| income_tax | 所得税 | decimal(20,4) | | +| other_items_influenced_net_profit | 影响净利润的其他科目 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| np_parent_company_owners | 归属于母公司所有者的净利润 | decimal(20,4) | | +| minority_profit | 少数股东损益 | decimal(20,4) | | +| eps | 每股收益 | decimal(20,4) | | +| basic_eps | 基本每股收益 | decimal(20,4) | | +| diluted_eps | 稀释每股收益 | decimal(20,4) | | +| other_composite_income | 其他综合收益 | decimal(20,4) | | +| total_composite_income | 综合收益总额 | decimal(20,4) | | +| ci_parent_company_owners | 归属于母公司所有者的综合收益总额 | decimal(20,4) | | +| ci_minority_owners | 归属于少数股东的综合收益总额 | decimal(20,4) | | +| interest_income | 利息收入 | decimal(20,4) | | +| premiums_earned | 已赚保费 | decimal(20,4) | | +| commission_income | 手续费及佣金收入 | decimal(20,4) | | +| interest_expense | 利息支出 | decimal(20,4) | | +| commission_expense | 手续费及佣金支出 | decimal(20,4) | | +| refunded_premiums | 退保金 | decimal(20,4) | | +| net_pay_insurance_claims | 赔付支出净额 | decimal(20,4) | | +| withdraw_insurance_contract_reserve | 提取保险合同准备金净额 | decimal(20,4) | | +| policy_dividend_payout | 保单红利支出 | decimal(20,4) | | +| reinsurance_cost | 分保费用 | decimal(20,4) | | +| non_current_asset_disposed | 非流动资产处置利得 | decimal(20,4) | | +| other_earnings | 其他收益 | decimal(20,4) | | +| asset_deal_income | 资产处置收益 | decimal(20,4) | | +| sust_operate_net_profit | 持续经营净利润 | decimal(20,4) | | +| discon_operate_net_profit | 终止经营净利润 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失 | decimal(20,4) | | +| net_open_hedge_income | 净敞口套期收益 | decimal(20,4) | | +| interest_cost_fin | 财务费用-利息费用 | decimal(20,4) | | +| interest_income_fin | 财务费用-利息收入 | decimal(20,4) | | +| rd_expenses | 研发费用 | decimal(20,4) | | + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.STK_INCOME_STATEMENT.code==code)**:指定筛选条件,通过finance.STK_INCOME_STATEMENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_INCOME_STATEMENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的合并利润表信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2015年之后公告的合并利润表数据,取出合并利润表中本期的营业总收入,归属于母公司的净利润 +from jqdata import finance +q=query(finance.STK_INCOME_STATEMENT.company_name, + finance.STK_INCOME_STATEMENT.code, + finance.STK_INCOME_STATEMENT.pub_date, + finance.STK_INCOME_STATEMENT.start_date, + finance.STK_INCOME_STATEMENT.end_date, + finance.STK_INCOME_STATEMENT.total_operating_revenue, +finance.STK_INCOME_STATEMENT.np_parent_company_owners).filter(finance.STK_INCOME_STATEMENT.code=='600519.XSHG',finance.STK_INCOME_STATEMENT.pub_date>='2015-01-01',finance.STK_INCOME_STATEMENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 +8 贵州茅台酒股份有限公司 600519.XSHG 2017-04-15 2016-01-01 2016-12-31 +9 贵州茅台酒股份有限公司 600519.XSHG 2017-04-25 2017-01-01 2017-03-31 +10 贵州茅台酒股份有限公司 600519.XSHG 2017-07-28 2017-01-01 2017-06-30 +11 贵州茅台酒股份有限公司 600519.XSHG 2017-10-26 2017-01-01 2017-09-30 +12 贵州茅台酒股份有限公司 600519.XSHG 2018-03-28 2017-01-01 2017-12-31 +13 贵州茅台酒股份有限公司 600519.XSHG 2018-04-28 2018-01-01 2018-03-31 +14 贵州茅台酒股份有限公司 600519.XSHG 2018-08-02 2018-01-01 2018-06-30 + + total_operating_revenue np_parent_company_owners +0 3.221721e+10 1.534980e+10 +1 8.760368e+09 4.364902e+09 +2 1.618565e+10 7.888232e+09 +3 2.373432e+10 1.142464e+10 +4 3.344686e+10 1.550309e+10 +5 1.025087e+10 4.889272e+09 +6 1.873762e+10 8.802637e+09 +7 2.753274e+10 1.246558e+10 +8 4.015508e+10 1.671836e+10 +9 1.391341e+10 6.123119e+09 +10 2.549390e+10 1.125086e+10 +11 4.448737e+10 1.998385e+10 +12 6.106276e+10 2.707936e+10 +13 1.839526e+10 8.506907e+09 +14 3.525146e+10 1.576419e+10 +``` + +### 母公司利润表 + +#### 上市公司母公司利润表 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_INCOME_STATEMENT_PARENT).filter(finance.STK_INCOME_STATEMENT_PARENT.code==code).limit(n)) +``` + +获取上市公司母公司利润的信息(2007版) + +**参数:** + +- **query(finance.STK_INCOME_STATEMENT_PARENT)**:表示从finance.STK_INCOME_STATEMENT_PARENT这张表中查询上市公司母公司利润表的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_INCOME_STATEMENT_PARENT**:代表上市公司母公司利润表,收录了上市公司母公司的利润信息,表结构和字段信息如下: **报表来源编码** + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source2) | +| source | 报表来源 | varchar(60) | | +| total_operating_revenue | 营业总收入 | decimal(20,4) | | +| operating_revenue | 营业收入 | decimal(20,4) | | +| total_operating_cost | 营业总成本 | decimal(20,4) | | +| operating_cost | 营业成本 | decimal(20,4) | | +| operating_tax_surcharges | 营业税金及附加 | decimal(20,4) | | +| sale_expense | 销售费用 | decimal(20,4) | | +| administration_expense | 管理费用 | decimal(20,4) | | +| exploration_expense | 堪探费用 | decimal(20,4) | 勘探费用用于核算企业(石油天然气开采)核算的油气勘探过程中发生的地质调查、物理化学勘探各项支出和非成功探井等支出。 | +| financial_expense | 财务费用 | decimal(20,4) | | +| asset_impairment_loss | 资产减值损失 | decimal(20,4) | | +| fair_value_variable_income | 公允价值变动净收益 | decimal(20,4) | | +| investment_income | 投资收益 | decimal(20,4) | | +| invest_income_associates | 对联营企业和合营企业的投资收益 | decimal(20,4) | | +| exchange_income | 汇兑收益 | decimal(20,4) | | +| other_items_influenced_income | 影响营业利润的其他科目 | decimal(20,4) | | +| operating_profit | 营业利润 | decimal(20,4) | | +| subsidy_income | 补贴收入 | decimal(20,4) | | +| non_operating_revenue | 营业外收入 | decimal(20,4) | | +| non_operating_expense | 营业外支出 | decimal(20,4) | | +| disposal_loss_non_current_liability | 非流动资产处置净损失 | decimal(20,4) | | +| other_items_influenced_profit | 影响利润总额的其他科目 | decimal(20,4) | | +| total_profit | 利润总额 | decimal(20,4) | | +| income_tax | 所得税 | decimal(20,4) | | +| other_items_influenced_net_profit | 影响净利润的其他科目 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| np_parent_company_owners | 归属于母公司所有者的净利润 | decimal(20,4) | | +| minority_profit | 少数股东损益 | decimal(20,4) | | +| eps | 每股收益 | decimal(20,4) | | +| basic_eps | 基本每股收益 | decimal(20,4) | | +| diluted_eps | 稀释每股收益 | decimal(20,4) | | +| other_composite_income | 其他综合收益 | decimal(20,4) | | +| total_composite_income | 综合收益总额 | decimal(20,4) | | +| ci_parent_company_owners | 归属于母公司所有者的综合收益总额 | decimal(20,4) | | +| ci_minority_owners | 归属于少数股东的综合收益总额 | decimal(20,4) | | +| interest_income | 利息收入 | decimal(20,4) | | +| premiums_earned | 已赚保费 | decimal(20,4) | | +| commission_income | 手续费及佣金收入 | decimal(20,4) | | +| interest_expense | 利息支出 | decimal(20,4) | | +| commission_expense | 手续费及佣金支出 | decimal(20,4) | | +| refunded_premiums | 退保金 | decimal(20,4) | | +| net_pay_insurance_claims | 赔付支出净额 | decimal(20,4) | | +| withdraw_insurance_contract_reserve | 提取保险合同准备金净额 | decimal(20,4) | | +| policy_dividend_payout | 保单红利支出 | decimal(20,4) | | +| reinsurance_cost | 分保费用 | decimal(20,4) | | +| non_current_asset_disposed | 非流动资产处置利得 | decimal(20,4) | | +| other_earnings | 其他收益 | decimal(20,4) | | +| asset_deal_income | 资产处置收益 | decimal(20,4) | | +| sust_operate_net_profit | 持续经营净利润 | decimal(20,4) | | +| discon_operate_net_profit | 终止经营净利润 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失 | decimal(20,4) | | +| net_open_hedge_income | 净敞口套期收益 | decimal(20,4) | | +| interest_cost_fin | 财务费用-利息费用 | decimal(20,4) | | +| interest_income_fin | 财务费用-利息收入 | decimal(20,4) | | +| rd_expenses | 研发费用 | decimal(20,4) | | + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.STK_INCOME_STATEMENT_PARENT.code==code)**:指定筛选条件,通过finance.STK_INCOME_STATEMENT_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_INCOME_STATEMENT_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的母公司利润表信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2015年之后公告的母公司利润表数据,取出母公司利润表中本期的营业总收入,归属于母公司所有者的净利润 +from jqdata import finance +q=query(finance.STK_INCOME_STATEMENT_PARENT.company_name, + finance.STK_INCOME_STATEMENT_PARENT.code, + finance.STK_INCOME_STATEMENT_PARENT.pub_date, + finance.STK_INCOME_STATEMENT_PARENT.start_date, + finance.STK_INCOME_STATEMENT_PARENT.end_date, + finance.STK_INCOME_STATEMENT_PARENT.total_operating_revenue, +finance.STK_INCOME_STATEMENT_PARENT.np_parent_company_owners).filter(finance.STK_INCOME_STATEMENT_PARENT.code=='600519.XSHG',finance.STK_INCOME_STATEMENT_PARENT.pub_date>='2015-01-01',finance.STK_INCOME_STATEMENT_PARENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 +8 贵州茅台酒股份有限公司 600519.XSHG 2017-04-15 2016-01-01 2016-12-31 +9 贵州茅台酒股份有限公司 600519.XSHG 2017-04-25 2017-01-01 2017-03-31 +10 贵州茅台酒股份有限公司 600519.XSHG 2017-07-28 2017-01-01 2017-06-30 +11 贵州茅台酒股份有限公司 600519.XSHG 2017-10-26 2017-01-01 2017-09-30 +12 贵州茅台酒股份有限公司 600519.XSHG 2018-03-28 2017-01-01 2017-12-31 +13 贵州茅台酒股份有限公司 600519.XSHG 2018-04-28 2018-01-01 2018-03-31 +14 贵州茅台酒股份有限公司 600519.XSHG 2018-08-02 2018-01-01 2018-06-30 + + total_operating_revenue np_parent_company_owners +0 6.878165e+09 1.028603e+10 +1 1.886084e+09 -5.773331e+07 +2 3.571872e+09 -1.556184e+08 +3 5.411957e+09 9.476542e+09 +4 8.843334e+09 9.611173e+09 +5 1.507658e+09 8.850591e+09 +6 3.608903e+09 8.733012e+09 +7 5.430884e+09 8.002128e+09 +8 1.289781e+10 9.251255e+09 +9 4.992937e+09 1.023919e+09 +10 9.310346e+09 8.967873e+09 +11 1.720851e+10 1.074275e+10 +12 2.192229e+10 1.079946e+10 +13 6.005294e+09 9.480740e+08 +14 1.162651e+10 5.081753e+10 +``` + +### 合并现金流量表 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_CASHFLOW_STATEMENT).filter(finance.STK_CASHFLOW_STATEMENT.code==code).limit(n)) +``` + +获取上市公司定期公告中公布的合并现金流量表数据(2007版) + +**参数:** + +- **query(finance.STK_CASHFLOW_STATEMENT)**:表示从finance.STK_CASHFLOW_STATEMENT这张表中查询上市公司定期公告中公布的合并现金流量表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_CASHFLOW_STATEMENT**:代表上市公司合并现金流量表,收录了上市公司定期公告中公布的合并现金流量表数据,表结构和字段信息如下: **报表来源编码** + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source3) | +| source | 报表来源 | varchar(60) | | +| goods_sale_and_service_render_cash | 销售商品、提供劳务收到的现金 | decimal(20,4) | | +| tax_levy_refund | 收到的税费返还 | decimal(20,4) | | +| subtotal_operate_cash_inflow | 经营活动现金流入小计 | decimal(20,4) | | +| goods_and_services_cash_paid | 购买商品、接受劳务支付的现金 | decimal(20,4) | | +| staff_behalf_paid | 支付给职工以及为职工支付的现金 | decimal(20,4) | | +| tax_payments | 支付的各项税费 | decimal(20,4) | | +| subtotal_operate_cash_outflow | 经营活动现金流出小计 | decimal(20,4) | | +| net_operate_cash_flow | 经营活动现金流量净额 | decimal(20,4) | | +| invest_withdrawal_cash | 收回投资收到的现金 | decimal(20,4) | | +| invest_proceeds | 取得投资收益收到的现金 | decimal(20,4) | | +| fix_intan_other_asset_dispo_cash | 处置固定资产、无形资产和其他长期资产收回的现金净额 | decimal(20,4) | | +| net_cash_deal_subcompany | 处置子公司及其他营业单位收到的现金净额 | decimal(20,4) | | +| subtotal_invest_cash_inflow | 投资活动现金流入小计 | decimal(20,4) | | +| fix_intan_other_asset_acqui_cash | 购建固定资产、无形资产和其他长期资产支付的现金 | decimal(20,4) | | +| invest_cash_paid | 投资支付的现金 | decimal(20,4) | | +| impawned_loan_net_increase | 质押贷款净增加额 | decimal(20,4) | | +| net_cash_from_sub_company | 取得子公司及其他营业单位支付的现金净额 | decimal(20,4) | | +| subtotal_invest_cash_outflow | 投资活动现金流出小计 | decimal(20,4) | | +| net_invest_cash_flow | 投资活动现金流量净额 | decimal(20,4) | | +| cash_from_invest | 吸收投资收到的现金 | decimal(20,4) | | +| cash_from_borrowing | 取得借款收到的现金 | decimal(20,4) | | +| cash_from_bonds_issue | 发行债券收到的现金 | decimal(20,4) | | +| subtotal_finance_cash_inflow | 筹资活动现金流入小计 | decimal(20,4) | | +| borrowing_repayment | 偿还债务支付的现金 | decimal(20,4) | | +| dividend_interest_payment | 分配股利、利润或偿付利息支付的现金 | decimal(20,4) | | +| subtotal_finance_cash_outflow | 筹资活动现金流出小计 | decimal(20,4) | | +| net_finance_cash_flow | 筹资活动现金流量净额 | decimal(20,4) | | +| exchange_rate_change_effect | 汇率变动对现金的影响 | decimal(20,4) | | +| other_reason_effect_cash | 其他原因对现金的影响 | decimal(20,4) | | +| cash_equivalent_increase | 现金及现金等价物净增加额 | decimal(20,4) | | +| cash_equivalents_at_beginning | 期初现金及现金等价物余额 | decimal(20,4) | | +| cash_and_equivalents_at_end | 期末现金及现金等价物余额 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| assets_depreciation_reserves | 资产减值准备 | decimal(20,4) | | +| fixed_assets_depreciation | 固定资产折旧、油气资产折耗、生产性生物资产折旧 | decimal(20,4) | | +| intangible_assets_amortization | 无形资产摊销 | decimal(20,4) | | +| defferred_expense_amortization | 长期待摊费用摊销 | decimal(20,4) | | +| fix_intan_other_asset_dispo_loss | 处置固定资产、无形资产和其他长期资产的损失 | decimal(20,4) | | +| fixed_asset_scrap_loss | 固定资产报废损失 | decimal(20,4) | | +| fair_value_change_loss | 公允价值变动损失 | decimal(20,4) | | +| financial_cost | 财务费用 | decimal(20,4) | | +| invest_loss | 投资损失 | decimal(20,4) | | +| deffered_tax_asset_decrease | 递延所得税资产减少 | decimal(20,4) | | +| deffered_tax_liability_increase | 递延所得税负债增加 | decimal(20,4) | | +| inventory_decrease | 存货的减少 | decimal(20,4) | | +| operate_receivables_decrease | 经营性应收项目的减少 | decimal(20,4) | | +| operate_payable_increase | 经营性应付项目的增加 | decimal(20,4) | | +| others | 其他 | decimal(20,4) | | +| net_operate_cash_flow_indirect | 经营活动现金流量净额_间接法 | decimal(20,4) | | +| debt_to_capital | 债务转为资本 | decimal(20,4) | | +| cbs_expiring_in_one_year | 一年内到期的可转换公司债券 | decimal(20,4) | | +| financial_lease_fixed_assets | 融资租入固定资产 | decimal(20,4) | | +| cash_at_end | 现金的期末余额 | decimal(20,4) | | +| cash_at_beginning | 现金的期初余额 | decimal(20,4) | | +| equivalents_at_end | 现金等价物的期末余额 | decimal(20,4) | | +| equivalents_at_beginning | 现金等价物的期初余额 | decimal(20,4) | | +| other_reason_effect_cash_indirect | 其他原因对现金的影响_间接法 | decimal(20,4) | | +| cash_equivalent_increase_indirect | 现金及现金等价物净增加额_间接法 | decimal(20,4) | | +| net_deposit_increase | 客户存款和同业存放款项净增加额 | decimal(20,4) | | +| net_borrowing_from_central_bank | 向中央银行借款净增加额 | decimal(20,4) | | +| net_borrowing_from_finance_co | 向其他金融机构拆入资金净增加额 | decimal(20,4) | | +| net_original_insurance_cash | 收到原保险合同保费取得的现金 | decimal(20,4) | | +| net_cash_received_from_reinsurance_business | 收到再保险业务现金净额 | decimal(20,4) | | +| net_insurer_deposit_investment | 保户储金及投资款净增加额 | decimal(20,4) | | +| net_deal_trading_assets | 处置以公允价值计量且其变动计入当期损益的金融资产净增加额 | decimal(20,4) | | +| interest_and_commission_cashin | 收取利息、手续费及佣金的现金 | decimal(20,4) | | +| net_increase_in_placements | 拆入资金净增加额 | decimal(20,4) | | +| net_buyback | 回购业务资金净增加额 | decimal(20,4) | | +| net_loan_and_advance_increase | 客户贷款及垫款净增加额 | decimal(20,4) | | +| net_deposit_in_cb_and_ib | 存放中央银行和同业款项净增加额 | decimal(20,4) | | +| original_compensation_paid | 支付原保险合同赔付款项的现金 | decimal(20,4) | | +| handling_charges_and_commission | 支付利息、手续费及佣金的现金 | decimal(20,4) | | +| policy_dividend_cash_paid | 支付保单红利的现金 | decimal(20,4) | | +| cash_from_mino_s_invest_sub | 子公司吸收少数股东投资收到的现金 | decimal(20,4) | | +| proceeds_from_sub_to_mino_s | 子公司支付给少数股东的股利、利润 | decimal(20,4) | | +| investment_property_depreciation | 投资性房地产的折旧及摊销 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失(现金流量表补充科目) | decimal(20,4) | | + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.STK_CASHFLOW_STATEMENT.code==code)**:指定筛选条件,通过finance.STK_CASHFLOW_STATEMENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_CASHFLOW_STATEMENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司合并现金流量表数据;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2015年之后公告的合并现金流量表数据,取出本期的经营活动现金流量净额,投资活动现金流量净额,以及筹资活动现金流量净额 +from jqdata import * +q=query(finance.STK_CASHFLOW_STATEMENT.company_name, + finance.STK_CASHFLOW_STATEMENT.code, + finance.STK_CASHFLOW_STATEMENT.pub_date, + finance.STK_CASHFLOW_STATEMENT.start_date, + finance.STK_CASHFLOW_STATEMENT.end_date, + finance.STK_CASHFLOW_STATEMENT.net_operate_cash_flow, + finance.STK_CASHFLOW_STATEMENT.net_invest_cash_flow, +finance.STK_CASHFLOW_STATEMENT.net_finance_cash_flow).filter(finance.STK_CASHFLOW_STATEMENT.code=='600519.XSHG',finance.STK_CASHFLOW_STATEMENT.pub_date>='2015-01-01',finance.STK_CASHFLOW_STATEMENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 +8 贵州茅台酒股份有限公司 600519.XSHG 2017-04-15 2016-01-01 2016-12-31 +9 贵州茅台酒股份有限公司 600519.XSHG 2017-04-25 2017-01-01 2017-03-31 +10 贵州茅台酒股份有限公司 600519.XSHG 2017-07-28 2017-01-01 2017-06-30 +11 贵州茅台酒股份有限公司 600519.XSHG 2017-10-26 2017-01-01 2017-09-30 +12 贵州茅台酒股份有限公司 600519.XSHG 2018-03-28 2017-01-01 2017-12-31 +13 贵州茅台酒股份有限公司 600519.XSHG 2018-04-28 2018-01-01 2018-03-31 +14 贵州茅台酒股份有限公司 600519.XSHG 2018-08-02 2018-01-01 2018-06-30 + + net_operate_cash_flow net_invest_cash_flow net_finance_cash_flow +0 1.263252e+10 -4.580160e+09 -5.041427e+09 +1 2.111634e+09 -8.540453e+08 -3.464185e+07 +2 4.901688e+09 -1.290715e+09 -3.494246e+07 +3 1.142339e+10 -1.782995e+09 -5.587555e+09 +4 1.743634e+10 -2.048790e+09 -5.588020e+09 +5 7.436044e+09 -4.213453e+08 -5.085073e+08 +6 1.360396e+10 -5.555078e+08 -3.283074e+09 +7 3.253533e+10 -7.734874e+08 -8.284064e+09 +8 3.745125e+10 -1.102501e+09 -8.334512e+09 +9 6.108975e+09 -3.003397e+08 NaN +10 6.935360e+09 -4.706886e+08 -3.640000e+08 +11 2.278677e+10 -7.477752e+08 -8.893178e+09 +12 2.215304e+10 -1.120645e+09 -8.899178e+09 +13 4.935501e+09 -5.919110e+08 NaN +14 1.773503e+10 -7.397817e+08 -1.385492e+10 +``` + +### 母公司现金流量表 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_CASHFLOW_STATEMENT_PARENT).filter(finance.STK_CASHFLOW_STATEMENT_PARENT.code==code).limit(n)) +``` + +获取上市公司定期公告中公布的母公司现金流量表(2007版) + +**参数:** + +- **query(finance.STK_CASHFLOW_STATEMENT_PARENT)**:表示从finance.STK_CASHFLOW_STATEMENT_PARENT这张表中查询上市公司定期公告中公布的母公司现金流量表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_CASHFLOW_STATEMENT_PARENT**:代表上市公司母公司现金流量表,收录了上市公司定期公告中公布的母公司现金流量表数据,表结构和字段信息如下: **报表来源编码** + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source4) | +| source | 报表来源 | varchar(60) | | +| goods_sale_and_service_render_cash | 销售商品、提供劳务收到的现金 | decimal(20,4) | | +| tax_levy_refund | 收到的税费返还 | decimal(20,4) | | +| subtotal_operate_cash_inflow | 经营活动现金流入小计 | decimal(20,4) | | +| goods_and_services_cash_paid | 购买商品、接受劳务支付的现金 | decimal(20,4) | | +| staff_behalf_paid | 支付给职工以及为职工支付的现金 | decimal(20,4) | | +| tax_payments | 支付的各项税费 | decimal(20,4) | | +| subtotal_operate_cash_outflow | 经营活动现金流出小计 | decimal(20,4) | | +| net_operate_cash_flow | 经营活动现金流量净额 | decimal(20,4) | | +| invest_withdrawal_cash | 收回投资收到的现金 | decimal(20,4) | | +| invest_proceeds | 取得投资收益收到的现金 | decimal(20,4) | | +| fix_intan_other_asset_dispo_cash | 处置固定资产、无形资产和其他长期资产收回的现金净额 | decimal(20,4) | | +| net_cash_deal_subcompany | 处置子公司及其他营业单位收到的现金净额 | decimal(20,4) | | +| subtotal_invest_cash_inflow | 投资活动现金流入小计 | decimal(20,4) | | +| fix_intan_other_asset_acqui_cash | 购建固定资产、无形资产和其他长期资产支付的现金 | decimal(20,4) | | +| invest_cash_paid | 投资支付的现金 | decimal(20,4) | | +| impawned_loan_net_increase | 质押贷款净增加额 | decimal(20,4) | | +| net_cash_from_sub_company | 取得子公司及其他营业单位支付的现金净额 | decimal(20,4) | | +| subtotal_invest_cash_outflow | 投资活动现金流出小计 | decimal(20,4) | | +| net_invest_cash_flow | 投资活动现金流量净额 | decimal(20,4) | | +| cash_from_invest | 吸收投资收到的现金 | decimal(20,4) | | +| cash_from_borrowing | 取得借款收到的现金 | decimal(20,4) | | +| cash_from_bonds_issue | 发行债券收到的现金 | decimal(20,4) | | +| subtotal_finance_cash_inflow | 筹资活动现金流入小计 | decimal(20,4) | | +| borrowing_repayment | 偿还债务支付的现金 | decimal(20,4) | | +| dividend_interest_payment | 分配股利、利润或偿付利息支付的现金 | decimal(20,4) | | +| subtotal_finance_cash_outflow | 筹资活动现金流出小计 | decimal(20,4) | | +| net_finance_cash_flow | 筹资活动现金流量净额 | decimal(20,4) | | +| exchange_rate_change_effect | 汇率变动对现金的影响 | decimal(20,4) | | +| other_reason_effect_cash | 其他原因对现金的影响 | decimal(20,4) | | +| cash_equivalent_increase | 现金及现金等价物净增加额 | decimal(20,4) | | +| cash_equivalents_at_beginning | 期初现金及现金等价物余额 | decimal(20,4) | | +| cash_and_equivalents_at_end | 期末现金及现金等价物余额 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| assets_depreciation_reserves | 资产减值准备 | decimal(20,4) | | +| fixed_assets_depreciation | 固定资产折旧、油气资产折耗、生产性生物资产折旧 | decimal(20,4) | | +| intangible_assets_amortization | 无形资产摊销 | decimal(20,4) | | +| defferred_expense_amortization | 长期待摊费用摊销 | decimal(20,4) | | +| fix_intan_other_asset_dispo_loss | 处置固定资产、无形资产和其他长期资产的损失 | decimal(20,4) | | +| fixed_asset_scrap_loss | 固定资产报废损失 | decimal(20,4) | | +| fair_value_change_loss | 公允价值变动损失 | decimal(20,4) | | +| financial_cost | 财务费用 | decimal(20,4) | | +| invest_loss | 投资损失 | decimal(20,4) | | +| deffered_tax_asset_decrease | 递延所得税资产减少 | decimal(20,4) | | +| deffered_tax_liability_increase | 递延所得税负债增加 | decimal(20,4) | | +| inventory_decrease | 存货的减少 | decimal(20,4) | | +| operate_receivables_decrease | 经营性应收项目的减少 | decimal(20,4) | | +| operate_payable_increase | 经营性应付项目的增加 | decimal(20,4) | | +| others | 其他 | decimal(20,4) | | +| net_operate_cash_flow_indirect | 经营活动现金流量净额_间接法 | decimal(20,4) | | +| debt_to_capital | 债务转为资本 | decimal(20,4) | | +| cbs_expiring_in_one_year | 一年内到期的可转换公司债券 | decimal(20,4) | | +| financial_lease_fixed_assets | 融资租入固定资产 | decimal(20,4) | | +| cash_at_end | 现金的期末余额 | decimal(20,4) | | +| cash_at_beginning | 现金的期初余额 | decimal(20,4) | | +| equivalents_at_end | 现金等价物的期末余额 | decimal(20,4) | | +| equivalents_at_beginning | 现金等价物的期初余额 | decimal(20,4) | | +| other_reason_effect_cash_indirect | 其他原因对现金的影响_间接法 | decimal(20,4) | | +| cash_equivalent_increase_indirect | 现金及现金等价物净增加额_间接法 | decimal(20,4) | | +| net_deposit_increase | 客户存款和同业存放款项净增加额 | decimal(20,4) | | +| net_borrowing_from_central_bank | 向中央银行借款净增加额 | decimal(20,4) | | +| net_borrowing_from_finance_co | 向其他金融机构拆入资金净增加额 | decimal(20,4) | | +| net_original_insurance_cash | 收到原保险合同保费取得的现金 | decimal(20,4) | | +| net_cash_received_from_reinsurance_business | 收到再保险业务现金净额 | decimal(20,4) | | +| net_insurer_deposit_investment | 保户储金及投资款净增加额 | decimal(20,4) | | +| net_deal_trading_assets | 处置以公允价值计量且其变动计入当期损益的金融资产净增加额 | decimal(20,4) | | +| interest_and_commission_cashin | 收取利息、手续费及佣金的现金 | decimal(20,4) | | +| net_increase_in_placements | 拆入资金净增加额 | decimal(20,4) | | +| net_buyback | 回购业务资金净增加额 | decimal(20,4) | | +| net_loan_and_advance_increase | 客户贷款及垫款净增加额 | decimal(20,4) | | +| net_deposit_in_cb_and_ib | 存放中央银行和同业款项净增加额 | decimal(20,4) | | +| original_compensation_paid | 支付原保险合同赔付款项的现金 | decimal(20,4) | | +| handling_charges_and_commission | 支付利息、手续费及佣金的现金 | decimal(20,4) | | +| policy_dividend_cash_paid | 支付保单红利的现金 | decimal(20,4) | | +| cash_from_mino_s_invest_sub | 子公司吸收少数股东投资收到的现金 | decimal(20,4) | | +| proceeds_from_sub_to_mino_s | 子公司支付给少数股东的股利、利润 | decimal(20,4) | | +| investment_property_depreciation | 投资性房地产的折旧及摊销 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失(现金流量表补充科目) | decimal(20,4) | | + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- filter(finance.STK_CASHFLOW_STATEMENT_PARENT.code==code)**:指定筛选条件,通过finance.STK_CASHFLOW_STATEMENT_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_CASHFLOW_STATEMENT_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的母公司现金流量表信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2015年之后公告的母公司现金流量表数据,取出本期的经营活动现金流量净额,投资活动现金流量净额,以及筹资活动现金流量净额 +from jqdata import * +q=query(finance.STK_CASHFLOW_STATEMENT_PARENT.company_name, + finance.STK_CASHFLOW_STATEMENT_PARENT.code, + finance.STK_CASHFLOW_STATEMENT_PARENT.pub_date, + finance.STK_CASHFLOW_STATEMENT_PARENT.start_date, + finance.STK_CASHFLOW_STATEMENT_PARENT.end_date, + finance.STK_CASHFLOW_STATEMENT_PARENT.net_operate_cash_flow, + finance.STK_CASHFLOW_STATEMENT_PARENT.net_invest_cash_flow, +finance.STK_CASHFLOW_STATEMENT_PARENT.net_finance_cash_flow).filter(finance.STK_CASHFLOW_STATEMENT_PARENT.code=='600519.XSHG',finance.STK_CASHFLOW_STATEMENT_PARENT.pub_date>='2015-01-01',finance.STK_CASHFLOW_STATEMENT_PARENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 +8 贵州茅台酒股份有限公司 600519.XSHG 2017-04-15 2016-01-01 2016-12-31 +9 贵州茅台酒股份有限公司 600519.XSHG 2017-04-25 2017-01-01 2017-03-31 +10 贵州茅台酒股份有限公司 600519.XSHG 2017-07-28 2017-01-01 2017-06-30 +11 贵州茅台酒股份有限公司 600519.XSHG 2017-10-26 2017-01-01 2017-09-30 +12 贵州茅台酒股份有限公司 600519.XSHG 2018-03-28 2017-01-01 2017-12-31 +13 贵州茅台酒股份有限公司 600519.XSHG 2018-04-28 2018-01-01 2018-03-31 +14 贵州茅台酒股份有限公司 600519.XSHG 2018-08-02 2018-01-01 2018-06-30 + + net_operate_cash_flow net_invest_cash_flow net_finance_cash_flow +0 -2.713989e+09 6.192758e+09 -4.562999e+09 +1 2.082144e+09 -1.135273e+09 2.200000e+07 +2 3.259594e+09 -1.568552e+09 2.200000e+07 +3 2.284079e+09 8.054632e+08 -5.040068e+09 +4 1.975006e+09 7.412721e+09 -5.018068e+09 +5 6.073286e+08 8.692869e+07 NaN +6 -7.648020e+08 7.468597e+09 -2.774566e+09 +7 -7.797669e+08 8.882256e+09 -7.751997e+09 +8 7.157030e+08 8.562947e+09 -7.818445e+09 +9 -2.124767e+09 -3.119164e+08 NaN +10 -1.473598e+09 -4.806175e+08 NaN +11 8.751075e+08 6.337564e+09 -8.525814e+09 +12 1.565579e+09 5.981627e+09 -8.525814e+09 +13 -2.814955e+08 -5.779401e+08 NaN +14 -2.121182e+09 1.535743e+10 -1.381692e+10 +``` + +### 合并资产负债表 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_BALANCE_SHEET).filter(finance.STK_BALANCE_SHEET.code==code).limit(n)) +``` + +获取上市公司定期公告中公布的合并资产负债表(2007版) + +**参数:** + +- **query(finance.STK_BALANCE_SHEET)**:表示从finance.STK_BALANCE_SHEET这张表中查询上市公司定期公告中公布的合并资产负债表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_BALANCE_SHEET**:代表上市公司合并资产负债表信息,收录了上市公司定期公告中公布的合并资产负债表数据,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下 [报表来源编码](#source5) | +| source | 报表来源 | varchar(60) | | +| cash_equivalents | 货币资金 | decimal(20,4) | | +| trading_assets | 交易性金融资产 | decimal(20,4) | | +| bill_receivable | 应收票据 | decimal(20,4) | | +| account_receivable | 应收账款 | decimal(20,4) | | +| advance_payment | 预付款项 | decimal(20,4) | | +| other_receivable | 其他应收款 | decimal(20,4) | | +| affiliated_company_receivable | 应收关联公司款 | decimal(20,4) | | +| interest_receivable | 应收利息 | decimal(20,4) | | +| dividend_receivable | 应收股利 | decimal(20,4) | | +| inventories | 存货 | decimal(20,4) | | +| expendable_biological_asset | 消耗性生物资产 | decimal(20,4) | 消耗性生物资产,是指为出售而持有的、或在将来收获为农产品的生物资产,包括生长中的大田作物、蔬菜、用材林,以及存栏代售的牲畜等 | +| non_current_asset_in_one_year | 一年内到期的非流动资产 | decimal(20,4) | | +| total_current_assets | 流动资产合计 | decimal(20,4) | | +| hold_for_sale_assets | 可供出售金融资产 | decimal(20,4) | | +| hold_to_maturity_investments | 持有至到期投资 | decimal(20,4) | | +| longterm_receivable_account | 长期应收款 | decimal(20,4) | | +| longterm_equity_invest | 长期股权投资 | decimal(20,4) | | +| investment_property | 投资性房地产 | decimal(20,4) | | +| fixed_assets | 固定资产 | decimal(20,4) | | +| constru_in_process | 在建工程 | decimal(20,4) | | +| construction_materials | 工程物资 | decimal(20,4) | | +| fixed_assets_liquidation | 固定资产清理 | decimal(20,4) | | +| biological_assets | 生产性生物资产 | decimal(20,4) | | +| oil_gas_assets | 油气资产 | decimal(20,4) | | +| intangible_assets | 无形资产 | decimal(20,4) | | +| development_expenditure | 开发支出 | decimal(20,4) | | +| good_will | 商誉 | decimal(20,4) | | +| long_deferred_expense | 长期待摊费用 | decimal(20,4) | | +| deferred_tax_assets | 递延所得税资产 | decimal(20,4) | | +| total_non_current_assets | 非流动资产合计 | decimal(20,4) | | +| total_assets | 资产总计 | decimal(20,4) | | +| shortterm_loan | 短期借款 | decimal(20,4) | | +| trading_liability | 交易性金融负债 | decimal(20,4) | | +| notes_payable | 应付票据 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| advance_peceipts | 预收款项 | decimal(20,4) | | +| salaries_payable | 应付职工薪酬 | decimal(20,4) | | +| taxs_payable | 应交税费 | decimal(20,4) | | +| interest_payable | 应付利息 | decimal(20,4) | | +| dividend_payable | 应付股利 | decimal(20,4) | | +| other_payable | 其他应付款 | decimal(20,4) | | +| affiliated_company_payable | 应付关联公司款 | decimal(20,4) | | +| non_current_liability_in_one_year | 一年内到期的非流动负债 | decimal(20,4) | | +| total_current_liability | 流动负债合计 | decimal(20,4) | | +| longterm_loan | 长期借款 | decimal(20,4) | | +| bonds_payable | 应付债券 | decimal(20,4) | | +| longterm_account_payable | 长期应付款 | decimal(20,4) | | +| specific_account_payable | 专项应付款 | decimal(20,4) | | +| estimate_liability | 预计负债 | decimal(20,4) | | +| deferred_tax_liability | 递延所得税负债 | decimal(20,4) | | +| total_non_current_liability | 非流动负债合计 | decimal(20,4) | | +| total_liability | 负债合计 | decimal(20,4) | | +| paidin_capital | 实收资本(或股本) | decimal(20,4) | | +| capital_reserve_fund | 资本公积 | decimal(20,4) | | +| specific_reserves | 专项储备 | decimal(20,4) | | +| surplus_reserve_fund | 盈余公积 | decimal(20,4) | | +| treasury_stock | 库存股 | decimal(20,4) | | +| retained_profit | 未分配利润 | decimal(20,4) | | +| equities_parent_company_owners | 归属于母公司所有者权益 | decimal(20,4) | | +| minority_interests | 少数股东权益 | decimal(20,4) | | +| foreign_currency_report_conv_diff | 外币报表折算价差 | decimal(20,4) | | +| irregular_item_adjustment | 非正常经营项目收益调整 | decimal(20,4) | | +| total_owner_equities | 所有者权益(或股东权益)合计 | decimal(20,4) | | +| total_sheet_owner_equities | 负债和所有者权益(或股东权益)合计 | decimal(20,4) | | +| other_comprehensive_income | 其他综合收益 | decimal(20,4) | | +| deferred_earning | 递延收益-非流动负债 | decimal(20,4) | | +| settlement_provi | 结算备付金 | decimal(20,4) | | +| lend_capital | 拆出资金 | decimal(20,4) | | +| loan_and_advance_current_assets | 发放贷款及垫款-流动资产 | decimal(20,4) | | +| derivative_financial_asset | 衍生金融资产 | decimal(20,4) | | +| insurance_receivables | 应收保费 | decimal(20,4) | | +| reinsurance_receivables | 应收分保账款 | decimal(20,4) | | +| reinsurance_contract_reserves_receivable | 应收分保合同准备金 | decimal(20,4) | | +| bought_sellback_assets | 买入返售金融资产 | decimal(20,4) | | +| hold_sale_asset | 划分为持有待售的资产 | decimal(20,4) | | +| loan_and_advance_noncurrent_assets | 发放贷款及垫款-非流动资产 | decimal(20,4) | | +| borrowing_from_centralbank | 向中央银行借款 | decimal(20,4) | | +| deposit_in_interbank | 吸收存款及同业存放 | decimal(20,4) | | +| borrowing_capital | 拆入资金 | decimal(20,4) | | +| derivative_financial_liability | 衍生金融负债 | decimal(20,4) | | +| sold_buyback_secu_proceeds | 卖出回购金融资产款 | decimal(20,4) | | +| commission_payable | 应付手续费及佣金 | decimal(20,4) | | +| reinsurance_payables | 应付分保账款 | decimal(20,4) | | +| insurance_contract_reserves | 保险合同准备金 | decimal(20,4) | | +| proxy_secu_proceeds | 代理买卖证券款 | decimal(20,4) | | +| receivings_from_vicariously_sold_securities | 代理承销证券款 | decimal(20,4) | | +| hold_sale_liability | 划分为持有待售的负债 | decimal(20,4) | | +| estimate_liability_current | 预计负债-流动负债 | decimal(20,4) | | +| deferred_earning_current | 递延收益-流动负债 | decimal(20,4) | | +| preferred_shares_noncurrent | 优先股-非流动负债 | decimal(20,4) | | +| pepertual_liability_noncurrent | 永续债-非流动负债 | decimal(20,4) | | +| longterm_salaries_payable | 长期应付职工薪酬 | decimal(20,4) | | +| other_equity_tools | 其他权益工具 | decimal(20,4) | | +| preferred_shares_equity | 其中:优先股-所有者权益 | decimal(20,4) | | +| pepertual_liability_equity | 永续债-所有者权益 | decimal(20,4) | | +| other_current_assets | 其他流动资产 | decimal(20,4) | | +| other_non_current_assets | 其他非流动资产 | decimal(20,4) | | +| other_current_liability | 其他流动负债 | decimal(20,4) | | +| other_non_current_liability | 其他非流动负债 | decimal(20,4) | | +| ordinary_risk_reserve_fund | 一般风险准备 | decimal(20,4) | | +| contract_assets | 合同资产 | decimal(20,4) | | +| bond_invest | 债权投资 | decimal(20,4) | | +| other_bond_invest | 其他债权投资 | decimal(20,4) | | +| other_equity_tools_invest | 其他权益工具投资 | decimal(20,4) | | +| other_non_current_financial_assets | 其他非流动金融资产 | decimal(20,4) | | +| contract_liability | 合同负债 | decimal(20,4) | | +| receivable_fin | 应收款项融资 | decimal(20,4) | | +| usufruct_assets | 使用权资产 | decimal(20,4) | | +| bill_and_account_payable | 应付票据及应付账款 | decimal(20,4) | | +| bill_and_account_receivable | 应收票据及应收账款 | decimal(20,4) | | +| lease_liability | 租赁负债 | decimal(20,4) | | +- **报表来源编码** + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.STK_BALANCE_SHEET.code==code)**:指定筛选条件,通过finance.STK_BALANCE_SHEET.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_BALANCE_SHEET.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的合并资产负债表信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2015年之后公告的合并资产负债表数据,取出本期的货币资金,总资产和总负债 +from jqdata import * +q=query(finance.STK_BALANCE_SHEET.company_name, + finance.STK_BALANCE_SHEET.code, + finance.STK_BALANCE_SHEET.pub_date, + finance.STK_BALANCE_SHEET.start_date, + finance.STK_BALANCE_SHEET.end_date, + finance.STK_BALANCE_SHEET.cash_equivalents, + finance.STK_BALANCE_SHEET.total_assets, + finance.STK_BALANCE_SHEET.total_liability +).filter(finance.STK_BALANCE_SHEET.code=='600519.XSHG',finance.STK_BALANCE_SHEET.pub_date>='2015-01-01',finance.STK_BALANCE_SHEET.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 +8 贵州茅台酒股份有限公司 600519.XSHG 2017-04-15 2016-01-01 2016-12-31 +9 贵州茅台酒股份有限公司 600519.XSHG 2017-04-25 2017-01-01 2017-03-31 +10 贵州茅台酒股份有限公司 600519.XSHG 2017-07-28 2017-01-01 2017-06-30 +11 贵州茅台酒股份有限公司 600519.XSHG 2017-10-26 2017-01-01 2017-09-30 +12 贵州茅台酒股份有限公司 600519.XSHG 2018-03-28 2017-01-01 2017-12-31 +13 贵州茅台酒股份有限公司 600519.XSHG 2018-04-28 2018-01-01 2018-03-31 +14 贵州茅台酒股份有限公司 600519.XSHG 2018-08-02 2018-01-01 2018-06-30 + + cash_equivalents total_assets total_liability +0 2.771072e+10 6.587317e+10 1.056161e+10 +1 2.842068e+10 6.876902e+10 8.838873e+09 +2 3.023650e+10 7.233774e+10 8.675962e+09 +3 3.053612e+10 7.755903e+10 1.564019e+10 +4 3.680075e+10 8.630146e+10 2.006729e+10 +5 4.377574e+10 9.069045e+10 1.974919e+10 +6 4.752806e+10 9.554650e+10 2.819334e+10 +7 6.199974e+10 1.051460e+11 3.386253e+10 +8 6.685496e+10 1.129345e+11 3.703600e+10 +9 7.270833e+10 1.189787e+11 3.652483e+10 +10 7.363535e+10 1.203827e+11 4.131949e+10 +11 8.096468e+10 1.277800e+11 3.939919e+10 +12 8.786887e+10 1.346101e+11 3.859049e+10 +13 8.721137e+10 1.344049e+11 2.925526e+10 +14 8.366017e+10 1.299148e+11 3.341036e+10 +``` + +### 母公司资产负债表 + +``` + +from jqdata import finance +finance.run_query(query(finance.STK_BALANCE_SHEET_PARENT).filter(finance.STK_BALANCE_SHEET_PARENT.code==code).limit(n)) +``` + +获取上市公司定期公告中公布的母公司资产负债表(2007版) + +**参数:** + +- **query(finance.STK_BALANCE_SHEET_PARENT)**:表示从finance.STK_BALANCE_SHEET_PARENT这张表中查询上市公司定期公告中公布的母公司资产负债表信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.STK_BALANCE_SHEET_PARENT**:代表上市公司母公司资产负债表信息,收录了上市公司定期公告中公布的母公司资产负债表数据,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 股票代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source6) | +| source | 报表来源 | varchar(60) | | +| cash_equivalents | 货币资金 | decimal(20,4) | | +| trading_assets | 交易性金融资产 | decimal(20,4) | | +| bill_receivable | 应收票据 | decimal(20,4) | | +| account_receivable | 应收账款 | decimal(20,4) | | +| advance_payment | 预付款项 | decimal(20,4) | | +| other_receivable | 其他应收款 | decimal(20,4) | | +| affiliated_company_receivable | 应收关联公司款 | decimal(20,4) | | +| interest_receivable | 应收利息 | decimal(20,4) | | +| dividend_receivable | 应收股利 | decimal(20,4) | | +| inventories | 存货 | decimal(20,4) | | +| expendable_biological_asset | 消耗性生物资产 | decimal(20,4) | 消耗性生物资产,是指为出售而持有的、或在将来收获为农产品的[生物资产](http://wiki.mbalib.com/wiki/%E7%94%9F%E7%89%A9%E8%B5%84%E4%BA%A7),包括生长中的大田作物、蔬菜、[用材林](http://wiki.mbalib.com/wiki/%E7%94%A8%E6%9D%90%E6%9E%97)以及存栏代售的牲畜等 | +| non_current_asset_in_one_year | 一年内到期的非流动资产 | decimal(20,4) | | +| total_current_assets | 流动资产合计 | decimal(20,4) | | +| hold_for_sale_assets | 可供出售金融资产 | decimal(20,4) | | +| hold_to_maturity_investments | 持有至到期投资 | decimal(20,4) | | +| longterm_receivable_account | 长期应收款 | decimal(20,4) | | +| longterm_equity_invest | 长期股权投资 | decimal(20,4) | | +| investment_property | 投资性房地产 | decimal(20,4) | | +| fixed_assets | 固定资产 | decimal(20,4) | | +| constru_in_process | 在建工程 | decimal(20,4) | | +| construction_materials | 工程物资 | decimal(20,4) | | +| fixed_assets_liquidation | 固定资产清理 | decimal(20,4) | | +| biological_assets | 生产性生物资产 | decimal(20,4) | | +| oil_gas_assets | 油气资产 | decimal(20,4) | | +| intangible_assets | 无形资产 | decimal(20,4) | | +| development_expenditure | 开发支出 | decimal(20,4) | | +| good_will | 商誉 | decimal(20,4) | | +| long_deferred_expense | 长期待摊费用 | decimal(20,4) | | +| deferred_tax_assets | 递延所得税资产 | decimal(20,4) | | +| total_non_current_assets | 非流动资产合计 | decimal(20,4) | | +| total_assets | 资产总计 | decimal(20,4) | | +| shortterm_loan | 短期借款 | decimal(20,4) | | +| trading_liability | 交易性金融负债 | decimal(20,4) | | +| notes_payable | 应付票据 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| advance_peceipts | 预收款项 | decimal(20,4) | | +| salaries_payable | 应付职工薪酬 | decimal(20,4) | | +| taxs_payable | 应交税费 | decimal(20,4) | | +| interest_payable | 应付利息 | decimal(20,4) | | +| dividend_payable | 应付股利 | decimal(20,4) | | +| other_payable | 其他应付款 | decimal(20,4) | | +| affiliated_company_payable | 应付关联公司款 | decimal(20,4) | | +| non_current_liability_in_one_year | 一年内到期的非流动负债 | decimal(20,4) | | +| total_current_liability | 流动负债合计 | decimal(20,4) | | +| longterm_loan | 长期借款 | decimal(20,4) | | +| bonds_payable | 应付债券 | decimal(20,4) | | +| longterm_account_payable | 长期应付款 | decimal(20,4) | | +| specific_account_payable | 专项应付款 | decimal(20,4) | | +| estimate_liability | 预计负债 | decimal(20,4) | | +| deferred_tax_liability | 递延所得税负债 | decimal(20,4) | | +| total_non_current_liability | 非流动负债合计 | decimal(20,4) | | +| total_liability | 负债合计 | decimal(20,4) | | +| paidin_capital | 实收资本(或股本) | decimal(20,4) | | +| capital_reserve_fund | 资本公积 | decimal(20,4) | | +| specific_reserves | 专项储备 | decimal(20,4) | | +| surplus_reserve_fund | 盈余公积 | decimal(20,4) | | +| treasury_stock | 库存股 | decimal(20,4) | | +| retained_profit | 未分配利润 | decimal(20,4) | | +| equities_parent_company_owners | 归属于母公司所有者权益 | decimal(20,4) | | +| minority_interests | 少数股东权益 | decimal(20,4) | | +| foreign_currency_report_conv_diff | 外币报表折算价差 | decimal(20,4) | | +| irregular_item_adjustment | 非正常经营项目收益调整 | decimal(20,4) | | +| total_owner_equities | 所有者权益(或股东权益)合计 | decimal(20,4) | | +| total_sheet_owner_equities | 负债和所有者权益(或股东权益)合计 | decimal(20,4) | | +| other_comprehensive_income | 其他综合收益 | decimal(20,4) | | +| deferred_earning | 递延收益-非流动负债 | decimal(20,4) | | +| settlement_provi | 结算备付金 | decimal(20,4) | | +| lend_capital | 拆出资金 | decimal(20,4) | | +| loan_and_advance_current_assets | 发放贷款及垫款-流动资产 | decimal(20,4) | | +| derivative_financial_asset | 衍生金融资产 | decimal(20,4) | | +| insurance_receivables | 应收保费 | decimal(20,4) | | +| reinsurance_receivables | 应收分保账款 | decimal(20,4) | | +| reinsurance_contract_reserves_receivable | 应收分保合同准备金 | decimal(20,4) | | +| bought_sellback_assets | 买入返售金融资产 | decimal(20,4) | | +| hold_sale_asset | 划分为持有待售的资产 | decimal(20,4) | | +| loan_and_advance_noncurrent_assets | 发放贷款及垫款-非流动资产 | decimal(20,4) | | +| borrowing_from_centralbank | 向中央银行借款 | decimal(20,4) | | +| deposit_in_interbank | 吸收存款及同业存放 | decimal(20,4) | | +| borrowing_capital | 拆入资金 | decimal(20,4) | | +| derivative_financial_liability | 衍生金融负债 | decimal(20,4) | | +| sold_buyback_secu_proceeds | 卖出回购金融资产款 | decimal(20,4) | | +| commission_payable | 应付手续费及佣金 | decimal(20,4) | | +| reinsurance_payables | 应付分保账款 | decimal(20,4) | | +| insurance_contract_reserves | 保险合同准备金 | decimal(20,4) | | +| proxy_secu_proceeds | 代理买卖证券款 | decimal(20,4) | | +| receivings_from_vicariously_sold_securities | 代理承销证券款 | decimal(20,4) | | +| hold_sale_liability | 划分为持有待售的负债 | decimal(20,4) | | +| estimate_liability_current | 预计负债-流动负债 | decimal(20,4) | | +| deferred_earning_current | 递延收益-流动负债 | decimal(20,4) | | +| preferred_shares_noncurrent | 优先股-非流动负债 | decimal(20,4) | | +| pepertual_liability_noncurrent | 永续债-非流动负债 | decimal(20,4) | | +| longterm_salaries_payable | 长期应付职工薪酬 | decimal(20,4) | | +| other_equity_tools | 其他权益工具 | decimal(20,4) | | +| preferred_shares_equity | 其中:优先股-所有者权益 | decimal(20,4) | | +| pepertual_liability_equity | 永续债-所有者权益 | decimal(20,4) | | +| other_current_assets | 其他流动资产 | decimal(20,4) | | +| other_non_current_assets | 其他非流动资产 | decimal(20,4) | | +| other_current_liability | 其他流动负债 | decimal(20,4) | | +| other_non_current_liability | 其他非流动负债 | decimal(20,4) | | +| ordinary_risk_reserve_fund | 一般风险准备 | decimal(20,4) | | +| contract_assets | 合同资产 | decimal(20,4) | | +| bond_invest | 债权投资 | decimal(20,4) | | +| other_bond_invest | 其他债权投资 | decimal(20,4) | | +| other_equity_tools_invest | 其他权益工具投资 | decimal(20,4) | | +| other_non_current_financial_assets | 其他非流动金融资产 | decimal(20,4) | | +| contract_liability | 合同负债 | decimal(20,4) | | +| receivable_fin | 应收款项融资 | decimal(20,4) | | +| usufruct_assets | 使用权资产 | decimal(20,4) | | +| bill_and_account_payable | 应付票据及应付账款 | decimal(20,4) | | +| bill_and_account_receivable | 应收票据及应收账款 | decimal(20,4) | | +| lease_liability | 租赁负债 | decimal(20,4) | | +- **报表来源编码** + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.STK_BALANCE_SHEET_PARENT.code==code)**:指定筛选条件,通过finance.STK_BALANCE_SHEET_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.STK_BALANCE_SHEET_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日上市公司公布的母公司资产负债表信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询贵州茅台2015年之后公告的母公司资产负债表数据,取出本期的货币资金,总资产和总负债 +from jqdata import * +q=query(finance.STK_BALANCE_SHEET_PARENT.company_name, + finance.STK_BALANCE_SHEET_PARENT.code, + finance.STK_BALANCE_SHEET_PARENT.pub_date, + finance.STK_BALANCE_SHEET_PARENT.start_date, + finance.STK_BALANCE_SHEET_PARENT.end_date, + finance.STK_BALANCE_SHEET_PARENT.cash_equivalents, + finance.STK_BALANCE_SHEET_PARENT.total_assets, + finance.STK_BALANCE_SHEET_PARENT.total_liability +).filter(finance.STK_BALANCE_SHEET_PARENT.code=='600519.XSHG',finance.STK_BALANCE_SHEET_PARENT.pub_date>='2015-01-01',finance.STK_BALANCE_SHEET_PARENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2014-01-01 2014-12-31 +1 贵州茅台酒股份有限公司 600519.XSHG 2015-04-21 2015-01-01 2015-03-31 +2 贵州茅台酒股份有限公司 600519.XSHG 2015-08-28 2015-01-01 2015-06-30 +3 贵州茅台酒股份有限公司 600519.XSHG 2015-10-23 2015-01-01 2015-09-30 +4 贵州茅台酒股份有限公司 600519.XSHG 2016-03-24 2015-01-01 2015-12-31 +5 贵州茅台酒股份有限公司 600519.XSHG 2016-04-21 2016-01-01 2016-03-31 +6 贵州茅台酒股份有限公司 600519.XSHG 2016-08-27 2016-01-01 2016-06-30 +7 贵州茅台酒股份有限公司 600519.XSHG 2016-10-29 2016-01-01 2016-09-30 +8 贵州茅台酒股份有限公司 600519.XSHG 2017-04-15 2016-01-01 2016-12-31 +9 贵州茅台酒股份有限公司 600519.XSHG 2017-04-25 2017-01-01 2017-03-31 +10 贵州茅台酒股份有限公司 600519.XSHG 2017-07-28 2017-01-01 2017-06-30 +11 贵州茅台酒股份有限公司 600519.XSHG 2017-10-26 2017-01-01 2017-09-30 +12 贵州茅台酒股份有限公司 600519.XSHG 2018-03-28 2017-01-01 2017-12-31 +13 贵州茅台酒股份有限公司 600519.XSHG 2018-04-28 2018-01-01 2018-03-31 +14 贵州茅台酒股份有限公司 600519.XSHG 2018-08-02 2018-01-01 2018-06-30 + + cash_equivalents total_assets total_liability +0 1.070530e+10 4.662489e+10 1.693767e+10 +1 1.165218e+10 4.903731e+10 1.940782e+10 +2 1.239635e+10 5.079041e+10 2.125881e+10 +3 8.754779e+09 5.396424e+10 1.979558e+10 +4 1.505296e+10 5.512518e+10 2.082189e+10 +5 1.574722e+10 6.608276e+10 2.292887e+10 +6 1.898219e+10 6.186466e+10 2.658035e+10 +7 1.540346e+10 5.697338e+10 2.241995e+10 +8 1.651317e+10 5.966072e+10 2.385817e+10 +9 1.407649e+10 5.863382e+10 2.180735e+10 +10 1.455895e+10 6.757545e+10 3.133084e+10 +11 1.520003e+10 6.220742e+10 2.418794e+10 +12 1.553456e+10 6.507375e+10 2.699755e+10 +13 1.467512e+10 6.102503e+10 2.200076e+10 +14 1.495389e+10 7.800655e+10 2.929751e+09 +``` + +### 金融类合并利润表 + +#### 金融类合并利润表2007版 + +``` + +from jqdata import finance +finance.run_query(query(finance.FINANCE_INCOME_STATEMENT).filter(finance.FINANCE_INCOME_STATEMENT.code==code).limit(n)) +``` + +获取金融类上市公司的合并利润表信息 + +**参数:** + +- **query(finance.FINANCE_INCOME_STATEMENT)**:表示从finance.FINANCE_INCOME_STATEMENT这张表中查询金融类上市公司合并利润表的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FINANCE_INCOME_STATEMENT**:代表金融类上市公司合并利润表,收录了金融类上市公司的合并利润表,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 公司主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source7) | +| source | 报表来源 | varchar(60) | | +| operating_revenue | 营业收入 | decimal(20,4) | | +| interest_net_revenue | 利息净收入 | decimal(20,4) | | +| interest_income | 利息收入 | decimal(20,4) | | +| interest_expense | 利息支出 | decimal(20,4) | | +| commission_net_income | 手续费及佣金净收入 | decimal(20,4) | | +| commission_income | 手续费及佣金收入 | decimal(20,4) | | +| commission_expense | 手续费及佣金支出 | decimal(20,4) | | +| agent_security_income | 代理买卖证券业务净收入 | decimal(20,4) | | +| sell_security_income | 证券承销业务净收入 | decimal(20,4) | | +| manage_income | 委托客户管理资产业务净收入 | decimal(20,4) | | +| premiums_earned | 已赚保费 | decimal(20,4) | | +| assurance_income | 保险业务收入 | decimal(20,4) | | +| premiums_income | 分保费收入 | decimal(20,4) | | +| premiums_expense | 分出保费 | decimal(20,4) | | +| prepare_money | 提取未到期责任准备金 | decimal(20,4) | | +| investment_income | 投资收益 | decimal(20,4) | | +| invest_income_associates | 对联营企业和合营企业的投资收益 | decimal(20,4) | | +| fair_value_variable_income | 公允价值变动收益 | decimal(20,4) | | +| exchange_income | 汇兑收益 | decimal(20,4) | | +| other_income | 其他业务收入 | decimal(20,4) | | +| operation_expense | 营业支出 | decimal(20,4) | | +| refunded_premiums | 退保金 | decimal(20,4) | | +| compensate_loss | 赔付支出 | decimal(20,4) | | +| compensation_back | 摊回赔付支出 | decimal(20,4) | | +| insurance_reserve | 提取保险责任准备金 | decimal(20,4) | | +| insurance_reserve_back | 摊回保险责任准备金 | decimal(20,4) | | +| policy_dividend_payout | 保单红利支出 | decimal(20,4) | | +| reinsurance_cost | 分保费用 | decimal(20,4) | | +| operating_tax_surcharges | 营业税金及附加 | decimal(20,4) | | +| commission_expense2 | 手续费及佣金支出(保险专用) | decimal(20,4) | | +| operation_manage_fee | 业务及管理费 | decimal(20,4) | | +| separate_fee | 摊回分保费用 | decimal(20,4) | | +| asset_impairment_loss | 资产减值损失 | decimal(20,4) | | +| other_cost | 其他业务成本 | decimal(20,4) | | +| operating_profit | 营业利润 | decimal(20,4) | | +| subsidy_income | 补贴收入 | decimal(20,4) | | +| non_operating_revenue | 营业外收入 | decimal(20,4) | | +| non_operating_expense | 营业外支出 | decimal(20,4) | | +| other_items_influenced_profit | 影响利润总额的其他科目 | decimal(20,4) | | +| total_profit | 利润总额 | decimal(20,4) | | +| income_tax_expense | 所得税费用 | decimal(20,4) | | +| other_influence_net_profit | 影响净利润的其他科目 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| np_parent_company_owners | 归属于母公司股东的净利润 | decimal(20,4) | | +| minority_profit | 少数股东损益 | decimal(20,4) | | +| eps | 每股收益 | decimal(20,4) | | +| basic_eps | 基本每股收益 | decimal(20,4) | | +| diluted_eps | 稀释每股收益 | decimal(20,4) | | +| other_composite_income | 其他综合收益 | decimal(20,4) | | +| total_composite_income | 综合收益总额 | decimal(20,4) | | +| ci_parent_company_owners | 归属于母公司的综合收益 | decimal(20,4) | | +| ci_minority_owners | 归属于少数股东的综合收益 | decimal(20,4) | | +| other_earnings | 其他收益 | decimal(20,4) | | +| asset_deal_income | 资产处置收益 | decimal(20,4) | | +| sust_operate_net_profit | 持续经营净利润 | decimal(20,4) | | +| discon_operate_net_profit | 终止经营净利润 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失 | decimal(20,4) | | +- **报表来源编码** + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- filter(finance.FINANCE_INCOME_STATEMENT.code==code)**:指定筛选条件,通过finance.FINANCE_INCOME_STATEMENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_INCOME_STATEMENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的合并利润表信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询中国平安2015年之后公告的合并利润表数据,指定只取出本期数据 +from jqdata import finance +q=query(finance.FINANCE_INCOME_STATEMENT).filter(finance.FINANCE_INCOME_STATEMENT.code=='601318.XSHG',finance.FINANCE_INCOME_STATEMENT.pub_date>='2015-01-01',finance.FINANCE_INCOME_STATEMENT.report_type==0).limit(10) +df=finance.run_query(q) +print(df) + + id company_id company_name code a_code b_code h_code \ +0 246 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +1 248 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +2 250 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +3 252 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +4 254 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +5 256 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +6 258 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +7 260 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +8 262 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +9 264 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +10 265 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +11 266 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +12 267 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +13 4189 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +14 4333 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 + + pub_date start_date end_date ... net_profit \ +0 2015-03-20 2014-01-01 2014-12-31 ... 47930000000 +1 2015-04-30 2015-01-01 2015-03-31 ... 22436000000 +2 2015-08-21 2015-01-01 2015-06-30 ... 39911000000 +3 2015-10-28 2015-01-01 2015-09-30 ... 56405000000 +4 2016-03-16 2015-01-01 2015-12-31 ... 65178000000 +5 2016-04-27 2016-01-01 2016-03-31 ... 23389000000 +6 2016-08-18 2016-01-01 2016-06-30 ... 46308000000 +7 2016-10-28 2016-01-01 2016-09-30 ... 64813000000 +8 2017-03-23 2016-01-01 2016-12-31 ... 72368000000 +9 2017-04-28 2017-01-01 2017-03-31 ... 25740000000 +10 2017-08-18 2017-01-01 2017-06-30 ... 49093000000 +11 2017-10-28 2017-01-01 2017-09-30 ... 75219000000 +12 2018-03-21 2017-01-01 2017-12-31 ... 99978000000 +13 2018-04-27 2018-01-01 2018-03-31 ... 28951000000 +14 2018-08-22 2018-01-01 2018-06-30 ... 64770000000 + + np_parent_company_owners minority_profit eps basic_eps diluted_eps \ +0 39279000000 8651000000 NaN 4.93 4.68 +1 19964000000 2472000000 NaN 2.19 2.19 +2 34649000000 5262000000 NaN 1.90 1.90 +3 48276000000 8129000000 NaN 2.64 2.64 +4 54203000000 10975000000 NaN 2.98 2.98 +5 20700000000 2689000000 NaN 1.16 1.16 +6 40776000000 5532000000 NaN 2.28 2.28 +7 56508000000 8305000000 NaN 3.17 3.16 +8 62394000000 9974000000 NaN 3.50 3.49 +9 23053000000 2687000000 NaN 1.29 1.29 +10 43427000000 5666000000 NaN 2.43 2.43 +11 66318000000 8901000000 NaN 3.72 3.71 +12 89088000000 10890000000 NaN 4.99 4.99 +13 25702000000 3249000000 NaN 1.44 1.44 +14 58095000000 6675000000 NaN 3.26 3.25 + + other_composite_income total_composite_income ci_parent_company_owners \ +0 30774000000 7.870400e+10 6.959000e+10 +1 -3572000000 1.886400e+10 1.633600e+10 +2 71000000 3.998200e+10 3.450800e+10 +3 -13161000000 4.324400e+10 3.488100e+10 +4 752000000 6.593000e+10 5.456500e+10 +5 -11246000000 1.214300e+10 9.509000e+09 +6 -9129000000 3.717900e+10 3.167900e+10 +7 -5917000000 5.889600e+10 5.050300e+10 +8 -7567000000 6.480100e+10 5.471000e+10 +9 6311000000 3.205100e+10 2.923600e+10 +10 9927000000 5.902000e+10 5.315300e+10 +11 17846000000 9.306500e+10 8.369900e+10 +12 21881000000 1.218590e+11 1.106720e+11 +13 -658000000 2.829300e+10 2.481100e+10 +14 130000000 6.490000e+10 5.787400e+10 + + ci_minority_owners +0 9114000000 +1 2528000000 +2 5474000000 +3 8363000000 +4 11365000000 +5 2634000000 +6 5500000000 +7 8393000000 +8 10091000000 +9 2815000000 +10 5867000000 +11 9366000000 +12 11187000000 +13 3482000000 +14 7026000000 + +[15 rows x 66 columns] +``` + +### 金融类母公司利润表 + +``` + +from jqdata import finance +finance.run_query(query(finance.FINANCE_INCOME_STATEMENT_PARENT).filter(finance.FINANCE_INCOME_STATEMENT_PARENT.code==code).limit(n)) +``` + +获取金融类上市公司的母公司利润表信息 + +**参数:** + +- **query(finance.FINANCE_INCOME_STATEMENT_PARENT)**:表示从finance.FINANCE_INCOME_STATEMENT_PARENT这张表中查询金融类上市公司母公司利润表的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FINANCE_INCOME_STATEMENT_PARENT**:代表金融类上市公司母公司利润表,收录了金融类上市公司的母公司利润表,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 公司主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source8) | +| source | 报表来源 | varchar(60) | | +| operating_revenue | 营业收入 | decimal(20,4) | | +| interest_net_revenue | 利息净收入 | decimal(20,4) | | +| interest_income | 利息收入 | decimal(20,4) | | +| interest_expense | 利息支出 | decimal(20,4) | | +| commission_net_income | 手续费及佣金净收入 | decimal(20,4) | | +| commission_income | 手续费及佣金收入 | decimal(20,4) | | +| commission_expense | 手续费及佣金支出 | decimal(20,4) | | +| agent_security_income | 代理买卖证券业务净收入 | decimal(20,4) | | +| sell_security_income | 证券承销业务净收入 | decimal(20,4) | | +| manage_income | 委托客户管理资产业务净收入 | decimal(20,4) | | +| premiums_earned | 已赚保费 | decimal(20,4) | | +| assurance_income | 保险业务收入 | decimal(20,4) | | +| premiums_income | 分保费收入 | decimal(20,4) | | +| premiums_expense | 分出保费 | decimal(20,4) | | +| prepare_money | 提取未到期责任准备金 | decimal(20,4) | | +| investment_income | 投资收益 | decimal(20,4) | | +| invest_income_associates | 对联营企业和合营企业的投资收益 | decimal(20,4) | | +| fair_value_variable_income | 公允价值变动收益 | decimal(20,4) | | +| exchange_income | 汇兑收益 | decimal(20,4) | | +| other_income | 其他业务收入 | decimal(20,4) | | +| operation_expense | 营业支出 | decimal(20,4) | | +| refunded_premiums | 退保金 | decimal(20,4) | | +| compensate_loss | 赔付支出 | decimal(20,4) | | +| compensation_back | 摊回赔付支出 | decimal(20,4) | | +| insurance_reserve | 提取保险责任准备金 | decimal(20,4) | | +| insurance_reserve_back | 摊回保险责任准备金 | decimal(20,4) | | +| policy_dividend_payout | 保单红利支出 | decimal(20,4) | | +| reinsurance_cost | 分保费用 | decimal(20,4) | | +| operating_tax_surcharges | 营业税金及附加 | decimal(20,4) | | +| commission_expense2 | 手续费及佣金支出(保险专用) | decimal(20,4) | | +| operation_manage_fee | 业务及管理费 | decimal(20,4) | | +| separate_fee | 摊回分保费用 | decimal(20,4) | | +| asset_impairment_loss | 资产减值损失 | decimal(20,4) | | +| other_cost | 其他业务成本 | decimal(20,4) | | +| operating_profit | 营业利润 | decimal(20,4) | | +| subsidy_income | 补贴收入 | decimal(20,4) | | +| non_operating_revenue | 营业外收入 | decimal(20,4) | | +| non_operating_expense | 营业外支出 | decimal(20,4) | | +| other_items_influenced_profit | 影响利润总额的其他科目 | decimal(20,4) | | +| total_profit | 利润总额 | decimal(20,4) | | +| income_tax_expense | 所得税费用 | decimal(20,4) | | +| other_influence_net_profit | 影响净利润的其他科目 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| np_parent_company_owners | 归属于母公司股东的净利润 | decimal(20,4) | | +| minority_profit | 少数股东损益 | decimal(20,4) | | +| eps | 每股收益 | decimal(20,4) | | +| basic_eps | 基本每股收益 | decimal(20,4) | | +| diluted_eps | 稀释每股收益 | decimal(20,4) | | +| other_composite_income | 其他综合收益 | decimal(20,4) | | +| total_composite_income | 综合收益总额 | decimal(20,4) | | +| ci_parent_company_owners | 归属于母公司的综合收益 | decimal(20,4) | | +| ci_minority_owners | 归属于少数股东的综合收益 | decimal(20,4) | | +| other_earnings | 其他收益 | decimal(20,4) | | +| asset_deal_income | 资产处置收益 | decimal(20,4) | | +| sust_operate_net_profit | 持续经营净利润 | decimal(20,4) | | +| discon_operate_net_profit | 终止经营净利润 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失 | decimal(20,4) | | +- **报表来源编码** + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- filter(finance.FINANCE_INCOME_STATEMENT_PARENT.code==code)**:指定筛选条件,通过finance.FINANCE_INCOME_STATEMENT_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_INCOME_STATEMENT_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的母公司利润表信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询中国平安2015年之后公告的母公司利润表数据,指定只取出本期数据 +from jqdata import finance +q=query(finance.FINANCE_INCOME_STATEMENT_PARENT).filter(finance.FINANCE_INCOME_STATEMENT_PARENT.code=='601318.XSHG', finance.FINANCE_INCOME_STATEMENT_PARENT.pub_date>='2015-01-01', finance.FINANCE_INCOME_STATEMENT_PARENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + id company_id company_name code a_code b_code h_code \ +0 214 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +1 216 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +2 218 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +3 220 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +4 222 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +5 224 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +6 226 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +7 228 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +8 230 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +9 232 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +10 233 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +11 234 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +12 235 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +13 3508 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 +14 3638 300002221 中国平安保险(集团)股份有限公司 601318.XSHG 601318 None 02318 + + pub_date start_date end_date ... net_profit \ +0 2015-03-20 2014-01-01 2014-12-31 ... 7214000000 +1 2015-04-30 2015-01-01 2015-03-31 ... 316000000 +2 2015-08-21 2015-01-01 2015-06-30 ... 8390000000 +3 2015-10-28 2015-01-01 2015-09-30 ... 8969000000 +4 2016-03-16 2015-01-01 2015-12-31 ... 10280000000 +5 2016-04-27 2016-01-01 2016-03-31 ... 181000000 +6 2016-08-18 2016-01-01 2016-06-30 ... 13850000000 +7 2016-10-28 2016-01-01 2016-09-30 ... 13747000000 +8 2017-03-23 2016-01-01 2016-12-31 ... 28678000000 +9 2017-04-28 2017-01-01 2017-03-31 ... 2000000 +10 2017-08-18 2017-01-01 2017-06-30 ... 12068000000 +11 2017-10-28 2017-01-01 2017-09-30 ... 14439000000 +12 2018-03-21 2017-01-01 2017-12-31 ... 29238000000 +13 2018-04-27 2018-01-01 2018-03-31 ... -214000000 +14 2018-08-22 2018-01-01 2018-06-30 ... 21911000000 + + np_parent_company_owners minority_profit eps basic_eps diluted_eps \ +0 7214000000 NaN NaN NaN NaN +1 316000000 NaN NaN NaN NaN +2 8390000000 NaN NaN NaN NaN +3 8969000000 NaN NaN NaN NaN +4 10280000000 NaN NaN NaN NaN +5 181000000 NaN NaN NaN NaN +6 13850000000 NaN NaN NaN NaN +7 13747000000 NaN NaN NaN NaN +8 28678000000 NaN NaN NaN NaN +9 2000000 NaN NaN NaN NaN +10 12068000000 NaN NaN NaN NaN +11 14439000000 NaN NaN NaN NaN +12 29238000000 NaN NaN NaN NaN +13 -214000000 NaN NaN NaN NaN +14 21911000000 NaN NaN NaN NaN + + other_composite_income total_composite_income ci_parent_company_owners \ +0 235000000 7449000000 NaN +1 -47000000 269000000 NaN +2 85000000 8475000000 NaN +3 191000000 9160000000 NaN +4 436000000 10716000000 NaN +5 -38000000 143000000 NaN +6 -48000000 13802000000 13802000000 +7 7000000 13754000000 13754000000 +8 -285000000 28393000000 28393000000 +9 -9000000 -7000000 NaN +10 7000000 12075000000 12075000000 +11 41000000 14480000000 14480000000 +12 -172000000 29066000000 29066000000 +13 52000000 -162000000 -162000000 +14 84000000 21995000000 21995000000 + + ci_minority_owners +0 NaN +1 NaN +2 NaN +3 NaN +4 NaN +5 NaN +6 NaN +7 NaN +8 NaN +9 NaN +10 NaN +11 NaN +12 NaN +13 NaN +14 NaN + +[15 rows x 66 columns] +``` + +### 金融类合并现金流量表 + +#### 金融类合并现金流量表2007版 + +``` + +from jqdata import finance +finance.run_query(query(finance.FINANCE_CASHFLOW_STATEMENT).filter(finance.FINANCE_CASHFLOW_STATEMENT.code==code).limit(n)) +``` + +获取金融类上市公司的合并现金流量表信息 + +**参数:** + +- **query(finance.FINANCE_CASHFLOW_STATEMENT)**:表示从finance.FINANCE_CASHFLOW_STATEMENT这张表中查询金融类上市公司合并现金流量的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FINANCE_CASHFLOW_STATEMENT**:代表金融类上市公司合并现金流量表,收录了金融类上市公司的合并现金流量,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 公司主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source9) | +| source | 报表来源 | varchar(60) | | +| operate_cash_flow | 经营活动产生的现金流量 | decimal(20,4) | | +| net_loan_and_advance_decrease | 客户贷款及垫款净减少额 | decimal(20,4) | | +| net_deposit_increase | 客户存款和同业存放款项净增加额 | decimal(20,4) | | +| net_borrowing_from_central_bank | 向中央银行借款净增加额 | decimal(20,4) | | +| net_deposit_in_cb_and_ib_de | 存放中央银行和同业款项净减少额 | decimal(20,4) | | +| net_borrowing_from_finance_co | 向其他金融机构拆入资金净增加额 | decimal(20,4) | | +| interest_and_commission_cashin | 收取利息、手续费及佣金的现金 | decimal(20,4) | | +| trade_asset_increase | 处置交易性金融资产净增加额 | decimal(20,4) | | +| net_increase_in_placements | 拆入资金净增加额 | decimal(20,4) | | +| net_buyback | 回购业务资金净增加额 | decimal(20,4) | | +| goods_sale_and_service_render_cash | 销售商品、提供劳务收到的现金 | decimal(20,4) | | +| tax_levy_refund | 收到的税费返还 | decimal(20,4) | | +| net_original_insurance_cash | 收到原保险合同保费取得的现金 | decimal(20,4) | | +| insurance_cash_amount | 收到再保业务现金净额 | decimal(20,4) | | +| net_insurer_deposit_investment | 保户储金及投资款净增加额 | decimal(20,4) | | +| subtotal_operate_cash_inflow | 经营活动现金流入小计 | decimal(20,4) | | +| net_loan_and_advance_increase | 客户贷款及垫款净增加额 | decimal(20,4) | | +| saving_clients_decrease_amount | 客户存放及同业存放款项净减少额 | decimal(20,4) | | +| net_deposit_in_cb_and_ib | 存放中央银行和同业款项净增加额 | decimal(20,4) | | +| central_borrowing_decrease | 向中央银行借款净减少额 | decimal(20,4) | | +| other_money_increase | 向其他金融机构拆出资金净增加额 | decimal(20,4) | | +| purchase_trade_asset_increase | 购入交易性金融资产净增加额 | decimal(20,4) | | +| repurchase_decrease | 回购业务资金净减少额 | decimal(20,4) | | +| handling_charges_and_commission | 支付利息、手续费及佣金的现金 | decimal(20,4) | | +| goods_and_services_cash_paid | 购买商品、提供劳务支付的现金 | decimal(20,4) | | +| net_cash_re_insurance | 支付再保业务现金净额 | decimal(20,4) | | +| reserve_investment_decrease | 保户储金及投资款净减少额 | decimal(20,4) | | +| original_compensation_paid | 支付原保险合同赔付款项的现金 | decimal(20,4) | | +| policy_dividend_cash_paid | 支付保单红利的现金 | decimal(20,4) | | +| staff_behalf_paid | 支付给职工以及为职工支付的现金 | decimal(20,4) | | +| tax_payments | 支付的各项税费 | decimal(20,4) | | +| subtotal_operate_cash_outflow | 经营活动现金流出小计 | decimal(20,4) | | +| net_operate_cash_flow | 经营活动现金流量净额 | decimal(20,4) | | +| invest_cash_flow | 投资活动产生的现金流量 | decimal(20,4) | | +| invest_withdrawal_cash | 收回投资收到的现金 | decimal(20,4) | | +| invest_proceeds | 取得投资收益收到的现金 | decimal(20,4) | | +| gain_from_disposal | 处置固定资产、无形资产和其他长期资产所收回的现金 | decimal(20,4) | | +| subtotal_invest_cash_inflow | 投资活动现金流入小计 | decimal(20,4) | | +| invest_cash_paid | 投资支付的现金 | decimal(20,4) | | +| impawned_loan_net_increase | 质押贷款净增加额 | decimal(20,4) | | +| fix_intan_other_asset_acqui_cash | 购建固定资产、无形资产和其他长期资产支付的现金 | decimal(20,4) | | +| subtotal_invest_cash_outflow | 投资活动现金流出小计 | decimal(20,4) | | +| net_invest_cash_flow | 投资活动现金流量净额 | decimal(20,4) | | +| finance_cash_flow | 筹资活动产生的现金流量 | decimal(20,4) | | +| cash_from_invest | 吸收投资收到的现金 | decimal(20,4) | | +| cash_from_bonds_issue | 发行债券收到的现金 | decimal(20,4) | | +| cash_from_borrowing | 取得借款收到的现金 | decimal(20,4) | | +| subtotal_finance_cash_inflow | 筹资活动现金流入小计 | decimal(20,4) | | +| borrowing_repayment | 偿还债务支付的现金 | decimal(20,4) | | +| dividend_interest_payment | 分配股利、利润或偿付利息支付的现金 | decimal(20,4) | | +| subtotal_finance_cash_outflow | 筹资活动现金流出小计 | decimal(20,4) | | +| net_finance_cash_flow | 筹资活动产生的现金流量净额 | decimal(20,4) | | +| exchange_rate_change_effect | 汇率变动对现金的影响 | decimal(20,4) | | +| other_reason_effect_cash | 其他原因对现金的影响 | decimal(20,4) | | +| cash_equivalent_increase | 现金及现金等价物净增加额 | decimal(20,4) | | +| cash_equivalents_at_beginning | 期初现金及现金等价物余额 | decimal(20,4) | | +| cash_and_equivalents_at_end | 期末现金及现金等价物余额 | decimal(20,4) | | +| net_profit_cashflow_adjustment | 将净利润调节为经营活动现金流量 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| assets_depreciation_reserves | 资产减值准备 | decimal(20,4) | | +| fixed_assets_depreciation | 固定资产折旧、油气资产折耗、生产性生物资产折旧 | decimal(20,4) | | +| intangible_assets_amortization | 无形资产摊销 | decimal(20,4) | | +| defferred_expense_amortization | 长期待摊费用摊销 | decimal(20,4) | | +| fix_intan_other_asset_dispo_loss | 处置固定资产、无形资产和其他长期资产的损失 | decimal(20,4) | | +| fixed_asset_scrap_loss | 固定资产报废损失 | decimal(20,4) | | +| fair_value_change_loss | 公允价值变动损失 | decimal(20,4) | | +| financial_cost | 财务费用 | decimal(20,4) | | +| invest_loss | 投资损失 | decimal(20,4) | | +| deffered_tax_asset_decrease | 递延所得税资产减少 | decimal(20,4) | | +| deffered_tax_liability_increase | 递延所得税负债增加 | decimal(20,4) | | +| inventory_decrease | 存货的减少 | decimal(20,4) | | +| operate_receivables_decrease | 经营性应收项目的减少 | decimal(20,4) | | +| operate_payable_increase | 经营性应付项目的增加 | decimal(20,4) | | +| others | 其他 | decimal(20,4) | | +| net_operate_cash_flow2 | 经营活动产生的现金流量净额_间接法 | decimal(20,4) | | +| activities_not_relate_major | 不涉及现金收支的重大投资和筹资活动 | decimal(20,4) | | +| debt_to_capital | 债务转为资本 | decimal(20,4) | | +| cbs_expiring_in_one_year | 一年内到期的可转换公司债券 | decimal(20,4) | | +| financial_lease_fixed_assets | 融资租入固定资产 | decimal(20,4) | | +| change_info_cash | 现金及现金等价物净变动情况 | decimal(20,4) | | +| cash_at_end | 现金的期末余额 | decimal(20,4) | | +| cash_at_beginning | 现金的期初余额 | decimal(20,4) | | +| equivalents_at_end | 现金等价物的期末余额 | decimal(20,4) | | +| equivalents_at_beginning | 现金等价物的期初余额 | decimal(20,4) | | +| other_influence2 | 其他原因对现金的影响2 | decimal(20,4) | | +| cash_equivalent_increase2 | 现金及现金等价物净增加额2 | decimal(20,4) | | +| investment_property_depreciation | 投资性房地产的折旧及摊销 | decimal(20,4) | | +| net_dec_finance_out | 融出资金净减少额 | decimal(20,4) | | +| net_cash_received_from_proxy_secu | 代理买卖证券收到的现金净额 | decimal(20,4) | | +| net_inc_finance_out | 融出资金净增加额 | decimal(20,4) | | +| net_cash_paid_to_proxy_secu | 代理买卖证券支付的现金净额 | decimal(20,4) | | +| net_dec_in_placements | 拆入资金净减少额 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失(现金流量表补充科目) | decimal(20,4) | | +- **报表来源编码** + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.FINANCE_CASHFLOW_STATEMENT.code==code)**:指定筛选条件,通过finance.FINANCE_CASHFLOW_STATEMENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_CASHFLOW_STATEMENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的合并现金流量信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询中国平安2015年之后公告的合并现金流量表数据,指定只取出本期数据经营活动现金流量净额,投资活动现金流量净额,以及筹资活动现金流量净额 +from jqdata import * +q=query(finance.FINANCE_CASHFLOW_STATEMENT.company_name, + finance.FINANCE_CASHFLOW_STATEMENT.code, + finance.FINANCE_CASHFLOW_STATEMENT.pub_date, + finance.FINANCE_CASHFLOW_STATEMENT.start_date, + finance.FINANCE_CASHFLOW_STATEMENT.end_date, + finance.FINANCE_CASHFLOW_STATEMENT.net_operate_cash_flow, + finance.FINANCE_CASHFLOW_STATEMENT.net_invest_cash_flow, +finance.FINANCE_CASHFLOW_STATEMENT.net_finance_cash_flow).filter(finance.FINANCE_CASHFLOW_STATEMENT.code=='601318.XSHG',finance.FINANCE_CASHFLOW_STATEMENT.pub_date>='2015-01-01',finance.FINANCE_CASHFLOW_STATEMENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 中国平安保险(集团)股份有限公司 601318.XSHG 2015-03-20 2014-01-01 2014-12-31 +1 中国平安保险(集团)股份有限公司 601318.XSHG 2015-04-30 2015-01-01 2015-03-31 +2 中国平安保险(集团)股份有限公司 601318.XSHG 2015-08-21 2015-01-01 2015-06-30 +3 中国平安保险(集团)股份有限公司 601318.XSHG 2015-10-28 2015-01-01 2015-09-30 +4 中国平安保险(集团)股份有限公司 601318.XSHG 2016-03-16 2015-01-01 2015-12-31 +5 中国平安保险(集团)股份有限公司 601318.XSHG 2016-04-27 2016-01-01 2016-03-31 +6 中国平安保险(集团)股份有限公司 601318.XSHG 2016-08-18 2016-01-01 2016-06-30 +7 中国平安保险(集团)股份有限公司 601318.XSHG 2016-10-28 2016-01-01 2016-09-30 +8 中国平安保险(集团)股份有限公司 601318.XSHG 2017-03-23 2016-01-01 2016-12-31 +9 中国平安保险(集团)股份有限公司 601318.XSHG 2017-04-28 2017-01-01 2017-03-31 +10 中国平安保险(集团)股份有限公司 601318.XSHG 2017-08-18 2017-01-01 2017-06-30 +11 中国平安保险(集团)股份有限公司 601318.XSHG 2017-10-28 2017-01-01 2017-09-30 +12 中国平安保险(集团)股份有限公司 601318.XSHG 2018-03-21 2017-01-01 2017-12-31 +13 中国平安保险(集团)股份有限公司 601318.XSHG 2018-04-27 2018-01-01 2018-03-31 +14 中国平安保险(集团)股份有限公司 601318.XSHG 2018-08-22 2018-01-01 2018-06-30 + + net_operate_cash_flow net_invest_cash_flow net_finance_cash_flow +0 1.702600e+11 -2.368890e+11 8.536800e+10 +1 6.114900e+10 -4.478700e+10 1.996200e+10 +2 2.478960e+11 -1.355150e+11 1.059350e+11 +3 1.710670e+11 -1.442380e+11 1.675280e+11 +4 1.356180e+11 -2.737320e+11 2.049760e+11 +5 1.192720e+11 -1.241580e+11 5.367100e+10 +6 6.599800e+10 -2.663960e+11 1.714720e+11 +7 -1.702500e+10 -1.942610e+11 1.291400e+11 +8 2.278210e+11 -3.306160e+11 1.330040e+11 +9 -4.168500e+10 -9.311700e+10 5.026700e+10 +10 -1.397500e+10 -2.399940e+11 1.139460e+11 +11 7.821000e+09 -2.805420e+11 1.511410e+11 +12 1.212830e+11 -3.547670e+11 1.785880e+11 +13 1.398670e+11 -8.252000e+10 -1.837000e+09 +14 1.616070e+11 -6.376100e+10 -3.634900e+10 +``` + +### 金融类母公司现金流量表 + +``` + +from jqdata import finance +finance.run_query(query(finance.FINANCE_CASHFLOW_STATEMENT_PARENT).filter(finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code==code).limit(n)) +``` + +获取金融类上市公司的母公司现金流量表信息 + +**参数:** + +- **query(finance.FINANCE_CASHFLOW_STATEMENT_PARENT)**:表示从finance.FINANCE_CASHFLOW_STATEMENT_PARENT这张表中查询金融类上市公司母公司现金流量的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FINANCE_CASHFLOW_STATEMENT_PARENT**:代表金融类上市公司母公司现金流量表,收录了金融类上市公司的母公司现金流量,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 公司主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source10) | +| source | 报表来源 | varchar(60) | | +| operate_cash_flow | 经营活动产生的现金流量 | decimal(20,4) | | +| net_loan_and_advance_decrease | 客户贷款及垫款净减少额 | decimal(20,4) | | +| net_deposit_increase | 客户存款和同业存放款项净增加额 | decimal(20,4) | | +| net_borrowing_from_central_bank | 向中央银行借款净增加额 | decimal(20,4) | | +| net_deposit_in_cb_and_ib_de | 存放中央银行和同业款项净减少额 | decimal(20,4) | | +| net_borrowing_from_finance_co | 向其他金融机构拆入资金净增加额 | decimal(20,4) | | +| interest_and_commission_cashin | 收取利息、手续费及佣金的现金 | decimal(20,4) | | +| trade_asset_increase | 处置交易性金融资产净增加额 | decimal(20,4) | | +| net_increase_in_placements | 拆入资金净增加额 | decimal(20,4) | | +| net_buyback | 回购业务资金净增加额 | decimal(20,4) | | +| goods_sale_and_service_render_cash | 销售商品、提供劳务收到的现金 | decimal(20,4) | | +| tax_levy_refund | 收到的税费返还 | decimal(20,4) | | +| net_original_insurance_cash | 收到原保险合同保费取得的现金 | decimal(20,4) | | +| insurance_cash_amount | 收到再保业务现金净额 | decimal(20,4) | | +| net_insurer_deposit_investment | 保户储金及投资款净增加额 | decimal(20,4) | | +| subtotal_operate_cash_inflow | 经营活动现金流入小计 | decimal(20,4) | | +| net_loan_and_advance_increase | 客户贷款及垫款净增加额 | decimal(20,4) | | +| saving_clients_decrease_amount | 客户存放及同业存放款项净减少额 | decimal(20,4) | | +| net_deposit_in_cb_and_ib | 存放中央银行和同业款项净增加额 | decimal(20,4) | | +| central_borrowing_decrease | 向中央银行借款净减少额 | decimal(20,4) | | +| other_money_increase | 向其他金融机构拆出资金净增加额 | decimal(20,4) | | +| purchase_trade_asset_increase | 购入交易性金融资产净增加额 | decimal(20,4) | | +| repurchase_decrease | 回购业务资金净减少额 | decimal(20,4) | | +| handling_charges_and_commission | 支付利息、手续费及佣金的现金 | decimal(20,4) | | +| goods_and_services_cash_paid | 购买商品、提供劳务支付的现金 | decimal(20,4) | | +| net_cash_re_insurance | 支付再保业务现金净额 | decimal(20,4) | | +| reserve_investment_decrease | 保户储金及投资款净减少额 | decimal(20,4) | | +| original_compensation_paid | 支付原保险合同赔付款项的现金 | decimal(20,4) | | +| policy_dividend_cash_paid | 支付保单红利的现金 | decimal(20,4) | | +| staff_behalf_paid | 支付给职工以及为职工支付的现金 | decimal(20,4) | | +| tax_payments | 支付的各项税费 | decimal(20,4) | | +| subtotal_operate_cash_outflow | 经营活动现金流出小计 | decimal(20,4) | | +| net_operate_cash_flow | 经营活动现金流量净额 | decimal(20,4) | | +| invest_cash_flow | 投资活动产生的现金流量 | decimal(20,4) | | +| invest_withdrawal_cash | 收回投资收到的现金 | decimal(20,4) | | +| invest_proceeds | 取得投资收益收到的现金 | decimal(20,4) | | +| gain_from_disposal | 处置固定资产、无形资产和其他长期资产所收回的现金 | decimal(20,4) | | +| subtotal_invest_cash_inflow | 投资活动现金流入小计 | decimal(20,4) | | +| invest_cash_paid | 投资支付的现金 | decimal(20,4) | | +| impawned_loan_net_increase | 质押贷款净增加额 | decimal(20,4) | | +| fix_intan_other_asset_acqui_cash | 购建固定资产、无形资产和其他长期资产支付的现金 | decimal(20,4) | | +| subtotal_invest_cash_outflow | 投资活动现金流出小计 | decimal(20,4) | | +| net_invest_cash_flow | 投资活动现金流量净额 | decimal(20,4) | | +| finance_cash_flow | 筹资活动产生的现金流量 | decimal(20,4) | | +| cash_from_invest | 吸收投资收到的现金 | decimal(20,4) | | +| cash_from_bonds_issue | 发行债券收到的现金 | decimal(20,4) | | +| cash_from_borrowing | 取得借款收到的现金 | decimal(20,4) | | +| subtotal_finance_cash_inflow | 筹资活动现金流入小计 | decimal(20,4) | | +| borrowing_repayment | 偿还债务支付的现金 | decimal(20,4) | | +| dividend_interest_payment | 分配股利、利润或偿付利息支付的现金 | decimal(20,4) | | +| subtotal_finance_cash_outflow | 筹资活动现金流出小计 | decimal(20,4) | | +| net_finance_cash_flow | 筹资活动产生的现金流量净额 | decimal(20,4) | | +| exchange_rate_change_effect | 汇率变动对现金的影响 | decimal(20,4) | | +| other_reason_effect_cash | 其他原因对现金的影响 | decimal(20,4) | | +| cash_equivalent_increase | 现金及现金等价物净增加额 | decimal(20,4) | | +| cash_equivalents_at_beginning | 期初现金及现金等价物余额 | decimal(20,4) | | +| cash_and_equivalents_at_end | 期末现金及现金等价物余额 | decimal(20,4) | | +| net_profit_cashflow_adjustment | 将净利润调节为经营活动现金流量 | decimal(20,4) | | +| net_profit | 净利润 | decimal(20,4) | | +| assets_depreciation_reserves | 资产减值准备 | decimal(20,4) | | +| fixed_assets_depreciation | 固定资产折旧、油气资产折耗、生产性生物资产折旧 | decimal(20,4) | | +| intangible_assets_amortization | 无形资产摊销 | decimal(20,4) | | +| defferred_expense_amortization | 长期待摊费用摊销 | decimal(20,4) | | +| fix_intan_other_asset_dispo_loss | 处置固定资产、无形资产和其他长期资产的损失 | decimal(20,4) | | +| fixed_asset_scrap_loss | 固定资产报废损失 | decimal(20,4) | | +| fair_value_change_loss | 公允价值变动损失 | decimal(20,4) | | +| financial_cost | 财务费用 | decimal(20,4) | | +| invest_loss | 投资损失 | decimal(20,4) | | +| deffered_tax_asset_decrease | 递延所得税资产减少 | decimal(20,4) | | +| deffered_tax_liability_increase | 递延所得税负债增加 | decimal(20,4) | | +| inventory_decrease | 存货的减少 | decimal(20,4) | | +| operate_receivables_decrease | 经营性应收项目的减少 | decimal(20,4) | | +| operate_payable_increase | 经营性应付项目的增加 | decimal(20,4) | | +| others | 其他 | decimal(20,4) | | +| net_operate_cash_flow2 | 经营活动产生的现金流量净额_间接法 | decimal(20,4) | | +| activities_not_relate_major | 不涉及现金收支的重大投资和筹资活动 | decimal(20,4) | | +| debt_to_capital | 债务转为资本 | decimal(20,4) | | +| cbs_expiring_in_one_year | 一年内到期的可转换公司债券 | decimal(20,4) | | +| financial_lease_fixed_assets | 融资租入固定资产 | decimal(20,4) | | +| change_info_cash | 现金及现金等价物净变动情况 | decimal(20,4) | | +| cash_at_end | 现金的期末余额 | decimal(20,4) | | +| cash_at_beginning | 现金的期初余额 | decimal(20,4) | | +| equivalents_at_end | 现金等价物的期末余额 | decimal(20,4) | | +| equivalents_at_beginning | 现金等价物的期初余额 | decimal(20,4) | | +| other_influence2 | 其他原因对现金的影响2 | decimal(20,4) | | +| cash_equivalent_increase2 | 现金及现金等价物净增加额2 | decimal(20,4) | | +| investment_property_depreciation | 投资性房地产的折旧及摊销 | decimal(20,4) | | +| net_dec_finance_out | 融出资金净减少额 | decimal(20,4) | | +| net_cash_received_from_proxy_secu | 代理买卖证券收到的现金净额 | decimal(20,4) | | +| net_inc_finance_out | 融出资金净增加额 | decimal(20,4) | | +| net_cash_paid_to_proxy_secu | 代理买卖证券支付的现金净额 | decimal(20,4) | | +| net_dec_in_placements | 拆入资金净减少额 | decimal(20,4) | | +| credit_impairment_loss | 信用减值损失(现金流量表补充科目) | decimal(20,4) | | +- **报表来源编码** + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code==code)**:指定筛选条件,通过finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_CASHFLOW_STATEMENT_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的母公司现金流量信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询中国平安2015年之后公告的母公司现金流量表数据,指定只取出本期经营活动现金流量净额,投资活动现金流量净额,以及筹资活动现金流量净额 +from jqdata import * +q=query(finance.FINANCE_CASHFLOW_STATEMENT_PARENT.company_name, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.pub_date, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.start_date, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.end_date, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.net_operate_cash_flow, + finance.FINANCE_CASHFLOW_STATEMENT_PARENT.net_invest_cash_flow, +finance.FINANCE_CASHFLOW_STATEMENT_PARENT.net_finance_cash_flow).filter(finance.FINANCE_CASHFLOW_STATEMENT_PARENT.code=='601318.XSHG',finance.FINANCE_CASHFLOW_STATEMENT_PARENT.pub_date>='2015-01-01',finance.FINANCE_CASHFLOW_STATEMENT_PARENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 中国平安保险(集团)股份有限公司 601318.XSHG 2015-03-20 2014-01-01 2014-12-31 +1 中国平安保险(集团)股份有限公司 601318.XSHG 2015-04-30 2015-01-01 2015-03-31 +2 中国平安保险(集团)股份有限公司 601318.XSHG 2015-08-21 2015-01-01 2015-06-30 +3 中国平安保险(集团)股份有限公司 601318.XSHG 2015-10-28 2015-01-01 2015-09-30 +4 中国平安保险(集团)股份有限公司 601318.XSHG 2016-03-16 2015-01-01 2015-12-31 +5 中国平安保险(集团)股份有限公司 601318.XSHG 2016-04-27 2016-01-01 2016-03-31 +6 中国平安保险(集团)股份有限公司 601318.XSHG 2016-08-18 2016-01-01 2016-06-30 +7 中国平安保险(集团)股份有限公司 601318.XSHG 2016-10-28 2016-01-01 2016-09-30 +8 中国平安保险(集团)股份有限公司 601318.XSHG 2017-03-23 2016-01-01 2016-12-31 +9 中国平安保险(集团)股份有限公司 601318.XSHG 2017-04-28 2017-01-01 2017-03-31 +10 中国平安保险(集团)股份有限公司 601318.XSHG 2017-08-18 2017-01-01 2017-06-30 +11 中国平安保险(集团)股份有限公司 601318.XSHG 2017-10-28 2017-01-01 2017-09-30 +12 中国平安保险(集团)股份有限公司 601318.XSHG 2018-03-21 2017-01-01 2017-12-31 +13 中国平安保险(集团)股份有限公司 601318.XSHG 2018-04-27 2018-01-01 2018-03-31 +14 中国平安保险(集团)股份有限公司 601318.XSHG 2018-08-22 2018-01-01 2018-06-30 + + net_operate_cash_flow net_invest_cash_flow net_finance_cash_flow +0 -88000000 -14333000000 23543000000 +1 -202000000 -718000000 691000000 +2 -88000000 -8063000000 3010000000 +3 -25000000 -11168000000 -7130000000 +4 -203000000 -10990000000 -5711000000 +5 -533000000 456000000 -300000000 +6 -236000000 3237000000 -1620000000 +7 -418000000 10895000000 -10390000000 +8 -639000000 15006000000 -11895000000 +9 -259000000 -912000000 -1994000000 +10 -165000000 5139000000 -3376000000 +11 -647000000 13784000000 -12390000000 +12 -310000000 22612000000 -15924000000 +13 -211000000 246000000 470000000 +14 -188000000 15464000000 -12487000000 +``` + +### 金融类合并资产负债表 + +``` + +from jqdata import finance +finance.run_query(query(finance.FINANCE_BALANCE_SHEET).filter(finance.FINANCE_BALANCE_SHEET.code==code).limit(n)) +``` + +获取金融类上市公司的合并资产负债表信息 + +**参数:** + +- **query(finance.FINANCE_BALANCE_SHEET)**:表示从finance.FINANCE_BALANCE_SHEET这张表中查询金融类上市公司合并资产负债的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FINANCE_BALANCE_SHEET**:代表金融类上市公司合并资产负债表,收录了金融类上市公司的合并资产负债,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 公司主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表编码表](#source11) | +| source | 报表来源 | varchar(60) | | +| deposit_in_ib | 存放同业款项 | decimal(20,4) | | +| cash_equivalents | 货币资金 | decimal(20,4) | | +| deposit_client | 客户资金存款 | decimal(20,4) | | +| cash_in_cb | 现金及存放中央银行款项 | decimal(20,4) | | +| settlement_provi | 结算备付金 | decimal(20,4) | | +| settlement_provi_client | 客户备付金 | decimal(20,4) | | +| metal | 贵金属 | decimal(20,4) | | +| lend_capital | 拆出资金 | decimal(20,4) | | +| fairvalue_fianancial_asset | 以公允价值计量且其变动计入当期损益的金融资产 | decimal(20,4) | | +| other_grow_asset | 衍生金融资产 | decimal(20,4) | | +| bought_sellback_assets | 买入返售金融资产 | decimal(20,4) | | +| interest_receivable | 应收利息 | decimal(20,4) | | +| insurance_receivables | 应收保费 | decimal(20,4) | | +| recover_receivable | 应收代位追偿款 | decimal(20,4) | | +| separate_receivable | 应收分保帐款 | decimal(20,4) | | +| not_time_fund | 应收分保未到期责任准备金 | decimal(20,4) | | +| not_decide_fund | 应收分保未决赔款准备金 | decimal(20,4) | | +| response_fund | 应收分保寿险责任准备金 | decimal(20,4) | | +| health_fund | 应收分保长期健康险责任准备金 | decimal(20,4) | | +| margin_loan | 保户质押贷款 | decimal(20,4) | | +| deposit_period | 定期存款 | decimal(20,4) | | +| loan_and_advance | 发放贷款及垫款 | decimal(20,4) | | +| margin_out | 存出保证金 | decimal(20,4) | | +| agent_asset | 代理业务资产 | decimal(20,4) | | +| investment_reveiable | 应收款项类投资 | decimal(20,4) | | +| advance_payment | 预付款项 | decimal(20,4) | | +| hold_for_sale_assets | 可供出售金融资产 | decimal(20,4) | | +| hold_to_maturity_investments | 持有至到期投资 | decimal(20,4) | | +| longterm_equity_invest | 长期股权投资 | decimal(20,4) | | +| finance_out | 融出资金 | decimal(20,4) | | +| capital_margin_out | 存出资本保证金 | decimal(20,4) | | +| investment_property | 投资性房地产 | decimal(20,4) | | +| inventories | 存货 | decimal(20,4) | | +| fixed_assets | 固定资产 | decimal(20,4) | | +| constru_in_process | 在建工程 | decimal(20,4) | | +| intangible_assets | 无形资产 | decimal(20,4) | | +| trade_fee | 交易席位费 | decimal(20,4) | | +| long_deferred_expense | 长期待摊费用 | decimal(20,4) | | +| fixed_assets_liquidation | 固定资产清理 | decimal(20,4) | | +| independent_account_asset | 独立帐户资产 | decimal(20,4) | | +| deferred_tax_assets | 递延所得税资产 | decimal(20,4) | | +| other_asset | 其他资产 | decimal(20,4) | | +| total_assets | 资产总计 | decimal(20,4) | | +| borrowing_from_centralbank | 向中央银行借款 | decimal(20,4) | | +| deposit_in_ib_and_other | 同业及其他金融机构存放款项 | decimal(20,4) | | +| shortterm_loan | 短期借款 | decimal(20,4) | | +| loan_pledge | 其中:质押借款 | decimal(20,4) | | +| borrowing_capital | 拆入资金 | decimal(20,4) | | +| fairvalue_financial_liability | 以公允价值计量且其变动计入当期损益的金融负债 | decimal(20,4) | | +| derivative_financial_liability | 衍生金融负债 | decimal(20,4) | | +| sold_buyback_secu_proceeds | 卖出回购金融资产款 | decimal(20,4) | | +| deposit_absorb | 吸收存款 | decimal(20,4) | | +| proxy_secu_proceeds | 代理买卖证券款 | decimal(20,4) | | +| proxy_sell_proceeds | 代理承销证券款 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| notes_payable | 应付票据 | decimal(20,4) | | +| advance_peceipts | 预收款项 | decimal(20,4) | | +| insurance_receive_early | 预收保费 | decimal(20,4) | | +| commission_payable | 应付手续费及佣金 | decimal(20,4) | | +| insurance_payable | 应付分保帐款 | decimal(20,4) | | +| salaries_payable | 应付职工薪酬 | decimal(20,4) | | +| taxs_payable | 应交税费 | decimal(20,4) | | +| interest_payable | 应付利息 | decimal(20,4) | | +| proxy_liability | 代理业务负债 | decimal(20,4) | | +| estimate_liability | 预计负债 | decimal(20,4) | | +| compensation_payable | 应付赔付款 | decimal(20,4) | | +| interest_insurance_payable | 应付保单红利 | decimal(20,4) | | +| investment_money | 保户储金及投资款 | decimal(20,4) | | +| not_time_reserve | 未到期责任准备金 | decimal(20,4) | | +| not_decide_reserve | 未决赔款准备金 | decimal(20,4) | | +| live_reserve | 寿险责任准备金 | decimal(20,4) | | +| longterm_reserve | 长期健康险责任准备金 | decimal(20,4) | | +| longterm_loan | 长期借款 | decimal(20,4) | | +| bonds_payable | 应付债券 | decimal(20,4) | | +| independent_account | 独立帐户负债 | decimal(20,4) | | +| deferred_tax_liability | 递延所得税负债 | decimal(20,4) | | +| other_liability | 其他负债 | decimal(20,4) | | +| total_liability | 负债合计 | decimal(20,4) | | +| paidin_capital | 实收资本(或股本) | decimal(20,4) | | +| capital_reserve_fund | 资本公积 | decimal(20,4) | | +| treasury_stock | 减:库存股 | decimal(20,4) | | +| surplus_reserve_fund | 盈余公积 | decimal(20,4) | | +| equities_parent_company_owners | 归属于母公司所有者权益 | decimal(20,4) | | +| retained_profit | 未分配利润 | decimal(20,4) | | +| minority_interests | 少数股东权益 | decimal(20,4) | | +| currency_mis | 外币报表折算差额 | decimal(20,4) | | +| total_owner_equities | 所有者权益合计 | decimal(20,4) | | +| total_liability_equity | 负债和所有者权益总计 | decimal(20,4) | | +| perferred_share_liability | 优先股-负债 | decimal(20,4) | | +| account_receivable | 应收账款 | decimal(20,4) | | +| other_equity_tools | 其他权益工具 | decimal(20,4) | | +| perferred_share_equity | 优先股-权益 | decimal(20,4) | | +| pep_debt_equity | 永续债-权益 | decimal(20,4) | | +| other_comprehensive_income | 其他综合收益 | decimal(20,4) | | +| good_will | 商誉 | decimal(20,4) | | +| shortterm_loan_payable | 应付短期融资款 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| other_operate_cash_paid | 支付其他与经营活动有关的现金(元) | decimal(20, 4) | | +| subtotal_operate_cash_outflow | 经营活动现金流出小计(元) | decimal(20, 4) | | +| net_operate_cash_flow | 经营活动现金流量净额(元) | decimal(20, 4) | | +| invest_cash_flow | 投资活动产生的现金流量(元) | decimal(20, 4) | | +| invest_withdrawal_cash | 收回投资收到的现金(元) | decimal(20, 4) | | +| invest_proceeds | 取得投资收益收到的现金(元) | decimal(20, 4) | | +| other_cash_from_invest_act | 收到其他与投资活动有关的现金(元) | decimal(20, 4) | | +| gain_from_disposal | 处置固定资产、无形资产和其他长期资产所收回的现金(元) | decimal(20, 4) | | +| subtotal_invest_cash_inflow | 投资活动现金流入小计(元) | decimal(20, 4) | | +| long_deferred_expense | 长期待摊费用(元) | decimal(20, 4) | | +| contract_assets | 合同资产 | decimal(20,4) | | +| hold_sale_asset | 持有待售资产 | decimal(20,4) | | +| bond_invest | 债权投资 | decimal(20,4) | | +| other_bond_invest | 其他债权投资 | decimal(20,4) | | +| other_equity_tools_invest | 其他权益工具投资 | decimal(20,4) | | +| contract_liability | 合同负债 | decimal(20,4) | | +| usufruct_assets | 使用权资产 | decimal(20,4) | | +| liease_liability | 租赁负债 | decimal(20,4) | | +| ordinary_risk_reserve_fund | 一般风险准备 | decimal(20,4) | | +- **报表来源编码** + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.FINANCE_BALANCE_SHEET.code==code)**:指定筛选条件,通过finance.FINANCE_BALANCE_SHEET.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_BALANCE_SHEET.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的合并资产负债信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询中国平安2015年之后公告的合并资产负债表数据,取出本期的货币资金,总资产和总负债 +from jqdata import finance +q=query(finance.FINANCE_BALANCE_SHEET.company_name, + finance.FINANCE_BALANCE_SHEET.code, + finance.FINANCE_BALANCE_SHEET.pub_date, + finance.FINANCE_BALANCE_SHEET.start_date, + finance.FINANCE_BALANCE_SHEET.end_date, + finance.FINANCE_BALANCE_SHEET.cash_equivalents, + finance.FINANCE_BALANCE_SHEET.total_assets, + finance.FINANCE_BALANCE_SHEET.total_liability +).filter(finance.FINANCE_BALANCE_SHEET.code=='601318.XSHG',finance.FINANCE_BALANCE_SHEET.pub_date>='2015-01-01',finance.FINANCE_BALANCE_SHEET.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 中国平安保险(集团)股份有限公司 601318.XSHG 2015-03-20 2014-01-01 2014-12-31 +1 中国平安保险(集团)股份有限公司 601318.XSHG 2015-04-30 2015-01-01 2015-03-31 +2 中国平安保险(集团)股份有限公司 601318.XSHG 2015-08-21 2015-01-01 2015-06-30 +3 中国平安保险(集团)股份有限公司 601318.XSHG 2015-10-28 2015-01-01 2015-09-30 +4 中国平安保险(集团)股份有限公司 601318.XSHG 2016-03-16 2015-01-01 2015-12-31 +5 中国平安保险(集团)股份有限公司 601318.XSHG 2016-04-27 2016-01-01 2016-03-31 +6 中国平安保险(集团)股份有限公司 601318.XSHG 2016-08-18 2016-01-01 2016-06-30 +7 中国平安保险(集团)股份有限公司 601318.XSHG 2016-10-28 2016-01-01 2016-09-30 +8 中国平安保险(集团)股份有限公司 601318.XSHG 2017-03-23 2016-01-01 2016-12-31 +9 中国平安保险(集团)股份有限公司 601318.XSHG 2017-04-28 2017-01-01 2017-03-31 +10 中国平安保险(集团)股份有限公司 601318.XSHG 2017-08-18 2017-01-01 2017-06-30 +11 中国平安保险(集团)股份有限公司 601318.XSHG 2017-10-28 2017-01-01 2017-09-30 +12 中国平安保险(集团)股份有限公司 601318.XSHG 2018-03-21 2017-01-01 2017-12-31 +13 中国平安保险(集团)股份有限公司 601318.XSHG 2018-04-27 2018-01-01 2018-03-31 +14 中国平安保险(集团)股份有限公司 601318.XSHG 2018-08-22 2018-01-01 2018-06-30 + + cash_equivalents total_assets total_liability +0 4.427070e+11 4.005911e+12 3.652095e+12 +1 4.131880e+11 4.215240e+12 3.833842e+12 +2 4.510800e+11 4.632287e+12 4.227789e+12 +3 4.654240e+11 4.667113e+12 4.262293e+12 +4 4.750570e+11 4.765159e+12 4.351588e+12 +5 5.668130e+11 5.006993e+12 4.566653e+12 +6 5.210790e+11 5.219782e+12 4.757190e+12 +7 5.230110e+11 5.296564e+12 4.815950e+12 +8 5.696830e+11 5.576903e+12 5.090442e+12 +9 5.415870e+11 5.773318e+12 5.254793e+12 +10 5.559020e+11 5.978688e+12 5.445990e+12 +11 5.396110e+11 6.168516e+12 5.609576e+12 +12 5.683990e+11 6.493075e+12 5.905158e+12 +13 5.091390e+11 6.725766e+12 6.108353e+12 +14 5.300420e+11 6.851431e+12 6.216339e+12 +``` + +### 金融类母公司资产负债表 + +``` + +from jqdata import finance +finance.run_query(query(finance.FINANCE_BALANCE_SHEET_PARENT).filter(finance.FINANCE_BALANCE_SHEET_PARENT.code==code).limit(n)) +``` + +获取金融类上市公司的母公司资产负债表信息 + +**参数:** + +- **query(finance.FINANCE_BALANCE_SHEET_PARENT)**:表示从finance.FINANCE_BALANCE_SHEET_PARENT这张表中查询金融类上市公司母公司资产负债的字段信息,还可以指定所要查询的字段名,格式如下:query(库名.表名.字段名1,库名.表名.字段名2),多个字段用逗号分隔进行提取;query函数的更多用法详见:[sqlalchemy.orm.query.Query对象](http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html) +- **finance.FINANCE_BALANCE_SHEET_PARENT**:代表金融类上市公司母公司资产负债表,收录了金融类上市公司的母公司资产负债,表结构和字段信息如下: + +| 字段名称 | 中文名称 | 字段类型 | 含义 | +| --- | --- | --- | --- | +| company_id | 公司ID | int | | +| company_name | 公司名称 | varchar(100) | | +| code | 公司主证券代码 | varchar(12) | | +| a_code | A股代码 | varchar(12) | | +| b_code | B股代码 | varchar(12) | | +| h_code | H股代码 | varchar(12) | | +| pub_date | 公告日期 | date | | +| start_date | 开始日期 | date | | +| end_date | 截止日期 | date | | +| report_date | 报告期 | date | | +| report_type | 报告期类型 | int | 0本期,1上期 | +| source_id | 报表来源编码 | int | 如下[报表来源编码](#source12) | +| source | 报表来源 | varchar(60) | | +| deposit_in_ib | 存放同业款项 | decimal(20,4) | | +| cash_equivalents | 货币资金 | decimal(20,4) | | +| deposit_client | 客户资金存款 | decimal(20,4) | | +| cash_in_cb | 现金及存放中央银行款项 | decimal(20,4) | | +| settlement_provi | 结算备付金 | decimal(20,4) | | +| settlement_provi_client | 客户备付金 | decimal(20,4) | | +| metal | 贵金属 | decimal(20,4) | | +| lend_capital | 拆出资金 | decimal(20,4) | | +| fairvalue_fianancial_asset | 以公允价值计量且其变动计入当期损益的金融资产 | decimal(20,4) | | +| other_grow_asset | 衍生金融资产 | decimal(20,4) | | +| bought_sellback_assets | 买入返售金融资产 | decimal(20,4) | | +| interest_receivable | 应收利息 | decimal(20,4) | | +| insurance_receivables | 应收保费 | decimal(20,4) | | +| recover_receivable | 应收代位追偿款 | decimal(20,4) | | +| separate_receivable | 应收分保帐款 | decimal(20,4) | | +| not_time_fund | 应收分保未到期责任准备金 | decimal(20,4) | | +| not_decide_fund | 应收分保未决赔款准备金 | decimal(20,4) | | +| response_fund | 应收分保寿险责任准备金 | decimal(20,4) | | +| health_fund | 应收分保长期健康险责任准备金 | decimal(20,4) | | +| margin_loan | 保户质押贷款 | decimal(20,4) | | +| deposit_period | 定期存款 | decimal(20,4) | | +| loan_and_advance | 发放贷款及垫款 | decimal(20,4) | | +| margin_out | 存出保证金 | decimal(20,4) | | +| agent_asset | 代理业务资产 | decimal(20,4) | | +| investment_reveiable | 应收款项类投资 | decimal(20,4) | | +| advance_payment | 预付款项 | decimal(20,4) | | +| hold_for_sale_assets | 可供出售金融资产 | decimal(20,4) | | +| hold_to_maturity_investments | 持有至到期投资 | decimal(20,4) | | +| longterm_equity_invest | 长期股权投资 | decimal(20,4) | | +| finance_out | 融出资金 | decimal(20,4) | | +| capital_margin_out | 存出资本保证金 | decimal(20,4) | | +| investment_property | 投资性房地产 | decimal(20,4) | | +| inventories | 存货 | decimal(20,4) | | +| fixed_assets | 固定资产 | decimal(20,4) | | +| constru_in_process | 在建工程 | decimal(20,4) | | +| intangible_assets | 无形资产 | decimal(20,4) | | +| trade_fee | 交易席位费 | decimal(20,4) | | +| long_deferred_expense | 长期待摊费用 | decimal(20,4) | | +| fixed_assets_liquidation | 固定资产清理 | decimal(20,4) | | +| independent_account_asset | 独立帐户资产 | decimal(20,4) | | +| deferred_tax_assets | 递延所得税资产 | decimal(20,4) | | +| other_asset | 其他资产 | decimal(20,4) | | +| total_assets | 资产总计 | decimal(20,4) | | +| borrowing_from_centralbank | 向中央银行借款 | decimal(20,4) | | +| deposit_in_ib_and_other | 同业及其他金融机构存放款项 | decimal(20,4) | | +| shortterm_loan | 短期借款 | decimal(20,4) | | +| loan_pledge | 其中:质押借款 | decimal(20,4) | | +| borrowing_capital | 拆入资金 | decimal(20,4) | | +| fairvalue_financial_liability | 以公允价值计量且其变动计入当期损益的金融负债 | decimal(20,4) | | +| derivative_financial_liability | 衍生金融负债 | decimal(20,4) | | +| sold_buyback_secu_proceeds | 卖出回购金融资产款 | decimal(20,4) | | +| deposit_absorb | 吸收存款 | decimal(20,4) | | +| proxy_secu_proceeds | 代理买卖证券款 | decimal(20,4) | | +| proxy_sell_proceeds | 代理承销证券款 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| notes_payable | 应付票据 | decimal(20,4) | | +| advance_peceipts | 预收款项 | decimal(20,4) | | +| insurance_receive_early | 预收保费 | decimal(20,4) | | +| commission_payable | 应付手续费及佣金 | decimal(20,4) | | +| insurance_payable | 应付分保帐款 | decimal(20,4) | | +| salaries_payable | 应付职工薪酬 | decimal(20,4) | | +| taxs_payable | 应交税费 | decimal(20,4) | | +| interest_payable | 应付利息 | decimal(20,4) | | +| proxy_liability | 代理业务负债 | decimal(20,4) | | +| estimate_liability | 预计负债 | decimal(20,4) | | +| compensation_payable | 应付赔付款 | decimal(20,4) | | +| interest_insurance_payable | 应付保单红利 | decimal(20,4) | | +| investment_money | 保户储金及投资款 | decimal(20,4) | | +| not_time_reserve | 未到期责任准备金 | decimal(20,4) | | +| not_decide_reserve | 未决赔款准备金 | decimal(20,4) | | +| live_reserve | 寿险责任准备金 | decimal(20,4) | | +| longterm_reserve | 长期健康险责任准备金 | decimal(20,4) | | +| longterm_loan | 长期借款 | decimal(20,4) | | +| bonds_payable | 应付债券 | decimal(20,4) | | +| independent_account | 独立帐户负债 | decimal(20,4) | | +| deferred_tax_liability | 递延所得税负债 | decimal(20,4) | | +| other_liability | 其他负债 | decimal(20,4) | | +| total_liability | 负债合计 | decimal(20,4) | | +| paidin_capital | 实收资本(或股本) | decimal(20,4) | | +| capital_reserve_fund | 资本公积 | decimal(20,4) | | +| treasury_stock | 减:库存股 | decimal(20,4) | | +| surplus_reserve_fund | 盈余公积 | decimal(20,4) | | +| equities_parent_company_owners | 归属于母公司所有者权益 | decimal(20,4) | | +| retained_profit | 未分配利润 | decimal(20,4) | | +| minority_interests | 少数股东权益 | decimal(20,4) | | +| currency_mis | 外币报表折算差额 | decimal(20,4) | | +| total_owner_equities | 所有者权益合计 | decimal(20,4) | | +| total_liability_equity | 负债和所有者权益总计 | decimal(20,4) | | +| perferred_share_liability | 优先股-负债 | decimal(20,4) | | +| account_receivable | 应收账款 | decimal(20,4) | | +| other_equity_tools | 其他权益工具 | decimal(20,4) | | +| perferred_share_equity | 优先股-权益 | decimal(20,4) | | +| pep_debt_equity | 永续债-权益 | decimal(20,4) | | +| other_comprehensive_income | 其他综合收益 | decimal(20,4) | | +| good_will | 商誉 | decimal(20,4) | | +| shortterm_loan_payable | 应付短期融资款 | decimal(20,4) | | +| accounts_payable | 应付账款 | decimal(20,4) | | +| other_operate_cash_paid | 支付其他与经营活动有关的现金(元) | decimal(20, 4) | | +| subtotal_operate_cash_outflow | 经营活动现金流出小计(元) | decimal(20, 4) | | +| net_operate_cash_flow | 经营活动现金流量净额(元) | decimal(20, 4) | | +| invest_cash_flow | 投资活动产生的现金流量(元) | decimal(20, 4) | | +| invest_withdrawal_cash | 收回投资收到的现金(元) | decimal(20, 4) | | +| invest_proceeds | 取得投资收益收到的现金(元) | decimal(20, 4) | | +| other_cash_from_invest_act | 收到其他与投资活动有关的现金(元) | decimal(20, 4) | | +| gain_from_disposal | 处置固定资产、无形资产和其他长期资产所收回的现金(元) | decimal(20, 4) | | +| subtotal_invest_cash_inflow | 投资活动现金流入小计(元) | decimal(20, 4) | | +| long_deferred_expense | 长期待摊费用(元) | decimal(20, 4) | | +| contract_assets | 合同资产 | decimal(20,4) | | +| hold_sale_asset | 持有待售资产 | decimal(20,4) | | +| bond_invest | 债权投资 | decimal(20,4) | | +| other_bond_invest | 其他债权投资 | decimal(20,4) | | +| other_equity_tools_invest | 其他权益工具投资 | decimal(20,4) | | +| contract_liability | 合同负债 | decimal(20,4) | | +| usufruct_assets | 使用权资产 | decimal(20,4) | | +| liease_liability | 租赁负债 | decimal(20,4) | | +| ordinary_risk_reserve_fund | 一般风险准备 | decimal(20,4) | | +- **报表来源编码** + +| 编码 | 名称 | +| --- | --- | +| 321001 | 招募说明书 | +| 321002 | 上市公告书 | +| 321003 | 定期报告 | +| 321004 | 预披露公告 | +| 321005 | 换股报告书 | +| 321099 | 其他 | +- **filter(finance.FINANCE_BALANCE_SHEET_PARENT.code==code)**:指定筛选条件,通过finance.FINANCE_BALANCE_SHEET_PARENT.code==code可以指定你想要查询的股票代码;除此之外,还可以对表中其他字段指定筛选条件,如finance.FINANCE_BALANCE_SHEET_PARENT.pub_date>='2015-01-01',表示公告日期大于2015年1月1日金融类上市公司公布的母公司资产负债信息;多个筛选条件用英文逗号分隔。 +- **limit(n)**:限制返回的数据条数,n指定返回条数。 + +**返回结果:** + +- 返回一个 dataframe,每一行对应数据表中的一条数据, 列索引是你所查询的字段名称 + +**注意:** + +1. **为了防止返回数据量过大, 我们每次最多返回4000行** +2. 不能进行连表查询,即同时查询多张表的数据 + +**示例:** + +``` + +#查询中国平安2015年之后公告的母公司资产负债表数据,取出本期的货币资金,总资产和总负债 +from jqdata import finance +q=query(finance.FINANCE_BALANCE_SHEET_PARENT.company_name, + finance.FINANCE_BALANCE_SHEET_PARENT.code, + finance.FINANCE_BALANCE_SHEET_PARENT.pub_date, + finance.FINANCE_BALANCE_SHEET_PARENT.start_date, + finance.FINANCE_BALANCE_SHEET_PARENT.end_date, + finance.FINANCE_BALANCE_SHEET_PARENT.cash_equivalents, + finance.FINANCE_BALANCE_SHEET_PARENT.total_assets, + finance.FINANCE_BALANCE_SHEET_PARENT.total_liability +).filter(finance.FINANCE_BALANCE_SHEET_PARENT.code=='601318.XSHG',finance.FINANCE_BALANCE_SHEET_PARENT.pub_date>='2015-01-01',finance.FINANCE_BALANCE_SHEET_PARENT.report_type==0).limit(20) +df=finance.run_query(q) +print(df) + + company_name code pub_date start_date end_date \ +0 中国平安保险(集团)股份有限公司 601318.XSHG 2015-03-20 2014-01-01 2014-12-31 +1 中国平安保险(集团)股份有限公司 601318.XSHG 2015-04-30 2015-01-01 2015-03-31 +2 中国平安保险(集团)股份有限公司 601318.XSHG 2015-08-21 2015-01-01 2015-06-30 +3 中国平安保险(集团)股份有限公司 601318.XSHG 2015-10-28 2015-01-01 2015-09-30 +4 中国平安保险(集团)股份有限公司 601318.XSHG 2016-03-16 2015-01-01 2015-12-31 +5 中国平安保险(集团)股份有限公司 601318.XSHG 2016-04-27 2016-01-01 2016-03-31 +6 中国平安保险(集团)股份有限公司 601318.XSHG 2016-08-18 2016-01-01 2016-06-30 +7 中国平安保险(集团)股份有限公司 601318.XSHG 2016-10-28 2016-01-01 2016-09-30 +8 中国平安保险(集团)股份有限公司 601318.XSHG 2017-03-23 2016-01-01 2016-12-31 +9 中国平安保险(集团)股份有限公司 601318.XSHG 2017-04-28 2017-01-01 2017-03-31 +10 中国平安保险(集团)股份有限公司 601318.XSHG 2017-08-18 2017-01-01 2017-06-30 +11 中国平安保险(集团)股份有限公司 601318.XSHG 2017-10-28 2017-01-01 2017-09-30 +12 中国平安保险(集团)股份有限公司 601318.XSHG 2018-03-21 2017-01-01 2017-12-31 +13 中国平安保险(集团)股份有限公司 601318.XSHG 2018-04-27 2018-01-01 2018-03-31 +14 中国平安保险(集团)股份有限公司 601318.XSHG 2018-08-22 2018-01-01 2018-06-30 + + cash_equivalents total_assets total_liability +0 26214000000 1.970230e+11 17331000000 +1 25899000000 1.980580e+11 8930000000 +2 20809000000 2.096090e+11 16105000000 +3 8815000000 2.004830e+11 9538000000 +4 10179000000 2.033480e+11 10805000000 +5 9906000000 2.031290e+11 10349000000 +6 10234000000 2.155980e+11 15577000000 +7 10453000000 2.069940e+11 10585000000 +8 10028000000 2.203310e+11 9205000000 +9 8923000000 2.183790e+11 7200000000 +10 14429000000 2.291570e+11 15987000000 +11 11133000000 2.264570e+11 19084000000 +12 19039000000 2.351180e+11 12990000000 +13 18961000000 2.356310e+11 13536000000 +14 15981000000 2.454330e+11 23082000000 +``` diff --git "a/docs/joinquant-api/JQ_\350\241\214\344\270\232\346\246\202\345\277\265\346\225\260\346\215\256.md" "b/docs/joinquant-api/JQ_\350\241\214\344\270\232\346\246\202\345\277\265\346\225\260\346\215\256.md" new file mode 100644 index 0000000..c4147f8 --- /dev/null +++ "b/docs/joinquant-api/JQ_\350\241\214\344\270\232\346\246\202\345\277\265\346\225\260\346\215\256.md" @@ -0,0 +1,1294 @@ +## 行业概念数据 + +提供行业板块信息,概念板块信息,包含行业代码、名称等。 + (温馨提示:鉴于内容太多, 可使用`Ctrl + F`进行搜索) + +**获取行业及概念数据的API** + +- 获取行业类成份:get_industry_stocks(industry_code, date=None), 详情[见这里](https://www.joinquant.com/api#get_industry_stocks). +- 获取概念类成分股:get_concept_stocks(concept_code, date=None), 详情[见这里](https://www.joinquant.com/api#get_concept_stocks). +- 获取行业列表:get_industries,详情[见这里](https://www.joinquant.com/api#get_industries) +- 获取概念列表:get_concepts(),详情[见这里](https://www.joinquant.com/api#get_concepts) +- 获取股票所属概念板块 :get_concept,详情[见这里](https://www.joinquant.com/api#get_concept) +- 查询股票所属行业:get_industry,详情[见这里](https://www.joinquant.com/api#get_industry) + +**注意** + +- 目前没有行业及概念的行情数据; + +## 行业类 + +### 证监会行业 + +| 行业代码 | 行业名称 | 起始日期 | +| --- | --- | --- | +| A01 | 农业 | 1993-09-17 | +| A02 | 林业 | 1996-12-06 | +| A03 | 畜牧业 | 1997-06-11 | +| A04 | 渔业 | 1993-05-07 | +| A05 | 农、林、牧、渔服务业 | 1997-05-30 | +| B06 | 煤炭开采和洗选业 | 1994-01-06 | +| B07 | 石油和天然气开采业 | 1996-06-28 | +| B08 | 黑色金属矿采选业 | 1997-07-08 | +| B09 | 有色金属矿采选业 | 1996-03-20 | +| B10 | 非金属矿采选业 | 2017-05-03 | +| B11 | 开采辅助活动 | 2002-02-05 | +| B12 | 其他采矿业 | 2012-01-01 | +| C13 | 农副食品加工业 | 1993-12-15 | +| C14 | 食品制造业 | 1994-08-18 | +| C15 | 酒、饮料和精制茶制造业 | 1992-10-12 | +| C16 | 烟草制品业 | 2012-01-01 | +| C17 | 纺织业 | 1992-06-16 | +| C18 | 纺织服装、服饰业 | 1993-12-31 | +| C19 | 皮革、毛皮、羽毛及其制品和制鞋业 | 1994-04-04 | +| C20 | 木材加工和木、竹、藤、棕、草制品业 | 2005-05-10 | +| C21 | 家具制造业 | 1996-04-25 | +| C22 | 造纸和纸制品业 | 1993-03-12 | +| C23 | 印刷和记录媒介复制业 | 1994-02-24 | +| C24 | 文教、工美、体育和娱乐用品制造业 | 2007-01-10 | +| C25 | 石油加工、炼焦和核燃料加工业 | 1993-10-25 | +| C26 | 化学原料和化学制品制造业 | 1990-12-19 | +| C27 | 医药制造业 | 1993-06-29 | +| C28 | 化学纤维制造业 | 1993-07-28 | +| C29 | 橡胶和塑料制品业 | 1992-08-28 | +| C30 | 非金属矿物制品业 | 1992-02-28 | +| C31 | 黑色金属冶炼和压延加工业 | 1994-01-06 | +| C32 | 有色金属冶炼和压延加工业 | 1996-02-15 | +| C33 | 金属制品业 | 1993-11-30 | +| C34 | 通用设备制造业 | 1992-03-27 | +| C35 | 专用设备制造业 | 1992-07-01 | +| C36 | 汽车制造业 | 1992-07-24 | +| C37 | 铁路、船舶、航空航天和其他运输设备制造业 | 1992-03-31 | +| C38 | 电气机械和器材制造业 | 1990-12-19 | +| C39 | 计算机、通信和其他电子设备制造业 | 1990-12-19 | +| C40 | 仪器仪表制造业 | 1993-09-17 | +| C41 | 其他制造业 | 1992-08-14 | +| C42 | 废弃资源综合利用业 | 2012-10-26 | +| C43 | 金属制品、机械和设备修理业 | 2010-09-29 | +| D44 | 电力、热力生产和供应业 | 1993-04-16 | +| D45 | 燃气生产和供应业 | 2000-12-11 | +| D46 | 水的生产和供应业 | 1994-02-24 | +| E47 | 房屋建筑业 | 1993-04-29 | +| E48 | 土木工程建筑业 | 1994-01-28 | +| E49 | 建筑安装业 | 2009-05-19 | +| E50 | 建筑装饰和其他建筑业 | 1997-05-22 | +| F51 | 批发业 | 1992-05-06 | +| F52 | 零售业 | 1992-09-02 | +| G53 | 铁路运输业 | 1998-05-11 | +| G54 | 道路运输业 | 1991-01-14 | +| G55 | 水上运输业 | 1993-11-19 | +| G56 | 航空运输业 | 1997-11-05 | +| G57 | 管道运输业 | 1996-11-04 | +| G58 | 装卸搬运和运输代理业 | 1993-05-05 | +| G59 | 仓储业 | 1996-06-14 | +| G60 | 邮政业 | 2017-02-16 | +| H61 | 住宿业 | 1993-11-18 | +| H62 | 餐饮业 | 1997-04-30 | +| I63 | 电信、广播电视和卫星传输服务 | 1992-12-02 | +| I64 | 互联网和相关服务 | 1992-05-07 | +| I65 | 软件和信息技术服务业 | 1992-08-20 | +| J66 | 货币金融服务 | 1991-04-03 | +| J67 | 资本市场服务 | 1994-01-10 | +| J68 | 保险业 | 2007-01-09 | +| J69 | 其他金融业 | 2012-10-26 | +| K70 | 房地产业 | 1992-01-13 | +| L71 | 租赁业 | 1997-01-30 | +| L72 | 商务服务业 | 1996-08-29 | +| M73 | 研究和试验发展 | 2012-10-26 | +| M74 | 专业技术服务业 | 2007-02-15 | +| M75 | 科技推广和应用服务业 | 2009-02-11 | +| N76 | 水利管理业 | 2012-01-01 | +| N77 | 生态保护和环境治理业 | 2012-10-26 | +| N78 | 公共设施管理业 | 1992-08-07 | +| O79 | 居民服务业 | 1993-06-14 | +| O80 | 机动车、电子产品和日用产品修理业 | 2012-01-01 | +| O81 | 其他服务业 | 1998-03-27 | +| P82 | 教育 | 2012-10-26 | +| Q83 | 卫生 | 2007-02-05 | +| Q84 | 社会工作 | 2012-01-01 | +| R85 | 新闻和出版业 | 1992-12-08 | +| R86 | 广播、电视、电影和影视录音制作业 | 1994-02-24 | +| R87 | 文化艺术业 | 2012-10-26 | +| R88 | 体育 | 2017-03-24 | +| R89 | 娱乐业 | 2012-01-01 | +| S90 | 综合 | 1990-12-10 | + +### 聚宽行业 + +#### 聚宽一级行业 + +| 行业代码 | 行业名称 | 起始日期 | +| --- | --- | --- | +| HY001 | 能源 | 2016-12-12 | +| HY002 | 材料 | 2016-12-12 | +| HY003 | 工业 | 2016-12-12 | +| HY004 | 可选消费指 | 2016-12-12 | +| HY005 | 日常消费 | 2016-12-12 | +| HY006 | 医药卫生 | 2016-12-12 | +| HY007 | 金融 | 2016-12-12 | +| HY008 | 信息技术 | 2016-12-12 | +| HY009 | 电信服务 | 2016-12-12 | +| HY010 | 公用事业 | 2016-12-12 | +| HY011 | 房地产 | 2016-12-12 | + +#### 聚宽二级行业 + +**二级行业代码数字前两位和一级代码后两位关联,如HY01101,数字前两位为01,对应父级行业为HY001** + +| 行业代码 | 行业名称 | 起始日期 | 终止日期 | +| --- | --- | --- | --- | +| HY01101 | 油气开采 | 2021-12-13 | | +| HY01102 | 油田服务 | 2021-12-13 | | +| HY01103 | 综合性石油与天然气企业 | 2021-12-13 | | +| HY01104 | 燃油炼制 | 2021-12-13 | | +| HY01105 | 天然气加工 | 2021-12-13 | | +| HY01106 | 油气流通及其他 | 2021-12-13 | | +| HY01107 | 煤炭 | 2021-12-13 | | +| HY01108 | 焦炭 | 2021-12-13 | | +| HY02101 | 氮肥 | 2021-12-13 | | +| HY02102 | 钾肥 | 2021-12-13 | | +| HY02103 | 复合肥 | 2021-12-13 | | +| HY02104 | 农药 | 2021-12-13 | | +| HY02105 | 磷肥及磷化工 | 2021-12-13 | | +| HY02106 | 锦纶与涤纶 | 2021-12-13 | | +| HY02107 | 粘胶 | 2021-12-13 | | +| HY02108 | 氨纶及其他化纤 | 2021-12-13 | | +| HY02109 | 纯碱 | 2021-12-13 | | +| HY02110 | 氯碱 | 2021-12-13 | | +| HY02111 | 无机盐 | 2021-12-13 | | +| HY02112 | 钛白粉 | 2021-12-13 | | +| HY02113 | 其他化学原料 | 2021-12-13 | | +| HY02114 | 民爆制品 | 2021-12-13 | | +| HY02115 | 涂料油墨 | 2021-12-13 | | +| HY02116 | 印染化学品 | 2021-12-13 | | +| HY02117 | 氟化工 | 2021-12-13 | | +| HY02118 | 有机硅 | 2021-12-13 | | +| HY02119 | 聚氨酯 | 2021-12-13 | | +| HY02120 | 胶黏剂及胶带 | 2021-12-13 | | +| HY02121 | 其他化学制品 | 2021-12-13 | | +| HY02122 | 改性塑料 | 2021-12-13 | | +| HY02123 | 合成树脂 | 2021-12-13 | | +| HY02124 | 膜材料 | 2021-12-13 | | +| HY02125 | 其他塑料制品 | 2021-12-13 | | +| HY02126 | 橡胶助剂 | 2021-12-13 | | +| HY02127 | 橡胶制品 | 2021-12-13 | | +| HY02128 | 铜 | 2021-12-13 | | +| HY02129 | 铝 | 2021-12-13 | | +| HY02130 | 铅锌 | 2021-12-13 | | +| HY02131 | 钴镍 | 2021-12-13 | | +| HY02132 | 黄金 | 2021-12-13 | | +| HY02133 | 其他贵金属 | 2021-12-13 | | +| HY02134 | 稀土金属 | 2021-12-13 | | +| HY02135 | 钨钼 | 2021-12-13 | | +| HY02136 | 锂 | 2021-12-13 | | +| HY02137 | 其他稀有金属 | 2021-12-13 | | +| HY02138 | 钛 | 2021-12-13 | | +| HY02139 | 其他有色金属及合金 | 2021-12-13 | | +| HY02140 | 普钢 | 2021-12-13 | | +| HY02141 | 特钢 | 2021-12-13 | | +| HY02142 | 其他钢铁 | 2021-12-13 | | +| HY02143 | 水泥与混凝土 | 2021-12-13 | | +| HY02144 | 玻璃 | 2021-12-13 | | +| HY02145 | 玻璃纤维 | 2021-12-13 | | +| HY02146 | 其他非金属材料 | 2021-12-13 | | +| HY02147 | 金属、玻璃与塑料包装 | 2021-12-13 | | +| HY02148 | 纸材料包装 | 2021-12-13 | | +| HY02149 | 林业产品 | 2021-12-13 | | +| HY02150 | 纸制品 | 2021-12-13 | | +| HY03101 | 航空 | 2021-12-13 | | +| HY03102 | 航天 | 2021-12-13 | | +| HY03103 | 国防装备 | 2021-12-13 | | +| HY03104 | 房屋建设 | 2021-12-13 | | +| HY03105 | 基础设施建设 | 2021-12-13 | | +| HY03106 | 园林工程 | 2021-12-13 | | +| HY03107 | 专业工程 | 2021-12-13 | | +| HY03108 | 建筑设计及服务 | 2021-12-13 | | +| HY03109 | 建筑装修 | 2021-12-13 | | +| HY03110 | 建筑产品 | 2021-12-13 | | +| HY03111 | 光伏设备 | 2021-12-13 | | +| HY03112 | 风电设备 | 2021-12-13 | | +| HY03113 | 其他发电设备 | 2021-12-13 | | +| HY03114 | 电网自动化 | 2021-12-13 | | +| HY03115 | 输变电设备 | 2021-12-13 | | +| HY03116 | 配电设备 | 2021-12-13 | | +| HY03117 | 线缆及其他 | 2021-12-13 | | +| HY03118 | 电池 | 2021-12-13 | | +| HY03119 | 电池部件及材料 | 2021-12-13 | | +| HY03120 | 其他储能设备 | 2021-12-13 | | +| HY03121 | 加工机械 | 2021-12-13 | | +| HY03122 | 动力机械 | 2021-12-13 | | +| HY03123 | 气液机械 | 2021-12-13 | | +| HY03124 | 电动机与工控自动化 | 2021-12-13 | | +| HY03125 | 仪器仪表 | 2021-12-13 | | +| HY03126 | 磨具磨料 | 2021-12-13 | | +| HY03127 | 其他通用机械 | 2021-12-13 | | +| HY03128 | 工程机械 | 2021-12-13 | | +| HY03129 | 采矿冶金机械 | 2021-12-13 | | +| HY03130 | 化工机械 | 2021-12-13 | | +| HY03131 | 印刷包装机械 | 2021-12-13 | | +| HY03132 | 纺织服装机械 | 2021-12-13 | | +| HY03133 | 农业机械 | 2021-12-13 | | +| HY03134 | 楼宇设备 | 2021-12-13 | | +| HY03135 | 其他专用机械 | 2021-12-13 | | +| HY03136 | 城轨铁路 | 2021-12-13 | | +| HY03137 | 船舶及其他航运设备 | 2021-12-13 | | +| HY03138 | 商用车 | 2021-12-13 | | +| HY03139 | 工业集团企业 | 2021-12-13 | | +| HY03140 | 固废处理 | 2021-12-13 | | +| HY03141 | 污水处理 | 2021-12-13 | | +| HY03142 | 烟气治理 | 2021-12-13 | | +| HY03143 | 节能与资源回收 | 2021-12-13 | | +| HY03144 | 环境监测 | 2021-12-13 | | +| HY03145 | 生态修复 | 2021-12-13 | | +| HY03146 | 商业印刷 | 2021-12-13 | | +| HY03147 | 市场服务 | 2021-12-13 | | +| HY03148 | 办公服务与用品 | 2021-12-13 | | +| HY03149 | 贸易商 | 2021-12-13 | | +| HY03150 | 其他商业服务与用品 | 2021-12-13 | | +| HY03151 | 快递 | 2021-12-13 | | +| HY03152 | 物流综合 | 2021-12-13 | | +| HY03153 | 航空运输 | 2021-12-13 | | +| HY03154 | 航运 | 2021-12-13 | | +| HY03155 | 铁路运输 | 2021-12-13 | | +| HY03156 | 公路运输 | 2021-12-13 | | +| HY03157 | 公共交通 | 2021-12-13 | | +| HY03158 | 机场 | 2021-12-13 | | +| HY03159 | 港口 | 2021-12-13 | | +| HY03160 | 高速公路 | 2021-12-13 | | +| HY04101 | 汽车系统部件 | 2021-12-13 | | +| HY04102 | 汽车内饰与外饰 | 2021-12-13 | | +| HY04103 | 汽车电子 | 2021-12-13 | | +| HY04104 | 轮胎 | 2021-12-13 | | +| HY04105 | 其他汽车零部件 | 2021-12-13 | | +| HY04106 | 乘用车 | 2021-12-13 | | +| HY04107 | 摩托车及其他 | 2021-12-13 | | +| HY04108 | 汽车经销商 | 2021-12-13 | | +| HY04109 | 汽车服务 | 2021-12-13 | | +| HY04110 | 白色家电 | 2021-12-13 | | +| HY04111 | 黑色家电 | 2021-12-13 | | +| HY04112 | 小家电 | 2021-12-13 | | +| HY04113 | 照明电器 | 2021-12-13 | | +| HY04114 | 厨卫电器 | 2021-12-13 | | +| HY04115 | 家电零部件及其他 | 2021-12-13 | | +| HY04116 | 家具 | 2021-12-13 | | +| HY04117 | 其他家居 | 2021-12-13 | | +| HY04118 | 休闲设备与用品 | 2021-12-13 | | +| HY04119 | 纺织品 | 2021-12-13 | | +| HY04120 | 服装 | 2021-12-13 | | +| HY04121 | 鞋帽与配饰 | 2021-12-13 | | +| HY04122 | 家用纺织 | 2021-12-13 | | +| HY04123 | 珠宝与奢侈品 | 2021-12-13 | | +| HY04124 | 景点 | 2021-12-13 | | +| HY04125 | 旅游服务 | 2021-12-13 | | +| HY04126 | 酒店 | 2021-12-13 | | +| HY04127 | 餐饮服务 | 2021-12-13 | | +| HY04128 | 其他休闲服务 | 2021-12-13 | | +| HY04129 | 学历教育 | 2021-12-13 | | +| HY04130 | 培训教育及其他 | 2021-12-13 | | +| HY04131 | 百货商店 | 2021-12-13 | | +| HY04132 | 超市与便利店 | 2021-12-13 | | +| HY04133 | 专营零售 | 2021-12-13 | | +| HY04134 | 旅游零售 | 2021-12-13 | | +| HY04135 | 互联网零售 | 2021-12-13 | | +| HY05101 | 白酒 | 2021-12-13 | | +| HY05102 | 啤酒 | 2021-12-13 | | +| HY05103 | 黄酒 | 2021-12-13 | | +| HY05104 | 葡萄酒及其他 | 2021-12-13 | | +| HY05105 | 软饮料 | 2021-12-13 | | +| HY05106 | 肉制品 | 2021-12-13 | | +| HY05107 | 调味品与食用油 | 2021-12-13 | | +| HY05108 | 乳制品 | 2021-12-13 | | +| HY05109 | 休闲食品 | 2021-12-13 | | +| HY05110 | 其他食品 | 2021-12-13 | | +| HY05111 | 农产品 | 2021-12-13 | | +| HY05112 | 种业 | 2021-12-13 | | +| HY05113 | 饲料 | 2021-12-13 | | +| HY05114 | 动物保健与育种 | 2021-12-13 | | +| HY05115 | 畜牧产品 | 2021-12-13 | | +| HY05116 | 渔业产品 | 2021-12-13 | | +| HY05117 | 家庭用品 | 2021-12-13 | | +| HY05118 | 美容护理 | 2021-12-13 | | +| HY06101 | 医疗设备 | 2021-12-13 | | +| HY06102 | 医疗耗材 | 2021-12-13 | | +| HY06103 | 体外诊断 | 2021-12-13 | | +| HY06104 | 医疗服务 | 2021-12-13 | | +| HY06105 | 医药商业 | 2021-12-13 | | +| HY06106 | 血液制品 | 2021-12-13 | | +| HY06107 | 疫苗 | 2021-12-13 | | +| HY06108 | 其他生物药品 | 2021-12-13 | | +| HY06109 | 原料药 | 2021-12-13 | | +| HY06110 | 药品制剂 | 2021-12-13 | | +| HY06111 | 中药饮片 | 2021-12-13 | | +| HY06112 | 中成药 | 2021-12-13 | | +| HY06113 | 制药与生物科技服务 | 2021-12-13 | | +| HY07101 | 综合性银行 | 2021-12-13 | | +| HY07102 | 区域性银行 | 2021-12-13 | | +| HY07103 | 多领域投资 | 2021-12-13 | | +| HY07104 | 特殊金融服务 | 2021-12-13 | | +| HY07105 | 其他综合性金融服务 | 2021-12-13 | | +| HY07106 | 消费信贷 | 2021-12-13 | | +| HY07107 | 证券公司 | 2021-12-13 | | +| HY07108 | 资产管理 | 2021-12-13 | | +| HY07109 | 其他资本市场 | 2021-12-13 | | +| HY07110 | 人寿与健康保险 | 2021-12-13 | | +| HY07111 | 多元化保险 | 2021-12-13 | | +| HY07112 | 财产与意外伤害保险 | 2021-12-13 | | +| HY08101 | 通用软件 | 2021-12-13 | | +| HY08102 | 行业应用软件 | 2021-12-13 | | +| HY08103 | 系统集成服务 | 2021-12-13 | | +| HY08104 | 云计算服务 | 2021-12-13 | | +| HY08105 | 其他IT与互联网服务 | 2021-12-13 | | +| HY08106 | 电脑与外围设备 | 2021-12-13 | | +| HY08107 | 消费电子终端 | 2021-12-13 | | +| HY08108 | 消费电子组件及零部件 | 2021-12-13 | | +| HY08109 | 安防设备及其他 | 2021-12-13 | | +| HY08110 | 印制电路板 | 2021-12-13 | | +| HY08111 | 被动元件 | 2021-12-13 | | +| HY08112 | 面板 | 2021-12-13 | | +| HY08113 | LED | 2021-12-13 | | +| HY08114 | 光学元件 | 2021-12-13 | | +| HY08115 | 电子化学品 | 2021-12-13 | | +| HY08116 | 其他电子 | 2021-12-13 | | +| HY08117 | 集成电路设计 | 2021-12-13 | | +| HY08118 | 集成电路制造 | 2021-12-13 | | +| HY08119 | 集成电路封测 | 2021-12-13 | | +| HY08120 | 分立器件 | 2021-12-13 | | +| HY08121 | 半导体材料 | 2021-12-13 | | +| HY08122 | 半导体设备 | 2021-12-13 | | +| HY09101 | 电信运营服务 | 2021-12-13 | | +| HY09102 | 电信增值服务 | 2021-12-13 | | +| HY09103 | 通信终端设备及组件 | 2021-12-13 | | +| HY09104 | 通信系统设备及组件 | 2021-12-13 | | +| HY09105 | 数据中心 | 2021-12-13 | | +| HY09106 | 通信技术服务 | 2021-12-13 | | +| HY09107 | 数字营销 | 2021-12-13 | | +| HY09108 | 其他广告营销 | 2021-12-13 | | +| HY09109 | 影视动漫 | 2021-12-13 | | +| HY09110 | 游戏 | 2021-12-13 | | +| HY09111 | 出版 | 2021-12-13 | | +| HY09112 | 广播与电视 | 2021-12-13 | | +| HY09113 | 视频媒体 | 2021-12-13 | | +| HY09114 | 图文媒体 | 2021-12-13 | | +| HY09115 | 互动媒体 | 2021-12-13 | | +| HY09116 | 其他数字媒体 | 2021-12-13 | | +| HY10101 | 火电 | 2021-12-13 | | +| HY10102 | 水电 | 2021-12-13 | | +| HY10103 | 核电 | 2021-12-13 | | +| HY10104 | 风电 | 2021-12-13 | | +| HY10105 | 光伏发电 | 2021-12-13 | | +| HY10106 | 其他能源发电 | 2021-12-13 | | +| HY10107 | 电网 | 2021-12-13 | | +| HY10108 | 燃气 | 2021-12-13 | | +| HY10109 | 水务 | 2021-12-13 | | +| HY10110 | 市政环卫 | 2021-12-13 | | +| HY10111 | 供热及其他 | 2021-12-13 | | +| HY11101 | 房地产开发 | 2021-12-13 | | +| HY11102 | 园区 | 2021-12-13 | | +| HY11103 | 房地产管理 | 2021-12-13 | | +| HY11104 | 房地产服务 | 2021-12-13 | | +| HY01002 | 石油与天然气开采设备与服务 | 2016-12-09 | 2021-12-12 | +| HY01001 | 石油与天然气钻井 | 2016-12-12 | 2021-12-12 | +| HY01003 | 综合性石油与天然气企业 | 2016-12-12 | 2021-12-12 | +| HY01004 | 石油与天然气的勘探与生产 | 2016-12-12 | 2021-12-12 | +| HY01005 | 石油与天然气的炼制和营销 | 2016-12-12 | 2021-12-12 | +| HY01007 | 煤炭 | 2016-12-12 | 2021-12-12 | +| HY02001 | 化学原料 | 2016-12-12 | 2021-12-12 | +| HY02002 | 涂料涂漆 | 2016-12-12 | 2021-12-12 | +| HY02003 | 塑料制品 | 2016-12-12 | 2021-12-12 | +| HY02004 | 橡胶制品 | 2016-12-12 | 2021-12-12 | +| HY02005 | 印染化学品 | 2016-12-12 | 2021-12-12 | +| HY02006 | 纤维及树脂 | 2016-12-12 | 2021-12-12 | +| HY02007 | 化肥与农药 | 2016-12-12 | 2021-12-12 | +| HY02008 | 其他化学制品 | 2016-12-12 | 2021-12-12 | +| HY02009 | 水泥 | 2016-12-12 | 2021-12-12 | +| HY02010 | 玻璃 | 2016-12-12 | 2021-12-12 | +| HY02011 | 其他建材 | 2016-12-12 | 2021-12-12 | +| HY02012 | 金属与玻璃容器 | 2016-12-12 | 2021-12-12 | +| HY02013 | 纸材料包装 | 2016-12-12 | 2021-12-12 | +| HY02014 | 铝 | 2016-12-12 | 2021-12-12 | +| HY02015 | 铜 | 2016-12-12 | 2021-12-12 | +| HY02016 | 黄金及其它贵金属 | 2016-12-12 | 2021-12-12 | +| HY02017 | 稀有金属 | 2016-12-12 | 2021-12-12 | +| HY02018 | 其它有色金属及合金 | 2016-12-12 | 2021-12-12 | +| HY02019 | 钢铁 | 2016-12-12 | 2021-12-12 | +| HY02020 | 非金属采矿及制品 | 2016-12-12 | 2021-12-12 | +| HY02021 | 林业产品 | 2016-12-12 | 2021-12-12 | +| HY02022 | 纸制品 | 2016-12-12 | 2021-12-12 | +| HY03001 | 航空航天与国防 | 2016-12-12 | 2021-12-12 | +| HY03002 | 建筑产品 | 2016-12-12 | 2021-12-12 | +| HY03003 | 土木工程 | 2016-12-12 | 2021-12-12 | +| HY03004 | 建筑装修 | 2016-12-12 | 2021-12-12 | +| HY03005 | 园林工程 | 2016-12-12 | 2021-12-12 | +| HY03006 | 电气部件与设备 | 2016-12-12 | 2021-12-12 | +| HY03007 | 重型电气设备 | 2016-12-12 | 2021-12-12 | +| HY03008 | 新能源设备 | 2016-12-12 | 2021-12-12 | +| HY03009 | 工业集团企业 | 2016-12-12 | 2021-12-12 | +| HY03010 | 通用机械 | 2016-12-12 | 2021-12-12 | +| HY03011 | 工程机械 | 2016-12-12 | 2021-12-12 | +| HY03012 | 商用货车 | 2016-12-12 | 2021-12-12 | +| HY03013 | 农用机械 | 2016-12-12 | 2021-12-12 | +| HY03014 | 铁路设备 | 2016-12-12 | 2021-12-12 | +| HY03015 | 船舶制造 | 2016-12-12 | 2021-12-12 | +| HY03016 | 其他机械设备 | 2016-12-12 | 2021-12-12 | +| HY03017 | 环保设备 | 2016-12-12 | 2021-12-12 | +| HY03018 | 环保工程 | 2016-12-12 | 2021-12-12 | +| HY03019 | 环保服务 | 2016-12-12 | 2021-12-12 | +| HY03020 | 商业印刷 | 2016-12-12 | 2021-12-12 | +| HY03021 | 市场服务 | 2016-12-12 | 2021-12-12 | +| HY03022 | 办公服务与用品 | 2016-12-12 | 2021-12-12 | +| HY03023 | 工业品贸易商 | 2016-12-12 | 2021-12-12 | +| HY03024 | 其他商业服务 | 2016-12-12 | 2021-12-12 | +| HY03025 | 航空货运 | 2016-12-12 | 2021-12-12 | +| HY03026 | 物流 | 2016-12-12 | 2021-12-12 | +| HY03027 | 航空公司 | 2016-12-12 | 2021-12-12 | +| HY03028 | 航运 | 2016-12-12 | 2021-12-12 | +| HY03029 | 铁路运输 | 2016-12-12 | 2021-12-12 | +| HY03030 | 公路运输 | 2016-12-12 | 2021-12-12 | +| HY03031 | 公共交通 | 2016-12-12 | 2021-12-12 | +| HY03032 | 机场 | 2016-12-12 | 2021-12-12 | +| HY03033 | 高速公路 | 2016-12-12 | 2021-12-12 | +| HY03034 | 港口 | 2016-12-12 | 2021-12-12 | +| HY04001 | 汽车零配件 | 2016-12-12 | 2021-12-12 | +| HY04002 | 轮胎 | 2016-12-12 | 2021-12-12 | +| HY04003 | 汽车 | 2016-12-12 | 2021-12-12 | +| HY04004 | 摩托车 | 2016-12-12 | 2021-12-12 | +| HY04005 | 汽车经销商与汽车服务 | 2016-12-12 | 2021-12-12 | +| HY04006 | 消费电子产品 | 2016-12-12 | 2021-12-12 | +| HY04007 | 家庭装饰品 | 2016-12-12 | 2021-12-12 | +| HY04008 | 家用电器 | 2016-12-12 | 2021-12-12 | +| HY04009 | 家用器具与特殊消费品 | 2016-12-12 | 2021-12-12 | +| HY04010 | 休闲设备与用品 | 2016-12-12 | 2021-12-12 | +| HY04011 | 服装服饰 | 2016-12-12 | 2021-12-12 | +| HY04012 | 鞋类 | 2016-12-12 | 2021-12-12 | +| HY04013 | 纺织品 | 2016-12-12 | 2021-12-12 | +| HY04014 | 珠宝与奢侈品 | 2016-12-12 | 2021-12-12 | +| HY04015 | 景点 | 2016-12-12 | 2021-12-12 | +| HY04016 | 酒店 | 2016-12-12 | 2021-12-12 | +| HY04017 | 休闲服务 | 2016-12-12 | 2021-12-12 | +| HY04018 | 餐馆 | 2016-12-12 | 2021-12-12 | +| HY04019 | 旅行社 | 2016-12-12 | 2021-12-12 | +| HY04020 | 教育服务 | 2016-12-12 | 2021-12-12 | +| HY04021 | 特殊消费者服务 | 2016-12-12 | 2021-12-12 | +| HY04022 | 营销与广告 | 2016-12-12 | 2021-12-12 | +| HY04023 | 广播与有线电视 | 2016-12-12 | 2021-12-12 | +| HY04024 | 电影与娱乐 | 2016-12-12 | 2021-12-12 | +| HY04025 | 出版 | 2016-12-12 | 2021-12-12 | +| HY04026 | 日用品经销商 | 2016-12-12 | 2021-12-12 | +| HY04027 | 互联网零售 | 2016-12-12 | 2021-12-12 | +| HY04028 | 百货商店 | 2016-12-12 | 2021-12-12 | +| HY04029 | 综合货品商店 | 2016-12-12 | 2021-12-12 | +| HY04030 | 其他零售 | 2016-12-12 | 2021-12-12 | +| HY05001 | 食品经销商 | 2016-12-12 | 2021-12-12 | +| HY05002 | 大卖场与超市 | 2016-12-12 | 2021-12-12 | +| HY05003 | 白酒 | 2016-12-12 | 2021-12-12 | +| HY05004 | 啤酒 | 2016-12-12 | 2021-12-12 | +| HY05005 | 黄酒 | 2016-12-12 | 2021-12-12 | +| HY05006 | 葡萄酒及其他 | 2016-12-12 | 2021-12-12 | +| HY05007 | 软饮料 | 2016-12-12 | 2021-12-12 | +| HY05008 | 包装食品与肉类 | 2016-12-12 | 2021-12-12 | +| HY05009 | 畜牧产品 | 2016-12-12 | 2021-12-12 | +| HY05010 | 渔业产品 | 2016-12-12 | 2021-12-12 | +| HY05011 | 其他农产品 | 2016-12-12 | 2021-12-12 | +| HY05012 | 家常用品 | 2016-12-12 | 2021-12-12 | +| HY05013 | 个人用品 | 2016-12-12 | 2021-12-12 | +| HY06001 | 医疗器械 | 2016-12-12 | 2021-12-12 | +| HY06002 | 医疗用品经销商 | 2016-12-12 | 2021-12-12 | +| HY06003 | 医疗保健服务 | 2016-12-12 | 2021-12-12 | +| HY06004 | 医疗保健机构 | 2016-12-12 | 2021-12-12 | +| HY06005 | 医疗保健技术 | 2016-12-12 | 2021-12-12 | +| HY06006 | 生物科技 | 2016-12-12 | 2021-12-12 | +| HY06007 | 化学药 | 2016-12-12 | 2021-12-12 | +| HY06008 | 中药 | 2016-12-12 | 2021-12-12 | +| HY06009 | 药品经销商 | 2016-12-12 | 2021-12-12 | +| HY06010 | 制药与生物科技服务 | 2016-12-12 | 2021-12-12 | +| HY07001 | 综合性银行 | 2016-12-12 | 2021-12-12 | +| HY07002 | 区域性银行 | 2016-12-12 | 2021-12-12 | +| HY07003 | 其它综合性金融服务 | 2016-12-12 | 2021-12-12 | +| HY07004 | 多领域控股 | 2016-12-12 | 2021-12-12 | +| HY07005 | 特殊金融服务 | 2016-12-12 | 2021-12-12 | +| HY07006 | 消费信贷 | 2016-12-12 | 2021-12-12 | +| HY07007 | 资产管理与托管银行 | 2016-12-12 | 2021-12-12 | +| HY07008 | 投资银行业与经纪业 | 2016-12-12 | 2021-12-12 | +| HY07011 | 人寿与健康保险 | 2016-12-12 | 2021-12-12 | +| HY07012 | 多元化保险 | 2016-12-12 | 2021-12-12 | +| HY07013 | 财产与意外伤害保险 | 2016-12-12 | 2021-12-12 | +| HY08001 | 互联网信息服务 | 2016-12-12 | 2021-12-12 | +| HY08002 | 移动互联网信息服务 | 2016-12-12 | 2021-12-12 | +| HY08003 | 系统集成及IT咨询 | 2016-12-12 | 2021-12-12 | +| HY08004 | IT外包服务 | 2016-12-12 | 2021-12-12 | +| HY08005 | 软件开发 | 2016-12-12 | 2021-12-12 | +| HY08006 | 电脑与外围设备 | 2016-12-12 | 2021-12-12 | +| HY08007 | 电子设备及仪表制造商 | 2016-12-12 | 2021-12-12 | +| HY08008 | 光电子器件 | 2016-12-12 | 2021-12-12 | +| HY08009 | 电脑及电子设备经销商 | 2016-12-12 | 2021-12-12 | +| HY08010 | 半导体 | 2016-12-12 | 2021-12-12 | +| HY09001 | 电信运营服务 | 2016-12-12 | 2021-12-12 | +| HY09002 | 电信增值服务 | 2016-12-12 | 2021-12-12 | +| HY09003 | 通信终端设备 | 2016-12-12 | 2021-12-12 | +| HY09004 | 通信传输设备 | 2016-12-12 | 2021-12-12 | +| HY09005 | 其它通信设备 | 2016-12-12 | 2021-12-12 | +| HY10001 | 火电 | 2016-12-12 | 2021-12-12 | +| HY10002 | 水电 | 2016-12-12 | 2021-12-12 | +| HY10003 | 核电 | 2016-12-12 | 2021-12-12 | +| HY10004 | 新能源发电 | 2016-12-12 | 2021-12-12 | +| HY10005 | 燃气 | 2016-12-12 | 2021-12-12 | +| HY10006 | 供热或其他公用事业 | 2016-12-12 | 2021-12-12 | +| HY10007 | 水务 | 2016-12-12 | 2021-12-12 | +| HY10008 | 电网 | 2016-12-12 | 2021-12-12 | +| HY11001 | 房地产开发 | 2016-12-12 | 2021-12-12 | +| HY11002 | 园区 | 2016-12-12 | 2021-12-12 | +| HY11003 | 房地产管理与服务 | 2016-12-12 | 2021-12-12 | +| HY01006 | 石油与天然气的储存和运输 | 2017-06-12 | 2021-12-12 | +| HY07009 | 综合性资本市场 | 2020-06-15 | 2021-12-12 | +| HY07010 | 金融交易与数据 | 2020-06-15 | 2021-12-12 | + +### 申万行业 + +#### 申万一级行业 + +| 行业代码 | 行业名称 | 起始日期 | 终止日期 | 父级行业代码 | +| --- | --- | --- | --- | --- | +| 801010 | 农林牧渔I | 2004-02-09 | | | +| 801020 | 采掘I | 2004-02-10 | 2021-12-10 | | +| 801030 | 化工I | 2004-02-10 | | | +| 801040 | 钢铁I | 2004-02-10 | | | +| 801050 | 有色金属I | 2004-02-10 | | | +| 801060 | 建筑建材I | 2004-02-10 | 2014-02-20 | | +| 801070 | 机械设备I | 2004-02-10 | 2014-02-20 | | +| 801080 | 电子I | 2004-02-10 | | | +| 801090 | 交运设备I | 2004-02-10 | 2014-02-20 | | +| 801100 | 信息设备I | 2004-02-10 | 2014-02-20 | | +| 801110 | 家用电器I | 2004-02-10 | | | +| 801120 | 食品饮料I | 2004-02-10 | | | +| 801130 | 纺织服装I | 2004-02-10 | | | +| 801140 | 轻工制造I | 2004-02-10 | | | +| 801150 | 医药生物I | 2004-02-10 | | | +| 801160 | 公用事业I | 2004-02-10 | | | +| 801170 | 交通运输I | 2004-02-10 | | | +| 801180 | 房地产I | 2004-02-10 | | | +| 801190 | 金融服务I | 2004-02-10 | 2014-02-20 | | +| 801200 | 商业贸易I | 2004-02-10 | | | +| 801210 | 休闲服务I | 2004-02-10 | | | +| 801220 | 信息服务I | 2004-02-10 | 2014-02-20 | | +| 801230 | 综合I | 2004-02-10 | | | +| 801710 | 建筑材料I | 2014-02-21 | | | +| 801720 | 建筑装饰I | 2014-02-21 | | | +| 801730 | 电气设备I | 2014-02-21 | | | +| 801740 | 国防军工I | 2014-02-21 | | | +| 801750 | 计算机I | 2014-02-21 | | | +| 801760 | 传媒I | 2014-02-21 | | | +| 801770 | 通信I | 2014-02-21 | | | +| 801780 | 银行I | 2014-02-21 | | | +| 801790 | 非银金融I | 2014-02-21 | | | +| 801880 | 汽车I | 2014-02-21 | | | +| 801890 | 机械设备I | 2014-02-21 | | | +| 801950 | 煤炭I | 2021-12-11 | | | +| 801960 | 石油石化I | 2021-12-11 | | | +| 801970 | 环保I | 2021-12-11 | | | +| 801980 | 美容护理I | 2021-12-11 | | | + +#### 申万二级行业 + +| 行业代码 | 行业名称 | 起始日期 | 终止日期 | 父级行业代码 | +| --- | --- | --- | --- | --- | +| 801011 | 林业II | 2005-05-26 | | 801010 | +| 801012 | 农产品加工II | 2005-05-26 | | 801010 | +| 801013 | 农业综合II | 2005-05-26 | 2021-12-10 | 801010 | +| 801014 | 饲料II | 2005-05-26 | | 801010 | +| 801015 | 渔业II | 2005-05-26 | | 801010 | +| 801016 | 种植业II | 2005-05-26 | | 801010 | +| 801017 | 畜禽养殖II | 2011-09-23 | | 801010 | +| 801018 | 动物保健II | 2011-09-23 | | 801010 | +| 801019 | 农业综合II | 2021-12-11 | | 801010 | +| 801021 | 煤炭开采II | 2005-05-26 | 2021-12-10 | 801020 | +| 801022 | 其他采掘II | 2005-05-26 | 2021-12-10 | 801020 | +| 801023 | 石油开采II | 2005-05-26 | 2021-12-10 | 801020 | +| 801024 | 采掘服务II | 2011-09-23 | 2021-12-10 | 801020 | +| 801031 | 化工新材料II | 2005-05-26 | 2014-02-20 | 801030 | +| 801032 | 化学纤维II | 2005-05-26 | | 801030 | +| 801033 | 化学原料II | 2005-05-26 | | 801030 | +| 801034 | 化学制品II | 2005-05-26 | | 801030 | +| 801035 | 石油化工II | 2005-05-26 | 2021-12-10 | 801030 | +| 801036 | 塑料II | 2005-05-27 | | 801030 | +| 801037 | 橡胶II | 2005-05-27 | | 801030 | +| 801038 | 农化制品II | 2021-12-11 | | 801030 | +| 801039 | 非金属材料II | 2021-12-11 | | 801030 | +| 801041 | 钢铁II | 2005-05-27 | 2021-12-10 | 801040 | +| 801042 | 金属制品II | 2005-05-27 | 2008-06-01 | 801040 | +| 801043 | 冶钢原料II | 2021-12-11 | | 801040 | +| 801044 | 普钢II | 2021-12-11 | | 801040 | +| 801045 | 特钢II | 2021-12-11 | | 801040 | +| 801051 | 金属非金属新材料II | 2005-05-27 | | 801050 | +| 801052 | 有色金属冶炼II | 2005-05-27 | 2014-02-20 | 801050 | +| 801053 | 黄金II | 2014-02-21 | | 801050 | +| 801054 | 稀有金属II | 2014-02-21 | | 801050 | +| 801055 | 工业金属II | 2014-02-21 | | 801050 | +| 801056 | 能源金属II | 2021-12-11 | | 801050 | +| 801061 | 建筑材料II | 2005-05-27 | 2014-02-20 | 801060 | +| 801062 | 建筑装饰II | 2005-05-27 | 2014-02-20 | 801060 | +| 801071 | 电气设备II | 2005-05-27 | 2014-02-20 | 801070 | +| 801081 | 半导体II | 2005-05-27 | | 801080 | +| 801082 | 其他电子II | 2005-05-27 | | 801080 | +| 801083 | 元件II | 2005-05-27 | | 801080 | +| 801084 | 光学光电子II | 2005-05-27 | | 801080 | +| 801085 | 电子制造II | 2011-09-23 | | 801080 | +| 801086 | 电子化学品II | 2021-12-11 | | 801080 | +| 801091 | 非汽车交运设备II | 2005-05-27 | 2014-02-20 | 801090 | +| 801111 | 白色家电II | 2005-05-27 | | 801110 | +| 801112 | 视听器材II | 2005-05-27 | | 801110 | +| 801113 | 小家电II | 2021-12-11 | | 801110 | +| 801114 | 厨卫电器II | 2021-12-11 | | 801110 | +| 801115 | 照明设备II | 2021-12-11 | | 801110 | +| 801116 | 家电零部件II | 2021-12-11 | | 801110 | +| 801117 | 其他家电II | 2021-12-11 | | 801110 | +| 801121 | 食品加工II | 2005-05-27 | 2011-10-09 | 801120 | +| 801122 | 食品制造II | 2005-05-27 | 2011-10-09 | 801120 | +| 801123 | 饮料制造II | 2005-05-27 | 2021-12-10 | 801120 | +| 801124 | 食品加工II | 2011-09-23 | | 801120 | +| 801125 | 白酒II | 2021-12-11 | | 801120 | +| 801126 | 非白酒II | 2021-12-11 | | 801120 | +| 801127 | 饮料乳品II | 2021-12-11 | | 801120 | +| 801128 | 休闲食品II | 2021-12-11 | | 801120 | +| 801129 | 调味发酵品II | 2021-12-11 | | 801120 | +| 801131 | 纺织制造II | 2005-05-27 | | 801130 | +| 801132 | 服装家纺II | 2005-05-27 | | 801130 | +| 801133 | 饰品II | 2021-12-11 | | 801130 | +| 801141 | 包装印刷II | 2005-05-27 | | 801140 | +| 801142 | 家用轻工II | 2005-05-27 | | 801140 | +| 801143 | 造纸II | 2005-05-27 | | 801140 | +| 801144 | 其他轻工制造II | 2014-02-21 | 2021-12-10 | 801140 | +| 801145 | 文娱用品II | 2021-12-11 | | 801140 | +| 801151 | 化学制药II | 2005-05-27 | | 801150 | +| 801152 | 生物制品II | 2005-05-27 | | 801150 | +| 801153 | 医疗器械II | 2005-05-27 | | 801150 | +| 801154 | 医药商业II | 2005-05-27 | | 801150 | +| 801155 | 中药II | 2005-05-27 | | 801150 | +| 801156 | 医疗服务II | 2007-07-04 | | 801150 | +| 801161 | 电力II | 2005-05-27 | | 801160 | +| 801162 | 环保工程及服务II | 2005-05-27 | 2021-12-10 | 801160 | +| 801163 | 燃气II | 2005-05-27 | | 801160 | +| 801164 | 水务II | 2005-05-27 | 2021-12-10 | 801160 | +| 801171 | 港口II | 2005-05-27 | 2021-12-10 | 801170 | +| 801172 | 公交II | 2005-05-27 | 2021-12-10 | 801170 | +| 801173 | 航空运输II | 2005-05-27 | 2021-12-10 | 801170 | +| 801174 | 机场II | 2005-05-27 | 2021-12-10 | 801170 | +| 801175 | 高速公路II | 2005-05-27 | 2021-12-10 | 801170 | +| 801176 | 航运II | 2005-05-27 | 2021-12-10 | 801170 | +| 801177 | 铁路运输II | 2005-05-27 | 2021-12-10 | 801170 | +| 801178 | 物流II | 2005-05-27 | | 801170 | +| 801179 | 铁路公路II | 2021-12-11 | | 801170 | +| 801991 | 航空机场II | 2021-12-11 | | 801170 | +| 801992 | 航运港口II | 2021-12-11 | | 801170 | +| 801181 | 房地产开发II | 2005-05-27 | | 801180 | +| 801182 | 园区开发II | 2005-05-27 | 2021-12-10 | 801180 | +| 801183 | 房地产服务II | 2021-12-11 | | 801180 | +| 801201 | 零售II | 2005-05-27 | 2014-02-20 | 801200 | +| 801202 | 贸易II | 2005-05-27 | | 801200 | +| 801203 | 一般零售II | 2014-02-21 | | 801200 | +| 801204 | 专业零售II | 2014-02-21 | | 801200 | +| 801205 | 商业物业经营II | 2014-02-21 | 2021-12-10 | 801200 | +| 801206 | 互联网电商II | 2021-12-11 | | 801200 | +| 801207 | 旅游零售II | 2021-12-11 | | 801200 | +| 801211 | 餐饮II | 2005-05-27 | 2021-12-10 | 801210 | +| 801212 | 景点II | 2005-05-27 | 2021-12-10 | 801210 | +| 801213 | 酒店II | 2005-05-27 | 2021-12-10 | 801210 | +| 801214 | 旅游综合II | 2005-05-27 | 2021-12-10 | 801210 | +| 801215 | 其他休闲服务II | 2014-02-21 | 2021-12-10 | 801210 | +| 801216 | 体育II | 2021-12-11 | | 801210 | +| 801217 | 本地生活服务II | 2021-12-11 | | 801210 | +| 801218 | 专业服务II | 2021-12-11 | | 801210 | +| 801219 | 酒店餐饮II | 2021-12-11 | | 801210 | +| 801993 | 旅游及景区II | 2021-12-11 | | 801210 | +| 801994 | 教育II | 2021-12-11 | | 801210 | +| 801221 | 传媒II | 2005-05-27 | 2014-02-20 | 801220 | +| 801224 | 网络服务II | 2005-05-27 | 2014-02-20 | 801220 | +| 801231 | 综合II | 2005-05-27 | | 801230 | +| 801711 | 水泥制造II | 2014-02-21 | | 801710 | +| 801712 | 玻璃制造II | 2014-02-21 | | 801710 | +| 801713 | 其他建材II | 2014-02-21 | | 801710 | +| 801721 | 房屋建设II | 2014-02-21 | | 801720 | +| 801722 | 装修装饰II | 2014-02-21 | | 801720 | +| 801723 | 基础建设II | 2014-02-21 | | 801720 | +| 801724 | 专业工程II | 2014-02-21 | | 801720 | +| 801725 | 园林工程II | 2014-02-21 | 2021-12-10 | 801720 | +| 801726 | 工程咨询服务II | 2021-12-11 | | 801720 | +| 801731 | 电机II | 2014-02-21 | | 801730 | +| 801732 | 电气自动化设备II | 2014-02-21 | 2021-12-10 | 801730 | +| 801733 | 电源设备II | 2014-02-21 | | 801730 | +| 801734 | 高低压设备II | 2014-02-21 | 2021-12-10 | 801730 | +| 801735 | 光伏设备II | 2021-12-11 | | 801730 | +| 801736 | 风电设备II | 2021-12-11 | | 801730 | +| 801737 | 电池II | 2021-12-11 | | 801730 | +| 801738 | 电网设备II | 2021-12-11 | | 801730 | +| 801741 | 航天装备II | 2014-02-21 | | 801740 | +| 801742 | 航空装备II | 2014-02-21 | | 801740 | +| 801743 | 地面兵装II | 2014-02-21 | | 801740 | +| 801744 | 船舶制造II | 2014-02-21 | | 801740 | +| 801745 | 军工电子II | 2021-12-11 | | 801740 | +| 801101 | 计算机设备II | 2005-05-27 | | 801750 | +| 801222 | 计算机应用II | 2005-05-27 | 2021-12-10 | 801750 | +| 801104 | 软件开发II | 2021-12-11 | | 801750 | +| 801103 | IT服务II | 2021-12-11 | | 801750 | +| 801751 | 营销传播II | 2014-02-21 | 2021-12-10 | 801760 | +| 801752 | 互联网传媒II | 2014-02-21 | 2021-12-10 | 801760 | +| 801761 | 文化传媒II | 2014-02-21 | 2021-12-10 | 801760 | +| 801764 | 游戏II | 2021-12-11 | | 801760 | +| 801765 | 广告营销II | 2021-12-11 | | 801760 | +| 801766 | 影视院线II | 2021-12-11 | | 801760 | +| 801767 | 数字媒体II | 2021-12-11 | | 801760 | +| 801768 | 社交II | 2021-12-11 | | 801760 | +| 801769 | 出版II | 2021-12-11 | | 801760 | +| 801995 | 电视广播II | 2021-12-11 | | 801760 | +| 801102 | 通信设备II | 2005-05-27 | | 801770 | +| 801223 | 通信运营II | 2005-05-27 | | 801770 | +| 801192 | 银行II | 2005-05-27 | 2021-12-10 | 801780 | +| 801782 | 国有大型银行II | 2021-12-11 | | 801780 | +| 801783 | 股份制银行II | 2021-12-11 | | 801780 | +| 801784 | 城商行II | 2021-12-11 | | 801780 | +| 801785 | 农商行II | 2021-12-11 | | 801780 | +| 801786 | 其他银行II | 2021-12-11 | | 801780 | +| 801191 | 多元金融II | 2005-05-27 | | 801790 | +| 801193 | 证券II | 2005-05-27 | | 801790 | +| 801194 | 保险II | 2007-01-18 | | 801790 | +| 801092 | 汽车服务II | 2005-05-27 | | 801880 | +| 801093 | 汽车零部件II | 2005-05-27 | | 801880 | +| 801094 | 汽车整车II | 2005-05-27 | 2021-12-10 | 801880 | +| 801881 | 其他交运设备II | 2014-02-21 | | 801880 | +| 801095 | 乘用车II | 2021-12-11 | | 801880 | +| 801096 | 商用车II | 2021-12-11 | | 801880 | +| 801072 | 通用机械II | 2005-05-27 | | 801890 | +| 801073 | 仪器仪表II | 2005-05-27 | 2021-12-10 | 801890 | +| 801074 | 专用设备II | 2005-05-27 | | 801890 | +| 801075 | 金属制品II | 2008-06-26 | 2021-12-10 | 801890 | +| 801076 | 运输设备II | 2014-02-21 | | 801890 | +| 801077 | 工程机械II | 2021-12-11 | | 801890 | +| 801078 | 自动化设备II | 2021-12-11 | | 801890 | +| 801951 | 煤炭开采II | 2021-12-11 | | 801950 | +| 801952 | 焦炭II | 2021-12-11 | | 801950 | +| 801961 | 油气开采II | 2021-12-11 | | 801960 | +| 801962 | 油服工程II | 2021-12-11 | | 801960 | +| 801963 | 炼化及贸易II | 2021-12-11 | | 801960 | +| 801971 | 环境治理II | 2021-12-11 | | 801970 | +| 801972 | 环保设备II | 2021-12-11 | | 801970 | +| 801981 | 个护用品II | 2021-12-11 | | 801980 | +| 801982 | 化妆品II | 2021-12-11 | | 801980 | +| 801983 | 医疗美容II | 2021-12-11 | | 801980 | + +#### 申万三级行业 + +| 行业代码 | 行业名称 | 起始日期 | 终止日期 | 父级行业代码 | +| --- | --- | --- | --- | --- | +| 850131 | 林业III | 2005-05-27 | | 801011 | +| 850151 | 果蔬加工III | 2005-05-27 | | 801012 | +| 850152 | 粮油加工III | 2005-05-27 | | 801012 | +| 850153 | 畜禽加工III | 2005-05-27 | 2011-10-09 | 801012 | +| 850154 | 其他农产品加工III | 2011-09-23 | | 801012 | +| 850161 | 农业综合III | 2005-05-27 | 2021-12-10 | 801013 | +| 850141 | 饲料III | 2005-05-27 | 2021-12-10 | 801014 | +| 850142 | 畜禽饲料III | 2021-12-11 | | 801014 | +| 850143 | 水产饲料III | 2021-12-11 | | 801014 | +| 850144 | 宠物食品III | 2021-12-11 | | 801014 | +| 850121 | 海洋捕捞III | 2005-05-27 | | 801015 | +| 850122 | 水产养殖III | 2005-05-27 | | 801015 | +| 850111 | 种子生产III | 2005-05-27 | | 801016 | +| 850112 | 粮食种植III | 2005-05-27 | | 801016 | +| 850113 | 其他种植业III | 2005-05-27 | | 801016 | +| 850114 | 食用菌III | 2021-12-11 | | 801016 | +| 850171 | 畜禽养殖III | 2011-09-23 | 2021-12-10 | 801017 | +| 850172 | 生猪养殖III | 2021-12-11 | | 801017 | +| 850173 | 肉鸡养殖III | 2021-12-11 | | 801017 | +| 850174 | 其他养殖III | 2021-12-11 | | 801017 | +| 850181 | 动物保健III | 2011-09-23 | | 801018 | +| 850191 | 农业综合III | 2021-12-11 | | 801019 | +| 850221 | 煤炭开采III | 2005-05-27 | 2021-12-10 | 801021 | +| 850222 | 焦炭加工III | 2005-05-27 | 2021-12-10 | 801021 | +| 850231 | 其他采掘III | 2005-05-27 | 2021-12-10 | 801022 | +| 850211 | 石油开采III | 2005-05-27 | 2021-12-10 | 801023 | +| 850241 | 油气钻采服务III | 2011-09-23 | 2021-12-10 | 801024 | +| 850242 | 其他采掘服务III | 2011-09-23 | 2021-12-10 | 801024 | +| 850371 | 其他化工新材料III | 2005-05-27 | 2014-02-20 | 801031 | +| 850341 | 涤纶III | 2005-05-27 | | 801032 | +| 850342 | 维纶III | 2005-05-27 | 2021-12-10 | 801032 | +| 850343 | 粘胶III | 2005-05-27 | | 801032 | +| 850344 | 其他纤维III | 2005-05-27 | | 801032 | +| 850345 | 氨纶III | 2008-06-27 | | 801032 | +| 850346 | 锦纶III | 2021-12-11 | | 801032 | +| 850321 | 纯碱III | 2005-05-27 | | 801033 | +| 850322 | 氯碱III | 2005-05-27 | | 801033 | +| 850323 | 无机盐III | 2005-05-27 | | 801033 | +| 850324 | 其他化学原料III | 2007-07-04 | | 801033 | +| 850325 | 煤化工III | 2021-12-11 | | 801033 | +| 850326 | 钛白粉III | 2021-12-11 | | 801033 | +| 850334 | 日用化学产品III | 2005-05-27 | 2021-12-10 | 801034 | +| 850335 | 涂料油漆油墨制造III | 2005-05-27 | | 801034 | +| 850337 | 民爆用品III | 2008-06-26 | | 801034 | +| 850338 | 纺织化学用品III | 2008-06-26 | | 801034 | +| 850339 | 其他化学制品III | 2008-06-26 | | 801034 | +| 850372 | 聚氨酯III | 2011-09-23 | | 801034 | +| 850373 | 玻纤III | 2011-09-23 | 2021-12-10 | 801034 | +| 850382 | 氟化工及制冷剂III | 2011-09-23 | | 801034 | +| 850383 | 磷化工及磷酸盐III | 2011-09-23 | 2021-12-10 | 801034 | +| 850135 | 食品及饲料添加剂III | 2021-12-11 | | 801034 | +| 850136 | 有机硅III | 2021-12-11 | | 801034 | +| 850137 | 胶黏剂及胶带III | 2021-12-11 | | 801034 | +| 850311 | 石油加工III | 2005-05-27 | 2021-12-10 | 801035 | +| 850313 | 石油贸易III | 2005-05-27 | 2021-12-10 | 801035 | +| 850351 | 其他塑料制品III | 2005-05-27 | | 801036 | +| 850352 | 合成革III | 2011-09-23 | 2021-12-10 | 801036 | +| 850353 | 改性塑料III | 2011-09-23 | | 801036 | +| 850354 | 合成树脂III | 2021-12-11 | | 801036 | +| 850355 | 膜材料III | 2021-12-11 | | 801036 | +| 850361 | 轮胎III | 2005-05-27 | 2021-12-10 | 801037 | +| 850362 | 其他橡胶制品III | 2008-06-27 | | 801037 | +| 850363 | 炭黑III | 2011-09-23 | | 801037 | +| 850364 | 橡胶助剂III | 2021-12-11 | | 801037 | +| 850331 | 氮肥III | 2005-05-27 | | 801038 | +| 850332 | 磷肥III | 2005-05-27 | | 801038 | +| 850333 | 农药III | 2005-05-27 | | 801038 | +| 850336 | 钾肥III | 2005-05-27 | | 801038 | +| 850381 | 复合肥III | 2011-09-23 | | 801038 | +| 850523 | 非金属新材料III | 2008-06-26 | | 801039 | +| 850411 | 普钢III | 2005-05-27 | 2021-12-10 | 801041 | +| 850421 | 金属制品III | 2005-05-27 | 2008-06-01 | 801042 | +| 850431 | 铁矿石III | 2021-12-11 | | 801043 | +| 850432 | 冶钢辅料III | 2021-12-11 | | 801043 | +| 850441 | 长材III | 2021-12-11 | | 801044 | +| 850442 | 板材III | 2021-12-11 | | 801044 | +| 850443 | 钢铁管材III | 2021-12-11 | | 801044 | +| 850412 | 特钢III | 2005-05-27 | | 801045 | +| 850521 | 金属新材料III | 2005-05-27 | | 801051 | +| 850522 | 磁性材料III | 2008-06-26 | | 801051 | +| 850511 | 有色金属冶炼III | 2005-05-27 | 2007-07-01 | 801052 | +| 850512 | 铝III | 2007-07-04 | 2014-02-20 | 801052 | +| 850513 | 铜III | 2007-07-04 | 2014-02-20 | 801052 | +| 850514 | 铅锌III | 2007-07-04 | 2014-02-20 | 801052 | +| 850515 | 黄金III | 2007-07-04 | 2014-02-20 | 801052 | +| 850516 | 小金属III | 2007-07-04 | 2014-02-20 | 801052 | +| 850531 | 黄金III | 2014-02-21 | | 801053 | +| 850532 | 白银III | 2021-12-11 | | 801053 | +| 850541 | 稀土III | 2014-02-21 | | 801054 | +| 850542 | 钨III | 2014-02-21 | | 801054 | +| 850544 | 其他稀有小金属III | 2014-02-21 | | 801054 | +| 850545 | 钼III | 2021-12-11 | | 801054 | +| 850551 | 铝III | 2014-02-21 | | 801055 | +| 850552 | 铜III | 2014-02-21 | | 801055 | +| 850553 | 铅锌III | 2014-02-21 | | 801055 | +| 850543 | 锂III | 2014-02-21 | | 801056 | +| 850561 | 钴III | 2021-12-11 | | 801056 | +| 850562 | 镍III | 2021-12-11 | | 801056 | +| 850613 | 陶瓷制造III | 2005-05-27 | 2014-02-20 | 801061 | +| 850621 | 建筑施工III | 2005-05-27 | 2011-10-09 | 801062 | +| 850622 | 装饰园林III | 2005-05-27 | 2014-02-20 | 801062 | +| 850624 | 基础建设III | 2011-09-23 | 2014-02-20 | 801062 | +| 850625 | 专业工程III | 2011-09-23 | 2014-02-20 | 801062 | +| 850742 | 电气自控设备III | 2005-05-27 | 2014-02-20 | 801071 | +| 850743 | 电源设备III | 2005-05-27 | 2014-02-20 | 801071 | +| 850744 | 输变电设备III | 2005-05-27 | 2014-02-20 | 801071 | +| 850745 | 其他电力设备III | 2005-05-27 | 2014-02-20 | 801071 | +| 850711 | 机床工具III | 2005-05-27 | | 801072 | +| 850712 | 机械基础件III | 2005-05-27 | 2021-12-10 | 801072 | +| 850713 | 磨具磨料III | 2005-05-27 | | 801072 | +| 850714 | 内燃机III | 2005-05-27 | 2021-12-10 | 801072 | +| 850715 | 制冷空调设备III | 2005-05-27 | | 801072 | +| 850716 | 其它通用机械III | 2005-05-27 | | 801072 | +| 850731 | 仪器仪表III | 2005-05-27 | | 801072 | +| 850751 | 金属制品III | 2008-06-26 | | 801072 | +| 850721 | 纺织服装设备III | 2005-05-27 | | 801074 | +| 850722 | 工程机械III | 2005-05-27 | 2021-12-10 | 801074 | +| 850723 | 农用机械III | 2005-05-27 | | 801074 | +| 850724 | 重型机械III | 2005-05-27 | 2021-12-10 | 801074 | +| 850725 | 冶金矿采化工设备III | 2005-05-27 | | 801074 | +| 850726 | 印刷包装机械III | 2005-05-27 | | 801074 | +| 850727 | 其它专用机械III | 2005-05-27 | | 801074 | +| 850728 | 楼宇设备III | 2011-09-23 | | 801074 | +| 850729 | 环保设备III | 2011-09-23 | 2021-12-10 | 801074 | +| 850936 | 铁路设备III | 2007-07-04 | | 801076 | +| 850771 | 工程机械整机III | 2021-12-11 | | 801077 | +| 850772 | 工程机械器件III | 2021-12-11 | | 801077 | +| 850781 | 机器人III | 2021-12-11 | | 801078 | +| 850782 | 工控设备III | 2021-12-11 | | 801078 | +| 850783 | 激光设备III | 2021-12-11 | | 801078 | +| 850784 | 其他自动化设备III | 2021-12-11 | | 801078 | +| 850811 | 集成电路III | 2005-05-27 | 2021-12-10 | 801081 | +| 850812 | 分立器件III | 2007-07-04 | | 801081 | +| 850813 | 半导体材料III | 2007-07-04 | | 801081 | +| 850814 | 数字芯片设计III | 2021-12-11 | | 801081 | +| 850815 | 模拟芯片设计III | 2021-12-11 | | 801081 | +| 850816 | 集成电路制造III | 2021-12-11 | | 801081 | +| 850817 | 集成电路封测III | 2021-12-11 | | 801081 | +| 850818 | 半导体设备III | 2021-12-11 | | 801081 | +| 850841 | 其他电子III | 2005-05-27 | | 801082 | +| 850821 | 元件III | 2005-05-27 | 2011-10-09 | 801083 | +| 850822 | 印制电路板III | 2011-09-23 | | 801083 | +| 850823 | 被动元件III | 2011-09-23 | | 801083 | +| 850831 | 显示器件III | 2005-05-27 | | 801084 | +| 850832 | LEDIII | 2011-09-23 | | 801084 | +| 850833 | 光学元件III | 2011-09-23 | | 801084 | +| 850851 | 电子系统组装III | 2011-09-23 | 2021-12-10 | 801085 | +| 850852 | 电子零部件制造III | 2011-09-23 | 2021-12-10 | 801085 | +| 850853 | 品牌消费电子III | 2021-12-11 | | 801085 | +| 850854 | 消费电子零部件及组装III | 2021-12-11 | | 801085 | +| 850861 | 电子化学品III | 2021-12-11 | | 801086 | +| 850931 | 摩托车III | 2005-05-27 | 2014-02-20 | 801091 | +| 850932 | 农机设备III | 2005-05-27 | 2011-10-09 | 801091 | +| 850933 | 其他交运设备III | 2005-05-27 | 2007-07-01 | 801091 | +| 850934 | 航空航天设备III | 2007-07-04 | 2014-02-20 | 801091 | +| 850937 | 其他交运设备III | 2011-09-23 | 2014-02-20 | 801091 | +| 850941 | 汽车服务III | 2005-05-27 | 2021-12-10 | 801092 | +| 850942 | 其他交运设备服务III | 2011-09-23 | 2014-02-20 | 801092 | +| 850232 | 汽车经销商III | 2021-12-11 | | 801092 | +| 850233 | 汽车综合服务III | 2021-12-11 | | 801092 | +| 850921 | 汽车零部件III | 2005-05-27 | 2021-12-10 | 801093 | +| 850922 | 车身附件及饰件III | 2021-12-11 | | 801093 | +| 850923 | 底盘与发动机系统III | 2021-12-11 | | 801093 | +| 850924 | 轮胎轮毂III | 2021-12-11 | | 801093 | +| 850925 | 其他汽车零部件III | 2021-12-11 | | 801093 | +| 850926 | 汽车电子电气系统III | 2021-12-11 | | 801093 | +| 850911 | 乘用车III | 2005-05-27 | 2021-12-10 | 801094 | +| 850914 | 专用汽车III | 2005-05-27 | 2014-02-20 | 801094 | +| 850951 | 电动乘用车III | 2021-12-11 | | 801095 | +| 850952 | 综合乘用车III | 2021-12-11 | | 801095 | +| 850912 | 商用载货车III | 2005-05-27 | | 801096 | +| 850913 | 商用载客车III | 2005-05-27 | | 801096 | +| 851021 | 计算机设备III | 2005-05-27 | 2021-12-10 | 801101 | +| 850702 | 安防设备III | 2021-12-11 | | 801101 | +| 850703 | 其他计算机设备III | 2021-12-11 | | 801101 | +| 851011 | 交换设备III | 2005-05-27 | 2011-10-09 | 801102 | +| 851012 | 终端设备III | 2005-05-27 | 2021-12-10 | 801102 | +| 851013 | 通信传输设备III | 2005-05-27 | 2021-12-10 | 801102 | +| 851014 | 通信配套服务III | 2008-06-26 | 2021-12-10 | 801102 | +| 851024 | 通信网络设备及器件III | 2021-12-11 | | 801102 | +| 851025 | 通信线缆及配套III | 2021-12-11 | | 801102 | +| 851026 | 通信终端及配件III | 2021-12-11 | | 801102 | +| 851027 | 其他通信设备III | 2021-12-11 | | 801102 | +| 852226 | IT服务III | 2014-02-21 | | 801103 | +| 851041 | 垂直应用软件III | 2021-12-11 | | 801104 | +| 851042 | 横向通用软件III | 2021-12-11 | | 801104 | +| 851111 | 冰箱III | 2005-05-27 | 2021-12-10 | 801111 | +| 851112 | 空调III | 2005-05-27 | | 801111 | +| 851113 | 洗衣机III | 2005-05-27 | 2021-12-10 | 801111 | +| 851114 | 小家电III | 2005-05-27 | 2021-12-10 | 801111 | +| 851115 | 家电零部件III | 2005-05-27 | 2021-12-10 | 801111 | +| 851116 | 冰洗III | 2021-12-11 | | 801111 | +| 851121 | 彩电III | 2005-05-27 | | 801112 | +| 851122 | 其它视听器材III | 2005-05-27 | | 801112 | +| 851131 | 厨房小家电III | 2021-12-11 | | 801113 | +| 851132 | 清洁小家电III | 2021-12-11 | | 801113 | +| 851133 | 个护小家电III | 2021-12-11 | | 801113 | +| 851141 | 厨房电器III | 2021-12-11 | | 801114 | +| 851142 | 卫浴电器III | 2021-12-11 | | 801114 | +| 851151 | 照明设备III | 2021-12-11 | | 801115 | +| 851161 | 家电零部件III | 2021-12-11 | | 801116 | +| 851171 | 其他家电III | 2021-12-11 | | 801117 | +| 851211 | 肉制品III | 2005-05-27 | 2011-10-09 | 801121 | +| 851212 | 制糖III | 2005-05-27 | 2011-10-09 | 801121 | +| 851213 | 食品综合III | 2007-07-04 | 2011-10-09 | 801121 | +| 851221 | 调味发酵品III | 2005-05-27 | 2011-10-09 | 801122 | +| 851222 | 乳品III | 2005-05-27 | 2011-10-09 | 801122 | +| 851231 | 白酒III | 2005-05-27 | 2021-12-10 | 801123 | +| 851234 | 软饮料III | 2005-05-27 | 2021-12-10 | 801123 | +| 851235 | 葡萄酒III | 2007-07-04 | 2021-12-10 | 801123 | +| 851236 | 黄酒III | 2008-06-26 | 2021-12-10 | 801123 | +| 851241 | 肉制品III | 2011-09-23 | | 801124 | +| 851244 | 食品综合III | 2011-09-23 | | 801124 | +| 851246 | 预加工食品III | 2021-12-11 | | 801124 | +| 851247 | 保健品III | 2021-12-11 | | 801124 | +| 851251 | 白酒III | 2021-12-11 | | 801125 | +| 851232 | 啤酒III | 2005-05-27 | | 801126 | +| 851233 | 其他酒类III | 2005-05-27 | | 801126 | +| 851243 | 乳品III | 2011-09-23 | | 801127 | +| 851271 | 软饮料III | 2021-12-11 | | 801127 | +| 851281 | 零食III | 2021-12-11 | | 801128 | +| 851282 | 烘焙食品III | 2021-12-11 | | 801128 | +| 851283 | 熟食III | 2021-12-11 | | 801128 | +| 851242 | 调味发酵品III | 2011-09-23 | | 801129 | +| 851311 | 毛纺III | 2005-05-27 | 2021-12-10 | 801131 | +| 851312 | 棉纺III | 2005-05-27 | | 801131 | +| 851313 | 丝绸III | 2005-05-27 | 2021-12-10 | 801131 | +| 851314 | 印染III | 2005-05-27 | | 801131 | +| 851315 | 辅料III | 2011-09-23 | | 801131 | +| 851316 | 其他纺织III | 2011-09-23 | | 801131 | +| 851317 | 纺织鞋类制造III | 2021-12-11 | | 801131 | +| 851321 | 服装III | 2005-05-27 | 2011-10-09 | 801132 | +| 851322 | 男装III | 2011-09-23 | 2021-12-10 | 801132 | +| 851323 | 女装III | 2011-09-23 | 2021-12-10 | 801132 | +| 851324 | 休闲服装III | 2011-09-23 | 2021-12-10 | 801132 | +| 851325 | 鞋帽III | 2011-09-23 | | 801132 | +| 851326 | 家纺III | 2011-09-23 | | 801132 | +| 851327 | 其他服装III | 2011-09-23 | 2021-12-10 | 801132 | +| 851328 | 运动服装III | 2021-12-11 | | 801132 | +| 851329 | 非运动服装III | 2021-12-11 | | 801132 | +| 851331 | 钟表珠宝III | 2021-12-11 | | 801133 | +| 851332 | 多品类奢侈品III | 2021-12-11 | | 801133 | +| 851333 | 其他饰品III | 2021-12-11 | | 801133 | +| 851421 | 包装印刷III | 2005-05-27 | 2021-12-10 | 801141 | +| 851422 | 印刷III | 2021-12-11 | | 801141 | +| 851423 | 金属包装III | 2021-12-11 | | 801141 | +| 851424 | 塑料包装III | 2021-12-11 | | 801141 | +| 851425 | 纸包装III | 2021-12-11 | | 801141 | +| 851426 | 综合包装III | 2021-12-11 | | 801141 | +| 851432 | 家具III | 2007-07-04 | 2021-12-10 | 801142 | +| 851433 | 其他家用轻工III | 2007-07-04 | 2021-12-10 | 801142 | +| 851434 | 珠宝首饰III | 2011-09-23 | 2021-12-10 | 801142 | +| 851435 | 文娱用品III | 2011-09-23 | 2021-12-10 | 801142 | +| 851436 | 瓷砖地板III | 2021-12-11 | | 801142 | +| 851437 | 成品家居III | 2021-12-11 | | 801142 | +| 851438 | 定制家居III | 2021-12-11 | | 801142 | +| 851439 | 卫浴制品III | 2021-12-11 | | 801142 | +| 851491 | 其他家居用品III | 2021-12-11 | | 801142 | +| 851411 | 造纸III | 2005-05-27 | 2021-12-10 | 801143 | +| 851412 | 大宗用纸III | 2021-12-11 | | 801143 | +| 851413 | 特种纸III | 2021-12-11 | | 801143 | +| 851431 | 其他轻工制造III | 2005-05-27 | 2011-10-09 | 801144 | +| 851441 | 其他轻工制造III | 2014-02-21 | 2021-12-10 | 801144 | +| 851451 | 文化用品III | 2021-12-11 | | 801145 | +| 851452 | 娱乐用品III | 2021-12-11 | | 801145 | +| 851511 | 化学原料药III | 2005-05-27 | | 801151 | +| 851512 | 化学制剂III | 2005-05-27 | | 801151 | +| 851513 | 化学药III | 2005-05-27 | 2008-06-01 | 801151 | +| 851531 | 生物制品III | 2005-05-27 | 2021-12-10 | 801152 | +| 851522 | 血液制品III | 2021-12-11 | | 801152 | +| 851523 | 疫苗III | 2021-12-11 | | 801152 | +| 851524 | 其他生物制品III | 2021-12-11 | | 801152 | +| 851551 | 医疗器械III | 2005-05-27 | 2021-12-10 | 801153 | +| 851532 | 医疗设备III | 2021-12-11 | | 801153 | +| 851533 | 医疗耗材III | 2021-12-11 | | 801153 | +| 851534 | 体外诊断III | 2021-12-11 | | 801153 | +| 851541 | 医药商业III | 2005-05-27 | 2021-12-10 | 801154 | +| 851542 | 医药流通III | 2021-12-11 | | 801154 | +| 851543 | 线下药店III | 2021-12-11 | | 801154 | +| 851544 | 互联网药店III | 2021-12-11 | | 801154 | +| 851521 | 中药III | 2005-05-27 | | 801155 | +| 851561 | 医疗服务III | 2007-07-04 | 2021-12-10 | 801156 | +| 851562 | 诊断服务III | 2021-12-11 | | 801156 | +| 851563 | 医疗研发外包III | 2021-12-11 | | 801156 | +| 851564 | 医院III | 2021-12-11 | | 801156 | +| 851565 | 其他医疗服务III | 2021-12-11 | | 801156 | +| 851611 | 火电III | 2005-05-27 | | 801161 | +| 851612 | 水电III | 2005-05-27 | | 801161 | +| 851613 | 燃机发电III | 2005-05-27 | 2021-12-10 | 801161 | +| 851614 | 热电III | 2005-05-27 | | 801161 | +| 851615 | 新能源发电III | 2014-02-21 | 2021-12-10 | 801161 | +| 851610 | 电能综合服务III | 2021-12-11 | | 801161 | +| 851616 | 光伏发电III | 2021-12-11 | | 801161 | +| 851617 | 风力发电III | 2021-12-11 | | 801161 | +| 851618 | 核力发电III | 2021-12-11 | | 801161 | +| 851619 | 其他能源发电III | 2021-12-11 | | 801161 | +| 851641 | 环保工程及服务III | 2005-05-27 | 2021-12-10 | 801162 | +| 851631 | 燃气III | 2005-05-27 | | 801163 | +| 851621 | 水务III | 2005-05-27 | 2021-12-10 | 801164 | +| 851781 | 物流III | 2005-05-27 | 2021-12-10 | 801178 | +| 851782 | 原材料供应链服务III | 2021-12-11 | | 801178 | +| 851783 | 中间产品及消费品供应链服务III | 2021-12-11 | | 801178 | +| 851784 | 快递III | 2021-12-11 | | 801178 | +| 851785 | 跨境物流III | 2021-12-11 | | 801178 | +| 851786 | 仓储物流III | 2021-12-11 | | 801178 | +| 851787 | 公路货运III | 2021-12-11 | | 801178 | +| 851721 | 公交III | 2005-05-27 | | 801179 | +| 851731 | 高速公路III | 2005-05-27 | | 801179 | +| 851771 | 铁路运输III | 2005-05-27 | | 801179 | +| 851811 | 房地产开发III | 2005-05-27 | | 801181 | +| 851812 | 商业地产III | 2021-12-11 | | 801181 | +| 851813 | 产业地产III | 2021-12-11 | | 801181 | +| 851821 | 园区开发III | 2005-05-27 | 2021-12-10 | 801182 | +| 851831 | 物业管理III | 2021-12-11 | | 801183 | +| 851832 | 房产租赁经纪III | 2021-12-11 | | 801183 | +| 851833 | 房地产综合服务III | 2021-12-11 | | 801183 | +| 851921 | 多元金融III | 2005-05-27 | 2021-12-10 | 801191 | +| 851922 | 金融控股III | 2021-12-11 | | 801191 | +| 851923 | 期货III | 2021-12-11 | | 801191 | +| 851924 | 信托III | 2021-12-11 | | 801191 | +| 851925 | 租赁III | 2021-12-11 | | 801191 | +| 851926 | 金融信息服务III | 2021-12-11 | | 801191 | +| 851927 | 资产管理III | 2021-12-11 | | 801191 | +| 851928 | 其他多元金融III | 2021-12-11 | | 801191 | +| 851911 | 银行III | 2005-05-27 | 2021-12-10 | 801192 | +| 851931 | 证券III | 2005-05-27 | | 801193 | +| 851941 | 保险III | 2007-01-18 | | 801194 | +| 852011 | 百货零售III | 2005-05-27 | 2014-02-20 | 801201 | +| 852012 | 专业连锁III | 2005-05-27 | 2014-02-20 | 801201 | +| 852013 | 商业物业经营III | 2007-07-04 | 2014-02-20 | 801201 | +| 852021 | 贸易III | 2005-05-27 | | 801202 | +| 852031 | 百货III | 2014-02-21 | | 801203 | +| 852032 | 超市III | 2014-02-21 | | 801203 | +| 852033 | 多业态零售III | 2014-02-21 | | 801203 | +| 852034 | 商业物业经营III | 2021-12-11 | | 801203 | +| 852041 | 专业连锁III | 2014-02-21 | | 801204 | +| 852051 | 一般物业经营III | 2014-02-21 | 2021-12-10 | 801205 | +| 852052 | 专业市场III | 2014-02-21 | 2021-12-10 | 801205 | +| 852061 | 综合电商III | 2021-12-11 | | 801206 | +| 852062 | 跨境电商III | 2021-12-11 | | 801206 | +| 852063 | 电商服务III | 2021-12-11 | | 801206 | +| 852071 | 旅游零售III | 2021-12-11 | | 801207 | +| 852151 | 其他休闲服务III | 2014-02-21 | 2021-12-10 | 801215 | +| 852161 | 体育III | 2021-12-11 | | 801216 | +| 852171 | 本地生活服务III | 2021-12-11 | | 801217 | +| 852181 | 人力资源服务III | 2021-12-11 | | 801218 | +| 852182 | 检测服务III | 2021-12-11 | | 801218 | +| 852183 | 会展服务III | 2021-12-11 | | 801218 | +| 852184 | 其他专业服务III | 2021-12-11 | | 801218 | +| 852121 | 酒店III | 2005-05-27 | | 801219 | +| 852141 | 餐饮III | 2005-05-27 | | 801219 | +| 852231 | 计算机应用III | 2005-05-27 | 2008-06-01 | 801222 | +| 852232 | 软件开发及服务III | 2008-06-26 | 2014-02-20 | 801222 | +| 852233 | 系统集成III | 2008-06-26 | 2014-02-20 | 801222 | +| 852225 | 软件开发III | 2014-02-21 | 2021-12-10 | 801222 | +| 852211 | 通信运营III | 2005-05-27 | 2021-12-10 | 801223 | +| 852212 | 电信运营商III | 2021-12-11 | | 801223 | +| 852213 | 通信工程及服务III | 2021-12-11 | | 801223 | +| 852214 | 通信应用增值服务III | 2021-12-11 | | 801223 | +| 852311 | 综合III | 2005-05-27 | | 801231 | +| 850612 | 水泥制造III | 2005-05-27 | 2021-12-10 | 801711 | +| 857111 | 水泥制造III | 2021-12-11 | | 801711 | +| 857112 | 水泥制品III | 2021-12-11 | | 801711 | +| 850611 | 玻璃制造III | 2005-05-27 | 2021-12-10 | 801712 | +| 857121 | 玻璃制造III | 2021-12-11 | | 801712 | +| 857122 | 玻纤制造III | 2021-12-11 | | 801712 | +| 850614 | 其他建材III | 2005-05-27 | | 801713 | +| 850615 | 耐火材料III | 2011-09-23 | | 801713 | +| 850616 | 管材III | 2011-09-23 | | 801713 | +| 850617 | 防水材料III | 2021-12-11 | | 801713 | +| 850618 | 涂料III | 2021-12-11 | | 801713 | +| 850623 | 房屋建设III | 2011-09-23 | | 801721 | +| 857221 | 装修装饰III | 2014-02-21 | | 801722 | +| 857231 | 城轨建设III | 2014-02-21 | 2021-12-10 | 801723 | +| 857232 | 路桥施工III | 2014-02-21 | 2021-12-10 | 801723 | +| 857233 | 水利工程III | 2014-02-21 | 2021-12-10 | 801723 | +| 857234 | 铁路建设III | 2014-02-21 | 2021-12-10 | 801723 | +| 857235 | 其他基础建设III | 2014-02-21 | 2021-12-10 | 801723 | +| 857251 | 园林工程III | 2014-02-21 | | 801723 | +| 857236 | 基建市政工程III | 2021-12-11 | | 801723 | +| 857241 | 钢结构III | 2014-02-21 | | 801724 | +| 857242 | 化学工程III | 2014-02-21 | | 801724 | +| 857243 | 国际工程承包III | 2014-02-21 | | 801724 | +| 857244 | 其他专业工程III | 2014-02-21 | | 801724 | +| 857261 | 工程咨询服务III | 2021-12-11 | | 801726 | +| 850741 | 电机III | 2005-05-27 | | 801731 | +| 857322 | 工控自动化III | 2014-02-21 | 2021-12-10 | 801732 | +| 857331 | 综合电力设备商III | 2014-02-21 | | 801733 | +| 857332 | 风电设备III | 2014-02-21 | 2021-12-10 | 801733 | +| 857333 | 光伏设备III | 2014-02-21 | 2021-12-10 | 801733 | +| 857334 | 火电设备III | 2014-02-21 | | 801733 | +| 857335 | 储能设备III | 2014-02-21 | 2021-12-10 | 801733 | +| 857336 | 其它电源设备III | 2014-02-21 | | 801733 | +| 857341 | 高压设备III | 2014-02-21 | 2021-12-10 | 801734 | +| 857342 | 中压设备III | 2014-02-21 | 2021-12-10 | 801734 | +| 857343 | 低压设备III | 2014-02-21 | 2021-12-10 | 801734 | +| 857351 | 硅料硅片III | 2021-12-11 | | 801735 | +| 857352 | 光伏电池组件III | 2021-12-11 | | 801735 | +| 857353 | 逆变器III | 2021-12-11 | | 801735 | +| 857354 | 光伏辅材III | 2021-12-11 | | 801735 | +| 857355 | 光伏加工设备III | 2021-12-11 | | 801735 | +| 857361 | 风电整机III | 2021-12-11 | | 801736 | +| 857362 | 风电零部件III | 2021-12-11 | | 801736 | +| 857371 | 锂电池III | 2021-12-11 | | 801737 | +| 857372 | 电池化学品III | 2021-12-11 | | 801737 | +| 857373 | 锂电专用设备III | 2021-12-11 | | 801737 | +| 857374 | 燃料电池III | 2021-12-11 | | 801737 | +| 857375 | 蓄电池及其他电池III | 2021-12-11 | | 801737 | +| 857321 | 电网自动化III | 2014-02-21 | | 801738 | +| 857323 | 计量仪表III | 2014-02-21 | | 801738 | +| 857344 | 线缆部件及其他III | 2014-02-21 | | 801738 | +| 857381 | 输变电设备III | 2021-12-11 | | 801738 | +| 857382 | 配电设备III | 2021-12-11 | | 801738 | +| 857411 | 航天装备III | 2014-02-21 | | 801741 | +| 857421 | 航空装备III | 2014-02-21 | | 801742 | +| 857431 | 地面兵装III | 2014-02-21 | | 801743 | +| 850935 | 船舶制造III | 2007-07-04 | | 801744 | +| 857451 | 军工电子III | 2021-12-11 | | 801745 | +| 852243 | 营销服务III | 2011-09-23 | 2021-12-10 | 801751 | +| 852221 | 互联网信息服务III | 2005-05-27 | 2021-12-10 | 801752 | +| 852222 | 移动互联网服务III | 2005-05-27 | 2021-12-10 | 801752 | +| 852223 | 其他互联网服务III | 2005-05-27 | 2021-12-10 | 801752 | +| 852224 | 有线电视网络III | 2005-05-27 | 2021-12-10 | 801761 | +| 852241 | 平面媒体III | 2005-05-27 | 2021-12-10 | 801761 | +| 852242 | 影视动漫III | 2005-05-27 | 2021-12-10 | 801761 | +| 852244 | 其他文化传媒III | 2011-09-23 | 2021-12-10 | 801761 | +| 857641 | 游戏III | 2021-12-11 | | 801764 | +| 857651 | 营销代理III | 2021-12-11 | | 801765 | +| 857652 | 广告媒体III | 2021-12-11 | | 801765 | +| 857661 | 影视动漫制作III | 2021-12-11 | | 801766 | +| 857662 | 院线III | 2021-12-11 | | 801766 | +| 857671 | 视频媒体III | 2021-12-11 | | 801767 | +| 857672 | 音频媒体III | 2021-12-11 | | 801767 | +| 857673 | 图片媒体III | 2021-12-11 | | 801767 | +| 857674 | 门户网站III | 2021-12-11 | | 801767 | +| 857675 | 文字媒体III | 2021-12-11 | | 801767 | +| 857676 | 其他数字媒体III | 2021-12-11 | | 801767 | +| 857681 | 社交III | 2021-12-11 | | 801768 | +| 857691 | 教育出版III | 2021-12-11 | | 801769 | +| 857692 | 大众出版III | 2021-12-11 | | 801769 | +| 857693 | 其他出版III | 2021-12-11 | | 801769 | +| 857821 | 国有大型银行III | 2021-12-11 | | 801782 | +| 857831 | 股份制银行III | 2021-12-11 | | 801783 | +| 857841 | 城商行III | 2021-12-11 | | 801784 | +| 857851 | 农商行III | 2021-12-11 | | 801785 | +| 857861 | 其他银行III | 2021-12-11 | | 801786 | +| 858811 | 其他交运设备III | 2014-02-21 | | 801881 | +| 858812 | 摩托车III | 2021-12-11 | | 801881 | +| 859511 | 动力煤III | 2021-12-11 | | 801951 | +| 859512 | 焦煤III | 2021-12-11 | | 801951 | +| 859521 | 焦炭III | 2021-12-11 | | 801952 | +| 859611 | 油气开采III | 2021-12-11 | | 801961 | +| 859621 | 油田服务III | 2021-12-11 | | 801962 | +| 859622 | 油气及炼化工程III | 2021-12-11 | | 801962 | +| 859631 | 炼油化工III | 2021-12-11 | | 801963 | +| 859632 | 油品石化贸易III | 2021-12-11 | | 801963 | +| 859633 | 其他石化III | 2021-12-11 | | 801963 | +| 859711 | 大气治理III | 2021-12-11 | | 801971 | +| 859712 | 水务及水治理III | 2021-12-11 | | 801971 | +| 859713 | 固废治理III | 2021-12-11 | | 801971 | +| 859714 | 综合环境治理III | 2021-12-11 | | 801971 | +| 859721 | 环保设备III | 2021-12-11 | | 801972 | +| 859811 | 生活用纸III | 2021-12-11 | | 801981 | +| 859812 | 洗护用品III | 2021-12-11 | | 801981 | +| 859821 | 化妆品制造及其他III | 2021-12-11 | | 801982 | +| 859822 | 品牌化妆品III | 2021-12-11 | | 801982 | +| 859831 | 医美耗材III | 2021-12-11 | | 801983 | +| 859832 | 医美服务III | 2021-12-11 | | 801983 | +| 851741 | 航空运输III | 2005-05-27 | | 801991 | +| 851751 | 机场III | 2005-05-27 | | 801991 | +| 851711 | 港口III | 2005-05-27 | | 801992 | +| 851761 | 航运III | 2005-05-27 | | 801992 | +| 852111 | 人工景点III | 2005-05-27 | | 801993 | +| 852112 | 自然景点III | 2005-05-27 | | 801993 | +| 852131 | 旅游综合III | 2005-05-27 | | 801993 | +| 859931 | 博彩III | 2021-12-11 | | 801993 | +| 859851 | 学历教育III | 2021-12-11 | | 801994 | +| 859852 | 培训教育III | 2021-12-11 | | 801994 | +| 859853 | 教育运营及其他III | 2021-12-11 | | 801994 | +| 859951 | 电视广播III | 2021-12-11 | | 801995 | + +## 概念类 + +### 概念板块 + +概念数据会不定期新增,以下列表仅作示例,请使用 get_concepts() 获取所有概念,可以使用pandas提供的方法进行筛选 + +``` + +from jqdata import get_concepts +df = get_concepts() +df[df['name'].str.contains("智能")] +``` + +| 概念代码 | 概念名称 | 起始日期 | +| --- | --- | --- | +| SC0001 | 石墨烯 | 2016-07-31 | +| SC0002 | 阿里 | 2016-07-31 | +| SC0003 | 腾讯 | 2017-12-26 | +| SC0004 | 百度 | 2018-06-11 | +| SC0005 | 华为 | 2018-12-24 | +| SC0006 | 今日头条 | 2020-04-16 | +| SC0007 | 拼多多 | 2020-11-05 | +| SC0008 | 安防 | 2016-07-31 | +| SC0009 | 车联网 | 2016-07-31 | +| SC0010 | 互联网金融 | 2016-08-09 | +| SC0011 | 网络游戏 | 2016-07-31 | +| …… | …… | …… | +| …… | …… | …… | +| SC0327 | 数据要素 | 2023-04-11 | +| SC0328 | 太赫兹 | 2023-04-20 | +| SC0329 | 英伟达概念 | 2023-05-30 | +| SC0330 | 空间计算 | 2023-06-08 | +| SC0331 | 算力租赁 | 2023-06-12 | diff --git a/docs/joinquant-api/api-index.json b/docs/joinquant-api/api-index.json new file mode 100644 index 0000000..59892c4 --- /dev/null +++ b/docs/joinquant-api/api-index.json @@ -0,0 +1,9485 @@ +{ + "entries": [ + { + "evidence": "alpha_001", + "heading": "alpha_001", + "key": "alpha101:factor:alpha_001", + "kind": "factor", + "name": "alpha_001", + "source_id": "alpha101" + }, + { + "evidence": "alpha_002", + "heading": "alpha_002", + "key": "alpha101:factor:alpha_002", + "kind": "factor", + "name": "alpha_002", + "source_id": "alpha101" + }, + { + "evidence": "alpha_003", + "heading": "alpha_003", + "key": "alpha101:factor:alpha_003", + "kind": "factor", + "name": "alpha_003", + "source_id": "alpha101" + }, + { + "evidence": "alpha_004", + "heading": "alpha_004", + "key": "alpha101:factor:alpha_004", + "kind": "factor", + "name": "alpha_004", + "source_id": "alpha101" + }, + { + "evidence": "alpha_005", + "heading": "alpha_005", + "key": "alpha101:factor:alpha_005", + "kind": "factor", + "name": "alpha_005", + "source_id": "alpha101" + }, + { + "evidence": "alpha_006", + "heading": "alpha_006", + "key": "alpha101:factor:alpha_006", + "kind": "factor", + "name": "alpha_006", + "source_id": "alpha101" + }, + { + "evidence": "alpha_007", + "heading": "alpha_007", + "key": "alpha101:factor:alpha_007", + "kind": "factor", + "name": "alpha_007", + "source_id": "alpha101" + }, + { + "evidence": "alpha_008", + "heading": "alpha_008", + "key": "alpha101:factor:alpha_008", + "kind": "factor", + "name": "alpha_008", + "source_id": "alpha101" + }, + { + "evidence": "alpha_009", + "heading": "alpha_009", + "key": "alpha101:factor:alpha_009", + "kind": "factor", + "name": "alpha_009", + "source_id": "alpha101" + }, + { + "evidence": "alpha_010", + "heading": "alpha_010", + "key": "alpha101:factor:alpha_010", + "kind": "factor", + "name": "alpha_010", + "source_id": "alpha101" + }, + { + "evidence": "alpha_011", + "heading": "alpha_011", + "key": "alpha101:factor:alpha_011", + "kind": "factor", + "name": "alpha_011", + "source_id": "alpha101" + }, + { + "evidence": "alpha_012", + "heading": "alpha_012", + "key": "alpha101:factor:alpha_012", + "kind": "factor", + "name": "alpha_012", + "source_id": "alpha101" + }, + { + "evidence": "alpha_013", + "heading": "alpha_013", + "key": "alpha101:factor:alpha_013", + "kind": "factor", + "name": "alpha_013", + "source_id": "alpha101" + }, + { + "evidence": "alpha_014", + "heading": "alpha_014", + "key": "alpha101:factor:alpha_014", + "kind": "factor", + "name": "alpha_014", + "source_id": "alpha101" + }, + { + "evidence": "alpha_015", + "heading": "alpha_015", + "key": "alpha101:factor:alpha_015", + "kind": "factor", + "name": "alpha_015", + "source_id": "alpha101" + }, + { + "evidence": "alpha_016", + "heading": "alpha_016", + "key": "alpha101:factor:alpha_016", + "kind": "factor", + "name": "alpha_016", + "source_id": "alpha101" + }, + { + "evidence": "alpha_017", + "heading": "alpha_017", + "key": "alpha101:factor:alpha_017", + "kind": "factor", + "name": "alpha_017", + "source_id": "alpha101" + }, + { + "evidence": "alpha_018", + "heading": "alpha_018", + "key": "alpha101:factor:alpha_018", + "kind": "factor", + "name": "alpha_018", + "source_id": "alpha101" + }, + { + "evidence": "alpha_019", + "heading": "alpha_019", + "key": "alpha101:factor:alpha_019", + "kind": "factor", + "name": "alpha_019", + "source_id": "alpha101" + }, + { + "evidence": "alpha_020", + "heading": "alpha_020", + "key": "alpha101:factor:alpha_020", + "kind": "factor", + "name": "alpha_020", + "source_id": "alpha101" + }, + { + "evidence": "alpha_021", + "heading": "alpha_021", + "key": "alpha101:factor:alpha_021", + "kind": "factor", + "name": "alpha_021", + "source_id": "alpha101" + }, + { + "evidence": "alpha_022", + "heading": "alpha_022", + "key": "alpha101:factor:alpha_022", + "kind": "factor", + "name": "alpha_022", + "source_id": "alpha101" + }, + { + "evidence": "alpha_023", + "heading": "alpha_023", + "key": "alpha101:factor:alpha_023", + "kind": "factor", + "name": "alpha_023", + "source_id": "alpha101" + }, + { + "evidence": "alpha_024", + "heading": "alpha_024", + "key": "alpha101:factor:alpha_024", + "kind": "factor", + "name": "alpha_024", + "source_id": "alpha101" + }, + { + "evidence": "alpha_025", + "heading": "alpha_025", + "key": "alpha101:factor:alpha_025", + "kind": "factor", + "name": "alpha_025", + "source_id": "alpha101" + }, + { + "evidence": "alpha_026", + "heading": "alpha_026", + "key": "alpha101:factor:alpha_026", + "kind": "factor", + "name": "alpha_026", + "source_id": "alpha101" + }, + { + "evidence": "alpha_027", + "heading": "alpha_027", + "key": "alpha101:factor:alpha_027", + "kind": "factor", + "name": "alpha_027", + "source_id": "alpha101" + }, + { + "evidence": "alpha_028", + "heading": "alpha_028", + "key": "alpha101:factor:alpha_028", + "kind": "factor", + "name": "alpha_028", + "source_id": "alpha101" + }, + { + "evidence": "alpha_029", + "heading": "alpha_029", + "key": "alpha101:factor:alpha_029", + "kind": "factor", + "name": "alpha_029", + "source_id": "alpha101" + }, + { + "evidence": "alpha_030", + "heading": "alpha_030", + "key": "alpha101:factor:alpha_030", + "kind": "factor", + "name": "alpha_030", + "source_id": "alpha101" + }, + { + "evidence": "alpha_031", + "heading": "alpha_031", + "key": "alpha101:factor:alpha_031", + "kind": "factor", + "name": "alpha_031", + "source_id": "alpha101" + }, + { + "evidence": "alpha_032", + "heading": "alpha_032", + "key": "alpha101:factor:alpha_032", + "kind": "factor", + "name": "alpha_032", + "source_id": "alpha101" + }, + { + "evidence": "alpha_033", + "heading": "alpha_033", + "key": "alpha101:factor:alpha_033", + "kind": "factor", + "name": "alpha_033", + "source_id": "alpha101" + }, + { + "evidence": "alpha_034", + "heading": "alpha_034", + "key": "alpha101:factor:alpha_034", + "kind": "factor", + "name": "alpha_034", + "source_id": "alpha101" + }, + { + "evidence": "alpha_035", + "heading": "alpha_035", + "key": "alpha101:factor:alpha_035", + "kind": "factor", + "name": "alpha_035", + "source_id": "alpha101" + }, + { + "evidence": "alpha_036", + "heading": "alpha_036", + "key": "alpha101:factor:alpha_036", + "kind": "factor", + "name": "alpha_036", + "source_id": "alpha101" + }, + { + "evidence": "alpha_037", + "heading": "alpha_037", + "key": "alpha101:factor:alpha_037", + "kind": "factor", + "name": "alpha_037", + "source_id": "alpha101" + }, + { + "evidence": "alpha_038", + "heading": "alpha_038", + "key": "alpha101:factor:alpha_038", + "kind": "factor", + "name": "alpha_038", + "source_id": "alpha101" + }, + { + "evidence": "alpha_039", + "heading": "alpha_039", + "key": "alpha101:factor:alpha_039", + "kind": "factor", + "name": "alpha_039", + "source_id": "alpha101" + }, + { + "evidence": "alpha_040", + "heading": "alpha_040", + "key": "alpha101:factor:alpha_040", + "kind": "factor", + "name": "alpha_040", + "source_id": "alpha101" + }, + { + "evidence": "alpha_041", + "heading": "alpha_041", + "key": "alpha101:factor:alpha_041", + "kind": "factor", + "name": "alpha_041", + "source_id": "alpha101" + }, + { + "evidence": "alpha_042", + "heading": "alpha_042", + "key": "alpha101:factor:alpha_042", + "kind": "factor", + "name": "alpha_042", + "source_id": "alpha101" + }, + { + "evidence": "alpha_043", + "heading": "alpha_043", + "key": "alpha101:factor:alpha_043", + "kind": "factor", + "name": "alpha_043", + "source_id": "alpha101" + }, + { + "evidence": "alpha_044", + "heading": "alpha_044", + "key": "alpha101:factor:alpha_044", + "kind": "factor", + "name": "alpha_044", + "source_id": "alpha101" + }, + { + "evidence": "alpha_045", + "heading": "alpha_045", + "key": "alpha101:factor:alpha_045", + "kind": "factor", + "name": "alpha_045", + "source_id": "alpha101" + }, + { + "evidence": "alpha_046", + "heading": "alpha_046", + "key": "alpha101:factor:alpha_046", + "kind": "factor", + "name": "alpha_046", + "source_id": "alpha101" + }, + { + "evidence": "alpha_047", + "heading": "alpha_047", + "key": "alpha101:factor:alpha_047", + "kind": "factor", + "name": "alpha_047", + "source_id": "alpha101" + }, + { + "evidence": "alpha_048(未实现)", + "heading": "alpha_048(未实现)", + "key": "alpha101:factor:alpha_048", + "kind": "factor", + "name": "alpha_048", + "source_id": "alpha101" + }, + { + "evidence": "alpha_049", + "heading": "alpha_049", + "key": "alpha101:factor:alpha_049", + "kind": "factor", + "name": "alpha_049", + "source_id": "alpha101" + }, + { + "evidence": "alpha_050", + "heading": "alpha_050", + "key": "alpha101:factor:alpha_050", + "kind": "factor", + "name": "alpha_050", + "source_id": "alpha101" + }, + { + "evidence": "alpha_051", + "heading": "alpha_051", + "key": "alpha101:factor:alpha_051", + "kind": "factor", + "name": "alpha_051", + "source_id": "alpha101" + }, + { + "evidence": "alpha_052", + "heading": "alpha_052", + "key": "alpha101:factor:alpha_052", + "kind": "factor", + "name": "alpha_052", + "source_id": "alpha101" + }, + { + "evidence": "alpha_053", + "heading": "alpha_053", + "key": "alpha101:factor:alpha_053", + "kind": "factor", + "name": "alpha_053", + "source_id": "alpha101" + }, + { + "evidence": "alpha_054", + "heading": "alpha_054", + "key": "alpha101:factor:alpha_054", + "kind": "factor", + "name": "alpha_054", + "source_id": "alpha101" + }, + { + "evidence": "alpha_055", + "heading": "alpha_055", + "key": "alpha101:factor:alpha_055", + "kind": "factor", + "name": "alpha_055", + "source_id": "alpha101" + }, + { + "evidence": "alpha_056", + "heading": "alpha_056", + "key": "alpha101:factor:alpha_056", + "kind": "factor", + "name": "alpha_056", + "source_id": "alpha101" + }, + { + "evidence": "alpha_057", + "heading": "alpha_057", + "key": "alpha101:factor:alpha_057", + "kind": "factor", + "name": "alpha_057", + "source_id": "alpha101" + }, + { + "evidence": "alpha_058(未实现)", + "heading": "alpha_058(未实现)", + "key": "alpha101:factor:alpha_058", + "kind": "factor", + "name": "alpha_058", + "source_id": "alpha101" + }, + { + "evidence": "alpha_059(未实现)", + "heading": "alpha_059(未实现)", + "key": "alpha101:factor:alpha_059", + "kind": "factor", + "name": "alpha_059", + "source_id": "alpha101" + }, + { + "evidence": "alpha_060", + "heading": "alpha_060", + "key": "alpha101:factor:alpha_060", + "kind": "factor", + "name": "alpha_060", + "source_id": "alpha101" + }, + { + "evidence": "alpha_061", + "heading": "alpha_061", + "key": "alpha101:factor:alpha_061", + "kind": "factor", + "name": "alpha_061", + "source_id": "alpha101" + }, + { + "evidence": "alpha_062", + "heading": "alpha_062", + "key": "alpha101:factor:alpha_062", + "kind": "factor", + "name": "alpha_062", + "source_id": "alpha101" + }, + { + "evidence": "alpha_063(未实现)", + "heading": "alpha_063(未实现)", + "key": "alpha101:factor:alpha_063", + "kind": "factor", + "name": "alpha_063", + "source_id": "alpha101" + }, + { + "evidence": "alpha_064", + "heading": "alpha_064", + "key": "alpha101:factor:alpha_064", + "kind": "factor", + "name": "alpha_064", + "source_id": "alpha101" + }, + { + "evidence": "alpha_065", + "heading": "alpha_065", + "key": "alpha101:factor:alpha_065", + "kind": "factor", + "name": "alpha_065", + "source_id": "alpha101" + }, + { + "evidence": "alpha_066", + "heading": "alpha_066", + "key": "alpha101:factor:alpha_066", + "kind": "factor", + "name": "alpha_066", + "source_id": "alpha101" + }, + { + "evidence": "alpha_067(未实现)", + "heading": "alpha_067(未实现)", + "key": "alpha101:factor:alpha_067", + "kind": "factor", + "name": "alpha_067", + "source_id": "alpha101" + }, + { + "evidence": "alpha_068", + "heading": "alpha_068", + "key": "alpha101:factor:alpha_068", + "kind": "factor", + "name": "alpha_068", + "source_id": "alpha101" + }, + { + "evidence": "alpha_069(未实现)", + "heading": "alpha_069(未实现)", + "key": "alpha101:factor:alpha_069", + "kind": "factor", + "name": "alpha_069", + "source_id": "alpha101" + }, + { + "evidence": "alpha_070(未实现)", + "heading": "alpha_070(未实现)", + "key": "alpha101:factor:alpha_070", + "kind": "factor", + "name": "alpha_070", + "source_id": "alpha101" + }, + { + "evidence": "alpha_071", + "heading": "alpha_071", + "key": "alpha101:factor:alpha_071", + "kind": "factor", + "name": "alpha_071", + "source_id": "alpha101" + }, + { + "evidence": "alpha_072", + "heading": "alpha_072", + "key": "alpha101:factor:alpha_072", + "kind": "factor", + "name": "alpha_072", + "source_id": "alpha101" + }, + { + "evidence": "alpha_073", + "heading": "alpha_073", + "key": "alpha101:factor:alpha_073", + "kind": "factor", + "name": "alpha_073", + "source_id": "alpha101" + }, + { + "evidence": "alpha_074", + "heading": "alpha_074", + "key": "alpha101:factor:alpha_074", + "kind": "factor", + "name": "alpha_074", + "source_id": "alpha101" + }, + { + "evidence": "alpha_075", + "heading": "alpha_075", + "key": "alpha101:factor:alpha_075", + "kind": "factor", + "name": "alpha_075", + "source_id": "alpha101" + }, + { + "evidence": "alpha_076(未实现)", + "heading": "alpha_076(未实现)", + "key": "alpha101:factor:alpha_076", + "kind": "factor", + "name": "alpha_076", + "source_id": "alpha101" + }, + { + "evidence": "alpha_077", + "heading": "alpha_077", + "key": "alpha101:factor:alpha_077", + "kind": "factor", + "name": "alpha_077", + "source_id": "alpha101" + }, + { + "evidence": "alpha_078", + "heading": "alpha_078", + "key": "alpha101:factor:alpha_078", + "kind": "factor", + "name": "alpha_078", + "source_id": "alpha101" + }, + { + "evidence": "alpha_079(未实现)", + "heading": "alpha_079(未实现)", + "key": "alpha101:factor:alpha_079", + "kind": "factor", + "name": "alpha_079", + "source_id": "alpha101" + }, + { + "evidence": "alpha_080(未实现)", + "heading": "alpha_080(未实现)", + "key": "alpha101:factor:alpha_080", + "kind": "factor", + "name": "alpha_080", + "source_id": "alpha101" + }, + { + "evidence": "alpha_081", + "heading": "alpha_081", + "key": "alpha101:factor:alpha_081", + "kind": "factor", + "name": "alpha_081", + "source_id": "alpha101" + }, + { + "evidence": "alpha_082(未实现)", + "heading": "alpha_082(未实现)", + "key": "alpha101:factor:alpha_082", + "kind": "factor", + "name": "alpha_082", + "source_id": "alpha101" + }, + { + "evidence": "alpha_083", + "heading": "alpha_083", + "key": "alpha101:factor:alpha_083", + "kind": "factor", + "name": "alpha_083", + "source_id": "alpha101" + }, + { + "evidence": "alpha_084", + "heading": "alpha_084", + "key": "alpha101:factor:alpha_084", + "kind": "factor", + "name": "alpha_084", + "source_id": "alpha101" + }, + { + "evidence": "alpha_085", + "heading": "alpha_085", + "key": "alpha101:factor:alpha_085", + "kind": "factor", + "name": "alpha_085", + "source_id": "alpha101" + }, + { + "evidence": "alpha_086", + "heading": "alpha_086", + "key": "alpha101:factor:alpha_086", + "kind": "factor", + "name": "alpha_086", + "source_id": "alpha101" + }, + { + "evidence": "alpha_087(未实现)", + "heading": "alpha_087(未实现)", + "key": "alpha101:factor:alpha_087", + "kind": "factor", + "name": "alpha_087", + "source_id": "alpha101" + }, + { + "evidence": "alpha_088", + "heading": "alpha_088", + "key": "alpha101:factor:alpha_088", + "kind": "factor", + "name": "alpha_088", + "source_id": "alpha101" + }, + { + "evidence": "alpha_089(未实现)", + "heading": "alpha_089(未实现)", + "key": "alpha101:factor:alpha_089", + "kind": "factor", + "name": "alpha_089", + "source_id": "alpha101" + }, + { + "evidence": "alpha_090(未实现)", + "heading": "alpha_090(未实现)", + "key": "alpha101:factor:alpha_090", + "kind": "factor", + "name": "alpha_090", + "source_id": "alpha101" + }, + { + "evidence": "alpha_091(未实现)", + "heading": "alpha_091(未实现)", + "key": "alpha101:factor:alpha_091", + "kind": "factor", + "name": "alpha_091", + "source_id": "alpha101" + }, + { + "evidence": "alpha_092", + "heading": "alpha_092", + "key": "alpha101:factor:alpha_092", + "kind": "factor", + "name": "alpha_092", + "source_id": "alpha101" + }, + { + "evidence": "alpha_093(未实现)", + "heading": "alpha_093(未实现)", + "key": "alpha101:factor:alpha_093", + "kind": "factor", + "name": "alpha_093", + "source_id": "alpha101" + }, + { + "evidence": "alpha_094", + "heading": "alpha_094", + "key": "alpha101:factor:alpha_094", + "kind": "factor", + "name": "alpha_094", + "source_id": "alpha101" + }, + { + "evidence": "alpha_095", + "heading": "alpha_095", + "key": "alpha101:factor:alpha_095", + "kind": "factor", + "name": "alpha_095", + "source_id": "alpha101" + }, + { + "evidence": "alpha_096", + "heading": "alpha_096", + "key": "alpha101:factor:alpha_096", + "kind": "factor", + "name": "alpha_096", + "source_id": "alpha101" + }, + { + "evidence": "alpha_097(未实现)", + "heading": "alpha_097(未实现)", + "key": "alpha101:factor:alpha_097", + "kind": "factor", + "name": "alpha_097", + "source_id": "alpha101" + }, + { + "evidence": "alpha_098", + "heading": "alpha_098", + "key": "alpha101:factor:alpha_098", + "kind": "factor", + "name": "alpha_098", + "source_id": "alpha101" + }, + { + "evidence": "alpha_099", + "heading": "alpha_099", + "key": "alpha101:factor:alpha_099", + "kind": "factor", + "name": "alpha_099", + "source_id": "alpha101" + }, + { + "evidence": "alpha_100(未实现)", + "heading": "alpha_100(未实现)", + "key": "alpha101:factor:alpha_100", + "kind": "factor", + "name": "alpha_100", + "source_id": "alpha101" + }, + { + "evidence": "alpha_101", + "heading": "alpha_101", + "key": "alpha101:factor:alpha_101", + "kind": "factor", + "name": "alpha_101", + "source_id": "alpha101" + }, + { + "evidence": "abs(x)", + "heading": "公用函数说明", + "key": "alpha101:function:abs", + "kind": "function", + "name": "abs", + "source_id": "alpha101" + }, + { + "evidence": "alpha(获取全部因子值)", + "heading": "alpha(获取全部因子值)", + "key": "alpha101:function:alpha", + "kind": "function", + "name": "alpha", + "source_id": "alpha101" + }, + { + "evidence": "correlation(x,y,d)", + "heading": "公用函数说明", + "key": "alpha101:function:correlation", + "kind": "function", + "name": "correlation", + "source_id": "alpha101" + }, + { + "evidence": "covariance(x,y,d)", + "heading": "公用函数说明", + "key": "alpha101:function:covariance", + "kind": "function", + "name": "covariance", + "source_id": "alpha101" + }, + { + "evidence": "decay_linear(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:decay_linear", + "kind": "function", + "name": "decay_linear", + "source_id": "alpha101" + }, + { + "evidence": "delay(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:delay", + "kind": "function", + "name": "delay", + "source_id": "alpha101" + }, + { + "evidence": "delta(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:delta", + "kind": "function", + "name": "delta", + "source_id": "alpha101" + }, + { + "evidence": "log(x)", + "heading": "公用函数说明", + "key": "alpha101:function:log", + "kind": "function", + "name": "log", + "source_id": "alpha101" + }, + { + "evidence": "max(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:max", + "kind": "function", + "name": "max", + "source_id": "alpha101" + }, + { + "evidence": "min(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:min", + "kind": "function", + "name": "min", + "source_id": "alpha101" + }, + { + "evidence": "product(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:product", + "kind": "function", + "name": "product", + "source_id": "alpha101" + }, + { + "evidence": "rank(x)", + "heading": "公用函数说明", + "key": "alpha101:function:rank", + "kind": "function", + "name": "rank", + "source_id": "alpha101" + }, + { + "evidence": "scale(x,a)", + "heading": "公用函数说明", + "key": "alpha101:function:scale", + "kind": "function", + "name": "scale", + "source_id": "alpha101" + }, + { + "evidence": "sign(x)", + "heading": "公用函数说明", + "key": "alpha101:function:sign", + "kind": "function", + "name": "sign", + "source_id": "alpha101" + }, + { + "evidence": "signedpower(x,a)", + "heading": "公用函数说明", + "key": "alpha101:function:signedpower", + "kind": "function", + "name": "signedpower", + "source_id": "alpha101" + }, + { + "evidence": "stddev(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:stddev", + "kind": "function", + "name": "stddev", + "source_id": "alpha101" + }, + { + "evidence": "sum(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:sum", + "kind": "function", + "name": "sum", + "source_id": "alpha101" + }, + { + "evidence": "ts_argmax(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:ts_argmax", + "kind": "function", + "name": "ts_argmax", + "source_id": "alpha101" + }, + { + "evidence": "ts_argmin(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:ts_argmin", + "kind": "function", + "name": "ts_argmin", + "source_id": "alpha101" + }, + { + "evidence": "ts_max(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:ts_max", + "kind": "function", + "name": "ts_max", + "source_id": "alpha101" + }, + { + "evidence": "ts_min(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:ts_min", + "kind": "function", + "name": "ts_min", + "source_id": "alpha101" + }, + { + "evidence": "ts_rank(x,d)", + "heading": "公用函数说明", + "key": "alpha101:function:ts_rank", + "kind": "function", + "name": "ts_rank", + "source_id": "alpha101" + }, + { + "evidence": "alpha_001", + "heading": "alpha_001", + "key": "alpha191:factor:alpha_001", + "kind": "factor", + "name": "alpha_001", + "source_id": "alpha191" + }, + { + "evidence": "alpha_002", + "heading": "alpha_002", + "key": "alpha191:factor:alpha_002", + "kind": "factor", + "name": "alpha_002", + "source_id": "alpha191" + }, + { + "evidence": "alpha_003", + "heading": "alpha_003", + "key": "alpha191:factor:alpha_003", + "kind": "factor", + "name": "alpha_003", + "source_id": "alpha191" + }, + { + "evidence": "alpha_004", + "heading": "alpha_004", + "key": "alpha191:factor:alpha_004", + "kind": "factor", + "name": "alpha_004", + "source_id": "alpha191" + }, + { + "evidence": "alpha_005", + "heading": "alpha_005", + "key": "alpha191:factor:alpha_005", + "kind": "factor", + "name": "alpha_005", + "source_id": "alpha191" + }, + { + "evidence": "alpha_006", + "heading": "alpha_006", + "key": "alpha191:factor:alpha_006", + "kind": "factor", + "name": "alpha_006", + "source_id": "alpha191" + }, + { + "evidence": "alpha_007", + "heading": "alpha_007", + "key": "alpha191:factor:alpha_007", + "kind": "factor", + "name": "alpha_007", + "source_id": "alpha191" + }, + { + "evidence": "alpha_008", + "heading": "alpha_008", + "key": "alpha191:factor:alpha_008", + "kind": "factor", + "name": "alpha_008", + "source_id": "alpha191" + }, + { + "evidence": "alpha_009", + "heading": "alpha_009", + "key": "alpha191:factor:alpha_009", + "kind": "factor", + "name": "alpha_009", + "source_id": "alpha191" + }, + { + "evidence": "alpha_010", + "heading": "alpha_010", + "key": "alpha191:factor:alpha_010", + "kind": "factor", + "name": "alpha_010", + "source_id": "alpha191" + }, + { + "evidence": "alpha_011", + "heading": "alpha_011", + "key": "alpha191:factor:alpha_011", + "kind": "factor", + "name": "alpha_011", + "source_id": "alpha191" + }, + { + "evidence": "alpha_012", + "heading": "alpha_012", + "key": "alpha191:factor:alpha_012", + "kind": "factor", + "name": "alpha_012", + "source_id": "alpha191" + }, + { + "evidence": "alpha_013", + "heading": "alpha_013", + "key": "alpha191:factor:alpha_013", + "kind": "factor", + "name": "alpha_013", + "source_id": "alpha191" + }, + { + "evidence": "alpha_014", + "heading": "alpha_014", + "key": "alpha191:factor:alpha_014", + "kind": "factor", + "name": "alpha_014", + "source_id": "alpha191" + }, + { + "evidence": "alpha_015", + "heading": "alpha_015", + "key": "alpha191:factor:alpha_015", + "kind": "factor", + "name": "alpha_015", + "source_id": "alpha191" + }, + { + "evidence": "alpha_016", + "heading": "alpha_016", + "key": "alpha191:factor:alpha_016", + "kind": "factor", + "name": "alpha_016", + "source_id": "alpha191" + }, + { + "evidence": "alpha_017", + "heading": "alpha_017", + "key": "alpha191:factor:alpha_017", + "kind": "factor", + "name": "alpha_017", + "source_id": "alpha191" + }, + { + "evidence": "alpha_018", + "heading": "alpha_018", + "key": "alpha191:factor:alpha_018", + "kind": "factor", + "name": "alpha_018", + "source_id": "alpha191" + }, + { + "evidence": "alpha_019", + "heading": "alpha_019", + "key": "alpha191:factor:alpha_019", + "kind": "factor", + "name": "alpha_019", + "source_id": "alpha191" + }, + { + "evidence": "alpha_020", + "heading": "alpha_020", + "key": "alpha191:factor:alpha_020", + "kind": "factor", + "name": "alpha_020", + "source_id": "alpha191" + }, + { + "evidence": "alpha_021", + "heading": "alpha_021", + "key": "alpha191:factor:alpha_021", + "kind": "factor", + "name": "alpha_021", + "source_id": "alpha191" + }, + { + "evidence": "alpha_022", + "heading": "alpha_022", + "key": "alpha191:factor:alpha_022", + "kind": "factor", + "name": "alpha_022", + "source_id": "alpha191" + }, + { + "evidence": "alpha_023", + "heading": "alpha_023", + "key": "alpha191:factor:alpha_023", + "kind": "factor", + "name": "alpha_023", + "source_id": "alpha191" + }, + { + "evidence": "alpha_024", + "heading": "alpha_024", + "key": "alpha191:factor:alpha_024", + "kind": "factor", + "name": "alpha_024", + "source_id": "alpha191" + }, + { + "evidence": "alpha_025", + "heading": "alpha_025", + "key": "alpha191:factor:alpha_025", + "kind": "factor", + "name": "alpha_025", + "source_id": "alpha191" + }, + { + "evidence": "alpha_026", + "heading": "alpha_026", + "key": "alpha191:factor:alpha_026", + "kind": "factor", + "name": "alpha_026", + "source_id": "alpha191" + }, + { + "evidence": "alpha_027", + "heading": "alpha_027", + "key": "alpha191:factor:alpha_027", + "kind": "factor", + "name": "alpha_027", + "source_id": "alpha191" + }, + { + "evidence": "alpha_028", + "heading": "alpha_028", + "key": "alpha191:factor:alpha_028", + "kind": "factor", + "name": "alpha_028", + "source_id": "alpha191" + }, + { + "evidence": "alpha_029", + "heading": "alpha_029", + "key": "alpha191:factor:alpha_029", + "kind": "factor", + "name": "alpha_029", + "source_id": "alpha191" + }, + { + "evidence": "alpha_030(尚未实现)", + "heading": "alpha_030(尚未实现)", + "key": "alpha191:factor:alpha_030", + "kind": "factor", + "name": "alpha_030", + "source_id": "alpha191" + }, + { + "evidence": "alpha_031", + "heading": "alpha_031", + "key": "alpha191:factor:alpha_031", + "kind": "factor", + "name": "alpha_031", + "source_id": "alpha191" + }, + { + "evidence": "alpha_032", + "heading": "alpha_032", + "key": "alpha191:factor:alpha_032", + "kind": "factor", + "name": "alpha_032", + "source_id": "alpha191" + }, + { + "evidence": "alpha_033", + "heading": "alpha_033", + "key": "alpha191:factor:alpha_033", + "kind": "factor", + "name": "alpha_033", + "source_id": "alpha191" + }, + { + "evidence": "alpha_034", + "heading": "alpha_034", + "key": "alpha191:factor:alpha_034", + "kind": "factor", + "name": "alpha_034", + "source_id": "alpha191" + }, + { + "evidence": "alpha_035", + "heading": "alpha_035", + "key": "alpha191:factor:alpha_035", + "kind": "factor", + "name": "alpha_035", + "source_id": "alpha191" + }, + { + "evidence": "alpha_036", + "heading": "alpha_036", + "key": "alpha191:factor:alpha_036", + "kind": "factor", + "name": "alpha_036", + "source_id": "alpha191" + }, + { + "evidence": "alpha_037", + "heading": "alpha_037", + "key": "alpha191:factor:alpha_037", + "kind": "factor", + "name": "alpha_037", + "source_id": "alpha191" + }, + { + "evidence": "alpha_038", + "heading": "alpha_038", + "key": "alpha191:factor:alpha_038", + "kind": "factor", + "name": "alpha_038", + "source_id": "alpha191" + }, + { + "evidence": "alpha_039", + "heading": "alpha_039", + "key": "alpha191:factor:alpha_039", + "kind": "factor", + "name": "alpha_039", + "source_id": "alpha191" + }, + { + "evidence": "alpha_040", + "heading": "alpha_040", + "key": "alpha191:factor:alpha_040", + "kind": "factor", + "name": "alpha_040", + "source_id": "alpha191" + }, + { + "evidence": "alpha_041", + "heading": "alpha_041", + "key": "alpha191:factor:alpha_041", + "kind": "factor", + "name": "alpha_041", + "source_id": "alpha191" + }, + { + "evidence": "alpha_042", + "heading": "alpha_042", + "key": "alpha191:factor:alpha_042", + "kind": "factor", + "name": "alpha_042", + "source_id": "alpha191" + }, + { + "evidence": "alpha_043", + "heading": "alpha_043", + "key": "alpha191:factor:alpha_043", + "kind": "factor", + "name": "alpha_043", + "source_id": "alpha191" + }, + { + "evidence": "alpha_044", + "heading": "alpha_044", + "key": "alpha191:factor:alpha_044", + "kind": "factor", + "name": "alpha_044", + "source_id": "alpha191" + }, + { + "evidence": "alpha_045", + "heading": "alpha_045", + "key": "alpha191:factor:alpha_045", + "kind": "factor", + "name": "alpha_045", + "source_id": "alpha191" + }, + { + "evidence": "alpha_046", + "heading": "alpha_046", + "key": "alpha191:factor:alpha_046", + "kind": "factor", + "name": "alpha_046", + "source_id": "alpha191" + }, + { + "evidence": "alpha_047", + "heading": "alpha_047", + "key": "alpha191:factor:alpha_047", + "kind": "factor", + "name": "alpha_047", + "source_id": "alpha191" + }, + { + "evidence": "alpha_048", + "heading": "alpha_048", + "key": "alpha191:factor:alpha_048", + "kind": "factor", + "name": "alpha_048", + "source_id": "alpha191" + }, + { + "evidence": "alpha_049", + "heading": "alpha_049", + "key": "alpha191:factor:alpha_049", + "kind": "factor", + "name": "alpha_049", + "source_id": "alpha191" + }, + { + "evidence": "alpha_050", + "heading": "alpha_050", + "key": "alpha191:factor:alpha_050", + "kind": "factor", + "name": "alpha_050", + "source_id": "alpha191" + }, + { + "evidence": "alpha_051", + "heading": "alpha_051", + "key": "alpha191:factor:alpha_051", + "kind": "factor", + "name": "alpha_051", + "source_id": "alpha191" + }, + { + "evidence": "alpha_052", + "heading": "alpha_052", + "key": "alpha191:factor:alpha_052", + "kind": "factor", + "name": "alpha_052", + "source_id": "alpha191" + }, + { + "evidence": "alpha_053", + "heading": "alpha_053", + "key": "alpha191:factor:alpha_053", + "kind": "factor", + "name": "alpha_053", + "source_id": "alpha191" + }, + { + "evidence": "alpha_054", + "heading": "alpha_054", + "key": "alpha191:factor:alpha_054", + "kind": "factor", + "name": "alpha_054", + "source_id": "alpha191" + }, + { + "evidence": "alpha_055", + "heading": "alpha_055", + "key": "alpha191:factor:alpha_055", + "kind": "factor", + "name": "alpha_055", + "source_id": "alpha191" + }, + { + "evidence": "alpha_056", + "heading": "alpha_056", + "key": "alpha191:factor:alpha_056", + "kind": "factor", + "name": "alpha_056", + "source_id": "alpha191" + }, + { + "evidence": "alpha_057", + "heading": "alpha_057", + "key": "alpha191:factor:alpha_057", + "kind": "factor", + "name": "alpha_057", + "source_id": "alpha191" + }, + { + "evidence": "alpha_058", + "heading": "alpha_058", + "key": "alpha191:factor:alpha_058", + "kind": "factor", + "name": "alpha_058", + "source_id": "alpha191" + }, + { + "evidence": "alpha_059", + "heading": "alpha_059", + "key": "alpha191:factor:alpha_059", + "kind": "factor", + "name": "alpha_059", + "source_id": "alpha191" + }, + { + "evidence": "alpha_060", + "heading": "alpha_060", + "key": "alpha191:factor:alpha_060", + "kind": "factor", + "name": "alpha_060", + "source_id": "alpha191" + }, + { + "evidence": "alpha_061", + "heading": "alpha_061", + "key": "alpha191:factor:alpha_061", + "kind": "factor", + "name": "alpha_061", + "source_id": "alpha191" + }, + { + "evidence": "alpha_062", + "heading": "alpha_062", + "key": "alpha191:factor:alpha_062", + "kind": "factor", + "name": "alpha_062", + "source_id": "alpha191" + }, + { + "evidence": "alpha_063", + "heading": "alpha_063", + "key": "alpha191:factor:alpha_063", + "kind": "factor", + "name": "alpha_063", + "source_id": "alpha191" + }, + { + "evidence": "alpha_064", + "heading": "alpha_064", + "key": "alpha191:factor:alpha_064", + "kind": "factor", + "name": "alpha_064", + "source_id": "alpha191" + }, + { + "evidence": "alpha_065", + "heading": "alpha_065", + "key": "alpha191:factor:alpha_065", + "kind": "factor", + "name": "alpha_065", + "source_id": "alpha191" + }, + { + "evidence": "alpha_066", + "heading": "alpha_066", + "key": "alpha191:factor:alpha_066", + "kind": "factor", + "name": "alpha_066", + "source_id": "alpha191" + }, + { + "evidence": "alpha_067", + "heading": "alpha_067", + "key": "alpha191:factor:alpha_067", + "kind": "factor", + "name": "alpha_067", + "source_id": "alpha191" + }, + { + "evidence": "alpha_068", + "heading": "alpha_068", + "key": "alpha191:factor:alpha_068", + "kind": "factor", + "name": "alpha_068", + "source_id": "alpha191" + }, + { + "evidence": "alpha_069", + "heading": "alpha_069", + "key": "alpha191:factor:alpha_069", + "kind": "factor", + "name": "alpha_069", + "source_id": "alpha191" + }, + { + "evidence": "alpha_070", + "heading": "alpha_070", + "key": "alpha191:factor:alpha_070", + "kind": "factor", + "name": "alpha_070", + "source_id": "alpha191" + }, + { + "evidence": "alpha_071", + "heading": "alpha_071", + "key": "alpha191:factor:alpha_071", + "kind": "factor", + "name": "alpha_071", + "source_id": "alpha191" + }, + { + "evidence": "alpha_072", + "heading": "alpha_072", + "key": "alpha191:factor:alpha_072", + "kind": "factor", + "name": "alpha_072", + "source_id": "alpha191" + }, + { + "evidence": "alpha_073", + "heading": "alpha_073", + "key": "alpha191:factor:alpha_073", + "kind": "factor", + "name": "alpha_073", + "source_id": "alpha191" + }, + { + "evidence": "alpha_074", + "heading": "alpha_074", + "key": "alpha191:factor:alpha_074", + "kind": "factor", + "name": "alpha_074", + "source_id": "alpha191" + }, + { + "evidence": "alpha_075", + "heading": "alpha_075", + "key": "alpha191:factor:alpha_075", + "kind": "factor", + "name": "alpha_075", + "source_id": "alpha191" + }, + { + "evidence": "alpha_076", + "heading": "alpha_076", + "key": "alpha191:factor:alpha_076", + "kind": "factor", + "name": "alpha_076", + "source_id": "alpha191" + }, + { + "evidence": "alpha_077", + "heading": "alpha_077", + "key": "alpha191:factor:alpha_077", + "kind": "factor", + "name": "alpha_077", + "source_id": "alpha191" + }, + { + "evidence": "alpha_078", + "heading": "alpha_078", + "key": "alpha191:factor:alpha_078", + "kind": "factor", + "name": "alpha_078", + "source_id": "alpha191" + }, + { + "evidence": "alpha_079", + "heading": "alpha_079", + "key": "alpha191:factor:alpha_079", + "kind": "factor", + "name": "alpha_079", + "source_id": "alpha191" + }, + { + "evidence": "alpha_080", + "heading": "alpha_080", + "key": "alpha191:factor:alpha_080", + "kind": "factor", + "name": "alpha_080", + "source_id": "alpha191" + }, + { + "evidence": "alpha_081", + "heading": "alpha_081", + "key": "alpha191:factor:alpha_081", + "kind": "factor", + "name": "alpha_081", + "source_id": "alpha191" + }, + { + "evidence": "alpha_082", + "heading": "alpha_082", + "key": "alpha191:factor:alpha_082", + "kind": "factor", + "name": "alpha_082", + "source_id": "alpha191" + }, + { + "evidence": "alpha_083", + "heading": "alpha_083", + "key": "alpha191:factor:alpha_083", + "kind": "factor", + "name": "alpha_083", + "source_id": "alpha191" + }, + { + "evidence": "alpha_084", + "heading": "alpha_084", + "key": "alpha191:factor:alpha_084", + "kind": "factor", + "name": "alpha_084", + "source_id": "alpha191" + }, + { + "evidence": "alpha_085", + "heading": "alpha_085", + "key": "alpha191:factor:alpha_085", + "kind": "factor", + "name": "alpha_085", + "source_id": "alpha191" + }, + { + "evidence": "alpha_086", + "heading": "alpha_086", + "key": "alpha191:factor:alpha_086", + "kind": "factor", + "name": "alpha_086", + "source_id": "alpha191" + }, + { + "evidence": "alpha_087", + "heading": "alpha_087", + "key": "alpha191:factor:alpha_087", + "kind": "factor", + "name": "alpha_087", + "source_id": "alpha191" + }, + { + "evidence": "alpha_088", + "heading": "alpha_088", + "key": "alpha191:factor:alpha_088", + "kind": "factor", + "name": "alpha_088", + "source_id": "alpha191" + }, + { + "evidence": "alpha_089", + "heading": "alpha_089", + "key": "alpha191:factor:alpha_089", + "kind": "factor", + "name": "alpha_089", + "source_id": "alpha191" + }, + { + "evidence": "alpha_090", + "heading": "alpha_090", + "key": "alpha191:factor:alpha_090", + "kind": "factor", + "name": "alpha_090", + "source_id": "alpha191" + }, + { + "evidence": "alpha_091", + "heading": "alpha_091", + "key": "alpha191:factor:alpha_091", + "kind": "factor", + "name": "alpha_091", + "source_id": "alpha191" + }, + { + "evidence": "alpha_092", + "heading": "alpha_092", + "key": "alpha191:factor:alpha_092", + "kind": "factor", + "name": "alpha_092", + "source_id": "alpha191" + }, + { + "evidence": "alpha_093", + "heading": "alpha_093", + "key": "alpha191:factor:alpha_093", + "kind": "factor", + "name": "alpha_093", + "source_id": "alpha191" + }, + { + "evidence": "alpha_094", + "heading": "alpha_094", + "key": "alpha191:factor:alpha_094", + "kind": "factor", + "name": "alpha_094", + "source_id": "alpha191" + }, + { + "evidence": "alpha_095", + "heading": "alpha_095", + "key": "alpha191:factor:alpha_095", + "kind": "factor", + "name": "alpha_095", + "source_id": "alpha191" + }, + { + "evidence": "alpha_096", + "heading": "alpha_096", + "key": "alpha191:factor:alpha_096", + "kind": "factor", + "name": "alpha_096", + "source_id": "alpha191" + }, + { + "evidence": "alpha_097", + "heading": "alpha_097", + "key": "alpha191:factor:alpha_097", + "kind": "factor", + "name": "alpha_097", + "source_id": "alpha191" + }, + { + "evidence": "alpha_098", + "heading": "alpha_098", + "key": "alpha191:factor:alpha_098", + "kind": "factor", + "name": "alpha_098", + "source_id": "alpha191" + }, + { + "evidence": "alpha_099", + "heading": "alpha_099", + "key": "alpha191:factor:alpha_099", + "kind": "factor", + "name": "alpha_099", + "source_id": "alpha191" + }, + { + "evidence": "alpha_100", + "heading": "alpha_100", + "key": "alpha191:factor:alpha_100", + "kind": "factor", + "name": "alpha_100", + "source_id": "alpha191" + }, + { + "evidence": "alpha_101", + "heading": "alpha_101", + "key": "alpha191:factor:alpha_101", + "kind": "factor", + "name": "alpha_101", + "source_id": "alpha191" + }, + { + "evidence": "alpha_102", + "heading": "alpha_102", + "key": "alpha191:factor:alpha_102", + "kind": "factor", + "name": "alpha_102", + "source_id": "alpha191" + }, + { + "evidence": "alpha_103", + "heading": "alpha_103", + "key": "alpha191:factor:alpha_103", + "kind": "factor", + "name": "alpha_103", + "source_id": "alpha191" + }, + { + "evidence": "alpha_104", + "heading": "alpha_104", + "key": "alpha191:factor:alpha_104", + "kind": "factor", + "name": "alpha_104", + "source_id": "alpha191" + }, + { + "evidence": "alpha_105", + "heading": "alpha_105", + "key": "alpha191:factor:alpha_105", + "kind": "factor", + "name": "alpha_105", + "source_id": "alpha191" + }, + { + "evidence": "alpha_106", + "heading": "alpha_106", + "key": "alpha191:factor:alpha_106", + "kind": "factor", + "name": "alpha_106", + "source_id": "alpha191" + }, + { + "evidence": "alpha_107", + "heading": "alpha_107", + "key": "alpha191:factor:alpha_107", + "kind": "factor", + "name": "alpha_107", + "source_id": "alpha191" + }, + { + "evidence": "alpha_108", + "heading": "alpha_108", + "key": "alpha191:factor:alpha_108", + "kind": "factor", + "name": "alpha_108", + "source_id": "alpha191" + }, + { + "evidence": "alpha_109", + "heading": "alpha_109", + "key": "alpha191:factor:alpha_109", + "kind": "factor", + "name": "alpha_109", + "source_id": "alpha191" + }, + { + "evidence": "alpha_110", + "heading": "alpha_110", + "key": "alpha191:factor:alpha_110", + "kind": "factor", + "name": "alpha_110", + "source_id": "alpha191" + }, + { + "evidence": "alpha_111", + "heading": "alpha_111", + "key": "alpha191:factor:alpha_111", + "kind": "factor", + "name": "alpha_111", + "source_id": "alpha191" + }, + { + "evidence": "alpha_112", + "heading": "alpha_112", + "key": "alpha191:factor:alpha_112", + "kind": "factor", + "name": "alpha_112", + "source_id": "alpha191" + }, + { + "evidence": "alpha_113", + "heading": "alpha_113", + "key": "alpha191:factor:alpha_113", + "kind": "factor", + "name": "alpha_113", + "source_id": "alpha191" + }, + { + "evidence": "alpha_114", + "heading": "alpha_114", + "key": "alpha191:factor:alpha_114", + "kind": "factor", + "name": "alpha_114", + "source_id": "alpha191" + }, + { + "evidence": "alpha_115", + "heading": "alpha_115", + "key": "alpha191:factor:alpha_115", + "kind": "factor", + "name": "alpha_115", + "source_id": "alpha191" + }, + { + "evidence": "alpha_116", + "heading": "alpha_116", + "key": "alpha191:factor:alpha_116", + "kind": "factor", + "name": "alpha_116", + "source_id": "alpha191" + }, + { + "evidence": "alpha_117", + "heading": "alpha_117", + "key": "alpha191:factor:alpha_117", + "kind": "factor", + "name": "alpha_117", + "source_id": "alpha191" + }, + { + "evidence": "alpha_118", + "heading": "alpha_118", + "key": "alpha191:factor:alpha_118", + "kind": "factor", + "name": "alpha_118", + "source_id": "alpha191" + }, + { + "evidence": "alpha_119", + "heading": "alpha_119", + "key": "alpha191:factor:alpha_119", + "kind": "factor", + "name": "alpha_119", + "source_id": "alpha191" + }, + { + "evidence": "alpha_120", + "heading": "alpha_120", + "key": "alpha191:factor:alpha_120", + "kind": "factor", + "name": "alpha_120", + "source_id": "alpha191" + }, + { + "evidence": "alpha_121", + "heading": "alpha_121", + "key": "alpha191:factor:alpha_121", + "kind": "factor", + "name": "alpha_121", + "source_id": "alpha191" + }, + { + "evidence": "alpha_122", + "heading": "alpha_122", + "key": "alpha191:factor:alpha_122", + "kind": "factor", + "name": "alpha_122", + "source_id": "alpha191" + }, + { + "evidence": "alpha_123", + "heading": "alpha_123", + "key": "alpha191:factor:alpha_123", + "kind": "factor", + "name": "alpha_123", + "source_id": "alpha191" + }, + { + "evidence": "alpha_124", + "heading": "alpha_124", + "key": "alpha191:factor:alpha_124", + "kind": "factor", + "name": "alpha_124", + "source_id": "alpha191" + }, + { + "evidence": "alpha_125", + "heading": "alpha_125", + "key": "alpha191:factor:alpha_125", + "kind": "factor", + "name": "alpha_125", + "source_id": "alpha191" + }, + { + "evidence": "alpha_126", + "heading": "alpha_126", + "key": "alpha191:factor:alpha_126", + "kind": "factor", + "name": "alpha_126", + "source_id": "alpha191" + }, + { + "evidence": "alpha_127", + "heading": "alpha_127", + "key": "alpha191:factor:alpha_127", + "kind": "factor", + "name": "alpha_127", + "source_id": "alpha191" + }, + { + "evidence": "alpha_128", + "heading": "alpha_128", + "key": "alpha191:factor:alpha_128", + "kind": "factor", + "name": "alpha_128", + "source_id": "alpha191" + }, + { + "evidence": "alpha_129", + "heading": "alpha_129", + "key": "alpha191:factor:alpha_129", + "kind": "factor", + "name": "alpha_129", + "source_id": "alpha191" + }, + { + "evidence": "alpha_130", + "heading": "alpha_130", + "key": "alpha191:factor:alpha_130", + "kind": "factor", + "name": "alpha_130", + "source_id": "alpha191" + }, + { + "evidence": "alpha_131", + "heading": "alpha_131", + "key": "alpha191:factor:alpha_131", + "kind": "factor", + "name": "alpha_131", + "source_id": "alpha191" + }, + { + "evidence": "alpha_132", + "heading": "alpha_132", + "key": "alpha191:factor:alpha_132", + "kind": "factor", + "name": "alpha_132", + "source_id": "alpha191" + }, + { + "evidence": "alpha_133", + "heading": "alpha_133", + "key": "alpha191:factor:alpha_133", + "kind": "factor", + "name": "alpha_133", + "source_id": "alpha191" + }, + { + "evidence": "alpha_134", + "heading": "alpha_134", + "key": "alpha191:factor:alpha_134", + "kind": "factor", + "name": "alpha_134", + "source_id": "alpha191" + }, + { + "evidence": "alpha_135", + "heading": "alpha_135", + "key": "alpha191:factor:alpha_135", + "kind": "factor", + "name": "alpha_135", + "source_id": "alpha191" + }, + { + "evidence": "alpha_136", + "heading": "alpha_136", + "key": "alpha191:factor:alpha_136", + "kind": "factor", + "name": "alpha_136", + "source_id": "alpha191" + }, + { + "evidence": "alpha_137", + "heading": "alpha_137", + "key": "alpha191:factor:alpha_137", + "kind": "factor", + "name": "alpha_137", + "source_id": "alpha191" + }, + { + "evidence": "alpha_138", + "heading": "alpha_138", + "key": "alpha191:factor:alpha_138", + "kind": "factor", + "name": "alpha_138", + "source_id": "alpha191" + }, + { + "evidence": "alpha_139", + "heading": "alpha_139", + "key": "alpha191:factor:alpha_139", + "kind": "factor", + "name": "alpha_139", + "source_id": "alpha191" + }, + { + "evidence": "alpha_140", + "heading": "alpha_140", + "key": "alpha191:factor:alpha_140", + "kind": "factor", + "name": "alpha_140", + "source_id": "alpha191" + }, + { + "evidence": "alpha_141", + "heading": "alpha_141", + "key": "alpha191:factor:alpha_141", + "kind": "factor", + "name": "alpha_141", + "source_id": "alpha191" + }, + { + "evidence": "alpha_142", + "heading": "alpha_142", + "key": "alpha191:factor:alpha_142", + "kind": "factor", + "name": "alpha_142", + "source_id": "alpha191" + }, + { + "evidence": "alpha_143", + "heading": "alpha_143", + "key": "alpha191:factor:alpha_143", + "kind": "factor", + "name": "alpha_143", + "source_id": "alpha191" + }, + { + "evidence": "alpha_144", + "heading": "alpha_144", + "key": "alpha191:factor:alpha_144", + "kind": "factor", + "name": "alpha_144", + "source_id": "alpha191" + }, + { + "evidence": "alpha_145", + "heading": "alpha_145", + "key": "alpha191:factor:alpha_145", + "kind": "factor", + "name": "alpha_145", + "source_id": "alpha191" + }, + { + "evidence": "alpha_146", + "heading": "alpha_146", + "key": "alpha191:factor:alpha_146", + "kind": "factor", + "name": "alpha_146", + "source_id": "alpha191" + }, + { + "evidence": "alpha_147", + "heading": "alpha_147", + "key": "alpha191:factor:alpha_147", + "kind": "factor", + "name": "alpha_147", + "source_id": "alpha191" + }, + { + "evidence": "alpha_148", + "heading": "alpha_148", + "key": "alpha191:factor:alpha_148", + "kind": "factor", + "name": "alpha_148", + "source_id": "alpha191" + }, + { + "evidence": "alpha_149", + "heading": "alpha_149", + "key": "alpha191:factor:alpha_149", + "kind": "factor", + "name": "alpha_149", + "source_id": "alpha191" + }, + { + "evidence": "alpha_150", + "heading": "alpha_150", + "key": "alpha191:factor:alpha_150", + "kind": "factor", + "name": "alpha_150", + "source_id": "alpha191" + }, + { + "evidence": "alpha_151", + "heading": "alpha_151", + "key": "alpha191:factor:alpha_151", + "kind": "factor", + "name": "alpha_151", + "source_id": "alpha191" + }, + { + "evidence": "alpha_152", + "heading": "alpha_152", + "key": "alpha191:factor:alpha_152", + "kind": "factor", + "name": "alpha_152", + "source_id": "alpha191" + }, + { + "evidence": "alpha_153", + "heading": "alpha_153", + "key": "alpha191:factor:alpha_153", + "kind": "factor", + "name": "alpha_153", + "source_id": "alpha191" + }, + { + "evidence": "alpha_154", + "heading": "alpha_154", + "key": "alpha191:factor:alpha_154", + "kind": "factor", + "name": "alpha_154", + "source_id": "alpha191" + }, + { + "evidence": "alpha_155", + "heading": "alpha_155", + "key": "alpha191:factor:alpha_155", + "kind": "factor", + "name": "alpha_155", + "source_id": "alpha191" + }, + { + "evidence": "alpha_156", + "heading": "alpha_156", + "key": "alpha191:factor:alpha_156", + "kind": "factor", + "name": "alpha_156", + "source_id": "alpha191" + }, + { + "evidence": "alpha_157", + "heading": "alpha_157", + "key": "alpha191:factor:alpha_157", + "kind": "factor", + "name": "alpha_157", + "source_id": "alpha191" + }, + { + "evidence": "alpha_158", + "heading": "alpha_158", + "key": "alpha191:factor:alpha_158", + "kind": "factor", + "name": "alpha_158", + "source_id": "alpha191" + }, + { + "evidence": "alpha_159", + "heading": "alpha_159", + "key": "alpha191:factor:alpha_159", + "kind": "factor", + "name": "alpha_159", + "source_id": "alpha191" + }, + { + "evidence": "alpha_160", + "heading": "alpha_160", + "key": "alpha191:factor:alpha_160", + "kind": "factor", + "name": "alpha_160", + "source_id": "alpha191" + }, + { + "evidence": "alpha_161", + "heading": "alpha_161", + "key": "alpha191:factor:alpha_161", + "kind": "factor", + "name": "alpha_161", + "source_id": "alpha191" + }, + { + "evidence": "alpha_162", + "heading": "alpha_162", + "key": "alpha191:factor:alpha_162", + "kind": "factor", + "name": "alpha_162", + "source_id": "alpha191" + }, + { + "evidence": "alpha_163", + "heading": "alpha_163", + "key": "alpha191:factor:alpha_163", + "kind": "factor", + "name": "alpha_163", + "source_id": "alpha191" + }, + { + "evidence": "alpha_164", + "heading": "alpha_164", + "key": "alpha191:factor:alpha_164", + "kind": "factor", + "name": "alpha_164", + "source_id": "alpha191" + }, + { + "evidence": "alpha_165(尚未实现)", + "heading": "alpha_165(尚未实现)", + "key": "alpha191:factor:alpha_165", + "kind": "factor", + "name": "alpha_165", + "source_id": "alpha191" + }, + { + "evidence": "alpha_166", + "heading": "alpha_166", + "key": "alpha191:factor:alpha_166", + "kind": "factor", + "name": "alpha_166", + "source_id": "alpha191" + }, + { + "evidence": "alpha_167", + "heading": "alpha_167", + "key": "alpha191:factor:alpha_167", + "kind": "factor", + "name": "alpha_167", + "source_id": "alpha191" + }, + { + "evidence": "alpha_168", + "heading": "alpha_168", + "key": "alpha191:factor:alpha_168", + "kind": "factor", + "name": "alpha_168", + "source_id": "alpha191" + }, + { + "evidence": "alpha_169", + "heading": "alpha_169", + "key": "alpha191:factor:alpha_169", + "kind": "factor", + "name": "alpha_169", + "source_id": "alpha191" + }, + { + "evidence": "alpha_170", + "heading": "alpha_170", + "key": "alpha191:factor:alpha_170", + "kind": "factor", + "name": "alpha_170", + "source_id": "alpha191" + }, + { + "evidence": "alpha_171", + "heading": "alpha_171", + "key": "alpha191:factor:alpha_171", + "kind": "factor", + "name": "alpha_171", + "source_id": "alpha191" + }, + { + "evidence": "alpha_172", + "heading": "alpha_172", + "key": "alpha191:factor:alpha_172", + "kind": "factor", + "name": "alpha_172", + "source_id": "alpha191" + }, + { + "evidence": "alpha_173", + "heading": "alpha_173", + "key": "alpha191:factor:alpha_173", + "kind": "factor", + "name": "alpha_173", + "source_id": "alpha191" + }, + { + "evidence": "alpha_174", + "heading": "alpha_174", + "key": "alpha191:factor:alpha_174", + "kind": "factor", + "name": "alpha_174", + "source_id": "alpha191" + }, + { + "evidence": "alpha_175", + "heading": "alpha_175", + "key": "alpha191:factor:alpha_175", + "kind": "factor", + "name": "alpha_175", + "source_id": "alpha191" + }, + { + "evidence": "alpha_176", + "heading": "alpha_176", + "key": "alpha191:factor:alpha_176", + "kind": "factor", + "name": "alpha_176", + "source_id": "alpha191" + }, + { + "evidence": "alpha_177", + "heading": "alpha_177", + "key": "alpha191:factor:alpha_177", + "kind": "factor", + "name": "alpha_177", + "source_id": "alpha191" + }, + { + "evidence": "alpha_178", + "heading": "alpha_178", + "key": "alpha191:factor:alpha_178", + "kind": "factor", + "name": "alpha_178", + "source_id": "alpha191" + }, + { + "evidence": "alpha_179", + "heading": "alpha_179", + "key": "alpha191:factor:alpha_179", + "kind": "factor", + "name": "alpha_179", + "source_id": "alpha191" + }, + { + "evidence": "alpha_180", + "heading": "alpha_180", + "key": "alpha191:factor:alpha_180", + "kind": "factor", + "name": "alpha_180", + "source_id": "alpha191" + }, + { + "evidence": "alpha_181", + "heading": "alpha_181", + "key": "alpha191:factor:alpha_181", + "kind": "factor", + "name": "alpha_181", + "source_id": "alpha191" + }, + { + "evidence": "alpha_182", + "heading": "alpha_182", + "key": "alpha191:factor:alpha_182", + "kind": "factor", + "name": "alpha_182", + "source_id": "alpha191" + }, + { + "evidence": "alpha_183(尚未实现)", + "heading": "alpha_183(尚未实现)", + "key": "alpha191:factor:alpha_183", + "kind": "factor", + "name": "alpha_183", + "source_id": "alpha191" + }, + { + "evidence": "alpha_184", + "heading": "alpha_184", + "key": "alpha191:factor:alpha_184", + "kind": "factor", + "name": "alpha_184", + "source_id": "alpha191" + }, + { + "evidence": "alpha_185", + "heading": "alpha_185", + "key": "alpha191:factor:alpha_185", + "kind": "factor", + "name": "alpha_185", + "source_id": "alpha191" + }, + { + "evidence": "alpha_186", + "heading": "alpha_186", + "key": "alpha191:factor:alpha_186", + "kind": "factor", + "name": "alpha_186", + "source_id": "alpha191" + }, + { + "evidence": "alpha_187", + "heading": "alpha_187", + "key": "alpha191:factor:alpha_187", + "kind": "factor", + "name": "alpha_187", + "source_id": "alpha191" + }, + { + "evidence": "alpha_188", + "heading": "alpha_188", + "key": "alpha191:factor:alpha_188", + "kind": "factor", + "name": "alpha_188", + "source_id": "alpha191" + }, + { + "evidence": "alpha_189", + "heading": "alpha_189", + "key": "alpha191:factor:alpha_189", + "kind": "factor", + "name": "alpha_189", + "source_id": "alpha191" + }, + { + "evidence": "alpha_190", + "heading": "alpha_190", + "key": "alpha191:factor:alpha_190", + "kind": "factor", + "name": "alpha_190", + "source_id": "alpha191" + }, + { + "evidence": "alpha_191", + "heading": "alpha_191", + "key": "alpha191:factor:alpha_191", + "kind": "factor", + "name": "alpha_191", + "source_id": "alpha191" + }, + { + "evidence": "ABS(A)", + "heading": "公用函数说明", + "key": "alpha191:function:ABS", + "kind": "function", + "name": "ABS", + "source_id": "alpha191" + }, + { + "evidence": "CORR(A, B, n)", + "heading": "公用函数说明", + "key": "alpha191:function:CORR", + "kind": "function", + "name": "CORR", + "source_id": "alpha191" + }, + { + "evidence": "COUNT(condition, n)", + "heading": "公用函数说明", + "key": "alpha191:function:COUNT", + "kind": "function", + "name": "COUNT", + "source_id": "alpha191" + }, + { + "evidence": "COVIANCE (A, B, n)", + "heading": "公用函数说明", + "key": "alpha191:function:COVIANCE", + "kind": "function", + "name": "COVIANCE", + "source_id": "alpha191" + }, + { + "evidence": "DECAYLINEAR(A, d)", + "heading": "公用函数说明", + "key": "alpha191:function:DECAYLINEAR", + "kind": "function", + "name": "DECAYLINEAR", + "source_id": "alpha191" + }, + { + "evidence": "DELAY(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:DELAY", + "kind": "function", + "name": "DELAY", + "source_id": "alpha191" + }, + { + "evidence": "DELTA(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:DELTA", + "kind": "function", + "name": "DELTA", + "source_id": "alpha191" + }, + { + "evidence": "FILTER(A, condition)", + "heading": "公用函数说明", + "key": "alpha191:function:FILTER", + "kind": "function", + "name": "FILTER", + "source_id": "alpha191" + }, + { + "evidence": "HIGHDAY(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:HIGHDAY", + "kind": "function", + "name": "HIGHDAY", + "source_id": "alpha191" + }, + { + "evidence": "LOG(A)", + "heading": "公用函数说明", + "key": "alpha191:function:LOG", + "kind": "function", + "name": "LOG", + "source_id": "alpha191" + }, + { + "evidence": "LOWDAY(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:LOWDAY", + "kind": "function", + "name": "LOWDAY", + "source_id": "alpha191" + }, + { + "evidence": "MAX(A, B)", + "heading": "公用函数说明", + "key": "alpha191:function:MAX", + "kind": "function", + "name": "MAX", + "source_id": "alpha191" + }, + { + "evidence": "MEAN(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:MEAN", + "kind": "function", + "name": "MEAN", + "source_id": "alpha191" + }, + { + "evidence": "MIN(A, B)", + "heading": "公用函数说明", + "key": "alpha191:function:MIN", + "kind": "function", + "name": "MIN", + "source_id": "alpha191" + }, + { + "evidence": "PROD(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:PROD", + "kind": "function", + "name": "PROD", + "source_id": "alpha191" + }, + { + "evidence": "RANK(A)", + "heading": "公用函数说明", + "key": "alpha191:function:RANK", + "kind": "function", + "name": "RANK", + "source_id": "alpha191" + }, + { + "evidence": "REGBETA(A, B, n)", + "heading": "公用函数说明", + "key": "alpha191:function:REGBETA", + "kind": "function", + "name": "REGBETA", + "source_id": "alpha191" + }, + { + "evidence": "REGRESI(A, B, n)", + "heading": "公用函数说明", + "key": "alpha191:function:REGRESI", + "kind": "function", + "name": "REGRESI", + "source_id": "alpha191" + }, + { + "evidence": "SEQUENCE(n)", + "heading": "公用函数说明", + "key": "alpha191:function:SEQUENCE", + "kind": "function", + "name": "SEQUENCE", + "source_id": "alpha191" + }, + { + "evidence": "SIGN(A)", + "heading": "公用函数说明", + "key": "alpha191:function:SIGN", + "kind": "function", + "name": "SIGN", + "source_id": "alpha191" + }, + { + "evidence": "SMA(A, n, m)", + "heading": "公用函数说明", + "key": "alpha191:function:SMA", + "kind": "function", + "name": "SMA", + "source_id": "alpha191" + }, + { + "evidence": "STD(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:STD", + "kind": "function", + "name": "STD", + "source_id": "alpha191" + }, + { + "evidence": "SUM(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:SUM", + "kind": "function", + "name": "SUM", + "source_id": "alpha191" + }, + { + "evidence": "SUMAC(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:SUMAC", + "kind": "function", + "name": "SUMAC", + "source_id": "alpha191" + }, + { + "evidence": "SUMIF(A, n, condition)", + "heading": "公用函数说明", + "key": "alpha191:function:SUMIF", + "kind": "function", + "name": "SUMIF", + "source_id": "alpha191" + }, + { + "evidence": "TSMAX(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:TSMAX", + "kind": "function", + "name": "TSMAX", + "source_id": "alpha191" + }, + { + "evidence": "TSMIN(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:TSMIN", + "kind": "function", + "name": "TSMIN", + "source_id": "alpha191" + }, + { + "evidence": "TSRANK(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:TSRANK", + "kind": "function", + "name": "TSRANK", + "source_id": "alpha191" + }, + { + "evidence": "WMA(A, n)", + "heading": "公用函数说明", + "key": "alpha191:function:WMA", + "kind": "function", + "name": "WMA", + "source_id": "alpha191" + }, + { + "evidence": "alpha(获取全部因子值)", + "heading": "alpha(获取全部因子值)", + "key": "alpha191:function:alpha", + "kind": "function", + "name": "alpha", + "source_id": "alpha191" + }, + { + "evidence": "| ACCA | 现金流资产比和资产回报率之差 | 现金流资产比-资产回报率,其中现金流资产比=经营活动产生的现金流量净额/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:ACCA", + "kind": "factor", + "name": "ACCA", + "source_id": "factor-values" + }, + { + "evidence": "| AR | 人气指标 | AR=N日内(当日最高价—当日开市价)之和 / N日内(当日开市价—当日最低价)之和 * 100,n设定为26 |", + "heading": "因子目录", + "key": "factor-values:factor:AR", + "kind": "factor", + "name": "AR", + "source_id": "factor-values" + }, + { + "evidence": "| ARBR | ARBR | 因子 AR 与因子 BR 的差 |", + "heading": "因子目录", + "key": "factor-values:factor:ARBR", + "kind": "factor", + "name": "ARBR", + "source_id": "factor-values" + }, + { + "evidence": "| ATR14 | 14日均幅指标 | 真实振幅的14日移动平均 |", + "heading": "因子目录", + "key": "factor-values:factor:ATR14", + "kind": "factor", + "name": "ATR14", + "source_id": "factor-values" + }, + { + "evidence": "| ATR6 | 6日均幅指标 | 真实振幅的6日移动平均 |", + "heading": "因子目录", + "key": "factor-values:factor:ATR6", + "kind": "factor", + "name": "ATR6", + "source_id": "factor-values" + }, + { + "evidence": "| BBIC | BBI 动量 | BBI(3, 6, 12, 24) / 收盘价 (BBI 为常用技术指标类因子“多空均线”) |", + "heading": "因子目录", + "key": "factor-values:factor:BBIC", + "kind": "factor", + "name": "BBIC", + "source_id": "factor-values" + }, + { + "evidence": "| BIAS10 | 10日乖离率 | (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取10 |", + "heading": "因子目录", + "key": "factor-values:factor:BIAS10", + "kind": "factor", + "name": "BIAS10", + "source_id": "factor-values" + }, + { + "evidence": "| BIAS20 | 20日乖离率 | (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取20 |", + "heading": "因子目录", + "key": "factor-values:factor:BIAS20", + "kind": "factor", + "name": "BIAS20", + "source_id": "factor-values" + }, + { + "evidence": "| BIAS5 | 5日乖离率 | (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取5 |", + "heading": "因子目录", + "key": "factor-values:factor:BIAS5", + "kind": "factor", + "name": "BIAS5", + "source_id": "factor-values" + }, + { + "evidence": "| BIAS60 | 60日乖离率 | (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取60 |", + "heading": "因子目录", + "key": "factor-values:factor:BIAS60", + "kind": "factor", + "name": "BIAS60", + "source_id": "factor-values" + }, + { + "evidence": "| BR | 意愿指标 | BR=N日内(当日最高价-昨日收盘价)之和 / N日内(昨日收盘价-当日最低价)之和×100 n设定为26 |", + "heading": "因子目录", + "key": "factor-values:factor:BR", + "kind": "factor", + "name": "BR", + "source_id": "factor-values" + }, + { + "evidence": "| CCI10 | 10日顺势指标 | CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=10 |", + "heading": "因子目录", + "key": "factor-values:factor:CCI10", + "kind": "factor", + "name": "CCI10", + "source_id": "factor-values" + }, + { + "evidence": "| CCI15 | 15日顺势指标 | CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=15 |", + "heading": "因子目录", + "key": "factor-values:factor:CCI15", + "kind": "factor", + "name": "CCI15", + "source_id": "factor-values" + }, + { + "evidence": "| CCI20 | 20日顺势指标 | CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=20 |", + "heading": "因子目录", + "key": "factor-values:factor:CCI20", + "kind": "factor", + "name": "CCI20", + "source_id": "factor-values" + }, + { + "evidence": "| CCI88 | 88日顺势指标 | CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N)); TYP:=(HIGH+LOW+CLOSE)/3; N:=88 |", + "heading": "因子目录", + "key": "factor-values:factor:CCI88", + "kind": "factor", + "name": "CCI88", + "source_id": "factor-values" + }, + { + "evidence": "| CR20 | CR指标 | ①中间价=1日前的最高价+最低价/2 ②上升值=今天的最高价-前一日的中间价(负值记0) ③下跌值=前一日的中间价-今天的最低价(负值记0) ④多方强度=20天的上升值的和,空方强度=20天的下跌值的和 ⑤CR=(多方强度÷空方强度)×100 |", + "heading": "因子目录", + "key": "factor-values:factor:CR20", + "kind": "factor", + "name": "CR20", + "source_id": "factor-values" + }, + { + "evidence": "| DAVOL10 | 10日平均换手率与120日平均换手率之比 | 10日平均换手率 / 120日平均换手率 |", + "heading": "因子目录", + "key": "factor-values:factor:DAVOL10", + "kind": "factor", + "name": "DAVOL10", + "source_id": "factor-values" + }, + { + "evidence": "| DAVOL20 | 20日平均换手率与120日平均换手率之比 | 20日平均换手率 / 120日平均换手率 |", + "heading": "因子目录", + "key": "factor-values:factor:DAVOL20", + "kind": "factor", + "name": "DAVOL20", + "source_id": "factor-values" + }, + { + "evidence": "| DAVOL5 | 5日平均换手率与120日平均换手率 | 5日平均换手率 / 120日平均换手率 |", + "heading": "因子目录", + "key": "factor-values:factor:DAVOL5", + "kind": "factor", + "name": "DAVOL5", + "source_id": "factor-values" + }, + { + "evidence": "| DEGM | 毛利率增长 | 毛利率增长=(今年毛利率(TTM)/去年毛利率(TTM))-1 |", + "heading": "因子目录", + "key": "factor-values:factor:DEGM", + "kind": "factor", + "name": "DEGM", + "source_id": "factor-values" + }, + { + "evidence": "| DEGM_8y | 长期毛利率增长 | 过去8年(1+DEGM)的累成 ^ (1/8) - 1 |", + "heading": "因子目录", + "key": "factor-values:factor:DEGM_8y", + "kind": "factor", + "name": "DEGM_8y", + "source_id": "factor-values" + }, + { + "evidence": "| DSRI | 应收账款指数 | 本期(年报)应收账款占营业收入比例/上期(年报)应收账款占营业收入比例 |", + "heading": "因子目录", + "key": "factor-values:factor:DSRI", + "kind": "factor", + "name": "DSRI", + "source_id": "factor-values" + }, + { + "evidence": "| EBIT | 息税前利润 | 净利润+所得税+财务费用 |", + "heading": "因子目录", + "key": "factor-values:factor:EBIT", + "kind": "factor", + "name": "EBIT", + "source_id": "factor-values" + }, + { + "evidence": "| EBITDA | 息税折旧摊销前利润(报告期) | 一般企业:(营业总收入-营业税金及附加)-(营业成本+利息支出+手续费及佣金支出+销售费用+管理费用+研发费用+资产减值损失)+(固定资产折旧、油气资产折耗、生产性生物资产折旧)+无形资产摊销+长期待摊费用摊销; 银行业:(营业总收入-营业税金及附加)-(营业成本+管理费用+资产减值损失)+(固定资产折旧、油气资产折耗、生产性生物资产折旧+无形资产摊销+长期待摊费用摊销) |", + "heading": "因子目录", + "key": "factor-values:factor:EBITDA", + "kind": "factor", + "name": "EBITDA", + "source_id": "factor-values" + }, + { + "evidence": "| EMA5 | 5日指数移动均线 | 5日指数移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:EMA5", + "kind": "factor", + "name": "EMA5", + "source_id": "factor-values" + }, + { + "evidence": "| EMAC10 | 10日指数移动均线 | 10日指数移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:EMAC10", + "kind": "factor", + "name": "EMAC10", + "source_id": "factor-values" + }, + { + "evidence": "| EMAC12 | 12日指数移动均线 | 12日指数移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:EMAC12", + "kind": "factor", + "name": "EMAC12", + "source_id": "factor-values" + }, + { + "evidence": "| EMAC120 | 120日指数移动均线 | 120日指数移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:EMAC120", + "kind": "factor", + "name": "EMAC120", + "source_id": "factor-values" + }, + { + "evidence": "| EMAC20 | 20日指数移动均线 | 20日指数移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:EMAC20", + "kind": "factor", + "name": "EMAC20", + "source_id": "factor-values" + }, + { + "evidence": "| EMAC26 | 26日指数移动均线 | 26日指数移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:EMAC26", + "kind": "factor", + "name": "EMAC26", + "source_id": "factor-values" + }, + { + "evidence": "| GMI | 毛利率指数 | 上期(年报)毛利率/本期(年报)毛利率 |", + "heading": "因子目录", + "key": "factor-values:factor:GMI", + "kind": "factor", + "name": "GMI", + "source_id": "factor-values" + }, + { + "evidence": "| Kurtosis120 | 个股收益的120日峰度 | 个股收益的120日峰度 |", + "heading": "因子目录", + "key": "factor-values:factor:Kurtosis120", + "kind": "factor", + "name": "Kurtosis120", + "source_id": "factor-values" + }, + { + "evidence": "| Kurtosis20 | 个股收益的20日峰度 | 个股收益的20日峰度 |", + "heading": "因子目录", + "key": "factor-values:factor:Kurtosis20", + "kind": "factor", + "name": "Kurtosis20", + "source_id": "factor-values" + }, + { + "evidence": "| Kurtosis60 | 个股收益的60日峰度 | 个股收益的60日峰度 |", + "heading": "因子目录", + "key": "factor-values:factor:Kurtosis60", + "kind": "factor", + "name": "Kurtosis60", + "source_id": "factor-values" + }, + { + "evidence": "| LVGI | 财务杠杆指数 | 本期(年报)资产负债率/上期(年报)资产负债率 |", + "heading": "因子目录", + "key": "factor-values:factor:LVGI", + "kind": "factor", + "name": "LVGI", + "source_id": "factor-values" + }, + { + "evidence": "| MAC10 | 10日移动均线 | 10日移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:MAC10", + "kind": "factor", + "name": "MAC10", + "source_id": "factor-values" + }, + { + "evidence": "| MAC120 | 120日移动均线 | 120日移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:MAC120", + "kind": "factor", + "name": "MAC120", + "source_id": "factor-values" + }, + { + "evidence": "| MAC20 | 20日移动均线 | 20日移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:MAC20", + "kind": "factor", + "name": "MAC20", + "source_id": "factor-values" + }, + { + "evidence": "| MAC5 | 5日移动均线 | 5日移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:MAC5", + "kind": "factor", + "name": "MAC5", + "source_id": "factor-values" + }, + { + "evidence": "| MAC60 | 60日移动均线 | 60日移动均线 / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:MAC60", + "kind": "factor", + "name": "MAC60", + "source_id": "factor-values" + }, + { + "evidence": "| MACDC | 平滑异同移动平均线 | MACD(SHORT=12, LONG=26, MID=9) / 今日收盘价 |", + "heading": "因子目录", + "key": "factor-values:factor:MACDC", + "kind": "factor", + "name": "MACDC", + "source_id": "factor-values" + }, + { + "evidence": "| MASS | 梅斯线 | MASS(N1=9, N2=25, M=6) |", + "heading": "因子目录", + "key": "factor-values:factor:MASS", + "kind": "factor", + "name": "MASS", + "source_id": "factor-values" + }, + { + "evidence": "| MAWVAD | 因子WVAD的6日均值 | |", + "heading": "因子目录", + "key": "factor-values:factor:MAWVAD", + "kind": "factor", + "name": "MAWVAD", + "source_id": "factor-values" + }, + { + "evidence": "| MFI14 | 资金流量指标 | ①求得典型价格(当日最高价,最低价和收盘价的均值) ②根据典型价格高低判定正负向资金流(资金流=典型价格*成交量) ③计算MR= 正向/负向 ④MFI=100-100/(1+MR) |", + "heading": "因子目录", + "key": "factor-values:factor:MFI14", + "kind": "factor", + "name": "MFI14", + "source_id": "factor-values" + }, + { + "evidence": "| MLEV | 市场杠杆 | 市场杠杆=非流动负债合计/(非流动负债合计+总市值) |", + "heading": "因子目录", + "key": "factor-values:factor:MLEV", + "kind": "factor", + "name": "MLEV", + "source_id": "factor-values" + }, + { + "evidence": "| OperateNetIncome | 经营活动净收益 | 经营活动净收益/利润总额(%) * 利润总额 |", + "heading": "因子目录", + "key": "factor-values:factor:OperateNetIncome", + "kind": "factor", + "name": "OperateNetIncome", + "source_id": "factor-values" + }, + { + "evidence": "| OperatingCycle | 营业周期 | 应收账款周转天数+存货周转天数 |", + "heading": "因子目录", + "key": "factor-values:factor:OperatingCycle", + "kind": "factor", + "name": "OperatingCycle", + "source_id": "factor-values" + }, + { + "evidence": "| PEG | 市盈率相对盈利增长比率 | PEG = PE / (归母公司净利润(TTM)增长率 * 100) # 如果 PE 或 增长率为负,则为 nan |", + "heading": "因子目录", + "key": "factor-values:factor:PEG", + "kind": "factor", + "name": "PEG", + "source_id": "factor-values" + }, + { + "evidence": "| PLRC12 | 12日收盘价格与日期线性回归系数 | 计算 12 日收盘价格,与日期序号(1-12)的线性回归系数,(close / mean(close)) = beta * t + alpha |", + "heading": "因子目录", + "key": "factor-values:factor:PLRC12", + "kind": "factor", + "name": "PLRC12", + "source_id": "factor-values" + }, + { + "evidence": "| PLRC24 | 24日收盘价格与日期线性回归系数 | 计算 24 日收盘价格,与日期序号(1-24)的线性回归系数, (close / mean(close)) = beta * t + alpha |", + "heading": "因子目录", + "key": "factor-values:factor:PLRC24", + "kind": "factor", + "name": "PLRC24", + "source_id": "factor-values" + }, + { + "evidence": "| PLRC6 | 6日收盘价格与日期线性回归系数 | 计算 6 日收盘价格,与日期序号(1-6)的线性回归系数,(close / mean(close)) = beta * t + alpha |", + "heading": "因子目录", + "key": "factor-values:factor:PLRC6", + "kind": "factor", + "name": "PLRC6", + "source_id": "factor-values" + }, + { + "evidence": "| PSY | 心理线指标 | 12日内上涨的天数/12 *100 |", + "heading": "因子目录", + "key": "factor-values:factor:PSY", + "kind": "factor", + "name": "PSY", + "source_id": "factor-values" + }, + { + "evidence": "| Price1M | 当前股价除以过去一个月股价均值再减1 | 当日收盘价 / mean(过去一个月(21天)的收盘价) -1 |", + "heading": "因子目录", + "key": "factor-values:factor:Price1M", + "kind": "factor", + "name": "Price1M", + "source_id": "factor-values" + }, + { + "evidence": "| Price1Y | 当前股价除以过去一年股价均值再减1 | 当日收盘价 / mean(过去一年(250天)的收盘价) -1 |", + "heading": "因子目录", + "key": "factor-values:factor:Price1Y", + "kind": "factor", + "name": "Price1Y", + "source_id": "factor-values" + }, + { + "evidence": "| Price3M | 当前股价除以过去三个月股价均值再减1 | 当日收盘价 / mean(过去三个月(61天)的收盘价) -1 |", + "heading": "因子目录", + "key": "factor-values:factor:Price3M", + "kind": "factor", + "name": "Price3M", + "source_id": "factor-values" + }, + { + "evidence": "| ROAEBITTTM | 总资产报酬率 | (利润总额(TTM)+利息支出(TTM)) / 总资产在过去12个月的平均 |", + "heading": "因子目录", + "key": "factor-values:factor:ROAEBITTTM", + "kind": "factor", + "name": "ROAEBITTTM", + "source_id": "factor-values" + }, + { + "evidence": "| ROC12 | 12日变动速率(Price Rate of Change) | ①AX=今天的收盘价—12天前的收盘价 ②BX=12天前的收盘价 ③ROC=AX/BX*100 |", + "heading": "因子目录", + "key": "factor-values:factor:ROC12", + "kind": "factor", + "name": "ROC12", + "source_id": "factor-values" + }, + { + "evidence": "| ROC120 | 120日变动速率(Price Rate of Change) | ①AX=今天的收盘价—120天前的收盘价 ②BX=120天前的收盘价 ③ROC=AX/BX*100 |", + "heading": "因子目录", + "key": "factor-values:factor:ROC120", + "kind": "factor", + "name": "ROC120", + "source_id": "factor-values" + }, + { + "evidence": "| ROC20 | 20日变动速率(Price Rate of Change) | ①AX=今天的收盘价—20天前的收盘价 ②BX=20天前的收盘价 ③ROC=AX/BX*100 |", + "heading": "因子目录", + "key": "factor-values:factor:ROC20", + "kind": "factor", + "name": "ROC20", + "source_id": "factor-values" + }, + { + "evidence": "| ROC6 | 6日变动速率(Price Rate of Change) | ①AX=今天的收盘价—6天前的收盘价 ②BX=6天前的收盘价 ③ROC=AX/BX*100 |", + "heading": "因子目录", + "key": "factor-values:factor:ROC6", + "kind": "factor", + "name": "ROC6", + "source_id": "factor-values" + }, + { + "evidence": "| ROC60 | 60日变动速率(Price Rate of Change) | ①AX=今天的收盘价—60天前的收盘价 ②BX=60天前的收盘价 ③ROC=AX/BX*100 |", + "heading": "因子目录", + "key": "factor-values:factor:ROC60", + "kind": "factor", + "name": "ROC60", + "source_id": "factor-values" + }, + { + "evidence": "| Rank1M | 1减去 过去一个月收益率排名与股票总数的比值 | 1-(Rank(个股20日收益) / 股票总数) |", + "heading": "因子目录", + "key": "factor-values:factor:Rank1M", + "kind": "factor", + "name": "Rank1M", + "source_id": "factor-values" + }, + { + "evidence": "| SGAI | 销售管理费用指数 | 本期(年报)销售管理费用占营业收入的比例/上期(年报)销售管理费用占营业收入的比例 |", + "heading": "因子目录", + "key": "factor-values:factor:SGAI", + "kind": "factor", + "name": "SGAI", + "source_id": "factor-values" + }, + { + "evidence": "| SGI | 营业收入指数 | 本期(年报)营业收入/上期(年报)营业收入 |", + "heading": "因子目录", + "key": "factor-values:factor:SGI", + "kind": "factor", + "name": "SGI", + "source_id": "factor-values" + }, + { + "evidence": "| Skewness120 | 个股收益的120日偏度 | 个股收益的120日偏度 |", + "heading": "因子目录", + "key": "factor-values:factor:Skewness120", + "kind": "factor", + "name": "Skewness120", + "source_id": "factor-values" + }, + { + "evidence": "| Skewness20 | 个股收益的20日偏度 | 个股收益的20日偏度 |", + "heading": "因子目录", + "key": "factor-values:factor:Skewness20", + "kind": "factor", + "name": "Skewness20", + "source_id": "factor-values" + }, + { + "evidence": "| Skewness60 | 个股收益的60日偏度 | 个股收益的60日偏度 |", + "heading": "因子目录", + "key": "factor-values:factor:Skewness60", + "kind": "factor", + "name": "Skewness60", + "source_id": "factor-values" + }, + { + "evidence": "| TRIX10 | 10日终极指标TRIX | MTR=收盘价的10日指数移动平均的10日指数移动平均的10日指数移动平均(求三次ema10); TRIX=(MTR-1日前的MTR)/1日前的MTR*100 |", + "heading": "因子目录", + "key": "factor-values:factor:TRIX10", + "kind": "factor", + "name": "TRIX10", + "source_id": "factor-values" + }, + { + "evidence": "| TRIX5 | 5日终极指标TRIX | MTR=收盘价的5日指数移动平均的5日指数移动平均的5日指数移动平均(求三次ema5); TRIX=(MTR-1日前的MTR)/1日前的MTR*100 |", + "heading": "因子目录", + "key": "factor-values:factor:TRIX5", + "kind": "factor", + "name": "TRIX5", + "source_id": "factor-values" + }, + { + "evidence": "| TVMA20 | 20日成交金额的移动平均值 | 20日成交金额的移动平均值 |", + "heading": "因子目录", + "key": "factor-values:factor:TVMA20", + "kind": "factor", + "name": "TVMA20", + "source_id": "factor-values" + }, + { + "evidence": "| TVMA6 | 6日成交金额的移动平均值 | 6日成交金额的移动平均值 |", + "heading": "因子目录", + "key": "factor-values:factor:TVMA6", + "kind": "factor", + "name": "TVMA6", + "source_id": "factor-values" + }, + { + "evidence": "| TVSTD20 | 20日成交金额的标准差 | 20日成交额的标准差 |", + "heading": "因子目录", + "key": "factor-values:factor:TVSTD20", + "kind": "factor", + "name": "TVSTD20", + "source_id": "factor-values" + }, + { + "evidence": "| TVSTD6 | 6日成交金额的标准差 | 6日成交额的标准差 |", + "heading": "因子目录", + "key": "factor-values:factor:TVSTD6", + "kind": "factor", + "name": "TVSTD6", + "source_id": "factor-values" + }, + { + "evidence": "| VDEA | 计算VMACD因子的中间变量 | EMA(VDIFF,M) short设置为12,long设置为26,M设置为9 |", + "heading": "因子目录", + "key": "factor-values:factor:VDEA", + "kind": "factor", + "name": "VDEA", + "source_id": "factor-values" + }, + { + "evidence": "| VDIFF | 计算VMACD因子的中间变量 | EMA(VOLUME,SHORT)-EMA(VOLUME,LONG) short设置为12,long设置为26,M设置为9 |", + "heading": "因子目录", + "key": "factor-values:factor:VDIFF", + "kind": "factor", + "name": "VDIFF", + "source_id": "factor-values" + }, + { + "evidence": "| VEMA10 | 成交量的10日指数移动平均 | |", + "heading": "因子目录", + "key": "factor-values:factor:VEMA10", + "kind": "factor", + "name": "VEMA10", + "source_id": "factor-values" + }, + { + "evidence": "| VEMA12 | 12日成交量的移动平均值 | |", + "heading": "因子目录", + "key": "factor-values:factor:VEMA12", + "kind": "factor", + "name": "VEMA12", + "source_id": "factor-values" + }, + { + "evidence": "| VEMA26 | 成交量的26日指数移动平均 | |", + "heading": "因子目录", + "key": "factor-values:factor:VEMA26", + "kind": "factor", + "name": "VEMA26", + "source_id": "factor-values" + }, + { + "evidence": "| VEMA5 | 成交量的5日指数移动平均 | |", + "heading": "因子目录", + "key": "factor-values:factor:VEMA5", + "kind": "factor", + "name": "VEMA5", + "source_id": "factor-values" + }, + { + "evidence": "| VMACD | 成交量指数平滑异同移动平均线 | 快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIFF, 由DIFF的M日移动平均得到DEA,由DIFF-DEA的值得到MACD |", + "heading": "因子目录", + "key": "factor-values:factor:VMACD", + "kind": "factor", + "name": "VMACD", + "source_id": "factor-values" + }, + { + "evidence": "| VOL10 | 10日平均换手率 | 10日换手率的均值,单位为% |", + "heading": "因子目录", + "key": "factor-values:factor:VOL10", + "kind": "factor", + "name": "VOL10", + "source_id": "factor-values" + }, + { + "evidence": "| VOL120 | 120日平均换手率 | 120日换手率的均值,单位为% |", + "heading": "因子目录", + "key": "factor-values:factor:VOL120", + "kind": "factor", + "name": "VOL120", + "source_id": "factor-values" + }, + { + "evidence": "| VOL20 | 20日平均换手率 | 20日换手率的均值,单位为% |", + "heading": "因子目录", + "key": "factor-values:factor:VOL20", + "kind": "factor", + "name": "VOL20", + "source_id": "factor-values" + }, + { + "evidence": "| VOL240 | 240日平均换手率 | 240日换手率的均值,单位为% |", + "heading": "因子目录", + "key": "factor-values:factor:VOL240", + "kind": "factor", + "name": "VOL240", + "source_id": "factor-values" + }, + { + "evidence": "| VOL5 | 5日平均换手率 | 5日换手率的均值,单位为% |", + "heading": "因子目录", + "key": "factor-values:factor:VOL5", + "kind": "factor", + "name": "VOL5", + "source_id": "factor-values" + }, + { + "evidence": "| VOL60 | 60日平均换手率 | 60日换手率的均值,单位为% |", + "heading": "因子目录", + "key": "factor-values:factor:VOL60", + "kind": "factor", + "name": "VOL60", + "source_id": "factor-values" + }, + { + "evidence": "| VOSC | 成交量震荡 | 'VEMA12'和'VEMA26'两者的差值,再求差值与'VEMA12'的比,最后将比值放大100倍,得到VOSC值 |", + "heading": "因子目录", + "key": "factor-values:factor:VOSC", + "kind": "factor", + "name": "VOSC", + "source_id": "factor-values" + }, + { + "evidence": "| VR | 成交量比率(Volume Ratio) | VR=(AVS+1/2CVS)/(BVS+1/2CVS) |", + "heading": "因子目录", + "key": "factor-values:factor:VR", + "kind": "factor", + "name": "VR", + "source_id": "factor-values" + }, + { + "evidence": "| VROC12 | 12日量变动速率指标 | 成交量减N日前的成交量,再除以N日前的成交量,放大100倍,得到VROC值 ,n=12 |", + "heading": "因子目录", + "key": "factor-values:factor:VROC12", + "kind": "factor", + "name": "VROC12", + "source_id": "factor-values" + }, + { + "evidence": "| VROC6 | 6日量变动速率指标 | 成交量减N日前的成交量,再除以N日前的成交量,放大100倍,得到VROC值 ,n=6 |", + "heading": "因子目录", + "key": "factor-values:factor:VROC6", + "kind": "factor", + "name": "VROC6", + "source_id": "factor-values" + }, + { + "evidence": "| VSTD10 | 10日成交量标准差 | 10日成交量标准差 |", + "heading": "因子目录", + "key": "factor-values:factor:VSTD10", + "kind": "factor", + "name": "VSTD10", + "source_id": "factor-values" + }, + { + "evidence": "| VSTD20 | 20日成交量标准差 | 20日成交量标准差 |", + "heading": "因子目录", + "key": "factor-values:factor:VSTD20", + "kind": "factor", + "name": "VSTD20", + "source_id": "factor-values" + }, + { + "evidence": "| Variance120 | 120日年化收益方差 | 120日年化收益方差 |", + "heading": "因子目录", + "key": "factor-values:factor:Variance120", + "kind": "factor", + "name": "Variance120", + "source_id": "factor-values" + }, + { + "evidence": "| Variance20 | 20日年化收益方差 | 20日年化收益方差 |", + "heading": "因子目录", + "key": "factor-values:factor:Variance20", + "kind": "factor", + "name": "Variance20", + "source_id": "factor-values" + }, + { + "evidence": "| Variance60 | 60日年化收益方差 | 60日年化收益方差 |", + "heading": "因子目录", + "key": "factor-values:factor:Variance60", + "kind": "factor", + "name": "Variance60", + "source_id": "factor-values" + }, + { + "evidence": "| Volume1M | 当前交易量相比过去1个月日均交易量 与过去过去20日日均收益率乘积 | 当日交易量 / 过去20日交易量MEAN * 过去20日收益率MEAN |", + "heading": "因子目录", + "key": "factor-values:factor:Volume1M", + "kind": "factor", + "name": "Volume1M", + "source_id": "factor-values" + }, + { + "evidence": "| WVAD | 威廉变异离散量 | (收盘价-开盘价)/(最高价-最低价)×成交量,再做加和,使用过去6个交易日的数据 |", + "heading": "因子目录", + "key": "factor-values:factor:WVAD", + "kind": "factor", + "name": "WVAD", + "source_id": "factor-values" + }, + { + "evidence": "| account_receivable_turnover_days | 应收账款周转天数 | 应收账款周转天数=360/应收账款周转率 |", + "heading": "因子目录", + "key": "factor-values:factor:account_receivable_turnover_days", + "kind": "factor", + "name": "account_receivable_turnover_days", + "source_id": "factor-values" + }, + { + "evidence": "| account_receivable_turnover_rate | 应收账款周转率 | 即,TTM(营业收入,0)/(AvgQ(应收账款,4,0)+ AvgQ(应收票据,4,0)) |", + "heading": "因子目录", + "key": "factor-values:factor:account_receivable_turnover_rate", + "kind": "factor", + "name": "account_receivable_turnover_rate", + "source_id": "factor-values" + }, + { + "evidence": "| accounts_payable_turnover_days | 应付账款周转天数 | 应付账款周转天数 = 360 / 应付账款周转率 |", + "heading": "因子目录", + "key": "factor-values:factor:accounts_payable_turnover_days", + "kind": "factor", + "name": "accounts_payable_turnover_days", + "source_id": "factor-values" + }, + { + "evidence": "| accounts_payable_turnover_rate | 应付账款周转率 | TTM(营业成本,0)/(AvgQ(应付账款,4,0) + AvgQ(应付票据,4,0) ) |", + "heading": "因子目录", + "key": "factor-values:factor:accounts_payable_turnover_rate", + "kind": "factor", + "name": "accounts_payable_turnover_rate", + "source_id": "factor-values" + }, + { + "evidence": "| adjusted_profit_to_total_profit | 扣除非经常损益后的净利润/利润总额 | 扣除非经常损益后的净利润/利润总额 |", + "heading": "因子目录", + "key": "factor-values:factor:adjusted_profit_to_total_profit", + "kind": "factor", + "name": "adjusted_profit_to_total_profit", + "source_id": "factor-values" + }, + { + "evidence": "| admin_expense_rate | 管理费用与营业总收入之比 | 管理费用与营业总收入之比=管理费用(TTM)/营业总收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:admin_expense_rate", + "kind": "factor", + "name": "admin_expense_rate", + "source_id": "factor-values" + }, + { + "evidence": "| administration_expense_ttm | 管理费用TTM | 计算过去12个月 管理费用 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:administration_expense_ttm", + "kind": "factor", + "name": "administration_expense_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| arron_down_25 | Aroon指标下轨 | Aroon(下降)=[(计算期天数-最低价后的天数)/计算期天数]*100 |", + "heading": "因子目录", + "key": "factor-values:factor:arron_down_25", + "kind": "factor", + "name": "arron_down_25", + "source_id": "factor-values" + }, + { + "evidence": "| arron_up_25 | Aroon指标上轨 | Aroon(上升)=[(计算期天数-最高价后的天数)/计算期天数]*100 |", + "heading": "因子目录", + "key": "factor-values:factor:arron_up_25", + "kind": "factor", + "name": "arron_up_25", + "source_id": "factor-values" + }, + { + "evidence": "| asset_impairment_loss_ttm | 资产减值损失TTM | 计算过去12个月 资产减值损失 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:asset_impairment_loss_ttm", + "kind": "factor", + "name": "asset_impairment_loss_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| asset_turnover_ttm | 经营资产周转率TTM | 营业收入TTM/近4个季度期末净经营性资产均值; 净经营性资产=经营资产-经营负债 |", + "heading": "因子目录", + "key": "factor-values:factor:asset_turnover_ttm", + "kind": "factor", + "name": "asset_turnover_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| bear_power | 空头力道 | (最低价-EMA(close,13)) / close |", + "heading": "因子目录", + "key": "factor-values:factor:bear_power", + "kind": "factor", + "name": "bear_power", + "source_id": "factor-values" + }, + { + "evidence": "| beta | 贝塔 | 表征股票相对于市场的波动敏感度 |", + "heading": "因子目录", + "key": "factor-values:factor:beta", + "kind": "factor", + "name": "beta", + "source_id": "factor-values" + }, + { + "evidence": "| boll_down | 下轨线(布林线)指标 | (MA(CLOSE,M)-2*STD(CLOSE,M)) / 今日收盘价; M=20 |", + "heading": "因子目录", + "key": "factor-values:factor:boll_down", + "kind": "factor", + "name": "boll_down", + "source_id": "factor-values" + }, + { + "evidence": "| boll_up | 上轨线(布林线)指标 | (MA(CLOSE,M)+2*STD(CLOSE,M)) / 今日收盘价; M=20 |", + "heading": "因子目录", + "key": "factor-values:factor:boll_up", + "kind": "factor", + "name": "boll_up", + "source_id": "factor-values" + }, + { + "evidence": "| book_to_price_ratio | 账面市值比 | 描述了股票估值高低不同而产生的收益差异, 即价值因子 |", + "heading": "因子目录", + "key": "factor-values:factor:book_to_price_ratio", + "kind": "factor", + "name": "book_to_price_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| btop | 市净率因子 | 描述了股票估值高低不同而产生的收益差异, 即价值因子 |", + "heading": "因子目录", + "key": "factor-values:factor:btop", + "kind": "factor", + "name": "btop", + "source_id": "factor-values" + }, + { + "evidence": "| bull_power | 多头力道 | (最高价-EMA(close,13)) / close |", + "heading": "因子目录", + "key": "factor-values:factor:bull_power", + "kind": "factor", + "name": "bull_power", + "source_id": "factor-values" + }, + { + "evidence": "| capital_reserve_fund_per_share | 每股资本公积金 | 每股资本公积金 |", + "heading": "因子目录", + "key": "factor-values:factor:capital_reserve_fund_per_share", + "kind": "factor", + "name": "capital_reserve_fund_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| cash_and_equivalents_per_share | 每股现金及现金等价物余额 | 每股现金及现金等价物余额 |", + "heading": "因子目录", + "key": "factor-values:factor:cash_and_equivalents_per_share", + "kind": "factor", + "name": "cash_and_equivalents_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| cash_flow_to_price_ratio | 现金流市值比 | 1 / pcf_ratio (ttm) |", + "heading": "因子目录", + "key": "factor-values:factor:cash_flow_to_price_ratio", + "kind": "factor", + "name": "cash_flow_to_price_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| cash_rate_of_sales | 经营活动产生的现金流量净额与营业收入之比 | 经营活动产生的现金流量净额(TTM) / 营业收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:cash_rate_of_sales", + "kind": "factor", + "name": "cash_rate_of_sales", + "source_id": "factor-values" + }, + { + "evidence": "| cash_to_current_liability | 现金比率 | 期末现金及现金等价物余额/流动负债合计的12个月均值 |", + "heading": "因子目录", + "key": "factor-values:factor:cash_to_current_liability", + "kind": "factor", + "name": "cash_to_current_liability", + "source_id": "factor-values" + }, + { + "evidence": "| cashflow_per_share_ttm | 每股现金流量净额,根据当时日期来获取最近变更日的总股本 | 现金流量净额(TTM)除以总股本 |", + "heading": "因子目录", + "key": "factor-values:factor:cashflow_per_share_ttm", + "kind": "factor", + "name": "cashflow_per_share_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| cfo_to_ev | 经营活动产生的现金流量净额与企业价值之比TTM | 经营活动产生的现金流量净额TTM / 企业价值。其中,企业价值=司市值+负债合计-货币资金 |", + "heading": "因子目录", + "key": "factor-values:factor:cfo_to_ev", + "kind": "factor", + "name": "cfo_to_ev", + "source_id": "factor-values" + }, + { + "evidence": "| circulating_market_cap | 流通市值 | 流通市值 |", + "heading": "因子目录", + "key": "factor-values:factor:circulating_market_cap", + "kind": "factor", + "name": "circulating_market_cap", + "source_id": "factor-values" + }, + { + "evidence": "| current_asset_turnover_rate | 流动资产周转率TTM | 过去12个月的营业收入/过去12个月的平均流动资产合计 |", + "heading": "因子目录", + "key": "factor-values:factor:current_asset_turnover_rate", + "kind": "factor", + "name": "current_asset_turnover_rate", + "source_id": "factor-values" + }, + { + "evidence": "| current_ratio | 流动比率(单季度) | 流动比率=流动资产合计/流动负债合计 |", + "heading": "因子目录", + "key": "factor-values:factor:current_ratio", + "kind": "factor", + "name": "current_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| debt_to_asset_ratio | 债务总资产比 | 债务总资产比=负债合计/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:debt_to_asset_ratio", + "kind": "factor", + "name": "debt_to_asset_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| debt_to_equity_ratio | 产权比率 | 产权比率=负债合计/归属母公司所有者权益合计 |", + "heading": "因子目录", + "key": "factor-values:factor:debt_to_equity_ratio", + "kind": "factor", + "name": "debt_to_equity_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| debt_to_tangible_equity_ratio | 有形净值债务率 | 负债合计/有形净值 其中有形净值=股东权益-无形资产净值,无形资产净值= 商誉+无形资产 |", + "heading": "因子目录", + "key": "factor-values:factor:debt_to_tangible_equity_ratio", + "kind": "factor", + "name": "debt_to_tangible_equity_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| divyild | 分红因子 | 股票历史和预测的股息价格比的股票回报差异 |", + "heading": "因子目录", + "key": "factor-values:factor:divyild", + "kind": "factor", + "name": "divyild", + "source_id": "factor-values" + }, + { + "evidence": "| earnings_yield | 盈利能力 | 描述了由盈利收益导致的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:earnings_yield", + "kind": "factor", + "name": "earnings_yield", + "source_id": "factor-values" + }, + { + "evidence": "| earnqlty | 盈利质量因子 | 股票收益因其收益的应计部分而产生的差异 |", + "heading": "因子目录", + "key": "factor-values:factor:earnqlty", + "kind": "factor", + "name": "earnqlty", + "source_id": "factor-values" + }, + { + "evidence": "| earnvar | 盈利变动率因子 | 解释由于收益、销售额和现金流的可变性而导致的股票回报差异,以及分析师预测的收益与价格之比。 |", + "heading": "因子目录", + "key": "factor-values:factor:earnvar", + "kind": "factor", + "name": "earnvar", + "source_id": "factor-values" + }, + { + "evidence": "| earnyild | 收益因子 | 描述了由盈利收益导致的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:earnyild", + "kind": "factor", + "name": "earnyild", + "source_id": "factor-values" + }, + { + "evidence": "| eps_ttm | 每股收益TTM | 过去12个月归属母公司所有者的净利润(TTM)除以总股本 |", + "heading": "因子目录", + "key": "factor-values:factor:eps_ttm", + "kind": "factor", + "name": "eps_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| equity_to_asset_ratio | 股东权益比率 | 股东权益比率=股东权益/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:equity_to_asset_ratio", + "kind": "factor", + "name": "equity_to_asset_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| equity_to_fixed_asset_ratio | 股东权益与固定资产比率 | 股东权益与固定资产比率=股东权益/(固定资产+工程物资+在建工程) |", + "heading": "因子目录", + "key": "factor-values:factor:equity_to_fixed_asset_ratio", + "kind": "factor", + "name": "equity_to_fixed_asset_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| equity_turnover_rate | 股东权益周转率 | 股东权益周转率=营业收入(ttm)/股东权益 |", + "heading": "因子目录", + "key": "factor-values:factor:equity_turnover_rate", + "kind": "factor", + "name": "equity_turnover_rate", + "source_id": "factor-values" + }, + { + "evidence": "| fifty_two_week_close_rank | 当前价格处于过去1年股价的位置 | 取过去的250个交易日各股的收盘价时间序列,每只股票按照从大到小排列,并找出当日所在的位置 |", + "heading": "因子目录", + "key": "factor-values:factor:fifty_two_week_close_rank", + "kind": "factor", + "name": "fifty_two_week_close_rank", + "source_id": "factor-values" + }, + { + "evidence": "| financial_assets | 金融资产 | 货币资金 + 交易性金融资产 + 应收票据 + 应收利息 + 应收股利 + 可供出售金融资产 + 持有至到期投资 |", + "heading": "因子目录", + "key": "factor-values:factor:financial_assets", + "kind": "factor", + "name": "financial_assets", + "source_id": "factor-values" + }, + { + "evidence": "| financial_expense_rate | 财务费用与营业总收入之比 | 财务费用(TTM) / 营业总收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:financial_expense_rate", + "kind": "factor", + "name": "financial_expense_rate", + "source_id": "factor-values" + }, + { + "evidence": "| financial_expense_ttm | 财务费用TTM | 计算过去12个月 财务费用 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:financial_expense_ttm", + "kind": "factor", + "name": "financial_expense_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| financial_leverage | 财务杠杆因子 | 描述了高杠杆股票与低杠杆股票之间的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:financial_leverage", + "kind": "factor", + "name": "financial_leverage", + "source_id": "factor-values" + }, + { + "evidence": "| financial_liability | 金融负债 | (流动负债合计-无息流动负债)+(有息非流动负债)=(流动负债合计-应付账款-预收款项-应付职工薪酬-应交税费-其他应付款-一年内的递延收益-其它流动负债)+(长期借款+应付债券) |", + "heading": "因子目录", + "key": "factor-values:factor:financial_liability", + "kind": "factor", + "name": "financial_liability", + "source_id": "factor-values" + }, + { + "evidence": "| financing_cash_growth_rate | 筹资活动产生的现金流量净额增长率 | 过去12个月的筹资现金流量净额 / 4季度前的12个月的筹资现金流量净额 - 1 |", + "heading": "因子目录", + "key": "factor-values:factor:financing_cash_growth_rate", + "kind": "factor", + "name": "financing_cash_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| fixed_asset_ratio | 固定资产比率 | 固定资产比率=(固定资产+工程物资+在建工程)/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:fixed_asset_ratio", + "kind": "factor", + "name": "fixed_asset_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| fixed_assets_turnover_rate | 固定资产周转率 | 等于过去12个月的营业收入/过去12个月的平均(固定资产+工程物资+在建工程) |", + "heading": "因子目录", + "key": "factor-values:factor:fixed_assets_turnover_rate", + "kind": "factor", + "name": "fixed_assets_turnover_rate", + "source_id": "factor-values" + }, + { + "evidence": "| goods_sale_and_service_render_cash_ttm | 销售商品提供劳务收到的现金 | 计算过去12个月 销售商品提供劳务收到的现金 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:goods_sale_and_service_render_cash_ttm", + "kind": "factor", + "name": "goods_sale_and_service_render_cash_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| goods_service_cash_to_operating_revenue_ttm | 销售商品提供劳务收到的现金与营业收入之比 | 销售商品提供劳务收到的现金与营业收入之比=销售商品和提供劳务收到的现金(TTM)/营业收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:goods_service_cash_to_operating_revenue_ttm", + "kind": "factor", + "name": "goods_service_cash_to_operating_revenue_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| gross_income_ratio | 销售毛利率 | 销售毛利率=(营业收入(TTM)-营业成本(TTM))/营业收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:gross_income_ratio", + "kind": "factor", + "name": "gross_income_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| gross_profit_ttm | 毛利TTM | 过去12个月的 毛利润 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:gross_profit_ttm", + "kind": "factor", + "name": "gross_profit_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| growth | 成长 | 描述了对销售或盈利增长预期不同而产生的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:growth", + "kind": "factor", + "name": "growth", + "source_id": "factor-values" + }, + { + "evidence": "| intangible_asset_ratio | 无形资产比率 | 无形资产比率=(无形资产+研发支出+商誉)/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:intangible_asset_ratio", + "kind": "factor", + "name": "intangible_asset_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| interest_carry_current_liability | 带息流动负债 | 流动负债合计 - 无息流动负债 |", + "heading": "因子目录", + "key": "factor-values:factor:interest_carry_current_liability", + "kind": "factor", + "name": "interest_carry_current_liability", + "source_id": "factor-values" + }, + { + "evidence": "| interest_free_current_liability | 无息流动负债 | 应付票据+应付账款+预收账款(用 预售款项 代替)+应交税费+应付利息+其他应付款+其他流动负债 |", + "heading": "因子目录", + "key": "factor-values:factor:interest_free_current_liability", + "kind": "factor", + "name": "interest_free_current_liability", + "source_id": "factor-values" + }, + { + "evidence": "| inventory_turnover_days | 存货周转天数 | 存货周转天数=360/存货周转率 |", + "heading": "因子目录", + "key": "factor-values:factor:inventory_turnover_days", + "kind": "factor", + "name": "inventory_turnover_days", + "source_id": "factor-values" + }, + { + "evidence": "| inventory_turnover_rate | 存货周转率 | 存货周转率=营业成本(TTM)/AvgQ(存货,4,0) |", + "heading": "因子目录", + "key": "factor-values:factor:inventory_turnover_rate", + "kind": "factor", + "name": "inventory_turnover_rate", + "source_id": "factor-values" + }, + { + "evidence": "| invest_income_associates_to_total_profit | 对联营和合营公司投资收益/利润总额 | 对联营和营公司投资收益/利润总额 |", + "heading": "因子目录", + "key": "factor-values:factor:invest_income_associates_to_total_profit", + "kind": "factor", + "name": "invest_income_associates_to_total_profit", + "source_id": "factor-values" + }, + { + "evidence": "| invsqlty | 投资能力因子 | 衡量当股票价格过高/过低时,公司对资产扩张/紧缩的的倾向以及管理观点 |", + "heading": "因子目录", + "key": "factor-values:factor:invsqlty", + "kind": "factor", + "name": "invsqlty", + "source_id": "factor-values" + }, + { + "evidence": "| leverage | 杠杆 | 描述了高杠杆股票与低杠杆股票之间的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:leverage", + "kind": "factor", + "name": "leverage", + "source_id": "factor-values" + }, + { + "evidence": "| liquidity | 流动性 | 解释了由股票相对的交易活跃度不同而产生的收益率差异 |", + "heading": "因子目录", + "key": "factor-values:factor:liquidity", + "kind": "factor", + "name": "liquidity", + "source_id": "factor-values" + }, + { + "evidence": "| liquidty | 流动性因子 | 解释了由股票相对的交易活跃度不同而产生的收益率差异 |", + "heading": "因子目录", + "key": "factor-values:factor:liquidty", + "kind": "factor", + "name": "liquidty", + "source_id": "factor-values" + }, + { + "evidence": "| long_debt_to_asset_ratio | 长期借款与资产总计之比 | 长期借款与资产总计之比=长期借款/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:long_debt_to_asset_ratio", + "kind": "factor", + "name": "long_debt_to_asset_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| long_debt_to_working_capital_ratio | 长期负债与营运资金比率 | 长期负债与营运资金比率=非流动负债合计/(流动资产合计-流动负债合计) |", + "heading": "因子目录", + "key": "factor-values:factor:long_debt_to_working_capital_ratio", + "kind": "factor", + "name": "long_debt_to_working_capital_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| long_growth | 长期成长因子 | 描述了对销售或盈利增长预期不同而产生的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:long_growth", + "kind": "factor", + "name": "long_growth", + "source_id": "factor-values" + }, + { + "evidence": "| long_term_debt_to_asset_ratio | 长期负债与资产总计之比 | 长期负债与资产总计之比=非流动负债合计/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:long_term_debt_to_asset_ratio", + "kind": "factor", + "name": "long_term_debt_to_asset_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| ltrevrsl | 长期反转因子 | 解释与长期股票价格行为相关的常见回报变化 |", + "heading": "因子目录", + "key": "factor-values:factor:ltrevrsl", + "kind": "factor", + "name": "ltrevrsl", + "source_id": "factor-values" + }, + { + "evidence": "| margin_stability | 盈利能力稳定性 | mean(GM)/std(GM); GM 为过去8年毛利率ttm |", + "heading": "因子目录", + "key": "factor-values:factor:margin_stability", + "kind": "factor", + "name": "margin_stability", + "source_id": "factor-values" + }, + { + "evidence": "| market_beta | 市场波动率因子 | 表征股票相对于市场的波动敏感度 |", + "heading": "因子目录", + "key": "factor-values:factor:market_beta", + "kind": "factor", + "name": "market_beta", + "source_id": "factor-values" + }, + { + "evidence": "| market_cap | 市值 | 市值 |", + "heading": "因子目录", + "key": "factor-values:factor:market_cap", + "kind": "factor", + "name": "market_cap", + "source_id": "factor-values" + }, + { + "evidence": "| market_size | 市值规模因子 | 捕捉大盘股和小盘股之间的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:market_size", + "kind": "factor", + "name": "market_size", + "source_id": "factor-values" + }, + { + "evidence": "| maximum_margin | 最大盈利水平 | max(margin_stability, DEGM_8y) |", + "heading": "因子目录", + "key": "factor-values:factor:maximum_margin", + "kind": "factor", + "name": "maximum_margin", + "source_id": "factor-values" + }, + { + "evidence": "| midcap | 中等市值因子 | 捕捉中等市值股票与大盘股或者小盘股之间的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:midcap", + "kind": "factor", + "name": "midcap", + "source_id": "factor-values" + }, + { + "evidence": "| momentum | 传统动量 | 描述了过去两年里相对强势的股票与弱势股票之间的差异 |", + "heading": "因子目录", + "key": "factor-values:factor:momentum", + "kind": "factor", + "name": "momentum", + "source_id": "factor-values" + }, + { + "evidence": "| money_flow_20 | 20日资金流量 | 用收盘价、最高价及最低价的均值乘以当日成交量即可得到该交易日的资金流量 |", + "heading": "因子目录", + "key": "factor-values:factor:money_flow_20", + "kind": "factor", + "name": "money_flow_20", + "source_id": "factor-values" + }, + { + "evidence": "| net_asset_growth_rate | 净资产增长率 | (当季的股东权益/三季度前的股东权益)-1 |", + "heading": "因子目录", + "key": "factor-values:factor:net_asset_growth_rate", + "kind": "factor", + "name": "net_asset_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| net_asset_per_share | 每股净资产 | (归属母公司所有者权益合计-其他权益工具)除以总股本 |", + "heading": "因子目录", + "key": "factor-values:factor:net_asset_per_share", + "kind": "factor", + "name": "net_asset_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| net_debt | 净债务 | 总债务-期末现金及现金等价物余额 |", + "heading": "因子目录", + "key": "factor-values:factor:net_debt", + "kind": "factor", + "name": "net_debt", + "source_id": "factor-values" + }, + { + "evidence": "| net_finance_cash_flow_ttm | 筹资活动现金流量净额TTM | 计算过去12个月 筹资活动现金流量净额 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:net_finance_cash_flow_ttm", + "kind": "factor", + "name": "net_finance_cash_flow_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| net_interest_expense | 净利息费用 | 利息支出-利息收入 |", + "heading": "因子目录", + "key": "factor-values:factor:net_interest_expense", + "kind": "factor", + "name": "net_interest_expense", + "source_id": "factor-values" + }, + { + "evidence": "| net_invest_cash_flow_ttm | 投资活动现金流量净额TTM | 计算过去12个月 投资活动现金流量净额 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:net_invest_cash_flow_ttm", + "kind": "factor", + "name": "net_invest_cash_flow_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| net_non_operating_income_to_total_profit | 营业外收支利润净额/利润总额 | 营业外收支利润净额/利润总额 |", + "heading": "因子目录", + "key": "factor-values:factor:net_non_operating_income_to_total_profit", + "kind": "factor", + "name": "net_non_operating_income_to_total_profit", + "source_id": "factor-values" + }, + { + "evidence": "| net_operate_cash_flow_per_share | 每股经营活动产生的现金流量净额 | 每股经营活动产生的现金流量净额 |", + "heading": "因子目录", + "key": "factor-values:factor:net_operate_cash_flow_per_share", + "kind": "factor", + "name": "net_operate_cash_flow_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| net_operate_cash_flow_to_asset | 总资产现金回收率 | 经营活动产生的现金流量净额(ttm) / 总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:net_operate_cash_flow_to_asset", + "kind": "factor", + "name": "net_operate_cash_flow_to_asset", + "source_id": "factor-values" + }, + { + "evidence": "| net_operate_cash_flow_to_net_debt | 经营活动产生现金流量净额/净债务 | 经营活动产生现金流量净额/净债务 |", + "heading": "因子目录", + "key": "factor-values:factor:net_operate_cash_flow_to_net_debt", + "kind": "factor", + "name": "net_operate_cash_flow_to_net_debt", + "source_id": "factor-values" + }, + { + "evidence": "| net_operate_cash_flow_to_operate_income | 经营活动产生的现金流量净额与经营活动净收益之比 | 经营活动产生的现金流量净额(TTM)/(营业总收入(TTM)-营业总成本(TTM)) |", + "heading": "因子目录", + "key": "factor-values:factor:net_operate_cash_flow_to_operate_income", + "kind": "factor", + "name": "net_operate_cash_flow_to_operate_income", + "source_id": "factor-values" + }, + { + "evidence": "| net_operate_cash_flow_to_total_current_liability | 现金流动负债比 | 现金流动负债比=经营活动产生的现金流量净额(TTM)/流动负债合计 |", + "heading": "因子目录", + "key": "factor-values:factor:net_operate_cash_flow_to_total_current_liability", + "kind": "factor", + "name": "net_operate_cash_flow_to_total_current_liability", + "source_id": "factor-values" + }, + { + "evidence": "| net_operate_cash_flow_to_total_liability | 经营活动产生的现金流量净额/负债合计 | 经营活动产生的现金流量净额/负债合计 |", + "heading": "因子目录", + "key": "factor-values:factor:net_operate_cash_flow_to_total_liability", + "kind": "factor", + "name": "net_operate_cash_flow_to_total_liability", + "source_id": "factor-values" + }, + { + "evidence": "| net_operate_cash_flow_ttm | 经营活动现金流量净额TTM | 计算过去12个月 经营活动产生的现金流量净值 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:net_operate_cash_flow_ttm", + "kind": "factor", + "name": "net_operate_cash_flow_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| net_operate_cashflow_growth_rate | 经营活动产生的现金流量净额增长率 | (今年经营活动产生的现金流量净额(TTM)/去年经营活动产生的现金流量净额(TTM))-1 |", + "heading": "因子目录", + "key": "factor-values:factor:net_operate_cashflow_growth_rate", + "kind": "factor", + "name": "net_operate_cashflow_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| net_operating_cash_flow_coverage | 净利润现金含量 | 经营活动产生的现金流量净额/归属于母公司所有者的净利润 |", + "heading": "因子目录", + "key": "factor-values:factor:net_operating_cash_flow_coverage", + "kind": "factor", + "name": "net_operating_cash_flow_coverage", + "source_id": "factor-values" + }, + { + "evidence": "| net_profit_growth_rate | 净利润增长率 | 净利润增长率=(今年净利润(TTM)/去年净利润(TTM))-1 |", + "heading": "因子目录", + "key": "factor-values:factor:net_profit_growth_rate", + "kind": "factor", + "name": "net_profit_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| net_profit_ratio | 销售净利率 | 售净利率=净利润(TTM)/营业收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:net_profit_ratio", + "kind": "factor", + "name": "net_profit_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| net_profit_to_total_operate_revenue_ttm | 净利润与营业总收入之比 | 净利润与营业总收入之比=净利润(TTM)/营业总收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:net_profit_to_total_operate_revenue_ttm", + "kind": "factor", + "name": "net_profit_to_total_operate_revenue_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| net_profit_ttm | 净利润TTM | 计算过去12个月 净利润 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:net_profit_ttm", + "kind": "factor", + "name": "net_profit_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| net_working_capital | 净运营资本 | 流动资产 - 流动负债 |", + "heading": "因子目录", + "key": "factor-values:factor:net_working_capital", + "kind": "factor", + "name": "net_working_capital", + "source_id": "factor-values" + }, + { + "evidence": "| non_current_asset_ratio | 非流动资产比率 | 非流动资产比率=非流动资产合计/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:non_current_asset_ratio", + "kind": "factor", + "name": "non_current_asset_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| non_linear_size | 非线性市值 | 描述了无法由规模因子解释的但与规模有关的收益差异,通常代表中盘股 |", + "heading": "因子目录", + "key": "factor-values:factor:non_linear_size", + "kind": "factor", + "name": "non_linear_size", + "source_id": "factor-values" + }, + { + "evidence": "| non_operating_net_profit_ttm | 营业外收支净额TTM | 营业外收入(TTM) - 营业外支出(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:non_operating_net_profit_ttm", + "kind": "factor", + "name": "non_operating_net_profit_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| non_recurring_gain_loss | 非经常性损益 | 归属于母公司股东的净利润-扣除非经常损益后的净利润(元) |", + "heading": "因子目录", + "key": "factor-values:factor:non_recurring_gain_loss", + "kind": "factor", + "name": "non_recurring_gain_loss", + "source_id": "factor-values" + }, + { + "evidence": "| np_parent_company_owners_growth_rate | 归属母公司股东的净利润增长率 | (今年归属于母公司所有者的净利润(TTM)/去年归属于母公司所有者的净利润(TTM))-1 |", + "heading": "因子目录", + "key": "factor-values:factor:np_parent_company_owners_growth_rate", + "kind": "factor", + "name": "np_parent_company_owners_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| np_parent_company_owners_ttm | 归属于母公司股东的净利润TTM | 计算过去12个月 归属于母公司股东的净利润 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:np_parent_company_owners_ttm", + "kind": "factor", + "name": "np_parent_company_owners_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| operating_assets | 经营性资产 | 总资产 - 金融资产 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_assets", + "kind": "factor", + "name": "operating_assets", + "source_id": "factor-values" + }, + { + "evidence": "| operating_cost_to_operating_revenue_ratio | 销售成本率 | 销售成本率=营业成本(TTM)/营业收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:operating_cost_to_operating_revenue_ratio", + "kind": "factor", + "name": "operating_cost_to_operating_revenue_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| operating_cost_ttm | 营业成本TTM | 计算过去12个月的 营业成本 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_cost_ttm", + "kind": "factor", + "name": "operating_cost_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| operating_liability | 经营性负债 | 总负债 - 金融负债 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_liability", + "kind": "factor", + "name": "operating_liability", + "source_id": "factor-values" + }, + { + "evidence": "| operating_profit_growth_rate | 营业利润增长率 | 营业利润增长率=(今年营业利润(TTM)/去年营业利润(TTM))-1 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_profit_growth_rate", + "kind": "factor", + "name": "operating_profit_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| operating_profit_per_share | 每股营业利润 | 每股营业利润 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_profit_per_share", + "kind": "factor", + "name": "operating_profit_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| operating_profit_per_share_ttm | 每股营业利润TTM | 营业利润(TTM)除以总股本 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_profit_per_share_ttm", + "kind": "factor", + "name": "operating_profit_per_share_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| operating_profit_ratio | 营业利润率 | 营业利润率=营业利润(TTM)/营业收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:operating_profit_ratio", + "kind": "factor", + "name": "operating_profit_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| operating_profit_to_operating_revenue | 营业利润与营业总收入之比 | 营业利润与营业总收入之比=营业利润(TTM)/营业总收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:operating_profit_to_operating_revenue", + "kind": "factor", + "name": "operating_profit_to_operating_revenue", + "source_id": "factor-values" + }, + { + "evidence": "| operating_profit_to_total_profit | 经营活动净收益/利润总额 | 经营活动净收益/利润总额 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_profit_to_total_profit", + "kind": "factor", + "name": "operating_profit_to_total_profit", + "source_id": "factor-values" + }, + { + "evidence": "| operating_profit_ttm | 营业利润TTM | 计算过去12个月 营业利润 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_profit_ttm", + "kind": "factor", + "name": "operating_profit_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| operating_revenue_growth_rate | 营业收入增长率 | 营业收入增长率=(今年营业收入(TTM)/去年营业收入(TTM))-1 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_revenue_growth_rate", + "kind": "factor", + "name": "operating_revenue_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| operating_revenue_per_share | 每股营业收入 | 每股营业收入 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_revenue_per_share", + "kind": "factor", + "name": "operating_revenue_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| operating_revenue_per_share_ttm | 每股营业收入TTM | 营业收入(TTM)除以总股本 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_revenue_per_share_ttm", + "kind": "factor", + "name": "operating_revenue_per_share_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| operating_revenue_ttm | 营业收入TTM | 计算过去12个月的 营业收入 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:operating_revenue_ttm", + "kind": "factor", + "name": "operating_revenue_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| operating_tax_to_operating_revenue_ratio_ttm | 销售税金率 | 销售税金率=营业税金及附加(TTM)/营业收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:operating_tax_to_operating_revenue_ratio_ttm", + "kind": "factor", + "name": "operating_tax_to_operating_revenue_ratio_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| price_no_fq | 不复权价格 | 不复权价格 |", + "heading": "因子目录", + "key": "factor-values:factor:price_no_fq", + "kind": "factor", + "name": "price_no_fq", + "source_id": "factor-values" + }, + { + "evidence": "| profit | 盈利能力因子 | 表征公司运营的效率,盈利能力指标的组合 |", + "heading": "因子目录", + "key": "factor-values:factor:profit", + "kind": "factor", + "name": "profit", + "source_id": "factor-values" + }, + { + "evidence": "| profit_margin_ttm | 销售利润率TTM | 营业利润/营业收入 |", + "heading": "因子目录", + "key": "factor-values:factor:profit_margin_ttm", + "kind": "factor", + "name": "profit_margin_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| quick_ratio | 速动比率 | 速动比率=(流动资产合计-存货)/ 流动负债合计 |", + "heading": "因子目录", + "key": "factor-values:factor:quick_ratio", + "kind": "factor", + "name": "quick_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| relative_momentum | 相对动量因子 | 解释与最近(12个月,滞后1个月)股价行为相关的股票回报的常见变化 |", + "heading": "因子目录", + "key": "factor-values:factor:relative_momentum", + "kind": "factor", + "name": "relative_momentum", + "source_id": "factor-values" + }, + { + "evidence": "| residual_volatility | 残差波动率 | 解释了剥离了市场风险后的波动率高低产生的收益率差异 |", + "heading": "因子目录", + "key": "factor-values:factor:residual_volatility", + "kind": "factor", + "name": "residual_volatility", + "source_id": "factor-values" + }, + { + "evidence": "| resvol | 残余波动率因子 | 捕捉股票回报的相对波动性,这种波动性不能用股票对市场回报的敏感性差异来解释(市场波动率因子) |", + "heading": "因子目录", + "key": "factor-values:factor:resvol", + "kind": "factor", + "name": "resvol", + "source_id": "factor-values" + }, + { + "evidence": "| retained_earnings | 留存收益 | 盈余公积金+未分配利润 |", + "heading": "因子目录", + "key": "factor-values:factor:retained_earnings", + "kind": "factor", + "name": "retained_earnings", + "source_id": "factor-values" + }, + { + "evidence": "| retained_earnings_per_share | 每股留存收益 | 每股留存收益 |", + "heading": "因子目录", + "key": "factor-values:factor:retained_earnings_per_share", + "kind": "factor", + "name": "retained_earnings_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| retained_profit_per_share | 每股未分配利润 | 每股未分配利润 |", + "heading": "因子目录", + "key": "factor-values:factor:retained_profit_per_share", + "kind": "factor", + "name": "retained_profit_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| rnoa_ttm | 经营资产回报率TTM | 销售利润率*经营资产周转率 |", + "heading": "因子目录", + "key": "factor-values:factor:rnoa_ttm", + "kind": "factor", + "name": "rnoa_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| roa_ttm | 资产回报率TTM | 资产回报率=净利润(TTM)/期末总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:roa_ttm", + "kind": "factor", + "name": "roa_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| roa_ttm_8y | 长期资产回报率TTM | 8年(1+roa_ttm)的乘积 ^ (1/8) - 1 # 至少要有近4年的数据,否则为 nan |", + "heading": "因子目录", + "key": "factor-values:factor:roa_ttm_8y", + "kind": "factor", + "name": "roa_ttm_8y", + "source_id": "factor-values" + }, + { + "evidence": "| roe_ttm | 权益回报率TTM | 权益回报率=净利润(TTM)/期末股东权益 |", + "heading": "因子目录", + "key": "factor-values:factor:roe_ttm", + "kind": "factor", + "name": "roe_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| roe_ttm_8y | 长期权益回报率TTM | 8年(1+roe_ttm)的累乘 ^ (1/8) - 1 # 至少要有近4年的数据,否则为 nan |", + "heading": "因子目录", + "key": "factor-values:factor:roe_ttm_8y", + "kind": "factor", + "name": "roe_ttm_8y", + "source_id": "factor-values" + }, + { + "evidence": "| roic_ttm | 投资资本回报率TTM | 权益回报率=归属于母公司股东的净利润(TTM)/ 前四个季度投资资本均值; 投资资本=股东权益+负债合计-无息流动负债-无息非流动负债; 无息流动负债=应付账款+预收款项+应付职工薪酬+应交税费+其他应付款+一年内的递延收益+其它流动负债; 无息非流动负债=非流动负债合计-长期借款-应付债券; |", + "heading": "因子目录", + "key": "factor-values:factor:roic_ttm", + "kind": "factor", + "name": "roic_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| sale_expense_to_operating_revenue | 营业费用与营业总收入之比 | 营业费用与营业总收入之比=销售费用(TTM)/营业总收入(TTM) |", + "heading": "因子目录", + "key": "factor-values:factor:sale_expense_to_operating_revenue", + "kind": "factor", + "name": "sale_expense_to_operating_revenue", + "source_id": "factor-values" + }, + { + "evidence": "| sale_expense_ttm | 销售费用TTM | 计算过去12个月 销售费用 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:sale_expense_ttm", + "kind": "factor", + "name": "sale_expense_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| sales_to_price_ratio | 营收市值比 | 1 / ps_ratio (ttm) |", + "heading": "因子目录", + "key": "factor-values:factor:sales_to_price_ratio", + "kind": "factor", + "name": "sales_to_price_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| sharpe_ratio_120 | 120日夏普比率 | (Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差) |", + "heading": "因子目录", + "key": "factor-values:factor:sharpe_ratio_120", + "kind": "factor", + "name": "sharpe_ratio_120", + "source_id": "factor-values" + }, + { + "evidence": "| sharpe_ratio_20 | 20日夏普比率 | (Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差) |", + "heading": "因子目录", + "key": "factor-values:factor:sharpe_ratio_20", + "kind": "factor", + "name": "sharpe_ratio_20", + "source_id": "factor-values" + }, + { + "evidence": "| sharpe_ratio_60 | 60日夏普比率 | (Rp - Rf)/Sigma p 其中,Rp是个股的年化收益率,Rf是无风险利率(在这里设置为0.04),Sigma p是个股的收益波动率(标准差) |", + "heading": "因子目录", + "key": "factor-values:factor:sharpe_ratio_60", + "kind": "factor", + "name": "sharpe_ratio_60", + "source_id": "factor-values" + }, + { + "evidence": "| single_day_VPT | 单日价量趋势 | (今日收盘价 - 昨日收盘价)/ 昨日收盘价 * 当日成交量 # (复权方法为基于当日前复权) |", + "heading": "因子目录", + "key": "factor-values:factor:single_day_VPT", + "kind": "factor", + "name": "single_day_VPT", + "source_id": "factor-values" + }, + { + "evidence": "| single_day_VPT_12 | 单日价量趋势12均值 | MA(single_day_VPT, 12) |", + "heading": "因子目录", + "key": "factor-values:factor:single_day_VPT_12", + "kind": "factor", + "name": "single_day_VPT_12", + "source_id": "factor-values" + }, + { + "evidence": "| single_day_VPT_6 | 单日价量趋势6日均值 | MA(single_day_VPT, 6) |", + "heading": "因子目录", + "key": "factor-values:factor:single_day_VPT_6", + "kind": "factor", + "name": "single_day_VPT_6", + "source_id": "factor-values" + }, + { + "evidence": "| size | 市值 | 捕捉大盘股和小盘股之间的收益差异 |", + "heading": "因子目录", + "key": "factor-values:factor:size", + "kind": "factor", + "name": "size", + "source_id": "factor-values" + }, + { + "evidence": "| super_quick_ratio | 超速动比率 | (货币资金+交易性金融资产+应收票据+应收帐款+其他应收款)/流动负债合计 |", + "heading": "因子目录", + "key": "factor-values:factor:super_quick_ratio", + "kind": "factor", + "name": "super_quick_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| surplus_reserve_fund_per_share | 每股盈余公积金 | 每股盈余公积金 |", + "heading": "因子目录", + "key": "factor-values:factor:surplus_reserve_fund_per_share", + "kind": "factor", + "name": "surplus_reserve_fund_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| total_asset_growth_rate | 总资产增长率 | 总资产 / 总资产_4 -1 |", + "heading": "因子目录", + "key": "factor-values:factor:total_asset_growth_rate", + "kind": "factor", + "name": "total_asset_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| total_asset_turnover_rate | 总资产周转率 | 总资产周转率=营业收入(ttm)/总资产 |", + "heading": "因子目录", + "key": "factor-values:factor:total_asset_turnover_rate", + "kind": "factor", + "name": "total_asset_turnover_rate", + "source_id": "factor-values" + }, + { + "evidence": "| total_operating_cost_ttm | 营业总成本TTM | 计算过去12个月的 营业总成本 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:total_operating_cost_ttm", + "kind": "factor", + "name": "total_operating_cost_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| total_operating_revenue_per_share | 每股营业总收入 | 每股营业总收入 |", + "heading": "因子目录", + "key": "factor-values:factor:total_operating_revenue_per_share", + "kind": "factor", + "name": "total_operating_revenue_per_share", + "source_id": "factor-values" + }, + { + "evidence": "| total_operating_revenue_per_share_ttm | 每股营业总收入TTM | 营业总收入(TTM)除以总股本 |", + "heading": "因子目录", + "key": "factor-values:factor:total_operating_revenue_per_share_ttm", + "kind": "factor", + "name": "total_operating_revenue_per_share_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| total_operating_revenue_ttm | 营业总收入TTM | 计算过去12个月的 营业总收入 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:total_operating_revenue_ttm", + "kind": "factor", + "name": "total_operating_revenue_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| total_profit_growth_rate | 利润总额增长率 | 利润总额增长率=(今年利润总额(TTM)/去年利润总额(TTM))-1 |", + "heading": "因子目录", + "key": "factor-values:factor:total_profit_growth_rate", + "kind": "factor", + "name": "total_profit_growth_rate", + "source_id": "factor-values" + }, + { + "evidence": "| total_profit_to_cost_ratio | 成本费用利润率 | 成本费用利润率=利润总额/(营业成本+财务费用+销售费用+管理费用),以上科目使用的都是TTM的数值 |", + "heading": "因子目录", + "key": "factor-values:factor:total_profit_to_cost_ratio", + "kind": "factor", + "name": "total_profit_to_cost_ratio", + "source_id": "factor-values" + }, + { + "evidence": "| total_profit_ttm | 利润总额TTM | 计算过去12个月 利润总额 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:total_profit_ttm", + "kind": "factor", + "name": "total_profit_ttm", + "source_id": "factor-values" + }, + { + "evidence": "| turnover_volatility | 换手率相对波动率 | 取20个交易日个股换手率的标准差 |", + "heading": "因子目录", + "key": "factor-values:factor:turnover_volatility", + "kind": "factor", + "name": "turnover_volatility", + "source_id": "factor-values" + }, + { + "evidence": "| value_change_profit_ttm | 价值变动净收益TTM | 计算过去12个月 价值变动净收益 之和 |", + "heading": "因子目录", + "key": "factor-values:factor:value_change_profit_ttm", + "kind": "factor", + "name": "value_change_profit_ttm", + "source_id": "factor-values" + }, + { + "evidence": "get_all_factors()", + "heading": "获取所有因子", + "key": "factor-values:function:get_all_factors", + "kind": "function", + "name": "get_all_factors", + "source_id": "factor-values" + }, + { + "evidence": "get_factor_values(securities=['000001.XSHE'], factors=['Skewness60','DEGM','quick_ratio'], start_date='2017-01-01', end_date='2017-03-04')", + "heading": "获取因子值", + "key": "factor-values:function:get_factor_values", + "kind": "function", + "name": "get_factor_values", + "source_id": "factor-values" + }, + { + "evidence": "get_extras('acc_net_value', ['510300.XSHG', '510050.XSHG'], start_date='2015-12-01', end_date='2015-12-03', df=False)", + "heading": "基金累计/单位净值", + "key": "fund:function:get_extras", + "kind": "function", + "name": "get_extras", + "source_id": "fund" + }, + { + "evidence": "get_security_info('159901.XSHE')", + "heading": "获取单支基金数据", + "key": "fund:function:get_security_info", + "kind": "function", + "name": "get_security_info", + "source_id": "fund" + }, + { + "evidence": "get_ticks('510050.XSHG','2019-10-16 15:30:00','2019-10-16 09:00:00')", + "heading": "获取场内基金tick数据", + "key": "fund:function:get_ticks", + "kind": "function", + "name": "get_ticks", + "source_id": "fund" + }, + { + "evidence": "query(finance.FUND_SHARE_DAILY)", + "heading": "场内基金份额数据", + "key": "fund:function:query", + "kind": "function", + "name": "query", + "source_id": "fund" + }, + { + "evidence": "finance.FUND_INVEST_TARGET", + "heading": "获取etf跟踪指数信息", + "key": "fund:table:finance.FUND_INVEST_TARGET", + "kind": "table", + "name": "finance.FUND_INVEST_TARGET", + "source_id": "fund" + }, + { + "evidence": "finance.FUND_SHARE_DAILY", + "heading": "场内基金份额数据", + "key": "fund:table:finance.FUND_SHARE_DAILY", + "kind": "table", + "name": "finance.FUND_SHARE_DAILY", + "source_id": "fund" + }, + { + "evidence": "desc()", + "heading": "获取期货仓单数据", + "key": "future:function:desc", + "kind": "function", + "name": "desc", + "source_id": "future" + }, + { + "evidence": "get_extras('futures_sett_price', ['IF1604.CCFX', 'A9999.XDCE'], start_date='2016-04-06', end_date='2016-04-08',df=False)", + "heading": "期货结算价与持仓量", + "key": "future:function:get_extras", + "kind": "function", + "name": "get_extras", + "source_id": "future" + }, + { + "evidence": "get_price(['IC1505.CCFX', 'IC1506.CCFX'], start_date='2015-05-06', end_date='2015-05-08')", + "heading": "获取期货行情数据", + "key": "future:function:get_price", + "kind": "function", + "name": "get_price", + "source_id": "future" + }, + { + "evidence": "get_security_info('IF1605.CCFX')", + "heading": "获取单只期货信息", + "key": "future:function:get_security_info", + "kind": "function", + "name": "get_security_info", + "source_id": "future" + }, + { + "evidence": "get_ticks('AU1812.XSGE',start_dt='2018-07-02',end_dt='2018-07-03',count=None)", + "heading": "获取期货tick数据", + "key": "future:function:get_ticks", + "kind": "function", + "name": "get_ticks", + "source_id": "future" + }, + { + "evidence": "query(finance.FUT_MARGIN)", + "heading": "获取期货保证金", + "key": "future:function:query", + "kind": "function", + "name": "query", + "source_id": "future" + }, + { + "evidence": "run_query(q)", + "heading": "获取期货仓单数据", + "key": "future:function:run_query", + "kind": "function", + "name": "run_query", + "source_id": "future" + }, + { + "evidence": "finance.FUT_CHARGE", + "heading": "获取期货手续费", + "key": "future:table:finance.FUT_CHARGE", + "kind": "table", + "name": "finance.FUT_CHARGE", + "source_id": "future" + }, + { + "evidence": "finance.FUT_MARGIN", + "heading": "获取期货保证金", + "key": "future:table:finance.FUT_MARGIN", + "kind": "table", + "name": "finance.FUT_MARGIN", + "source_id": "future" + }, + { + "evidence": "finance.FUT_MEMBER_POSITION_RANK", + "heading": "获取期货龙虎榜数据", + "key": "future:table:finance.FUT_MEMBER_POSITION_RANK", + "kind": "table", + "name": "finance.FUT_MEMBER_POSITION_RANK", + "source_id": "future" + }, + { + "evidence": "finance.FUT_WAREHOUSE_RECEIPT", + "heading": "获取期货仓单数据", + "key": "future:table:finance.FUT_WAREHOUSE_RECEIPT", + "kind": "table", + "name": "finance.FUT_WAREHOUSE_RECEIPT", + "source_id": "future" + }, + { + "evidence": "get_current_data(['000001.XSHG'])", + "heading": "当前单位时间的行情数据(策略专用)", + "key": "index:function:get_current_data", + "kind": "function", + "name": "get_current_data", + "source_id": "index" + }, + { + "evidence": "get_index_stocks('000903.XSHG')", + "heading": "历史行情数据", + "key": "index:function:get_index_stocks", + "kind": "function", + "name": "get_index_stocks", + "source_id": "index" + }, + { + "evidence": "get_index_weights(index_id=\"000001.XSHG\", date=\"2018-05-09\")", + "heading": "获取指数成份股权重", + "key": "index:function:get_index_weights", + "kind": "function", + "name": "get_index_weights", + "source_id": "index" + }, + { + "evidence": "get_price('000001.XSHG', start_date='2015-12-01 14:00:00', end_date='2015-12-02 12:00:00', frequency='1m')", + "heading": "历史行情数据", + "key": "index:function:get_price", + "kind": "function", + "name": "get_price", + "source_id": "index" + }, + { + "evidence": "get_security_info('000300.XSHG')", + "heading": "获取单支指数数据", + "key": "index:function:get_security_info", + "kind": "function", + "name": "get_security_info", + "source_id": "index" + }, + { + "evidence": "get_ticks('000001.XSHG',start_dt='2019-11-19 09:00:00',end_dt='2019-11-19 15:05:00')", + "heading": "获取指数tick数据", + "key": "index:function:get_ticks", + "kind": "function", + "name": "get_ticks", + "source_id": "index" + }, + { + "evidence": "handle_data(context, data)", + "heading": "当前单位时间的行情数据(策略专用)", + "key": "index:function:handle_data", + "kind": "function", + "name": "handle_data", + "source_id": "index" + }, + { + "evidence": "alpha_001(code, end_date=None,fq='pre')", + "heading": "聚宽因子库", + "key": "jqdata:factor:alpha_001", + "kind": "factor", + "name": "alpha_001", + "source_id": "jqdata" + }, + { + "evidence": "alpha_002('000001.XSHE','2019-04-24')", + "heading": "聚宽因子库", + "key": "jqdata:factor:alpha_002", + "kind": "factor", + "name": "alpha_002", + "source_id": "jqdata" + }, + { + "evidence": "alpha_007('2014-10-22')", + "heading": "聚宽因子库", + "key": "jqdata:factor:alpha_007", + "kind": "factor", + "name": "alpha_007", + "source_id": "jqdata" + }, + { + "evidence": "BBI(3, 6, 12, 24)", + "heading": "聚宽因子库", + "key": "jqdata:function:BBI", + "kind": "function", + "name": "BBI", + "source_id": "jqdata" + }, + { + "evidence": "DMA(CLOSE,AA)", + "heading": "技术分析指标", + "key": "jqdata:function:DMA", + "kind": "function", + "name": "DMA", + "source_id": "jqdata" + }, + { + "evidence": "EMA(close,13)", + "heading": "聚宽因子库", + "key": "jqdata:function:EMA", + "kind": "function", + "name": "EMA", + "source_id": "jqdata" + }, + { + "evidence": "GDX(security_list, check_date, N=30, M=9)", + "heading": "技术分析指标", + "key": "jqdata:function:GDX", + "kind": "function", + "name": "GDX", + "source_id": "jqdata" + }, + { + "evidence": "MA(CLOSE,N)", + "heading": "技术分析指标", + "key": "jqdata:function:MA", + "kind": "function", + "name": "MA", + "source_id": "jqdata" + }, + { + "evidence": "MACD(SHORT=12, LONG=26, MID=9)", + "heading": "聚宽因子库", + "key": "jqdata:function:MACD", + "kind": "function", + "name": "MACD", + "source_id": "jqdata" + }, + { + "evidence": "MASS(N1=9, N2=25, M=6)", + "heading": "聚宽因子库", + "key": "jqdata:function:MASS", + "kind": "function", + "name": "MASS", + "source_id": "jqdata" + }, + { + "evidence": "auth(username, pwd)", + "heading": "run_query 查询数据库中的数据", + "key": "jqdata:function:auth", + "kind": "function", + "name": "auth", + "source_id": "jqdata" + }, + { + "evidence": "desc()", + "heading": "期权交易统计数据", + "key": "jqdata:function:desc", + "kind": "function", + "name": "desc", + "source_id": "jqdata" + }, + { + "evidence": "get_all_factors()", + "heading": "聚宽因子库", + "key": "jqdata:function:get_all_factors", + "kind": "function", + "name": "get_all_factors", + "source_id": "jqdata" + }, + { + "evidence": "get_all_securities(['conbond'])", + "heading": "可转债概况", + "key": "jqdata:function:get_all_securities", + "kind": "function", + "name": "get_all_securities", + "source_id": "jqdata" + }, + { + "evidence": "get_all_trade_days()", + "heading": "获取交易日历", + "key": "jqdata:function:get_all_trade_days", + "kind": "function", + "name": "get_all_trade_days", + "source_id": "jqdata" + }, + { + "evidence": "get_bars(['10001312.XSHG','10001313.XSHG'],4,'5m',fields=['date','open','high','low','close'],end_dt='2018-12-21 15:00:00')", + "heading": "期权行情数据", + "key": "jqdata:function:get_bars", + "kind": "function", + "name": "get_bars", + "source_id": "jqdata" + }, + { + "evidence": "get_billboard_list(stock_list=None, end_date = '2018-08-01', count =1)", + "heading": "股票交易统计数据", + "key": "jqdata:function:get_billboard_list", + "kind": "function", + "name": "get_billboard_list", + "source_id": "jqdata" + }, + { + "evidence": "get_call_auction(security, start_date, end_date, fields=None)", + "heading": "可转债统计数据", + "key": "jqdata:function:get_call_auction", + "kind": "function", + "name": "get_call_auction", + "source_id": "jqdata" + }, + { + "evidence": "get_concept('000001.XSHE', date='2019-07-15')", + "heading": "行业概念分类", + "key": "jqdata:function:get_concept", + "kind": "function", + "name": "get_concept", + "source_id": "jqdata" + }, + { + "evidence": "get_concept_stocks('SC0084')", + "heading": "行业概念分类", + "key": "jqdata:function:get_concept_stocks", + "kind": "function", + "name": "get_concept_stocks", + "source_id": "jqdata" + }, + { + "evidence": "get_concepts()", + "heading": "行业概念分类", + "key": "jqdata:function:get_concepts", + "kind": "function", + "name": "get_concepts", + "source_id": "jqdata" + }, + { + "evidence": "get_dominant_future('AU','2018-05-06')", + "heading": "期货概况(含新接口)", + "key": "jqdata:function:get_dominant_future", + "kind": "function", + "name": "get_dominant_future", + "source_id": "jqdata" + }, + { + "evidence": "get_extras('adj_net_value','398051.OF')", + "heading": "基金概况", + "key": "jqdata:function:get_extras", + "kind": "function", + "name": "get_extras", + "source_id": "jqdata" + }, + { + "evidence": "get_factor_effect('000300.XSHG','2018-01-01','2019-03-14','1W','operating_revenue_ttm',5)", + "heading": "聚宽因子库", + "key": "jqdata:function:get_factor_effect", + "kind": "function", + "name": "get_factor_effect", + "source_id": "jqdata" + }, + { + "evidence": "get_factor_kanban_values(universe='hs300',bt_cycle='month_3',model='long_only',category=['quality','basics','emotion','growth','risk','pershare'],skip_paused=False,commision_slippage=0)", + "heading": "因子看板数据", + "key": "jqdata:function:get_factor_kanban_values", + "kind": "function", + "name": "get_factor_kanban_values", + "source_id": "jqdata" + }, + { + "evidence": "get_factor_specific_returns(['000001.XSHE','600000.XSHG'],end_date='2022-09-01',count=5)", + "heading": "风格因子归因", + "key": "jqdata:function:get_factor_specific_returns", + "kind": "function", + "name": "get_factor_specific_returns", + "source_id": "jqdata" + }, + { + "evidence": "get_factor_stats(factor_names=['PEG','VSTD20'] , end_date ='2022-09-20',count=5 )", + "heading": "因子看板数据", + "key": "jqdata:function:get_factor_stats", + "kind": "function", + "name": "get_factor_stats", + "source_id": "jqdata" + }, + { + "evidence": "get_factor_style_returns(['size','beta','momentum' ] , end_date='2022-09-01',count=2)", + "heading": "风格因子归因", + "key": "jqdata:function:get_factor_style_returns", + "kind": "function", + "name": "get_factor_style_returns", + "source_id": "jqdata" + }, + { + "evidence": "get_factor_values(securities=['000001.XSHE'], factors=['Skewness60','DEGM','quick_ratio'], start_date='2017-01-01', end_date='2017-03-04')", + "heading": "聚宽因子库", + "key": "jqdata:function:get_factor_values", + "kind": "function", + "name": "get_factor_values", + "source_id": "jqdata" + }, + { + "evidence": "get_fundamentals(q,'2020-10-15')", + "heading": "财务及估值数据", + "key": "jqdata:function:get_fundamentals", + "kind": "function", + "name": "get_fundamentals", + "source_id": "jqdata" + }, + { + "evidence": "get_fundamentals_continuously(q, end_date='2017-12-25', count=5,panel=False)", + "heading": "查询方法(含新接口)", + "key": "jqdata:function:get_fundamentals_continuously", + "kind": "function", + "name": "get_fundamentals_continuously", + "source_id": "jqdata" + }, + { + "evidence": "get_future_contracts('AU','2017-01-05')", + "heading": "期货概况(含新接口)", + "key": "jqdata:function:get_future_contracts", + "kind": "function", + "name": "get_future_contracts", + "source_id": "jqdata" + }, + { + "evidence": "get_futures_info([\"AG2012.XSGE\",'A1609.XDCE' ])", + "heading": "期货概况(含新接口)", + "key": "jqdata:function:get_futures_info", + "kind": "function", + "name": "get_futures_info", + "source_id": "jqdata" + }, + { + "evidence": "get_history_fundamentals(security, fields, watch_date=None, stat_date=None, count=1, interval='1q', stat_by_year=False)", + "heading": "查询方法(含新接口)", + "key": "jqdata:function:get_history_fundamentals", + "kind": "function", + "name": "get_history_fundamentals", + "source_id": "jqdata" + }, + { + "evidence": "get_index_stocks('000300.XSHG')", + "heading": "指数成分股及权重数据", + "key": "jqdata:function:get_index_stocks", + "kind": "function", + "name": "get_index_stocks", + "source_id": "jqdata" + }, + { + "evidence": "get_index_weights(index_id=\"000001.XSHG\", date=\"2018-05-09\")", + "heading": "指数成分股及权重数据", + "key": "jqdata:function:get_index_weights", + "kind": "function", + "name": "get_index_weights", + "source_id": "jqdata" + }, + { + "evidence": "get_industries(name='zjw', date=\"2020-05-07\")", + "heading": "行业概念分类", + "key": "jqdata:function:get_industries", + "kind": "function", + "name": "get_industries", + "source_id": "jqdata" + }, + { + "evidence": "get_industry(security=stock_list, date=\"2018-06-01\")", + "heading": "行业概念分类", + "key": "jqdata:function:get_industry", + "kind": "function", + "name": "get_industry", + "source_id": "jqdata" + }, + { + "evidence": "get_industry_stocks('I64')", + "heading": "行业概念分类", + "key": "jqdata:function:get_industry_stocks", + "kind": "function", + "name": "get_industry_stocks", + "source_id": "jqdata" + }, + { + "evidence": "get_locked_shares(stock_list=['002345.XSHE', '603025.XSHG'], start_date='2020-07-20', forward_count=500)", + "heading": "股票交易统计数据", + "key": "jqdata:function:get_locked_shares", + "kind": "function", + "name": "get_locked_shares", + "source_id": "jqdata" + }, + { + "evidence": "get_margincash_stocks(date='2021-03-02')", + "heading": "基金融资融券", + "key": "jqdata:function:get_margincash_stocks", + "kind": "function", + "name": "get_margincash_stocks", + "source_id": "jqdata" + }, + { + "evidence": "get_marginsec_stocks(date='2021-03-02')", + "heading": "基金融资融券", + "key": "jqdata:function:get_marginsec_stocks", + "kind": "function", + "name": "get_marginsec_stocks", + "source_id": "jqdata" + }, + { + "evidence": "get_money_flow(['000001.XSHE'], '2010-01-01', '2010-01-30', ['date','sec_code','change_pct','net_amount_main','net_pct_main','net_amount_xl','net_pct_xl','net_amount_l','net_pct_l','net_amount_m','net_pct_m','net_amount_s','net_pct_s'])", + "heading": "股票交易统计数据", + "key": "jqdata:function:get_money_flow", + "kind": "function", + "name": "get_money_flow", + "source_id": "jqdata" + }, + { + "evidence": "get_mtss(['510150.XSHG','510230.XSHG','159827.XSHE'],'2021-02-24','2021-02-24',fields=['date','sec_code','fin_value','fin_buy_value','fin_refund_value','sec_value','sec_sell_value','sec_refund_value','fin_sec_value'])", + "heading": "基金融资融券", + "key": "jqdata:function:get_mtss", + "kind": "function", + "name": "get_mtss", + "source_id": "jqdata" + }, + { + "evidence": "get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None)", + "heading": "获取格力转债的日行情", + "key": "jqdata:function:get_price", + "kind": "function", + "name": "get_price", + "source_id": "jqdata" + }, + { + "evidence": "get_query_count()", + "heading": "介绍与说明", + "key": "jqdata:function:get_query_count", + "kind": "function", + "name": "get_query_count", + "source_id": "jqdata" + }, + { + "evidence": "get_security_info('128145.XSHE')", + "heading": "可转债概况", + "key": "jqdata:function:get_security_info", + "kind": "function", + "name": "get_security_info", + "source_id": "jqdata" + }, + { + "evidence": "get_ticks('000001.XSHG','2019-11-19 10:00:00','2019-11-19 10:01:00')", + "heading": "tick数据(机构)", + "key": "jqdata:function:get_ticks", + "kind": "function", + "name": "get_ticks", + "source_id": "jqdata" + }, + { + "evidence": "get_trade_days(start_date=\"2018-02-10\",end_date=\"2018-03-01\")", + "heading": "获取交易日历", + "key": "jqdata:function:get_trade_days", + "kind": "function", + "name": "get_trade_days", + "source_id": "jqdata" + }, + { + "evidence": "get_valuation(['000001.XSHE', '000002.XSHE'], end_date=\"2019-11-18\", count=3, fields=['capitalization', 'market_cap'])", + "heading": "查询方法(含新接口)", + "key": "jqdata:function:get_valuation", + "kind": "function", + "name": "get_valuation", + "source_id": "jqdata" + }, + { + "evidence": "logout()", + "heading": "介绍与说明", + "key": "jqdata:function:logout", + "kind": "function", + "name": "logout", + "source_id": "jqdata" + }, + { + "evidence": "normalize_code(['110043', 'SH110043', '110043SH', '110043.sh', '110043.XSHG'])", + "heading": "可转债概况", + "key": "jqdata:function:normalize_code", + "kind": "function", + "name": "normalize_code", + "source_id": "jqdata" + }, + { + "evidence": "order_by( finance.FUT_MEMBER_POSITION_RANK.rank )", + "heading": "期货交易统计数据", + "key": "jqdata:function:order_by", + "kind": "function", + "name": "order_by", + "source_id": "jqdata" + }, + { + "evidence": "query(finance.CCTV_NEWS)", + "heading": "宏观数据", + "key": "jqdata:function:query", + "kind": "function", + "name": "query", + "source_id": "jqdata" + }, + { + "evidence": "run_query(q)", + "heading": "宏观数据", + "key": "jqdata:function:run_query", + "kind": "function", + "name": "run_query", + "source_id": "jqdata" + }, + { + "evidence": "bond.BOND_BASIC_INFO", + "heading": "债券概况", + "key": "jqdata:table:bond.BOND_BASIC_INFO", + "kind": "table", + "name": "bond.BOND_BASIC_INFO", + "source_id": "jqdata" + }, + { + "evidence": "bond.BOND_COUPON", + "heading": "债券概况", + "key": "jqdata:table:bond.BOND_COUPON", + "kind": "table", + "name": "bond.BOND_COUPON", + "source_id": "jqdata" + }, + { + "evidence": "bond.BOND_INTEREST_PAYMENT", + "heading": "债券概况", + "key": "jqdata:table:bond.BOND_INTEREST_PAYMENT", + "kind": "table", + "name": "bond.BOND_INTEREST_PAYMENT", + "source_id": "jqdata" + }, + { + "evidence": "bond.CONBOND_BASIC_INFO", + "heading": "可转债统计数据", + "key": "jqdata:table:bond.CONBOND_BASIC_INFO", + "kind": "table", + "name": "bond.CONBOND_BASIC_INFO", + "source_id": "jqdata" + }, + { + "evidence": "bond.CONBOND_CONVERT_PRICE_ADJUST", + "heading": "可转债统计数据", + "key": "jqdata:table:bond.CONBOND_CONVERT_PRICE_ADJUST", + "kind": "table", + "name": "bond.CONBOND_CONVERT_PRICE_ADJUST", + "source_id": "jqdata" + }, + { + "evidence": "bond.CONBOND_DAILY_CONVERT", + "heading": "可转债统计数据", + "key": "jqdata:table:bond.CONBOND_DAILY_CONVERT", + "kind": "table", + "name": "bond.CONBOND_DAILY_CONVERT", + "source_id": "jqdata" + }, + { + "evidence": "bond.CONBOND_DAILY_PRICE", + "heading": "获取格力转债的日行情", + "key": "jqdata:table:bond.CONBOND_DAILY_PRICE", + "kind": "table", + "name": "bond.CONBOND_DAILY_PRICE", + "source_id": "jqdata" + }, + { + "evidence": "bond.REPO_DAILY_PRICE", + "heading": "国债逆回购日行情", + "key": "jqdata:table:bond.REPO_DAILY_PRICE", + "kind": "table", + "name": "bond.REPO_DAILY_PRICE", + "source_id": "jqdata" + }, + { + "evidence": "finance.CCTV_NEWS", + "heading": "宏观数据", + "key": "jqdata:table:finance.CCTV_NEWS", + "kind": "table", + "name": "finance.CCTV_NEWS", + "source_id": "jqdata" + }, + { + "evidence": "finance.FINANCE_BALANCE_SHEET", + "heading": "通用财务报表", + "key": "jqdata:table:finance.FINANCE_BALANCE_SHEET", + "kind": "table", + "name": "finance.FINANCE_BALANCE_SHEET", + "source_id": "jqdata" + }, + { + "evidence": "finance.FINANCE_BALANCE_SHEET_PARENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.FINANCE_BALANCE_SHEET_PARENT", + "kind": "table", + "name": "finance.FINANCE_BALANCE_SHEET_PARENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.FINANCE_CASHFLOW_STATEMENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.FINANCE_CASHFLOW_STATEMENT", + "kind": "table", + "name": "finance.FINANCE_CASHFLOW_STATEMENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.FINANCE_CASHFLOW_STATEMENT_PARENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.FINANCE_CASHFLOW_STATEMENT_PARENT", + "kind": "table", + "name": "finance.FINANCE_CASHFLOW_STATEMENT_PARENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.FINANCE_INCOME_STATEMENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.FINANCE_INCOME_STATEMENT", + "kind": "table", + "name": "finance.FINANCE_INCOME_STATEMENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.FINANCE_INCOME_STATEMENT_PARENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.FINANCE_INCOME_STATEMENT_PARENT", + "kind": "table", + "name": "finance.FINANCE_INCOME_STATEMENT_PARENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_DIVIDEND", + "heading": "公募基金数据(净值等)", + "key": "jqdata:table:finance.FUND_DIVIDEND", + "kind": "table", + "name": "finance.FUND_DIVIDEND", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_FIN_INDICATOR", + "heading": "公募基金数据(净值等)", + "key": "jqdata:table:finance.FUND_FIN_INDICATOR", + "kind": "table", + "name": "finance.FUND_FIN_INDICATOR", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_MAIN_INFO", + "heading": "公募基金数据(净值等)", + "key": "jqdata:table:finance.FUND_MAIN_INFO", + "kind": "table", + "name": "finance.FUND_MAIN_INFO", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_MF_DAILY_PROFIT", + "heading": "公募基金数据(净值等)", + "key": "jqdata:table:finance.FUND_MF_DAILY_PROFIT", + "kind": "table", + "name": "finance.FUND_MF_DAILY_PROFIT", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_NET_VALUE", + "heading": "公募基金数据(净值等)", + "key": "jqdata:table:finance.FUND_NET_VALUE", + "kind": "table", + "name": "finance.FUND_NET_VALUE", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_PORTFOLIO", + "heading": "公募基金数据(净值等)", + "key": "jqdata:table:finance.FUND_PORTFOLIO", + "kind": "table", + "name": "finance.FUND_PORTFOLIO", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_PORTFOLIO_BOND", + "heading": "公募基金数据(净值等)", + "key": "jqdata:table:finance.FUND_PORTFOLIO_BOND", + "kind": "table", + "name": "finance.FUND_PORTFOLIO_BOND", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_PORTFOLIO_STOCK", + "heading": "公募基金数据(净值等)", + "key": "jqdata:table:finance.FUND_PORTFOLIO_STOCK", + "kind": "table", + "name": "finance.FUND_PORTFOLIO_STOCK", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUND_SHARE_DAILY", + "heading": "基金概况", + "key": "jqdata:table:finance.FUND_SHARE_DAILY", + "kind": "table", + "name": "finance.FUND_SHARE_DAILY", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUT_GLOBAL_DAILY", + "heading": "期货概况(含新接口)", + "key": "jqdata:table:finance.FUT_GLOBAL_DAILY", + "kind": "table", + "name": "finance.FUT_GLOBAL_DAILY", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUT_MEMBER_POSITION_RANK", + "heading": "期货交易统计数据", + "key": "jqdata:table:finance.FUT_MEMBER_POSITION_RANK", + "kind": "table", + "name": "finance.FUT_MEMBER_POSITION_RANK", + "source_id": "jqdata" + }, + { + "evidence": "finance.FUT_WAREHOUSE_RECEIPT", + "heading": "期货交易统计数据", + "key": "jqdata:table:finance.FUT_WAREHOUSE_RECEIPT", + "kind": "table", + "name": "finance.FUT_WAREHOUSE_RECEIPT", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_AH_PRICE_COMP", + "heading": "市场通数据(含南北向资金数据)", + "key": "jqdata:table:finance.STK_AH_PRICE_COMP", + "kind": "table", + "name": "finance.STK_AH_PRICE_COMP", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_BALANCE_SHEET", + "heading": "通用财务报表", + "key": "jqdata:table:finance.STK_BALANCE_SHEET", + "kind": "table", + "name": "finance.STK_BALANCE_SHEET", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_BALANCE_SHEET_PARENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.STK_BALANCE_SHEET_PARENT", + "kind": "table", + "name": "finance.STK_BALANCE_SHEET_PARENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_CAPITAL_CHANGE", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_CAPITAL_CHANGE", + "kind": "table", + "name": "finance.STK_CAPITAL_CHANGE", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_CASHFLOW_STATEMENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.STK_CASHFLOW_STATEMENT", + "kind": "table", + "name": "finance.STK_CASHFLOW_STATEMENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_CASHFLOW_STATEMENT_PARENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.STK_CASHFLOW_STATEMENT_PARENT", + "kind": "table", + "name": "finance.STK_CASHFLOW_STATEMENT_PARENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_COMPANY_INFO", + "heading": "上市公司概况", + "key": "jqdata:table:finance.STK_COMPANY_INFO", + "kind": "table", + "name": "finance.STK_COMPANY_INFO", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_EL_CONST_CHANGE", + "heading": "市场通数据(含南北向资金数据)", + "key": "jqdata:table:finance.STK_EL_CONST_CHANGE", + "kind": "table", + "name": "finance.STK_EL_CONST_CHANGE", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_EL_TOP_ACTIVATE", + "heading": "市场通数据(含南北向资金数据)", + "key": "jqdata:table:finance.STK_EL_TOP_ACTIVATE", + "kind": "table", + "name": "finance.STK_EL_TOP_ACTIVATE", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_EMPLOYEE_INFO", + "heading": "上市公司概况", + "key": "jqdata:table:finance.STK_EMPLOYEE_INFO", + "kind": "table", + "name": "finance.STK_EMPLOYEE_INFO", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_EXCHANGE_LINK_CALENDAR", + "heading": "市场通数据(含南北向资金数据)", + "key": "jqdata:table:finance.STK_EXCHANGE_LINK_CALENDAR", + "kind": "table", + "name": "finance.STK_EXCHANGE_LINK_CALENDAR", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_EXCHANGE_LINK_RATE", + "heading": "市场通数据(含南北向资金数据)", + "key": "jqdata:table:finance.STK_EXCHANGE_LINK_RATE", + "kind": "table", + "name": "finance.STK_EXCHANGE_LINK_RATE", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_EXCHANGE_TRADE_INFO", + "heading": "股票交易统计数据", + "key": "jqdata:table:finance.STK_EXCHANGE_TRADE_INFO", + "kind": "table", + "name": "finance.STK_EXCHANGE_TRADE_INFO", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_FIN_FORCAST", + "heading": "通用财务报表", + "key": "jqdata:table:finance.STK_FIN_FORCAST", + "kind": "table", + "name": "finance.STK_FIN_FORCAST", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_HK_HOLD_INFO", + "heading": "市场通数据(含南北向资金数据)", + "key": "jqdata:table:finance.STK_HK_HOLD_INFO", + "kind": "table", + "name": "finance.STK_HK_HOLD_INFO", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_HOLDER_NUM", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_HOLDER_NUM", + "kind": "table", + "name": "finance.STK_HOLDER_NUM", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_INCOME_STATEMENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.STK_INCOME_STATEMENT", + "kind": "table", + "name": "finance.STK_INCOME_STATEMENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_INCOME_STATEMENT_PARENT", + "heading": "通用财务报表", + "key": "jqdata:table:finance.STK_INCOME_STATEMENT_PARENT", + "kind": "table", + "name": "finance.STK_INCOME_STATEMENT_PARENT", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_LIMITED_SHARES_LIST", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_LIMITED_SHARES_LIST", + "kind": "table", + "name": "finance.STK_LIMITED_SHARES_LIST", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_LIMITED_SHARES_UNLIMIT", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_LIMITED_SHARES_UNLIMIT", + "kind": "table", + "name": "finance.STK_LIMITED_SHARES_UNLIMIT", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_LIST", + "heading": "上市公司概况", + "key": "jqdata:table:finance.STK_LIST", + "kind": "table", + "name": "finance.STK_LIST", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_MANAGEMENT_INFO", + "heading": "上市公司概况", + "key": "jqdata:table:finance.STK_MANAGEMENT_INFO", + "kind": "table", + "name": "finance.STK_MANAGEMENT_INFO", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_ML_QUOTA", + "heading": "市场通数据(含南北向资金数据)", + "key": "jqdata:table:finance.STK_ML_QUOTA", + "kind": "table", + "name": "finance.STK_ML_QUOTA", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_MT_TOTAL", + "heading": "基金融资融券", + "key": "jqdata:table:finance.STK_MT_TOTAL", + "kind": "table", + "name": "finance.STK_MT_TOTAL", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_NAME_HISTORY", + "heading": "上市公司概况", + "key": "jqdata:table:finance.STK_NAME_HISTORY", + "kind": "table", + "name": "finance.STK_NAME_HISTORY", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_SHAREHOLDERS_SHARE_CHANGE", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_SHAREHOLDERS_SHARE_CHANGE", + "kind": "table", + "name": "finance.STK_SHAREHOLDERS_SHARE_CHANGE", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_SHAREHOLDER_FLOATING_TOP10", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_SHAREHOLDER_FLOATING_TOP10", + "kind": "table", + "name": "finance.STK_SHAREHOLDER_FLOATING_TOP10", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_SHAREHOLDER_TOP10", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_SHAREHOLDER_TOP10", + "kind": "table", + "name": "finance.STK_SHAREHOLDER_TOP10", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_SHARES_FROZEN", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_SHARES_FROZEN", + "kind": "table", + "name": "finance.STK_SHARES_FROZEN", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_SHARES_PLEDGE", + "heading": "上市公司股东和股本信息", + "key": "jqdata:table:finance.STK_SHARES_PLEDGE", + "kind": "table", + "name": "finance.STK_SHARES_PLEDGE", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_STATUS_CHANGE", + "heading": "上市公司概况", + "key": "jqdata:table:finance.STK_STATUS_CHANGE", + "kind": "table", + "name": "finance.STK_STATUS_CHANGE", + "source_id": "jqdata" + }, + { + "evidence": "finance.STK_XR_XD", + "heading": "上市公司概况", + "key": "jqdata:table:finance.STK_XR_XD", + "kind": "table", + "name": "finance.STK_XR_XD", + "source_id": "jqdata" + }, + { + "evidence": "finance.SW1_DAILY_PRICE", + "heading": "申万行业指数数据", + "key": "jqdata:table:finance.SW1_DAILY_PRICE", + "kind": "table", + "name": "finance.SW1_DAILY_PRICE", + "source_id": "jqdata" + }, + { + "evidence": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "heading": "宏观数据", + "key": "jqdata:table:macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "source_id": "jqdata" + }, + { + "evidence": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "heading": "宏观数据", + "key": "jqdata:table:macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "source_id": "jqdata" + }, + { + "evidence": "opt.OPT_ADJUSTMENT", + "heading": "期权概况", + "key": "jqdata:table:opt.OPT_ADJUSTMENT", + "kind": "table", + "name": "opt.OPT_ADJUSTMENT", + "source_id": "jqdata" + }, + { + "evidence": "opt.OPT_CONTRACT_INFO", + "heading": "期权概况", + "key": "jqdata:table:opt.OPT_CONTRACT_INFO", + "kind": "table", + "name": "opt.OPT_CONTRACT_INFO", + "source_id": "jqdata" + }, + { + "evidence": "opt.OPT_DAILY_PREOPEN", + "heading": "期权概况", + "key": "jqdata:table:opt.OPT_DAILY_PREOPEN", + "kind": "table", + "name": "opt.OPT_DAILY_PREOPEN", + "source_id": "jqdata" + }, + { + "evidence": "opt.OPT_DAILY_PRICE", + "heading": "期权行情数据", + "key": "jqdata:table:opt.OPT_DAILY_PRICE", + "kind": "table", + "name": "opt.OPT_DAILY_PRICE", + "source_id": "jqdata" + }, + { + "evidence": "opt.OPT_EXERCISE_INFO", + "heading": "期权交易统计数据", + "key": "jqdata:table:opt.OPT_EXERCISE_INFO", + "kind": "table", + "name": "opt.OPT_EXERCISE_INFO", + "source_id": "jqdata" + }, + { + "evidence": "opt.OPT_RISK_INDICATOR", + "heading": "期权交易统计数据", + "key": "jqdata:table:opt.OPT_RISK_INDICATOR", + "kind": "table", + "name": "opt.OPT_RISK_INDICATOR", + "source_id": "jqdata" + }, + { + "evidence": "opt.OPT_TRADE_RANK_STK", + "heading": "期权交易统计数据", + "key": "jqdata:table:opt.OPT_TRADE_RANK_STK", + "kind": "table", + "name": "opt.OPT_TRADE_RANK_STK", + "source_id": "jqdata" + }, + { + "evidence": "run_query(q)", + "heading": "数据调用方法", + "key": "macro-data:function:run_query", + "kind": "function", + "name": "run_query", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_CONSUME_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_CONSUME_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_CONSUME_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_CPI_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_CPI_MONTH", + "kind": "table", + "name": "macro.MAC_AREA_CPI_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_DIV", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_DIV", + "kind": "table", + "name": "macro.MAC_AREA_DIV", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_FAMILY_HOUSEHOLD", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_FAMILY_HOUSEHOLD", + "kind": "table", + "name": "macro.MAC_AREA_FAMILY_HOUSEHOLD", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_FISCAL_EXPENSE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_FISCAL_EXPENSE_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_FISCAL_EXPENSE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_FISCAL_REVENUE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_FISCAL_REVENUE_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_FISCAL_REVENUE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_FIXED_INVESTMENT", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_FIXED_INVESTMENT", + "kind": "table", + "name": "macro.MAC_AREA_FIXED_INVESTMENT", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_FOREIGN_REGISTER", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_FOREIGN_REGISTER", + "kind": "table", + "name": "macro.MAC_AREA_FOREIGN_REGISTER", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_GDP_EXPEND_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_GDP_EXPEND_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_GDP_EXPEND_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_GDP_INCOME_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_GDP_INCOME_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_GDP_INCOME_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_GDP_QUARTER", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_GDP_QUARTER", + "kind": "table", + "name": "macro.MAC_AREA_GDP_QUARTER", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_GDP_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_GDP_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_GDP_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_GDP_YEAR_IDX", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_GDP_YEAR_IDX", + "kind": "table", + "name": "macro.MAC_AREA_GDP_YEAR_IDX", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_GDP_YEAR_IDX_1978", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_GDP_YEAR_IDX_1978", + "kind": "table", + "name": "macro.MAC_AREA_GDP_YEAR_IDX_1978", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_HOUSEHOLD_REGISTER", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_HOUSEHOLD_REGISTER", + "kind": "table", + "name": "macro.MAC_AREA_HOUSEHOLD_REGISTER", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_HOUSEHOLD_SIZE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_HOUSEHOLD_SIZE", + "kind": "table", + "name": "macro.MAC_AREA_HOUSEHOLD_SIZE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_INDUSTRY_EMPLOY_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_INDUSTRY_EMPLOY_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_INDUSTRY_EMPLOY_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_INDUSTRY_WAGE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_INDUSTRY_WAGE_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_INDUSTRY_WAGE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_POP_DEPENDENCY", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_POP_DEPENDENCY", + "kind": "table", + "name": "macro.MAC_AREA_POP_DEPENDENCY", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_POP_EDUCATION", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_POP_EDUCATION", + "kind": "table", + "name": "macro.MAC_AREA_POP_EDUCATION", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_POP_ILLITERATE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_POP_ILLITERATE", + "kind": "table", + "name": "macro.MAC_AREA_POP_ILLITERATE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_POP_MARITAL", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_POP_MARITAL", + "kind": "table", + "name": "macro.MAC_AREA_POP_MARITAL", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_REGISTERED_WAGE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_REGISTERED_WAGE_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_REGISTERED_WAGE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_RETAIL_SALE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_RETAIL_SALE", + "kind": "table", + "name": "macro.MAC_AREA_RETAIL_SALE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_RURAL_HOUSE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_RURAL_HOUSE_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_RURAL_HOUSE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_RURAL_NET_INCOME_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_RURAL_NET_INCOME_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_RURAL_NET_INCOME_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_SALE_MARKET", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_SALE_MARKET", + "kind": "table", + "name": "macro.MAC_AREA_SALE_MARKET", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_UNEMPLOY", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_UNEMPLOY", + "kind": "table", + "name": "macro.MAC_AREA_UNEMPLOY", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_URBAN_INCOME_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_URBAN_INCOME_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_URBAN_INCOME_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_URBAN_RURAL_EXPENSE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_URBAN_RURAL_EXPENSE_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_URBAN_RURAL_EXPENSE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_AREA_WAGEIDX_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_AREA_WAGEIDX_YEAR", + "kind": "table", + "name": "macro.MAC_AREA_WAGEIDX_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_BOOM_WARNING_IDX", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_BOOM_WARNING_IDX", + "kind": "table", + "name": "macro.MAC_BOOM_WARNING_IDX", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_CONSUMER_BOOM_IDX", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_CONSUMER_BOOM_IDX", + "kind": "table", + "name": "macro.MAC_CONSUMER_BOOM_IDX", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_CPI_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_CPI_MONTH", + "kind": "table", + "name": "macro.MAC_CPI_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_CREDIT_BALANCE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_CREDIT_BALANCE_YEAR", + "kind": "table", + "name": "macro.MAC_CREDIT_BALANCE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_CURRENCY_STATE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_CURRENCY_STATE_YEAR", + "kind": "table", + "name": "macro.MAC_CURRENCY_STATE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_ECONOMIC_BOOM_IDX", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_ECONOMIC_BOOM_IDX", + "kind": "table", + "name": "macro.MAC_ECONOMIC_BOOM_IDX", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_EMPLOY_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_EMPLOY_YEAR", + "kind": "table", + "name": "macro.MAC_EMPLOY_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_ENGEL_COEFFICIENT_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_ENGEL_COEFFICIENT_YEAR", + "kind": "table", + "name": "macro.MAC_ENGEL_COEFFICIENT_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_ENTERPRISE_BOOM_CONFIDENCE_IDX", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_ENTERPRISE_BOOM_CONFIDENCE_IDX", + "kind": "table", + "name": "macro.MAC_ENTERPRISE_BOOM_CONFIDENCE_IDX", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_BALANCE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_BALANCE_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_BALANCE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_CENTRAL_EXPENSE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_CENTRAL_EXPENSE_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_CENTRAL_EXPENSE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_CENTRAL_REVENUE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_CENTRAL_REVENUE_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_CENTRAL_REVENUE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_EXTERNAL_DEBT_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_EXTERNAL_DEBT_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_EXTERNAL_DEBT_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_EXTRAL_BALANCE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_EXTRAL_BALANCE_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_EXTRAL_BALANCE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_EXTRA_REVENUE_EXPENSE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_EXTRA_REVENUE_EXPENSE_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_EXTRA_REVENUE_EXPENSE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_RISK_INDICATOR_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_RISK_INDICATOR_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_RISK_INDICATOR_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_TAX_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_TAX_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_TAX_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FISCAL_TOTAL_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FISCAL_TOTAL_YEAR", + "kind": "table", + "name": "macro.MAC_FISCAL_TOTAL_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FIXED_INVESTMENT", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FIXED_INVESTMENT", + "kind": "table", + "name": "macro.MAC_FIXED_INVESTMENT", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FIXED_INVESTMENT_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FIXED_INVESTMENT_YEAR", + "kind": "table", + "name": "macro.MAC_FIXED_INVESTMENT_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FOREIGN_CAPITAL_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FOREIGN_CAPITAL_MONTH", + "kind": "table", + "name": "macro.MAC_FOREIGN_CAPITAL_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FOREIGN_CAPITAL_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FOREIGN_CAPITAL_YEAR", + "kind": "table", + "name": "macro.MAC_FOREIGN_CAPITAL_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_FOREIGN_COOPERATE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_FOREIGN_COOPERATE_YEAR", + "kind": "table", + "name": "macro.MAC_FOREIGN_COOPERATE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_GOLD_FOREIGN_RESERVE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_GOLD_FOREIGN_RESERVE", + "kind": "table", + "name": "macro.MAC_GOLD_FOREIGN_RESERVE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_AGR_PRODUCT_IDX_QUARTER", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_AGR_PRODUCT_IDX_QUARTER", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AGR_PRODUCT_IDX_QUARTER", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_AREA_ESTATE_BUILD_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_AREA_ESTATE_BUILD_MONTH", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AREA_ESTATE_BUILD_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_AREA_ESTATE_INVEST_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_AREA_ESTATE_INVEST_MONTH", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AREA_ESTATE_INVEST_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_CATEGORY_GROWTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_CATEGORY_GROWTH", + "kind": "table", + "name": "macro.MAC_INDUSTRY_CATEGORY_GROWTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_ESTATE_70CITY_INDEX_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_ESTATE_70CITY_INDEX_MONTH", + "kind": "table", + "name": "macro.MAC_INDUSTRY_ESTATE_70CITY_INDEX_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_ESTATE_FUND_SOURCE_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_ESTATE_FUND_SOURCE_MONTH", + "kind": "table", + "name": "macro.MAC_INDUSTRY_ESTATE_FUND_SOURCE_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_ESTATE_INVEST_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_ESTATE_INVEST_MONTH", + "kind": "table", + "name": "macro.MAC_INDUSTRY_ESTATE_INVEST_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_FIXED_INVEST", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_FIXED_INVEST", + "kind": "table", + "name": "macro.MAC_INDUSTRY_FIXED_INVEST", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_FOREIGN_REGISTER", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_FOREIGN_REGISTER", + "kind": "table", + "name": "macro.MAC_INDUSTRY_FOREIGN_REGISTER", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_GROWTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_GROWTH", + "kind": "table", + "name": "macro.MAC_INDUSTRY_GROWTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_INDICATOR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_INDICATOR", + "kind": "table", + "name": "macro.MAC_INDUSTRY_INDICATOR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_OFDI_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_OFDI_YEAR", + "kind": "table", + "name": "macro.MAC_INDUSTRY_OFDI_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INDUSTRY_WAGE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INDUSTRY_WAGE_YEAR", + "kind": "table", + "name": "macro.MAC_INDUSTRY_WAGE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INSURANCE_AREA_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INSURANCE_AREA_YEAR", + "kind": "table", + "name": "macro.MAC_INSURANCE_AREA_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INSURANCE_ASSETS_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INSURANCE_ASSETS_YEAR", + "kind": "table", + "name": "macro.MAC_INSURANCE_ASSETS_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INSURANCE_PAYMENT_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INSURANCE_PAYMENT_YEAR", + "kind": "table", + "name": "macro.MAC_INSURANCE_PAYMENT_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INSURANCE_PREMIUM_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INSURANCE_PREMIUM_YEAR", + "kind": "table", + "name": "macro.MAC_INSURANCE_PREMIUM_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_INSURANCE_REVENUE_EXPENSE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_INSURANCE_REVENUE_EXPENSE_YEAR", + "kind": "table", + "name": "macro.MAC_INSURANCE_REVENUE_EXPENSE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_LEND_RATE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_LEND_RATE", + "kind": "table", + "name": "macro.MAC_LEND_RATE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_LIFE_EXPECT", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_LIFE_EXPECT", + "kind": "table", + "name": "macro.MAC_LIFE_EXPECT", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_MANUFACTURING_PMI", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_MANUFACTURING_PMI", + "kind": "table", + "name": "macro.MAC_MANUFACTURING_PMI", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_MONEY_SUPPLY_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_MONEY_SUPPLY_MONTH", + "kind": "table", + "name": "macro.MAC_MONEY_SUPPLY_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_MONEY_SUPPLY_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_MONEY_SUPPLY_YEAR", + "kind": "table", + "name": "macro.MAC_MONEY_SUPPLY_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_NATION_COOPERATE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_NATION_COOPERATE_YEAR", + "kind": "table", + "name": "macro.MAC_NATION_COOPERATE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_NATION_OFDI", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_NATION_OFDI", + "kind": "table", + "name": "macro.MAC_NATION_OFDI", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_NONMANUFACTURING_PMI", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_NONMANUFACTURING_PMI", + "kind": "table", + "name": "macro.MAC_NONMANUFACTURING_PMI", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_OTHER_DEPOSIT", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_OTHER_DEPOSIT", + "kind": "table", + "name": "macro.MAC_OTHER_DEPOSIT", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_POPULATION_AGE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_POPULATION_AGE", + "kind": "table", + "name": "macro.MAC_POPULATION_AGE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_POPULATION_DEPENDENCY", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_POPULATION_DEPENDENCY", + "kind": "table", + "name": "macro.MAC_POPULATION_DEPENDENCY", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_POPULATION_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_POPULATION_YEAR", + "kind": "table", + "name": "macro.MAC_POPULATION_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_POP_FERTILITY_RATE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_POP_FERTILITY_RATE", + "kind": "table", + "name": "macro.MAC_POP_FERTILITY_RATE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_REGISTERED_FIXED_INVESTMENT", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_REGISTERED_FIXED_INVESTMENT", + "kind": "table", + "name": "macro.MAC_REGISTERED_FIXED_INVESTMENT", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESIDENT_SAVING_DEPOSIT_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESIDENT_SAVING_DEPOSIT_YEAR", + "kind": "table", + "name": "macro.MAC_RESIDENT_SAVING_DEPOSIT_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_AREA_FOREST", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_AREA_FOREST", + "kind": "table", + "name": "macro.MAC_RESOURCES_AREA_FOREST", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_AREA_WASTE_GAS_EMISSION", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_AREA_WASTE_GAS_EMISSION", + "kind": "table", + "name": "macro.MAC_RESOURCES_AREA_WASTE_GAS_EMISSION", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_AREA_WATER_RESOURCES", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_AREA_WATER_RESOURCES", + "kind": "table", + "name": "macro.MAC_RESOURCES_AREA_WATER_RESOURCES", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_AREA_WATER_SUPPLY_USE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_AREA_WATER_SUPPLY_USE", + "kind": "table", + "name": "macro.MAC_RESOURCES_AREA_WATER_SUPPLY_USE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_ECOLOGICAL_ENVIRONMENT", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_ECOLOGICAL_ENVIRONMENT", + "kind": "table", + "name": "macro.MAC_RESOURCES_ECOLOGICAL_ENVIRONMENT", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_ENVIRONMENT_TREAT_INVEST", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_ENVIRONMENT_TREAT_INVEST", + "kind": "table", + "name": "macro.MAC_RESOURCES_ENVIRONMENT_TREAT_INVEST", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_NATURAL_DISASTER", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_NATURAL_DISASTER", + "kind": "table", + "name": "macro.MAC_RESOURCES_NATURAL_DISASTER", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_WATER_ENVIRONMENT", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_WATER_ENVIRONMENT", + "kind": "table", + "name": "macro.MAC_RESOURCES_WATER_ENVIRONMENT", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_WATER_RESOURCES_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_WATER_RESOURCES_YEAR", + "kind": "table", + "name": "macro.MAC_RESOURCES_WATER_RESOURCES_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RESOURCES_WATER_SUPPLY_USE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RESOURCES_WATER_SUPPLY_USE_YEAR", + "kind": "table", + "name": "macro.MAC_RESOURCES_WATER_SUPPLY_USE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_REVENUE_EXPENSE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_REVENUE_EXPENSE_YEAR", + "kind": "table", + "name": "macro.MAC_REVENUE_EXPENSE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RMB_EXCHANGE_RATE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RMB_EXCHANGE_RATE", + "kind": "table", + "name": "macro.MAC_RMB_EXCHANGE_RATE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_RURAL_NET_INCOME_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_RURAL_NET_INCOME_YEAR", + "kind": "table", + "name": "macro.MAC_RURAL_NET_INCOME_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_SALE_MARKET", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_SALE_MARKET", + "kind": "table", + "name": "macro.MAC_SALE_MARKET", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_SALE_RETAIL_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_SALE_RETAIL_MONTH", + "kind": "table", + "name": "macro.MAC_SALE_RETAIL_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名: MAC_SALE_SCALE_RETAIL_MONTH", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_SALE_SCALE_RETAIL_MONTH", + "kind": "table", + "name": "macro.MAC_SALE_SCALE_RETAIL_MONTH", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_SOCIAL_SCALE_FINANCE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_SOCIAL_SCALE_FINANCE", + "kind": "table", + "name": "macro.MAC_SOCIAL_SCALE_FINANCE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_STATS_REPORT_CALENDAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_STATS_REPORT_CALENDAR", + "kind": "table", + "name": "macro.MAC_STATS_REPORT_CALENDAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_STK_ISSUE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_STK_ISSUE", + "kind": "table", + "name": "macro.MAC_STK_ISSUE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_STK_MARKET", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_STK_MARKET", + "kind": "table", + "name": "macro.MAC_STK_MARKET", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_STK_TRADE", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_STK_TRADE", + "kind": "table", + "name": "macro.MAC_STK_TRADE", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_TRADE_VALUE_DESTINATION_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_TRADE_VALUE_DESTINATION_YEAR", + "kind": "table", + "name": "macro.MAC_TRADE_VALUE_DESTINATION_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_TRADE_VALUE_LOCATION_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_TRADE_VALUE_LOCATION_YEAR", + "kind": "table", + "name": "macro.MAC_TRADE_VALUE_LOCATION_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_TRADE_VALUE_SITC_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_TRADE_VALUE_SITC_YEAR", + "kind": "table", + "name": "macro.MAC_TRADE_VALUE_SITC_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "表名:MAC_TRADE_VALUE_YEAR", + "heading": "宏观数据表", + "key": "macro-data:table:macro.MAC_TRADE_VALUE_YEAR", + "kind": "table", + "name": "macro.MAC_TRADE_VALUE_YEAR", + "source_id": "macro-data" + }, + { + "evidence": "desc()", + "heading": "获取期权行权交收信息", + "key": "option:function:desc", + "kind": "function", + "name": "desc", + "source_id": "option" + }, + { + "evidence": "get_bars('10001313.XSHG',10,'5m',fields=['date','open','high','low','close'],end_dt='2018-12-21 15:00:00')", + "heading": "获取指定时间周期的期权行情(仅本地数据提供)", + "key": "option:function:get_bars", + "kind": "function", + "name": "get_bars", + "source_id": "option" + }, + { + "evidence": "get_price('10001313.XSHG','2018-12-21 09:00:00','2018-12-21 12:00:00','1m')", + "heading": "获取期权分钟行情(仅本地数据提供)", + "key": "option:function:get_price", + "kind": "function", + "name": "get_price", + "source_id": "option" + }, + { + "evidence": "get_ticks('10001313.XSHG',start_dt='2018-12-20 09:00:00',end_dt='2018-12-20 10:00:00', fields=['time', 'current', 'volume', 'a1_p', 'b1_p'])", + "heading": "获取期权的tick行情(仅本地数据提供)", + "key": "option:function:get_ticks", + "kind": "function", + "name": "get_ticks", + "source_id": "option" + }, + { + "evidence": "query(opt.OPT_EXERCISE_INFO)", + "heading": "获取期权行权交收信息", + "key": "option:function:query", + "kind": "function", + "name": "query", + "source_id": "option" + }, + { + "evidence": "run_query(q)", + "heading": "获取期权行权交收信息", + "key": "option:function:run_query", + "kind": "function", + "name": "run_query", + "source_id": "option" + }, + { + "evidence": "opt.OPT_ADJUSTMENT", + "heading": "获取期权合约调整记录", + "key": "option:table:opt.OPT_ADJUSTMENT", + "kind": "table", + "name": "opt.OPT_ADJUSTMENT", + "source_id": "option" + }, + { + "evidence": "opt.OPT_CONTRACT_INFO", + "heading": "获取期权合约资料", + "key": "option:table:opt.OPT_CONTRACT_INFO", + "kind": "table", + "name": "opt.OPT_CONTRACT_INFO", + "source_id": "option" + }, + { + "evidence": "opt.OPT_DAILY_PREOPEN", + "heading": "获取期权每日盘前静态文件", + "key": "option:table:opt.OPT_DAILY_PREOPEN", + "kind": "table", + "name": "opt.OPT_DAILY_PREOPEN", + "source_id": "option" + }, + { + "evidence": "opt.OPT_DAILY_PRICE", + "heading": "获取期权日行情数据", + "key": "option:table:opt.OPT_DAILY_PRICE", + "kind": "table", + "name": "opt.OPT_DAILY_PRICE", + "source_id": "option" + }, + { + "evidence": "opt.OPT_EXERCISE_INFO", + "heading": "获取期权行权交收信息", + "key": "option:table:opt.OPT_EXERCISE_INFO", + "kind": "table", + "name": "opt.OPT_EXERCISE_INFO", + "source_id": "option" + }, + { + "evidence": "opt.OPT_RISK_INDICATOR", + "heading": "获取期权风险指标数据", + "key": "option:table:opt.OPT_RISK_INDICATOR", + "kind": "table", + "name": "opt.OPT_RISK_INDICATOR", + "source_id": "option" + }, + { + "evidence": "opt.OPT_TRADE_RANK_STK", + "heading": "获取ETF期权交易和持仓排名统计", + "key": "option:table:opt.OPT_TRADE_RANK_STK", + "kind": "table", + "name": "opt.OPT_TRADE_RANK_STK", + "source_id": "option" + }, + { + "evidence": "alpha_001(code, end_date=None)", + "heading": "jqlib", + "key": "platform-api:factor:alpha_001", + "kind": "factor", + "name": "alpha_001", + "source_id": "platform-api" + }, + { + "evidence": "alpha_007(code,end_date)", + "heading": "jqlib", + "key": "platform-api:factor:alpha_007", + "kind": "factor", + "name": "alpha_007", + "source_id": "platform-api" + }, + { + "evidence": "AR(Factor)", + "heading": "投资组合优化器", + "key": "platform-api:function:AR", + "kind": "function", + "name": "AR", + "source_id": "platform-api" + }, + { + "evidence": "AnnualProfitConstraint(limit=0.2, count=250)", + "heading": "投资组合优化器", + "key": "platform-api:function:AnnualProfitConstraint", + "kind": "function", + "name": "AnnualProfitConstraint", + "source_id": "platform-api" + }, + { + "evidence": "Bound(0., 1.)", + "heading": "portfolio_optimizer - 投资组合优化", + "key": "platform-api:function:Bound", + "kind": "function", + "name": "Bound", + "source_id": "platform-api" + }, + { + "evidence": "DMA(CLOSE,AA)", + "heading": "jqlib", + "key": "platform-api:function:DMA", + "kind": "function", + "name": "DMA", + "source_id": "platform-api" + }, + { + "evidence": "FixedSlippage(0.02)", + "heading": "策略设置函数", + "key": "platform-api:function:FixedSlippage", + "kind": "function", + "name": "FixedSlippage", + "source_id": "platform-api" + }, + { + "evidence": "GDX(security_list, check_date, N=30, M=9)", + "heading": "jqlib", + "key": "platform-api:function:GDX", + "kind": "function", + "name": "GDX", + "source_id": "platform-api" + }, + { + "evidence": "LimitOrderStyle(3600.0)", + "heading": "**期货信息**", + "key": "platform-api:function:LimitOrderStyle", + "kind": "function", + "name": "LimitOrderStyle", + "source_id": "platform-api" + }, + { + "evidence": "MA(CLOSE,N)", + "heading": "jqlib", + "key": "platform-api:function:MA", + "kind": "function", + "name": "MA", + "source_id": "platform-api" + }, + { + "evidence": "MarketConstraint('etf', low=0.0, high=0.1)", + "heading": "投资组合优化器", + "key": "platform-api:function:MarketConstraint", + "kind": "function", + "name": "MarketConstraint", + "source_id": "platform-api" + }, + { + "evidence": "MarketOrderStyle(200)", + "heading": "交易函数", + "key": "platform-api:function:MarketOrderStyle", + "kind": "function", + "name": "MarketOrderStyle", + "source_id": "platform-api" + }, + { + "evidence": "MaxFactorValue(factor=AR, count=1)", + "heading": "投资组合优化器", + "key": "platform-api:function:MaxFactorValue", + "kind": "function", + "name": "MaxFactorValue", + "source_id": "platform-api" + }, + { + "evidence": "MaxSharpeRatio(rf=0.0,weight_sum_equal=0.5, count=250)", + "heading": "投资组合优化器", + "key": "platform-api:function:MaxSharpeRatio", + "kind": "function", + "name": "MaxSharpeRatio", + "source_id": "platform-api" + }, + { + "evidence": "MinVariance(count=250)", + "heading": "投资组合优化器", + "key": "platform-api:function:MinVariance", + "kind": "function", + "name": "MinVariance", + "source_id": "platform-api" + }, + { + "evidence": "OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5)", + "heading": "交易函数", + "key": "platform-api:function:OrderCost", + "kind": "function", + "name": "OrderCost", + "source_id": "platform-api" + }, + { + "evidence": "OrderStatus(Enum)", + "heading": "交易函数", + "key": "platform-api:function:OrderStatus", + "kind": "function", + "name": "OrderStatus", + "source_id": "platform-api" + }, + { + "evidence": "PerTrade(buy_cost=0.0003, sell_cost=0.0013, min_cost=5)", + "heading": "策略设置函数", + "key": "platform-api:function:PerTrade", + "kind": "function", + "name": "PerTrade", + "source_id": "platform-api" + }, + { + "evidence": "PriceRelatedSlippage(0.00246)", + "heading": "策略设置函数", + "key": "platform-api:function:PriceRelatedSlippage", + "kind": "function", + "name": "PriceRelatedSlippage", + "source_id": "platform-api" + }, + { + "evidence": "RiskParity(count=250, risk_budget=None)", + "heading": "投资组合优化器", + "key": "platform-api:function:RiskParity", + "kind": "function", + "name": "RiskParity", + "source_id": "platform-api" + }, + { + "evidence": "StepRelatedSlippage(2)", + "heading": "策略设置函数", + "key": "platform-api:function:StepRelatedSlippage", + "kind": "function", + "name": "StepRelatedSlippage", + "source_id": "platform-api" + }, + { + "evidence": "StopLimitOrderStyle(mode, stop_price, limit_price)", + "heading": "交易函数", + "key": "platform-api:function:StopLimitOrderStyle", + "kind": "function", + "name": "StopLimitOrderStyle", + "source_id": "platform-api" + }, + { + "evidence": "StopMarketOrderStyle(mode, stop_price)", + "heading": "交易函数", + "key": "platform-api:function:StopMarketOrderStyle", + "kind": "function", + "name": "StopMarketOrderStyle", + "source_id": "platform-api" + }, + { + "evidence": "WeightConstraint(low=default_port_weight_range[0], high=default_port_weight_range[1])", + "heading": "portfolio_optimizer - 投资组合优化", + "key": "platform-api:function:WeightConstraint", + "kind": "function", + "name": "WeightConstraint", + "source_id": "platform-api" + }, + { + "evidence": "after_code_changed(context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:after_code_changed", + "kind": "function", + "name": "after_code_changed", + "source_id": "platform-api" + }, + { + "evidence": "after_market_close(context)", + "heading": "交易函数", + "key": "platform-api:function:after_market_close", + "kind": "function", + "name": "after_market_close", + "source_id": "platform-api" + }, + { + "evidence": "after_trading_end(context)", + "heading": "交易函数", + "key": "platform-api:function:after_trading_end", + "kind": "function", + "name": "after_trading_end", + "source_id": "platform-api" + }, + { + "evidence": "attribute_history(security, 5, '1d', ['close'])", + "heading": "交易函数", + "key": "platform-api:function:attribute_history", + "kind": "function", + "name": "attribute_history", + "source_id": "platform-api" + }, + { + "evidence": "batch_cancel_orders(orders)", + "heading": "交易函数", + "key": "platform-api:function:batch_cancel_orders", + "kind": "function", + "name": "batch_cancel_orders", + "source_id": "platform-api" + }, + { + "evidence": "batch_submit_orders(orders)", + "heading": "交易函数", + "key": "platform-api:function:batch_submit_orders", + "kind": "function", + "name": "batch_submit_orders", + "source_id": "platform-api" + }, + { + "evidence": "before_market_open(context)", + "heading": "交易函数", + "key": "platform-api:function:before_market_open", + "kind": "function", + "name": "before_market_open", + "source_id": "platform-api" + }, + { + "evidence": "before_trading_start(context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:before_trading_start", + "kind": "function", + "name": "before_trading_start", + "source_id": "platform-api" + }, + { + "evidence": "calc(self, data)", + "heading": "投资组合优化器", + "key": "platform-api:function:calc", + "kind": "function", + "name": "calc", + "source_id": "platform-api" + }, + { + "evidence": "cancel_order(_order)", + "heading": "交易函数", + "key": "platform-api:function:cancel_order", + "kind": "function", + "name": "cancel_order", + "source_id": "platform-api" + }, + { + "evidence": "create_backtest(code=code, **params)", + "heading": "交易函数", + "key": "platform-api:function:create_backtest", + "kind": "function", + "name": "create_backtest", + "source_id": "platform-api" + }, + { + "evidence": "daily(context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:daily", + "kind": "function", + "name": "daily", + "source_id": "platform-api" + }, + { + "evidence": "debug(content)", + "heading": "交易函数", + "key": "platform-api:function:debug", + "kind": "function", + "name": "debug", + "source_id": "platform-api" + }, + { + "evidence": "desc()", + "heading": "策略设置函数", + "key": "platform-api:function:desc", + "kind": "function", + "name": "desc", + "source_id": "platform-api" + }, + { + "evidence": "disable_cache()", + "heading": "策略设置函数", + "key": "platform-api:function:disable_cache", + "kind": "function", + "name": "disable_cache", + "source_id": "platform-api" + }, + { + "evidence": "enable_profile()", + "heading": "交易函数", + "key": "platform-api:function:enable_profile", + "kind": "function", + "name": "enable_profile", + "source_id": "platform-api" + }, + { + "evidence": "error(content)", + "heading": "交易函数", + "key": "platform-api:function:error", + "kind": "function", + "name": "error", + "source_id": "platform-api" + }, + { + "evidence": "get_all_factors()", + "heading": "策略设置函数", + "key": "platform-api:function:get_all_factors", + "kind": "function", + "name": "get_all_factors", + "source_id": "platform-api" + }, + { + "evidence": "get_all_securities(['stock'],date=end_date)", + "heading": "jqlib", + "key": "platform-api:function:get_all_securities", + "kind": "function", + "name": "get_all_securities", + "source_id": "platform-api" + }, + { + "evidence": "get_all_trade_days()", + "heading": "策略设置函数", + "key": "platform-api:function:get_all_trade_days", + "kind": "function", + "name": "get_all_trade_days", + "source_id": "platform-api" + }, + { + "evidence": "get_backtest(\"xxxx\")", + "heading": "交易函数", + "key": "platform-api:function:get_backtest", + "kind": "function", + "name": "get_backtest", + "source_id": "platform-api" + }, + { + "evidence": "get_balances()", + "heading": "交易函数", + "key": "platform-api:function:get_balances", + "kind": "function", + "name": "get_balances", + "source_id": "platform-api" + }, + { + "evidence": "get_bars('000001.XSHG', 5, unit='1d',fields=['open','close'],include_now=False)", + "heading": "策略设置函数", + "key": "platform-api:function:get_bars", + "kind": "function", + "name": "get_bars", + "source_id": "platform-api" + }, + { + "evidence": "get_billboard_list(stock_list=None, end_date = context.previous_date, count =1)", + "heading": "策略设置函数", + "key": "platform-api:function:get_billboard_list", + "kind": "function", + "name": "get_billboard_list", + "source_id": "platform-api" + }, + { + "evidence": "get_call_auction('000001.XSHE','2019-08-10','2019-08-20')", + "heading": "策略设置函数", + "key": "platform-api:function:get_call_auction", + "kind": "function", + "name": "get_call_auction", + "source_id": "platform-api" + }, + { + "evidence": "get_concept('000001.XSHE', date='2019-07-15')", + "heading": "策略设置函数", + "key": "platform-api:function:get_concept", + "kind": "function", + "name": "get_concept", + "source_id": "platform-api" + }, + { + "evidence": "get_concept_stocks('SC0084', date='2019-04-16')", + "heading": "策略设置函数", + "key": "platform-api:function:get_concept_stocks", + "kind": "function", + "name": "get_concept_stocks", + "source_id": "platform-api" + }, + { + "evidence": "get_concepts()", + "heading": "策略设置函数", + "key": "platform-api:function:get_concepts", + "kind": "function", + "name": "get_concepts", + "source_id": "platform-api" + }, + { + "evidence": "get_current_data()", + "heading": "策略设置函数", + "key": "platform-api:function:get_current_data", + "kind": "function", + "name": "get_current_data", + "source_id": "platform-api" + }, + { + "evidence": "get_current_tick(['000001.XSHE', '600000.XSHG'])", + "heading": "策略设置函数", + "key": "platform-api:function:get_current_tick", + "kind": "function", + "name": "get_current_tick", + "source_id": "platform-api" + }, + { + "evidence": "get_dominant_future('IF')", + "heading": "**期货信息**", + "key": "platform-api:function:get_dominant_future", + "kind": "function", + "name": "get_dominant_future", + "source_id": "platform-api" + }, + { + "evidence": "get_extras(info, security_list, start_date='2019-05-10', end_date='2019-05-15')", + "heading": "策略设置函数", + "key": "platform-api:function:get_extras", + "kind": "function", + "name": "get_extras", + "source_id": "platform-api" + }, + { + "evidence": "get_factor_kanban_values(universe='hs300',bt_cycle='month_3',model='long_only',category=['quality','basics','emotion','growth','risk','pershare'],skip_paused=False,commision_slippage=0)", + "heading": "策略设置函数", + "key": "platform-api:function:get_factor_kanban_values", + "kind": "function", + "name": "get_factor_kanban_values", + "source_id": "platform-api" + }, + { + "evidence": "get_factor_values(securities=['000001.XSHE'], factors=['Skewness60'], start_date='2017-01-01', end_date='2017-03-04')", + "heading": "策略设置函数", + "key": "platform-api:function:get_factor_values", + "kind": "function", + "name": "get_factor_values", + "source_id": "platform-api" + }, + { + "evidence": "get_fundamentals(q, statDate='2014')", + "heading": "策略设置函数", + "key": "platform-api:function:get_fundamentals", + "kind": "function", + "name": "get_fundamentals", + "source_id": "platform-api" + }, + { + "evidence": "get_fundamentals_continuously(q, end_date='2018-01-01', count=5)", + "heading": "策略设置函数", + "key": "platform-api:function:get_fundamentals_continuously", + "kind": "function", + "name": "get_fundamentals_continuously", + "source_id": "platform-api" + }, + { + "evidence": "get_future_contracts('IF')", + "heading": "**期货信息**", + "key": "platform-api:function:get_future_contracts", + "kind": "function", + "name": "get_future_contracts", + "source_id": "platform-api" + }, + { + "evidence": "get_history_fundamentals(security, fields, watch_date=None, stat_date=None, count=1, interval='1q', stat_by_year=False)", + "heading": "策略设置函数", + "key": "platform-api:function:get_history_fundamentals", + "kind": "function", + "name": "get_history_fundamentals", + "source_id": "platform-api" + }, + { + "evidence": "get_index_stocks('000300.XSHG')", + "heading": "交易函数", + "key": "platform-api:function:get_index_stocks", + "kind": "function", + "name": "get_index_stocks", + "source_id": "platform-api" + }, + { + "evidence": "get_index_weights(index_id=\"000001.XSHG\", date=\"2018-05-09\")", + "heading": "策略设置函数", + "key": "platform-api:function:get_index_weights", + "kind": "function", + "name": "get_index_weights", + "source_id": "platform-api" + }, + { + "evidence": "get_industries(name='zjw', date='2016-01-01')", + "heading": "策略设置函数", + "key": "platform-api:function:get_industries", + "kind": "function", + "name": "get_industries", + "source_id": "platform-api" + }, + { + "evidence": "get_industry(security=['000001.XSHE','000002.XSHE'], date=\"2018-06-01\")", + "heading": "策略设置函数", + "key": "platform-api:function:get_industry", + "kind": "function", + "name": "get_industry", + "source_id": "platform-api" + }, + { + "evidence": "get_industry_stocks('I64')", + "heading": "策略设置函数", + "key": "platform-api:function:get_industry_stocks", + "kind": "function", + "name": "get_industry_stocks", + "source_id": "platform-api" + }, + { + "evidence": "get_margincash_stocks()", + "heading": "**融资融券专用API**", + "key": "platform-api:function:get_margincash_stocks", + "kind": "function", + "name": "get_margincash_stocks", + "source_id": "platform-api" + }, + { + "evidence": "get_marginsec_stocks()", + "heading": "**融资融券专用API**", + "key": "platform-api:function:get_marginsec_stocks", + "kind": "function", + "name": "get_marginsec_stocks", + "source_id": "platform-api" + }, + { + "evidence": "get_money_flow('000001.XSHE', count=20)", + "heading": "策略设置函数", + "key": "platform-api:function:get_money_flow", + "kind": "function", + "name": "get_money_flow", + "source_id": "platform-api" + }, + { + "evidence": "get_mtss('000001.XSHE', count=20)", + "heading": "**融资融券专用API**", + "key": "platform-api:function:get_mtss", + "kind": "function", + "name": "get_mtss", + "source_id": "platform-api" + }, + { + "evidence": "get_open_orders()", + "heading": "交易函数", + "key": "platform-api:function:get_open_orders", + "kind": "function", + "name": "get_open_orders", + "source_id": "platform-api" + }, + { + "evidence": "get_orders()", + "heading": "交易函数", + "key": "platform-api:function:get_orders", + "kind": "function", + "name": "get_orders", + "source_id": "platform-api" + }, + { + "evidence": "get_params()", + "heading": "交易函数", + "key": "platform-api:function:get_params", + "kind": "function", + "name": "get_params", + "source_id": "platform-api" + }, + { + "evidence": "get_period_risks()", + "heading": "交易函数", + "key": "platform-api:function:get_period_risks", + "kind": "function", + "name": "get_period_risks", + "source_id": "platform-api" + }, + { + "evidence": "get_positions()", + "heading": "交易函数", + "key": "platform-api:function:get_positions", + "kind": "function", + "name": "get_positions", + "source_id": "platform-api" + }, + { + "evidence": "get_price('000001.XSHE', start_date='2015-12-01 14:00:00', end_date='2015-12-02 12:00:00', frequency='1m')", + "heading": "策略设置函数", + "key": "platform-api:function:get_price", + "kind": "function", + "name": "get_price", + "source_id": "platform-api" + }, + { + "evidence": "get_records()", + "heading": "交易函数", + "key": "platform-api:function:get_records", + "kind": "function", + "name": "get_records", + "source_id": "platform-api" + }, + { + "evidence": "get_results()", + "heading": "交易函数", + "key": "platform-api:function:get_results", + "kind": "function", + "name": "get_results", + "source_id": "platform-api" + }, + { + "evidence": "get_risk()", + "heading": "交易函数", + "key": "platform-api:function:get_risk", + "kind": "function", + "name": "get_risk", + "source_id": "platform-api" + }, + { + "evidence": "get_security_info('000001.XSHE')", + "heading": "策略设置函数", + "key": "platform-api:function:get_security_info", + "kind": "function", + "name": "get_security_info", + "source_id": "platform-api" + }, + { + "evidence": "get_status()", + "heading": "交易函数", + "key": "platform-api:function:get_status", + "kind": "function", + "name": "get_status", + "source_id": "platform-api" + }, + { + "evidence": "get_ticks('AU1812.XSGE',start_dt='2018-07-02 21:00:00',end_dt='2018-07-03 15:30:00',count=None)", + "heading": "策略设置函数", + "key": "platform-api:function:get_ticks", + "kind": "function", + "name": "get_ticks", + "source_id": "platform-api" + }, + { + "evidence": "get_trade_day([\"RB1901.XSGE\", \"000001.XSHE\"], query_dt=\"2019-01-04 22:00:00\")", + "heading": "策略设置函数", + "key": "platform-api:function:get_trade_day", + "kind": "function", + "name": "get_trade_day", + "source_id": "platform-api" + }, + { + "evidence": "get_trade_days(start_date=None, end_date=None, count=None)", + "heading": "策略设置函数", + "key": "platform-api:function:get_trade_days", + "kind": "function", + "name": "get_trade_days", + "source_id": "platform-api" + }, + { + "evidence": "get_trades()", + "heading": "交易函数", + "key": "platform-api:function:get_trades", + "kind": "function", + "name": "get_trades", + "source_id": "platform-api" + }, + { + "evidence": "get_valuation(['000001.XSHE', '000002.XSHE'], end_date=\"2019-11-18\", count=3, fields=['capitalization', 'market_cap'])", + "heading": "策略设置函数", + "key": "platform-api:function:get_valuation", + "kind": "function", + "name": "get_valuation", + "source_id": "platform-api" + }, + { + "evidence": "handle_data(context, data)", + "heading": "交易函数", + "key": "platform-api:function:handle_data", + "kind": "function", + "name": "handle_data", + "source_id": "platform-api" + }, + { + "evidence": "handle_tick(context, tick)", + "heading": "**Tick级专用API**", + "key": "platform-api:function:handle_tick", + "kind": "function", + "name": "handle_tick", + "source_id": "platform-api" + }, + { + "evidence": "history(10)", + "heading": "交易函数", + "key": "platform-api:function:history", + "kind": "function", + "name": "history", + "source_id": "platform-api" + }, + { + "evidence": "info(tick)", + "heading": "**Tick级专用API**", + "key": "platform-api:function:info", + "kind": "function", + "name": "info", + "source_id": "platform-api" + }, + { + "evidence": "initialize(context)", + "heading": "交易函数", + "key": "platform-api:function:initialize", + "kind": "function", + "name": "initialize", + "source_id": "platform-api" + }, + { + "evidence": "inout_cash(6666, pindex=0)", + "heading": "交易函数", + "key": "platform-api:function:inout_cash", + "kind": "function", + "name": "inout_cash", + "source_id": "platform-api" + }, + { + "evidence": "is_dangerous(0.2)", + "heading": "**期货信息**", + "key": "platform-api:function:is_dangerous", + "kind": "function", + "name": "is_dangerous", + "source_id": "platform-api" + }, + { + "evidence": "margincash_close('000001.XSHE', 1000)", + "heading": "**融资融券专用API**", + "key": "platform-api:function:margincash_close", + "kind": "function", + "name": "margincash_close", + "source_id": "platform-api" + }, + { + "evidence": "margincash_direct_refund(100000)", + "heading": "**融资融券专用API**", + "key": "platform-api:function:margincash_direct_refund", + "kind": "function", + "name": "margincash_direct_refund", + "source_id": "platform-api" + }, + { + "evidence": "margincash_open('000001.XSHE', 1000)", + "heading": "**融资融券专用API**", + "key": "platform-api:function:margincash_open", + "kind": "function", + "name": "margincash_open", + "source_id": "platform-api" + }, + { + "evidence": "marginsec_close('000001.XSHE', 1000)", + "heading": "**融资融券专用API**", + "key": "platform-api:function:marginsec_close", + "kind": "function", + "name": "marginsec_close", + "source_id": "platform-api" + }, + { + "evidence": "marginsec_direct_refund('000001.XSHE', 1000)", + "heading": "**融资融券专用API**", + "key": "platform-api:function:marginsec_direct_refund", + "kind": "function", + "name": "marginsec_direct_refund", + "source_id": "platform-api" + }, + { + "evidence": "marginsec_open('000001.XSHE', 1000)", + "heading": "**融资融券专用API**", + "key": "platform-api:function:marginsec_open", + "kind": "function", + "name": "marginsec_open", + "source_id": "platform-api" + }, + { + "evidence": "market_open(context)", + "heading": "交易函数", + "key": "platform-api:function:market_open", + "kind": "function", + "name": "market_open", + "source_id": "platform-api" + }, + { + "evidence": "mavg(5)", + "heading": "交易函数", + "key": "platform-api:function:mavg", + "kind": "function", + "name": "mavg", + "source_id": "platform-api" + }, + { + "evidence": "monthly(context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:monthly", + "kind": "function", + "name": "monthly", + "source_id": "platform-api" + }, + { + "evidence": "neutralize(data, how=['jq_l1', 'market_cap'], date='2018-05-02', axis=1)", + "heading": "数据处理函数", + "key": "platform-api:function:neutralize", + "kind": "function", + "name": "neutralize", + "source_id": "platform-api" + }, + { + "evidence": "normalize_code(codes )", + "heading": "交易函数", + "key": "platform-api:function:normalize_code", + "kind": "function", + "name": "normalize_code", + "source_id": "platform-api" + }, + { + "evidence": "on_event(context, event)", + "heading": "策略程序架构♠", + "key": "platform-api:function:on_event", + "kind": "function", + "name": "on_event", + "source_id": "platform-api" + }, + { + "evidence": "on_strategy_end(context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:on_strategy_end", + "kind": "function", + "name": "on_strategy_end", + "source_id": "platform-api" + }, + { + "evidence": "on_week_end(context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:on_week_end", + "kind": "function", + "name": "on_week_end", + "source_id": "platform-api" + }, + { + "evidence": "on_week_start(context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:on_week_start", + "kind": "function", + "name": "on_week_start", + "source_id": "platform-api" + }, + { + "evidence": "on_week_start2(self, context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:on_week_start2", + "kind": "function", + "name": "on_week_start2", + "source_id": "platform-api" + }, + { + "evidence": "order('IF1412.CCFX', -1 , side='long', pindex=1)", + "heading": "**期货信息**", + "key": "platform-api:function:order", + "kind": "function", + "name": "order", + "source_id": "platform-api" + }, + { + "evidence": "order_target('IF1412.CCFX', 4 , side='short', pindex=1)", + "heading": "**期货信息**", + "key": "platform-api:function:order_target", + "kind": "function", + "name": "order_target", + "source_id": "platform-api" + }, + { + "evidence": "order_target_value('IF1412.CCFX', 0 , side='long', pindex=1)", + "heading": "**期货信息**", + "key": "platform-api:function:order_target_value", + "kind": "function", + "name": "order_target_value", + "source_id": "platform-api" + }, + { + "evidence": "order_value('IF1412.CCFX', -4000000, side='long', pindex=1)", + "heading": "**期货信息**", + "key": "platform-api:function:order_value", + "kind": "function", + "name": "order_value", + "source_id": "platform-api" + }, + { + "evidence": "process_initialize(context)", + "heading": "交易函数", + "key": "platform-api:function:process_initialize", + "kind": "function", + "name": "process_initialize", + "source_id": "platform-api" + }, + { + "evidence": "query(valuation)", + "heading": "交易函数", + "key": "platform-api:function:query", + "kind": "function", + "name": "query", + "source_id": "platform-api" + }, + { + "evidence": "read_file(\"open.csv\")", + "heading": "交易函数", + "key": "platform-api:function:read_file", + "kind": "function", + "name": "read_file", + "source_id": "platform-api" + }, + { + "evidence": "record(stock_price=data[security].price)", + "heading": "交易函数", + "key": "platform-api:function:record", + "kind": "function", + "name": "record", + "source_id": "platform-api" + }, + { + "evidence": "run_daily(after_market_close, time='15:30', reference_security='000300.XSHG')", + "heading": "交易函数", + "key": "platform-api:function:run_daily", + "kind": "function", + "name": "run_daily", + "source_id": "platform-api" + }, + { + "evidence": "run_monthly(monthly, 1, '09:40')", + "heading": "策略程序架构♠", + "key": "platform-api:function:run_monthly", + "kind": "function", + "name": "run_monthly", + "source_id": "platform-api" + }, + { + "evidence": "run_query(q)", + "heading": "策略设置函数", + "key": "platform-api:function:run_query", + "kind": "function", + "name": "run_query", + "source_id": "platform-api" + }, + { + "evidence": "run_weekly(weekly, -1, '9:00')", + "heading": "策略程序架构♠", + "key": "platform-api:function:run_weekly", + "kind": "function", + "name": "run_weekly", + "source_id": "platform-api" + }, + { + "evidence": "send_message('美好的一天~')", + "heading": "交易函数", + "key": "platform-api:function:send_message", + "kind": "function", + "name": "send_message", + "source_id": "platform-api" + }, + { + "evidence": "set_benchmark('000300.XSHG')", + "heading": "交易函数", + "key": "platform-api:function:set_benchmark", + "kind": "function", + "name": "set_benchmark", + "source_id": "platform-api" + }, + { + "evidence": "set_commission(object)", + "heading": "策略设置函数", + "key": "platform-api:function:set_commission", + "kind": "function", + "name": "set_commission", + "source_id": "platform-api" + }, + { + "evidence": "set_level('order', 'info')", + "heading": "交易函数", + "key": "platform-api:function:set_level", + "kind": "function", + "name": "set_level", + "source_id": "platform-api" + }, + { + "evidence": "set_option('futures_margin_rate.IF', 0.15)", + "heading": "**期货信息**", + "key": "platform-api:function:set_option", + "kind": "function", + "name": "set_option", + "source_id": "platform-api" + }, + { + "evidence": "set_order_cost(cost, type, ref=None)", + "heading": "策略设置函数", + "key": "platform-api:function:set_order_cost", + "kind": "function", + "name": "set_order_cost", + "source_id": "platform-api" + }, + { + "evidence": "set_slippage(object,type=None, ref=None)", + "heading": "策略设置函数", + "key": "platform-api:function:set_slippage", + "kind": "function", + "name": "set_slippage", + "source_id": "platform-api" + }, + { + "evidence": "set_universe([g.security])", + "heading": "交易函数", + "key": "platform-api:function:set_universe", + "kind": "function", + "name": "set_universe", + "source_id": "platform-api" + }, + { + "evidence": "standardlize(data, inf2nan=True, axis=0)", + "heading": "数据处理函数", + "key": "platform-api:function:standardlize", + "kind": "function", + "name": "standardlize", + "source_id": "platform-api" + }, + { + "evidence": "stddev(days)", + "heading": "交易函数", + "key": "platform-api:function:stddev", + "kind": "function", + "name": "stddev", + "source_id": "platform-api" + }, + { + "evidence": "subscribe(security, frequency)", + "heading": "**Tick级专用API**", + "key": "platform-api:function:subscribe", + "kind": "function", + "name": "subscribe", + "source_id": "platform-api" + }, + { + "evidence": "unschedule_all()", + "heading": "策略程序架构♠", + "key": "platform-api:function:unschedule_all", + "kind": "function", + "name": "unschedule_all", + "source_id": "platform-api" + }, + { + "evidence": "unsubscribe(security, frequency)", + "heading": "**Tick级专用API**", + "key": "platform-api:function:unsubscribe", + "kind": "function", + "name": "unsubscribe", + "source_id": "platform-api" + }, + { + "evidence": "unsubscribe_all()", + "heading": "**Tick级专用API**", + "key": "platform-api:function:unsubscribe_all", + "kind": "function", + "name": "unsubscribe_all", + "source_id": "platform-api" + }, + { + "evidence": "vwap(days)", + "heading": "交易函数", + "key": "platform-api:function:vwap", + "kind": "function", + "name": "vwap", + "source_id": "platform-api" + }, + { + "evidence": "warn(content)", + "heading": "交易函数", + "key": "platform-api:function:warn", + "kind": "function", + "name": "warn", + "source_id": "platform-api" + }, + { + "evidence": "weekly(context)", + "heading": "策略程序架构♠", + "key": "platform-api:function:weekly", + "kind": "function", + "name": "weekly", + "source_id": "platform-api" + }, + { + "evidence": "winsorize(data, qrange=[0.05,0.93], inclusive=True, inf2nan=True, axis=1)", + "heading": "数据处理函数", + "key": "platform-api:function:winsorize", + "kind": "function", + "name": "winsorize", + "source_id": "platform-api" + }, + { + "evidence": "winsorize_med(data, scale=1, inclusive=True, inf2nan=True, axis=0)", + "heading": "数据处理函数", + "key": "platform-api:function:winsorize_med", + "kind": "function", + "name": "winsorize_med", + "source_id": "platform-api" + }, + { + "evidence": "write_file(\"test.txt\", \"hello world\")", + "heading": "交易函数", + "key": "platform-api:function:write_file", + "kind": "function", + "name": "write_file", + "source_id": "platform-api" + }, + { + "evidence": "finance.STK_AH_PRICE_COMP", + "heading": "策略设置函数", + "key": "platform-api:table:finance.STK_AH_PRICE_COMP", + "kind": "table", + "name": "finance.STK_AH_PRICE_COMP", + "source_id": "platform-api" + }, + { + "evidence": "finance.STK_SHAREHOLDER_TOP10", + "heading": "策略设置函数", + "key": "platform-api:table:finance.STK_SHAREHOLDER_TOP10", + "kind": "table", + "name": "finance.STK_SHAREHOLDER_TOP10", + "source_id": "platform-api" + }, + { + "evidence": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "heading": "策略设置函数", + "key": "platform-api:table:macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER", + "source_id": "platform-api" + }, + { + "evidence": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "heading": "策略设置函数", + "key": "platform-api:table:macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "kind": "table", + "name": "macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR", + "source_id": "platform-api" + }, + { + "evidence": "desc()", + "heading": "获取单季度/年度财务数据", + "key": "stock:function:desc", + "kind": "function", + "name": "desc", + "source_id": "stock" + }, + { + "evidence": "get_all_securities(date='2015-10-10')", + "heading": "获取所有股票数据", + "key": "stock:function:get_all_securities", + "kind": "function", + "name": "get_all_securities", + "source_id": "stock" + }, + { + "evidence": "get_billboard_list(stock_list=None, end_date = '2018-08-01', count =1)", + "heading": "获取龙虎榜数据", + "key": "stock:function:get_billboard_list", + "kind": "function", + "name": "get_billboard_list", + "source_id": "stock" + }, + { + "evidence": "get_concept_stocks('GN036')", + "heading": "获取行业、概念成份股", + "key": "stock:function:get_concept_stocks", + "kind": "function", + "name": "get_concept_stocks", + "source_id": "stock" + }, + { + "evidence": "get_extras('is_st', ['000001.XSHE', '000018.XSHE'], start_date='2015-12-01', end_date='2015-12-03', df=False)", + "heading": "判断股票是否是ST", + "key": "stock:function:get_extras", + "kind": "function", + "name": "get_extras", + "source_id": "stock" + }, + { + "evidence": "get_fundamentals(q, statDate='2014')", + "heading": "获取单季度/年度财务数据", + "key": "stock:function:get_fundamentals", + "kind": "function", + "name": "get_fundamentals", + "source_id": "stock" + }, + { + "evidence": "get_fundamentals_continuously(q, end_date='2018-01-01', count=5)", + "heading": "获取单季度/年度财务数据", + "key": "stock:function:get_fundamentals_continuously", + "kind": "function", + "name": "get_fundamentals_continuously", + "source_id": "stock" + }, + { + "evidence": "get_history_fundamentals(security, fields, watch_date=None, stat_date=None, count=1, interval='1q', stat_by_year=False)", + "heading": "获取单季度/年度财务数据", + "key": "stock:function:get_history_fundamentals", + "kind": "function", + "name": "get_history_fundamentals", + "source_id": "stock" + }, + { + "evidence": "get_index_stocks('000300.XSHG')", + "heading": "获取指数成份股", + "key": "stock:function:get_index_stocks", + "kind": "function", + "name": "get_index_stocks", + "source_id": "stock" + }, + { + "evidence": "get_industry(security=stock_list, date=\"2018-06-01\")", + "heading": "查询股票所属行业", + "key": "stock:function:get_industry", + "kind": "function", + "name": "get_industry", + "source_id": "stock" + }, + { + "evidence": "get_industry_stocks('I64')", + "heading": "获取行业、概念成份股", + "key": "stock:function:get_industry_stocks", + "kind": "function", + "name": "get_industry_stocks", + "source_id": "stock" + }, + { + "evidence": "get_margincash_stocks(date='2018-07-02')", + "heading": "获取融资标的列表", + "key": "stock:function:get_margincash_stocks", + "kind": "function", + "name": "get_margincash_stocks", + "source_id": "stock" + }, + { + "evidence": "get_marginsec_stocks(date='2018-07-05')", + "heading": "获取融券标的列表", + "key": "stock:function:get_marginsec_stocks", + "kind": "function", + "name": "get_marginsec_stocks", + "source_id": "stock" + }, + { + "evidence": "get_money_flow(['000001.XSHE', '000040.XSHE', '000099.XSHE'], '2016-04-01', '2016-04-01')", + "heading": "获取股票资金流向数据", + "key": "stock:function:get_money_flow", + "kind": "function", + "name": "get_money_flow", + "source_id": "stock" + }, + { + "evidence": "get_mtss(['000001.XSHE', '000002.XSHE', '000099.XSHE'], '2015-03-25', '2016-01-25', fields=[\"date\", \"sec_code\", \"sec_value\", \"fin_buy_value\", \"sec_sell_value\"])", + "heading": "获取股票的融资融券信息", + "key": "stock:function:get_mtss", + "kind": "function", + "name": "get_mtss", + "source_id": "stock" + }, + { + "evidence": "get_security_info('000001.XSHE')", + "heading": "获取单支股票数据", + "key": "stock:function:get_security_info", + "kind": "function", + "name": "get_security_info", + "source_id": "stock" + }, + { + "evidence": "get_valuation(['000001.XSHE', '000002.XSHE'], end_date=\"2019-11-18\", count=3, fields=['capitalization', 'market_cap'])", + "heading": "获取单季度/年度财务数据", + "key": "stock:function:get_valuation", + "kind": "function", + "name": "get_valuation", + "source_id": "stock" + }, + { + "evidence": "info(df['market_cap'][0])", + "heading": "获取单季度/年度财务数据", + "key": "stock:function:info", + "kind": "function", + "name": "info", + "source_id": "stock" + }, + { + "evidence": "order_by(finance.STK_EL_CONST_CHANGE.change_date)", + "heading": "合格证券变动记录", + "key": "stock:function:order_by", + "kind": "function", + "name": "order_by", + "source_id": "stock" + }, + { + "evidence": "query(finance.FINANCE_BALANCE_SHEET_PARENT)", + "heading": "金融类母公司资产负债表", + "key": "stock:function:query", + "kind": "function", + "name": "query", + "source_id": "stock" + }, + { + "evidence": "run_query(q)", + "heading": "金融类母公司资产负债表", + "key": "stock:function:run_query", + "kind": "function", + "name": "run_query", + "source_id": "stock" + }, + { + "evidence": "set_universe(stocks)", + "heading": "获取指数成份股", + "key": "stock:function:set_universe", + "kind": "function", + "name": "set_universe", + "source_id": "stock" + }, + { + "evidence": "finance.FINANCE_BALANCE_SHEET", + "heading": "金融类合并资产负债表", + "key": "stock:table:finance.FINANCE_BALANCE_SHEET", + "kind": "table", + "name": "finance.FINANCE_BALANCE_SHEET", + "source_id": "stock" + }, + { + "evidence": "finance.FINANCE_BALANCE_SHEET_PARENT", + "heading": "金融类母公司资产负债表", + "key": "stock:table:finance.FINANCE_BALANCE_SHEET_PARENT", + "kind": "table", + "name": "finance.FINANCE_BALANCE_SHEET_PARENT", + "source_id": "stock" + }, + { + "evidence": "finance.FINANCE_CASHFLOW_STATEMENT", + "heading": "金融类合并现金流量表2007版", + "key": "stock:table:finance.FINANCE_CASHFLOW_STATEMENT", + "kind": "table", + "name": "finance.FINANCE_CASHFLOW_STATEMENT", + "source_id": "stock" + }, + { + "evidence": "finance.FINANCE_CASHFLOW_STATEMENT_PARENT", + "heading": "金融类母公司现金流量表", + "key": "stock:table:finance.FINANCE_CASHFLOW_STATEMENT_PARENT", + "kind": "table", + "name": "finance.FINANCE_CASHFLOW_STATEMENT_PARENT", + "source_id": "stock" + }, + { + "evidence": "finance.FINANCE_INCOME_STATEMENT", + "heading": "金融类合并利润表2007版", + "key": "stock:table:finance.FINANCE_INCOME_STATEMENT", + "kind": "table", + "name": "finance.FINANCE_INCOME_STATEMENT", + "source_id": "stock" + }, + { + "evidence": "finance.FINANCE_INCOME_STATEMENT_PARENT", + "heading": "金融类母公司利润表", + "key": "stock:table:finance.FINANCE_INCOME_STATEMENT_PARENT", + "kind": "table", + "name": "finance.FINANCE_INCOME_STATEMENT_PARENT", + "source_id": "stock" + }, + { + "evidence": "finance.STK_AUDIT_OPINION", + "heading": "审计意见(新上线数据)", + "key": "stock:table:finance.STK_AUDIT_OPINION", + "kind": "table", + "name": "finance.STK_AUDIT_OPINION", + "source_id": "stock" + }, + { + "evidence": "finance.STK_BALANCE_SHEET", + "heading": "合并资产负债表", + "key": "stock:table:finance.STK_BALANCE_SHEET", + "kind": "table", + "name": "finance.STK_BALANCE_SHEET", + "source_id": "stock" + }, + { + "evidence": "finance.STK_BALANCE_SHEET_PARENT", + "heading": "母公司资产负债表", + "key": "stock:table:finance.STK_BALANCE_SHEET_PARENT", + "kind": "table", + "name": "finance.STK_BALANCE_SHEET_PARENT", + "source_id": "stock" + }, + { + "evidence": "finance.STK_CAPITAL_CHANGE", + "heading": "上市公司股本变动", + "key": "stock:table:finance.STK_CAPITAL_CHANGE", + "kind": "table", + "name": "finance.STK_CAPITAL_CHANGE", + "source_id": "stock" + }, + { + "evidence": "finance.STK_CASHFLOW_STATEMENT", + "heading": "合并现金流量表", + "key": "stock:table:finance.STK_CASHFLOW_STATEMENT", + "kind": "table", + "name": "finance.STK_CASHFLOW_STATEMENT", + "source_id": "stock" + }, + { + "evidence": "finance.STK_CASHFLOW_STATEMENT_PARENT", + "heading": "母公司现金流量表", + "key": "stock:table:finance.STK_CASHFLOW_STATEMENT_PARENT", + "kind": "table", + "name": "finance.STK_CASHFLOW_STATEMENT_PARENT", + "source_id": "stock" + }, + { + "evidence": "finance.STK_COMPANY_INFO", + "heading": "上市公司基本信息", + "key": "stock:table:finance.STK_COMPANY_INFO", + "kind": "table", + "name": "finance.STK_COMPANY_INFO", + "source_id": "stock" + }, + { + "evidence": "finance.STK_EL_CONST_CHANGE", + "heading": "合格证券变动记录", + "key": "stock:table:finance.STK_EL_CONST_CHANGE", + "kind": "table", + "name": "finance.STK_EL_CONST_CHANGE", + "source_id": "stock" + }, + { + "evidence": "finance.STK_EL_TOP_ACTIVATE", + "heading": "市场通十大成交活跃股", + "key": "stock:table:finance.STK_EL_TOP_ACTIVATE", + "kind": "table", + "name": "finance.STK_EL_TOP_ACTIVATE", + "source_id": "stock" + }, + { + "evidence": "finance.STK_EMPLOYEE_INFO", + "heading": "上市公司员工情况", + "key": "stock:table:finance.STK_EMPLOYEE_INFO", + "kind": "table", + "name": "finance.STK_EMPLOYEE_INFO", + "source_id": "stock" + }, + { + "evidence": "finance.STK_EXCHANGE_LINK_CALENDAR", + "heading": "市场通交易日历", + "key": "stock:table:finance.STK_EXCHANGE_LINK_CALENDAR", + "kind": "table", + "name": "finance.STK_EXCHANGE_LINK_CALENDAR", + "source_id": "stock" + }, + { + "evidence": "finance.STK_EXCHANGE_LINK_RATE", + "heading": "市场通汇率", + "key": "stock:table:finance.STK_EXCHANGE_LINK_RATE", + "kind": "table", + "name": "finance.STK_EXCHANGE_LINK_RATE", + "source_id": "stock" + }, + { + "evidence": "finance.STK_EXCHANGE_TRADE_INFO", + "heading": "沪深市场每日成交概况", + "key": "stock:table:finance.STK_EXCHANGE_TRADE_INFO", + "kind": "table", + "name": "finance.STK_EXCHANGE_TRADE_INFO", + "source_id": "stock" + }, + { + "evidence": "finance.STK_FIN_FORCAST", + "heading": "业绩预告", + "key": "stock:table:finance.STK_FIN_FORCAST", + "kind": "table", + "name": "finance.STK_FIN_FORCAST", + "source_id": "stock" + }, + { + "evidence": "finance.STK_HK_HOLD_INFO", + "heading": "沪深港通持股数据", + "key": "stock:table:finance.STK_HK_HOLD_INFO", + "kind": "table", + "name": "finance.STK_HK_HOLD_INFO", + "source_id": "stock" + }, + { + "evidence": "finance.STK_HOLDER_NUM", + "heading": "股东户数", + "key": "stock:table:finance.STK_HOLDER_NUM", + "kind": "table", + "name": "finance.STK_HOLDER_NUM", + "source_id": "stock" + }, + { + "evidence": "finance.STK_INCOME_STATEMENT", + "heading": "合并利润表", + "key": "stock:table:finance.STK_INCOME_STATEMENT", + "kind": "table", + "name": "finance.STK_INCOME_STATEMENT", + "source_id": "stock" + }, + { + "evidence": "finance.STK_INCOME_STATEMENT_PARENT", + "heading": "上市公司母公司利润表", + "key": "stock:table:finance.STK_INCOME_STATEMENT_PARENT", + "kind": "table", + "name": "finance.STK_INCOME_STATEMENT_PARENT", + "source_id": "stock" + }, + { + "evidence": "finance.STK_LIMITED_SHARES_LIST", + "heading": "受限股份上市公告日期", + "key": "stock:table:finance.STK_LIMITED_SHARES_LIST", + "kind": "table", + "name": "finance.STK_LIMITED_SHARES_LIST", + "source_id": "stock" + }, + { + "evidence": "finance.STK_LIMITED_SHARES_UNLIMIT", + "heading": "受限股份实际解禁日期", + "key": "stock:table:finance.STK_LIMITED_SHARES_UNLIMIT", + "kind": "table", + "name": "finance.STK_LIMITED_SHARES_UNLIMIT", + "source_id": "stock" + }, + { + "evidence": "finance.STK_LIST", + "heading": "股票上市信息", + "key": "stock:table:finance.STK_LIST", + "kind": "table", + "name": "finance.STK_LIST", + "source_id": "stock" + }, + { + "evidence": "finance.STK_ML_QUOTA", + "heading": "市场通成交与额度信息", + "key": "stock:table:finance.STK_ML_QUOTA", + "kind": "table", + "name": "finance.STK_ML_QUOTA", + "source_id": "stock" + }, + { + "evidence": "finance.STK_MT_TOTAL", + "heading": "获取融资融券汇总数据", + "key": "stock:table:finance.STK_MT_TOTAL", + "kind": "table", + "name": "finance.STK_MT_TOTAL", + "source_id": "stock" + }, + { + "evidence": "finance.STK_NAME_HISTORY", + "heading": "股票简称变更情况", + "key": "stock:table:finance.STK_NAME_HISTORY", + "kind": "table", + "name": "finance.STK_NAME_HISTORY", + "source_id": "stock" + }, + { + "evidence": "finance.STK_PERFORMANCE_LETTERS", + "heading": "业绩快报(新上线数据)", + "key": "stock:table:finance.STK_PERFORMANCE_LETTERS", + "kind": "table", + "name": "finance.STK_PERFORMANCE_LETTERS", + "source_id": "stock" + }, + { + "evidence": "finance.STK_REPORT_DISCLOSURE", + "heading": "定期报告预约披露时间表(新上线数据)", + "key": "stock:table:finance.STK_REPORT_DISCLOSURE", + "kind": "table", + "name": "finance.STK_REPORT_DISCLOSURE", + "source_id": "stock" + }, + { + "evidence": "finance.STK_SHAREHOLDERS_SHARE_CHANGE", + "heading": "大股东增减持", + "key": "stock:table:finance.STK_SHAREHOLDERS_SHARE_CHANGE", + "kind": "table", + "name": "finance.STK_SHAREHOLDERS_SHARE_CHANGE", + "source_id": "stock" + }, + { + "evidence": "finance.STK_SHAREHOLDER_FLOATING_TOP10", + "heading": "十大流通股东", + "key": "stock:table:finance.STK_SHAREHOLDER_FLOATING_TOP10", + "kind": "table", + "name": "finance.STK_SHAREHOLDER_FLOATING_TOP10", + "source_id": "stock" + }, + { + "evidence": "finance.STK_SHAREHOLDER_TOP10", + "heading": "十大股东", + "key": "stock:table:finance.STK_SHAREHOLDER_TOP10", + "kind": "table", + "name": "finance.STK_SHAREHOLDER_TOP10", + "source_id": "stock" + }, + { + "evidence": "finance.STK_SHARES_FROZEN", + "heading": "股东股份冻结", + "key": "stock:table:finance.STK_SHARES_FROZEN", + "kind": "table", + "name": "finance.STK_SHARES_FROZEN", + "source_id": "stock" + }, + { + "evidence": "finance.STK_SHARES_PLEDGE", + "heading": "股东股份质押", + "key": "stock:table:finance.STK_SHARES_PLEDGE", + "kind": "table", + "name": "finance.STK_SHARES_PLEDGE", + "source_id": "stock" + }, + { + "evidence": "finance.STK_STATUS_CHANGE", + "heading": "上市公司状态变动", + "key": "stock:table:finance.STK_STATUS_CHANGE", + "kind": "table", + "name": "finance.STK_STATUS_CHANGE", + "source_id": "stock" + }, + { + "evidence": "finance.STK_XR_XD", + "heading": "上市公司分红送股(除权除息)数据", + "key": "stock:table:finance.STK_XR_XD", + "kind": "table", + "name": "finance.STK_XR_XD", + "source_id": "stock" + }, + { + "evidence": "ACCER-幅度涨速", + "heading": "ACCER-幅度涨速", + "key": "technical-analysis:factor:ACCER", + "kind": "factor", + "name": "ACCER", + "source_id": "technical-analysis" + }, + { + "evidence": "ADTM-动态买卖气指标", + "heading": "ADTM-动态买卖气指标", + "key": "technical-analysis:factor:ADTM", + "kind": "factor", + "name": "ADTM", + "source_id": "technical-analysis" + }, + { + "evidence": "ALLIGAT-鳄鱼线", + "heading": "ALLIGAT-鳄鱼线", + "key": "technical-analysis:factor:ALLIGAT", + "kind": "factor", + "name": "ALLIGAT", + "source_id": "technical-analysis" + }, + { + "evidence": "AMO-成交金额", + "heading": "AMO-成交金额", + "key": "technical-analysis:factor:AMO", + "kind": "factor", + "name": "AMO", + "source_id": "technical-analysis" + }, + { + "evidence": "AMV-成本价均线", + "heading": "AMV-成本价均线", + "key": "technical-analysis:factor:AMV", + "kind": "factor", + "name": "AMV", + "source_id": "technical-analysis" + }, + { + "evidence": "AROON-阿隆指标", + "heading": "AROON-阿隆指标", + "key": "technical-analysis:factor:AROON", + "kind": "factor", + "name": "AROON", + "source_id": "technical-analysis" + }, + { + "evidence": "ATR-真实波幅", + "heading": "ATR-真实波幅", + "key": "technical-analysis:factor:ATR", + "kind": "factor", + "name": "ATR", + "source_id": "technical-analysis" + }, + { + "evidence": "BBI-多空均线", + "heading": "BBI-多空均线", + "key": "technical-analysis:factor:BBI", + "kind": "factor", + "name": "BBI", + "source_id": "technical-analysis" + }, + { + "evidence": "BBIBOLL-多空布林线", + "heading": "BBIBOLL-多空布林线", + "key": "technical-analysis:factor:BBIBOLL", + "kind": "factor", + "name": "BBIBOLL", + "source_id": "technical-analysis" + }, + { + "evidence": "BDZX-波段之星", + "heading": "BDZX-波段之星", + "key": "technical-analysis:factor:BDZX", + "kind": "factor", + "name": "BDZX", + "source_id": "technical-analysis" + }, + { + "evidence": "BIAS-乖离率", + "heading": "BIAS-乖离率", + "key": "technical-analysis:factor:BIAS", + "kind": "factor", + "name": "BIAS", + "source_id": "technical-analysis" + }, + { + "evidence": "BIAS_36-三六乖离", + "heading": "BIAS_36-三六乖离", + "key": "technical-analysis:factor:BIAS_36", + "kind": "factor", + "name": "BIAS_36", + "source_id": "technical-analysis" + }, + { + "evidence": "BIAS_QL-乖离率_传统版", + "heading": "BIAS_QL-乖离率_传统版", + "key": "technical-analysis:factor:BIAS_QL", + "kind": "factor", + "name": "BIAS_QL", + "source_id": "technical-analysis" + }, + { + "evidence": "BRAR-情绪指标", + "heading": "BRAR-情绪指标", + "key": "technical-analysis:factor:BRAR", + "kind": "factor", + "name": "BRAR", + "source_id": "technical-analysis" + }, + { + "evidence": "BOLL-布林线", + "heading": "BOLL-布林线", + "key": "technical-analysis:factor:Bollinger_Bands", + "kind": "factor", + "name": "Bollinger_Bands", + "source_id": "technical-analysis" + }, + { + "evidence": "CCI-商品路径指标", + "heading": "CCI-商品路径指标", + "key": "technical-analysis:factor:CCI", + "kind": "factor", + "name": "CCI", + "source_id": "technical-analysis" + }, + { + "evidence": "CCL-持仓量(适用期货期权)", + "heading": "CCL-持仓量(适用期货期权)", + "key": "technical-analysis:factor:CCL", + "kind": "factor", + "name": "CCL", + "source_id": "technical-analysis" + }, + { + "evidence": "CDP-STD-逆势操作", + "heading": "CDP-STD-逆势操作", + "key": "technical-analysis:factor:CDP_STD", + "kind": "factor", + "name": "CDP_STD", + "source_id": "technical-analysis" + }, + { + "evidence": "CFJT-财富阶梯", + "heading": "CFJT-财富阶梯", + "key": "technical-analysis:factor:CFJT", + "kind": "factor", + "name": "CFJT", + "source_id": "technical-analysis" + }, + { + "evidence": "CHO-佳庆指标", + "heading": "CHO-佳庆指标", + "key": "technical-analysis:factor:CHO", + "kind": "factor", + "name": "CHO", + "source_id": "technical-analysis" + }, + { + "evidence": "CJDX-超级短线", + "heading": "CJDX-超级短线", + "key": "technical-analysis:factor:CJDX", + "kind": "factor", + "name": "CJDX", + "source_id": "technical-analysis" + }, + { + "evidence": "CR-带状能量线", + "heading": "CR-带状能量线", + "key": "technical-analysis:factor:CR", + "kind": "factor", + "name": "CR", + "source_id": "technical-analysis" + }, + { + "evidence": "CYE-市场趋势", + "heading": "CYE-市场趋势", + "key": "technical-analysis:factor:CYE", + "kind": "factor", + "name": "CYE", + "source_id": "technical-analysis" + }, + { + "evidence": "CYF-市场能量", + "heading": "CYF-市场能量", + "key": "technical-analysis:factor:CYF", + "kind": "factor", + "name": "CYF", + "source_id": "technical-analysis" + }, + { + "evidence": "CYHT-财运亨通", + "heading": "CYHT-财运亨通", + "key": "technical-analysis:factor:CYHT", + "kind": "factor", + "name": "CYHT", + "source_id": "technical-analysis" + }, + { + "evidence": "CYR-市场强弱", + "heading": "CYR-市场强弱", + "key": "technical-analysis:factor:CYR", + "kind": "factor", + "name": "CYR", + "source_id": "technical-analysis" + }, + { + "evidence": "CYS-市场盈亏", + "heading": "CYS-市场盈亏", + "key": "technical-analysis:factor:CYS", + "kind": "factor", + "name": "CYS", + "source_id": "technical-analysis" + }, + { + "evidence": "CYW-主力控盘", + "heading": "CYW-主力控盘", + "key": "technical-analysis:factor:CYW", + "kind": "factor", + "name": "CYW", + "source_id": "technical-analysis" + }, + { + "evidence": "DBLB-对比量比", + "heading": "DBLB-对比量比", + "key": "technical-analysis:factor:DBLB", + "kind": "factor", + "name": "DBLB", + "source_id": "technical-analysis" + }, + { + "evidence": "DBQR-对比强弱", + "heading": "DBQR-对比强弱", + "key": "technical-analysis:factor:DBQR", + "kind": "factor", + "name": "DBQR", + "source_id": "technical-analysis" + }, + { + "evidence": "DBQRV-对比强弱量", + "heading": "DBQRV-对比强弱量", + "key": "technical-analysis:factor:DBQRV", + "kind": "factor", + "name": "DBQRV", + "source_id": "technical-analysis" + }, + { + "evidence": "DKX-多空线", + "heading": "DKX-多空线", + "key": "technical-analysis:factor:DKX", + "kind": "factor", + "name": "DKX", + "source_id": "technical-analysis" + }, + { + "evidence": "DMA-平均差", + "heading": "DMA-平均差", + "key": "technical-analysis:factor:DMA", + "kind": "factor", + "name": "DMA", + "source_id": "technical-analysis" + }, + { + "evidence": "DMI - 趋向指标", + "heading": "DMI - 趋向指标", + "key": "technical-analysis:factor:DMI", + "kind": "factor", + "name": "DMI", + "source_id": "technical-analysis" + }, + { + "evidence": "DPO-区间震荡线", + "heading": "DPO-区间震荡线", + "key": "technical-analysis:factor:DPO", + "kind": "factor", + "name": "DPO", + "source_id": "technical-analysis" + }, + { + "evidence": "EMA-指数移动平均", + "heading": "EMA-指数移动平均", + "key": "technical-analysis:factor:EMA", + "kind": "factor", + "name": "EMA", + "source_id": "technical-analysis" + }, + { + "evidence": "EMV-简易波动指标", + "heading": "EMV-简易波动指标", + "key": "technical-analysis:factor:EMV", + "kind": "factor", + "name": "EMV", + "source_id": "technical-analysis" + }, + { + "evidence": "ENE-轨道线", + "heading": "ENE-轨道线", + "key": "technical-analysis:factor:ENE", + "kind": "factor", + "name": "ENE", + "source_id": "technical-analysis" + }, + { + "evidence": "EXPMA-指数平均线", + "heading": "EXPMA-指数平均线", + "key": "technical-analysis:factor:EXPMA", + "kind": "factor", + "name": "EXPMA", + "source_id": "technical-analysis" + }, + { + "evidence": "FSL-分水岭", + "heading": "FSL-分水岭", + "key": "technical-analysis:factor:FSL", + "kind": "factor", + "name": "FSL", + "source_id": "technical-analysis" + }, + { + "evidence": "GDX-鬼道线", + "heading": "GDX-鬼道线", + "key": "technical-analysis:factor:GDX", + "kind": "factor", + "name": "GDX", + "source_id": "technical-analysis" + }, + { + "evidence": "HMA-高价平均线", + "heading": "HMA-高价平均线", + "key": "technical-analysis:factor:HMA", + "kind": "factor", + "name": "HMA", + "source_id": "technical-analysis" + }, + { + "evidence": "HSL-换手线", + "heading": "HSL-换手线", + "key": "technical-analysis:factor:HSL", + "kind": "factor", + "name": "HSL", + "source_id": "technical-analysis" + }, + { + "evidence": "JAX-济安线", + "heading": "JAX-济安线", + "key": "technical-analysis:factor:JAX", + "kind": "factor", + "name": "JAX", + "source_id": "technical-analysis" + }, + { + "evidence": "JFZX-飓风智能中线", + "heading": "JFZX-飓风智能中线", + "key": "technical-analysis:factor:JFZX", + "kind": "factor", + "name": "JFZX", + "source_id": "technical-analysis" + }, + { + "evidence": "JLHB-绝路航标", + "heading": "JLHB-绝路航标", + "key": "technical-analysis:factor:JLHB", + "kind": "factor", + "name": "JLHB", + "source_id": "technical-analysis" + }, + { + "evidence": "JS-加速线", + "heading": "JS-加速线", + "key": "technical-analysis:factor:JS", + "kind": "factor", + "name": "JS", + "source_id": "technical-analysis" + }, + { + "evidence": "JYJL-交易参考均量", + "heading": "JYJL-交易参考均量", + "key": "technical-analysis:factor:JYJL", + "kind": "factor", + "name": "JYJL", + "source_id": "technical-analysis" + }, + { + "evidence": "KD-随机指标KD", + "heading": "KD-随机指标KD", + "key": "technical-analysis:factor:KD", + "kind": "factor", + "name": "KD", + "source_id": "technical-analysis" + }, + { + "evidence": "KDJ-随机指标", + "heading": "KDJ-随机指标", + "key": "technical-analysis:factor:KDJ", + "kind": "factor", + "name": "KDJ", + "source_id": "technical-analysis" + }, + { + "evidence": "LB-量比", + "heading": "LB-量比", + "key": "technical-analysis:factor:LB", + "kind": "factor", + "name": "LB", + "source_id": "technical-analysis" + }, + { + "evidence": "LHXJ-猎狐先觉", + "heading": "LHXJ-猎狐先觉", + "key": "technical-analysis:factor:LHXJ", + "kind": "factor", + "name": "LHXJ", + "source_id": "technical-analysis" + }, + { + "evidence": "LMA-低价平均线", + "heading": "LMA-低价平均线", + "key": "technical-analysis:factor:LMA", + "kind": "factor", + "name": "LMA", + "source_id": "technical-analysis" + }, + { + "evidence": "LWR-LWR威廉指标", + "heading": "LWR-LWR威廉指标", + "key": "technical-analysis:factor:LWR", + "kind": "factor", + "name": "LWR", + "source_id": "technical-analysis" + }, + { + "evidence": "LYJH-猎鹰歼狐", + "heading": "LYJH-猎鹰歼狐", + "key": "technical-analysis:factor:LYJH", + "kind": "factor", + "name": "LYJH", + "source_id": "technical-analysis" + }, + { + "evidence": "MA-均线", + "heading": "MA-均线", + "key": "technical-analysis:factor:MA", + "kind": "factor", + "name": "MA", + "source_id": "technical-analysis" + }, + { + "evidence": "MACD-平滑异同平均", + "heading": "MACD-平滑异同平均", + "key": "technical-analysis:factor:MACD", + "kind": "factor", + "name": "MACD", + "source_id": "technical-analysis" + }, + { + "evidence": "MARSI-相对强弱平均线", + "heading": "MARSI-相对强弱平均线", + "key": "technical-analysis:factor:MARSI", + "kind": "factor", + "name": "MARSI", + "source_id": "technical-analysis" + }, + { + "evidence": "MASS-梅斯线", + "heading": "MASS-梅斯线", + "key": "technical-analysis:factor:MASS", + "kind": "factor", + "name": "MASS", + "source_id": "technical-analysis" + }, + { + "evidence": "MFI-资金流量指标", + "heading": "MFI-资金流量指标", + "key": "technical-analysis:factor:MFI", + "kind": "factor", + "name": "MFI", + "source_id": "technical-analysis" + }, + { + "evidence": "MIKE-麦克支撑压力", + "heading": "MIKE-麦克支撑压力", + "key": "technical-analysis:factor:MIKE", + "kind": "factor", + "name": "MIKE", + "source_id": "technical-analysis" + }, + { + "evidence": "MTM-动量线", + "heading": "MTM-动量线", + "key": "technical-analysis:factor:MTM", + "kind": "factor", + "name": "MTM", + "source_id": "technical-analysis" + }, + { + "evidence": "OBV-累积能量线", + "heading": "OBV-累积能量线", + "key": "technical-analysis:factor:OBV", + "kind": "factor", + "name": "OBV", + "source_id": "technical-analysis" + }, + { + "evidence": "OSC-变动速率线", + "heading": "OSC-变动速率线", + "key": "technical-analysis:factor:OSC", + "kind": "factor", + "name": "OSC", + "source_id": "technical-analysis" + }, + { + "evidence": "PBX-瀑布线", + "heading": "PBX-瀑布线", + "key": "technical-analysis:factor:PBX", + "kind": "factor", + "name": "PBX", + "source_id": "technical-analysis" + }, + { + "evidence": "PCNT-幅度比", + "heading": "PCNT-幅度比", + "key": "technical-analysis:factor:PCNT", + "kind": "factor", + "name": "PCNT", + "source_id": "technical-analysis" + }, + { + "evidence": "PSY-心理线", + "heading": "PSY-心理线", + "key": "technical-analysis:factor:PSY", + "kind": "factor", + "name": "PSY", + "source_id": "technical-analysis" + }, + { + "evidence": "PUCU-逆时钟曲线", + "heading": "PUCU-逆时钟曲线", + "key": "technical-analysis:factor:PUCU", + "kind": "factor", + "name": "PUCU", + "source_id": "technical-analysis" + }, + { + "evidence": "QACD-快速异同平均", + "heading": "QACD-快速异同平均", + "key": "technical-analysis:factor:QACD", + "kind": "factor", + "name": "QACD", + "source_id": "technical-analysis" + }, + { + "evidence": "QR-强弱指标", + "heading": "QR-强弱指标", + "key": "technical-analysis:factor:QR", + "kind": "factor", + "name": "QR", + "source_id": "technical-analysis" + }, + { + "evidence": "RAD-威力雷达", + "heading": "RAD-威力雷达", + "key": "technical-analysis:factor:RAD", + "kind": "factor", + "name": "RAD", + "source_id": "technical-analysis" + }, + { + "evidence": "ROC-变动率指标", + "heading": "ROC-变动率指标", + "key": "technical-analysis:factor:ROC", + "kind": "factor", + "name": "ROC", + "source_id": "technical-analysis" + }, + { + "evidence": "RSI-相对强弱指标", + "heading": "RSI-相对强弱指标", + "key": "technical-analysis:factor:RSI", + "kind": "factor", + "name": "RSI", + "source_id": "technical-analysis" + }, + { + "evidence": "SG-LB-量比", + "heading": "SG-LB-量比", + "key": "technical-analysis:factor:SG_LB", + "kind": "factor", + "name": "SG_LB", + "source_id": "technical-analysis" + }, + { + "evidence": "SG-PF-强势股评分", + "heading": "SG-PF-强势股评分", + "key": "technical-analysis:factor:SG_PF", + "kind": "factor", + "name": "SG_PF", + "source_id": "technical-analysis" + }, + { + "evidence": "SG-SMX-生命线", + "heading": "SG-SMX-生命线", + "key": "technical-analysis:factor:SG_SMX", + "kind": "factor", + "name": "SG_SMX", + "source_id": "technical-analysis" + }, + { + "evidence": "SHT-龙系短线", + "heading": "SHT-龙系短线", + "key": "technical-analysis:factor:SHT", + "kind": "factor", + "name": "SHT", + "source_id": "technical-analysis" + }, + { + "evidence": "SKDJ-慢速随机指标", + "heading": "SKDJ-慢速随机指标", + "key": "technical-analysis:factor:SKDJ", + "kind": "factor", + "name": "SKDJ", + "source_id": "technical-analysis" + }, + { + "evidence": "SMA-移动平均", + "heading": "SMA-移动平均", + "key": "technical-analysis:factor:SMA", + "kind": "factor", + "name": "SMA", + "source_id": "technical-analysis" + }, + { + "evidence": "TAPI-加权指数成交值", + "heading": "TAPI-加权指数成交值", + "key": "technical-analysis:factor:TAPI", + "kind": "factor", + "name": "TAPI", + "source_id": "technical-analysis" + }, + { + "evidence": "TBP-STD-趋势平衡点", + "heading": "TBP-STD-趋势平衡点", + "key": "technical-analysis:factor:TBP_STD", + "kind": "factor", + "name": "TBP_STD", + "source_id": "technical-analysis" + }, + { + "evidence": "TRIX-终极指标", + "heading": "TRIX-终极指标", + "key": "technical-analysis:factor:TRIX", + "kind": "factor", + "name": "TRIX", + "source_id": "technical-analysis" + }, + { + "evidence": "UDL-引力线", + "heading": "UDL-引力线", + "key": "technical-analysis:factor:UDL", + "kind": "factor", + "name": "UDL", + "source_id": "technical-analysis" + }, + { + "evidence": "UOS-终极指标", + "heading": "UOS-终极指标", + "key": "technical-analysis:factor:UOS", + "kind": "factor", + "name": "UOS", + "source_id": "technical-analysis" + }, + { + "evidence": "VMA-变异平均线", + "heading": "VMA-变异平均线", + "key": "technical-analysis:factor:VMA", + "kind": "factor", + "name": "VMA", + "source_id": "technical-analysis" + }, + { + "evidence": "VMACD-量平滑移动平均", + "heading": "VMACD-量平滑移动平均", + "key": "technical-analysis:factor:VMACD", + "kind": "factor", + "name": "VMACD", + "source_id": "technical-analysis" + }, + { + "evidence": "VOL-成交量", + "heading": "VOL-成交量", + "key": "technical-analysis:factor:VOL", + "kind": "factor", + "name": "VOL", + "source_id": "technical-analysis" + }, + { + "evidence": "VPT-量价曲线", + "heading": "VPT-量价曲线", + "key": "technical-analysis:factor:VPT", + "kind": "factor", + "name": "VPT", + "source_id": "technical-analysis" + }, + { + "evidence": "VR-成交量变异率", + "heading": "VR-成交量变异率", + "key": "technical-analysis:factor:VR", + "kind": "factor", + "name": "VR", + "source_id": "technical-analysis" + }, + { + "evidence": "VRSI-相对强弱量", + "heading": "VRSI-相对强弱量", + "key": "technical-analysis:factor:VRSI", + "kind": "factor", + "name": "VRSI", + "source_id": "technical-analysis" + }, + { + "evidence": "WR-威廉指标", + "heading": "WR-威廉指标", + "key": "technical-analysis:factor:WR", + "kind": "factor", + "name": "WR", + "source_id": "technical-analysis" + }, + { + "evidence": "WVAD-威廉变异离散量", + "heading": "WVAD-威廉变异离散量", + "key": "technical-analysis:factor:WVAD", + "kind": "factor", + "name": "WVAD", + "source_id": "technical-analysis" + }, + { + "evidence": "XDT-心电图", + "heading": "XDT-心电图", + "key": "technical-analysis:factor:XDT", + "kind": "factor", + "name": "XDT", + "source_id": "technical-analysis" + }, + { + "evidence": "XS-薛斯通道", + "heading": "XS-薛斯通道", + "key": "technical-analysis:factor:XS", + "kind": "factor", + "name": "XS", + "source_id": "technical-analysis" + }, + { + "evidence": "XS2-薛斯通道2", + "heading": "XS2-薛斯通道2", + "key": "technical-analysis:factor:XS2", + "kind": "factor", + "name": "XS2", + "source_id": "technical-analysis" + }, + { + "evidence": "ZBCD-准备抄底", + "heading": "ZBCD-准备抄底", + "key": "technical-analysis:factor:ZBCD", + "kind": "factor", + "name": "ZBCD", + "source_id": "technical-analysis" + }, + { + "evidence": "ZLMM-主力买卖", + "heading": "ZLMM-主力买卖", + "key": "technical-analysis:factor:ZLMM", + "kind": "factor", + "name": "ZLMM", + "source_id": "technical-analysis" + }, + { + "evidence": "ZSDB-指数对比", + "heading": "ZSDB-指数对比", + "key": "technical-analysis:factor:ZSDB", + "kind": "factor", + "name": "ZSDB", + "source_id": "technical-analysis" + }, + { + "evidence": "ZX-重心线", + "heading": "ZX-重心线", + "key": "technical-analysis:factor:ZX", + "kind": "factor", + "name": "ZX", + "source_id": "technical-analysis" + } + ], + "version": 1 +} diff --git a/docs/joinquant-api/manifest.json b/docs/joinquant-api/manifest.json new file mode 100644 index 0000000..518d308 --- /dev/null +++ b/docs/joinquant-api/manifest.json @@ -0,0 +1,139 @@ +{ + "api_entries": 1185, + "files": { + "API.md": { + "bytes": 307343, + "sha256": "497b75331477b69698a26d53b07bd6625b7cf57cfbd8a3fa5b4d1eb1611ea6fd" + }, + "JQData.md": { + "bytes": 797739, + "sha256": "ba601e3b26063e8f6cbe17f4898087fd379ec476c36dd8dafecbef94a64be54b" + }, + "JQ_Alpha101.md": { + "bytes": 44514, + "sha256": "67f67dc4975194171796b6667bc4b301e17a037c872b3ed2cad3404d681f900b" + }, + "JQ_Alpha191.md": { + "bytes": 81369, + "sha256": "63d3e07a9203bcfd0d25a7f6c997aecb20fe46d75c0b90260782e35248663791" + }, + "JQ_场内基金数据.md": { + "bytes": 27272, + "sha256": "b79840251c1a3926fc88f525de0e365d49bf19fc0e1fc5fd1174d52263d08815" + }, + "JQ_宏观经济数据.md": { + "bytes": 261462, + "sha256": "084c14a36e4fb2b2fd94b0c20c73e51dc280e78ada7ed694571ad5703f563660" + }, + "JQ_常见问题.md": { + "bytes": 49003, + "sha256": "a5c67dbc687180cb82d6001474e8ad58d4ec4612dd75621bbd006164551b8173" + }, + "JQ_技术分析指标.md": { + "bytes": 195181, + "sha256": "fa936f9843275632533c753329b01637c2322cf2e0158fe5cd5bbaa3afef1da8" + }, + "JQ_指数数据.md": { + "bytes": 14658, + "sha256": "f58ed360f1c11dcbda6f4bc8cc03d11729bbf176a813e4118a9d9fa5cd5ae901" + }, + "JQ_期权数据.md": { + "bytes": 55185, + "sha256": "7fb841fd5d897f4cffa673e3f11e1408be4a4f118199cb1ccc558cc5fa62fde1" + }, + "JQ_期货数据.md": { + "bytes": 52405, + "sha256": "4094a206b40f04df2cd5c7aec60c409193945e4f5acc65396135e78f1168efb8" + }, + "JQ_聚宽因子库.md": { + "bytes": 42452, + "sha256": "39171e4be1ca3e942a7866f1860dfd1098a9b571e498f727eac3af30d3d618c0" + }, + "JQ_股票数据.md": { + "bytes": 381017, + "sha256": "85ba2f1bb8b6bf5f63eb86aded49bf12f75280b93802136bd484acf391a47bb4" + }, + "JQ_行业概念数据.md": { + "bytes": 66310, + "sha256": "3cefd83caf2b6c462af05f6f06f0722a31f884aa82c90bca5c14a4bcc2c7e8a3" + }, + "api-index.json": { + "bytes": 302881, + "sha256": "ceed87a9805ea367916d337f63cd689a60f857b15827181f8e075ad81b83f6a8" + } + }, + "generated_at": "2026-07-13T04:18:23.409769+00:00", + "sources": [ + { + "output": "JQData.md", + "source_id": "jqdata", + "url": "https://www.joinquant.com/help/api/help?name=JQData" + }, + { + "output": "API.md", + "source_id": "platform-api", + "url": "https://www.joinquant.com/help/api/help?name=api" + }, + { + "output": "JQ_股票数据.md", + "source_id": "stock", + "url": "https://www.joinquant.com/help/api/help?name=Stock" + }, + { + "output": "JQ_场内基金数据.md", + "source_id": "fund", + "url": "https://www.joinquant.com/help/api/help?name=fund" + }, + { + "output": "JQ_期货数据.md", + "source_id": "future", + "url": "https://www.joinquant.com/help/api/help?name=Future" + }, + { + "output": "JQ_期权数据.md", + "source_id": "option", + "url": "https://www.joinquant.com/help/api/help?name=Option" + }, + { + "output": "JQ_指数数据.md", + "source_id": "index", + "url": "https://www.joinquant.com/help/api/help?name=index" + }, + { + "output": "JQ_行业概念数据.md", + "source_id": "plate-data", + "url": "https://www.joinquant.com/help/api/help?name=plateData" + }, + { + "output": "JQ_宏观经济数据.md", + "source_id": "macro-data", + "url": "https://www.joinquant.com/help/api/help?name=macroData" + }, + { + "output": "JQ_常见问题.md", + "source_id": "faq", + "url": "https://www.joinquant.com/help/api/help?name=faq" + }, + { + "output": "JQ_聚宽因子库.md", + "source_id": "factor-values", + "url": "https://www.joinquant.com/help/api/help?name=factor_values" + }, + { + "output": "JQ_Alpha101.md", + "source_id": "alpha101", + "url": "https://www.joinquant.com/help/api/help?name=Alpha101" + }, + { + "output": "JQ_Alpha191.md", + "source_id": "alpha191", + "url": "https://www.joinquant.com/help/api/help?name=Alpha191" + }, + { + "output": "JQ_技术分析指标.md", + "source_id": "technical-analysis", + "url": "https://www.joinquant.com/help/api/help?name=technicalanalysis" + } + ], + "version": 1 +} diff --git a/docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md b/docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md new file mode 100644 index 0000000..d12cf4d --- /dev/null +++ b/docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md @@ -0,0 +1,74 @@ +# create-joinquant-docs-sync-skill 验证报告 + +## 结论 + +| 维度 | 结果 | +|---|---| +| 完整性 | 4/4 任务完成;14 个官方来源已同步;15/15 参考主题完整 | +| 正确性 | 15/15 自动测试通过;参考 API(接口)/表/因子严格覆盖 375/375 | +| 一致性 | 实现符合 proposal/design/delta spec(提案/设计/增量规格) | +| 安全性 | 不登录、不读取 Cookie(浏览器凭证)或 Token(访问令牌),未发现硬编码密钥 | + +最终评估:内容、索引和完整性门禁均通过,可进入归档前确认。 + +## OpenSpec(开放规格)完整验证 + +| 检查项 | 结果 | +|---|---| +| 任务完整性 | 4/4 完成,无未勾选任务 | +| 需求覆盖 | 7/7 需求均有实现和测试证据 | +| 场景覆盖 | 冲突清单、只读预览、失败保留、幂等同步、索引分类、篡改检测和公开自检均已覆盖 | +| 设计一致性 | 实现遵循单一 CLI(命令行接口)、显式来源清单、浏览器渲染、稳定索引键和验证后写入;14 个来源属于清单扩展,不改变设计边界 | +| 提案目标 | 受控同步、离线索引、差异预览和完整性校验均已实现 | +| 规格漂移 | 未发现 delta spec(增量规格)与设计决策矛盾 | + +- CRITICAL(严重问题):0。 +- WARNING(警告):0。 +- SUGGESTION(改进建议):1;聚合文档中的少量官方复合内容仍形成超长行,可在不改变正文语义的前提下继续改善阅读体验。 + +## 真实同步结果 + +- 官方来源:14 个,全部使用 `.help-api-right` 正文容器;Alpha101、Alpha191、技术指标和宏观文档另有末页完整性标记,避免只抓到异步目录。 +- 本地快照:14 份 Markdown(标记文本)文档、`api-index.json` 和 `manifest.json`。 +- `verify`(校验):`status=ok`,15 个受 SHA-256(完整性摘要)保护的内容文件,1185 个稳定索引键。 +- 最终 `preview`(预览):无文档或索引差异,证明真实同步幂等。 + +## 与 15 份参考文档的对比 + +- 主题:15/15 完整,部分缺失 0,整体缺失 0。 +- 严格名称/类型覆盖:375/375。 + - function(函数):21/21。 + - table(数据表):64/64。 + - factor(因子):290/290。 +- 专项覆盖:Alpha101 101/101、Alpha191 191/191、技术指标 99/99、宏观表 115/115、聚宽因子库 256/256、行业概念代码 431/431。 +- 期权规格:参考的 67 个外链全部保留;当前文档有 68 个唯一 HTTP(网页)链接。 +- 参考目录中的 23 段场外基金静态名单未复制;参考自身声明名单可能遗漏并应以接口为准,因此以最新官方接口和数据表为事实来源。 + +## 转换与索引质量 + +- 已排除左侧目录噪声,站内相对链接为 0。 +- 代码高亮片段已合并成正常代码行;所有 Markdown(标记文本)代码围栏闭合且不与正文粘连。 +- 嵌在列表项中的表格已恢复为 Markdown(标记文本)表格,独立主题文档除股票 2 行外不再有超过 1000 字符的超长行。 +- `API.md` 和聚合 `JQData.md` 仍保留少量官方复合内容形成的超长行;不影响内容、索引、链接或完整性,但离线目录和局部表格的阅读体验仍可继续优化。 +- 已清除对比中确认的数据库类型、字段标签、公式变量、Python/pandas(编程语言/数据分析库)方法等明确误报;Alpha 公共辅助函数按官方文档保留。 + +## 验证命令 + +- `ruff check`(代码检查):通过。 +- `pytest tests/joinquant_docs_sync/test_cli.py -q`:15 passed。 +- `pytest tests/test_skill_layout.py -q`:6 passed。 +- `jq_docs_sync.py self-test`:`preview → sync → idempotent → verify → tamper-detected` 全流程通过。 +- 真实 `preview → sync → verify → preview`:通过;末次预览差异为 0。 +- Skill Creator `quick_validate.py`(技能格式校验):通过。 +- Build and Verify `build`(构建):通过。 +- Build and Verify 默认 `verify`(快速验证):`verify.skill-layout`、`verify.docs-sync`、`verify.openspec` 全部通过;按其规则未运行 `--full`(完整检查)。 +- `openspec validate --all --strict --no-interactive`:2 passed,0 failed。 +- 提交 `879ade4` 后重新执行:15 项同步测试、6 项 Skill(技能)布局测试、Ruff(代码检查)、公开 `self-test`(自检)、OpenSpec(开放规格)严格校验全部通过。 +- 提交后真实 `preview`(预览):14 个官方来源无文档或 API(接口)增删改;随后 `verify`(校验)确认 15 个内容文件、1185 个稳定索引键。 +- 安全复核:14/14 来源均为聚宽官方域名;同步 Skill(技能)和测试中硬编码密钥为 0。 + +## 流程说明 + +- Comet(变更工作流)运行时无法自动识别 Python(编程语言)构建入口。用户明确授权后,每次先运行真实 Build and Verify(构建与验证),再仅对阶段守卫进程临时设置 `COMET_SKIP_BUILD=1`;未写入配置。 +- 分支保持 `codex/create-joinquant-docs-sync-skill`,当前未推送、未合并。 +- `docs/research/` 下与本变更无关的用户文件未读取、未修改、未纳入验证或后续提交范围。 diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet.yaml b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet.yaml new file mode 100644 index 0000000..7b2e58f --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet.yaml @@ -0,0 +1,27 @@ +workflow: tweak +language: zh-CN +phase: archive +context_compression: beta +build_mode: direct +build_pause: null +subagent_dispatch: null +tdd_mode: direct +review_mode: off +isolation: branch +verify_mode: full +auto_transition: true +base_ref: f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0 +design_doc: null +plan: null +verify_result: pass +verification_report: docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md +branch_status: handled +created_at: 2026-07-13 +verified_at: 2026-07-13 +archived: true +direct_override: null +handoff_context: null +handoff_hash: null +classic_profile: tweak +classic_migration: 1 +run_id: 2c412632-e843-4758-b2ea-8a0af1dc3ce6 diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/artifacts.json b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/artifacts.json new file mode 100644 index 0000000..d11c2fd --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/artifacts.json @@ -0,0 +1,7 @@ +{ + "openspec_proposal": "openspec/changes/create-joinquant-docs-sync-skill/proposal.md", + "openspec_design": "openspec/changes/create-joinquant-docs-sync-skill/design.md", + "openspec_tasks": "openspec/changes/create-joinquant-docs-sync-skill/tasks.md", + "openspec_delta_spec": "openspec/changes/create-joinquant-docs-sync-skill/specs/joinquant-docs-sync/spec.md", + "archive_directory": "openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill" +} diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/checkpoint.json b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/checkpoint.json new file mode 100644 index 0000000..352148e --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/checkpoint.json @@ -0,0 +1,8 @@ +{ + "runId": "2c412632-e843-4758-b2ea-8a0af1dc3ce6", + "stateVersion": 11, + "trajectoryOffset": 13, + "contextHash": null, + "artifactsHash": "cc24229a4b7dcbe060eb8d5f965b0f8024deda28f7db69282b88c108aea44990", + "createdAt": "2026-07-13T04:33:02.703Z" +} diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/run-state.json b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/run-state.json new file mode 100644 index 0000000..ec37077 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/run-state.json @@ -0,0 +1,17 @@ +{ + "runId": "2c412632-e843-4758-b2ea-8a0af1dc3ce6", + "skill": "comet-classic", + "skillVersion": "1", + "skillHash": "e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3", + "orchestration": "deterministic", + "currentStep": "completed", + "iteration": 11, + "pending": null, + "pendingRef": ".comet/pending-action.json", + "trajectoryRef": ".comet/trajectory.jsonl", + "contextRef": ".comet/context.md", + "artifactsRef": ".comet/artifacts.json", + "checkpointRef": ".comet/checkpoint.json", + "status": "completed", + "retries": {} +} \ No newline at end of file diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/skill-snapshots/e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3/package.json b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/skill-snapshots/e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3/package.json new file mode 100644 index 0000000..64a9a31 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/skill-snapshots/e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3/package.json @@ -0,0 +1,320 @@ +{ + "definition": { + "agents": [], + "apiVersion": "comet/v1alpha1", + "goal": { + "inputs": [ + { + "description": "已校验且与 Run 投影一致的 ClassicState", + "name": "classic-state", + "required": true + }, + { + "description": "Classic Evidence 收集器生成的结构化证据", + "name": "evidence", + "required": true + } + ], + "outputs": [ + { + "description": "原子同步后的 Classic 与 Run 状态", + "name": "run-state", + "required": true + } + ], + "statement": "在不改变用户命令面的前提下稳定推进或恢复经典 Comet Run", + "success": [ + "旧字段与 Run 字段保持一致", + "每个步骤只调用声明的公开 Comet Skill", + "completed 状态通过 completion eval" + ] + }, + "kind": "Skill", + "metadata": { + "description": "Comet 经典 full、hotfix、tweak 工作流的内部兼容编排", + "name": "comet-classic", + "version": "1" + }, + "orchestration": { + "entry": "full.open", + "mode": "deterministic", + "steps": [ + { + "action": { + "ref": "comet-open", + "type": "invoke_skill" + }, + "id": "full.open", + "next": "full.design.handoff" + }, + { + "action": { + "ref": "comet-design", + "type": "invoke_skill" + }, + "id": "full.design.handoff", + "next": "full.design.document" + }, + { + "action": { + "ref": "comet-design", + "type": "invoke_skill" + }, + "id": "full.design.document", + "next": "full.build.plan" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "full.build.plan", + "next": "full.build.plan-ready" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "full.build.plan-ready", + "next": "full.build.configure" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "full.build.configure", + "next": "full.build.execute" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "full.build.execute", + "next": "full.build.complete" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "full.build.complete", + "next": "full.verify.run" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "full.build.fix", + "next": "full.build.execute" + }, + { + "action": { + "ref": "comet-verify", + "type": "invoke_skill" + }, + "id": "full.verify.run", + "next": "full.verify.branch" + }, + { + "action": { + "ref": "comet-verify", + "type": "invoke_skill" + }, + "id": "full.verify.branch", + "next": "full.archive.confirm" + }, + { + "action": { + "ref": "comet-archive", + "type": "invoke_skill" + }, + "id": "full.archive.confirm", + "next": "full.archive.execute" + }, + { + "action": { + "ref": "comet-archive", + "type": "invoke_skill" + }, + "id": "full.archive.execute", + "next": "completed" + }, + { + "action": { + "ref": "comet-hotfix", + "type": "invoke_skill" + }, + "id": "hotfix.open", + "next": "hotfix.build.execute" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "hotfix.build.execute", + "next": "hotfix.build.complete" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "hotfix.build.complete", + "next": "hotfix.verify.run" + }, + { + "action": { + "ref": "comet-verify", + "type": "invoke_skill" + }, + "id": "hotfix.verify.run", + "next": "hotfix.verify.branch" + }, + { + "action": { + "ref": "comet-verify", + "type": "invoke_skill" + }, + "id": "hotfix.verify.branch", + "next": "hotfix.archive.confirm" + }, + { + "action": { + "ref": "comet-archive", + "type": "invoke_skill" + }, + "id": "hotfix.archive.confirm", + "next": "hotfix.archive.execute" + }, + { + "action": { + "ref": "comet-archive", + "type": "invoke_skill" + }, + "id": "hotfix.archive.execute", + "next": "completed" + }, + { + "action": { + "ref": "comet-tweak", + "type": "invoke_skill" + }, + "id": "tweak.open", + "next": "tweak.build.execute" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "tweak.build.execute", + "next": "tweak.build.complete" + }, + { + "action": { + "ref": "comet-build", + "type": "invoke_skill" + }, + "id": "tweak.build.complete", + "next": "tweak.verify.run" + }, + { + "action": { + "ref": "comet-verify", + "type": "invoke_skill" + }, + "id": "tweak.verify.run", + "next": "tweak.verify.branch" + }, + { + "action": { + "ref": "comet-verify", + "type": "invoke_skill" + }, + "id": "tweak.verify.branch", + "next": "tweak.archive.confirm" + }, + { + "action": { + "ref": "comet-archive", + "type": "invoke_skill" + }, + "id": "tweak.archive.confirm", + "next": "tweak.archive.execute" + }, + { + "action": { + "ref": "comet-archive", + "type": "invoke_skill" + }, + "id": "tweak.archive.execute", + "next": "completed" + }, + { + "action": { + "type": "checkpoint" + }, + "completionEvals": [ + "classic-completed" + ], + "id": "completed" + } + ] + }, + "skills": [ + { + "id": "comet-open" + }, + { + "id": "comet-design" + }, + { + "id": "comet-build" + }, + { + "id": "comet-verify" + }, + { + "id": "comet-archive" + }, + { + "id": "comet-hotfix" + }, + { + "id": "comet-tweak" + } + ], + "tools": [] + }, + "evals": [ + { + "equals": "completed", + "field": "status", + "id": "classic-completed", + "scope": "completion", + "type": "state_equals" + } + ], + "guardrails": { + "allowedAgents": [], + "allowedSkills": [ + "comet-open", + "comet-design", + "comet-build", + "comet-verify", + "comet-archive", + "comet-hotfix", + "comet-tweak" + ], + "allowedTools": [], + "confirmationRequiredFor": [], + "maxIterations": 500, + "maxRetriesPerAction": 3 + }, + "packageKind": "runtime" +} diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/skill-snapshots/e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3/sha256 b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/skill-snapshots/e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3/sha256 new file mode 100644 index 0000000..c4f67c0 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/skill-snapshots/e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3/sha256 @@ -0,0 +1 @@ +e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3 diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/state-events.jsonl b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/state-events.jsonl new file mode 100644 index 0000000..10a00f6 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/state-events.jsonl @@ -0,0 +1,10 @@ +{"schemaVersion":1,"timestamp":"2026-07-13T02:57:23.410Z","change":"create-joinquant-docs-sync-skill","event":"open-complete","source":"comet-guard","from":{"workflow":"tweak","language":"zh-CN","phase":"open","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"light","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":null,"branchStatus":"pending","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"build","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"light","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":null,"branchStatus":"pending","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"phase","from":"open","to":"build"}]} +{"schemaVersion":1,"timestamp":"2026-07-13T03:16:44.911Z","change":"create-joinquant-docs-sync-skill","event":"build-complete","source":"comet-guard","from":{"workflow":"tweak","language":"zh-CN","phase":"build","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"light","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":null,"branchStatus":"pending","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"verify","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"light","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":null,"branchStatus":"pending","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"phase","from":"build","to":"verify"}]} +{"schemaVersion":1,"timestamp":"2026-07-13T03:25:35.959Z","change":"create-joinquant-docs-sync-skill","event":"verify-pass","source":"comet-guard","from":{"workflow":"tweak","language":"zh-CN","phase":"verify","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"archive","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pass","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":"2026-07-13","archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"verifyResult","from":"pending","to":"pass"},{"field":"phase","from":"verify","to":"archive"},{"field":"verifiedAt","from":null,"to":"2026-07-13"}]} +{"schemaVersion":1,"timestamp":"2026-07-13T03:30:39.674Z","change":"create-joinquant-docs-sync-skill","event":"archive-reopen","source":"comet-state","from":{"workflow":"tweak","language":"zh-CN","phase":"archive","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pass","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":"2026-07-13","archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"verify","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"verifyResult","from":"pass","to":"pending"},{"field":"phase","from":"archive","to":"verify"},{"field":"verifiedAt","from":"2026-07-13","to":null}]} +{"schemaVersion":1,"timestamp":"2026-07-13T03:30:39.782Z","change":"create-joinquant-docs-sync-skill","event":"verify-fail","source":"comet-state","from":{"workflow":"tweak","language":"zh-CN","phase":"verify","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"build","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"fail","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"verifyResult","from":"pending","to":"fail"},{"field":"phase","from":"verify","to":"build"}]} +{"schemaVersion":1,"timestamp":"2026-07-13T04:20:53.844Z","change":"create-joinquant-docs-sync-skill","event":"build-complete","source":"comet-guard","from":{"workflow":"tweak","language":"zh-CN","phase":"build","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"fail","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"verify","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"phase","from":"build","to":"verify"},{"field":"verifyResult","from":"fail","to":"pending"}]} +{"schemaVersion":1,"timestamp":"2026-07-13T04:25:43.583Z","change":"create-joinquant-docs-sync-skill","event":"verify-fail","source":"comet-state","from":{"workflow":"tweak","language":"zh-CN","phase":"verify","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"build","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"fail","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"verifyResult","from":"pending","to":"fail"},{"field":"phase","from":"verify","to":"build"}]} +{"schemaVersion":1,"timestamp":"2026-07-13T04:28:14.510Z","change":"create-joinquant-docs-sync-skill","event":"build-complete","source":"comet-guard","from":{"workflow":"tweak","language":"zh-CN","phase":"build","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"fail","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"verify","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"phase","from":"build","to":"verify"},{"field":"verifyResult","from":"fail","to":"pending"}]} +{"schemaVersion":1,"timestamp":"2026-07-13T04:30:24.825Z","change":"create-joinquant-docs-sync-skill","event":"verify-pass","source":"comet-guard","from":{"workflow":"tweak","language":"zh-CN","phase":"verify","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pending","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":null,"archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"archive","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pass","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":"2026-07-13","archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"verifyResult","from":"pending","to":"pass"},{"field":"phase","from":"verify","to":"archive"},{"field":"verifiedAt","from":null,"to":"2026-07-13"}]} +{"schemaVersion":1,"timestamp":"2026-07-13T04:33:02.714Z","change":"2026-07-13-create-joinquant-docs-sync-skill","event":"archived","source":"comet-archive","from":{"workflow":"tweak","language":"zh-CN","phase":"archive","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pass","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":"2026-07-13","archived":false,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"to":{"workflow":"tweak","language":"zh-CN","phase":"archive","contextCompression":"beta","buildMode":"direct","buildPause":null,"subagentDispatch":null,"tddMode":"direct","reviewMode":"off","isolation":"branch","verifyMode":"full","autoTransition":true,"baseRef":"f5be4d9e887de0cdcde1c6fcb146e8c42a7dfec0","designDoc":null,"plan":null,"verifyResult":"pass","verificationReport":"docs/superpowers/reports/2026-07-13-create-joinquant-docs-sync-skill-verify.md","branchStatus":"handled","createdAt":"2026-07-13","verifiedAt":"2026-07-13","archived":true,"directOverride":null,"handoffContext":null,"handoffHash":null,"classicProfile":"tweak","classicMigration":1},"effects":[{"field":"archived","from":false,"to":true}]} diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/trajectory.jsonl b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/trajectory.jsonl new file mode 100644 index 0000000..9b3fd53 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.comet/trajectory.jsonl @@ -0,0 +1,13 @@ +{"sequence":1,"timestamp":"2026-07-13T02:57:23.382Z","type":"run_started","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"skill":"comet-classic","skillVersion":"1","skillHash":"e211dc93b4bbc218965022f6d64f54a26e2240bd45b8bf6e1321ceb96775a3a3"}} +{"sequence":2,"timestamp":"2026-07-13T02:57:23.382Z","type":"state_migrated","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","migrationVersion":1,"profile":"tweak","source":"pre-migration"}} +{"sequence":3,"timestamp":"2026-07-13T02:57:23.409Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.open","toStep":"tweak.build.execute","event":"open-complete","phase":"open","source":"comet-guard"}} +{"sequence":4,"timestamp":"2026-07-13T03:10:59.976Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic-config","field":"verify_mode","fromStep":"tweak.build.execute","toStep":"tweak.build.complete"}} +{"sequence":5,"timestamp":"2026-07-13T03:16:44.909Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.build.complete","toStep":"tweak.verify.run","event":"build-complete","phase":"build","source":"comet-guard"}} +{"sequence":6,"timestamp":"2026-07-13T03:25:35.958Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.verify.run","toStep":"tweak.archive.confirm","event":"verify-pass","phase":"verify","source":"comet-guard"}} +{"sequence":7,"timestamp":"2026-07-13T03:30:39.672Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.archive.confirm","toStep":"tweak.verify.run","event":"archive-reopen","source":"comet-state"}} +{"sequence":8,"timestamp":"2026-07-13T03:30:39.781Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.verify.run","toStep":"tweak.build.execute","event":"verify-fail","source":"comet-state"}} +{"sequence":9,"timestamp":"2026-07-13T04:20:53.843Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.build.execute","toStep":"tweak.verify.run","event":"build-complete","phase":"build","source":"comet-guard"}} +{"sequence":10,"timestamp":"2026-07-13T04:25:43.582Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.verify.run","toStep":"tweak.build.execute","event":"verify-fail","source":"comet-state"}} +{"sequence":11,"timestamp":"2026-07-13T04:28:14.508Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.build.execute","toStep":"tweak.verify.run","event":"build-complete","phase":"build","source":"comet-guard"}} +{"sequence":12,"timestamp":"2026-07-13T04:30:24.825Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.verify.run","toStep":"tweak.archive.confirm","event":"verify-pass","phase":"verify","source":"comet-guard"}} +{"sequence":13,"timestamp":"2026-07-13T04:33:02.700Z","type":"state_transitioned","runId":"2c412632-e843-4758-b2ea-8a0af1dc3ce6","data":{"kind":"classic","fromStep":"tweak.archive.confirm","toStep":"completed","actionId":"classic-archive:create-joinquant-docs-sync-skill","archiveDirectory":"openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill","event":"archived","source":"comet-archive"}} diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.openspec.yaml b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.openspec.yaml new file mode 100644 index 0000000..b119b63 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-07-13 diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/design.md b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/design.md new file mode 100644 index 0000000..c03e394 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/design.md @@ -0,0 +1,62 @@ +## Context + +参考目录包含 15 份按业务主题整理的 Markdown(文档),其 API(接口)形态包括函数、数据表、技术指标和 Alpha(阿尔法因子),但没有统一的来源清单、同步摘要或 API(接口)索引。聚宽当前帮助页需要浏览器渲染后才能取得正文;仓库现有 `.venv`(虚拟环境)已经包含 Playwright(浏览器自动化)和 Beautiful Soup(HTML 解析库)。 + +用户已在 `comet-tweak`(轻量变更流程)决策点确认继续,理由是变更隔离在一个仓库 Skill(技能)及其验证入口内,不需要跨模块架构协调。 + +## Goals / Non-Goals + +**Goals:** + +- 提供 `preview`(预览)、`sync`(同步)、`verify`(校验)和 `self-test`(自检)四个统一命令。 +- 从显式来源清单读取聚宽官方公开帮助页,渲染正文并确定性转换为 UTF-8 Markdown(文档)。 +- 从文档识别函数、数据表和因子条目,生成带稳定键的 JSON(结构化数据)索引。 +- 先验证全部候选内容,再原子替换变化文件;失败时保留上次完整版本。 +- 用离线夹具从 CLI(命令行接口)跑通预览、同步、重复同步和校验主流程。 + +**Non-Goals:** + +- 不登录聚宽,不读取或保存 Cookie(浏览器凭证)或 Token(访问令牌)。 +- 不执行正式回测、模拟交易或 JQData(聚宽本地数据)查询。 +- 不承诺把参考目录 15 份旧文件逐字复刻;来源清单可扩展,默认同步聚宽现行 `JQData` 和 `api` 两个官方帮助入口。 +- 不自动提交 Git(版本管理)变更或安装依赖。 + +## Decisions + +### 使用单一 CLI(命令行接口) + +Skill(技能)、人工命令和测试都调用 `scripts/jq_docs_sync.py`,避免出现第二套抓取或索引逻辑。命令返回 JSON(结构化数据)摘要,便于 Agent(代理)判断是否需要用户确认。 + +### 使用显式来源清单 + +在 `references/sources.json` 维护 `source_id`、官方 URL(网页地址)、目标文件名、正文选择器和最小长度。来源身份使用规范化 URL(网页地址)与目标文件名,不从正文链接反推。相比把来源硬编码在脚本中,清单更容易审查和扩展。 + +### 使用浏览器渲染与确定性转换 + +生产同步复用项目 Playwright(浏览器自动化),只读取 `.js-app` 正文容器;离线测试向同一转换核心提供 HTML(网页代码)夹具。转换器只处理标题、段落、代码、列表、表格和链接等必要元素,忽略页面导航、客服和脚本。 + +### 使用多信号 API(接口)识别 + +函数或因子要求同时出现可识别签名和“参数/输入、返回/输出”语义;数据表要求出现完整限定名或 `run_query`(查询调用)模式。稳定键为 `source_id:kind:name`,避免 `get_security_info` 等跨主题重名发生冲突。 + +### 使用预览门禁和内容摘要 + +`preview`(预览)只计算新增、修改、删除和 API(接口)差异,不写文件。`sync`(同步)在全部候选内容通过最小长度、错误页、代码围栏和条目数量门禁后写入,并记录 SHA-256(完整性摘要)。内容摘要未变化时不重写。 + +## Risks / Trade-offs + +- [聚宽页面结构变化] → 正文选择器或内容门禁失败时停止,不覆盖本地文件,并返回具体来源。 +- [简化转换器丢失少见排版] → 保存核心语义元素并以离线夹具覆盖代码块、表格和链接;遇到新元素时增量扩展。 +- [API(接口)识别存在误报或漏报] → 输出来源、标题和签名证据,使用稳定键并在明显大幅变化时阻断同步。 +- [多文件替换并非文件系统事务] → 所有候选文件先在临时目录完成生成与校验,正文与索引成功后最后写入清单;任何生成失败都发生在目标替换前。 + +## Migration Plan + +1. 新增 Skill(技能)、来源清单、CLI(命令行接口)和测试,不改动现有聚宽归档 Skill(技能)。 +2. 新增 Claude(代码代理)符号链接入口并扩展 Skill(技能)布局验证。 +3. 首次实际同步由用户或 Agent(代理)先运行 `preview`(预览),确认差异后再运行 `sync`(同步)。 +4. 回滚时删除新 Skill(技能)、测试和其生成的独立文档目录;现有归档数据不受影响。 + +## Open Questions + +无。默认来源先覆盖官方 `JQData` 和 `api` 帮助入口,后续通过来源清单扩展。 diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/proposal.md b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/proposal.md new file mode 100644 index 0000000..43e6e50 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/proposal.md @@ -0,0 +1,26 @@ +## Why + +当前仓库缺少可重复执行的聚宽官方文档同步入口,研究时只能依赖外部旧快照,难以及时发现文档变化和核对 API(接口)定义。需要一个仓库级 Skill(技能),以受控、可验证的方式把聚宽官方文档同步为本地 Markdown(文档)并生成 API(接口)索引。 + +## What Changes + +- 新增 `joinquant-docs-sync` Skill(技能),统一提供预览、同步和校验入口。 +- 新增确定性的同步脚本,读取明确配置的聚宽官方文档页面,规范化为本地 Markdown(文档),并生成可查询的 API(接口)索引与同步清单。 +- 同步采用“先预览、后写入”,内容未变化时不得重写文件;失败时保留上次完整版本。 +- 增加离线夹具测试和覆盖用户入口到同步结果的端到端回归,避免测试依赖聚宽在线状态。 + +## Capabilities + +### New Capabilities + +- `joinquant-docs-sync`: 从聚宽官方文档源预览、同步、索引并校验本地文档快照。 + +### Modified Capabilities + +无。 + +## Impact + +- 新增 `.agents/skills/joinquant-docs-sync/` 下的 Skill(技能)说明、脚本、配置和界面元数据。 +- 新增对应测试与本地文档输出目录约定。 +- 运行时只访问聚宽官方公开文档;不运行正式回测或模拟交易,不读取或保存账号、Cookie(浏览器凭证)或 Token(访问令牌)。 diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/specs/joinquant-docs-sync/spec.md b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/specs/joinquant-docs-sync/spec.md new file mode 100644 index 0000000..70188ab --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/specs/joinquant-docs-sync/spec.md @@ -0,0 +1,66 @@ +## ADDED Requirements + +### Requirement: 同步必须由显式官方来源清单驱动 +系统 MUST(必须)只读取来源清单中明确列出的聚宽官方公开文档,并为每个来源定义唯一 `source_id`、规范化 URL(网页地址)、目标文件名、正文选择器和最小内容长度。系统 MUST NOT(不得)登录聚宽、读取凭证或访问非清单来源。 + +#### Scenario: 读取有效来源清单 +- **WHEN** 调用者运行预览或同步,且来源清单中的标识、URL(网页地址)和目标文件名均唯一 +- **THEN** 系统只访问这些官方来源并将结果映射到各自目标文件 + +#### Scenario: 来源清单存在冲突 +- **WHEN** 两个来源具有相同标识、URL(网页地址)或目标文件名 +- **THEN** 系统在启动浏览器或写入文件前拒绝执行并报告冲突项 + +### Requirement: 预览不得改变目标目录 +系统 MUST 提供 `preview`(预览)命令,渲染并转换全部来源,输出文档和 API(接口)的新增、修改与删除摘要,但不得创建、修改或删除目标目录中的文件。 + +#### Scenario: 预览检测到远端变化 +- **WHEN** 远端规范化内容与本地清单摘要不同 +- **THEN** 系统返回变化文件和 API(接口)稳定键,且目标目录内容与摘要保持不变 + +### Requirement: 同步必须验证后再写入 +系统 MUST 在写入前验证 HTTP(网页请求)结果、正文选择器、最小长度、错误页特征、Markdown(文档)代码围栏和 API(接口)索引冲突。任一来源失败时 MUST 保留上次完整版本;内容摘要未变化时 MUST 不重写文件。 + +#### Scenario: 全部来源有效并发生变化 +- **WHEN** 调用者运行 `sync`(同步),全部候选文档和索引通过门禁且至少一个摘要变化 +- **THEN** 系统从临时目录替换变化文件,最后写入包含来源、时间、文件摘要和条目数的清单 + +#### Scenario: 页面变成登录页或空页 +- **WHEN** 任一来源缺少正文、低于最小长度或包含登录/错误页特征 +- **THEN** 系统返回失败,不修改任何已有文档、索引或清单 + +#### Scenario: 重复同步相同内容 +- **WHEN** 所有规范化内容与已记录 SHA-256(完整性摘要)一致 +- **THEN** 系统返回零变化并保持现有文件修改时间不变 + +### Requirement: API 索引必须可离线复核 +系统 MUST 从规范化文档识别函数、数据表和因子条目,并为每个条目记录 `source_id`、类型、名称、稳定键、标题和签名或表名证据。稳定键 MUST 使用 `source_id:kind:name`,字段行不得被误识别为独立 API(接口)。 + +#### Scenario: 不同来源包含同名函数 +- **WHEN** 两个来源都包含 `get_security_info` 函数 +- **THEN** 系统生成两个不同稳定键并分别保留来源和标题证据 + +#### Scenario: 文档包含数据表和普通字段 +- **WHEN** 一个章节包含完整限定表名及其字段表 +- **THEN** 系统只为完整数据表生成 API(接口)条目,不为字段名生成独立条目 + +### Requirement: 校验必须从文件重算证据 +系统 MUST 提供 `verify`(校验)命令,从目标文件重新计算 SHA-256(完整性摘要)、文档数量和 API(接口)索引稳定键,并与清单比较;不得只信任清单声明。 + +#### Scenario: 已同步文件被修改 +- **WHEN** 文档、API(接口)索引或清单引用文件的内容发生变化 +- **THEN** 校验失败并指出不匹配文件,不更新清单 + +### Requirement: 仓库 Skill 必须提供统一发现入口 +仓库 MUST 在 `.agents/skills/joinquant-docs-sync/` 保存唯一真实 Skill(技能)目录,并让 `.claude/skills/joinquant-docs-sync` 通过同仓库相对 SymbolicLink(符号链接)指向该目录。Skill(技能)所有动作 MUST 路由到同一 CLI(命令行接口)。 + +#### Scenario: Codex 和 Claude 发现技能 +- **WHEN** Codex(代码代理)和 Claude(代码代理)分别加载 `joinquant-docs-sync` +- **THEN** 两端解析到同一 `SKILL.md` 和 `jq_docs_sync.py` 文件摘要 + +### Requirement: 端到端回归必须覆盖发布入口 +实现完成前 MUST 从仓库 Skill(技能)公开命令运行离线 `self-test`(自检),在临时目录复用生产转换、索引、写入和校验核心,覆盖预览、首次同步、重复同步和篡改检测。单元测试组合不得替代该主流程回归。 + +#### Scenario: 离线主流程自检 +- **WHEN** 调用者从 `.venv`(虚拟环境)执行 Skill(技能)的 `self-test`(自检)命令 +- **THEN** 系统在临时目录完成预览、首次同步、零变化重复同步和校验,不访问网络或历史归档 diff --git a/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/tasks.md b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/tasks.md new file mode 100644 index 0000000..a1dbad0 --- /dev/null +++ b/openspec/changes/archive/2026-07-13-create-joinquant-docs-sync-skill/tasks.md @@ -0,0 +1,15 @@ +## 1. Skill 与入口 + +- [x] 1.1 使用 Skill Creator(技能创建器)初始化 `joinquant-docs-sync`,补齐中文 `SKILL.md`、界面元数据、官方来源清单和 Claude(代码代理)符号链接入口 + +## 2. 同步核心 + +- [x] 2.1 以 TDD(测试驱动开发)实现统一 CLI(命令行接口)的 `preview`、`sync`、`verify`、`self-test`,覆盖渲染转换、API(接口)索引、幂等写入和失败保留 + +## 3. 仓库验证 + +- [x] 3.1 扩展 Skill(技能)布局与 Build and Verify(构建与验证)配置,运行公开入口端到端回归、Skill(技能)校验和仓库完整验证 + +## 4. 真实文档同步与对比 + +- [x] 4.1 运行 `preview → sync → verify`(预览→同步→校验)生成聚宽官方文档快照,并与 `D:\My Project\Quant Trading\docs\joinquant-api` 的 15 份参考文档对比 API(接口)、数据表、因子和主题覆盖,确认完整性或补齐遗漏 diff --git a/openspec/specs/joinquant-docs-sync/spec.md b/openspec/specs/joinquant-docs-sync/spec.md new file mode 100644 index 0000000..ae2f848 --- /dev/null +++ b/openspec/specs/joinquant-docs-sync/spec.md @@ -0,0 +1,69 @@ +# joinquant-docs-sync Specification + +## Purpose +TBD - created by archiving change create-joinquant-docs-sync-skill. Update Purpose after archive. +## Requirements +### Requirement: 同步必须由显式官方来源清单驱动 +系统 MUST(必须)只读取来源清单中明确列出的聚宽官方公开文档,并为每个来源定义唯一 `source_id`、规范化 URL(网页地址)、目标文件名、正文选择器和最小内容长度。系统 MUST NOT(不得)登录聚宽、读取凭证或访问非清单来源。 + +#### Scenario: 读取有效来源清单 +- **WHEN** 调用者运行预览或同步,且来源清单中的标识、URL(网页地址)和目标文件名均唯一 +- **THEN** 系统只访问这些官方来源并将结果映射到各自目标文件 + +#### Scenario: 来源清单存在冲突 +- **WHEN** 两个来源具有相同标识、URL(网页地址)或目标文件名 +- **THEN** 系统在启动浏览器或写入文件前拒绝执行并报告冲突项 + +### Requirement: 预览不得改变目标目录 +系统 MUST 提供 `preview`(预览)命令,渲染并转换全部来源,输出文档和 API(接口)的新增、修改与删除摘要,但不得创建、修改或删除目标目录中的文件。 + +#### Scenario: 预览检测到远端变化 +- **WHEN** 远端规范化内容与本地清单摘要不同 +- **THEN** 系统返回变化文件和 API(接口)稳定键,且目标目录内容与摘要保持不变 + +### Requirement: 同步必须验证后再写入 +系统 MUST 在写入前验证 HTTP(网页请求)结果、正文选择器、最小长度、错误页特征、Markdown(文档)代码围栏和 API(接口)索引冲突。任一来源失败时 MUST 保留上次完整版本;内容摘要未变化时 MUST 不重写文件。 + +#### Scenario: 全部来源有效并发生变化 +- **WHEN** 调用者运行 `sync`(同步),全部候选文档和索引通过门禁且至少一个摘要变化 +- **THEN** 系统从临时目录替换变化文件,最后写入包含来源、时间、文件摘要和条目数的清单 + +#### Scenario: 页面变成登录页或空页 +- **WHEN** 任一来源缺少正文、低于最小长度或包含登录/错误页特征 +- **THEN** 系统返回失败,不修改任何已有文档、索引或清单 + +#### Scenario: 重复同步相同内容 +- **WHEN** 所有规范化内容与已记录 SHA-256(完整性摘要)一致 +- **THEN** 系统返回零变化并保持现有文件修改时间不变 + +### Requirement: API 索引必须可离线复核 +系统 MUST 从规范化文档识别函数、数据表和因子条目,并为每个条目记录 `source_id`、类型、名称、稳定键、标题和签名或表名证据。稳定键 MUST 使用 `source_id:kind:name`,字段行不得被误识别为独立 API(接口)。 + +#### Scenario: 不同来源包含同名函数 +- **WHEN** 两个来源都包含 `get_security_info` 函数 +- **THEN** 系统生成两个不同稳定键并分别保留来源和标题证据 + +#### Scenario: 文档包含数据表和普通字段 +- **WHEN** 一个章节包含完整限定表名及其字段表 +- **THEN** 系统只为完整数据表生成 API(接口)条目,不为字段名生成独立条目 + +### Requirement: 校验必须从文件重算证据 +系统 MUST 提供 `verify`(校验)命令,从目标文件重新计算 SHA-256(完整性摘要)、文档数量和 API(接口)索引稳定键,并与清单比较;不得只信任清单声明。 + +#### Scenario: 已同步文件被修改 +- **WHEN** 文档、API(接口)索引或清单引用文件的内容发生变化 +- **THEN** 校验失败并指出不匹配文件,不更新清单 + +### Requirement: 仓库 Skill 必须提供统一发现入口 +仓库 MUST 在 `.agents/skills/joinquant-docs-sync/` 保存唯一真实 Skill(技能)目录,并让 `.claude/skills/joinquant-docs-sync` 通过同仓库相对 SymbolicLink(符号链接)指向该目录。Skill(技能)所有动作 MUST 路由到同一 CLI(命令行接口)。 + +#### Scenario: Codex 和 Claude 发现技能 +- **WHEN** Codex(代码代理)和 Claude(代码代理)分别加载 `joinquant-docs-sync` +- **THEN** 两端解析到同一 `SKILL.md` 和 `jq_docs_sync.py` 文件摘要 + +### Requirement: 端到端回归必须覆盖发布入口 +实现完成前 MUST 从仓库 Skill(技能)公开命令运行离线 `self-test`(自检),在临时目录复用生产转换、索引、写入和校验核心,覆盖预览、首次同步、重复同步和篡改检测。单元测试组合不得替代该主流程回归。 + +#### Scenario: 离线主流程自检 +- **WHEN** 调用者从 `.venv`(虚拟环境)执行 Skill(技能)的 `self-test`(自检)命令 +- **THEN** 系统在临时目录完成预览、首次同步、零变化重复同步和校验,不访问网络或历史归档 diff --git a/tests/joinquant_docs_sync/test_cli.py b/tests/joinquant_docs_sync/test_cli.py new file mode 100644 index 0000000..3349654 --- /dev/null +++ b/tests/joinquant_docs_sync/test_cli.py @@ -0,0 +1,592 @@ +from __future__ import annotations + +import json +import os +import subprocess +import sys +import tempfile +from pathlib import Path + + +SCRIPT = ( + Path(__file__).parents[2] + / ".agents" + / "skills" + / "joinquant-docs-sync" + / "scripts" + / "jq_docs_sync.py" +) + + +def _run(*args: object) -> subprocess.CompletedProcess[str]: + return subprocess.run( + [sys.executable, str(SCRIPT), *(str(arg) for arg in args)], + check=False, + capture_output=True, + text=True, + encoding="utf-8", + ) + + +def _prepare_fixture(tmp_path: Path) -> tuple[Path, Path, Path]: + fixture_dir = tmp_path / "html" + fixture_dir.mkdir() + common = "这是聚宽官方帮助正文。" * 20 + (fixture_dir / "stock.html").write_text( + """ +
+

股票数据

+

获取股票概况

+

调用方法

get_security_info(code)
+

参数

code:证券代码

+

返回

Security 对象

+

股票数据表

+

表名:finance.STOCK_INFO

+
字段含义
code证券代码
+

__COMMON__

+
+ """.replace("__COMMON__", common), + encoding="utf-8", + ) + (fixture_dir / "fund.html").write_text( + """ +
+

基金数据

+

获取基金概况

+

调用方法

get_security_info(code)
+

输入

code:基金代码

+

输出

Security 对象

+

__COMMON__

+
+ """.replace("__COMMON__", common), + encoding="utf-8", + ) + sources = tmp_path / "sources.json" + sources.write_text( + json.dumps( + { + "version": 1, + "sources": [ + { + "source_id": "stock", + "url": "https://www.joinquant.com/help/api/help?name=Stock", + "output": "Stock.md", + "selector": ".js-app", + "min_chars": 100, + }, + { + "source_id": "fund", + "url": "https://www.joinquant.com/help/api/help?name=fund", + "output": "Fund.md", + "selector": ".js-app", + "min_chars": 100, + }, + ], + }, + ensure_ascii=False, + ), + encoding="utf-8", + ) + return sources, fixture_dir, tmp_path / "output" + + +def test_preview_reports_changes_without_writing(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + + result = _run( + "preview", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr + payload = json.loads(result.stdout) + assert payload["status"] == "ok" + assert payload["changed"] == ["Fund.md", "Stock.md", "api-index.json"] + assert payload["documents"] == { + "added": ["Fund.md", "Stock.md"], + "modified": [], + "removed": [], + } + assert payload["api_changes"] == { + "added": [ + "fund:function:get_security_info", + "stock:function:get_security_info", + "stock:table:finance.STOCK_INFO", + ], + "modified": [], + "removed": [], + } + assert not output.exists() + + +def test_preview_distinguishes_modified_and_removed_documents(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + initial = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + assert initial.returncode == 0, initial.stderr + source_payload = json.loads(sources.read_text(encoding="utf-8")) + source_payload["sources"] = [source_payload["sources"][0]] + sources.write_text(json.dumps(source_payload, ensure_ascii=False), encoding="utf-8") + stock = fixture_dir / "stock.html" + stock.write_text( + stock.read_text(encoding="utf-8").replace("股票数据表", "股票基础数据表"), + encoding="utf-8", + ) + + result = _run( + "preview", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr + payload = json.loads(result.stdout) + assert payload["documents"] == { + "added": [], + "modified": ["Stock.md"], + "removed": ["Fund.md"], + } + assert payload["api_changes"] == { + "added": [], + "modified": ["stock:table:finance.STOCK_INFO"], + "removed": ["fund:function:get_security_info"], + } + + +def test_sync_is_idempotent_and_verify_recomputes_hashes(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + + first = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + assert first.returncode == 0, first.stderr + first_payload = json.loads(first.stdout) + assert first_payload["status"] == "ok" + assert { + entry["key"] + for entry in json.loads( + (output / "api-index.json").read_text(encoding="utf-8") + )["entries"] + } == { + "fund:function:get_security_info", + "stock:function:get_security_info", + "stock:table:finance.STOCK_INFO", + } + before = {path.name: path.stat().st_mtime_ns for path in output.iterdir()} + + second = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + assert second.returncode == 0, second.stderr + assert json.loads(second.stdout)["changed"] == [] + assert before == {path.name: path.stat().st_mtime_ns for path in output.iterdir()} + + verified = _run("verify", "--sources", sources, "--output", output) + assert verified.returncode == 0, verified.stderr + assert json.loads(verified.stdout)["status"] == "ok" + + (output / "Stock.md").write_text("tampered", encoding="utf-8") + tampered = _run("verify", "--sources", sources, "--output", output) + assert tampered.returncode != 0 + assert json.loads(tampered.stdout)["status"] == "failed" + + +def test_failed_source_preserves_last_complete_version(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + initial = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + assert initial.returncode == 0, initial.stderr + before = {path.name: path.read_bytes() for path in output.iterdir()} + (fixture_dir / "stock.html").write_text( + '
请登录
', + encoding="utf-8", + ) + + failed = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert failed.returncode != 0 + assert json.loads(failed.stdout)["status"] == "failed" + assert before == {path.name: path.read_bytes() for path in output.iterdir()} + + +def test_sync_supports_output_on_repository_drive() -> None: + repo_local = SCRIPT.parents[4] / ".local" + repo_local.mkdir(parents=True, exist_ok=True) + with tempfile.TemporaryDirectory( + prefix="joinquant-docs-sync-test-", dir=repo_local + ) as temp: + sources, fixture_dir, output = _prepare_fixture(Path(temp)) + + result = _run( + "sync", + "--sources", + sources, + "--output", + output, + "--html-dir", + fixture_dir, + ) + + assert result.returncode == 0, result.stderr or result.stdout + assert json.loads(result.stdout)["status"] == "ok" + assert (output / "manifest.json").is_file() + + +def test_cli_forces_utf8_output_under_legacy_windows_encoding( + tmp_path: Path, +) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + payload = json.loads(sources.read_text(encoding="utf-8")) + payload["sources"][0]["required_markers"] = ["末页接口"] + sources.write_text(json.dumps(payload, ensure_ascii=False), encoding="utf-8") + env = os.environ.copy() + env["PYTHONIOENCODING"] = "cp1252" + + result = subprocess.run( + [ + sys.executable, + str(SCRIPT), + "preview", + "--sources", + str(sources), + "--output", + str(output), + "--html-dir", + str(fixture_dir), + ], + check=False, + capture_output=True, + env=env, + ) + + assert result.returncode == 2 + error = json.loads(result.stdout.decode("utf-8")) + assert error["status"] == "failed" + assert "缺少完整性标记" in error["error"] + + +def test_sync_normalizes_inline_markdown_fences(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + stock = fixture_dir / "stock.html" + stock.write_text( + stock.read_text(encoding="utf-8").replace( + "这是聚宽官方帮助正文。", + "说明 ```python print('ok') ``` 完成。", + 1, + ), + encoding="utf-8", + ) + + result = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr or result.stdout + markdown = (output / "Stock.md").read_text(encoding="utf-8") + fence_lines = [line for line in markdown.splitlines() if line.startswith("```")] + assert len(fence_lines) % 2 == 0 + assert all( + line.startswith("```") for line in markdown.splitlines() if "```" in line + ) + + +def test_sync_preserves_table_links_and_absolutizes_site_links(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + stock = fixture_dir / "stock.html" + stock.write_text( + stock.read_text(encoding="utf-8").replace( + "证券代码", + "证券代码", + 1, + ).replace( + "", + "

常见问题

" + "

[社区](/community)

" + "", + 1, + ), + encoding="utf-8", + ) + + result = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr or result.stdout + markdown = (output / "Stock.md").read_text(encoding="utf-8") + assert "[证券代码](https://example.com/spec)" in markdown + assert "[常见问题](https://www.joinquant.com/help/api/help?name=faq)" in markdown + assert "[社区](https://www.joinquant.com/community)" in markdown + + +def test_sync_preserves_tables_nested_in_list_items(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + stock = fixture_dir / "stock.html" + stock.write_text( + stock.read_text(encoding="utf-8").replace( + "

表名:finance.STOCK_INFO

", + "
  • 表结构:" + "" + "
    字段含义
    code证券代码
", + 1, + ), + encoding="utf-8", + ) + + result = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr or result.stdout + markdown = (output / "Stock.md").read_text(encoding="utf-8") + assert "- **表结构:**\n\n| 字段 | 含义 |" in markdown + assert "| code | 证券代码 |" in markdown + + +def test_sync_preserves_syntax_highlighted_code_lines(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + stock = fixture_dir / "stock.html" + stock.write_text( + stock.read_text(encoding="utf-8").replace( + "
get_security_info(code)
", + "
get_security_info("
+            "code)
", + 1, + ), + encoding="utf-8", + ) + + result = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr or result.stdout + markdown = (output / "Stock.md").read_text(encoding="utf-8") + assert "get_security_info(code)" in markdown + + +def test_index_classifies_specialized_factors_and_excludes_builtins( + tmp_path: Path, +) -> None: + fixture_dir = tmp_path / "html" + fixture_dir.mkdir() + output = tmp_path / "docs" + filler = "官方说明。" * 30 + (fixture_dir / "technical-analysis.html").write_text( + "

DMA-平均线差

" + "
DMA(security_list, check_date)\nlen(values)
" + f"

参数

{filler}

返回

{filler}

", + encoding="utf-8", + ) + (fixture_dir / "jqdata.html").write_text( + "

聚宽因子库

" + "
get_all_factors()\nDataFrame(values)\ncode(value)\n"
+        "append(value)\nSTD(value)\nchar(value)\nstock(value)
" + f"

参数

{filler}

返回

{filler}

", + encoding="utf-8", + ) + sources = tmp_path / "sources.json" + sources.write_text( + json.dumps( + { + "sources": [ + { + "source_id": "technical-analysis", + "url": "https://www.joinquant.com/help/api/help?name=technicalanalysis", + "output": "Technical.md", + "selector": ".js-app", + "min_chars": 100, + }, + { + "source_id": "jqdata", + "url": "https://www.joinquant.com/help/api/help?name=JQData", + "output": "JQData.md", + "selector": ".js-app", + "min_chars": 100, + }, + ] + }, + ensure_ascii=False, + ), + encoding="utf-8", + ) + + result = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr or result.stdout + entries = json.loads((output / "api-index.json").read_text(encoding="utf-8"))[ + "entries" + ] + keys = {entry["key"] for entry in entries} + names = {entry["name"] for entry in entries} + assert "technical-analysis:factor:DMA" in keys + assert "jqdata:function:get_all_factors" in keys + assert "DataFrame" not in names + assert "STD" not in names + assert "append" not in names + assert "char" not in names + assert "code" not in names + assert "len" not in names + assert "stock" not in names + + +def test_index_uses_factor_catalog_headings(tmp_path: Path) -> None: + fixture_dir = tmp_path / "html" + fixture_dir.mkdir() + output = tmp_path / "docs" + filler = "官方完整说明。" * 30 + (fixture_dir / "technical-analysis.html").write_text( + "

ACCER-幅度涨速

" + "

BOLL-布林线

LWR-LWR威廉指标

" + f"

SG-SMX-生命线

{filler}

", + encoding="utf-8", + ) + (fixture_dir / "alpha101.html").write_text( + "

公用函数说明

" + "

scale(x, a) 用于缩放;a(value) 只是变量。

" + f"

alpha_101(未实现)

{filler}

", + encoding="utf-8", + ) + sources = tmp_path / "sources.json" + sources.write_text( + json.dumps( + { + "sources": [ + { + "source_id": "technical-analysis", + "url": "https://www.joinquant.com/help/api/help?name=technicalanalysis", + "output": "Technical.md", + "selector": ".js-app", + "min_chars": 50, + }, + { + "source_id": "alpha101", + "url": "https://www.joinquant.com/help/api/help?name=Alpha101", + "output": "Alpha101.md", + "selector": ".js-app", + "min_chars": 50, + }, + ] + }, + ensure_ascii=False, + ), + encoding="utf-8", + ) + + result = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr or result.stdout + entries = json.loads((output / "api-index.json").read_text(encoding="utf-8"))[ + "entries" + ] + keys = {entry["key"] for entry in entries} + assert "technical-analysis:factor:ACCER" in keys + assert "technical-analysis:factor:Bollinger_Bands" in keys + assert "technical-analysis:factor:LWR" in keys + assert "technical-analysis:factor:SG_SMX" in keys + assert "alpha101:factor:alpha_101" in keys + assert "alpha101:function:scale" in keys + assert "alpha101:function:a" not in keys + + +def test_index_uses_factor_tables_and_macro_table_labels(tmp_path: Path) -> None: + fixture_dir = tmp_path / "html" + fixture_dir.mkdir() + output = tmp_path / "docs" + filler = "官方完整说明。" * 30 + (fixture_dir / "factor-values.html").write_text( + "

风格因子

" + "" + f"
因子 code因子名称
beta{filler}
", + encoding="utf-8", + ) + (fixture_dir / "macro-data.html").write_text( + f"

人口信息

{filler}

" + "

表名:MAC_TEST_TABLE

", + encoding="utf-8", + ) + sources = tmp_path / "sources.json" + sources.write_text( + json.dumps( + { + "sources": [ + { + "source_id": "factor-values", + "url": "https://www.joinquant.com/help/api/help?name=factor_values", + "output": "Factors.md", + "selector": ".js-app", + "min_chars": 50, + }, + { + "source_id": "macro-data", + "url": "https://www.joinquant.com/help/api/help?name=macroData", + "output": "Macro.md", + "selector": ".js-app", + "min_chars": 50, + }, + ] + }, + ensure_ascii=False, + ), + encoding="utf-8", + ) + + result = _run( + "sync", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode == 0, result.stderr or result.stdout + entries = json.loads((output / "api-index.json").read_text(encoding="utf-8"))[ + "entries" + ] + keys = {entry["key"] for entry in entries} + assert "factor-values:factor:beta" in keys + assert "macro-data:table:macro.MAC_TEST_TABLE" in keys + + +def test_required_marker_rejects_partial_document(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + payload = json.loads(sources.read_text(encoding="utf-8")) + payload["sources"][0]["required_markers"] = ["末页接口"] + sources.write_text(json.dumps(payload, ensure_ascii=False), encoding="utf-8") + + result = _run( + "preview", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode != 0 + assert "缺少完整性标记" in result.stdout + assert not output.exists() + + +def test_duplicate_source_manifest_is_rejected_before_writing(tmp_path: Path) -> None: + sources, fixture_dir, output = _prepare_fixture(tmp_path) + payload = json.loads(sources.read_text(encoding="utf-8")) + payload["sources"].append(dict(payload["sources"][0])) + sources.write_text(json.dumps(payload, ensure_ascii=False), encoding="utf-8") + + result = _run( + "preview", "--sources", sources, "--output", output, "--html-dir", fixture_dir + ) + + assert result.returncode != 0 + error = json.loads(result.stdout) + assert error["status"] == "failed" + assert "来源清单 source_id 冲突" in error["error"] + assert not output.exists() + + +def test_public_self_test_runs_complete_offline_flow() -> None: + result = _run("self-test") + + assert result.returncode == 0, result.stderr + payload = json.loads(result.stdout) + assert payload == { + "status": "ok", + "steps": ["preview", "sync", "idempotent", "verify", "tamper-detected"], + } diff --git a/tests/test_skill_layout.py b/tests/test_skill_layout.py index c44fe36..867ae09 100644 --- a/tests/test_skill_layout.py +++ b/tests/test_skill_layout.py @@ -1,6 +1,7 @@ from __future__ import annotations import hashlib +import json from pathlib import Path @@ -27,11 +28,7 @@ def test_skill_contains_no_plugin_manifest(repo_root: Path) -> None: def test_skill_routes_every_operation_through_one_cli(repo_root: Path) -> None: skill = ( - repo_root - / ".agents" - / "skills" - / "joinquant-archive-sync" - / "SKILL.md" + repo_root / ".agents" / "skills" / "joinquant-archive-sync" / "SKILL.md" ).read_text(encoding="utf-8") assert skill.startswith("---\nname: joinquant-archive-sync\ndescription: Use when ") assert "scripts/jq_sync.py" in skill @@ -56,3 +53,49 @@ def test_skill_routes_every_operation_through_one_cli(repo_root: Path) -> None: assert "auth_required" in skill assert "积分" in skill assert "归因" in skill + + +def test_joinquant_docs_skill_resolves_to_agents_skill(repo_root: Path) -> None: + source = repo_root / ".agents" / "skills" / "joinquant-docs-sync" + claude = repo_root / ".claude" / "skills" / "joinquant-docs-sync" + assert (source / "SKILL.md").is_file() + assert (source / "agents" / "openai.yaml").is_file() + assert (source / "references" / "sources.json").is_file() + assert claude.is_symlink() + assert claude.resolve() == source.resolve() + assert _sha256(claude / "SKILL.md") == _sha256(source / "SKILL.md") + assert _sha256(claude / "scripts" / "jq_docs_sync.py") == _sha256( + source / "scripts" / "jq_docs_sync.py" + ) + + +def test_joinquant_docs_skill_routes_operations_through_one_cli( + repo_root: Path, +) -> None: + skill = ( + repo_root / ".agents" / "skills" / "joinquant-docs-sync" / "SKILL.md" + ).read_text(encoding="utf-8") + assert skill.startswith("---\nname: joinquant-docs-sync\ndescription: Use when ") + assert "scripts/jq_docs_sync.py" in skill + for command in ("preview", "sync", "verify", "self-test"): + assert f"`{command}`" in skill + assert "Cookie" in skill + assert "Token" in skill + assert "SHA-256" in skill + + +def test_build_and_verify_covers_joinquant_docs_sync(repo_root: Path) -> None: + config = json.loads( + (repo_root / ".build-and-verify" / "config.json").read_text(encoding="utf-8") + ) + checks = {check["id"]: check for check in config["verify"]["checks"]} + check = checks["verify.docs-sync"] + assert check["command"] == [ + ".\\.venv\\Scripts\\python.exe", + "-m", + "pytest", + "tests\\joinquant_docs_sync\\test_cli.py", + ] + assert ".agents/skills/joinquant-docs-sync/**" in check["paths"] + assert ".claude/skills/joinquant-docs-sync" in check["paths"] + assert "tests/joinquant_docs_sync/test_cli.py" in check["inputs"]