quant1x 0.7.9.dev2__tar.gz → 0.7.56__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 (291) hide show
  1. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/.gitignore +3 -0
  2. quant1x-0.7.56/AGENTS.md +193 -0
  3. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/CHANGELOG.md +708 -65
  4. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/CMakeLists.txt +101 -103
  5. quant1x-0.7.56/CONTRIBUTING.md +121 -0
  6. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/Cargo.lock +67 -34
  7. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/Cargo.toml +2 -3
  8. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/PKG-INFO +22 -22
  9. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/README.md +575 -575
  10. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/b2c.py +185 -185
  11. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/labs/akshare.ipynb +9 -9
  12. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/labs/qlib.ipynb +7 -7
  13. quant1x-0.7.56/labs/quant1x.ipynb +90 -0
  14. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/main.cpp +37 -58
  15. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/main.go +5 -5
  16. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/main.py +215 -215
  17. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/main.rs +25 -29
  18. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/proto/test-snapshot.py +29 -29
  19. quant1x-0.7.56/publish.sh +158 -0
  20. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/pyproject.toml +3 -2
  21. quant1x-0.7.56/quant1x/__init__.py +29 -0
  22. quant1x-0.7.56/quant1x/_version.py +24 -0
  23. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/__init__.py +17 -17
  24. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/dataclass_utils.py +55 -55
  25. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/embed.go.copy +1 -1
  26. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/except.py +77 -77
  27. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/filesystem.py +97 -97
  28. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/numeric.py +287 -287
  29. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/pattern.py +23 -23
  30. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/singleton.py +676 -676
  31. quant1x-0.7.56/quant1x/base/strings.py +49 -0
  32. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/system.py +16 -16
  33. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/time.py +122 -122
  34. quant1x-0.7.56/quant1x/config/__init__.py +30 -0
  35. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/config/config.py +292 -214
  36. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.56/quant1x/contrib/data/em}/em_dividend.py +54 -54
  37. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/__init__.py +17 -15
  38. quant1x-0.7.56/quant1x/contrib/data/tdx/_constants.py +32 -0
  39. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/kline.py → quant1x-0.7.56/quant1x/contrib/data/tdx/bar.py +702 -703
  40. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/kline_raw.py → quant1x-0.7.56/quant1x/contrib/data/tdx/bar_raw.py +430 -431
  41. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/client.py +377 -375
  42. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.56/quant1x/contrib/data/tdx}/command.py +8 -3
  43. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/config.py +432 -432
  44. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/datasource.py +240 -265
  45. quant1x-0.7.56/quant1x/contrib/data/tdx/financial_report.py +399 -0
  46. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.56/quant1x/contrib/data/tdx}/helpers.py +229 -229
  47. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/instruments.py +211 -211
  48. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/__init__.py +37 -0
  49. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/auction.py +117 -0
  50. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1/ext.py → quant1x-0.7.56/quant1x/contrib/data/tdx/level1/ext/__init__.py +1087 -1085
  51. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1/f10.py → quant1x-0.7.56/quant1x/contrib/data/tdx/level1/ext/hk_f10.py +553 -553
  52. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.56/quant1x/contrib/data/tdx/level1/ext}/xdxr_hkex.py +739 -739
  53. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/fund.py +239 -0
  54. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/__init__.py +43 -0
  55. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/block.py +34 -0
  56. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/block_meta.py +47 -0
  57. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/finance_info.py +83 -0
  58. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/heartbeat.py +27 -0
  59. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/hello.py +62 -0
  60. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/minute_time.py +66 -0
  61. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/security_bars.py +129 -0
  62. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/security_count.py +28 -0
  63. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/security_list.py +85 -0
  64. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/security_quote.py +151 -0
  65. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/transaction.py +162 -0
  66. quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std/xdxr_info.py +168 -0
  67. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/market.py +177 -177
  68. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/money.py +500 -500
  69. quant1x-0.7.56/quant1x/contrib/data/tdx/notice.py +449 -0
  70. quant1x-0.7.56/quant1x/contrib/data/tdx/protocol.py +329 -0
  71. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/sector.py +459 -472
  72. quant1x-0.7.56/quant1x/contrib/data/tdx/share_holder.py +149 -0
  73. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/trans.py +327 -328
  74. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/contrib/data/tdx/xdxr.py +227 -228
  75. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/core/__init__.py +5 -5
  76. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/core/base.py +135 -135
  77. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/core/decode.py +121 -121
  78. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/core/defaults.py +49 -49
  79. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/__init__.py +24 -24
  80. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/adapter.py +169 -169
  81. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/base.py +41 -40
  82. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/cache.py +115 -115
  83. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/datasource.py +156 -156
  84. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/f10.py +53 -51
  85. {quant1x-0.7.9.dev2/quant1x/exchange → quant1x-0.7.56/quant1x/data}/margin_trading.py +175 -180
  86. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/market.py +42 -18
  87. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/__init__.py +14 -14
  88. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/asset_class.py +132 -132
  89. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/calendar.py +487 -486
  90. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/exchange.py +196 -196
  91. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/forex.py +232 -232
  92. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/frequency.py +164 -164
  93. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/fund.py +81 -81
  94. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/instrument.py +288 -286
  95. {quant1x-0.7.9.dev2/quant1x/data → quant1x-0.7.56/quant1x/data/meta}/layout.py +19 -19
  96. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/region.py +53 -53
  97. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/session.py +739 -739
  98. {quant1x-0.7.9.dev2/quant1x/exchange → quant1x-0.7.56/quant1x/data/meta}/sina/decoder.py +472 -472
  99. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/ticker_rules/market_bse.py +32 -32
  100. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/ticker_rules/market_hkex.py +224 -224
  101. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/ticker_rules/market_sse.py +252 -252
  102. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/ticker_rules/market_szse.py +81 -81
  103. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/ticker_rules/market_usa.py +49 -49
  104. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/ticker_rules/rule.py +24 -24
  105. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/timestamp.py +2 -2
  106. quant1x-0.7.56/quant1x/data/schema/README.md +26 -0
  107. quant1x-0.7.56/quant1x/data/schema/__init__.py +26 -0
  108. quant1x-0.7.56/quant1x/data/schema/adjustment.md +92 -0
  109. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/schema/adjustment.py +160 -152
  110. quant1x-0.7.56/quant1x/data/schema/bar.md +28 -0
  111. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/schema/bar.py +180 -180
  112. quant1x-0.7.56/quant1x/data/schema/company.md +18 -0
  113. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/schema/company.py +17 -17
  114. quant1x-0.7.56/quant1x/data/schema/dividend.md +124 -0
  115. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/schema/dividend.py +529 -529
  116. quant1x-0.7.56/quant1x/data/schema/sector.md +20 -0
  117. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/schema/sector.py +16 -16
  118. quant1x-0.7.56/quant1x/data/schema/trade.md +36 -0
  119. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/schema/trade.py +41 -41
  120. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/status.py +55 -55
  121. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/storage/__init__.py +10 -10
  122. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/storage/csv.py +140 -140
  123. quant1x-0.7.56/quant1x/data/storage/storage.md +198 -0
  124. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/storage/storage.py +69 -69
  125. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/device.py +28 -28
  126. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/devp.py +29 -29
  127. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/encoding/binary/cstruct/README.md +247 -247
  128. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/encoding/yaml.py +103 -103
  129. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/factors/__init__.py +24 -24
  130. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/factors/f10.py +324 -303
  131. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/factors/financial_report.py +390 -343
  132. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/factors/notice.py +476 -458
  133. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/factors/safety_score.py +141 -132
  134. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/factors/share_holder.py +147 -144
  135. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/formula/__init__.py +6 -6
  136. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/formula/formula.py +997 -997
  137. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/formula/formula_plus.py +195 -195
  138. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/__init__.py +4 -4
  139. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/cdtd.py +83 -83
  140. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/f89k.py +165 -165
  141. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/hjk.py +75 -75
  142. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/ma1x.py +195 -195
  143. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/p2fb.py +99 -99
  144. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/io/__init__.py +5 -5
  145. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/io/connection_pool.py +361 -361
  146. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/io/endpoint.py +96 -96
  147. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/io/operation_handler.py +54 -54
  148. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/learn/fpgrowth/fp_growth_example.py +64 -64
  149. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/log/__init__.py +19 -19
  150. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/log/logger.py +74 -74
  151. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/net/__init__.py +6 -6
  152. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/net/conn.py +119 -119
  153. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/net/endpoint.py +90 -90
  154. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/net/handler.py +49 -49
  155. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/net/tcp_client_pool.py +275 -275
  156. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/network.py +62 -62
  157. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/runtime/once.py +5 -5
  158. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/runtime/scheduler.py +26 -26
  159. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/tools/inspect_blocks.py +97 -97
  160. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/types.py +7 -7
  161. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/util/__init__.py +8 -8
  162. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/util/chart.py +6 -6
  163. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/util/font.py +42 -42
  164. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/version.py +81 -81
  165. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x.egg-info/PKG-INFO +22 -22
  166. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x.egg-info/SOURCES.txt +60 -69
  167. quant1x-0.7.56/quant1x.egg-info/scm_file_list.json +2213 -0
  168. quant1x-0.7.56/quant1x.egg-info/scm_version.json +8 -0
  169. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/rust-toolchain.toml +1 -1
  170. quant1x-0.7.9.dev2/labs/quant1x.ipynb +0 -176
  171. quant1x-0.7.9.dev2/publish.sh +0 -122
  172. quant1x-0.7.9.dev2/quant1x/__init__.py +0 -25
  173. quant1x-0.7.9.dev2/quant1x/config/__init__.py +0 -21
  174. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1/__init__.py +0 -31
  175. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1/std.py +0 -697
  176. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/protocol.py +0 -544
  177. quant1x-0.7.9.dev2/quant1x/data/kline.py +0 -326
  178. quant1x-0.7.9.dev2/quant1x/data/kline_raw.py +0 -354
  179. quant1x-0.7.9.dev2/quant1x/data/market_old.py +0 -153
  180. quant1x-0.7.9.dev2/quant1x/data/meta/sina/decoder.py +0 -473
  181. quant1x-0.7.9.dev2/quant1x/data/schema/__init__.py +0 -26
  182. quant1x-0.7.9.dev2/quant1x/data/sector.py +0 -77
  183. quant1x-0.7.9.dev2/quant1x/data/security.py +0 -59
  184. quant1x-0.7.9.dev2/quant1x/data/trans.py +0 -482
  185. quant1x-0.7.9.dev2/quant1x/data/xdxr.md +0 -144
  186. quant1x-0.7.9.dev2/quant1x/data/xdxr.py +0 -111
  187. quant1x-0.7.9.dev2/quant1x/exchange/__init__.py +0 -60
  188. quant1x-0.7.9.dev2/quant1x/exchange/calendar.py +0 -518
  189. quant1x-0.7.9.dev2/quant1x/exchange/code.py +0 -453
  190. quant1x-0.7.9.dev2/quant1x/exchange/rule.py +0 -485
  191. quant1x-0.7.9.dev2/quant1x/exchange/session.py +0 -471
  192. quant1x-0.7.9.dev2/quant1x/exchange/status.py +0 -63
  193. quant1x-0.7.9.dev2/quant1x/exchange/timestamp.py +0 -219
  194. quant1x-0.7.9.dev2/quant1x/factors/base.py +0 -443
  195. quant1x-0.7.9.dev2/quant1x/level1/__init__.py +0 -7
  196. quant1x-0.7.9.dev2/quant1x/level1/block_info.py +0 -71
  197. quant1x-0.7.9.dev2/quant1x/level1/block_meta.py +0 -72
  198. quant1x-0.7.9.dev2/quant1x/level1/client.py +0 -187
  199. quant1x-0.7.9.dev2/quant1x/level1/config.py +0 -328
  200. quant1x-0.7.9.dev2/quant1x/level1/finance_info.py +0 -169
  201. quant1x-0.7.9.dev2/quant1x/level1/heartbeat.py +0 -50
  202. quant1x-0.7.9.dev2/quant1x/level1/hello1.py +0 -48
  203. quant1x-0.7.9.dev2/quant1x/level1/hello2.py +0 -48
  204. quant1x-0.7.9.dev2/quant1x/level1/helpers.py +0 -200
  205. quant1x-0.7.9.dev2/quant1x/level1/minute_time.py +0 -94
  206. quant1x-0.7.9.dev2/quant1x/level1/protocol.py +0 -88
  207. quant1x-0.7.9.dev2/quant1x/level1/security_bars.py +0 -175
  208. quant1x-0.7.9.dev2/quant1x/level1/security_count.py +0 -51
  209. quant1x-0.7.9.dev2/quant1x/level1/security_list.py +0 -176
  210. quant1x-0.7.9.dev2/quant1x/level1/security_quote.py +0 -394
  211. quant1x-0.7.9.dev2/quant1x/level1/transaction.py +0 -223
  212. quant1x-0.7.9.dev2/quant1x/level1/xdxr_info.py +0 -230
  213. quant1x-0.7.9.dev2/quant1x/market/__init__.py +0 -0
  214. quant1x-0.7.9.dev2/quant1x/market/blocks.py +0 -528
  215. quant1x-0.7.9.dev2/quant1x/market/instruments.py +0 -116
  216. quant1x-0.7.9.dev2/quant1x/market/security.py +0 -217
  217. quant1x-0.7.9.dev2/quant1x/runtime/__init__.py +0 -0
  218. quant1x-0.7.9.dev2/quant1x/std/strings.py +0 -31
  219. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/.clang-format +0 -0
  220. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/.clang-tidy +0 -0
  221. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/.editorconfig +0 -0
  222. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/.gitattributes +0 -0
  223. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/.vscode/c_cpp_properties.json +0 -0
  224. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/.vscode/settings.json +0 -0
  225. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/LICENSE +0 -0
  226. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/MANIFEST.in +0 -0
  227. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/logo.png +0 -0
  228. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/proto/chips.proto +0 -0
  229. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/proto/snapshot.capnp +0 -0
  230. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/proto/trans.proto +0 -0
  231. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/proto/xdxr.proto +0 -0
  232. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/publish.bat +0 -0
  233. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/publish.ps1 +0 -0
  234. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/bits_amd64.s +0 -0
  235. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/bits_arm64.s +0 -0
  236. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/numeric.md +0 -0
  237. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.56/quant1x/base}/strings.md +0 -0
  238. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/build-info.h.in +0 -0
  239. {quant1x-0.7.9.dev2/quant1x/cli → quant1x-0.7.56/quant1x/contrib}/__init__.py +0 -0
  240. {quant1x-0.7.9.dev2/quant1x/contrib → quant1x-0.7.56/quant1x/contrib/data}/__init__.py +0 -0
  241. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.56/quant1x/contrib/data/tdx/level1/ext}/ext-category.md +0 -0
  242. {quant1x-0.7.9.dev2/quant1x/level1 → quant1x-0.7.56/quant1x/contrib/data/tdx/level1/std}/security_quote.md +0 -0
  243. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/data/meta/fund.md +0 -0
  244. {quant1x-0.7.9.dev2/quant1x/exchange → quant1x-0.7.56/quant1x/data/meta}/session.md +0 -0
  245. {quant1x-0.7.9.dev2/quant1x/contrib/data → quant1x-0.7.56/quant1x/data/meta/sina}/__init__.py +0 -0
  246. {quant1x-0.7.9.dev2/quant1x/data/meta/sina → quant1x-0.7.56/quant1x/data/meta/ticker_rules}/__init__.py +0 -0
  247. {quant1x-0.7.9.dev2/quant1x/data/meta/ticker_rules → quant1x-0.7.56/quant1x/encoding}/__init__.py +0 -0
  248. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/encoding/binary/README.md +0 -0
  249. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/encoding/binary/cstruct/FORK.md +0 -0
  250. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/encoding/binary/cstruct/LICENSE +0 -0
  251. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/encoding/binary/struc/LICENSE +0 -0
  252. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/encoding/binary/struc/README.md +0 -0
  253. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/encoding/json.md +0 -0
  254. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/formula/README-MyTT.md +0 -0
  255. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/formula/formula.ipynb +0 -0
  256. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/README.md +0 -0
  257. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/cdtd.md +0 -0
  258. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/f89k.md +0 -0
  259. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/hjk.md +0 -0
  260. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/ma1x.md +0 -0
  261. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/p2fb.md +0 -0
  262. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/indicators/winner.md +0 -0
  263. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/io/connection_pool.md +0 -0
  264. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/io/csv-reader.LICENSE +0 -0
  265. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/io/csv-reader.md +0 -0
  266. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/learn/fpgrowth/README.md +0 -0
  267. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/learn/fpgrowth/fp_growth.md +0 -0
  268. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/log4rs.yaml +0 -0
  269. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/proto/README.md +0 -0
  270. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/proto/security_info.proto +0 -0
  271. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/proto/snapshot.capnp.c++ +0 -0
  272. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/resources/README.md +0 -0
  273. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/resources/meta/tdxhy.inc +0 -0
  274. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/resources/meta/tdxzs.inc +0 -0
  275. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/resources/meta/tdxzs3.inc +0 -0
  276. {quant1x-0.7.9.dev2/quant1x/encoding → quant1x-0.7.56/quant1x/runtime}/__init__.py +0 -0
  277. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/runtime/ringbuffer.md +0 -0
  278. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/runtime/scheduler.md +0 -0
  279. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/ta/README.md +0 -0
  280. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/util/SimHei.ttf +0 -0
  281. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x/util/util-font.ipynb +0 -0
  282. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x.cer +0 -0
  283. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x.egg-info/dependency_links.txt +0 -0
  284. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x.egg-info/not-zip-safe +0 -0
  285. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x.egg-info/requires.txt +0 -0
  286. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x.egg-info/top_level.txt +0 -0
  287. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/quant1x.pfx +0 -0
  288. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/requirements.txt +0 -0
  289. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/setup.cfg +0 -0
  290. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/test_loop.sh +0 -0
  291. {quant1x-0.7.9.dev2 → quant1x-0.7.56}/vcpkg.json +0 -0
