cfquant 0.2.2__tar.gz → 0.2.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. {cfquant-0.2.2 → cfquant-0.2.10}/LICENSE +21 -21
  2. {cfquant-0.2.2 → cfquant-0.2.10}/LTtx/tx/LTtx_server.py +29 -29
  3. {cfquant-0.2.2 → cfquant-0.2.10}/MANIFEST.in +53 -53
  4. {cfquant-0.2.2 → cfquant-0.2.10}/PKG-INFO +14 -11
  5. {cfquant-0.2.2 → cfquant-0.2.10}/README.md +185 -182
  6. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/account_routing.py +18 -18
  7. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/cli.py +368 -368
  8. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/normal_bridge.py +387 -181
  9. cfquant-0.2.10/cfquant/order_meta.py +551 -0
  10. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/pipe_bridge.py +51 -49
  11. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/pipe_hub.py +159 -159
  12. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/qmt_bridge.py +762 -499
  13. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/runtime_report.py +334 -334
  14. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/tx_trade_bridge.py +1062 -549
  15. cfquant-0.2.10/cfquant/version.py +5 -0
  16. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/xtconstant.py +128 -128
  17. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/xttrader.py +184 -76
  18. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/xttype.py +106 -54
  19. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant.egg-info/PKG-INFO +14 -11
  20. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant.egg-info/SOURCES.txt +1 -0
  21. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant_pipe_hub.py +39 -39
  22. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant_web_server.py +3483 -3180
  23. {cfquant-0.2.2 → cfquant-0.2.10}/pyproject.toml +58 -58
  24. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts/CFQUANT.py +85 -85
  25. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts/CFQUANT_CTYPE_ALL_LOWLAT.py +137 -137
  26. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts/CFQUANT_LITE.py +1042 -507
  27. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts/CFQUANT_TRADE_LOWLAT.py +84 -84
  28. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts/__init__.py +1 -1
  29. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts//345/220/214/350/264/246/345/217/267/347/213/254/347/253/213/345/270/202/345/234/272/CFQUANT_CTYPE_ALL_LOWLAT_SH.py +89 -89
  30. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts//345/220/214/350/264/246/345/217/267/347/213/254/347/253/213/345/270/202/345/234/272/CFQUANT_CTYPE_ALL_LOWLAT_SZ.py +89 -89
  31. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts//345/220/214/350/264/246/345/217/267/347/213/254/347/253/213/345/270/202/345/234/272/CFQUANT_LITE_SH.py +1060 -507
  32. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts//345/220/214/350/264/246/345/217/267/347/213/254/347/253/213/345/270/202/345/234/272/CFQUANT_LITE_SZ.py +1060 -507
  33. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts//345/220/214/350/264/246/345/217/267/347/213/254/347/253/213/345/270/202/345/234/272/CFQUANT_TRADE_LOWLAT_SH.py +84 -84
  34. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts//345/220/214/350/264/246/345/217/267/347/213/254/347/253/213/345/270/202/345/234/272/CFQUANT_TRADE_LOWLAT_SZ.py +84 -84
  35. {cfquant-0.2.2 → cfquant-0.2.10}/qmt_scripts//345/220/214/350/264/246/345/217/267/347/213/254/347/253/213/345/270/202/345/234/272/readme.md +11 -0
  36. {cfquant-0.2.2 → cfquant-0.2.10}/requirements.txt +7 -7
  37. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/__init__.py +1 -1
  38. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/app.js +4104 -3932
  39. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/index.html +1448 -1465
  40. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/styles.css +2150 -2085
  41. cfquant-0.2.2/cfquant/version.py +0 -5
  42. {cfquant-0.2.2 → cfquant-0.2.10}/LTtx/__init__.py +0 -0
  43. {cfquant-0.2.2 → cfquant-0.2.10}/LTtx/tx/Config.txt +0 -0
  44. {cfquant-0.2.2 → cfquant-0.2.10}/LTtx/tx/__init__.py +0 -0
  45. {cfquant-0.2.2 → cfquant-0.2.10}/LTtx/tx/tx.py +0 -0
  46. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/__init__.py +0 -0
  47. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/channels.py +0 -0
  48. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/client.py +0 -0
  49. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/config.py +0 -0
  50. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/hub.py +0 -0
  51. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/logging_i18n.py +0 -0
  52. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/pipe_client.py +0 -0
  53. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/pipe_transport.py +0 -0
  54. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/protocol.py +0 -0
  55. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/tx.py +0 -0
  56. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant/xtdata.py +0 -0
  57. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant.egg-info/dependency_links.txt +0 -0
  58. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant.egg-info/entry_points.txt +0 -0
  59. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant.egg-info/requires.txt +0 -0
  60. {cfquant-0.2.2 → cfquant-0.2.10}/cfquant.egg-info/top_level.txt +0 -0
  61. {cfquant-0.2.2 → cfquant-0.2.10}/setup.cfg +0 -0
  62. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/avatars/amber-pulse.svg +0 -0
  63. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/avatars/copper-grid.svg +0 -0
  64. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/avatars/market-blue.svg +0 -0
  65. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/avatars/rose-circuit.svg +0 -0
  66. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/avatars/signal-green.svg +0 -0
  67. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/avatars/slate-wave.svg +0 -0
  68. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/avatars/teal-orbit.svg +0 -0
  69. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/avatars/violet-node.svg +0 -0
  70. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/favicon.svg +0 -0
  71. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-10.png +0 -0
  72. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-11.png +0 -0
  73. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-12.png +0 -0
  74. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-13.png +0 -0
  75. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-14.png +0 -0
  76. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-15.png +0 -0
  77. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-16.png +0 -0
  78. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-17.png +0 -0
  79. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-18.png +0 -0
  80. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-19.png +0 -0
  81. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-20.png +0 -0
  82. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-21.png +0 -0
  83. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-4.png +0 -0
  84. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-5.png +0 -0
  85. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-6.png +0 -0
  86. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-7.png +0 -0
  87. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-8.png +0 -0
  88. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/image/qmt_deploy/image-9.png +0 -0
  89. {cfquant-0.2.2 → cfquant-0.2.10}/web_dashboard/vendor/mermaid.min.js +0 -0
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 tao
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 tao
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -19,13 +19,13 @@ import sys
19
19
  from packaging import version
