mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 14:34:18 +08:00
- dsl.py: use NDArray type annotations, fix None narrowing - cli.py: add type annotations, fix import sorting - strategy.py: fix UP038 isinstance, add noqa for I() method name - tests: fix E712 bool comparison assertions Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2169 lines
135 KiB
YAML
2169 lines
135 KiB
YAML
- generic [ref=e2]:
|
||
- generic [ref=e3]:
|
||
- link "Skip to content" [ref=e4] [cursor=pointer]:
|
||
- /url: "#start-of-content"
|
||
- banner [ref=e6]:
|
||
- heading "Navigation Menu" [level=2] [ref=e7]
|
||
- generic [ref=e8]:
|
||
- link "Homepage" [ref=e10] [cursor=pointer]:
|
||
- /url: /
|
||
- img [ref=e11]
|
||
- generic [ref=e13]:
|
||
- navigation "Global" [ref=e16]:
|
||
- list [ref=e17]:
|
||
- listitem [ref=e18]:
|
||
- button "Platform" [ref=e20] [cursor=pointer]:
|
||
- text: Platform
|
||
- img [ref=e21]
|
||
- listitem [ref=e23]:
|
||
- button "Solutions" [ref=e25] [cursor=pointer]:
|
||
- text: Solutions
|
||
- img [ref=e26]
|
||
- listitem [ref=e28]:
|
||
- button "Resources" [ref=e30] [cursor=pointer]:
|
||
- text: Resources
|
||
- img [ref=e31]
|
||
- listitem [ref=e33]:
|
||
- button "Open Source" [ref=e35] [cursor=pointer]:
|
||
- text: Open Source
|
||
- img [ref=e36]
|
||
- listitem [ref=e38]:
|
||
- button "Enterprise" [ref=e40] [cursor=pointer]:
|
||
- text: Enterprise
|
||
- img [ref=e41]
|
||
- listitem [ref=e43]:
|
||
- link "Pricing" [ref=e44] [cursor=pointer]:
|
||
- /url: https://github.com/pricing
|
||
- generic [ref=e45]: Pricing
|
||
- generic [ref=e46]:
|
||
- button "Search or jump to…" [ref=e49] [cursor=pointer]:
|
||
- img [ref=e51]
|
||
- link "Sign in" [ref=e54] [cursor=pointer]:
|
||
- /url: /login?return_to=https%3A%2F%2Fgithub.com%2Fhandsomejustin%2Feasy_tdx
|
||
- link "Sign up" [ref=e55] [cursor=pointer]:
|
||
- /url: /signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=handsomejustin%2Feasy_tdx
|
||
- button "Appearance settings" [ref=e58] [cursor=pointer]:
|
||
- img
|
||
- main [ref=e62]:
|
||
- generic [ref=e63]:
|
||
- generic [ref=e64]:
|
||
- generic [ref=e66]:
|
||
- img [ref=e67]
|
||
- link "handsomejustin" [ref=e70] [cursor=pointer]:
|
||
- /url: /handsomejustin
|
||
- generic [ref=e71]: /
|
||
- strong [ref=e72]:
|
||
- link "easy_tdx" [ref=e73] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx
|
||
- generic [ref=e74]: Public
|
||
- generic [ref=e75]:
|
||
- list:
|
||
- listitem [ref=e76]:
|
||
- link "You must be signed in to change notification settings" [ref=e77] [cursor=pointer]:
|
||
- /url: /login?return_to=%2Fhandsomejustin%2Feasy_tdx
|
||
- img [ref=e78]
|
||
- text: Notifications
|
||
- listitem [ref=e80]:
|
||
- link "Fork 23" [ref=e81] [cursor=pointer]:
|
||
- /url: /login?return_to=%2Fhandsomejustin%2Feasy_tdx
|
||
- img [ref=e82]
|
||
- text: Fork
|
||
- generic "23" [ref=e84]
|
||
- listitem [ref=e85]:
|
||
- link "You must be signed in to star a repository" [ref=e87] [cursor=pointer]:
|
||
- /url: /login?return_to=%2Fhandsomejustin%2Feasy_tdx
|
||
- img [ref=e88]
|
||
- text: Star
|
||
- generic "61 users starred this repository" [ref=e90]: "61"
|
||
- navigation "Repository" [ref=e91]:
|
||
- list [ref=e92]:
|
||
- listitem [ref=e93]:
|
||
- link "Code" [ref=e94] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx
|
||
- img [ref=e95]
|
||
- generic [ref=e97]: Code
|
||
- listitem [ref=e98]:
|
||
- link "Pull requests" [ref=e99] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/pulls
|
||
- img [ref=e100]
|
||
- generic [ref=e102]: Pull requests
|
||
- listitem [ref=e103]:
|
||
- link "Actions" [ref=e104] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/actions
|
||
- img [ref=e105]
|
||
- generic [ref=e107]: Actions
|
||
- listitem [ref=e108]:
|
||
- link "Projects" [ref=e109] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/projects
|
||
- img [ref=e110]
|
||
- generic [ref=e112]: Projects
|
||
- listitem [ref=e113]:
|
||
- link "Security and quality" [ref=e114] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/security
|
||
- img [ref=e115]
|
||
- generic [ref=e117]: Security and quality
|
||
- listitem [ref=e118]:
|
||
- link "Insights" [ref=e119] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/pulse
|
||
- img [ref=e120]
|
||
- generic [ref=e122]: Insights
|
||
- generic [ref=e135]:
|
||
- heading "handsomejustin/easy_tdx" [level=1] [ref=e137]
|
||
- generic [ref=e138]:
|
||
- generic [ref=e141]:
|
||
- generic [ref=e142]:
|
||
- generic [ref=e143]:
|
||
- button "main branch" [ref=e145] [cursor=pointer]:
|
||
- generic [ref=e146]:
|
||
- generic [ref=e148]:
|
||
- img [ref=e150]
|
||
- generic [ref=e153]: main
|
||
- generic:
|
||
- img
|
||
- generic [ref=e154]:
|
||
- link "1 Branch" [ref=e155] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/branches
|
||
- generic [ref=e156]:
|
||
- generic:
|
||
- img
|
||
- generic [ref=e158]:
|
||
- strong [ref=e159]: "1"
|
||
- text: Branch
|
||
- link "11 Tags" [ref=e160] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tags
|
||
- generic [ref=e161]:
|
||
- generic:
|
||
- img
|
||
- generic [ref=e163]:
|
||
- strong [ref=e164]: "11"
|
||
- text: Tags
|
||
- generic [ref=e165]:
|
||
- generic [ref=e169]:
|
||
- img [ref=e171]
|
||
- combobox "Go to file" [ref=e173]
|
||
- button "Code" [ref=e174] [cursor=pointer]:
|
||
- generic [ref=e175]:
|
||
- generic:
|
||
- img
|
||
- generic [ref=e176]: Code
|
||
- generic:
|
||
- img
|
||
- generic [ref=e177]:
|
||
- generic [ref=e178]:
|
||
- heading "Folders and files" [level=2] [ref=e179]
|
||
- table "Folders and files" [ref=e180]:
|
||
- rowgroup:
|
||
- row "Name Last commit message Last commit date":
|
||
- columnheader "Name"
|
||
- columnheader "Last commit message":
|
||
- generic "Last commit message"
|
||
- columnheader "Last commit date":
|
||
- generic "Last commit date"
|
||
- rowgroup [ref=e181]:
|
||
- 'row "Latest commit handsomejustin commits by handsomejustin feat: add offline CLI commands and bump version to v1.5.0 Open commit details success Commit b17e984 · Jun 2, 20263 days ago History 57 Commits" [ref=e182]':
|
||
- 'cell "Latest commit handsomejustin commits by handsomejustin feat: add offline CLI commands and bump version to v1.5.0 Open commit details success Commit b17e984 · Jun 2, 20263 days ago History 57 Commits" [ref=e183]':
|
||
- generic [ref=e184]:
|
||
- heading "Latest commit" [level=2] [ref=e185]
|
||
- generic [ref=e186]:
|
||
- generic [ref=e188]:
|
||
- link "handsomejustin" [ref=e189] [cursor=pointer]:
|
||
- /url: /handsomejustin
|
||
- img "handsomejustin" [ref=e190]
|
||
- link "commits by handsomejustin" [ref=e191] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/commits?author=handsomejustin
|
||
- text: handsomejustin
|
||
- generic [ref=e192]:
|
||
- 'link "feat: add offline CLI commands and bump version to v1.5.0" [ref=e195] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/b17e98468b03cf73251b417f24142ad6f352c088
|
||
- button "Open commit details" [ref=e196] [cursor=pointer]:
|
||
- img [ref=e197]
|
||
- button "success" [ref=e199] [cursor=pointer]:
|
||
- img [ref=e200]
|
||
- generic [ref=e202]:
|
||
- generic [ref=e204]:
|
||
- link "Commit b17e984" [ref=e205] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/commit/b17e98468b03cf73251b417f24142ad6f352c088
|
||
- text: b17e984
|
||
- text: ·
|
||
- generic "Jun 2, 2026, 12:30 PM GMT+8" [ref=e206]: Jun 2, 20263 days ago
|
||
- generic [ref=e207]:
|
||
- heading "History" [level=2] [ref=e208]
|
||
- link "57 Commits" [ref=e209] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/commits/main/
|
||
- generic [ref=e210]:
|
||
- generic:
|
||
- img
|
||
- generic [ref=e211]: 57 Commits
|
||
- 'row ".claude, (Directory) skill: add publish skill for PyPI release workflow May 26, 2026last week" [ref=e212]':
|
||
- cell ".claude, (Directory)" [ref=e213]:
|
||
- generic [ref=e214]:
|
||
- img [ref=e215]
|
||
- link ".claude, (Directory)" [ref=e220] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tree/main/.claude
|
||
- text: .claude
|
||
- 'cell "skill: add publish skill for PyPI release workflow" [ref=e221]':
|
||
- 'link "skill: add publish skill for PyPI release workflow" [ref=e224] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/2ec36e01bf9ddfe87a6dd13b677b1f1137929ca4
|
||
- cell "May 26, 2026last week" [ref=e225]:
|
||
- generic [ref=e226]: May 26, 2026last week
|
||
- 'row ".github/workflows, (Directory) ci: disable sigstore attestations to fix 502 from rekor May 26, 2026last week" [ref=e227]':
|
||
- cell ".github/workflows, (Directory)" [ref=e228]:
|
||
- generic [ref=e229]:
|
||
- img [ref=e230]
|
||
- link ".github/workflows, (Directory)" [ref=e235] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tree/main/.github/workflows
|
||
- text: .github/workflows
|
||
- 'cell "ci: disable sigstore attestations to fix 502 from rekor" [ref=e236]':
|
||
- 'link "ci: disable sigstore attestations to fix 502 from rekor" [ref=e239] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/c825515ee61b63b67fc82fce68a798e8aee1947d
|
||
- cell "May 26, 2026last week" [ref=e240]:
|
||
- generic [ref=e241]: May 26, 2026last week
|
||
- 'row ".omc, (Directory) docs: update README to reflect merged datetime fields in DataFrame ou… May 22, 20262 weeks ago" [ref=e242]':
|
||
- cell ".omc, (Directory)" [ref=e243]:
|
||
- generic [ref=e244]:
|
||
- img [ref=e245]
|
||
- link ".omc, (Directory)" [ref=e250] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tree/main/.omc
|
||
- text: .omc
|
||
- 'cell "docs: update README to reflect merged datetime fields in DataFrame ou…" [ref=e251]':
|
||
- 'link "docs: update README to reflect merged datetime fields in DataFrame ou…" [ref=e254] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/d7547f7c4cc77039ed5f9ab30e5c2c3cb652bab4
|
||
- cell "May 22, 20262 weeks ago" [ref=e255]:
|
||
- generic [ref=e256]: May 22, 20262 weeks ago
|
||
- 'row "docs, (Directory) feat: add BIAS_SIGNAL indicator (30-day bias with signal lines) May 28, 2026last week" [ref=e257]':
|
||
- cell "docs, (Directory)" [ref=e258]:
|
||
- generic [ref=e259]:
|
||
- img [ref=e260]
|
||
- link "docs, (Directory)" [ref=e265] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tree/main/docs
|
||
- text: docs
|
||
- 'cell "feat: add BIAS_SIGNAL indicator (30-day bias with signal lines)" [ref=e266]':
|
||
- 'link "feat: add BIAS_SIGNAL indicator (30-day bias with signal lines)" [ref=e269] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/4c5817f7b08703d7564731daac0ca33c912693e6
|
||
- cell "May 28, 2026last week" [ref=e270]:
|
||
- generic [ref=e271]: May 28, 2026last week
|
||
- 'row "examples, (Directory) feat: add offline CLI commands and bump version to v1.5.0 Jun 2, 20263 days ago" [ref=e272]':
|
||
- cell "examples, (Directory)" [ref=e273]:
|
||
- generic [ref=e274]:
|
||
- img [ref=e275]
|
||
- link "examples, (Directory)" [ref=e280] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tree/main/examples
|
||
- text: examples
|
||
- 'cell "feat: add offline CLI commands and bump version to v1.5.0" [ref=e281]':
|
||
- 'link "feat: add offline CLI commands and bump version to v1.5.0" [ref=e284] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/b17e98468b03cf73251b417f24142ad6f352c088
|
||
- cell "Jun 2, 20263 days ago" [ref=e285]:
|
||
- generic [ref=e286]: Jun 2, 20263 days ago
|
||
- 'row "scripts, (Directory) feat!: rename project from xmtdx to easy-tdx May 21, 20262 weeks ago" [ref=e287]':
|
||
- cell "scripts, (Directory)" [ref=e288]:
|
||
- generic [ref=e289]:
|
||
- img [ref=e290]
|
||
- link "scripts, (Directory)" [ref=e295] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tree/main/scripts
|
||
- text: scripts
|
||
- 'cell "feat!: rename project from xmtdx to easy-tdx" [ref=e296]':
|
||
- 'link "feat!: rename project from xmtdx to easy-tdx" [ref=e299] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/50491f9aae4953eeb7baedc8d707a1ae33da833d
|
||
- cell "May 21, 20262 weeks ago" [ref=e300]:
|
||
- generic [ref=e301]: May 21, 20262 weeks ago
|
||
- 'row "src/easy_tdx, (Directory) feat: add offline CLI commands and bump version to v1.5.0 Jun 2, 20263 days ago" [ref=e302]':
|
||
- cell "src/easy_tdx, (Directory)" [ref=e303]:
|
||
- generic [ref=e304]:
|
||
- img [ref=e305]
|
||
- link "src/easy_tdx, (Directory)" [ref=e310] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tree/main/src/easy_tdx
|
||
- text: src/easy_tdx
|
||
- 'cell "feat: add offline CLI commands and bump version to v1.5.0" [ref=e311]':
|
||
- 'link "feat: add offline CLI commands and bump version to v1.5.0" [ref=e314] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/b17e98468b03cf73251b417f24142ad6f352c088
|
||
- cell "Jun 2, 20263 days ago" [ref=e315]:
|
||
- generic [ref=e316]: Jun 2, 20263 days ago
|
||
- 'row "tests, (Directory) feat: add technical indicator calculation (30 indicators via MyTT), b… May 28, 2026last week" [ref=e317]':
|
||
- cell "tests, (Directory)" [ref=e318]:
|
||
- generic [ref=e319]:
|
||
- img [ref=e320]
|
||
- link "tests, (Directory)" [ref=e325] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/tree/main/tests
|
||
- text: tests
|
||
- 'cell "feat: add technical indicator calculation (30 indicators via MyTT), b…" [ref=e326]':
|
||
- 'link "feat: add technical indicator calculation (30 indicators via MyTT), b…" [ref=e329] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/bcddf5a05205e730a6d0b5f747ffd6e387eb3ab5
|
||
- cell "May 28, 2026last week" [ref=e330]:
|
||
- generic [ref=e331]: May 28, 2026last week
|
||
- 'row ".gitignore, (File) chore: remove uv.lock and add to .gitignore May 22, 20262 weeks ago" [ref=e332]':
|
||
- cell ".gitignore, (File)" [ref=e333]:
|
||
- generic [ref=e334]:
|
||
- img [ref=e335]
|
||
- link ".gitignore, (File)" [ref=e340] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/.gitignore
|
||
- text: .gitignore
|
||
- 'cell "chore: remove uv.lock and add to .gitignore" [ref=e341]':
|
||
- 'link "chore: remove uv.lock and add to .gitignore" [ref=e344] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/67a0415c38ef4c78ad720da5ccd3d3a1402a8d5f
|
||
- cell "May 22, 20262 weeks ago" [ref=e345]:
|
||
- generic [ref=e346]: May 22, 20262 weeks ago
|
||
- 'row "CLAUDE.md, (File) feat: merge datetime fields in DataFrame output, hide MinuteBar inter… May 22, 20262 weeks ago" [ref=e347]':
|
||
- cell "CLAUDE.md, (File)" [ref=e348]:
|
||
- generic [ref=e349]:
|
||
- img [ref=e350]
|
||
- link "CLAUDE.md, (File)" [ref=e355] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/CLAUDE.md
|
||
- text: CLAUDE.md
|
||
- 'cell "feat: merge datetime fields in DataFrame output, hide MinuteBar inter…" [ref=e356]':
|
||
- 'link "feat: merge datetime fields in DataFrame output, hide MinuteBar inter…" [ref=e359] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/02701952ca3ba153ae0eaf4c527c8f44f18023b1
|
||
- cell "May 22, 20262 weeks ago" [ref=e360]:
|
||
- generic [ref=e361]: May 22, 20262 weeks ago
|
||
- 'row "LICENSE, (File) feat!: rename project from xmtdx to easy-tdx May 21, 20262 weeks ago" [ref=e362]':
|
||
- cell "LICENSE, (File)" [ref=e363]:
|
||
- generic [ref=e364]:
|
||
- img [ref=e365]
|
||
- link "LICENSE, (File)" [ref=e370] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/LICENSE
|
||
- text: LICENSE
|
||
- 'cell "feat!: rename project from xmtdx to easy-tdx" [ref=e371]':
|
||
- 'link "feat!: rename project from xmtdx to easy-tdx" [ref=e374] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/50491f9aae4953eeb7baedc8d707a1ae33da833d
|
||
- cell "May 21, 20262 weeks ago" [ref=e375]:
|
||
- generic [ref=e376]: May 21, 20262 weeks ago
|
||
- 'row "NOTICE, (File) feat!: rename project from xmtdx to easy-tdx May 21, 20262 weeks ago" [ref=e377]':
|
||
- cell "NOTICE, (File)" [ref=e378]:
|
||
- generic [ref=e379]:
|
||
- img [ref=e380]
|
||
- link "NOTICE, (File)" [ref=e385] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/NOTICE
|
||
- text: NOTICE
|
||
- 'cell "feat!: rename project from xmtdx to easy-tdx" [ref=e386]':
|
||
- 'link "feat!: rename project from xmtdx to easy-tdx" [ref=e389] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/50491f9aae4953eeb7baedc8d707a1ae33da833d
|
||
- cell "May 21, 20262 weeks ago" [ref=e390]:
|
||
- generic [ref=e391]: May 21, 20262 weeks ago
|
||
- 'row "README.md, (File) feat: add offline CLI commands and bump version to v1.5.0 Jun 2, 20263 days ago" [ref=e392]':
|
||
- cell "README.md, (File)" [ref=e393]:
|
||
- generic [ref=e394]:
|
||
- img [ref=e395]
|
||
- link "README.md, (File)" [ref=e400] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/README.md
|
||
- text: README.md
|
||
- 'cell "feat: add offline CLI commands and bump version to v1.5.0" [ref=e401]':
|
||
- 'link "feat: add offline CLI commands and bump version to v1.5.0" [ref=e404] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/b17e98468b03cf73251b417f24142ad6f352c088
|
||
- cell "Jun 2, 20263 days ago" [ref=e405]:
|
||
- generic [ref=e406]: Jun 2, 20263 days ago
|
||
- 'row "pyproject.toml, (File) feat: add offline CLI commands and bump version to v1.5.0 Jun 2, 20263 days ago" [ref=e407]':
|
||
- cell "pyproject.toml, (File)" [ref=e408]:
|
||
- generic [ref=e409]:
|
||
- img [ref=e410]
|
||
- link "pyproject.toml, (File)" [ref=e415] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/pyproject.toml
|
||
- text: pyproject.toml
|
||
- 'cell "feat: add offline CLI commands and bump version to v1.5.0" [ref=e416]':
|
||
- 'link "feat: add offline CLI commands and bump version to v1.5.0" [ref=e419] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/commit/b17e98468b03cf73251b417f24142ad6f352c088
|
||
- cell "Jun 2, 20263 days ago" [ref=e420]:
|
||
- generic [ref=e421]: Jun 2, 20263 days ago
|
||
- generic [ref=e423]:
|
||
- generic [ref=e424]:
|
||
- heading "Repository files navigation" [level=2] [ref=e425]
|
||
- navigation "Repository files" [ref=e426]:
|
||
- list [ref=e427]:
|
||
- listitem [ref=e428]:
|
||
- link "README" [ref=e429] [cursor=pointer]:
|
||
- /url: "#"
|
||
- img [ref=e431]
|
||
- generic [ref=e433]: README
|
||
- listitem [ref=e434]:
|
||
- link "License" [ref=e435] [cursor=pointer]:
|
||
- /url: "#"
|
||
- img [ref=e437]
|
||
- generic [ref=e439]: License
|
||
- button "Outline" [ref=e440] [cursor=pointer]:
|
||
- img [ref=e441]
|
||
- article [ref=e444]:
|
||
- generic [ref=e445]:
|
||
- heading "easy-tdx" [level=1] [ref=e446]
|
||
- 'link "Permalink: easy-tdx" [ref=e447] [cursor=pointer]':
|
||
- /url: "#easy-tdx"
|
||
- img [ref=e448]
|
||
- paragraph [ref=e450]:
|
||
- 'link "License: MIT" [ref=e451] [cursor=pointer]':
|
||
- /url: /handsomejustin/easy_tdx/blob/main/LICENSE
|
||
- 'img "License: MIT" [ref=e452]'
|
||
- link "PyPI" [ref=e453] [cursor=pointer]:
|
||
- /url: https://pypi.org/project/easy-tdx/
|
||
- img "PyPI" [ref=e454]
|
||
- paragraph [ref=e455]:
|
||
- text: 通达信 TCP 行情协议客户端。支持 A 股、港股、美股、期货全市场;内置
|
||
- code [ref=e456]: easy-tdx
|
||
- text: CLI 工具,默认 JSON 输出,天然适配 Claude Code、OpenClaw、Hermes 等 AI Agent 工具链。提供同步 + asyncio 双接口;strict mypy 通过;每一层编解码都有离线 fixture 测试覆盖。
|
||
- generic [ref=e457]:
|
||
- heading "安装" [level=2] [ref=e458]
|
||
- 'link "Permalink: 安装" [ref=e459] [cursor=pointer]':
|
||
- /url: "#安装"
|
||
- img [ref=e460]
|
||
- generic [ref=e462]:
|
||
- generic [ref=e463]: pip install easy-tdx
|
||
- button "Copy code to clipboard" [ref=e465] [cursor=pointer]:
|
||
- img [ref=e466]
|
||
- paragraph [ref=e469]:
|
||
- text: 安装后自动注册
|
||
- code [ref=e470]: easy-tdx
|
||
- text: CLI 命令:
|
||
- generic [ref=e471]:
|
||
- generic [ref=e472]: easy-tdx --help
|
||
- button "Copy code to clipboard" [ref=e474] [cursor=pointer]:
|
||
- img [ref=e475]
|
||
- paragraph [ref=e478]: 开发模式:
|
||
- generic [ref=e479]:
|
||
- generic [ref=e480]:
|
||
- text: pip install -e
|
||
- generic [ref=e481]: "\".[dev]\""
|
||
- button "Copy code to clipboard" [ref=e483] [cursor=pointer]:
|
||
- img [ref=e484]
|
||
- generic [ref=e487]:
|
||
- heading "CLI 参考" [level=2] [ref=e488]
|
||
- 'link "Permalink: CLI 参考" [ref=e489] [cursor=pointer]':
|
||
- /url: "#cli-参考"
|
||
- img [ref=e490]
|
||
- paragraph [ref=e492]:
|
||
- code [ref=e493]: easy-tdx
|
||
- text: 默认输出 JSON(一行一条记录),
|
||
- code [ref=e494]: "--table"
|
||
- text: 切换表格,
|
||
- code [ref=e495]: "--output csv"
|
||
- text: 输出 CSV。
|
||
- generic [ref=e496]:
|
||
- heading "基础" [level=3] [ref=e497]
|
||
- 'link "Permalink: 基础" [ref=e498] [cursor=pointer]':
|
||
- /url: "#基础"
|
||
- img [ref=e499]
|
||
- generic [ref=e501]:
|
||
- generic [ref=e502]:
|
||
- text: easy-tdx ping
|
||
- generic [ref=e503]: "# 服务器测速"
|
||
- text: easy-tdx version
|
||
- generic [ref=e504]: "# 版本号"
|
||
- button "Copy code to clipboard" [ref=e506] [cursor=pointer]:
|
||
- img [ref=e507]
|
||
- generic [ref=e510]:
|
||
- heading "行情" [level=3] [ref=e511]
|
||
- 'link "Permalink: 行情" [ref=e512] [cursor=pointer]':
|
||
- /url: "#行情"
|
||
- img [ref=e513]
|
||
- generic [ref=e515]:
|
||
- generic [ref=e516]:
|
||
- generic [ref=e517]: "# K 线"
|
||
- text: easy-tdx kline SZ 000001 --count 30 --table easy-tdx kline SH 600519 --period 5MIN --adjust QFQ
|
||
- generic [ref=e518]: "# 实时报价"
|
||
- text: easy-tdx quote
|
||
- generic [ref=e519]: "\"SZ 000001,SH 600519\""
|
||
- text: "--table"
|
||
- generic [ref=e520]: "# 市场分类报价(按涨幅排序)"
|
||
- text: easy-tdx quote-list A --count 20 --table easy-tdx quote-list KCB --sort TOTAL_AMOUNT --order ASC easy-tdx quote-list CYB --count 50
|
||
- button "Copy code to clipboard" [ref=e522] [cursor=pointer]:
|
||
- img [ref=e523]
|
||
- generic [ref=e526]:
|
||
- heading "分时 / 成交" [level=3] [ref=e527]
|
||
- 'link "Permalink: 分时 / 成交" [ref=e528] [cursor=pointer]':
|
||
- /url: "#分时--成交"
|
||
- img [ref=e529]
|
||
- generic [ref=e531]:
|
||
- generic [ref=e532]: easy-tdx tick SZ 000001 --table easy-tdx tick SH 600519 --days 5 easy-tdx tick SZ 000001 --date 20250115 easy-tdx transaction SZ 000001 --count 100 --table easy-tdx transaction SH 600519 --date 20250115
|
||
- button "Copy code to clipboard" [ref=e534] [cursor=pointer]:
|
||
- img [ref=e535]
|
||
- generic [ref=e538]:
|
||
- heading "板块" [level=3] [ref=e539]
|
||
- 'link "Permalink: 板块" [ref=e540] [cursor=pointer]':
|
||
- /url: "#板块"
|
||
- img [ref=e541]
|
||
- generic [ref=e543]:
|
||
- generic [ref=e544]:
|
||
- text: easy-tdx board-list --type GN --table easy-tdx board-list --type HY --count 200 easy-tdx board-members 881001 --table easy-tdx belong-board SZ 000001 --table easy-tdx board-summary 881001 --table
|
||
- generic [ref=e545]: "# 板块汇总(成交额/主力净流入/涨跌家数)"
|
||
- text: easy-tdx board-summary 881001 --members --table
|
||
- generic [ref=e546]: "# 含成分股明细"
|
||
- text: easy-tdx board-ranking --type HY --top 10 --table
|
||
- generic [ref=e547]: "# 行业板块排行"
|
||
- text: easy-tdx board-ranking --type GN --sort-by amount
|
||
- generic [ref=e548]: "# 概念板块按成交额排行"
|
||
- button "Copy code to clipboard" [ref=e550] [cursor=pointer]:
|
||
- img [ref=e551]
|
||
- generic [ref=e554]:
|
||
- heading "资金 / 监控" [level=3] [ref=e555]
|
||
- 'link "Permalink: 资金 / 监控" [ref=e556] [cursor=pointer]':
|
||
- /url: "#资金--监控"
|
||
- img [ref=e557]
|
||
- generic [ref=e559]:
|
||
- generic [ref=e560]: easy-tdx capital-flow SH 600519 --table easy-tdx auction SZ 000001 --table easy-tdx unusual SH --count 100 --table easy-tdx market-stat --table easy-tdx server-info --table easy-tdx symbol-info SZ 000001 --table
|
||
- button "Copy code to clipboard" [ref=e562] [cursor=pointer]:
|
||
- img [ref=e563]
|
||
- generic [ref=e566]:
|
||
- heading "技术指标" [level=3] [ref=e567]
|
||
- 'link "Permalink: 技术指标" [ref=e568] [cursor=pointer]':
|
||
- /url: "#技术指标"
|
||
- img [ref=e569]
|
||
- generic [ref=e571]:
|
||
- generic [ref=e572]:
|
||
- text: easy-tdx indicator-list --table
|
||
- generic [ref=e573]: "# 列出所有可用指标"
|
||
- text: easy-tdx indicator MACD -m SH -c 600519 --table
|
||
- generic [ref=e574]: "# MACD"
|
||
- text: easy-tdx indicator KDJ -m SZ -c 000001 --table
|
||
- generic [ref=e575]: "# KDJ"
|
||
- text: easy-tdx indicator RSI -m SH -c 600519 --table
|
||
- generic [ref=e576]: "# RSI"
|
||
- text: easy-tdx indicator BOLL -m SH -c 600519 --table
|
||
- generic [ref=e577]: "# BOLL 布林带"
|
||
- text: easy-tdx indicator DMI -m SH -c 600519 --table
|
||
- generic [ref=e578]: "# DMI 动向指标"
|
||
- text: easy-tdx indicator ATR -m SH -c 600519 --table
|
||
- generic [ref=e579]: "# ATR 真实波幅"
|
||
- text: easy-tdx indicator WR -m SH -c 600519 --table
|
||
- generic [ref=e580]: "# WR 威廉指标"
|
||
- text: easy-tdx indicator CCI -m SH -c 600519 --table
|
||
- generic [ref=e581]: "# CCI 顺势指标"
|
||
- text: easy-tdx indicator BIAS -m SZ -c 000001 --table
|
||
- generic [ref=e582]: "# BIAS 乖离率"
|
||
- text: easy-tdx indicator BIAS_SIGNAL -m SH -c 600519 --table
|
||
- generic [ref=e583]: "# 30日乖离率信号"
|
||
- text: easy-tdx indicator OBV -m SZ -c 000001 --table
|
||
- generic [ref=e584]: "# OBV 能量潮"
|
||
- generic [ref=e585]: "# 多指标同时计算"
|
||
- text: easy-tdx indicator MACD,KDJ,RSI,BOLL -m SH -c 600519 --count 10 --table
|
||
- generic [ref=e586]: "# 自定义参数"
|
||
- text: easy-tdx indicator MACD -m SH -c 600519 --params SHORT=10,LONG=22
|
||
- generic [ref=e587]: "# 分钟线指标"
|
||
- text: easy-tdx indicator MACD -m SH -c 600519 --period 5MIN --count 50
|
||
- generic [ref=e588]: "# 仅输出指标值(不含 OHLCV)"
|
||
- text: easy-tdx indicator RSI -m SZ -c 000001 --no-ohlcv
|
||
- button "Copy code to clipboard" [ref=e590] [cursor=pointer]:
|
||
- img [ref=e591]
|
||
- generic [ref=e594]:
|
||
- heading "捉妖大师(重点)" [level=3] [ref=e595]
|
||
- 'link "Permalink: 捉妖大师(重点)" [ref=e596] [cursor=pointer]':
|
||
- /url: "#捉妖大师重点"
|
||
- img [ref=e597]
|
||
- paragraph [ref=e599]: 捉妖大师是多周期涨幅共振指标,通过 20/60/120 日涨幅及指数平滑判断短中长线趋势是否同向,用于筛选趋势刚启动的强势股。
|
||
- generic [ref=e600]:
|
||
- generic [ref=e601]:
|
||
- text: easy-tdx indicator ZHUOYAO -m SH -c 600519 --count 30 --table
|
||
- generic [ref=e602]: "# 自定义周期参数"
|
||
- text: easy-tdx indicator ZHUOYAO -m SZ -c 000001 --params N1=90,N2=45,N3=15
|
||
- generic [ref=e603]: "# 结合其他指标一起看"
|
||
- text: easy-tdx indicator ZHUOYAO,MACD,KDJ -m SH -c 600519 --count 20 --table
|
||
- button "Copy code to clipboard" [ref=e605] [cursor=pointer]:
|
||
- img [ref=e606]
|
||
- paragraph [ref=e609]: 输出列说明:
|
||
- table [ref=e611]:
|
||
- rowgroup [ref=e612]:
|
||
- row "列名 含义" [ref=e613]:
|
||
- columnheader "列名" [ref=e614]
|
||
- columnheader "含义" [ref=e615]
|
||
- rowgroup [ref=e616]:
|
||
- row "ZY_LONG 长线 — 120 日涨幅的 10 日指数平滑" [ref=e617]:
|
||
- cell "ZY_LONG" [ref=e618]:
|
||
- code [ref=e619]: ZY_LONG
|
||
- cell "长线 — 120 日涨幅的 10 日指数平滑" [ref=e620]
|
||
- row "ZY_MID 中线 — 60 日涨幅(%)" [ref=e621]:
|
||
- cell "ZY_MID" [ref=e622]:
|
||
- code [ref=e623]: ZY_MID
|
||
- cell "中线 — 60 日涨幅(%)" [ref=e624]
|
||
- row "ZY_SHORT 短线 — 20 日涨幅(%)" [ref=e625]:
|
||
- cell "ZY_SHORT" [ref=e626]:
|
||
- code [ref=e627]: ZY_SHORT
|
||
- cell "短线 — 20 日涨幅(%)" [ref=e628]
|
||
- row "ZY_TREND 趋势 — 中线的 10 日指数平滑" [ref=e629]:
|
||
- cell "ZY_TREND" [ref=e630]:
|
||
- code [ref=e631]: ZY_TREND
|
||
- cell "趋势 — 中线的 10 日指数平滑" [ref=e632]
|
||
- paragraph [ref=e633]:
|
||
- strong [ref=e634]: 核心信号:
|
||
- text: 四线全部 > 0 且短线 > 中线 > 长线 = 短中长趋势完全一致向上,是强势股特征。详见
|
||
- link "捉妖大师指标详解" [ref=e635] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/docs/indicator-zhuoyao.md
|
||
- text: 。
|
||
- generic [ref=e636]:
|
||
- heading "30日乖离率信号(重点)" [level=3] [ref=e637]
|
||
- 'link "Permalink: 30日乖离率信号(重点)" [ref=e638] [cursor=pointer]':
|
||
- /url: "#30日乖离率信号重点"
|
||
- img [ref=e639]
|
||
- paragraph [ref=e641]: 30日乖离率信号指标,在标准乖离率(BIAS)基础上叠加短/长信号线,通过三者位置关系判断趋势方向和转折点。源自通达信经典指标。
|
||
- generic [ref=e642]:
|
||
- generic [ref=e643]:
|
||
- text: easy-tdx indicator BIAS_SIGNAL -m SH -c 600519 --count 60 --table
|
||
- generic [ref=e644]: "# 自定义周期参数"
|
||
- text: easy-tdx indicator BIAS_SIGNAL -m SZ -c 000001 --params P=5,M=20
|
||
- generic [ref=e645]: "# 结合其他指标一起看"
|
||
- text: easy-tdx indicator BIAS_SIGNAL,MACD,KDJ -m SH -c 600519 --count 30 --table
|
||
- button "Copy code to clipboard" [ref=e647] [cursor=pointer]:
|
||
- img [ref=e648]
|
||
- paragraph [ref=e651]: 输出列说明:
|
||
- table [ref=e653]:
|
||
- rowgroup [ref=e654]:
|
||
- row "列名 含义" [ref=e655]:
|
||
- columnheader "列名" [ref=e656]
|
||
- columnheader "含义" [ref=e657]
|
||
- rowgroup [ref=e658]:
|
||
- row "BS_X M日乖离率 — 当前价格偏离30日均线的百分比" [ref=e659]:
|
||
- cell "BS_X" [ref=e660]:
|
||
- code [ref=e661]: BS_X
|
||
- cell "M日乖离率 — 当前价格偏离30日均线的百分比" [ref=e662]
|
||
- row "BS_SMA 短周期信号线 — 乖离率的 P 日均线,过滤短期噪音" [ref=e663]:
|
||
- cell "BS_SMA" [ref=e664]:
|
||
- code [ref=e665]: BS_SMA
|
||
- cell "短周期信号线 — 乖离率的 P 日均线,过滤短期噪音" [ref=e666]
|
||
- row "BS_LMA 长周期信号线 — 乖离率的 M 日均线,捕捉中期趋势方向" [ref=e667]:
|
||
- cell "BS_LMA" [ref=e668]:
|
||
- code [ref=e669]: BS_LMA
|
||
- cell "长周期信号线 — 乖离率的 M 日均线,捕捉中期趋势方向" [ref=e670]
|
||
- paragraph [ref=e671]:
|
||
- strong [ref=e672]: 核心信号:
|
||
- text: X > S_SMA 且 X_LMA 上升 = 多头确认(通达信红色);S_SMA > X 或 X_LMA 下降 = 空头预警(通达信绿色)。多空判断非对称设计——多头需两个条件同时满足,空头只需其一,偏向保守预警。详见
|
||
- link "30日乖离率信号指标详解" [ref=e673] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/docs/indicator-bias-signal.md
|
||
- text: 。
|
||
- generic [ref=e674]:
|
||
- generic [ref=e675]: "# Python API 用法 from easy_tdx import MacClient, Market with MacClient.from_best_host() as c: df = c.get_stock_kline_with_indicators( Market.SH, \"600519\", indicators=[\"BIAS_SIGNAL\"], count=60, ) # df 包含: datetime, open, close, high, low, vol, amount # + BS_X, BS_SMA, BS_LMA"
|
||
- button "Copy code to clipboard" [ref=e677] [cursor=pointer]:
|
||
- img [ref=e678]
|
||
- paragraph [ref=e681]: 支持 32 个指标:MACD, KDJ, RSI, BOLL, DMI, ATR, WR, CCI, BIAS, BIAS_SIGNAL, OBV, VR, EMV, MFI, BRAR, ASI, TRIX, DPO, MTM, ROC, EXPMA, BBI, PSY, DFMA, CR, KTN, XSII, MASS, TAQ, ZHUOYAO。
|
||
- generic [ref=e682]:
|
||
- generic [ref=e683]: "# Python API 用法 from easy_tdx import MacClient, Market with MacClient.from_best_host() as c: df = c.get_stock_kline_with_indicators( Market.SH, \"600519\", indicators=[\"ZHUOYAO\"], count=30, ) # df 包含: datetime, open, close, high, low, vol, amount # + ZY_LONG, ZY_MID, ZY_SHORT, ZY_TREND"
|
||
- button "Copy code to clipboard" [ref=e685] [cursor=pointer]:
|
||
- img [ref=e686]
|
||
- paragraph [ref=e689]: 支持 32 个指标:MACD, KDJ, RSI, BOLL, DMI, ATR, WR, CCI, BIAS, BIAS_SIGNAL, OBV, VR, EMV, MFI, BRAR, ASI, TRIX, DPO, MTM, ROC, EXPMA, BBI, PSY, DFMA, CR, KTN, XSII, MASS, TAQ, ZHUOYAO。
|
||
- generic [ref=e690]:
|
||
- heading "财务" [level=3] [ref=e691]
|
||
- 'link "Permalink: 财务" [ref=e692] [cursor=pointer]':
|
||
- /url: "#财务"
|
||
- img [ref=e693]
|
||
- generic [ref=e695]:
|
||
- generic [ref=e696]:
|
||
- text: easy-tdx f10 SH 600519
|
||
- generic [ref=e697]: "# F10 公司信息"
|
||
- text: easy-tdx fund-flow SH 600519
|
||
- generic [ref=e698]: "# 历史资金流向"
|
||
- button "Copy code to clipboard" [ref=e700] [cursor=pointer]:
|
||
- img [ref=e701]
|
||
- generic [ref=e704]:
|
||
- heading "扩展市场(港股/美股/期货)" [level=3] [ref=e705]
|
||
- 'link "Permalink: 扩展市场(港股/美股/期货)" [ref=e706] [cursor=pointer]':
|
||
- /url: "#扩展市场港股美股期货"
|
||
- img [ref=e707]
|
||
- generic [ref=e709]:
|
||
- generic [ref=e710]:
|
||
- text: easy-tdx ex markets
|
||
- generic [ref=e711]: "# 列出可用市场"
|
||
- text: easy-tdx ex kline HK_MAIN_BOARD 00700 --count 30 --table
|
||
- generic [ref=e712]: "# 港股 K 线"
|
||
- text: easy-tdx ex kline US_STOCK AAPL --table
|
||
- generic [ref=e713]: "# 美股 K 线"
|
||
- text: easy-tdx ex quote US_STOCK TSLA --table
|
||
- generic [ref=e714]: "# 美股报价"
|
||
- text: easy-tdx ex quote-list HK_MAIN_BOARD --table
|
||
- generic [ref=e715]: "# 港股商品列表"
|
||
- text: easy-tdx ex tick HK_MAIN_BOARD 00700 --table
|
||
- generic [ref=e716]: "# 港股分时"
|
||
- button "Copy code to clipboard" [ref=e718] [cursor=pointer]:
|
||
- img [ref=e719]
|
||
- generic [ref=e722]:
|
||
- heading "离线数据(无需网络)" [level=3] [ref=e723]
|
||
- 'link "Permalink: 离线数据(无需网络)" [ref=e724] [cursor=pointer]':
|
||
- /url: "#离线数据无需网络"
|
||
- img [ref=e725]
|
||
- paragraph [ref=e727]: 从本地通达信安装目录直接读取数据文件,无需网络连接:
|
||
- generic [ref=e728]:
|
||
- generic [ref=e729]:
|
||
- text: easy-tdx offline home
|
||
- generic [ref=e730]: "# 检测通达信安装目录"
|
||
- text: easy-tdx offline daily SH 600000 --count 10 --table
|
||
- generic [ref=e731]: "# A 股日线"
|
||
- text: easy-tdx offline min SZ 000001 --type lc5 --table
|
||
- generic [ref=e732]: "# 分钟线(5min/lc1/lc5)"
|
||
- text: easy-tdx offline ex-files --table
|
||
- generic [ref=e733]: "# 列出扩展市场可用文件"
|
||
- text: easy-tdx offline ex-daily 38#2_CPI --count 5 --table
|
||
- generic [ref=e734]: "# 扩展市场日线(期货/港股/外盘)"
|
||
- text: easy-tdx offline gbbq C:\new_jyplug\T0002\hq_cache\gbbq --table
|
||
- generic [ref=e735]: "# 股本变迁"
|
||
- text: easy-tdx offline financial C:\new_jyplug\vipdoc\fin\gpcw20260331.dat
|
||
- generic [ref=e736]: "# 历史财务"
|
||
- text: easy-tdx offline blocks C:\new_jyplug\T0002\blocknew --table
|
||
- generic [ref=e737]: "# 自定义板块"
|
||
- button "Copy code to clipboard" [ref=e739] [cursor=pointer]:
|
||
- img [ref=e740]
|
||
- generic [ref=e743]:
|
||
- heading "CLI 命令汇总" [level=2] [ref=e744]
|
||
- 'link "Permalink: CLI 命令汇总" [ref=e745] [cursor=pointer]':
|
||
- /url: "#cli-命令汇总"
|
||
- img [ref=e746]
|
||
- table [ref=e749]:
|
||
- rowgroup [ref=e750]:
|
||
- row "命令 说明" [ref=e751]:
|
||
- columnheader "命令" [ref=e752]
|
||
- columnheader "说明" [ref=e753]
|
||
- rowgroup [ref=e754]:
|
||
- row "ping 服务器延迟测速" [ref=e755]:
|
||
- cell "ping" [ref=e756]:
|
||
- code [ref=e757]: ping
|
||
- cell "服务器延迟测速" [ref=e758]
|
||
- row "version 版本号" [ref=e759]:
|
||
- cell "version" [ref=e760]:
|
||
- code [ref=e761]: version
|
||
- cell "版本号" [ref=e762]
|
||
- row "kline K 线(日/周/月/分钟,支持复权)" [ref=e763]:
|
||
- cell "kline" [ref=e764]:
|
||
- code [ref=e765]: kline
|
||
- cell "K 线(日/周/月/分钟,支持复权)" [ref=e766]
|
||
- row "quote 实时报价(单只/批量)" [ref=e767]:
|
||
- cell "quote" [ref=e768]:
|
||
- code [ref=e769]: quote
|
||
- cell "实时报价(单只/批量)" [ref=e770]
|
||
- row "quote-list 市场分类排序报价(A/SH/SZ/KCB/CYB)" [ref=e771]:
|
||
- cell "quote-list" [ref=e772]:
|
||
- code [ref=e773]: quote-list
|
||
- cell "市场分类排序报价(A/SH/SZ/KCB/CYB)" [ref=e774]
|
||
- row "tick 分时图(单日/多日/历史)" [ref=e775]:
|
||
- cell "tick" [ref=e776]:
|
||
- code [ref=e777]: tick
|
||
- cell "分时图(单日/多日/历史)" [ref=e778]
|
||
- row "transaction 逐笔成交" [ref=e779]:
|
||
- cell "transaction" [ref=e780]:
|
||
- code [ref=e781]: transaction
|
||
- cell "逐笔成交" [ref=e782]
|
||
- row "board-list 板块列表(行业/概念/风格)" [ref=e783]:
|
||
- cell "board-list" [ref=e784]:
|
||
- code [ref=e785]: board-list
|
||
- cell "板块列表(行业/概念/风格)" [ref=e786]
|
||
- row "board-members 板块成分股报价" [ref=e787]:
|
||
- cell "board-members" [ref=e788]:
|
||
- code [ref=e789]: board-members
|
||
- cell "板块成分股报价" [ref=e790]
|
||
- row "board-summary 板块汇总(成交额、主力净流入、涨跌家数)" [ref=e791]:
|
||
- cell "board-summary" [ref=e792]:
|
||
- code [ref=e793]: board-summary
|
||
- cell "板块汇总(成交额、主力净流入、涨跌家数)" [ref=e794]
|
||
- row "board-ranking 板块涨跌幅排行榜(行业/概念排行)" [ref=e795]:
|
||
- cell "board-ranking" [ref=e796]:
|
||
- code [ref=e797]: board-ranking
|
||
- cell "板块涨跌幅排行榜(行业/概念排行)" [ref=e798]
|
||
- row "belong-board 个股所属板块" [ref=e799]:
|
||
- cell "belong-board" [ref=e800]:
|
||
- code [ref=e801]: belong-board
|
||
- cell "个股所属板块" [ref=e802]
|
||
- row "capital-flow 资金流向" [ref=e803]:
|
||
- cell "capital-flow" [ref=e804]:
|
||
- code [ref=e805]: capital-flow
|
||
- cell "资金流向" [ref=e806]
|
||
- row "auction 集合竞价" [ref=e807]:
|
||
- cell "auction" [ref=e808]:
|
||
- code [ref=e809]: auction
|
||
- cell "集合竞价" [ref=e810]
|
||
- row "unusual 市场异动" [ref=e811]:
|
||
- cell "unusual" [ref=e812]:
|
||
- code [ref=e813]: unusual
|
||
- cell "市场异动" [ref=e814]
|
||
- row "market-stat 全市场涨跌统计" [ref=e815]:
|
||
- cell "market-stat" [ref=e816]:
|
||
- code [ref=e817]: market-stat
|
||
- cell "全市场涨跌统计" [ref=e818]
|
||
- row "server-info 服务器交易时段" [ref=e819]:
|
||
- cell "server-info" [ref=e820]:
|
||
- code [ref=e821]: server-info
|
||
- cell "服务器交易时段" [ref=e822]
|
||
- row "symbol-info 个股特征快照" [ref=e823]:
|
||
- cell "symbol-info" [ref=e824]:
|
||
- code [ref=e825]: symbol-info
|
||
- cell "个股特征快照" [ref=e826]
|
||
- row "indicator 技术指标计算(32 个:MACD/KDJ/RSI/BOLL/DMI/ATR...)" [ref=e827]:
|
||
- cell "indicator" [ref=e828]:
|
||
- code [ref=e829]: indicator
|
||
- cell "技术指标计算(32 个:MACD/KDJ/RSI/BOLL/DMI/ATR...)" [ref=e830]
|
||
- row "indicator-list 列出可用技术指标" [ref=e831]:
|
||
- cell "indicator-list" [ref=e832]:
|
||
- code [ref=e833]: indicator-list
|
||
- cell "列出可用技术指标" [ref=e834]
|
||
- row "f10 F10 公司信息" [ref=e835]:
|
||
- cell "f10" [ref=e836]:
|
||
- code [ref=e837]: f10
|
||
- cell "F10 公司信息" [ref=e838]
|
||
- row "fund-flow 历史资金流向" [ref=e839]:
|
||
- cell "fund-flow" [ref=e840]:
|
||
- code [ref=e841]: fund-flow
|
||
- cell "历史资金流向" [ref=e842]
|
||
- row "ex kline 扩展市场 K 线" [ref=e843]:
|
||
- cell "ex kline" [ref=e844]:
|
||
- code [ref=e845]: ex kline
|
||
- cell "扩展市场 K 线" [ref=e846]
|
||
- row "ex quote 扩展市场报价" [ref=e847]:
|
||
- cell "ex quote" [ref=e848]:
|
||
- code [ref=e849]: ex quote
|
||
- cell "扩展市场报价" [ref=e850]
|
||
- row "ex quote-list 扩展市场商品列表" [ref=e851]:
|
||
- cell "ex quote-list" [ref=e852]:
|
||
- code [ref=e853]: ex quote-list
|
||
- cell "扩展市场商品列表" [ref=e854]
|
||
- row "ex tick 扩展市场分时" [ref=e855]:
|
||
- cell "ex tick" [ref=e856]:
|
||
- code [ref=e857]: ex tick
|
||
- cell "扩展市场分时" [ref=e858]
|
||
- row "ex markets 列出可用扩展市场" [ref=e859]:
|
||
- cell "ex markets" [ref=e860]:
|
||
- code [ref=e861]: ex markets
|
||
- cell "列出可用扩展市场" [ref=e862]
|
||
- row "offline home 检测通达信安装目录" [ref=e863]:
|
||
- cell "offline home" [ref=e864]:
|
||
- code [ref=e865]: offline home
|
||
- cell "检测通达信安装目录" [ref=e866]
|
||
- row "offline daily A 股日线(本地 .day 文件)" [ref=e867]:
|
||
- cell "offline daily" [ref=e868]:
|
||
- code [ref=e869]: offline daily
|
||
- cell "A 股日线(本地 .day 文件)" [ref=e870]
|
||
- row "offline min 分钟线(本地 .5/.lc1/.lc5 文件)" [ref=e871]:
|
||
- cell "offline min" [ref=e872]:
|
||
- code [ref=e873]: offline min
|
||
- cell "分钟线(本地 .5/.lc1/.lc5 文件)" [ref=e874]
|
||
- row "offline ex-files 列出扩展市场可用文件" [ref=e875]:
|
||
- cell "offline ex-files" [ref=e876]:
|
||
- code [ref=e877]: offline ex-files
|
||
- cell "列出扩展市场可用文件" [ref=e878]
|
||
- row "offline ex-daily 扩展市场日线(期货/港股/外盘)" [ref=e879]:
|
||
- cell "offline ex-daily" [ref=e880]:
|
||
- code [ref=e881]: offline ex-daily
|
||
- cell "扩展市场日线(期货/港股/外盘)" [ref=e882]
|
||
- row "offline gbbq 股本变迁数据" [ref=e883]:
|
||
- cell "offline gbbq" [ref=e884]:
|
||
- code [ref=e885]: offline gbbq
|
||
- cell "股本变迁数据" [ref=e886]
|
||
- row "offline financial 历史财务数据" [ref=e887]:
|
||
- cell "offline financial" [ref=e888]:
|
||
- code [ref=e889]: offline financial
|
||
- cell "历史财务数据" [ref=e890]
|
||
- row "offline blocks 自定义板块数据" [ref=e891]:
|
||
- cell "offline blocks" [ref=e892]:
|
||
- code [ref=e893]: offline blocks
|
||
- cell "自定义板块数据" [ref=e894]
|
||
- generic [ref=e895]:
|
||
- heading "Python API" [level=2] [ref=e896]
|
||
- 'link "Permalink: Python API" [ref=e897] [cursor=pointer]':
|
||
- /url: "#python-api"
|
||
- img [ref=e898]
|
||
- generic [ref=e900]:
|
||
- heading "连接管理" [level=3] [ref=e901]
|
||
- 'link "Permalink: 连接管理" [ref=e902] [cursor=pointer]':
|
||
- /url: "#连接管理"
|
||
- img [ref=e903]
|
||
- paragraph [ref=e905]:
|
||
- text: 所有客户端支持
|
||
- code [ref=e906]: from_best_host()
|
||
- text: 自动选最低延迟服务器:
|
||
- generic [ref=e907]:
|
||
- generic [ref=e908]: "from easy_tdx import MacClient with MacClient.from_best_host() as c: df = c.get_stock_kline(...)"
|
||
- button "Copy code to clipboard" [ref=e910] [cursor=pointer]:
|
||
- img [ref=e911]
|
||
- table [ref=e915]:
|
||
- rowgroup [ref=e916]:
|
||
- row "客户端 端口 覆盖范围" [ref=e917]:
|
||
- columnheader "客户端" [ref=e918]
|
||
- columnheader "端口" [ref=e919]
|
||
- columnheader "覆盖范围" [ref=e920]
|
||
- rowgroup [ref=e921]:
|
||
- row "MacClient / AsyncMacClient 7709 A 股行情(MAC 协议,推荐)" [ref=e922]:
|
||
- cell "MacClient / AsyncMacClient" [ref=e923]:
|
||
- code [ref=e924]: MacClient
|
||
- text: /
|
||
- code [ref=e925]: AsyncMacClient
|
||
- cell "7709" [ref=e926]
|
||
- cell "A 股行情(MAC 协议,推荐)" [ref=e927]
|
||
- row "MacExClient / AsyncMacExClient 7727 港股/美股/期货(MAC 协议)" [ref=e928]:
|
||
- cell "MacExClient / AsyncMacExClient" [ref=e929]:
|
||
- code [ref=e930]: MacExClient
|
||
- text: /
|
||
- code [ref=e931]: AsyncMacExClient
|
||
- cell "7727" [ref=e932]
|
||
- cell "港股/美股/期货(MAC 协议)" [ref=e933]
|
||
- row "UnifiedTdxClient / AsyncUnifiedTdxClient 自动 A 股 + 扩展市场统一入口" [ref=e934]:
|
||
- cell "UnifiedTdxClient / AsyncUnifiedTdxClient" [ref=e935]:
|
||
- code [ref=e936]: UnifiedTdxClient
|
||
- text: /
|
||
- code [ref=e937]: AsyncUnifiedTdxClient
|
||
- cell "自动" [ref=e938]
|
||
- cell "A 股 + 扩展市场统一入口" [ref=e939]
|
||
- row "TdxClient / AsyncTdxClient 7709 A 股行情(标准协议)" [ref=e940]:
|
||
- cell "TdxClient / AsyncTdxClient" [ref=e941]:
|
||
- code [ref=e942]: TdxClient
|
||
- text: /
|
||
- code [ref=e943]: AsyncTdxClient
|
||
- cell "7709" [ref=e944]
|
||
- cell "A 股行情(标准协议)" [ref=e945]
|
||
- generic [ref=e946]:
|
||
- heading "MAC 协议(推荐)" [level=3] [ref=e947]
|
||
- 'link "Permalink: MAC 协议(推荐)" [ref=e948] [cursor=pointer]':
|
||
- /url: "#mac-协议推荐"
|
||
- img [ref=e949]
|
||
- generic [ref=e951]:
|
||
- heading "报价" [level=4] [ref=e952]
|
||
- 'link "Permalink: 报价" [ref=e953] [cursor=pointer]':
|
||
- /url: "#报价"
|
||
- img [ref=e954]
|
||
- generic [ref=e956]:
|
||
- generic [ref=e957]: "from easy_tdx import MacClient, Market, Category, SortType, SortOrder with MacClient.from_best_host() as c: # 批量报价(最多 80 只/次) df = c.get_stock_quotes([(Market.SH, \"600519\"), (Market.SZ, \"000858\")]) # 市场分类排序报价 df = c.get_stock_quotes_list( Category.A, count=20, sort_type=SortType.CHANGE_PCT, sort_order=SortOrder.DESC, )"
|
||
- button "Copy code to clipboard" [ref=e959] [cursor=pointer]:
|
||
- img [ref=e960]
|
||
- paragraph [ref=e963]:
|
||
- text: 返回列:
|
||
- code [ref=e964]: market, code, name
|
||
- text: + 动态字段(
|
||
- code [ref=e965]: pre_close, open, high, low, close, vol, amount, turnover, vol_ratio
|
||
- text: 等)。
|
||
- generic [ref=e966]:
|
||
- heading "K 线(支持复权)" [level=4] [ref=e967]
|
||
- 'link "Permalink: K 线(支持复权)" [ref=e968] [cursor=pointer]':
|
||
- /url: "#k-线支持复权"
|
||
- img [ref=e969]
|
||
- generic [ref=e971]:
|
||
- generic [ref=e972]: "from easy_tdx import MacClient, Market, Period, Adjust with MacClient.from_best_host() as c: # 日K前复权 df = c.get_stock_kline(Market.SH, \"600519\", Period.DAILY, count=10, adjust=Adjust.QFQ) # 5分钟线 df = c.get_stock_kline(Market.SZ, \"000001\", Period.MIN_5, count=100)"
|
||
- button "Copy code to clipboard" [ref=e974] [cursor=pointer]:
|
||
- img [ref=e975]
|
||
- paragraph [ref=e978]:
|
||
- text: 返回列:
|
||
- code [ref=e979]: datetime, open, close, high, low, vol, amount
|
||
- text: 。
|
||
- generic [ref=e980]:
|
||
- heading "技术指标" [level=4] [ref=e981]
|
||
- 'link "Permalink: 技术指标" [ref=e982] [cursor=pointer]':
|
||
- /url: "#技术指标-1"
|
||
- img [ref=e983]
|
||
- paragraph [ref=e985]:
|
||
- text: 自动获取 200+ 条历史数据预热 EMA,返回最后
|
||
- code [ref=e986]: count
|
||
- text: 条带指标的结果:
|
||
- generic [ref=e987]:
|
||
- generic [ref=e988]: "from easy_tdx import MacClient, Market, Period, Adjust from easy_tdx.indicator import compute_indicators, list_indicators with MacClient.from_best_host() as c: # 便捷方法:获取 K 线 + 计算指标一步完成(默认前复权) df = c.get_stock_kline_with_indicators( Market.SH, \"600519\", indicators=[\"MACD\", \"KDJ\", \"RSI\", \"BOLL\"], count=30, ) # df 包含: datetime, open, close, high, low, vol, amount # + MACD_DIF, MACD_DEA, MACD_HIST, KDJ_K, KDJ_D, KDJ_J, RSI, # BOLL_UPPER, BOLL_MID, BOLL_LOWER # 自定义指标参数 df = c.get_stock_kline_with_indicators( Market.SH, \"600519\", indicators=[\"MACD\"], params={\"MACD\": {\"SHORT\": 10, \"LONG\": 22}}, ) # 独立使用:对已有 DataFrame 计算指标 raw = c.get_stock_kline(Market.SH, \"600519\", Period.DAILY, count=200, adjust=Adjust.QFQ) result = compute_indicators(raw, [\"ATR\", \"CCI\", \"WR\"], tail=30) # 查看所有可用指标 for info in list_indicators(): print(info[\"name\"], info[\"description\"], info[\"outputs\"])"
|
||
- button "Copy code to clipboard" [ref=e990] [cursor=pointer]:
|
||
- img [ref=e991]
|
||
- paragraph [ref=e994]: 支持 31 个技术指标:
|
||
- table [ref=e996]:
|
||
- rowgroup [ref=e997]:
|
||
- row "指标 输入 输出列" [ref=e998]:
|
||
- columnheader "指标" [ref=e999]
|
||
- columnheader "输入" [ref=e1000]
|
||
- columnheader "输出列" [ref=e1001]
|
||
- rowgroup [ref=e1002]:
|
||
- row "MACD close MACD_DIF, MACD_DEA, MACD_HIST" [ref=e1003]:
|
||
- cell "MACD" [ref=e1004]
|
||
- cell "close" [ref=e1005]
|
||
- cell "MACD_DIF, MACD_DEA, MACD_HIST" [ref=e1006]
|
||
- row "KDJ close, high, low KDJ_K, KDJ_D, KDJ_J" [ref=e1007]:
|
||
- cell "KDJ" [ref=e1008]
|
||
- cell "close, high, low" [ref=e1009]
|
||
- cell "KDJ_K, KDJ_D, KDJ_J" [ref=e1010]
|
||
- row "RSI close RSI" [ref=e1011]:
|
||
- cell "RSI" [ref=e1012]
|
||
- cell "close" [ref=e1013]
|
||
- cell "RSI" [ref=e1014]
|
||
- row "BOLL close BOLL_UPPER, BOLL_MID, BOLL_LOWER" [ref=e1015]:
|
||
- cell "BOLL" [ref=e1016]
|
||
- cell "close" [ref=e1017]
|
||
- cell "BOLL_UPPER, BOLL_MID, BOLL_LOWER" [ref=e1018]
|
||
- row "DMI close, high, low DMI_PDI, DMI_MDI, DMI_ADX, DMI_ADXR" [ref=e1019]:
|
||
- cell "DMI" [ref=e1020]
|
||
- cell "close, high, low" [ref=e1021]
|
||
- cell "DMI_PDI, DMI_MDI, DMI_ADX, DMI_ADXR" [ref=e1022]
|
||
- row "ATR close, high, low ATR" [ref=e1023]:
|
||
- cell "ATR" [ref=e1024]
|
||
- cell "close, high, low" [ref=e1025]
|
||
- cell "ATR" [ref=e1026]
|
||
- row "WR close, high, low WR1, WR2" [ref=e1027]:
|
||
- cell "WR" [ref=e1028]
|
||
- cell "close, high, low" [ref=e1029]
|
||
- cell "WR1, WR2" [ref=e1030]
|
||
- row "CCI close, high, low CCI" [ref=e1031]:
|
||
- cell "CCI" [ref=e1032]
|
||
- cell "close, high, low" [ref=e1033]
|
||
- cell "CCI" [ref=e1034]
|
||
- row "BIAS close BIAS1, BIAS2, BIAS3" [ref=e1035]:
|
||
- cell "BIAS" [ref=e1036]
|
||
- cell "close" [ref=e1037]
|
||
- cell "BIAS1, BIAS2, BIAS3" [ref=e1038]
|
||
- row "OBV close, vol OBV" [ref=e1039]:
|
||
- cell "OBV" [ref=e1040]
|
||
- cell "close, vol" [ref=e1041]
|
||
- cell "OBV" [ref=e1042]
|
||
- row "VR close, vol VR" [ref=e1043]:
|
||
- cell "VR" [ref=e1044]
|
||
- cell "close, vol" [ref=e1045]
|
||
- cell "VR" [ref=e1046]
|
||
- row "EMV high, low, vol EMV, EMV_MA" [ref=e1047]:
|
||
- cell "EMV" [ref=e1048]
|
||
- cell "high, low, vol" [ref=e1049]
|
||
- cell "EMV, EMV_MA" [ref=e1050]
|
||
- row "MFI close, high, low, vol MFI" [ref=e1051]:
|
||
- cell "MFI" [ref=e1052]
|
||
- cell "close, high, low, vol" [ref=e1053]
|
||
- cell "MFI" [ref=e1054]
|
||
- row "BRAR open, close, high, low AR, BR" [ref=e1055]:
|
||
- cell "BRAR" [ref=e1056]
|
||
- cell "open, close, high, low" [ref=e1057]
|
||
- cell "AR, BR" [ref=e1058]
|
||
- row "ASI open, close, high, low ASI, ASI_MA" [ref=e1059]:
|
||
- cell "ASI" [ref=e1060]
|
||
- cell "open, close, high, low" [ref=e1061]
|
||
- cell "ASI, ASI_MA" [ref=e1062]
|
||
- row "TRIX close TRIX, TRIX_MA" [ref=e1063]:
|
||
- cell "TRIX" [ref=e1064]
|
||
- cell "close" [ref=e1065]
|
||
- cell "TRIX, TRIX_MA" [ref=e1066]
|
||
- row "DPO close DPO, DPO_MA" [ref=e1067]:
|
||
- cell "DPO" [ref=e1068]
|
||
- cell "close" [ref=e1069]
|
||
- cell "DPO, DPO_MA" [ref=e1070]
|
||
- row "MTM close MTM, MTM_MA" [ref=e1071]:
|
||
- cell "MTM" [ref=e1072]
|
||
- cell "close" [ref=e1073]
|
||
- cell "MTM, MTM_MA" [ref=e1074]
|
||
- row "ROC close ROC, ROC_MA" [ref=e1075]:
|
||
- cell "ROC" [ref=e1076]
|
||
- cell "close" [ref=e1077]
|
||
- cell "ROC, ROC_MA" [ref=e1078]
|
||
- row "EXPMA close EXPMA_12, EXPMA_50" [ref=e1079]:
|
||
- cell "EXPMA" [ref=e1080]
|
||
- cell "close" [ref=e1081]
|
||
- cell "EXPMA_12, EXPMA_50" [ref=e1082]
|
||
- row "BBI close BBI" [ref=e1083]:
|
||
- cell "BBI" [ref=e1084]
|
||
- cell "close" [ref=e1085]
|
||
- cell "BBI" [ref=e1086]
|
||
- row "PSY close PSY, PSY_MA" [ref=e1087]:
|
||
- cell "PSY" [ref=e1088]
|
||
- cell "close" [ref=e1089]
|
||
- cell "PSY, PSY_MA" [ref=e1090]
|
||
- row "DFMA close DFMA_DIF, DFMA_DMA" [ref=e1091]:
|
||
- cell "DFMA" [ref=e1092]
|
||
- cell "close" [ref=e1093]
|
||
- cell "DFMA_DIF, DFMA_DMA" [ref=e1094]
|
||
- row "CR close, high, low CR" [ref=e1095]:
|
||
- cell "CR" [ref=e1096]
|
||
- cell "close, high, low" [ref=e1097]
|
||
- cell "CR" [ref=e1098]
|
||
- row "KTN close, high, low KTN_UPPER, KTN_MID, KTN_LOWER" [ref=e1099]:
|
||
- cell "KTN" [ref=e1100]
|
||
- cell "close, high, low" [ref=e1101]
|
||
- cell "KTN_UPPER, KTN_MID, KTN_LOWER" [ref=e1102]
|
||
- row "XSII close, high, low XSII_TD1, XSII_TD2, XSII_TD3, XSII_TD4" [ref=e1103]:
|
||
- cell "XSII" [ref=e1104]
|
||
- cell "close, high, low" [ref=e1105]
|
||
- cell "XSII_TD1, XSII_TD2, XSII_TD3, XSII_TD4" [ref=e1106]
|
||
- row "MASS high, low MASS, MASS_MA" [ref=e1107]:
|
||
- cell "MASS" [ref=e1108]
|
||
- cell "high, low" [ref=e1109]
|
||
- cell "MASS, MASS_MA" [ref=e1110]
|
||
- row "TAQ high, low TAQ_UP, TAQ_MID, TAQ_DOWN" [ref=e1111]:
|
||
- cell "TAQ" [ref=e1112]
|
||
- cell "high, low" [ref=e1113]
|
||
- cell "TAQ_UP, TAQ_MID, TAQ_DOWN" [ref=e1114]
|
||
- row "ZHUOYAO close ZY_LONG, ZY_MID, ZY_SHORT, ZY_TREND" [ref=e1115]:
|
||
- cell "ZHUOYAO" [ref=e1116]
|
||
- cell "close" [ref=e1117]
|
||
- cell "ZY_LONG, ZY_MID, ZY_SHORT, ZY_TREND" [ref=e1118]
|
||
- row "BIAS_SIGNAL close BS_X, BS_SMA, BS_LMA" [ref=e1119]:
|
||
- cell "BIAS_SIGNAL" [ref=e1120]
|
||
- cell "close" [ref=e1121]
|
||
- cell "BS_X, BS_SMA, BS_LMA" [ref=e1122]
|
||
- generic [ref=e1123]:
|
||
- heading "分时" [level=4] [ref=e1124]
|
||
- 'link "Permalink: 分时" [ref=e1125] [cursor=pointer]':
|
||
- /url: "#分时"
|
||
- img [ref=e1126]
|
||
- generic [ref=e1128]:
|
||
- generic [ref=e1129]: "with MacClient.from_best_host() as c: df = c.get_tick_chart(Market.SH, \"600519\") # 单日分时 df = c.get_tick_charts(Market.SH, \"600519\", days=3) # 多日分时(最多5天) df = c.get_chart_sampling(Market.SH, \"600519\") # 240点缩略采样"
|
||
- button "Copy code to clipboard" [ref=e1131] [cursor=pointer]:
|
||
- img [ref=e1132]
|
||
- generic [ref=e1135]:
|
||
- heading "逐笔成交" [level=4] [ref=e1136]
|
||
- 'link "Permalink: 逐笔成交" [ref=e1137] [cursor=pointer]':
|
||
- /url: "#逐笔成交"
|
||
- img [ref=e1138]
|
||
- generic [ref=e1140]:
|
||
- generic [ref=e1141]: "with MacClient.from_best_host() as c: df = c.get_transactions(Market.SH, \"600519\", count=100) df = c.get_transactions(Market.SH, \"600519\", count=100, date=20250115)"
|
||
- button "Copy code to clipboard" [ref=e1143] [cursor=pointer]:
|
||
- img [ref=e1144]
|
||
- generic [ref=e1147]:
|
||
- heading "板块" [level=4] [ref=e1148]
|
||
- 'link "Permalink: 板块" [ref=e1149] [cursor=pointer]':
|
||
- /url: "#板块-1"
|
||
- img [ref=e1150]
|
||
- generic [ref=e1152]:
|
||
- generic [ref=e1153]: "from easy_tdx import BoardType with MacClient.from_best_host() as c: df = c.get_board_list(BoardType.GN) # 概念板块 df = c.get_board_members(\"881001\", sort_type=SortType.CHANGE_PCT) df = c.get_belong_board(Market.SZ, \"000001\") # 个股所属板块 # 板块汇总:成交额、主力净流入、涨跌家数 summary = c.get_board_summary(\"881001\") # summary = { # \"member_count\": 82, # \"amount\": 5823456000.0, # 板块总成交额(元) # \"vol\": 412356789, # 板块总成交量(股) # \"main_net_amount\": -123456.0, # 当日主力净流入 # \"main_net_3d\": -567890.0, # 近3日主力净流入 # \"main_net_5d\": -234567.0, # 近5日主力净流入 # \"up_count\": 45, # \"down_count\": 37, # \"members\": DataFrame(...), # 成分股明细 # } # 板块涨跌幅排行榜 df = c.get_board_ranking(BoardType.HY, top_n=10, sort_by=\"change_pct\") df = c.get_board_ranking(BoardType.GN, top_n=20, sort_by=\"main_net_amount\") # 返回列:code, name, change_pct, amount, vol, main_net_amount, up_count, down_count, member_count"
|
||
- button "Copy code to clipboard" [ref=e1155] [cursor=pointer]:
|
||
- img [ref=e1156]
|
||
- generic [ref=e1159]:
|
||
- heading "资金流向" [level=4] [ref=e1160]
|
||
- 'link "Permalink: 资金流向" [ref=e1161] [cursor=pointer]':
|
||
- /url: "#资金流向"
|
||
- img [ref=e1162]
|
||
- generic [ref=e1164]:
|
||
- generic [ref=e1165]: "with MacClient.from_best_host() as c: df = c.get_capital_flow(Market.SH, \"600519\")"
|
||
- button "Copy code to clipboard" [ref=e1167] [cursor=pointer]:
|
||
- img [ref=e1168]
|
||
- paragraph [ref=e1171]:
|
||
- text: 返回列:
|
||
- code [ref=e1172]: date, main_in, main_out, main_net, small_in/out/net, mid_in/out/net, large_in/out/net
|
||
- text: 。
|
||
- generic [ref=e1173]:
|
||
- heading "监控" [level=4] [ref=e1174]
|
||
- 'link "Permalink: 监控" [ref=e1175] [cursor=pointer]':
|
||
- /url: "#监控"
|
||
- img [ref=e1176]
|
||
- generic [ref=e1178]:
|
||
- generic [ref=e1179]: "with MacClient.from_best_host() as c: df = c.get_auction(Market.SH, \"600519\") # 集合竞价 df = c.get_unusual(Market.SH) # 市场异动 df = c.get_symbol_info(Market.SZ, \"000001\") # 个股特征快照 df = c.get_server_info() # 服务器交易时段"
|
||
- button "Copy code to clipboard" [ref=e1181] [cursor=pointer]:
|
||
- img [ref=e1182]
|
||
- generic [ref=e1185]:
|
||
- heading "扩展市场" [level=3] [ref=e1186]
|
||
- 'link "Permalink: 扩展市场" [ref=e1187] [cursor=pointer]':
|
||
- /url: "#扩展市场"
|
||
- img [ref=e1188]
|
||
- generic [ref=e1190]:
|
||
- generic [ref=e1191]: "from easy_tdx import MacExClient, ExMarket, Period with MacExClient.from_best_host() as c: count = c.goods_count(ExMarket.HK_MAIN_BOARD) df = c.goods_list(ExMarket.HK_MAIN_BOARD, start=0, count=50) df = c.goods_kline(ExMarket.US_STOCK, \"AAPL\", Period.DAILY, count=10) df = c.goods_quotes([(ExMarket.HK_MAIN_BOARD, \"00700\")]) df = c.goods_tick_chart(ExMarket.HK_MAIN_BOARD, \"00700\") df = c.goods_transaction(ExMarket.HK_MAIN_BOARD, \"00700\", count=100)"
|
||
- button "Copy code to clipboard" [ref=e1193] [cursor=pointer]:
|
||
- img [ref=e1194]
|
||
- generic [ref=e1197]:
|
||
- heading "统一客户端" [level=3] [ref=e1198]
|
||
- 'link "Permalink: 统一客户端" [ref=e1199] [cursor=pointer]':
|
||
- /url: "#统一客户端"
|
||
- img [ref=e1200]
|
||
- generic [ref=e1202]:
|
||
- generic [ref=e1203]: "from easy_tdx import UnifiedTdxClient, ExMarket, Market, Period with UnifiedTdxClient() as client: # A 股 -- 自动路由到 MacClient df = client.get_stock_kline(Market.SH, \"600519\", Period.DAILY, count=5) df = client.get_stock_quotes([(Market.SH, \"600519\")]) df = client.get_board_list() # 扩展市场 -- 自动路由到 MacExClient df = client.goods_kline(ExMarket.HK_MAIN_BOARD, \"00700\", Period.DAILY, count=5)"
|
||
- button "Copy code to clipboard" [ref=e1205] [cursor=pointer]:
|
||
- img [ref=e1206]
|
||
- generic [ref=e1209]:
|
||
- heading "标准协议" [level=3] [ref=e1210]
|
||
- 'link "Permalink: 标准协议" [ref=e1211] [cursor=pointer]':
|
||
- /url: "#标准协议"
|
||
- img [ref=e1212]
|
||
- generic [ref=e1214]:
|
||
- generic [ref=e1215]: "from easy_tdx import TdxClient, Market, KlineCategory with TdxClient.from_best_host() as c: count = c.get_security_count(Market.SH) stocks = c.get_security_list(Market.SH, start=0) quotes = c.get_security_quotes([(Market.SH, \"600000\"), (Market.SZ, \"000001\")]) bars = c.get_security_bars(Market.SZ, \"002176\", KlineCategory.DAY, 0, 100) minute = c.get_minute_time_data(Market.SH, \"600000\") trades = c.get_transaction_data(Market.SH, \"600000\", 0, 20) flow = c.get_fund_flow(Market.SH, \"600519\") blocks = c.get_block_info(\"block_gn.dat\") xdxr = c.get_xdxr_info(Market.SH, \"600519\") stat = c.get_market_stat()"
|
||
- button "Copy code to clipboard" [ref=e1217] [cursor=pointer]:
|
||
- img [ref=e1218]
|
||
- paragraph [ref=e1221]:
|
||
- code [ref=e1222]: AsyncTdxClient
|
||
- text: 提供对应的
|
||
- code [ref=e1223]: async def
|
||
- text: 方法,接口一一对应。
|
||
- generic [ref=e1224]:
|
||
- heading "SecurityQuote 字段说明" [level=3] [ref=e1225]
|
||
- 'link "Permalink: SecurityQuote 字段说明" [ref=e1226] [cursor=pointer]':
|
||
- /url: "#securityquote-字段说明"
|
||
- img [ref=e1227]
|
||
- paragraph [ref=e1229]:
|
||
- code [ref=e1230]: get_security_quotes()
|
||
- text: 返回的 DataFrame 包含以下特殊字段:
|
||
- table [ref=e1232]:
|
||
- rowgroup [ref=e1233]:
|
||
- row "字段 类型 说明" [ref=e1234]:
|
||
- columnheader "字段" [ref=e1235]
|
||
- columnheader "类型" [ref=e1236]
|
||
- columnheader "说明" [ref=e1237]
|
||
- rowgroup [ref=e1238]:
|
||
- row "trading_status int 交易状态标志。0x8020(32800) = 停牌,其余值表示正常交易或集合竞价" [ref=e1239]:
|
||
- cell "trading_status" [ref=e1240]:
|
||
- code [ref=e1241]: trading_status
|
||
- cell "int" [ref=e1242]
|
||
- cell "交易状态标志。0x8020(32800) = 停牌,其余值表示正常交易或集合竞价" [ref=e1243]:
|
||
- text: 交易状态标志。
|
||
- code [ref=e1244]: "0x8020"
|
||
- text: (32800) = 停牌,其余值表示正常交易或集合竞价
|
||
- row "open_amount float 集合竞价成交金额(元)。仅个股有效,指数该字段无意义" [ref=e1245]:
|
||
- cell "open_amount" [ref=e1246]:
|
||
- code [ref=e1247]: open_amount
|
||
- cell "float" [ref=e1248]
|
||
- cell "集合竞价成交金额(元)。仅个股有效,指数该字段无意义" [ref=e1249]
|
||
- row "server_time str 服务器时间,格式 HH:MM:SS.mmm" [ref=e1250]:
|
||
- cell "server_time" [ref=e1251]:
|
||
- code [ref=e1252]: server_time
|
||
- cell "str" [ref=e1253]
|
||
- cell "服务器时间,格式 HH:MM:SS.mmm" [ref=e1254]:
|
||
- text: 服务器时间,格式
|
||
- code [ref=e1255]: HH:MM:SS.mmm
|
||
- 'row "unknown_2 int 指数: 集合竞价成交金额/100;个股: 舍入残差≈0" [ref=e1256]':
|
||
- cell "unknown_2" [ref=e1257]:
|
||
- code [ref=e1258]: unknown_2
|
||
- cell "int" [ref=e1259]
|
||
- 'cell "指数: 集合竞价成交金额/100;个股: 舍入残差≈0" [ref=e1260]'
|
||
- 'row "unknown_3 int 个股: 集合竞价成交金额/100;指数: 负值/无意义" [ref=e1261]':
|
||
- cell "unknown_3" [ref=e1262]:
|
||
- code [ref=e1263]: unknown_3
|
||
- cell "int" [ref=e1264]
|
||
- 'cell "个股: 集合竞价成交金额/100;指数: 负值/无意义" [ref=e1265]'
|
||
- row "unknown_5-8 int 保留字段,恒为 0" [ref=e1266]:
|
||
- cell "unknown_5-8" [ref=e1267]:
|
||
- code [ref=e1268]: unknown_5-8
|
||
- cell "int" [ref=e1269]
|
||
- cell "保留字段,恒为 0" [ref=e1270]
|
||
- paragraph [ref=e1271]: 检测停牌:
|
||
- generic [ref=e1272]:
|
||
- generic [ref=e1273]: df = c.get_security_quotes([(Market.SH, "600000")]) is_suspended = df.iloc[0]["trading_status"] == 0x8020
|
||
- button "Copy code to clipboard" [ref=e1275] [cursor=pointer]:
|
||
- img [ref=e1276]
|
||
- generic [ref=e1279]:
|
||
- heading "离线数据读取" [level=3] [ref=e1280]
|
||
- 'link "Permalink: 离线数据读取" [ref=e1281] [cursor=pointer]':
|
||
- /url: "#离线数据读取"
|
||
- img [ref=e1282]
|
||
- paragraph [ref=e1284]: 无需网络,从本地通达信安装目录直接读取:
|
||
- generic [ref=e1285]:
|
||
- generic [ref=e1286]: from easy_tdx.offline import detect_tdx_home, read_daily_bars, find_daily_bar_file from easy_tdx import Market home = detect_tdx_home() filepath = find_daily_bar_file(Market.SH, "600000") bars = read_daily_bars(filepath)
|
||
- button "Copy code to clipboard" [ref=e1288] [cursor=pointer]:
|
||
- img [ref=e1289]
|
||
- paragraph [ref=e1292]: 支持:日线、分钟线、扩展市场日线、板块、股本变迁、历史财务数据。
|
||
- paragraph [ref=e1293]: v1.5.0 起可通过 CLI 直接使用:
|
||
- generic [ref=e1294]:
|
||
- generic [ref=e1295]: easy-tdx offline daily SH 600000 --count 10 --table easy-tdx offline ex-files --table easy-tdx offline ex-daily 29#A1801 --table
|
||
- button "Copy code to clipboard" [ref=e1297] [cursor=pointer]:
|
||
- img [ref=e1298]
|
||
- generic [ref=e1301]:
|
||
- heading "枚举参考" [level=2] [ref=e1302]
|
||
- 'link "Permalink: 枚举参考" [ref=e1303] [cursor=pointer]':
|
||
- /url: "#枚举参考"
|
||
- img [ref=e1304]
|
||
- generic [ref=e1306]:
|
||
- heading "Period(K 线周期)" [level=3] [ref=e1307]
|
||
- 'link "Permalink: Period(K 线周期)" [ref=e1308] [cursor=pointer]':
|
||
- /url: "#periodk-线周期"
|
||
- img [ref=e1309]
|
||
- table [ref=e1312]:
|
||
- rowgroup [ref=e1313]:
|
||
- row "值 名称 说明" [ref=e1314]:
|
||
- columnheader "值" [ref=e1315]
|
||
- columnheader "名称" [ref=e1316]
|
||
- columnheader "说明" [ref=e1317]
|
||
- rowgroup [ref=e1318]:
|
||
- row "7 MIN_1 1 分钟" [ref=e1319]:
|
||
- cell "7" [ref=e1320]
|
||
- cell "MIN_1" [ref=e1321]:
|
||
- code [ref=e1322]: MIN_1
|
||
- cell "1 分钟" [ref=e1323]
|
||
- row "0 MIN_5 5 分钟" [ref=e1324]:
|
||
- cell "0" [ref=e1325]
|
||
- cell "MIN_5" [ref=e1326]:
|
||
- code [ref=e1327]: MIN_5
|
||
- cell "5 分钟" [ref=e1328]
|
||
- row "1 MIN_15 15 分钟" [ref=e1329]:
|
||
- cell "1" [ref=e1330]
|
||
- cell "MIN_15" [ref=e1331]:
|
||
- code [ref=e1332]: MIN_15
|
||
- cell "15 分钟" [ref=e1333]
|
||
- row "2 MIN_30 30 分钟" [ref=e1334]:
|
||
- cell "2" [ref=e1335]
|
||
- cell "MIN_30" [ref=e1336]:
|
||
- code [ref=e1337]: MIN_30
|
||
- cell "30 分钟" [ref=e1338]
|
||
- row "3 MIN_60 60 分钟" [ref=e1339]:
|
||
- cell "3" [ref=e1340]
|
||
- cell "MIN_60" [ref=e1341]:
|
||
- code [ref=e1342]: MIN_60
|
||
- cell "60 分钟" [ref=e1343]
|
||
- row "4 DAILY 日线" [ref=e1344]:
|
||
- cell "4" [ref=e1345]
|
||
- cell "DAILY" [ref=e1346]:
|
||
- code [ref=e1347]: DAILY
|
||
- cell "日线" [ref=e1348]
|
||
- row "5 WEEKLY 周线" [ref=e1349]:
|
||
- cell "5" [ref=e1350]
|
||
- cell "WEEKLY" [ref=e1351]:
|
||
- code [ref=e1352]: WEEKLY
|
||
- cell "周线" [ref=e1353]
|
||
- row "6 MONTHLY 月线" [ref=e1354]:
|
||
- cell "6" [ref=e1355]
|
||
- cell "MONTHLY" [ref=e1356]:
|
||
- code [ref=e1357]: MONTHLY
|
||
- cell "月线" [ref=e1358]
|
||
- row "10 QUARTERLY 季线" [ref=e1359]:
|
||
- cell "10" [ref=e1360]
|
||
- cell "QUARTERLY" [ref=e1361]:
|
||
- code [ref=e1362]: QUARTERLY
|
||
- cell "季线" [ref=e1363]
|
||
- row "11 YEARLY 年线" [ref=e1364]:
|
||
- cell "11" [ref=e1365]
|
||
- cell "YEARLY" [ref=e1366]:
|
||
- code [ref=e1367]: YEARLY
|
||
- cell "年线" [ref=e1368]
|
||
- generic [ref=e1369]:
|
||
- heading "Adjust(复权类型)" [level=3] [ref=e1370]
|
||
- 'link "Permalink: Adjust(复权类型)" [ref=e1371] [cursor=pointer]':
|
||
- /url: "#adjust复权类型"
|
||
- img [ref=e1372]
|
||
- table [ref=e1375]:
|
||
- rowgroup [ref=e1376]:
|
||
- row "值 名称 说明" [ref=e1377]:
|
||
- columnheader "值" [ref=e1378]
|
||
- columnheader "名称" [ref=e1379]
|
||
- columnheader "说明" [ref=e1380]
|
||
- rowgroup [ref=e1381]:
|
||
- row "0 NONE 不复权" [ref=e1382]:
|
||
- cell "0" [ref=e1383]
|
||
- cell "NONE" [ref=e1384]:
|
||
- code [ref=e1385]: NONE
|
||
- cell "不复权" [ref=e1386]
|
||
- row "1 QFQ 前复权" [ref=e1387]:
|
||
- cell "1" [ref=e1388]
|
||
- cell "QFQ" [ref=e1389]:
|
||
- code [ref=e1390]: QFQ
|
||
- cell "前复权" [ref=e1391]
|
||
- row "2 HFQ 后复权" [ref=e1392]:
|
||
- cell "2" [ref=e1393]
|
||
- cell "HFQ" [ref=e1394]:
|
||
- code [ref=e1395]: HFQ
|
||
- cell "后复权" [ref=e1396]
|
||
- generic [ref=e1397]:
|
||
- heading "Category(市场分类)" [level=3] [ref=e1398]
|
||
- 'link "Permalink: Category(市场分类)" [ref=e1399] [cursor=pointer]':
|
||
- /url: "#category市场分类"
|
||
- img [ref=e1400]
|
||
- table [ref=e1403]:
|
||
- rowgroup [ref=e1404]:
|
||
- row "值 名称 说明" [ref=e1405]:
|
||
- columnheader "值" [ref=e1406]
|
||
- columnheader "名称" [ref=e1407]
|
||
- columnheader "说明" [ref=e1408]
|
||
- rowgroup [ref=e1409]:
|
||
- row "0 SH 上证 A 股" [ref=e1410]:
|
||
- cell "0" [ref=e1411]
|
||
- cell "SH" [ref=e1412]:
|
||
- code [ref=e1413]: SH
|
||
- cell "上证 A 股" [ref=e1414]
|
||
- row "2 SZ 深证 A 股" [ref=e1415]:
|
||
- cell "2" [ref=e1416]
|
||
- cell "SZ" [ref=e1417]:
|
||
- code [ref=e1418]: SZ
|
||
- cell "深证 A 股" [ref=e1419]
|
||
- row "6 A 全部 A 股" [ref=e1420]:
|
||
- cell "6" [ref=e1421]
|
||
- cell "A" [ref=e1422]:
|
||
- code [ref=e1423]: A
|
||
- cell "全部 A 股" [ref=e1424]
|
||
- row "7 B B 股" [ref=e1425]:
|
||
- cell "7" [ref=e1426]
|
||
- cell "B" [ref=e1427]:
|
||
- code [ref=e1428]: B
|
||
- cell "B 股" [ref=e1429]
|
||
- row "8 KCB 科创板" [ref=e1430]:
|
||
- cell "8" [ref=e1431]
|
||
- cell "KCB" [ref=e1432]:
|
||
- code [ref=e1433]: KCB
|
||
- cell "科创板" [ref=e1434]
|
||
- row "12 BJ 北证 A 股" [ref=e1435]:
|
||
- cell "12" [ref=e1436]
|
||
- cell "BJ" [ref=e1437]:
|
||
- code [ref=e1438]: BJ
|
||
- cell "北证 A 股" [ref=e1439]
|
||
- row "14 CYB 创业板" [ref=e1440]:
|
||
- cell "14" [ref=e1441]
|
||
- cell "CYB" [ref=e1442]:
|
||
- code [ref=e1443]: CYB
|
||
- cell "创业板" [ref=e1444]
|
||
- generic [ref=e1445]:
|
||
- heading "BoardType(板块类型)" [level=3] [ref=e1446]
|
||
- 'link "Permalink: BoardType(板块类型)" [ref=e1447] [cursor=pointer]':
|
||
- /url: "#boardtype板块类型"
|
||
- img [ref=e1448]
|
||
- table [ref=e1451]:
|
||
- rowgroup [ref=e1452]:
|
||
- row "值 名称 说明" [ref=e1453]:
|
||
- columnheader "值" [ref=e1454]
|
||
- columnheader "名称" [ref=e1455]
|
||
- columnheader "说明" [ref=e1456]
|
||
- rowgroup [ref=e1457]:
|
||
- row "0 HY 行业一级" [ref=e1458]:
|
||
- cell "0" [ref=e1459]
|
||
- cell "HY" [ref=e1460]:
|
||
- code [ref=e1461]: HY
|
||
- cell "行业一级" [ref=e1462]
|
||
- row "1 HY2 行业二级" [ref=e1463]:
|
||
- cell "1" [ref=e1464]
|
||
- cell "HY2" [ref=e1465]:
|
||
- code [ref=e1466]: HY2
|
||
- cell "行业二级" [ref=e1467]
|
||
- row "3 GN 概念" [ref=e1468]:
|
||
- cell "3" [ref=e1469]
|
||
- cell "GN" [ref=e1470]:
|
||
- code [ref=e1471]: GN
|
||
- cell "概念" [ref=e1472]
|
||
- row "4 FG 风格" [ref=e1473]:
|
||
- cell "4" [ref=e1474]
|
||
- cell "FG" [ref=e1475]:
|
||
- code [ref=e1476]: FG
|
||
- cell "风格" [ref=e1477]
|
||
- row "5 DQ 地区" [ref=e1478]:
|
||
- cell "5" [ref=e1479]
|
||
- cell "DQ" [ref=e1480]:
|
||
- code [ref=e1481]: DQ
|
||
- cell "地区" [ref=e1482]
|
||
- row "255 ALL 全部" [ref=e1483]:
|
||
- cell "255" [ref=e1484]
|
||
- cell "ALL" [ref=e1485]:
|
||
- code [ref=e1486]: ALL
|
||
- cell "全部" [ref=e1487]
|
||
- generic [ref=e1488]:
|
||
- heading "SortType(排序字段)" [level=3] [ref=e1489]
|
||
- 'link "Permalink: SortType(排序字段)" [ref=e1490] [cursor=pointer]':
|
||
- /url: "#sorttype排序字段"
|
||
- img [ref=e1491]
|
||
- table [ref=e1494]:
|
||
- rowgroup [ref=e1495]:
|
||
- row "名称 说明" [ref=e1496]:
|
||
- columnheader "名称" [ref=e1497]
|
||
- columnheader "说明" [ref=e1498]
|
||
- rowgroup [ref=e1499]:
|
||
- row "CODE 代码" [ref=e1500]:
|
||
- cell "CODE" [ref=e1501]:
|
||
- code [ref=e1502]: CODE
|
||
- cell "代码" [ref=e1503]
|
||
- row "PRICE 现价" [ref=e1504]:
|
||
- cell "PRICE" [ref=e1505]:
|
||
- code [ref=e1506]: PRICE
|
||
- cell "现价" [ref=e1507]
|
||
- row "CHANGE_PCT 涨幅%" [ref=e1508]:
|
||
- cell "CHANGE_PCT" [ref=e1509]:
|
||
- code [ref=e1510]: CHANGE_PCT
|
||
- cell "涨幅%" [ref=e1511]
|
||
- row "VOLUME 成交量" [ref=e1512]:
|
||
- cell "VOLUME" [ref=e1513]:
|
||
- code [ref=e1514]: VOLUME
|
||
- cell "成交量" [ref=e1515]
|
||
- row "TOTAL_AMOUNT 成交额" [ref=e1516]:
|
||
- cell "TOTAL_AMOUNT" [ref=e1517]:
|
||
- code [ref=e1518]: TOTAL_AMOUNT
|
||
- cell "成交额" [ref=e1519]
|
||
- row "TURNOVER_RATE 换手%" [ref=e1520]:
|
||
- cell "TURNOVER_RATE" [ref=e1521]:
|
||
- code [ref=e1522]: TURNOVER_RATE
|
||
- cell "换手%" [ref=e1523]
|
||
- row "MAIN_NET_AMOUNT 主力净额" [ref=e1524]:
|
||
- cell "MAIN_NET_AMOUNT" [ref=e1525]:
|
||
- code [ref=e1526]: MAIN_NET_AMOUNT
|
||
- cell "主力净额" [ref=e1527]
|
||
- generic [ref=e1528]:
|
||
- heading "ExMarket(扩展市场)" [level=3] [ref=e1529]
|
||
- 'link "Permalink: ExMarket(扩展市场)" [ref=e1530] [cursor=pointer]':
|
||
- /url: "#exmarket扩展市场"
|
||
- img [ref=e1531]
|
||
- table [ref=e1534]:
|
||
- rowgroup [ref=e1535]:
|
||
- row "值 名称 说明" [ref=e1536]:
|
||
- columnheader "值" [ref=e1537]
|
||
- columnheader "名称" [ref=e1538]
|
||
- columnheader "说明" [ref=e1539]
|
||
- rowgroup [ref=e1540]:
|
||
- row "28 ZZ_FUTURES 郑州商品" [ref=e1541]:
|
||
- cell "28" [ref=e1542]
|
||
- cell "ZZ_FUTURES" [ref=e1543]:
|
||
- code [ref=e1544]: ZZ_FUTURES
|
||
- cell "郑州商品" [ref=e1545]
|
||
- row "29 DL_FUTURES 大连商品" [ref=e1546]:
|
||
- cell "29" [ref=e1547]
|
||
- cell "DL_FUTURES" [ref=e1548]:
|
||
- code [ref=e1549]: DL_FUTURES
|
||
- cell "大连商品" [ref=e1550]
|
||
- row "30 SH_FUTURES 上海期货" [ref=e1551]:
|
||
- cell "30" [ref=e1552]
|
||
- cell "SH_FUTURES" [ref=e1553]:
|
||
- code [ref=e1554]: SH_FUTURES
|
||
- cell "上海期货" [ref=e1555]
|
||
- row "31 HK_MAIN_BOARD 香港主板" [ref=e1556]:
|
||
- cell "31" [ref=e1557]
|
||
- cell "HK_MAIN_BOARD" [ref=e1558]:
|
||
- code [ref=e1559]: HK_MAIN_BOARD
|
||
- cell "香港主板" [ref=e1560]
|
||
- row "47 CFFEX_FUTURES 中金所期货" [ref=e1561]:
|
||
- cell "47" [ref=e1562]
|
||
- cell "CFFEX_FUTURES" [ref=e1563]:
|
||
- code [ref=e1564]: CFFEX_FUTURES
|
||
- cell "中金所期货" [ref=e1565]
|
||
- row "48 HK_GEM 香港创业板" [ref=e1566]:
|
||
- cell "48" [ref=e1567]
|
||
- cell "HK_GEM" [ref=e1568]:
|
||
- code [ref=e1569]: HK_GEM
|
||
- cell "香港创业板" [ref=e1570]
|
||
- row "74 US_STOCK 美国股票" [ref=e1571]:
|
||
- cell "74" [ref=e1572]
|
||
- cell "US_STOCK" [ref=e1573]:
|
||
- code [ref=e1574]: US_STOCK
|
||
- cell "美国股票" [ref=e1575]
|
||
- generic [ref=e1576]:
|
||
- heading "Market(市场)" [level=3] [ref=e1577]
|
||
- 'link "Permalink: Market(市场)" [ref=e1578] [cursor=pointer]':
|
||
- /url: "#market市场"
|
||
- img [ref=e1579]
|
||
- table [ref=e1582]:
|
||
- rowgroup [ref=e1583]:
|
||
- row "值 名称 说明" [ref=e1584]:
|
||
- columnheader "值" [ref=e1585]
|
||
- columnheader "名称" [ref=e1586]
|
||
- columnheader "说明" [ref=e1587]
|
||
- rowgroup [ref=e1588]:
|
||
- row "0 SZ 深圳" [ref=e1589]:
|
||
- cell "0" [ref=e1590]
|
||
- cell "SZ" [ref=e1591]:
|
||
- code [ref=e1592]: SZ
|
||
- cell "深圳" [ref=e1593]
|
||
- row "1 SH 上海" [ref=e1594]:
|
||
- cell "1" [ref=e1595]
|
||
- cell "SH" [ref=e1596]:
|
||
- code [ref=e1597]: SH
|
||
- cell "上海" [ref=e1598]
|
||
- row "2 BJ 北京" [ref=e1599]:
|
||
- cell "2" [ref=e1600]
|
||
- cell "BJ" [ref=e1601]:
|
||
- code [ref=e1602]: BJ
|
||
- cell "北京" [ref=e1603]
|
||
- generic [ref=e1604]:
|
||
- heading "完整 API 列表" [level=2] [ref=e1605]
|
||
- 'link "Permalink: 完整 API 列表" [ref=e1606] [cursor=pointer]':
|
||
- /url: "#完整-api-列表"
|
||
- img [ref=e1607]
|
||
- generic [ref=e1609]:
|
||
- heading "MacClient / AsyncMacClient" [level=3] [ref=e1610]
|
||
- 'link "Permalink: MacClient / AsyncMacClient" [ref=e1611] [cursor=pointer]':
|
||
- /url: "#macclient--asyncmacclient"
|
||
- img [ref=e1612]
|
||
- table [ref=e1615]:
|
||
- rowgroup [ref=e1616]:
|
||
- row "方法 说明" [ref=e1617]:
|
||
- columnheader "方法" [ref=e1618]
|
||
- columnheader "说明" [ref=e1619]
|
||
- rowgroup [ref=e1620]:
|
||
- row "get_stock_quotes(stocks, fields) 批量实时报价" [ref=e1621]:
|
||
- cell "get_stock_quotes(stocks, fields)" [ref=e1622]:
|
||
- code [ref=e1623]: get_stock_quotes(stocks, fields)
|
||
- cell "批量实时报价" [ref=e1624]
|
||
- row "get_stock_quotes_list(category, ...) 市场分类排序报价" [ref=e1625]:
|
||
- cell "get_stock_quotes_list(category, ...)" [ref=e1626]:
|
||
- code [ref=e1627]: get_stock_quotes_list(category, ...)
|
||
- cell "市场分类排序报价" [ref=e1628]
|
||
- row "get_stock_kline(market, code, period, ...) K 线(支持复权)" [ref=e1629]:
|
||
- cell "get_stock_kline(market, code, period, ...)" [ref=e1630]:
|
||
- code [ref=e1631]: get_stock_kline(market, code, period, ...)
|
||
- cell "K 线(支持复权)" [ref=e1632]
|
||
- row "get_stock_kline_with_indicators(market, code, indicators, ...) K 线 + 技术指标" [ref=e1633]:
|
||
- cell "get_stock_kline_with_indicators(market, code, indicators, ...)" [ref=e1634]:
|
||
- code [ref=e1635]: get_stock_kline_with_indicators(market, code, indicators, ...)
|
||
- cell "K 线 + 技术指标" [ref=e1636]
|
||
- row "get_tick_chart(market, code, date) 单日分时图" [ref=e1637]:
|
||
- cell "get_tick_chart(market, code, date)" [ref=e1638]:
|
||
- code [ref=e1639]: get_tick_chart(market, code, date)
|
||
- cell "单日分时图" [ref=e1640]
|
||
- row "get_tick_charts(market, code, days) 多日分时图" [ref=e1641]:
|
||
- cell "get_tick_charts(market, code, days)" [ref=e1642]:
|
||
- code [ref=e1643]: get_tick_charts(market, code, days)
|
||
- cell "多日分时图" [ref=e1644]
|
||
- row "get_chart_sampling(market, code) 分时缩略采样" [ref=e1645]:
|
||
- cell "get_chart_sampling(market, code)" [ref=e1646]:
|
||
- code [ref=e1647]: get_chart_sampling(market, code)
|
||
- cell "分时缩略采样" [ref=e1648]
|
||
- row "get_transactions(market, code, ...) 逐笔成交" [ref=e1649]:
|
||
- cell "get_transactions(market, code, ...)" [ref=e1650]:
|
||
- code [ref=e1651]: get_transactions(market, code, ...)
|
||
- cell "逐笔成交" [ref=e1652]
|
||
- row "get_symbol_info(market, code) 个股特征快照" [ref=e1653]:
|
||
- cell "get_symbol_info(market, code)" [ref=e1654]:
|
||
- code [ref=e1655]: get_symbol_info(market, code)
|
||
- cell "个股特征快照" [ref=e1656]
|
||
- row "get_board_list(board_type, ...) 板块列表" [ref=e1657]:
|
||
- cell "get_board_list(board_type, ...)" [ref=e1658]:
|
||
- code [ref=e1659]: get_board_list(board_type, ...)
|
||
- cell "板块列表" [ref=e1660]
|
||
- row "get_board_members(board_symbol, ...) 板块成分股报价" [ref=e1661]:
|
||
- cell "get_board_members(board_symbol, ...)" [ref=e1662]:
|
||
- code [ref=e1663]: get_board_members(board_symbol, ...)
|
||
- cell "板块成分股报价" [ref=e1664]
|
||
- row "get_board_summary(board_symbol, ...) 板块汇总(成交额、主力净流入、涨跌家数)" [ref=e1665]:
|
||
- cell "get_board_summary(board_symbol, ...)" [ref=e1666]:
|
||
- code [ref=e1667]: get_board_summary(board_symbol, ...)
|
||
- cell "板块汇总(成交额、主力净流入、涨跌家数)" [ref=e1668]
|
||
- row "get_board_ranking(board_type, top_n, sort_by, ...) 板块涨跌幅排行榜(行业/概念排行)" [ref=e1669]:
|
||
- cell "get_board_ranking(board_type, top_n, sort_by, ...)" [ref=e1670]:
|
||
- code [ref=e1671]: get_board_ranking(board_type, top_n, sort_by, ...)
|
||
- cell "板块涨跌幅排行榜(行业/概念排行)" [ref=e1672]
|
||
- row "get_belong_board(market, code) 个股所属板块" [ref=e1673]:
|
||
- cell "get_belong_board(market, code)" [ref=e1674]:
|
||
- code [ref=e1675]: get_belong_board(market, code)
|
||
- cell "个股所属板块" [ref=e1676]
|
||
- row "get_capital_flow(market, code) 资金流向" [ref=e1677]:
|
||
- cell "get_capital_flow(market, code)" [ref=e1678]:
|
||
- code [ref=e1679]: get_capital_flow(market, code)
|
||
- cell "资金流向" [ref=e1680]
|
||
- row "get_auction(market, code) 集合竞价" [ref=e1681]:
|
||
- cell "get_auction(market, code)" [ref=e1682]:
|
||
- code [ref=e1683]: get_auction(market, code)
|
||
- cell "集合竞价" [ref=e1684]
|
||
- row "get_unusual(market, ...) 市场异动" [ref=e1685]:
|
||
- cell "get_unusual(market, ...)" [ref=e1686]:
|
||
- code [ref=e1687]: get_unusual(market, ...)
|
||
- cell "市场异动" [ref=e1688]
|
||
- row "get_server_info() 服务器交易时段" [ref=e1689]:
|
||
- cell "get_server_info()" [ref=e1690]:
|
||
- code [ref=e1691]: get_server_info()
|
||
- cell "服务器交易时段" [ref=e1692]
|
||
- row "get_kline_offset(offset, count) K 线偏移信息" [ref=e1693]:
|
||
- cell "get_kline_offset(offset, count)" [ref=e1694]:
|
||
- code [ref=e1695]: get_kline_offset(offset, count)
|
||
- cell "K 线偏移信息" [ref=e1696]
|
||
- row "get_goods_list(market, ...) 扩展市场商品列表" [ref=e1697]:
|
||
- cell "get_goods_list(market, ...)" [ref=e1698]:
|
||
- code [ref=e1699]: get_goods_list(market, ...)
|
||
- cell "扩展市场商品列表" [ref=e1700]
|
||
- generic [ref=e1701]:
|
||
- heading "MacExClient / AsyncMacExClient" [level=3] [ref=e1702]
|
||
- 'link "Permalink: MacExClient / AsyncMacExClient" [ref=e1703] [cursor=pointer]':
|
||
- /url: "#macexclient--asyncmacexclient"
|
||
- img [ref=e1704]
|
||
- table [ref=e1707]:
|
||
- rowgroup [ref=e1708]:
|
||
- row "方法 说明" [ref=e1709]:
|
||
- columnheader "方法" [ref=e1710]
|
||
- columnheader "说明" [ref=e1711]
|
||
- rowgroup [ref=e1712]:
|
||
- row "goods_count(market) 商品总数" [ref=e1713]:
|
||
- cell "goods_count(market)" [ref=e1714]:
|
||
- code [ref=e1715]: goods_count(market)
|
||
- cell "商品总数" [ref=e1716]
|
||
- row "goods_list(market, start, count) 商品列表" [ref=e1717]:
|
||
- cell "goods_list(market, start, count)" [ref=e1718]:
|
||
- code [ref=e1719]: goods_list(market, start, count)
|
||
- cell "商品列表" [ref=e1720]
|
||
- row "goods_quotes(stocks, fields) 批量报价" [ref=e1721]:
|
||
- cell "goods_quotes(stocks, fields)" [ref=e1722]:
|
||
- code [ref=e1723]: goods_quotes(stocks, fields)
|
||
- cell "批量报价" [ref=e1724]
|
||
- row "goods_quotes_list(market, ...) 市场分类报价列表" [ref=e1725]:
|
||
- cell "goods_quotes_list(market, ...)" [ref=e1726]:
|
||
- code [ref=e1727]: goods_quotes_list(market, ...)
|
||
- cell "市场分类报价列表" [ref=e1728]
|
||
- row "goods_kline(market, code, period, ...) K 线(支持复权)" [ref=e1729]:
|
||
- cell "goods_kline(market, code, period, ...)" [ref=e1730]:
|
||
- code [ref=e1731]: goods_kline(market, code, period, ...)
|
||
- cell "K 线(支持复权)" [ref=e1732]
|
||
- row "goods_tick_chart(market, code, ...) 分时图" [ref=e1733]:
|
||
- cell "goods_tick_chart(market, code, ...)" [ref=e1734]:
|
||
- code [ref=e1735]: goods_tick_chart(market, code, ...)
|
||
- cell "分时图" [ref=e1736]
|
||
- row "goods_chart_sampling(market, code) 分时缩略采样" [ref=e1737]:
|
||
- cell "goods_chart_sampling(market, code)" [ref=e1738]:
|
||
- code [ref=e1739]: goods_chart_sampling(market, code)
|
||
- cell "分时缩略采样" [ref=e1740]
|
||
- row "goods_transaction(market, code, ...) 逐笔成交" [ref=e1741]:
|
||
- cell "goods_transaction(market, code, ...)" [ref=e1742]:
|
||
- code [ref=e1743]: goods_transaction(market, code, ...)
|
||
- cell "逐笔成交" [ref=e1744]
|
||
- generic [ref=e1745]:
|
||
- heading "TdxClient / AsyncTdxClient" [level=3] [ref=e1746]
|
||
- 'link "Permalink: TdxClient / AsyncTdxClient" [ref=e1747] [cursor=pointer]':
|
||
- /url: "#tdxclient--asynctdxclient"
|
||
- img [ref=e1748]
|
||
- table [ref=e1751]:
|
||
- rowgroup [ref=e1752]:
|
||
- row "方法 说明" [ref=e1753]:
|
||
- columnheader "方法" [ref=e1754]
|
||
- columnheader "说明" [ref=e1755]
|
||
- rowgroup [ref=e1756]:
|
||
- row "get_security_count(market) 市场证券总数" [ref=e1757]:
|
||
- cell "get_security_count(market)" [ref=e1758]:
|
||
- code [ref=e1759]: get_security_count(market)
|
||
- cell "市场证券总数" [ref=e1760]
|
||
- row "get_security_list(market, start) 证券列表(分页)" [ref=e1761]:
|
||
- cell "get_security_list(market, start)" [ref=e1762]:
|
||
- code [ref=e1763]: get_security_list(market, start)
|
||
- cell "证券列表(分页)" [ref=e1764]
|
||
- row "get_security_list_all() 沪深 A 股完整列表(含行业)" [ref=e1765]:
|
||
- cell "get_security_list_all()" [ref=e1766]:
|
||
- code [ref=e1767]: get_security_list_all()
|
||
- cell "沪深 A 股完整列表(含行业)" [ref=e1768]
|
||
- row "get_security_quotes(stocks) 批量五档行情" [ref=e1769]:
|
||
- cell "get_security_quotes(stocks)" [ref=e1770]:
|
||
- code [ref=e1771]: get_security_quotes(stocks)
|
||
- cell "批量五档行情" [ref=e1772]
|
||
- row "get_security_bars(market, code, ...) 个股 K 线" [ref=e1773]:
|
||
- cell "get_security_bars(market, code, ...)" [ref=e1774]:
|
||
- code [ref=e1775]: get_security_bars(market, code, ...)
|
||
- cell "个股 K 线" [ref=e1776]
|
||
- row "get_index_bars(market, code, ...) 指数 K 线" [ref=e1777]:
|
||
- cell "get_index_bars(market, code, ...)" [ref=e1778]:
|
||
- code [ref=e1779]: get_index_bars(market, code, ...)
|
||
- cell "指数 K 线" [ref=e1780]
|
||
- row "get_minute_time_data(market, code) 今日分时" [ref=e1781]:
|
||
- cell "get_minute_time_data(market, code)" [ref=e1782]:
|
||
- code [ref=e1783]: get_minute_time_data(market, code)
|
||
- cell "今日分时" [ref=e1784]
|
||
- row "get_history_minute_time_data(market, code, date) 历史分时" [ref=e1785]:
|
||
- cell "get_history_minute_time_data(market, code, date)" [ref=e1786]:
|
||
- code [ref=e1787]: get_history_minute_time_data(market, code, date)
|
||
- cell "历史分时" [ref=e1788]
|
||
- row "get_transaction_data(market, code, ...) 当日逐笔成交" [ref=e1789]:
|
||
- cell "get_transaction_data(market, code, ...)" [ref=e1790]:
|
||
- code [ref=e1791]: get_transaction_data(market, code, ...)
|
||
- cell "当日逐笔成交" [ref=e1792]
|
||
- row "get_history_transaction_data(...) 历史逐笔成交" [ref=e1793]:
|
||
- cell "get_history_transaction_data(...)" [ref=e1794]:
|
||
- code [ref=e1795]: get_history_transaction_data(...)
|
||
- cell "历史逐笔成交" [ref=e1796]
|
||
- row "get_fund_flow(market, code) 当日资金流向" [ref=e1797]:
|
||
- cell "get_fund_flow(market, code)" [ref=e1798]:
|
||
- code [ref=e1799]: get_fund_flow(market, code)
|
||
- cell "当日资金流向" [ref=e1800]
|
||
- row "get_history_fund_flow(market, code, ...) 历史资金流向" [ref=e1801]:
|
||
- cell "get_history_fund_flow(market, code, ...)" [ref=e1802]:
|
||
- code [ref=e1803]: get_history_fund_flow(market, code, ...)
|
||
- cell "历史资金流向" [ref=e1804]
|
||
- row "get_xdxr_info(market, code) 除权除息历史" [ref=e1805]:
|
||
- cell "get_xdxr_info(market, code)" [ref=e1806]:
|
||
- code [ref=e1807]: get_xdxr_info(market, code)
|
||
- cell "除权除息历史" [ref=e1808]
|
||
- row "get_finance_info(market, code) 最新财务数据" [ref=e1809]:
|
||
- cell "get_finance_info(market, code)" [ref=e1810]:
|
||
- code [ref=e1811]: get_finance_info(market, code)
|
||
- cell "最新财务数据" [ref=e1812]
|
||
- row "get_company_info_category(market, code) 公司信息目录" [ref=e1813]:
|
||
- cell "get_company_info_category(market, code)" [ref=e1814]:
|
||
- code [ref=e1815]: get_company_info_category(market, code)
|
||
- cell "公司信息目录" [ref=e1816]
|
||
- row "get_company_info_content(...) 公司信息文本" [ref=e1817]:
|
||
- cell "get_company_info_content(...)" [ref=e1818]:
|
||
- code [ref=e1819]: get_company_info_content(...)
|
||
- cell "公司信息文本" [ref=e1820]
|
||
- row "get_block_info(filename) 板块信息" [ref=e1821]:
|
||
- cell "get_block_info(filename)" [ref=e1822]:
|
||
- code [ref=e1823]: get_block_info(filename)
|
||
- cell "板块信息" [ref=e1824]
|
||
- row "get_report_file(filename) 下载服务器文件" [ref=e1825]:
|
||
- cell "get_report_file(filename)" [ref=e1826]:
|
||
- code [ref=e1827]: get_report_file(filename)
|
||
- cell "下载服务器文件" [ref=e1828]
|
||
- row "get_market_stat() 全市场涨跌统计" [ref=e1829]:
|
||
- cell "get_market_stat()" [ref=e1830]:
|
||
- code [ref=e1831]: get_market_stat()
|
||
- cell "全市场涨跌统计" [ref=e1832]
|
||
- row "get_price_limits(market, code, name, pre_close) 涨跌停价" [ref=e1833]:
|
||
- cell "get_price_limits(market, code, name, pre_close)" [ref=e1834]:
|
||
- code [ref=e1835]: get_price_limits(market, code, name, pre_close)
|
||
- cell "涨跌停价" [ref=e1836]
|
||
- generic [ref=e1837]:
|
||
- heading "架构" [level=2] [ref=e1838]
|
||
- 'link "Permalink: 架构" [ref=e1839] [cursor=pointer]':
|
||
- /url: "#架构"
|
||
- img [ref=e1840]
|
||
- generic [ref=e1842]:
|
||
- code [ref=e1844]: "src/easy_tdx/ ├── client.py # TdxClient / AsyncTdxClient(标准协议) ├── unified.py # UnifiedTdxClient(统一入口) ├── config.py # 服务器地址、端口、超时配置 ├── indicator.py # 技术指标计算(32 个,基于 MyTT) ├── MyTT.py # 麦语言技术指标算法库 ├── mac/ │ ├── client.py # MacClient / AsyncMacClient(MAC 协议) │ ├── enums.py # Period, Adjust, Category, ExMarket, SortType, ... │ ├── models.py # MacBar, MacQuoteField, MacTick, BoardInfo, ... │ └── commands/ # MAC 命令(build_request + parse_response,无 IO) ├── ex/ │ ├── client.py # ExTdxClient / AsyncExTdxClient(标准协议扩展市场) │ ├── mac_client.py # MacExClient / AsyncMacExClient(MAC 协议扩展市场) │ └── transport/ # ExTdxConnection(端口 7727) ├── transport/ │ ├── sync.py # TdxConnection + ping_host / ping_all │ └── async_.py # AsyncTdxConnection(asyncio) ├── commands/ # 标准协议命令(无 IO) ├── codec/ # price / volume / datetime / frame / bitmap 编解码 ├── models/ # 纯 dataclass,无业务逻辑 ├── offline/ # 离线数据读取模块 └── cli/ # easy-tdx CLI(click)"
|
||
- button "Copy code to clipboard" [ref=e1846] [cursor=pointer]:
|
||
- img [ref=e1847]
|
||
- paragraph [ref=e1850]: commands 层不依赖 transport,可独立单测。
|
||
- generic [ref=e1851]:
|
||
- heading "开发" [level=2] [ref=e1852]
|
||
- 'link "Permalink: 开发" [ref=e1853] [cursor=pointer]':
|
||
- /url: "#开发"
|
||
- img [ref=e1854]
|
||
- generic [ref=e1856]:
|
||
- generic [ref=e1857]:
|
||
- text: python -m pytest tests/unit/ -v
|
||
- generic [ref=e1858]: "# 单元测试(无需网络)"
|
||
- text: XMTDX_LIVE=1 python -m pytest tests/integration/ -v
|
||
- generic [ref=e1859]: "# 集成测试"
|
||
- text: mypy src/
|
||
- generic [ref=e1860]: "# 类型检查"
|
||
- text: ruff check src/ tests/
|
||
- generic [ref=e1861]: "# lint"
|
||
- text: ruff format --check src/ tests/
|
||
- generic [ref=e1862]: "# format check"
|
||
- button "Copy code to clipboard" [ref=e1864] [cursor=pointer]:
|
||
- img [ref=e1865]
|
||
- generic [ref=e1868]:
|
||
- heading "致谢" [level=2] [ref=e1869]
|
||
- 'link "Permalink: 致谢" [ref=e1870] [cursor=pointer]':
|
||
- /url: "#致谢"
|
||
- img [ref=e1871]
|
||
- list [ref=e1873]:
|
||
- listitem [ref=e1874]:
|
||
- link "pytdx" [ref=e1875] [cursor=pointer]:
|
||
- /url: https://github.com/rainx/pytdx
|
||
- text: "-- 离线数据读取模块借鉴自 pytdx 项目,感谢 rainx 及所有贡献者"
|
||
- listitem [ref=e1876]:
|
||
- link "xmtdx" [ref=e1877] [cursor=pointer]:
|
||
- /url: https://github.com/minionszyw/xmtdx
|
||
- text: "-- 本项目初始原型"
|
||
- listitem [ref=e1878]:
|
||
- link "mootdx" [ref=e1879] [cursor=pointer]:
|
||
- /url: https://github.com/mootdx/mootdx
|
||
- text: "-- 工程化封装参考"
|
||
- listitem [ref=e1880]:
|
||
- link "MyTT" [ref=e1881] [cursor=pointer]:
|
||
- /url: https://github.com/mpquant/MyTT
|
||
- text: "-- 麦语言技术指标算法库,技术指标计算基于此实现"
|
||
- paragraph [ref=e1882]:
|
||
- text: 详见
|
||
- link "NOTICE" [ref=e1883] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/NOTICE
|
||
- text: 和
|
||
- link "LICENSE" [ref=e1884] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/LICENSE
|
||
- text: 。
|
||
- generic [ref=e1885]:
|
||
- heading "Changelog" [level=2] [ref=e1886]
|
||
- 'link "Permalink: Changelog" [ref=e1887] [cursor=pointer]':
|
||
- /url: "#changelog"
|
||
- img [ref=e1888]
|
||
- generic [ref=e1890]:
|
||
- heading "1.5.0 (2026-06-02)" [level=3] [ref=e1891]
|
||
- 'link "Permalink: 1.5.0 (2026-06-02)" [ref=e1892] [cursor=pointer]':
|
||
- /url: "#150-2026-06-02"
|
||
- img [ref=e1893]
|
||
- paragraph [ref=e1895]:
|
||
- strong [ref=e1896]: 离线数据 CLI 命令
|
||
- text: — 新增
|
||
- code [ref=e1897]: offline
|
||
- text: 命令组,无需网络即可通过 CLI 读取本地通达信数据文件。
|
||
- list [ref=e1898]:
|
||
- listitem [ref=e1899]:
|
||
- text: 新增
|
||
- code [ref=e1900]: offline home
|
||
- text: :检测通达信安装目录
|
||
- listitem [ref=e1901]:
|
||
- text: 新增
|
||
- code [ref=e1902]: offline daily
|
||
- text: :A 股日线数据(.day 文件)
|
||
- listitem [ref=e1903]:
|
||
- text: 新增
|
||
- code [ref=e1904]: offline min
|
||
- text: :分钟线数据(.5/.lc1/.lc5 文件,
|
||
- code [ref=e1905]: "--type"
|
||
- text: 指定格式)
|
||
- listitem [ref=e1906]:
|
||
- text: 新增
|
||
- code [ref=e1907]: offline ex-files
|
||
- text: :列出扩展市场可用日线文件
|
||
- listitem [ref=e1908]:
|
||
- text: 新增
|
||
- code [ref=e1909]: offline ex-daily
|
||
- text: :扩展市场日线数据(期货/港股/外盘)
|
||
- listitem [ref=e1910]:
|
||
- text: 新增
|
||
- code [ref=e1911]: offline gbbq
|
||
- text: :股本变迁数据
|
||
- listitem [ref=e1912]:
|
||
- text: 新增
|
||
- code [ref=e1913]: offline financial
|
||
- text: :历史财务数据
|
||
- listitem [ref=e1914]:
|
||
- text: 新增
|
||
- code [ref=e1915]: offline blocks
|
||
- text: :自定义板块数据
|
||
- generic [ref=e1916]:
|
||
- heading "1.4.3 (2026-05-28)" [level=3] [ref=e1917]
|
||
- 'link "Permalink: 1.4.3 (2026-05-28)" [ref=e1918] [cursor=pointer]':
|
||
- /url: "#143-2026-05-28"
|
||
- img [ref=e1919]
|
||
- paragraph [ref=e1921]:
|
||
- strong [ref=e1922]: 30日乖离率信号指标
|
||
- text: — 新增 BIAS_SIGNAL 指标,在标准乖离率基础上叠加短/长信号线,通过三者位置关系判断趋势方向和转折点。源自通达信经典指标。
|
||
- list [ref=e1923]:
|
||
- listitem [ref=e1924]:
|
||
- text: 新增
|
||
- code [ref=e1925]: BIAS_SIGNAL
|
||
- text: 指标:输出 BS_X/BS_SMA/BS_LMA 三条线
|
||
- listitem [ref=e1926]:
|
||
- text: "CLI:"
|
||
- code [ref=e1927]: easy-tdx indicator BIAS_SIGNAL -m SH -c 600519 --table
|
||
- listitem [ref=e1928]:
|
||
- text: "Python API:"
|
||
- code [ref=e1929]: indicators=["BIAS_SIGNAL"]
|
||
- listitem [ref=e1930]:
|
||
- text: 详见
|
||
- link "30日乖离率信号指标详解" [ref=e1931] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/docs/indicator-bias-signal.md
|
||
- generic [ref=e1932]:
|
||
- heading "1.4.2 (2026-05-28)" [level=3] [ref=e1933]
|
||
- 'link "Permalink: 1.4.2 (2026-05-28)" [ref=e1934] [cursor=pointer]':
|
||
- /url: "#142-2026-05-28"
|
||
- img [ref=e1935]
|
||
- paragraph [ref=e1937]: 修复 1.4.1 发布遗漏:MyTT.py 中 ZHUOYAO 函数定义未包含在 1.4.1 的 PyPI 包中。
|
||
- generic [ref=e1938]:
|
||
- heading "1.4.1 (2026-05-28)" [level=3] [ref=e1939]
|
||
- 'link "Permalink: 1.4.1 (2026-05-28)" [ref=e1940] [cursor=pointer]':
|
||
- /url: "#141-2026-05-28"
|
||
- img [ref=e1941]
|
||
- paragraph [ref=e1943]:
|
||
- strong [ref=e1944]: 捉妖大师指标
|
||
- text: — 新增 ZHUOYAO 多周期涨幅共振指标,通过 20/60/120 日涨幅及指数平滑判断短中长线趋势是否同向,用于筛选趋势刚启动的强势股。
|
||
- list [ref=e1945]:
|
||
- listitem [ref=e1946]:
|
||
- text: 新增
|
||
- code [ref=e1947]: ZHUOYAO
|
||
- text: 指标:输出 ZY_LONG/ZY_MID/ZY_SHORT/ZY_TREND 四条线
|
||
- listitem [ref=e1948]:
|
||
- text: "CLI:"
|
||
- code [ref=e1949]: easy-tdx indicator ZHUOYAO -m SH -c 600519 --table
|
||
- listitem [ref=e1950]:
|
||
- text: "Python API:"
|
||
- code [ref=e1951]: indicators=["ZHUOYAO"]
|
||
- listitem [ref=e1952]:
|
||
- text: 详见
|
||
- link "捉妖大师指标详解" [ref=e1953] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/blob/main/docs/indicator-zhuoyao.md
|
||
- generic [ref=e1954]:
|
||
- heading "1.4.0 (2026-05-28)" [level=3] [ref=e1955]
|
||
- 'link "Permalink: 1.4.0 (2026-05-28)" [ref=e1956] [cursor=pointer]':
|
||
- /url: "#140-2026-05-28"
|
||
- img [ref=e1957]
|
||
- paragraph [ref=e1959]:
|
||
- strong [ref=e1960]: 技术指标计算
|
||
- text: — 集成
|
||
- link "MyTT" [ref=e1961] [cursor=pointer]:
|
||
- /url: https://github.com/mpquant/MyTT
|
||
- text: 麦语言指标库,支持 30 个常用技术指标,一步获取 K 线 + 指标值。
|
||
- list [ref=e1962]:
|
||
- listitem [ref=e1963]:
|
||
- text: 新增
|
||
- code [ref=e1964]: indicator.py
|
||
- text: 核心模块:注册表驱动的指标调度,
|
||
- code [ref=e1965]: compute_indicators()
|
||
- text: 纯计算无 IO
|
||
- listitem [ref=e1966]:
|
||
- text: 新增
|
||
- code [ref=e1967]: MacClient.get_stock_kline_with_indicators()
|
||
- text: /
|
||
- code [ref=e1968]: AsyncMacClient
|
||
- text: 同名方法
|
||
- listitem [ref=e1969]:
|
||
- text: 新增
|
||
- code [ref=e1970]: UnifiedTdxClient.get_stock_kline_with_indicators()
|
||
- text: /
|
||
- code [ref=e1971]: AsyncUnifiedTdxClient
|
||
- text: 同名方法
|
||
- listitem [ref=e1972]:
|
||
- text: 新增 CLI 命令
|
||
- code [ref=e1973]: easy-tdx indicator
|
||
- text: 和
|
||
- code [ref=e1974]: easy-tdx indicator-list
|
||
- listitem [ref=e1975]: 自动获取 200+ 条历史数据预热 EMA,用户只需指定返回条数
|
||
- listitem [ref=e1976]: 支持的指标:MACD, KDJ, RSI, BOLL, DMI, ATR, WR, CCI, BIAS, OBV, VR, EMV, MFI, BRAR, ASI, TRIX, DPO, MTM, ROC, EXPMA, BBI, PSY, DFMA, CR, KTN, XSII, MASS, TAQ
|
||
- generic [ref=e1977]:
|
||
- heading "1.3.1 (2025-05-15)" [level=3] [ref=e1978]
|
||
- 'link "Permalink: 1.3.1 (2025-05-15)" [ref=e1979] [cursor=pointer]':
|
||
- /url: "#131-2025-05-15"
|
||
- img [ref=e1980]
|
||
- list [ref=e1982]:
|
||
- listitem [ref=e1983]:
|
||
- text: 新增
|
||
- code [ref=e1984]: board-summary
|
||
- text: 和
|
||
- code [ref=e1985]: board-ranking
|
||
- text: CLI 命令
|
||
- listitem [ref=e1986]:
|
||
- text: 新增
|
||
- code [ref=e1987]: get_board_summary()
|
||
- text: 板块汇总(成交额、主力净流入、涨跌家数)
|
||
- listitem [ref=e1988]:
|
||
- text: 新增
|
||
- code [ref=e1989]: get_board_ranking()
|
||
- text: 板块涨跌幅排行榜
|
||
- generic [ref=e1990]:
|
||
- heading "1.3.0 (2025-05-12)" [level=3] [ref=e1991]
|
||
- 'link "Permalink: 1.3.0 (2025-05-12)" [ref=e1992] [cursor=pointer]':
|
||
- /url: "#130-2025-05-12"
|
||
- img [ref=e1993]
|
||
- list [ref=e1995]:
|
||
- listitem [ref=e1996]:
|
||
- text: 新增 MAC 协议客户端
|
||
- code [ref=e1997]: MacClient
|
||
- text: /
|
||
- code [ref=e1998]: AsyncMacClient
|
||
- text: (端口 7709)
|
||
- listitem [ref=e1999]:
|
||
- text: 新增扩展市场客户端
|
||
- code [ref=e2000]: MacExClient
|
||
- text: /
|
||
- code [ref=e2001]: AsyncMacExClient
|
||
- text: (端口 7727)
|
||
- listitem [ref=e2002]:
|
||
- text: 新增统一客户端
|
||
- code [ref=e2003]: UnifiedTdxClient
|
||
- text: 自动路由 A 股 / 扩展市场
|
||
- listitem [ref=e2004]: 新增板块、资金流向、集合竞价、异动、个股特征等数据接口
|
||
- listitem [ref=e2005]:
|
||
- text: 新增
|
||
- code [ref=e2006]: easy-tdx
|
||
- text: CLI 工具,默认 JSON 输出
|
||
- generic [ref=e2007]:
|
||
- heading "1.2.1 (2025-04-20)" [level=3] [ref=e2008]
|
||
- 'link "Permalink: 1.2.1 (2025-04-20)" [ref=e2009] [cursor=pointer]':
|
||
- /url: "#121-2025-04-20"
|
||
- img [ref=e2010]
|
||
- list [ref=e2012]:
|
||
- listitem [ref=e2013]: 离线数据读取模块(日线、分钟线、板块、财务)
|
||
- listitem [ref=e2014]: 除权除息、股本变迁读取
|
||
- generic [ref=e2015]:
|
||
- heading "1.0.0 (2025-03-01)" [level=3] [ref=e2016]
|
||
- 'link "Permalink: 1.0.0 (2025-03-01)" [ref=e2017] [cursor=pointer]':
|
||
- /url: "#100-2025-03-01"
|
||
- img [ref=e2018]
|
||
- list [ref=e2020]:
|
||
- listitem [ref=e2021]: 首个正式版本
|
||
- listitem [ref=e2022]: TdxClient / AsyncTdxClient 标准协议客户端
|
||
- listitem [ref=e2023]: K 线、实时报价、分时、逐笔成交、财务数据
|
||
- generic [ref=e2027]:
|
||
- generic [ref=e2030]:
|
||
- heading "About" [level=2] [ref=e2031]
|
||
- paragraph [ref=e2032]: 通达信python SDK,支持在线获取数据及离线本地数据读取。全面优化接口。
|
||
- heading "Topics" [level=3] [ref=e2033]
|
||
- generic [ref=e2035]:
|
||
- link "technical-analysis" [ref=e2036] [cursor=pointer]:
|
||
- /url: /topics/technical-analysis
|
||
- link "financial-data" [ref=e2037] [cursor=pointer]:
|
||
- /url: /topics/financial-data
|
||
- link "tdx" [ref=e2038] [cursor=pointer]:
|
||
- /url: /topics/tdx
|
||
- link "pytdx" [ref=e2039] [cursor=pointer]:
|
||
- /url: /topics/pytdx
|
||
- link "mootdx" [ref=e2040] [cursor=pointer]:
|
||
- /url: /topics/mootdx
|
||
- link "chinese-stock-market" [ref=e2041] [cursor=pointer]:
|
||
- /url: /topics/chinese-stock-market
|
||
- link "a-share-tdx" [ref=e2042] [cursor=pointer]:
|
||
- /url: /topics/a-share-tdx
|
||
- heading "Resources" [level=3] [ref=e2043]
|
||
- link "Readme" [ref=e2045] [cursor=pointer]:
|
||
- /url: "#readme-ov-file"
|
||
- img [ref=e2046]
|
||
- text: Readme
|
||
- heading "License" [level=3] [ref=e2048]
|
||
- link "View license" [ref=e2050] [cursor=pointer]:
|
||
- /url: "#License-1-ov-file"
|
||
- img [ref=e2051]
|
||
- text: View license
|
||
- link "Activity" [ref=e2054] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/activity
|
||
- img [ref=e2055]
|
||
- text: Activity
|
||
- heading "Stars" [level=3] [ref=e2057]
|
||
- link "61 stars" [ref=e2059] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/stargazers
|
||
- img [ref=e2060]
|
||
- strong [ref=e2062]: "61"
|
||
- text: stars
|
||
- heading "Watchers" [level=3] [ref=e2063]
|
||
- link "1 watching" [ref=e2065] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/watchers
|
||
- img [ref=e2066]
|
||
- strong [ref=e2068]: "1"
|
||
- text: watching
|
||
- heading "Forks" [level=3] [ref=e2069]
|
||
- link "23 forks" [ref=e2071] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/forks
|
||
- img [ref=e2072]
|
||
- strong [ref=e2074]: "23"
|
||
- text: forks
|
||
- link "Report repository" [ref=e2076] [cursor=pointer]:
|
||
- /url: /contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fhandsomejustin%2Feasy_tdx&report=handsomejustin+%28user%29
|
||
- generic [ref=e2078]:
|
||
- heading "Releases 2" [level=2] [ref=e2079]:
|
||
- link "Releases 2" [ref=e2080] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/releases
|
||
- text: Releases
|
||
- generic "2" [ref=e2081]
|
||
- link "v1.5.0 离线数据 CLI 版 Latest Jun 2, 20263 days ago" [ref=e2082] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/releases/tag/v1.5.0
|
||
- img [ref=e2083]
|
||
- generic [ref=e2085]:
|
||
- generic [ref=e2086]:
|
||
- generic [ref=e2087]: v1.5.0 离线数据 CLI 版
|
||
- 'generic "Label: Latest" [ref=e2088]': Latest
|
||
- generic [ref=e2089]: Jun 2, 20263 days ago
|
||
- link "+ 1 release" [ref=e2091] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/releases
|
||
- generic [ref=e2093]:
|
||
- heading "Packages" [level=2] [ref=e2094]:
|
||
- link "Packages" [ref=e2095] [cursor=pointer]:
|
||
- /url: /users/handsomejustin/packages?repo_name=easy_tdx
|
||
- generic [ref=e2096]: No packages published
|
||
- generic [ref=e2098]:
|
||
- heading "Contributors 4" [level=2] [ref=e2099]:
|
||
- link "Contributors 4" [ref=e2100] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/graphs/contributors
|
||
- text: Contributors
|
||
- generic "4" [ref=e2101]
|
||
- list [ref=e2102]:
|
||
- listitem [ref=e2103]:
|
||
- link "@claude" [ref=e2104] [cursor=pointer]:
|
||
- /url: https://github.com/claude
|
||
- img "@claude" [ref=e2105]
|
||
- link "claude Claude" [ref=e2107] [cursor=pointer]:
|
||
- /url: https://github.com/claude
|
||
- strong [ref=e2108]: claude
|
||
- text: Claude
|
||
- listitem [ref=e2109]:
|
||
- link "@actions-user" [ref=e2110] [cursor=pointer]:
|
||
- /url: https://github.com/actions-user
|
||
- img "@actions-user" [ref=e2111]
|
||
- link "actions-user" [ref=e2113] [cursor=pointer]:
|
||
- /url: https://github.com/actions-user
|
||
- strong [ref=e2114]: actions-user
|
||
- listitem [ref=e2115]:
|
||
- link "@handsomejustin" [ref=e2116] [cursor=pointer]:
|
||
- /url: https://github.com/handsomejustin
|
||
- img "@handsomejustin" [ref=e2117]
|
||
- link "handsomejustin 毛利哥" [ref=e2119] [cursor=pointer]:
|
||
- /url: https://github.com/handsomejustin
|
||
- strong [ref=e2120]: handsomejustin
|
||
- text: 毛利哥
|
||
- listitem [ref=e2121]:
|
||
- link "@minionszyw" [ref=e2122] [cursor=pointer]:
|
||
- /url: https://github.com/minionszyw
|
||
- img "@minionszyw" [ref=e2123]
|
||
- link "minionszyw" [ref=e2125] [cursor=pointer]:
|
||
- /url: https://github.com/minionszyw
|
||
- strong [ref=e2126]: minionszyw
|
||
- generic [ref=e2128]:
|
||
- heading "Languages" [level=2] [ref=e2129]
|
||
- list [ref=e2133]:
|
||
- listitem [ref=e2134]:
|
||
- link "Python 100.0%" [ref=e2135] [cursor=pointer]:
|
||
- /url: /handsomejustin/easy_tdx/search?l=python
|
||
- img [ref=e2136]
|
||
- generic [ref=e2138]: Python
|
||
- generic [ref=e2139]: 100.0%
|
||
- contentinfo [ref=e2141]:
|
||
- heading "Footer" [level=2] [ref=e2142]
|
||
- generic [ref=e2143]:
|
||
- generic [ref=e2144]:
|
||
- link "GitHub Homepage" [ref=e2145] [cursor=pointer]:
|
||
- /url: https://github.com
|
||
- img [ref=e2146]
|
||
- generic [ref=e2148]: © 2026 GitHub, Inc.
|
||
- navigation "Footer" [ref=e2149]:
|
||
- heading "Footer navigation" [level=3] [ref=e2150]
|
||
- list "Footer navigation" [ref=e2151]:
|
||
- listitem [ref=e2152]:
|
||
- link "Terms" [ref=e2153] [cursor=pointer]:
|
||
- /url: https://docs.github.com/site-policy/github-terms/github-terms-of-service
|
||
- listitem [ref=e2154]:
|
||
- link "Privacy" [ref=e2155] [cursor=pointer]:
|
||
- /url: https://docs.github.com/site-policy/privacy-policies/github-privacy-statement
|
||
- listitem [ref=e2156]:
|
||
- link "Security" [ref=e2157] [cursor=pointer]:
|
||
- /url: https://github.com/security
|
||
- listitem [ref=e2158]:
|
||
- link "Status" [ref=e2159] [cursor=pointer]:
|
||
- /url: https://www.githubstatus.com/
|
||
- listitem [ref=e2160]:
|
||
- link "Community" [ref=e2161] [cursor=pointer]:
|
||
- /url: https://github.community/
|
||
- listitem [ref=e2162]:
|
||
- link "Docs" [ref=e2163] [cursor=pointer]:
|
||
- /url: https://docs.github.com/
|
||
- listitem [ref=e2164]:
|
||
- link "Contact" [ref=e2165] [cursor=pointer]:
|
||
- /url: https://support.github.com?tags=dotcom-footer
|
||
- listitem [ref=e2166]:
|
||
- button "Manage cookies" [ref=e2168] [cursor=pointer]
|
||
- listitem [ref=e2169]:
|
||
- button "Do not share my personal information" [ref=e2171] [cursor=pointer] |