@@ -42,3 +42,6 @@ target/
42
42
 
43
43
  # vscode
44
44
  .vscode/launch.json
45
+
46
+ # setuptools_scm generated version file
47
+ _version.py
@@ -0,0 +1,193 @@
1
+ # AGENTS.md — Quant1X 多语言 AI 协作规则
2
+
3
+ 本文件是 AI(CodeBuddy / GitHub Copilot)在参与 Quant1X 项目时的强制执行规则。
4
+
5
+ 详细架构与背景请阅读:[CONTRIBUTING.md](CONTRIBUTING.md)
6
+
7
+ ## 一、总体原则(不可违反)
8
+
9
+ - 本项目为**多语言平行实现**,严禁任何跨语言调用(FFI / Cgo / SWIG)
10
+ - Python 负责探索验证,C/C++ 负责生产,Rust / Go 负责生态扩展
11
+ - **语义一致性高于语言习惯**
12
+ - 所有实现必须可通过同一组测试向量验证
13
+
14
+ ## 二、目录与文件结构规则
15
+
16
+ - 严格遵循 [CONTRIBUTING.md](CONTRIBUTING.md) 第 2 节定义的目录结构
17
+ - Go 实现必须位于功能子目录中,例如 `data/t1/`
18
+ - Go 包名必须与目录名完全一致(如 `package t1`)
19
+ - **禁止**为了"方便"合并 Go 文件到根目录
20
+
21
+ ## 三、命名规则
22
+
23
+ ### 3.0 命名参考体系(Type Vocabulary)
24
+
25
+ 本项目有一组核心领域类型的**标准名称**,以国际量化金融社区通用术语(Bloomberg / QuantLib / Backtrader / WRDS 等)为参考基准,四种语言必须使用同一名称。**拒绝拼音、音译、本地化翻译。** AI 生成代码时,必须以此表为准,不可即兴发明别名。
26
+
27
+ | 领域概念 | 标准类型名 | 说明 |
28
+ |---------|-----------|------|
29
+ | OHLCV K线数据结构 | **`Bar`** | 不得使用 `KLine`(已废弃的遗留别名,仅 C++ 保留 `using KLine = Bar` 向后兼容) |
30
+ | 未复权原始K线 | **`BarRaw`** | 不得使用 `KLineRaw` |
31
+ | K线周期枚举 | **`KLineType`** | 此处保留 "KLine" — 它是关于"K线类别"的元数据,非数据结构本身 |
32
+ | K线数据适配器类 | **`DataKLine`** | 适配器类名保留 "KLine" — 这是"拉取K线数据"的功能模块名,非数据结构 |
33
+ | 原始K线适配器 | **`DataKLineRaw`** | 同上 |
34
+ | 分钟K线适配器 | **`DataMinuteKLine`** | 同上 |
35
+ | 逐笔成交 | **`Transaction`** | 不得使用 `Tick`(`Tick` 仅作为方向常量前缀如 `TICK_BUY`,无 `Tick` struct) |
36
+ | 复权信息 | **`XdxrInfo`** | 除权除息信息 |
37
+ | 累积复权因子 | **`CumulativeAdjustment`** | 四种语言同名 |
38
+ | 板块分类 | **`Sector`** | 行业/概念板块 |
39
+ | 公司信息 | **`CompanyInfoChunk`** | 上市公司基本信息 |
40
+ | 分红调整 | **`DividendAdjustment`** | 分红除权调整 |
41
+ | 交易方向 | **`Direction`** | 买卖方向标志 |
42
+ | 证券K线(协议层) | **`SecurityBar`** | 网络协议/存储层使用的中间结构,Python 端复用 `Bar` |
43
+
44
+ **核心原则:以国际量化金融标准术语为准,拒绝本地化音译**
45
+
46
+ 本项目类型命名以**国际量化金融社区通用术语**为唯一参考标准。量化交易是一个全球化领域,代码应能被任何操盘手、量化研究员直接阅读,不依赖中文语境。
47
+
48
+ **为什么用 `Bar` 而不用 `KLine`?**
49
+ - `Bar` 是国际量化金融中 OHLCV 柱状数据的**标准术语**(Bloomberg Terminal、QuantLib、Backtrader 等均使用 `Bar`)
50
+ - `KLine` 是中文"K线"的音译(源自日语"罫線" Keisen),属于本地化命名,不在国际通用术语范围内
51
+ - 同理,`Transaction` 不用 `Tick`(`Tick` 在国际期货/外汇市场另有精确定义:最小价格变动单位)
52
+ - 项目经历过 `kline-to-bar` 重构(v0.7.51),已将规范类型名从 `KLine` 统一为 `Bar`
53
+ - C++ 中保留 `using KLine = schema::Bar` 仅用于**旧代码向后兼容**,新代码不得引用 `KLine` 作为类型名
54
+
55
+ **新增类型的命名验收标准**:
56
+ 1. 该名称是否是 Bloomberg / QuantLib / Backtrader / WRDS 等国际平台的惯用名?
57
+ 2. 如果不是 → 拒绝,使用国际标准术语
58
+ 3. 如果在国际标准中不存在直接对应 → 以英文描述性命名,禁止拼音/音译
59
+
60
+ **文件命名规则**:文件以**领域概念**命名,非以语言命名。同一概念在 `data/schema/` 下有平行的多语言文件:
61
+
62
+ ```
63
+ data/schema/
64
+ ├── bar.md # 文档(Spec)
65
+ ├── bar.h # C++
66
+ ├── bar.rs # Rust
67
+ ├── bar.go # Go
68
+ ├── bar.py # Python
69
+ ├── transaction.md
70
+ ├── transaction.h
71
+ ├── transaction.rs
72
+ ├── transaction.go
73
+ ├── transaction.py
74
+ └── ...
75
+ ```
76
+
77
+ ### 3.1 内存态(代码内部)
78
+
79
+ | 语言 | 函数 / 方法 | 类型 / Struct | 变量 / 字段 |
80
+ |--------|------------------------|------------------------|------------------------|
81
+ | Python | `snake_case` | `PascalCase` | `snake_case` |
82
+ | C/C++ | `snake_case` | `PascalCase` | `snake_case` |
83
+ | Rust | `snake_case` | `PascalCase` | `snake_case` |
84
+ | Go | `PascalCase`(导出) | `PascalCase` | `PascalCase` / `camelCase` |
85
+
86
+ **⚠️ AI 必须做到:**
87
+
88
+ - 从 Python / C++ 生成 Go 代码时,自动将 `snake_case` → `PascalCase`
89
+ - **绝不生成** `snake_case` 的 Go 导出符号
90
+ - **新增类型名必须查 §3.0 参考体系**,不可即兴发明名称
91
+ - 若发现某种语言使用了与 §3.0 不一致的名称,立即指出
92
+
93
+ ### 3.2 边界态(I/O 与序列化)【铁律】
94
+
95
+ - 所有落盘字段名必须是**全小写 `snake_case`**
96
+ - Go 结构体必须显式添加 struct tag:
97
+
98
+ ```go
99
+ type Bar struct {
100
+ Open float64 `json:"open" csv:"open"`
101
+ High float64 `json:"high" csv:"high"`
102
+ Low float64 `json:"low" csv:"low"`
103
+ Close float64 `json:"close" csv:"close"`
104
+ Volume float64 `json:"volume" csv:"volume"`
105
+ }
106
+ ```
107
+
108
+ - AI 生成 Go 代码时,必须自动补全 tag
109
+ - **tag 内容永远是小写 snake_case**,不受内存命名影响
110
+ - **tag 内字段名必须与 Python/C++ 的 snake_case 字段名一致**,不可自行翻译
111
+
112
+ ## 四、文档驱动的 AI 行为规则
113
+
114
+ ### 上下文读取顺序(强制执行)
115
+
116
+ 1. 优先读取同级 `*.md`(如 `t1.md`)
117
+ 2. 其次读取 Python / C++ 参考实现
118
+ 3. 最后才生成目标语言代码
119
+
120
+ ### 生成代码必须满足
121
+
122
+ - **数学公式**:严格对照 `*.md` 中的 LaTeX
123
+ - **数据契约**:字段类型、精度、Null/NaN 行为与文档一致
124
+ - **边界条件**:必须实现文档中定义的所有异常分支
125
+
126
+ ## 五、语言职责与 AI 行为约束
127
+
128
+ ### Python
129
+
130
+ - 作为 Spec 锚点
131
+ - 所有新功能必须先有 Python 实现
132
+ - docstring 视为跨语言契约的一部分
133
+
134
+ ### C / C++
135
+
136
+ - 作为生产真相源
137
+ - **严禁 UB**,严禁未定义行为
138
+ - 内存管理必须显式、可审计
139
+
140
+ ### Rust
141
+
142
+ - **严禁** `unwrap()` / `expect()` 在业务路径
143
+ - 所有错误必须显式返回 `Result`
144
+ - `unsafe` 必须说明理由
145
+
146
+ ### Go
147
+
148
+ - **严禁** `panic` 作为控制流
149
+ - 所有 error 必须显式返回
150
+ - 并发安全必须显式标注
151
+
152
+ ## 六、AI 生成代码的硬性限制
153
+
154
+ - ❌ 不允许"看起来差不多"的实现
155
+ - ❌ 不允许省略边界条件处理
156
+ - ❌ 不允许假设字段默认值
157
+ - ❌ 不允许引入语言特有隐式行为
158
+ - ✅ 必须保证四种语言对同一输入的数值结果在 epsilon 范围内一致
159
+
160
+ ## 七、开发工作流(AI 视角)
161
+
162
+ 当被要求"实现 / 移植 / 补齐某功能"时,AI 必须按以下顺序执行:
163
+
164
+ 1. 阅读 `CONTRIBUTING.md` 了解整体架构
165
+ 2. 阅读对应 `t1.md`(如有)
166
+ 3. 阅读 Python / C++ 实现
167
+ 4. 按目标语言规范生成代码
168
+ 5. 自检:
169
+ - 命名是否符合本节规则
170
+ - 序列化 tag 是否正确
171
+ - 边界条件是否全覆盖
172
+
173
+ ## 八、AI 回复风格要求
174
+
175
+ - 明确指出目标语言所属层级(探索 / 生产 / 生态)
176
+ - 若发现 Python / C++ / Rust / Go 行为不一致,立即指出
177
+ - **不擅自改变架构约定**,即使"看起来更优雅"
178
+
179
+ ## 九、版本与发布规则(AI 禁止触碰)
180
+
181
+ - 版本号由 Git Tag(`vMAJOR.MINOR.PATCH`)唯一决定。
182
+ - Rust / Python / Go / C++ 四种语言必须共享同一版本号,不可各自独立。
183
+ - `autochangelog` 是唯一合法的版本发布入口。
184
+ - **AI Agent 严禁以下行为**:
185
+ - ❌ 修改任何文件中的版本号字符串
186
+ - ❌ 创建、修改或删除 Git Tag
187
+ - ❌ 调用 `autochangelog` 或任何发布脚本
188
+ - ❌ 在代码或提交信息中自行推断版本号
189
+ - ❌ 修改 `CHANGELOG.md`、`pyproject.toml`、`Cargo.toml` 中的 `version` 字段
190
+
191
+ ## 十、一句话总结(给 AI 的记忆锚点)
192
+
193
+ > Quant1X 是多语言语义同构系统,Python 是 Spec,C++ 是 Truth,Rust / Go 是对齐实现,I/O 边界死守 `snake_case`。