20
20
 
21
21
  #运行需要的库
22
- need_packge = {
23
- 'psutil': {'pip_name': 'psutil', 'version': '1.0.0'},
24
- 'pandas': {'pip_name': 'pandas', 'version': '0.0.1'},
25
- 'tabulate': {'pip_name': 'tabulate', 'version': '0.0.1'},
26
- 'pandas_market_calendars': {'pip_name': 'pandas-market-calendars', 'version': '0.0.1'},
27
- 'pytz': {'pip_name': 'pytz', 'version': '0.0.0'},
28
- }
22
+ need_packge = {
23
+ 'psutil': {'pip_name': 'psutil', 'version': '1.0.0'},
24
+ 'pandas': {'pip_name': 'pandas', 'version': '0.0.1'},
25
+ 'tabulate': {'pip_name': 'tabulate', 'version': '0.0.1'},
26
+ 'pandas_market_calendars': {'pip_name': 'pandas-market-calendars', 'version': '0.0.1'},
27
+ 'pytz': {'pip_name': 'pytz', 'version': '0.0.0'},
28
+ }
29
29
 
30
30
 
31
31
  def _hidden_subprocess_kwargs():
@@ -81,7 +81,7 @@ def ensure_modules_with_version(modules: dict):
81
81
  print(f"[AutoInstall] {import_name} 已安装,版本为 {installed_version},满足要求")
82
82
  except ImportError:
83
83
  # 安装或升级
84
- install_target = pip_name if required_version == "latest" else "%s>=%s" % (pip_name, required_version)
84
+ install_target = pip_name if required_version == "latest" else "%s>=%s" % (pip_name, required_version)
85
85
  print(f"[AutoInstall] 正在安装/升级 {pip_name} → {required_version}...")
86
86
  try:
