quant1x 0.7.9.dev2__tar.gz → 0.7.60__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 (295) hide show
  1. quant1x-0.7.60/.clock_state +1 -0
  2. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/.gitignore +4 -0
  3. quant1x-0.7.60/AGENTS.md +193 -0
  4. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/CHANGELOG.md +753 -65
  5. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/CMakeLists.txt +101 -103
  6. quant1x-0.7.60/CONTRIBUTING.md +121 -0
  7. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/Cargo.lock +67 -34
  8. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/Cargo.toml +2 -3
  9. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/PKG-INFO +96 -88
  10. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/README.md +583 -575
  11. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/b2c.py +185 -185
  12. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/labs/akshare.ipynb +9 -9
  13. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/labs/qlib.ipynb +7 -7
  14. quant1x-0.7.60/labs/quant1x.ipynb +90 -0
  15. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/main.cpp +37 -58
  16. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/main.go +5 -5
  17. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/main.py +215 -215
  18. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/main.rs +25 -29
  19. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/proto/test-snapshot.py +29 -29
  20. quant1x-0.7.60/publish.sh +158 -0
  21. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/pyproject.toml +3 -2
  22. quant1x-0.7.60/quant1x/__init__.py +29 -0
  23. quant1x-0.7.60/quant1x/_version.py +24 -0
  24. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/__init__.py +18 -17
  25. quant1x-0.7.60/quant1x/base/bits.py +90 -0
  26. quant1x-0.7.60/quant1x/base/cache/market.dat +0 -0
  27. quant1x-0.7.60/quant1x/base/clock.py +63 -0
  28. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/dataclass_utils.py +55 -55
  29. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/embed.go.copy +2 -2
  30. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/except.py +77 -77
  31. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/filesystem.py +97 -97
  32. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/numeric.py +287 -287
  33. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/pattern.py +23 -23
  34. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/singleton.py +676 -676
  35. quant1x-0.7.60/quant1x/base/strings.py +49 -0
  36. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/system.py +16 -16
  37. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/time.py +122 -122
  38. quant1x-0.7.60/quant1x/config/__init__.py +30 -0
  39. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/config/config.py +292 -214
  40. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.60/quant1x/contrib/data/em}/em_dividend.py +54 -54
  41. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/__init__.py +17 -15
  42. quant1x-0.7.60/quant1x/contrib/data/tdx/_constants.py +32 -0
  43. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/kline.py → quant1x-0.7.60/quant1x/contrib/data/tdx/bar.py +702 -703
  44. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/kline_raw.py → quant1x-0.7.60/quant1x/contrib/data/tdx/bar_raw.py +430 -431
  45. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/client.py +377 -375
  46. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.60/quant1x/contrib/data/tdx}/command.py +8 -3
  47. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/config.py +432 -432
  48. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/datasource.py +240 -265
  49. quant1x-0.7.60/quant1x/contrib/data/tdx/financial_report.py +399 -0
  50. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.60/quant1x/contrib/data/tdx}/helpers.py +229 -229
  51. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/instruments.py +211 -211
  52. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/__init__.py +37 -0
  53. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/auction.py +117 -0
  54. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1/ext.py → quant1x-0.7.60/quant1x/contrib/data/tdx/level1/ext/__init__.py +1087 -1085
  55. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1/f10.py → quant1x-0.7.60/quant1x/contrib/data/tdx/level1/ext/hk_f10.py +553 -553
  56. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.60/quant1x/contrib/data/tdx/level1/ext}/xdxr_hkex.py +739 -739
  57. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/fund.py +239 -0
  58. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/__init__.py +43 -0
  59. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/block.py +34 -0
  60. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/block_meta.py +47 -0
  61. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/finance_info.py +83 -0
  62. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/heartbeat.py +27 -0
  63. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/hello.py +62 -0
  64. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/minute_time.py +66 -0
  65. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/security_bars.py +129 -0
  66. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/security_count.py +28 -0
  67. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/security_list.py +85 -0
  68. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/security_quote.py +151 -0
  69. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/transaction.py +162 -0
  70. quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std/xdxr_info.py +168 -0
  71. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/market.py +177 -177
  72. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/money.py +500 -500
  73. quant1x-0.7.60/quant1x/contrib/data/tdx/notice.py +449 -0
  74. quant1x-0.7.60/quant1x/contrib/data/tdx/protocol.py +329 -0
  75. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/sector.py +459 -472
  76. quant1x-0.7.60/quant1x/contrib/data/tdx/share_holder.py +149 -0
  77. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/trans.py +327 -328
  78. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/contrib/data/tdx/xdxr.py +227 -228
  79. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/core/__init__.py +5 -5
  80. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/core/base.py +135 -135
  81. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/core/decode.py +121 -121
  82. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/core/defaults.py +49 -49
  83. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/__init__.py +24 -24
  84. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/adapter.py +169 -169
  85. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/base.py +41 -40
  86. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/cache.py +115 -115
  87. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/datasource.py +156 -156
  88. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/f10.py +53 -51
  89. {quant1x-0.7.9.dev2/quant1x/exchange → quant1x-0.7.60/quant1x/data}/margin_trading.py +175 -180
  90. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/market.py +42 -18
  91. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/__init__.py +14 -14
  92. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/asset_class.py +132 -132
  93. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/calendar.py +487 -486
  94. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/exchange.py +196 -196
  95. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/forex.py +232 -232
  96. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/frequency.py +164 -164
  97. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/fund.py +81 -81
  98. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/instrument.py +288 -286
  99. {quant1x-0.7.9.dev2/quant1x/data → quant1x-0.7.60/quant1x/data/meta}/layout.py +19 -19
  100. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/region.py +53 -53
  101. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/session.py +739 -739
  102. {quant1x-0.7.9.dev2/quant1x/exchange → quant1x-0.7.60/quant1x/data/meta}/sina/decoder.py +472 -472
  103. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/ticker_rules/market_bse.py +32 -32
  104. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/ticker_rules/market_hkex.py +224 -224
  105. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/ticker_rules/market_sse.py +252 -252
  106. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/ticker_rules/market_szse.py +81 -81
  107. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/ticker_rules/market_usa.py +49 -49
  108. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/ticker_rules/rule.py +24 -24
  109. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/timestamp.py +2 -2
  110. quant1x-0.7.60/quant1x/data/schema/README.md +26 -0
  111. quant1x-0.7.60/quant1x/data/schema/__init__.py +26 -0
  112. quant1x-0.7.60/quant1x/data/schema/adjustment.md +92 -0
  113. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/schema/adjustment.py +160 -152
  114. quant1x-0.7.60/quant1x/data/schema/bar.md +28 -0
  115. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/schema/bar.py +180 -180
  116. quant1x-0.7.60/quant1x/data/schema/company.md +18 -0
  117. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/schema/company.py +17 -17
  118. quant1x-0.7.60/quant1x/data/schema/dividend.md +124 -0
  119. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/schema/dividend.py +529 -529
  120. quant1x-0.7.60/quant1x/data/schema/sector.md +20 -0
  121. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/schema/sector.py +16 -16
  122. quant1x-0.7.60/quant1x/data/schema/trade.md +36 -0
  123. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/schema/trade.py +41 -41
  124. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/status.py +55 -55
  125. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/storage/__init__.py +10 -10
  126. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/storage/csv.py +140 -140
  127. quant1x-0.7.60/quant1x/data/storage/storage.md +198 -0
  128. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/storage/storage.py +69 -69
  129. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/device.py +28 -28
  130. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/devp.py +29 -29
  131. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/encoding/binary/cstruct/README.md +247 -247
  132. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/encoding/yaml.py +103 -103
  133. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/factors/__init__.py +24 -24
  134. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/factors/f10.py +324 -303
  135. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/factors/financial_report.py +390 -343
  136. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/factors/notice.py +476 -458
  137. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/factors/safety_score.py +141 -132
  138. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/factors/share_holder.py +147 -144
  139. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/formula/__init__.py +6 -6
  140. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/formula/formula.py +997 -997
  141. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/formula/formula_plus.py +195 -195
  142. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/__init__.py +4 -4
  143. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/cdtd.py +83 -83
  144. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/f89k.py +165 -165
  145. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/hjk.py +75 -75
  146. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/ma1x.py +195 -195
  147. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/p2fb.py +99 -99
  148. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/io/__init__.py +5 -5
  149. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/io/connection_pool.py +361 -361
  150. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/io/endpoint.py +96 -96
  151. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/io/operation_handler.py +54 -54
  152. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/learn/fpgrowth/fp_growth_example.py +64 -64
  153. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/log/__init__.py +19 -19
  154. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/log/logger.py +74 -74
  155. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/net/__init__.py +6 -6
  156. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/net/conn.py +119 -119
  157. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/net/endpoint.py +90 -90
  158. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/net/handler.py +49 -49
  159. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/net/tcp_client_pool.py +275 -275
  160. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/network.py +62 -62
  161. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/runtime/once.py +5 -5
  162. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/runtime/scheduler.py +26 -26
  163. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/tools/inspect_blocks.py +97 -97
  164. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/types.py +7 -7
  165. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/util/__init__.py +8 -8
  166. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/util/chart.py +6 -6
  167. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/util/font.py +42 -42
  168. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/version.py +81 -81
  169. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x.egg-info/PKG-INFO +96 -88
  170. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x.egg-info/SOURCES.txt +62 -69
  171. quant1x-0.7.60/quant1x.egg-info/scm_file_list.json +2220 -0
  172. quant1x-0.7.60/quant1x.egg-info/scm_version.json +8 -0
  173. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/rust-toolchain.toml +1 -1
  174. quant1x-0.7.9.dev2/labs/quant1x.ipynb +0 -176
  175. quant1x-0.7.9.dev2/publish.sh +0 -122
  176. quant1x-0.7.9.dev2/quant1x/__init__.py +0 -25
  177. quant1x-0.7.9.dev2/quant1x/config/__init__.py +0 -21
  178. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1/__init__.py +0 -31
  179. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1/std.py +0 -697
  180. quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/protocol.py +0 -544
  181. quant1x-0.7.9.dev2/quant1x/data/kline.py +0 -326
  182. quant1x-0.7.9.dev2/quant1x/data/kline_raw.py +0 -354
  183. quant1x-0.7.9.dev2/quant1x/data/market_old.py +0 -153
  184. quant1x-0.7.9.dev2/quant1x/data/meta/sina/decoder.py +0 -473
  185. quant1x-0.7.9.dev2/quant1x/data/schema/__init__.py +0 -26
  186. quant1x-0.7.9.dev2/quant1x/data/sector.py +0 -77
  187. quant1x-0.7.9.dev2/quant1x/data/security.py +0 -59
  188. quant1x-0.7.9.dev2/quant1x/data/trans.py +0 -482
  189. quant1x-0.7.9.dev2/quant1x/data/xdxr.md +0 -144
  190. quant1x-0.7.9.dev2/quant1x/data/xdxr.py +0 -111
  191. quant1x-0.7.9.dev2/quant1x/exchange/__init__.py +0 -60
  192. quant1x-0.7.9.dev2/quant1x/exchange/calendar.py +0 -518
  193. quant1x-0.7.9.dev2/quant1x/exchange/code.py +0 -453
  194. quant1x-0.7.9.dev2/quant1x/exchange/rule.py +0 -485
  195. quant1x-0.7.9.dev2/quant1x/exchange/session.py +0 -471
  196. quant1x-0.7.9.dev2/quant1x/exchange/status.py +0 -63
  197. quant1x-0.7.9.dev2/quant1x/exchange/timestamp.py +0 -219
  198. quant1x-0.7.9.dev2/quant1x/factors/base.py +0 -443
  199. quant1x-0.7.9.dev2/quant1x/level1/__init__.py +0 -7
  200. quant1x-0.7.9.dev2/quant1x/level1/block_info.py +0 -71
  201. quant1x-0.7.9.dev2/quant1x/level1/block_meta.py +0 -72
  202. quant1x-0.7.9.dev2/quant1x/level1/client.py +0 -187
  203. quant1x-0.7.9.dev2/quant1x/level1/config.py +0 -328
  204. quant1x-0.7.9.dev2/quant1x/level1/finance_info.py +0 -169
  205. quant1x-0.7.9.dev2/quant1x/level1/heartbeat.py +0 -50
  206. quant1x-0.7.9.dev2/quant1x/level1/hello1.py +0 -48
  207. quant1x-0.7.9.dev2/quant1x/level1/hello2.py +0 -48
  208. quant1x-0.7.9.dev2/quant1x/level1/helpers.py +0 -200
  209. quant1x-0.7.9.dev2/quant1x/level1/minute_time.py +0 -94
  210. quant1x-0.7.9.dev2/quant1x/level1/protocol.py +0 -88
  211. quant1x-0.7.9.dev2/quant1x/level1/security_bars.py +0 -175
  212. quant1x-0.7.9.dev2/quant1x/level1/security_count.py +0 -51
  213. quant1x-0.7.9.dev2/quant1x/level1/security_list.py +0 -176
  214. quant1x-0.7.9.dev2/quant1x/level1/security_quote.py +0 -394
  215. quant1x-0.7.9.dev2/quant1x/level1/transaction.py +0 -223
  216. quant1x-0.7.9.dev2/quant1x/level1/xdxr_info.py +0 -230
  217. quant1x-0.7.9.dev2/quant1x/market/__init__.py +0 -0
  218. quant1x-0.7.9.dev2/quant1x/market/blocks.py +0 -528
  219. quant1x-0.7.9.dev2/quant1x/market/instruments.py +0 -116
  220. quant1x-0.7.9.dev2/quant1x/market/security.py +0 -217
  221. quant1x-0.7.9.dev2/quant1x/runtime/__init__.py +0 -0
  222. quant1x-0.7.9.dev2/quant1x/std/bits_amd64.s +0 -32
  223. quant1x-0.7.9.dev2/quant1x/std/bits_arm64.s +0 -33
  224. quant1x-0.7.9.dev2/quant1x/std/strings.py +0 -31
  225. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/.clang-format +0 -0
  226. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/.clang-tidy +0 -0
  227. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/.editorconfig +0 -0
  228. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/.gitattributes +0 -0
  229. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/.vscode/c_cpp_properties.json +0 -0
  230. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/.vscode/settings.json +0 -0
  231. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/LICENSE +0 -0
  232. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/MANIFEST.in +0 -0
  233. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/logo.png +0 -0
  234. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/proto/chips.proto +0 -0
  235. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/proto/snapshot.capnp +0 -0
  236. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/proto/trans.proto +0 -0
  237. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/proto/xdxr.proto +0 -0
  238. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/publish.bat +0 -0
  239. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/publish.ps1 +0 -0
  240. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/numeric.md +0 -0
  241. {quant1x-0.7.9.dev2/quant1x/std → quant1x-0.7.60/quant1x/base}/strings.md +0 -0
  242. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/build-info.h.in +0 -0
  243. {quant1x-0.7.9.dev2/quant1x/cli → quant1x-0.7.60/quant1x/contrib}/__init__.py +0 -0
  244. {quant1x-0.7.9.dev2/quant1x/contrib → quant1x-0.7.60/quant1x/contrib/data}/__init__.py +0 -0
  245. {quant1x-0.7.9.dev2/quant1x/contrib/data/tdx/level1 → quant1x-0.7.60/quant1x/contrib/data/tdx/level1/ext}/ext-category.md +0 -0
  246. {quant1x-0.7.9.dev2/quant1x/level1 → quant1x-0.7.60/quant1x/contrib/data/tdx/level1/std}/security_quote.md +0 -0
  247. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/data/meta/fund.md +0 -0
  248. {quant1x-0.7.9.dev2/quant1x/exchange → quant1x-0.7.60/quant1x/data/meta}/session.md +0 -0
  249. {quant1x-0.7.9.dev2/quant1x/contrib/data → quant1x-0.7.60/quant1x/data/meta/sina}/__init__.py +0 -0
  250. {quant1x-0.7.9.dev2/quant1x/data/meta/sina → quant1x-0.7.60/quant1x/data/meta/ticker_rules}/__init__.py +0 -0
  251. {quant1x-0.7.9.dev2/quant1x/data/meta/ticker_rules → quant1x-0.7.60/quant1x/encoding}/__init__.py +0 -0
  252. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/encoding/binary/README.md +0 -0
  253. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/encoding/binary/cstruct/FORK.md +0 -0
  254. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/encoding/binary/cstruct/LICENSE +0 -0
  255. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/encoding/binary/struc/LICENSE +0 -0
  256. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/encoding/binary/struc/README.md +0 -0
  257. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/encoding/json.md +0 -0
  258. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/formula/README-MyTT.md +0 -0
  259. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/formula/formula.ipynb +0 -0
  260. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/README.md +0 -0
  261. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/cdtd.md +0 -0
  262. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/f89k.md +0 -0
  263. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/hjk.md +0 -0
  264. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/ma1x.md +0 -0
  265. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/p2fb.md +0 -0
  266. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/indicators/winner.md +0 -0
  267. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/io/connection_pool.md +0 -0
  268. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/io/csv-reader.LICENSE +0 -0
  269. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/io/csv-reader.md +0 -0
  270. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/learn/fpgrowth/README.md +0 -0
  271. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/learn/fpgrowth/fp_growth.md +0 -0
  272. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/log4rs.yaml +0 -0
  273. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/proto/README.md +0 -0
  274. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/proto/security_info.proto +0 -0
  275. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/proto/snapshot.capnp.c++ +0 -0
  276. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/resources/README.md +0 -0
  277. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/resources/meta/tdxhy.inc +0 -0
  278. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/resources/meta/tdxzs.inc +0 -0
  279. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/resources/meta/tdxzs3.inc +0 -0
  280. {quant1x-0.7.9.dev2/quant1x/encoding → quant1x-0.7.60/quant1x/runtime}/__init__.py +0 -0
  281. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/runtime/ringbuffer.md +0 -0
  282. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/runtime/scheduler.md +0 -0
  283. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/ta/README.md +0 -0
  284. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/util/SimHei.ttf +0 -0
  285. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x/util/util-font.ipynb +0 -0
  286. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x.cer +0 -0
  287. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x.egg-info/dependency_links.txt +0 -0
  288. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x.egg-info/not-zip-safe +0 -0
  289. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x.egg-info/requires.txt +0 -0
  290. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x.egg-info/top_level.txt +0 -0
  291. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/quant1x.pfx +0 -0
  292. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/requirements.txt +0 -0
  293. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/setup.cfg +0 -0
  294. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/test_loop.sh +0 -0
  295. {quant1x-0.7.9.dev2 → quant1x-0.7.60}/vcpkg.json +0 -0
@@ -0,0 +1 @@
1
+ {"max_ts": 1783987251.7702467}
@@ -10,6 +10,7 @@
10
10
 
11
11
  # Output of the go coverage tool, specifically when used with LiteIDE
12
12
  *.out
13
+ *.copy
13
14
 
14
15
  *.csv
15
16
  __pycache__/
@@ -42,3 +43,6 @@ target/
42
43
 
43
44
  # vscode
44
45
  .vscode/launch.json
46
+
47
+ # setuptools_scm generated version file
48
+ _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`。