87
87
  subprocess.check_call([
@@ -181,16 +181,16 @@ def _ensure_lttx_dir(path):
181
181
  def _lttx_file_path(file_name):
182
182
  return os.path.join(_ensure_lttx_dir(_lttx_file_data_dir()), file_name)
183
183
 
184
- def _lttx_dataframe_path(var):
185
- return os.path.join(_ensure_lttx_dir(_lttx_dataframe_data_dir()), "%s.csv" % var)
186
-
187
- def _lttx_dict_var_path():
188
- configured = os.environ.get("CFQUANT_LTTX_DICT_VAR_FILE")
189
- if configured:
190
- return os.path.abspath(configured)
191
- return os.path.join(_ensure_lttx_dir(_lttx_runtime_dir()), "data0.txt")
192
-
193
- def _lttx_log_dir():
184
+ def _lttx_dataframe_path(var):
185
+ return os.path.join(_ensure_lttx_dir(_lttx_dataframe_data_dir()), "%s.csv" % var)
186
+
187
+ def _lttx_dict_var_path():
188
+ configured = os.environ.get("CFQUANT_LTTX_DICT_VAR_FILE")
189
+ if configured:
190
+ return os.path.abspath(configured)
191
+ return os.path.join(_ensure_lttx_dir(_lttx_runtime_dir()), "data0.txt")
192
+
193
+ def _lttx_log_dir():
194
194
  configured = os.environ.get("CFQUANT_LTTX_LOG_DIR")
195
195
  if configured:
196
196
  return os.path.abspath(configured)
@@ -818,9 +818,9 @@ def main_test():
818
818
  except Exception as e:
819
819
  print(e)
820
820
 
821
- def load_dict_var():
822
- try:
823
- config_path = _lttx_dict_var_path()
821
+ def load_dict_var():
822
+ try:
823
+ config_path = _lttx_dict_var_path()
824
824
 
825
825
  # 尝试打开并读取 JSON 文件
826
826
  with open(config_path, 'r', encoding='utf-8') as f:
@@ -1041,9 +1041,9 @@ def make_dir():
1041
1041
  except:
1042
1042
  pass
1043
1043
 
1044
- def main_save_dict_var():
1045
- global dict_var_on, dict_var
1046
- file_path = _lttx_dict_var_path()
1044
+ def main_save_dict_var():
1045
+ global dict_var_on, dict_var
1046
+ file_path = _lttx_dict_var_path()
1047
1047
 
1048
1048
  while True:
1049
1049
  if dict_var_on:
@@ -1156,11 +1156,11 @@ dict_client = {}
1156
1156
  dict_client_status = {}
1157
1157
  dict_var = load_dict_var()#保存云变量
1158
1158
 
1159
- if __name__ == '__main__':
1160
- if os.environ.get("CFQUANT_LTTX_BACKGROUND") != "1":
1161
- threading.Thread(target = main_control).start()
1162
- main()
1163
- # threading.Thread(target = main).start()
1159
+ if __name__ == '__main__':
1160
+ if os.environ.get("CFQUANT_LTTX_BACKGROUND") != "1":
1161
+ threading.Thread(target = main_control).start()
1162
+ main()
1163
+ # threading.Thread(target = main).start()
1164
1164
 
1165
1165
 
1166
1166
 
@@ -1,53 +1,53 @@
1
- include README.md
2
- include requirements.txt
3
- include cfquant_web_server.py
4
- include cfquant_pipe_hub.py
5
-
6
- recursive-include cfquant *.py
7
- recursive-include LTtx *.py
8
- include LTtx/tx/Config.txt
9
-
10
- recursive-include web_dashboard *.html *.css *.js *.svg *.png
11
- recursive-include qmt_scripts *.py *.md
12
-
13
- recursive-exclude cfquant/tests *
14
- recursive-exclude LTtx/tx/__pycache__ *
15
- recursive-exclude LTtx/tx/log_data *
16
- recursive-exclude LTtx/tx/tx_log *
17
- recursive-exclude runtime *
18
- recursive-exclude log *
19
- recursive-exclude docs *
20
- recursive-exclude scripts *
21
- recursive-exclude log_data *
22
- recursive-exclude tx_log *
23
- recursive-exclude reports *
24
- recursive-exclude dataframe_data *
25
- recursive-exclude file_data *
26
- recursive-exclude official_site *
27
- recursive-exclude offcial_site *
28
- recursive-exclude remotion_intro *
29
- recursive-exclude pip_library_dev *
30
- recursive-exclude .cfquant_project_updates *
31
- recursive-exclude .cfquant_updates *
32
- recursive-exclude .updates *
33
- recursive-exclude .pytest_cache *
34
- recursive-exclude .playwright-cli *
35
- recursive-exclude .local_archive *
36
- recursive-exclude .vscode *
37
-
38
- exclude AGENTS.md
39
- exclude .gitignore
40
- exclude *.bat
41
- exclude *.log
42
- exclude *.db
43
- exclude *.sqlite
44
- exclude *.sqlite3
45
- exclude *.mp4
46
- exclude *.mov
47
- exclude *.avi
48
- exclude *.mkv
49
- exclude *.webm
50
- exclude LTtx/tx/data0.txt
51
- global-exclude __pycache__/*
52
- global-exclude *.py[cod]
53
- global-exclude *.pyo
1
+ include README.md
2
+ include requirements.txt
3
+ include cfquant_web_server.py
4
+ include cfquant_pipe_hub.py
5
+
6
+ recursive-include cfquant *.py
7
+ recursive-include LTtx *.py
8
+ include LTtx/tx/Config.txt
9
+
10
+ recursive-include web_dashboard *.html *.css *.js *.svg *.png
11
+ recursive-include qmt_scripts *.py *.md
12
+
13
+ recursive-exclude cfquant/tests *
14
+ recursive-exclude LTtx/tx/__pycache__ *
15
+ recursive-exclude LTtx/tx/log_data *
16
+ recursive-exclude LTtx/tx/tx_log *
17
+ recursive-exclude runtime *
18
+ recursive-exclude log *
19
+ recursive-exclude docs *
20
+ recursive-exclude scripts *
21
+ recursive-exclude log_data *
22
+ recursive-exclude tx_log *
23
+ recursive-exclude reports *
24
+ recursive-exclude dataframe_data *
25
+ recursive-exclude file_data *
26
+ recursive-exclude official_site *
27
+ recursive-exclude offcial_site *
28
+ recursive-exclude remotion_intro *
29
+ recursive-exclude pip_library_dev *
30
+ recursive-exclude .cfquant_project_updates *
31
+ recursive-exclude .cfquant_updates *
32
+ recursive-exclude .updates *
33
+ recursive-exclude .pytest_cache *
34
+ recursive-exclude .playwright-cli *
35
+ recursive-exclude .local_archive *
36
+ recursive-exclude .vscode *
37
+
38
+ exclude AGENTS.md
39
+ exclude .gitignore
40
+ exclude *.bat
41
+ exclude *.log
42
+ exclude *.db
43
+ exclude *.sqlite
44
+ exclude *.sqlite3
45
+ exclude *.mp4
46
+ exclude *.mov
47
+ exclude *.avi
48
+ exclude *.mkv
49
+ exclude *.webm
50
+ exclude LTtx/tx/data0.txt
51
+ global-exclude __pycache__/*
52
+ global-exclude *.py[cod]
53
+ global-exclude *.pyo
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cfquant
3
- Version: 0.2.2
3
+ Version: 0.2.10
4
4
  Summary: QMT local bridge and xtquant-compatible Python client.
5
5
  License: MIT
6
6
  Requires-Python: >=3.8
@@ -32,20 +32,23 @@ Requires-Dist: pyzmq>=25; extra == "zmq"
32
32
 
33
33
  ## 项目简介
34
34
 
35
+ > **CFQuant 是 MiniQMT 的开源替代方案:让原有 `xtquant` / 外部 Python 策略低成本接入大 QMT。**
36
+
35
37
  ### 1. 项目定位
36
38
 
37
- `cfquant` 是面向大 QMT 的本地桥接层。它把大 QMT 已有的行情、查询、交易和回调能力整理出来,提供接近 `miniQMT` / `xtquant` 的外部调用方式。
38
- - 部署前请务必读完本教程。
39
- - 部署前请务必读完本教程。
40
- - 部署前请务必读完本教程。
39
+ `cfquant` 是面向大 QMT 的本地桥接层,专注解决 MiniQMT 迁移、大 QMT 外部 Python 调用、账号路由、交易回调和 Web 可观测这些实际问题。它不会替代 QMT 终端本身,而是把大 QMT 已有的行情、查询、交易和回调能力整理成更接近 `miniQMT` / `xtquant` 的调用方式,让旧策略可以更低成本迁移到大 QMT 环境。
41
40
 
42
- ### 2. 主要能力
41
+ ### 2. 核心能力
43
42
 
44
- - 交易委托、撤单、委托查询和成交查询
45
- - 交易回调和全推行情推送
46
- - 行情查询、资金查询、持仓查询
47
- - 数据下载、数据读取和接口调试
48
- - Web 控制台、外部 Python 程序和 QMT 策略之间的本地通信
43
+ | 能力 | 解决的问题 |
44
+ |---|---|
45
+ | MiniQMT / `xtquant` 兼容调用 | 原有外部 Python 策略可以沿用接近 `xtdata`、`XtQuantTrader`、`StockAccount` 的写法,降低迁移成本。 |
46
+ | 大 QMT 本地桥接 | 把大 QMT 内部的行情、查询、交易、撤单和回调能力桥接给外部 Python 程序和 Web 控制台。 |
47
+ | Web 控制台 | 在浏览器里完成账号绑定、QMT 入口脚本指引、在线检测、接口调试、版本更新和回滚。 |
48
+ | 多账号 / 多 QMT 路由 | 按 `bridge_id`、`account_type`、`account_id` 路由请求,适配多资金账号、普通账户、信用账户和多 QMT 终端。 |
49
+ | 通用、极致、高级三种模式 | 普通环境快速跑通;受限 QMT 使用自包含入口;低延迟场景可拆分普通桥和交易桥。 |
50
+ | 交易回调与行情推送 | 接收委托、成交、账号状态和行情事件,方便外部策略处理异步结果。 |
51
+ | 部署与排障闭环 | 通过日志、状态检查、教程、反馈和论坛沉淀接入问题,减少部署和维护成本。 |
49
52
 
50
53
  ### 3. 兼容方式
51
54