powerquant-cli 0.2.6__py3-none-any.whl

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 (355) hide show
  1. powerquant_cli-0.2.6.dist-info/METADATA +62 -0
  2. powerquant_cli-0.2.6.dist-info/RECORD +355 -0
  3. powerquant_cli-0.2.6.dist-info/WHEEL +4 -0
  4. powerquant_cli-0.2.6.dist-info/entry_points.txt +2 -0
  5. powerquant_cli-0.2.6.dist-info/licenses/LICENSE +36 -0
  6. powerquant_cli-0.2.6.dist-info/licenses/licenses/LICENSE.vnpy +21 -0
  7. pqdata/__init__.py +6 -0
  8. pqdata/client.py +389 -0
  9. pqdata/download.py +60 -0
  10. pqdata/exceptions.py +14 -0
  11. pqdata/schema/__init__.py +1 -0
  12. pqdata/schema/adjustment_schema.py +67 -0
  13. pqdata/schema/bar_content_schema.py +24 -0
  14. pqdata/schema/bar_schema.py +56 -0
  15. pqdata/schema/corporate_action_schema.py +46 -0
  16. pqdata/schema/history_schema.py +61 -0
  17. pqdata/schema/pit_daily_window.py +16 -0
  18. pqdata/schema/query_schema.py +53 -0
  19. pqdata/schema/quote_schema.py +73 -0
  20. pqdata/schema/reference_schema.py +48 -0
  21. pqdata/schema/reliability_schema.py +152 -0
  22. quant_cli/__init__.py +0 -0
  23. quant_cli/api.py +39 -0
  24. quant_cli/app/__init__.py +0 -0
  25. quant_cli/app/backtest/__init__.py +0 -0
  26. quant_cli/app/backtest/cli/__init__.py +0 -0
  27. quant_cli/app/backtest/cli/local_backtest_cli.py +72 -0
  28. quant_cli/app/backtest/local_backtest_dependency.py +10 -0
  29. quant_cli/app/backtest/local_backtest_schema.py +49 -0
  30. quant_cli/app/backtest/repository/__init__.py +0 -0
  31. quant_cli/app/backtest/repository/backtest_local_repository.py +67 -0
  32. quant_cli/app/backtest/service/__init__.py +0 -0
  33. quant_cli/app/backtest/service/local_backtest_service.py +271 -0
  34. quant_cli/app/data/__init__.py +0 -0
  35. quant_cli/app/data/cli/__init__.py +0 -0
  36. quant_cli/app/data/cli/data_cli.py +78 -0
  37. quant_cli/app/data/data_dependency.py +35 -0
  38. quant_cli/app/data/repository/__init__.py +0 -0
  39. quant_cli/app/data/repository/parquet_repository.py +124 -0
  40. quant_cli/app/data/schema/__init__.py +0 -0
  41. quant_cli/app/data/schema/dataset_audit_schema.py +37 -0
  42. quant_cli/app/data/schema/dataset_request_schema.py +28 -0
  43. quant_cli/app/data/schema/parquet_file_schema.py +17 -0
  44. quant_cli/app/data/service/__init__.py +0 -0
  45. quant_cli/app/data/service/bar_cache_service.py +287 -0
  46. quant_cli/app/data/service/dataset_audit_service.py +137 -0
  47. quant_cli/app/data/service/dataset_load_service.py +115 -0
  48. quant_cli/app/data/service/dataset_prepare_service.py +187 -0
  49. quant_cli/app/factor/__init__.py +0 -0
  50. quant_cli/app/factor/cli/__init__.py +0 -0
  51. quant_cli/app/factor/cli/factor_definition_cli.py +81 -0
  52. quant_cli/app/factor/cli/local_factor_cli.py +102 -0
  53. quant_cli/app/factor/cli/local_selection_cli.py +58 -0
  54. quant_cli/app/factor/interface/__init__.py +0 -0
  55. quant_cli/app/factor/interface/local_selection_store.py +12 -0
  56. quant_cli/app/factor/local_factor_dependency.py +38 -0
  57. quant_cli/app/factor/repository/__init__.py +0 -0
  58. quant_cli/app/factor/repository/factor_local_repository.py +154 -0
  59. quant_cli/app/factor/repository/selection_local_repository.py +67 -0
  60. quant_cli/app/factor/schema/local_selection_schema.py +56 -0
  61. quant_cli/app/factor/service/__init__.py +0 -0
  62. quant_cli/app/factor/service/factor_data_prepare_service.py +181 -0
  63. quant_cli/app/factor/service/local_factor_query_service.py +146 -0
  64. quant_cli/app/factor/service/local_factor_service.py +120 -0
  65. quant_cli/app/factor/service/local_selection_service.py +139 -0
  66. quant_cli/app/job/__init__.py +0 -0
  67. quant_cli/app/job/cli/__init__.py +0 -0
  68. quant_cli/app/job/cli/local_job_cli.py +69 -0
  69. quant_cli/app/job/schema/__init__.py +0 -0
  70. quant_cli/app/job/schema/local_job_schema.py +11 -0
  71. quant_cli/app/job/service/__init__.py +0 -0
  72. quant_cli/app/job/service/local_job_service.py +60 -0
  73. quant_cli/app/quant_cli.py +49 -0
  74. quant_cli/app/research/__init__.py +0 -0
  75. quant_cli/app/research/cli/__init__.py +0 -0
  76. quant_cli/app/research/cli/local_research_cli.py +93 -0
  77. quant_cli/app/research/local_research_dependency.py +10 -0
  78. quant_cli/app/research/repository/__init__.py +0 -0
  79. quant_cli/app/research/repository/research_local_repository.py +67 -0
  80. quant_cli/app/research/schema/__init__.py +0 -0
  81. quant_cli/app/research/schema/local_research_schema.py +26 -0
  82. quant_cli/app/research/service/__init__.py +0 -0
  83. quant_cli/app/research/service/local_research_execution_service.py +105 -0
  84. quant_cli/app/research/service/local_research_service.py +101 -0
  85. quant_cli/app/strategy/__init__.py +0 -0
  86. quant_cli/app/strategy/cli/__init__.py +0 -0
  87. quant_cli/app/strategy/cli/strategy_cli.py +104 -0
  88. quant_cli/common/__init__.py +0 -0
  89. quant_cli/common/constants.py +7 -0
  90. quant_cli/common/database/__init__.py +0 -0
  91. quant_cli/common/database/duckdb_connection.py +30 -0
  92. quant_cli/common/http/__init__.py +0 -0
  93. quant_cli/common/http/definition_client.py +54 -0
  94. quant_cli/common/utils/__init__.py +0 -0
  95. quant_cli/common/utils/cli_utils.py +37 -0
  96. quant_cli/common/utils/platform_utils.py +11 -0
  97. quant_cli/common/utils/runtime_environment.py +12 -0
  98. quant_cli/examples/cached_factor_screen.py +165 -0
  99. quant_cli/examples/factors/ma_close_10.py +10 -0
  100. quant_cli/examples/factors/max_drawdown_20d.py +18 -0
  101. quant_cli/examples/factors/momentum_20d.py +13 -0
  102. quant_cli/examples/factors/multi_intraday_screen.py +16 -0
  103. quant_cli/examples/factors/risk_adjusted_momentum_20d.py +18 -0
  104. quant_cli/examples/factors/volume_ratio_5d.py +14 -0
  105. quant_cli/examples/factors/volume_weighted_close_pressure.py +14 -0
  106. quant_cli/examples/full_market_screen.py +189 -0
  107. quant_cli/examples/local_quant_validation.py +196 -0
  108. quant_cli/examples/published_definition_validation.py +219 -0
  109. quant_cli/examples/research/factor_pit_coverage.py +87 -0
  110. quant_cli/examples/research/ipo_first_day.py +348 -0
  111. quant_cli/examples/selection/README.md +59 -0
  112. quant_cli/examples/selection/backtest.json +18 -0
  113. quant_cli/examples/selection/buy_hold.py +7 -0
  114. quant_cli/examples/selection/compute.json +15 -0
  115. quant_cli/examples/selection/prepare.json +13 -0
  116. quant_cli/examples/selection/select.json +44 -0
  117. quant_cli/examples/strategies/bar_roundtrip.py +12 -0
  118. quant_cli/examples/strategies/buy_and_hold.py +11 -0
  119. quant_cli/examples/strategies/contrarian_timing.py +14 -0
  120. quant_cli/examples/strategies/factor_gate_vwap.py +22 -0
  121. quant_cli/examples/strategies/ipo_next_day_vwap.py +31 -0
  122. quant_cli/examples/strategies/momentum_timing.py +14 -0
  123. quant_cli/examples/strategies/monthly_equal_weight.py +19 -0
  124. quant_cli/examples/strategies/session_roundtrip.py +16 -0
  125. quant_cli/examples/strategies/trend_drawdown_guard.py +22 -0
  126. quant_cli/examples/strategies/weekly_risk_adjusted_rotation.py +61 -0
  127. quant_cli/examples/unified_snapshot_validation.py +260 -0
  128. quant_core/__init__.py +0 -0
  129. quant_core/app/SPEC.md +18 -0
  130. quant_core/app/__init__.py +0 -0
  131. quant_core/app/backtest/SPEC.md +65 -0
  132. quant_core/app/backtest/__init__.py +1 -0
  133. quant_core/app/backtest/backtest_input_schema.py +20 -0
  134. quant_core/app/backtest/backtest_run.py +393 -0
  135. quant_core/app/backtest/data_guard.py +77 -0
  136. quant_core/app/backtest/historical_clock.py +26 -0
  137. quant_core/app/backtest/legacy_result_schema.py +34 -0
  138. quant_core/app/backtest/metrics.py +194 -0
  139. quant_core/app/backtest/performance_report.py +61 -0
  140. quant_core/app/backtest/report_schema.py +64 -0
  141. quant_core/app/backtest/schema.py +477 -0
  142. quant_core/app/backtest/service/__init__.py +0 -0
  143. quant_core/app/backtest/service/backtest_execution_service.py +114 -0
  144. quant_core/app/data/__init__.py +0 -0
  145. quant_core/app/data/constants.py +284 -0
  146. quant_core/app/data/domain/__init__.py +0 -0
  147. quant_core/app/data/domain/trading_quantity_value.py +57 -0
  148. quant_core/app/data/exceptions.py +95 -0
  149. quant_core/app/data/interface/__init__.py +0 -0
  150. quant_core/app/data/interface/adjustment_factor_query.py +21 -0
  151. quant_core/app/data/interface/market_data_query.py +71 -0
  152. quant_core/app/data/interface/market_data_verification.py +20 -0
  153. quant_core/app/data/interface/market_event_source.py +11 -0
  154. quant_core/app/data/interface/market_revision_query.py +8 -0
  155. quant_core/app/data/interface/market_runtime_repository.py +44 -0
  156. quant_core/app/data/interface/market_time_slice_source.py +11 -0
  157. quant_core/app/data/repository/__init__.py +0 -0
  158. quant_core/app/data/schema/__init__.py +1 -0
  159. quant_core/app/data/schema/adjustment_schema.py +67 -0
  160. quant_core/app/data/schema/corporate_action_schema.py +46 -0
  161. quant_core/app/data/schema/event_schema.py +506 -0
  162. quant_core/app/data/schema/exchange_operating_state.py +37 -0
  163. quant_core/app/data/schema/exchange_state_schema.py +106 -0
  164. quant_core/app/data/schema/history_schema.py +48 -0
  165. quant_core/app/data/schema/instrument_identity.py +69 -0
  166. quant_core/app/data/schema/market_schema.py +128 -0
  167. quant_core/app/data/schema/pit_daily_window.py +16 -0
  168. quant_core/app/data/schema/quote_schema.py +73 -0
  169. quant_core/app/data/schema/reliability_schema.py +152 -0
  170. quant_core/app/data/schema/snapshot_schema.py +82 -0
  171. quant_core/app/data/schema/trading_state_schema.py +211 -0
  172. quant_core/app/data/service/__init__.py +0 -0
  173. quant_core/app/data/service/calendar_coverage_service.py +63 -0
  174. quant_core/app/data/service/prepared_data_verification_service.py +40 -0
  175. quant_core/app/data/service/prepared_market_service.py +189 -0
  176. quant_core/app/data/service/price_adjustment_service.py +235 -0
  177. quant_core/app/factor/LICENSE.vnpy +21 -0
  178. quant_core/app/factor/__init__.py +13 -0
  179. quant_core/app/factor/builtin/__init__.py +0 -0
  180. quant_core/app/factor/builtin/alpha101_recipe.py +1095 -0
  181. quant_core/app/factor/builtin/alpha158_recipe.py +1284 -0
  182. quant_core/app/factor/builtin/factor_recipe_catalog.py +100 -0
  183. quant_core/app/factor/computation/__init__.py +0 -0
  184. quant_core/app/factor/computation/factor_batch_evaluator.py +141 -0
  185. quant_core/app/factor/computation/factor_expression.py +106 -0
  186. quant_core/app/factor/computation/factor_source_loader.py +24 -0
  187. quant_core/app/factor/computation/operators/__init__.py +0 -0
  188. quant_core/app/factor/computation/operators/arithmetic_operator.py +182 -0
  189. quant_core/app/factor/computation/operators/cross_section_operator.py +66 -0
  190. quant_core/app/factor/computation/operators/time_series_operator.py +342 -0
  191. quant_core/app/factor/computation/panel_evaluator.py +59 -0
  192. quant_core/app/factor/computation/panel_expression.py +193 -0
  193. quant_core/app/factor/computation/python_factor_executor.py +87 -0
  194. quant_core/app/factor/computation/universe_filter.py +25 -0
  195. quant_core/app/factor/constants.py +114 -0
  196. quant_core/app/factor/exceptions.py +35 -0
  197. quant_core/app/factor/factor_dependency.py +65 -0
  198. quant_core/app/factor/interface/__init__.py +0 -0
  199. quant_core/app/factor/interface/factor_compute.py +12 -0
  200. quant_core/app/factor/interface/factor_execution.py +15 -0
  201. quant_core/app/factor/interface/factor_local_data.py +42 -0
  202. quant_core/app/factor/interface/factor_panel_compute.py +18 -0
  203. quant_core/app/factor/interface/factor_panel_input.py +12 -0
  204. quant_core/app/factor/interface/factor_query_store.py +39 -0
  205. quant_core/app/factor/interface/public/__init__.py +0 -0
  206. quant_core/app/factor/interface/public/factor_diagnostics.py +18 -0
  207. quant_core/app/factor/interface/public/factor_exposure_query.py +12 -0
  208. quant_core/app/factor/interface/public/factor_local.py +15 -0
  209. quant_core/app/factor/interface/public/factor_query.py +57 -0
  210. quant_core/app/factor/interface/public/factor_selection.py +20 -0
  211. quant_core/app/factor/model/__init__.py +0 -0
  212. quant_core/app/factor/repository/__init__.py +0 -0
  213. quant_core/app/factor/schema/__init__.py +1 -0
  214. quant_core/app/factor/schema/diagnostic_types.py +42 -0
  215. quant_core/app/factor/schema/factor_artifact_schema.py +36 -0
  216. quant_core/app/factor/schema/factor_computation_schema.py +102 -0
  217. quant_core/app/factor/schema/factor_compute_request.py +24 -0
  218. quant_core/app/factor/schema/factor_contract.py +257 -0
  219. quant_core/app/factor/schema/factor_input_schema.py +32 -0
  220. quant_core/app/factor/schema/factor_panel.py +65 -0
  221. quant_core/app/factor/schema/factor_publication_schema.py +41 -0
  222. quant_core/app/factor/schema/factor_query_result_schema.py +12 -0
  223. quant_core/app/factor/schema/factor_result_schema.py +6 -0
  224. quant_core/app/factor/schema/local_factor_schema.py +42 -0
  225. quant_core/app/factor/schema/panel_policy.py +13 -0
  226. quant_core/app/factor/schema/selection_report.py +116 -0
  227. quant_core/app/factor/schema/selection_types.py +135 -0
  228. quant_core/app/factor/service/__init__.py +1 -0
  229. quant_core/app/factor/service/factor_compute_service.py +140 -0
  230. quant_core/app/factor/service/factor_diagnostic_runner.py +134 -0
  231. quant_core/app/factor/service/factor_diagnostics_service.py +140 -0
  232. quant_core/app/factor/service/factor_exposure_service.py +24 -0
  233. quant_core/app/factor/service/factor_input_service.py +258 -0
  234. quant_core/app/factor/service/factor_local_execution_service.py +51 -0
  235. quant_core/app/factor/service/factor_panel_service.py +86 -0
  236. quant_core/app/factor/service/factor_runtime_service.py +306 -0
  237. quant_core/app/factor/service/factor_selection_runner.py +88 -0
  238. quant_core/app/factor/service/published_factor_execution_service.py +160 -0
  239. quant_core/app/factor/service/selection_service.py +234 -0
  240. quant_core/app/factor/visibility.py +22 -0
  241. quant_core/app/opportunity/SPEC.md +45 -0
  242. quant_core/app/opportunity/__init__.py +1 -0
  243. quant_core/app/order_execution/SPEC.md +64 -0
  244. quant_core/app/order_execution/__init__.py +1 -0
  245. quant_core/app/order_execution/bar_matcher.py +55 -0
  246. quant_core/app/order_execution/constants.py +142 -0
  247. quant_core/app/order_execution/domain/__init__.py +45 -0
  248. quant_core/app/order_execution/domain/execution_batch.py +108 -0
  249. quant_core/app/order_execution/domain/order_entity.py +197 -0
  250. quant_core/app/order_execution/domain/order_event.py +87 -0
  251. quant_core/app/order_execution/domain/order_policy.py +29 -0
  252. quant_core/app/order_execution/domain/order_value.py +142 -0
  253. quant_core/app/order_execution/fee_model.py +60 -0
  254. quant_core/app/order_execution/interface/__init__.py +0 -0
  255. quant_core/app/order_execution/interface/order_account.py +10 -0
  256. quant_core/app/order_execution/interface/order_trading_rules.py +10 -0
  257. quant_core/app/order_execution/interface/public/__init__.py +0 -0
  258. quant_core/app/order_execution/interface/public/execution_account.py +53 -0
  259. quant_core/app/order_execution/interface/public/order_events.py +19 -0
  260. quant_core/app/order_execution/interface/public/order_execution.py +107 -0
  261. quant_core/app/order_execution/interface/public/order_runtime.py +30 -0
  262. quant_core/app/order_execution/interface/public/order_submission.py +17 -0
  263. quant_core/app/order_execution/order_event_bus.py +28 -0
  264. quant_core/app/order_execution/order_execution_dependency.py +48 -0
  265. quant_core/app/order_execution/order_submission_service.py +301 -0
  266. quant_core/app/order_execution/schema/__init__.py +0 -0
  267. quant_core/app/order_execution/schema/order_request_schema.py +88 -0
  268. quant_core/app/order_execution/simulation_broker.py +883 -0
  269. quant_core/app/order_execution/slippage_model.py +40 -0
  270. quant_core/app/order_execution/tradability_policy.py +174 -0
  271. quant_core/app/order_execution/validators.py +40 -0
  272. quant_core/app/portfolio/SPEC.md +69 -0
  273. quant_core/app/portfolio/__init__.py +0 -0
  274. quant_core/app/portfolio/domain/__init__.py +32 -0
  275. quant_core/app/portfolio/domain/entitlement_entity.py +45 -0
  276. quant_core/app/portfolio/domain/portfolio_entity.py +511 -0
  277. quant_core/app/portfolio/domain/portfolio_event.py +59 -0
  278. quant_core/app/portfolio/domain/portfolio_value.py +21 -0
  279. quant_core/app/portfolio/domain/position_entity.py +165 -0
  280. quant_core/app/portfolio/domain/reservation_entity.py +69 -0
  281. quant_core/app/portfolio/interface/__init__.py +0 -0
  282. quant_core/app/portfolio/interface/public/__init__.py +0 -0
  283. quant_core/app/portfolio/interface/public/portfolio.py +77 -0
  284. quant_core/app/portfolio/interface/public/simulation_account.py +16 -0
  285. quant_core/app/portfolio/ledger_schema.py +130 -0
  286. quant_core/app/portfolio/order_account_listener.py +36 -0
  287. quant_core/app/portfolio/portfolio_dependency.py +21 -0
  288. quant_core/app/portfolio/portfolio_schema.py +204 -0
  289. quant_core/app/portfolio/simulated_portfolio.py +427 -0
  290. quant_core/app/research/SPEC.md +57 -0
  291. quant_core/app/research/__init__.py +0 -0
  292. quant_core/app/research/adapter/__init__.py +0 -0
  293. quant_core/app/research/adapter/market_label_query.py +84 -0
  294. quant_core/app/research/interface/__init__.py +0 -0
  295. quant_core/app/research/interface/research_dataset.py +47 -0
  296. quant_core/app/research/interface/research_evaluation.py +19 -0
  297. quant_core/app/research/schema/__init__.py +0 -0
  298. quant_core/app/research/schema/comparison_schema.py +12 -0
  299. quant_core/app/research/schema/dataset_schema.py +112 -0
  300. quant_core/app/research/schema/research_schema.py +120 -0
  301. quant_core/app/research/service/__init__.py +0 -0
  302. quant_core/app/research/service/research_dataset_service.py +80 -0
  303. quant_core/app/research/service/research_evaluation_service.py +56 -0
  304. quant_core/app/research/service/research_service.py +171 -0
  305. quant_core/app/strategy/SPEC.md +215 -0
  306. quant_core/app/strategy/__init__.py +1 -0
  307. quant_core/app/strategy/constants.py +87 -0
  308. quant_core/app/strategy/exceptions.py +32 -0
  309. quant_core/app/strategy/interface/__init__.py +0 -0
  310. quant_core/app/strategy/interface/public/__init__.py +0 -0
  311. quant_core/app/strategy/interface/public/portfolio_construction.py +19 -0
  312. quant_core/app/strategy/interface/public/strategy.py +30 -0
  313. quant_core/app/strategy/interface/public/strategy_market_query.py +53 -0
  314. quant_core/app/strategy/interface/public/strategy_portfolio_reader.py +33 -0
  315. quant_core/app/strategy/interface/strategy_factor_reader.py +19 -0
  316. quant_core/app/strategy/interface/strategy_order_reader.py +14 -0
  317. quant_core/app/strategy/schema/__init__.py +0 -0
  318. quant_core/app/strategy/schema/portfolio_schema.py +28 -0
  319. quant_core/app/strategy/schema/portfolio_target.py +70 -0
  320. quant_core/app/strategy/schema/python_strategy_schema.py +94 -0
  321. quant_core/app/strategy/schema/screener_schema.py +51 -0
  322. quant_core/app/strategy/schema/signal_schema.py +33 -0
  323. quant_core/app/strategy/schema/strategy_publication_schema.py +32 -0
  324. quant_core/app/strategy/schema/strategy_schema.py +96 -0
  325. quant_core/app/strategy/service/__init__.py +0 -0
  326. quant_core/app/strategy/service/factor_top_n_strategy.py +103 -0
  327. quant_core/app/strategy/service/portfolio_construction_service.py +142 -0
  328. quant_core/app/strategy/service/python_strategy_service.py +65 -0
  329. quant_core/app/strategy/service/screener_service.py +77 -0
  330. quant_core/app/strategy/service/store_factor_reader.py +120 -0
  331. quant_core/app/strategy/service/strategy_market_view.py +120 -0
  332. quant_core/app/strategy/service/strategy_runtime_service.py +319 -0
  333. quant_core/app/strategy/service/strategy_scheduler.py +50 -0
  334. quant_core/app/strategy/strategies/__init__.py +7 -0
  335. quant_core/app/strategy/strategies/momentum_volume_breakout.py +157 -0
  336. quant_core/app/strategy/strategy_context.py +316 -0
  337. quant_core/app/strategy/strategy_dependency.py +101 -0
  338. quant_core/app/trading_runtime/SPEC.md +70 -0
  339. quant_core/app/trading_runtime/__init__.py +1 -0
  340. quant_core/app/trading_runtime/domain/__init__.py +0 -0
  341. quant_core/app/trading_runtime/replay/__init__.py +0 -0
  342. quant_core/app/trading_runtime/replay/daily_state_expand.py +49 -0
  343. quant_core/app/trading_runtime/replay/exchange_state_resolver.py +90 -0
  344. quant_core/app/trading_runtime/replay/market_runtime_service.py +573 -0
  345. quant_core/app/trading_runtime/replay/market_state_resolver.py +150 -0
  346. quant_core/app/trading_runtime/runtime_ports.py +64 -0
  347. quant_core/app/trading_runtime/runtime_schema.py +129 -0
  348. quant_core/app/trading_runtime/runtime_session.py +361 -0
  349. quant_core/app/trading_runtime/strategy_portfolio_adapter.py +58 -0
  350. quant_core/app/trading_runtime/trading_rule_book.py +37 -0
  351. quant_core/app/trading_runtime/trading_rule_query.py +12 -0
  352. quant_core/common/__init__.py +0 -0
  353. quant_core/common/exceptions/__init__.py +0 -0
  354. quant_core/common/exceptions/base.py +89 -0
  355. quant_core/common/local_run.py +45 -0
@@ -0,0 +1,62 @@
1
+ Metadata-Version: 2.5
2
+ Name: powerquant-cli
3
+ Version: 0.2.6
4
+ Summary: Power Quant local research CLI
5
+ Project-URL: Repository, https://github.com/Kepler452Byte/power-quant
6
+ License-Expression: LicenseRef-PowerQuant-Proprietary AND MIT
7
+ License-File: LICENSE
8
+ License-File: licenses/LICENSE.vnpy
9
+ Requires-Python: >=3.12
10
+ Requires-Dist: duckdb<2,>=1.4
11
+ Requires-Dist: filelock<4,>=3.20
12
+ Requires-Dist: httpx<1,>=0.28
13
+ Requires-Dist: numpy<3,>=2
14
+ Requires-Dist: pandas<4,>=3
15
+ Requires-Dist: polars<2,>=1.36
16
+ Requires-Dist: pydantic<3,>=2.5
17
+ Requires-Dist: scipy<2,>=1.17
18
+ Requires-Dist: typer>=0.27.2
19
+ Requires-Dist: tzdata>=2026.3
20
+ Description-Content-Type: text/markdown
21
+
22
+ # Power Quant CLI
23
+
24
+ 本地行情准备、因子计算、选股、研究及策略回测;结果保存在本地 DuckDB 和文件。
25
+
26
+ ## 安装
27
+
28
+ 推荐通过 uv 安装独立工具环境:
29
+
30
+ ```sh
31
+ uv tool install --python 3.12 powerquant-cli
32
+ pq --help
33
+ uv tool upgrade powerquant-cli
34
+ ```
35
+
36
+ 也支持在 Python 3.12+ 环境通过 `pip install powerquant-cli` 安装。
37
+
38
+ ## 接入行情
39
+
40
+ 向管理员获取行情读取密钥,无需注册账户。服务当前仅在 LAN/WireGuard 内可达。
41
+
42
+ ```sh
43
+ export MARKET_BASE_URL='http://服务器地址/market/api/v1'
44
+ export MARKET_API_TOKEN='管理员提供的行情密钥'
45
+ pq examples --directory powerquant-examples
46
+ cd powerquant-examples/selection
47
+ pq data prepare --config prepare.json
48
+ ```
49
+
50
+ PowerShell 使用 `$env:MARKET_BASE_URL="..."` 与 `$env:MARKET_API_TOKEN="..."`。
51
+
52
+ 按实际覆盖调整 prepare.json 的股票和日期,将返回 manifest_path 写入 compute.json、select.json;按示例 README 执行 compute、select 和 backtest。不同使用目的的快照须分别通过完整性检查。
53
+
54
+ 密钥到期或撤销后在线准备会失败,已下载快照仍可离线使用。行情密钥不用于定义发布;发布定义另使用 PQ_QUANT_URL/PQ_QUANT_TOKEN。默认本地目录为 ~/.powerquant。
55
+
56
+ ## Python
57
+
58
+ 公开请求模型与调用入口位于 quant_cli.api,与 CLI 使用同一应用服务。
59
+
60
+ ## 使用许可
61
+
62
+ 自有代码采用随包附带的专有许可证:允许安装、查看源码、为自用进行修改,以及商业使用;未经书面授权不得再分发或转售本软件及其修改版本。第三方组件保留各自许可证。行情访问仍需要有效 Token;本许可证不授予行情数据的使用或再分发权。
@@ -0,0 +1,355 @@
1
+ quant_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ quant_cli/api.py,sha256=CTXRSCGSfGRdXOL1FPgJrFY-VRcw5Hw3jLkgs0OKSMk,1413
3
+ quant_cli/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ quant_cli/app/quant_cli.py,sha256=iIiGNeqHO7Baw0fyJRAix683JZuYqkZhReMesclv_-Q,1768
5
+ quant_cli/app/backtest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ quant_cli/app/backtest/local_backtest_dependency.py,sha256=3UaXDWSXYmONO6rcCtAIMM4169N9G_aycuetLhUcxSk,309
7
+ quant_cli/app/backtest/local_backtest_schema.py,sha256=ewSngLZ7YgrgLVpLvP1njFTKx2vTLBs5BACSPYX8BiI,2404
8
+ quant_cli/app/backtest/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ quant_cli/app/backtest/cli/local_backtest_cli.py,sha256=K0_O4GLgCnd9sokJacJinRNhnW3_hRrUOBaCbnhGCqw,2446
10
+ quant_cli/app/backtest/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ quant_cli/app/backtest/repository/backtest_local_repository.py,sha256=amNgPttQRdUJLaw_PFZaDNbrsqkuNFs-yUmR3Eq7aWg,2975
12
+ quant_cli/app/backtest/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ quant_cli/app/backtest/service/local_backtest_service.py,sha256=CnkskP9UqwuIxxLIyR44B00VTevS-Oz9Hck7Hd58RzM,13231
14
+ quant_cli/app/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ quant_cli/app/data/data_dependency.py,sha256=GyTx-wOq-bn8D6ps31_v2FxJEJLjyu0LmQtE0QzE2ME,1310
16
+ quant_cli/app/data/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ quant_cli/app/data/cli/data_cli.py,sha256=2pzz0so6lkmQabIn0E5ydx0Ov1LcEHAGhuVZEWNFlqc,2937
18
+ quant_cli/app/data/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ quant_cli/app/data/repository/parquet_repository.py,sha256=riPtgkxFbbEX79JsfHMnoXo8YQCzVkUdvEx7L-fwF2A,4688
20
+ quant_cli/app/data/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ quant_cli/app/data/schema/dataset_audit_schema.py,sha256=qNmI88RS8zJ7mkmEDZKjvL_4ixo2wpOl-t8k0uDnEuE,1005
22
+ quant_cli/app/data/schema/dataset_request_schema.py,sha256=zGWKW3eoWJVpXANItZumOxirjy_-qgdgGy207zWjD1s,1176
23
+ quant_cli/app/data/schema/parquet_file_schema.py,sha256=muw_Yhi4XSQEKbgfsiP_CRgrXEmD7s9vepHjumL0DJU,536
24
+ quant_cli/app/data/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ quant_cli/app/data/service/bar_cache_service.py,sha256=1Ok5f0FQUJ-0DocdA3b1q_rKBZIecF1hVOP0A4OAjpI,11953
26
+ quant_cli/app/data/service/dataset_audit_service.py,sha256=vM3qbcbmWXkSvj3JgsPZqc3QQE0zdIzpaJJ3fJ6ryg0,5746
27
+ quant_cli/app/data/service/dataset_load_service.py,sha256=kmAUvsmrMSq-k3VasHgGK1gWv5ml_mQ9DXJ3lPeIXYE,5407
28
+ quant_cli/app/data/service/dataset_prepare_service.py,sha256=h1ja6P_lc5Zt1UifkFl65gkyyy0KIz9YNUQ0cq5whwc,7716
29
+ quant_cli/app/factor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ quant_cli/app/factor/local_factor_dependency.py,sha256=GHKQFfc0Z6mpv0mAmXN-q4_poF4X8KVZ9YMLyHFlxX8,1448
31
+ quant_cli/app/factor/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ quant_cli/app/factor/cli/factor_definition_cli.py,sha256=vUv75hzwM1sfBQd7Sa2XUqtJM5lj5T3DPY_olfycRJs,2839
33
+ quant_cli/app/factor/cli/local_factor_cli.py,sha256=8bFR4fdr0r3sdEIj-derHIqSce81ifGmnWDbTqGAcgY,3594
34
+ quant_cli/app/factor/cli/local_selection_cli.py,sha256=oUKjo1Uqd14ejm2MaUrkD0wLgruMuie9iPHiWPObCiA,1954
35
+ quant_cli/app/factor/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ quant_cli/app/factor/interface/local_selection_store.py,sha256=KAsZV0dRCYksWKphDmzeWWUxcroBwKZCUmSjB_Wq0nc,386
37
+ quant_cli/app/factor/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ quant_cli/app/factor/repository/factor_local_repository.py,sha256=_D267rz7221z4GK7KwEc7hCcAwUK0Pbhiu2f6VhKGcE,7011
39
+ quant_cli/app/factor/repository/selection_local_repository.py,sha256=Oq6fnA3HIvMECq9uSwECupwS1R-pjlN9HwBPG1OMU98,2985
40
+ quant_cli/app/factor/schema/local_selection_schema.py,sha256=WzM2Il6JXtM-qeb667U4_sUr2smBEIxmgevk8G-CAQ0,2095
41
+ quant_cli/app/factor/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ quant_cli/app/factor/service/factor_data_prepare_service.py,sha256=vf7JL-JCBCMZhOOz4Iuktcm__CwTK0oTXb41Qighr1M,7500
43
+ quant_cli/app/factor/service/local_factor_query_service.py,sha256=8JL6yiqhIQy6izK0AQwc7KNFPQp7dM7PYZrtVCRExS4,5790
44
+ quant_cli/app/factor/service/local_factor_service.py,sha256=gCyR31V2n7Gc9vm-4ZSeZflXuSW3RnmxfnAXI01A-Zw,5258
45
+ quant_cli/app/factor/service/local_selection_service.py,sha256=z2R-iN0wMTfTIrzqBtOJChXuRYFVRqavyM60jBLTEak,6708
46
+ quant_cli/app/job/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ quant_cli/app/job/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ quant_cli/app/job/cli/local_job_cli.py,sha256=zmIuFsZTjQVazYZrz2g8kZGLpcjC74eOcbOoYKbopok,2661
49
+ quant_cli/app/job/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ quant_cli/app/job/schema/local_job_schema.py,sha256=Fn_tg_tFXeHMGe76lfwRqurwBRXYL8YfmUSX8CoIFFw,269
51
+ quant_cli/app/job/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ quant_cli/app/job/service/local_job_service.py,sha256=nSieMFGxiRWrWr4-3MOBnInVwAHHH_j8sdYQN7Ygi_Y,2897
53
+ quant_cli/app/research/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ quant_cli/app/research/local_research_dependency.py,sha256=mP8nzKnbyQARbXt09ZS63PUbZZrBW8Ks8Ep0r7uI_KM,303
55
+ quant_cli/app/research/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ quant_cli/app/research/cli/local_research_cli.py,sha256=lnUdv5koHJBK436VC7csRXQYXRyJ97tNhNY-rk1UJqo,3154
57
+ quant_cli/app/research/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
+ quant_cli/app/research/repository/research_local_repository.py,sha256=v2Kh_mNIh3wqlVVgy7pP122GCaYetn2S-AOxrYtcraQ,2975
59
+ quant_cli/app/research/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ quant_cli/app/research/schema/local_research_schema.py,sha256=9miCKw9dMCJVUSlsAtuLH1HG-Bz1wymRbBlIEMvb3dI,850
61
+ quant_cli/app/research/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ quant_cli/app/research/service/local_research_execution_service.py,sha256=O7fPEBURZ4SyrlhRCRF6l0EEHzSAvWHGMF-zr4qz0g8,4661
63
+ quant_cli/app/research/service/local_research_service.py,sha256=GjMdDogPRzpzBz7HXuzkMZOoOsoQ_ct3t0mcMwXrDp4,4827
64
+ quant_cli/app/strategy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ quant_cli/app/strategy/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ quant_cli/app/strategy/cli/strategy_cli.py,sha256=MmbTBp0_r0K5J9LNLc1oncHWebxS8N9QYAuZ28-Ra78,3992
67
+ quant_cli/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ quant_cli/common/constants.py,sha256=zQk2tvYtT7oOfPaWJ5H8X2lJinzCQY-9UZ7HZ1fm5OQ,245
69
+ quant_cli/common/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ quant_cli/common/database/duckdb_connection.py,sha256=Nr9e0R-LEU4aSoB_jbTfFabTXclx3R5o6ywkWdTz3uM,1038
71
+ quant_cli/common/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ quant_cli/common/http/definition_client.py,sha256=4vvCDbtZQL7TQax6ja6DDTzsdWjK5THsqbX1gfMYCsM,1806
73
+ quant_cli/common/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
+ quant_cli/common/utils/cli_utils.py,sha256=R36wBGAUZ5iS47t06FlSIiKks4Z941cfRc2RyWFOMRk,1310
75
+ quant_cli/common/utils/platform_utils.py,sha256=pqvts3YbsnrwZYwbW9XI1jb8T_x3sXvNEGKj2sXpWnI,330
76
+ quant_cli/common/utils/runtime_environment.py,sha256=fpQjQTm3MlesGVmyJfN3nh6JXElUao1ZVoxKFVY3mEA,407
77
+ quant_cli/examples/cached_factor_screen.py,sha256=Yq0i66xAbOMpXzQBnN0BtnVt-_okVih9rMQ3Py-mNBU,6626
78
+ quant_cli/examples/full_market_screen.py,sha256=vAjSrzVXX89hyVJ7qy0c9TLmDwzMqvsy7qNN_djgYPo,7803
79
+ quant_cli/examples/local_quant_validation.py,sha256=rvS4b2o6nJJ0AHk656lQ7gxEPYjITTXT7wHtkHD_Ybk,9148
80
+ quant_cli/examples/published_definition_validation.py,sha256=ve0Srfg-YtciefabnKXUyDRCxkn6S8BXl2IwNkFEfis,7855
81
+ quant_cli/examples/unified_snapshot_validation.py,sha256=ybWda2YT8Oz5iMT5av9G-tFg3XlReDChg8yu83MSiJU,9986
82
+ quant_cli/examples/factors/ma_close_10.py,sha256=ZSlNtRvoHPqEj6vt1HvMJcd3cB0PYFwuXuOxH85aNSw,280
83
+ quant_cli/examples/factors/max_drawdown_20d.py,sha256=ft6P-aZoBha1j01bpVlgQ-lLIT9Q8_7ra82tpdXsvBE,512
84
+ quant_cli/examples/factors/momentum_20d.py,sha256=pAs8_tu9EfRMx7J2Q8iqlw6aWWdwHDql7XfPtM0wFLA,380
85
+ quant_cli/examples/factors/multi_intraday_screen.py,sha256=R1cUI6P2jFxGufwoWBw-Uo9WiA9gGT9i2s11iX7DsD4,607
86
+ quant_cli/examples/factors/risk_adjusted_momentum_20d.py,sha256=k361GLyGWkQVcsBeRvcNyXbknZAVe6Nz4qbef2e-dTU,684
87
+ quant_cli/examples/factors/volume_ratio_5d.py,sha256=qA6xbLack-a5Df4Nnt1x3HU8QMq1LIjZOOZYJScMPeQ,415
88
+ quant_cli/examples/factors/volume_weighted_close_pressure.py,sha256=mFwGinQO8QfTjlox5St12gajlsf4jqwBptFyZeDoSug,510
89
+ quant_cli/examples/research/factor_pit_coverage.py,sha256=8r9b41INhNW-P0OzI82H_KaiHgXiSa0q3nsH2hRgELY,3563
90
+ quant_cli/examples/research/ipo_first_day.py,sha256=k-wqYYqMkn3UydKphEC_ltQcoOclX0Tmg2QicrJgYgs,14269
91
+ quant_cli/examples/selection/README.md,sha256=EkoBJ6E48v5Z8cvA9cmkWV5OL-yUBUNO9xzbNCOXBxQ,2834
92
+ quant_cli/examples/selection/backtest.json,sha256=F3WNBjQ_l444Qq5s8XFD0yTfPdZZjWbeQffil1PQdFY,443
93
+ quant_cli/examples/selection/buy_hold.py,sha256=QS8HdI_jNCdi2hOjI_2jCpgJrZO9sbyZMP1Dhbv4H90,259
94
+ quant_cli/examples/selection/compute.json,sha256=4AzYKX2oIOMRWJtt3_hKDDU0JxmC_oDiAViVJtYBptc,283
95
+ quant_cli/examples/selection/prepare.json,sha256=tv-7LmPvGZWgVHrZ2dMW6TKSKAILLaPEuBOnEco69ag,268
96
+ quant_cli/examples/selection/select.json,sha256=UPCt8rVQHWKsPQz95fq4dLoIU-m9lGvJq3R045RSDOE,897
97
+ quant_cli/examples/strategies/bar_roundtrip.py,sha256=yu29P9KY24ZcG_g7JoTJK5w8iuI520r_YZglbf2kO9E,470
98
+ quant_cli/examples/strategies/buy_and_hold.py,sha256=4DA4zlkGf_VfItdKUmsVygq_J1sK4b-wkQ9Dt1yeSeo,384
99
+ quant_cli/examples/strategies/contrarian_timing.py,sha256=_bsKPEOWCJqRhJYvHhPiwfEApMWYCQB8KxG7vNFy0OY,566
100
+ quant_cli/examples/strategies/factor_gate_vwap.py,sha256=PUraAbvfyzvUiby1H6AauNOJVHSP4giNDDEDWxyQzAg,963
101
+ quant_cli/examples/strategies/ipo_next_day_vwap.py,sha256=FtNloNAWdTtWyMp4Fj37DWrK43HEqGat6J_HJ2lHWv8,1183
102
+ quant_cli/examples/strategies/momentum_timing.py,sha256=gJUiMajqc4X4k0Lr4dWpFalPFVTRi6ygBn72jnnEKnI,560
103
+ quant_cli/examples/strategies/monthly_equal_weight.py,sha256=jupW7MGjk5R40vU4xM65jsKT1F-Gdxrg8BkTW21X1Tg,757
104
+ quant_cli/examples/strategies/session_roundtrip.py,sha256=fvOjuUYw5zX4PJsxDWVffFI0JbvMDWPJMySj27eJP1A,621
105
+ quant_cli/examples/strategies/trend_drawdown_guard.py,sha256=xb73P4SegJWo665zkj00IVTL2-CdI4X01jI7Say6ask,949
106
+ quant_cli/examples/strategies/weekly_risk_adjusted_rotation.py,sha256=CRCUOI-ARLCI-hUvHd7f0JMcEQ_escEc3y4FXwX8EAk,1880
107
+ pqdata/__init__.py,sha256=rqS7rGwUKY_YIy-ryXhGFiNcTcNXrbigMoUxZbsVIh8,235
108
+ pqdata/client.py,sha256=gx4RExYah5mSy76RJjk7DWKFplqvDgDyJ-Rl1COzbmw,13674
109
+ pqdata/download.py,sha256=SuWiN7HjHsmOzEIlTDRRF6CZz05Ez7TLusZkRY7oeyw,1961
110
+ pqdata/exceptions.py,sha256=GJ0nJof_Rwe7oVxNLyS5VF2Zr7ebvlsnKotMzgNGtXk,557
111
+ pqdata/schema/__init__.py,sha256=uXg644Utq8dyFZ9Etvm75G_vhnFPdoySMK75IR7SyB4,37
112
+ pqdata/schema/adjustment_schema.py,sha256=lMvLaTET8HEYwd1o62GgQeeJ3rYmwG91a12ECddaeBU,2035
113
+ pqdata/schema/bar_content_schema.py,sha256=Er3yCnZJ_Lqa_ZGXwcNtAobtGMvipOgSDbnXUrB6kYM,758
114
+ pqdata/schema/bar_schema.py,sha256=QvWvARggOyBZo7IO04irUmNlWCJ-mADapD9emJiCJPc,1746
115
+ pqdata/schema/corporate_action_schema.py,sha256=yq1evB4dGRzaN4ymFDrWB8vqKhahYcS_0Vvg6P8_kvA,1643
116
+ pqdata/schema/history_schema.py,sha256=x0tlNlOZMi9gwxybquwpYoGAQwNeuMwDyKH7ROcewi4,2115
117
+ pqdata/schema/pit_daily_window.py,sha256=0Zk89siEk5YZOaCKgEyd1SMleAxatyqumhA3DOWz1mE,389
118
+ pqdata/schema/query_schema.py,sha256=NKRZBu_igNipHOVmy41uZHOHEgym9kgqmBuIRLXeA0k,1747
119
+ pqdata/schema/quote_schema.py,sha256=-HKHc9lb_bPgISLQu4W1zRsARMHSQfy5ioIqfhJm4T0,3540
120
+ pqdata/schema/reference_schema.py,sha256=4WxyUiNK9CNgncAkYUAECulbgWzuZ1Ib3atLUyRSZog,1913
121
+ pqdata/schema/reliability_schema.py,sha256=pL-7-fh6Z73mbOlWFpW2eTdZLHDxIlw-eB1EkXBXBnA,6035
122
+ quant_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
+ quant_core/app/SPEC.md,sha256=8c4wJhCF51Obe9GvZIolu6XLbmSRG9uYuRDwOLT_KeQ,1017
124
+ quant_core/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ quant_core/app/backtest/SPEC.md,sha256=8XSKWmWmtzu4TGOf42XPWp1f8hoEaOvqJgG3NlLPyLw,2281
126
+ quant_core/app/backtest/__init__.py,sha256=NkSZZngYPuh38Th4J76RHbYt4SRFQ5YP9e3ovuQNL1U,55
127
+ quant_core/app/backtest/backtest_input_schema.py,sha256=dLsxzylHVUWKqIWzypCuYuxRxxNsCTxm_XkSAiTtm0g,894
128
+ quant_core/app/backtest/backtest_run.py,sha256=JJhSkuVZEkzsrOAyLlPcAT0WuaKqOtDMV3mRNq4M6rA,18861
129
+ quant_core/app/backtest/data_guard.py,sha256=SY2moDHMjq8s6-JTZOPTNx5kDcqAzh-o9tZveMSB1O8,2917
130
+ quant_core/app/backtest/historical_clock.py,sha256=MPqxuw9-tsi-HqNO7dYwx-PkQPV8NO0d_XcUpkjUj60,1008
131
+ quant_core/app/backtest/legacy_result_schema.py,sha256=Ck1X7EZnXfb4lqTlMIxgZ1IKrZs7zTSMkqmETYcu40M,936
132
+ quant_core/app/backtest/metrics.py,sha256=EkTYV9_sGEOnhTcpsE_vIgGB1JZ5I4fZMU9kZzojyhk,7807
133
+ quant_core/app/backtest/performance_report.py,sha256=8C1gvNURQUKIfCK60_LAzx1HgtNI1SddG1hZUYKyYrY,2938
134
+ quant_core/app/backtest/report_schema.py,sha256=tlpazpwB9-aAC-h3TCJj0y-Z9YrmkJj_7WitcmB27K4,1991
135
+ quant_core/app/backtest/schema.py,sha256=aeicM7aZIdZwKQlwArlS_ePBPcaDTbn383BmSYCZsQw,20894
136
+ quant_core/app/backtest/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
+ quant_core/app/backtest/service/backtest_execution_service.py,sha256=ru8A9OPqjkrHj1NK5V56wTGmyvJYNJbaucsMxz6XiJE,4638
138
+ quant_core/app/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
+ quant_core/app/data/constants.py,sha256=HvSNqEBgfjzL5DrfEL0FtFic3TNYuywTHbQrqmkm7Dk,7751
140
+ quant_core/app/data/exceptions.py,sha256=x-dWq8gYn2TH-lEDJO0__ybKCjVT-qvPCVXiNPB52Io,2943
141
+ quant_core/app/data/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
+ quant_core/app/data/domain/trading_quantity_value.py,sha256=Rbu1-Z7ZHnNRnmaWKo8mr9kuXqnUB38N2CVfN3B2k5w,1983
143
+ quant_core/app/data/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
+ quant_core/app/data/interface/adjustment_factor_query.py,sha256=4ap78heLjFc5jfMYOYQOVc50aW-M6bDcr068zdx92KU,662
145
+ quant_core/app/data/interface/market_data_query.py,sha256=NVkpNLElQLeAI9jO_RkVi4C4yXPfg_cDKrH-20M8DEY,2149
146
+ quant_core/app/data/interface/market_data_verification.py,sha256=rkjlY5O6yDCf5XRxNYsp-JrvL8xZMw0ztPaE6ZcdgNA,691
147
+ quant_core/app/data/interface/market_event_source.py,sha256=X8XfbJ-wsp0w8XFnzB_gLhDFqUw3pg5J3a6QJF4GM9U,366
148
+ quant_core/app/data/interface/market_revision_query.py,sha256=orsZZrA_HxgRedcmWC7MjRFL1Lt_oOg2BMHE1eIKlsA,243
149
+ quant_core/app/data/interface/market_runtime_repository.py,sha256=Xeg9waglcUrmwqKanR36lTQ1J5kr4EI_cvB_j_nof-s,1444
150
+ quant_core/app/data/interface/market_time_slice_source.py,sha256=AbLSo_giiuN2y11gUP7IFp6V-0Q7z9xUVA5Y5kVky9I,388
151
+ quant_core/app/data/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
+ quant_core/app/data/schema/__init__.py,sha256=R0b2bKwjIMYVPSLXc1DjvCzvmE-dbVKvbp4eppeE1mA,41
153
+ quant_core/app/data/schema/adjustment_schema.py,sha256=4POMpatNBVAyZokrxxwGurh77-CyEFAXiAh3jN80CF4,2051
154
+ quant_core/app/data/schema/corporate_action_schema.py,sha256=atmPJT2MYVT2HDIqOjWeQQcGdsI-bkz0n91d1rTRD54,1647
155
+ quant_core/app/data/schema/event_schema.py,sha256=fc2p8D0fJElTV0GcNE5TPq6cZDRTsPwkgCYf5y822Jo,21679
156
+ quant_core/app/data/schema/exchange_operating_state.py,sha256=8WfS6ORvQ_aZ79bKuX6YdNIRd2AJXNyIkrBo33MAR2M,1131
157
+ quant_core/app/data/schema/exchange_state_schema.py,sha256=XDC7Y6I10nRyA3nIwlXs6gnSVXuMGAlSc_oKPaKCrsk,4015
158
+ quant_core/app/data/schema/history_schema.py,sha256=Ha4hvTRGWcdSC2bNB6tLP-W9m3tK99B5PyNOZ4xvghk,1757
159
+ quant_core/app/data/schema/instrument_identity.py,sha256=TnS2gjJ6xLz92RYy5R7GdpAkG-uyqiWR-q5GwOeRSR4,2507
160
+ quant_core/app/data/schema/market_schema.py,sha256=L4s6LGMRBRpNhD08FnE0jXCPxDFdtIuzEDo6t3IDOfw,5066
161
+ quant_core/app/data/schema/pit_daily_window.py,sha256=Fe6BixNfpDEURaXoWkGQccToBCcKHxO4cah8caILFI0,402
162
+ quant_core/app/data/schema/quote_schema.py,sha256=-HKHc9lb_bPgISLQu4W1zRsARMHSQfy5ioIqfhJm4T0,3540
163
+ quant_core/app/data/schema/reliability_schema.py,sha256=pL-7-fh6Z73mbOlWFpW2eTdZLHDxIlw-eB1EkXBXBnA,6035
164
+ quant_core/app/data/schema/snapshot_schema.py,sha256=ySXSqlSILj8mdQ0xYr9T7aZHGlF3-7wO0hrQWc6ntpQ,3457
165
+ quant_core/app/data/schema/trading_state_schema.py,sha256=IMyMqItTWtZSQuG7gTKMkqWdXabKSsq4MMpyHDkhkCc,9291
166
+ quant_core/app/data/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
+ quant_core/app/data/service/calendar_coverage_service.py,sha256=w_skU28HlEP484LU7KhDgpUpvpkVy91fWMKYISMUSuQ,2272
168
+ quant_core/app/data/service/prepared_data_verification_service.py,sha256=dJHXq0pdaWFDTm5q3C7gpB7_Zzv2emwkk4-rfzNmIys,1979
169
+ quant_core/app/data/service/prepared_market_service.py,sha256=V9j3U5KlsfvieNVbN2Y2kZdocRtDi_ODHGk7pcXyPtU,8679
170
+ quant_core/app/data/service/price_adjustment_service.py,sha256=os2HasZsaR88SSJamYATDeYNW2H_1OWKjWtzH-R164A,9592
171
+ quant_core/app/factor/LICENSE.vnpy,sha256=gSlOW8upRVZN-FhvHXibAWABt7Q-tN6Xc2Z53Ygs8ZE,1087
172
+ quant_core/app/factor/__init__.py,sha256=6L4SpXcqH3IxaArydfZbOkk26kzGAtY6GbCls4g7e60,511
173
+ quant_core/app/factor/constants.py,sha256=ez-L2Go9eYmO6QrDqbm07jWFKoRr2lGasCM27FEg_VU,3729
174
+ quant_core/app/factor/exceptions.py,sha256=X9B-fCyLDeSK7Yst15_oh8UKf4zItZ4i4eUy2Vx9cbU,878
175
+ quant_core/app/factor/factor_dependency.py,sha256=bzaBdYnI681Z_wf3IVoXL1aNnWVkN-xuElMnyDyuxZg,2487
176
+ quant_core/app/factor/visibility.py,sha256=UJV0frmmBGvYWYOUHMzWcWqgyCqRM9oLxswQtcqI8GA,873
177
+ quant_core/app/factor/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
+ quant_core/app/factor/builtin/alpha101_recipe.py,sha256=lm_-YC6VT3aXGyS4KyNy0aaI2AbaAfo7SS-9Wdot-b8,39302
179
+ quant_core/app/factor/builtin/alpha158_recipe.py,sha256=qqb6RQBjU7GQyNYA4V4bpkCUwOy4gLt4MssHRGW898M,49822
180
+ quant_core/app/factor/builtin/factor_recipe_catalog.py,sha256=AZduAt4MiVGo8a8ybuU47sjpAgDU__kWEzSugIOxn_I,4234
181
+ quant_core/app/factor/computation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
+ quant_core/app/factor/computation/factor_batch_evaluator.py,sha256=BEmv9RE_WZRa-xQStdtCTpTX-CQMQ3aTfkQAk7onM_k,5905
183
+ quant_core/app/factor/computation/factor_expression.py,sha256=bU0D9Nufbhp1uL3kX_NC-FG6MmBNpobPDb-JGuDbHGk,4021
184
+ quant_core/app/factor/computation/factor_source_loader.py,sha256=p71zXVBiriE-IvBZYDOFElgMDIkxVVsXLi8ne9LTMTY,949
185
+ quant_core/app/factor/computation/panel_evaluator.py,sha256=CFLuumER77r6z6XadM-YtFkX2habQSNfbVZWH_XDaIA,2458
186
+ quant_core/app/factor/computation/panel_expression.py,sha256=1D_4OGIYPzaIFQpu-sYXn9NvwLBj6AdkXALIhRLinkk,7976
187
+ quant_core/app/factor/computation/python_factor_executor.py,sha256=ZV-4bTYJ9I56oIPhFEjzk9IN9dPdRifSQoOigIfcgrQ,3695
188
+ quant_core/app/factor/computation/universe_filter.py,sha256=tEnu9C6HUnGTY2cR7Ot5dvqT8K5smBdF34Kq7X-Q3C4,848
189
+ quant_core/app/factor/computation/operators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
+ quant_core/app/factor/computation/operators/arithmetic_operator.py,sha256=e58ej-IWPwGfL-1EUCsPXfyK1faeR6LXoLifD0vjvFQ,6296
191
+ quant_core/app/factor/computation/operators/cross_section_operator.py,sha256=GRjyj-cZplqtaFEjXosu3PWj_5BR6AVcMw2rdgbmqk0,2235
192
+ quant_core/app/factor/computation/operators/time_series_operator.py,sha256=WicFKxWN3uC8w4jQLG5_KfaAKZ5l2zQlGbEuMHR8vHw,12147
193
+ quant_core/app/factor/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
+ quant_core/app/factor/interface/factor_compute.py,sha256=dwGBFcCNiXB0msq1hQYry7OZIS_anHCxVEwwIQFq78U,404
195
+ quant_core/app/factor/interface/factor_execution.py,sha256=poHxyXWqwysHerdL1XTc-hsNnZ4Ts1eTLNKT-VB2SQI,624
196
+ quant_core/app/factor/interface/factor_local_data.py,sha256=E9lABYOi-PFTPK9quuKZpelj-gbaGrsUMkoqs-FRVaE,1286
197
+ quant_core/app/factor/interface/factor_panel_compute.py,sha256=tOrI9v08weKVeG5P4MzBMjSI4ZnutrTitsKs8znmydM,513
198
+ quant_core/app/factor/interface/factor_panel_input.py,sha256=C2v0R4SuJapfcs76_qb77AepTc0LbMXHRU-fBiYbbRo,378
199
+ quant_core/app/factor/interface/factor_query_store.py,sha256=NqVkrZ08cWuuCJdti73F5d3WgCANSI5Hq23vhYzkDi8,1175
200
+ quant_core/app/factor/interface/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
201
+ quant_core/app/factor/interface/public/factor_diagnostics.py,sha256=_mA6h0vH2x7b1HWIbLJpHKas_TWFMJn0Wz7c7I_vMsE,570
202
+ quant_core/app/factor/interface/public/factor_exposure_query.py,sha256=C2TZ8y_-OMdwrTlsy3NndJ3M2uK_3EWHYKjyJzixxlw,370
203
+ quant_core/app/factor/interface/public/factor_local.py,sha256=Rn4fRQTvd1vvKLB7uTWj8s-ffekLK1IdAl2emKrgJXQ,572
204
+ quant_core/app/factor/interface/public/factor_query.py,sha256=fCVIJg29pVj3051nYyJo3dRVbKCoD1nKPOLFEpI9FqY,2373
205
+ quant_core/app/factor/interface/public/factor_selection.py,sha256=WPm-cAsjXttPscgOY1wXrfzVIvKkCTZ7ZvaX2A9LF7U,571
206
+ quant_core/app/factor/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
+ quant_core/app/factor/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
208
+ quant_core/app/factor/schema/__init__.py,sha256=khYeOEQyWBADMA-Z3QYMPq_RsPzLHgUSdT43W435fk0,31
209
+ quant_core/app/factor/schema/diagnostic_types.py,sha256=gJ7HgcUj1vy__S0Aj8KZg3yDD1Hm_oFwSSlkcwrdj70,873
210
+ quant_core/app/factor/schema/factor_artifact_schema.py,sha256=xX601jMztwxM0RioLkUEIR0iW_vavWtpr3qtoWLv-bY,1022
211
+ quant_core/app/factor/schema/factor_computation_schema.py,sha256=j1JttiMTOrrF7wd_Gf586EFFnanpfIn0hQ1RyPetocI,4743
212
+ quant_core/app/factor/schema/factor_compute_request.py,sha256=uGSydmrUIsdA08qYAMRApe5o7VHZ7odFP1Q1OAfF9z4,780
213
+ quant_core/app/factor/schema/factor_contract.py,sha256=R1teJl-fmwhvut8qGgXw0VAjy0KsJ85fr0hInWs0Xy8,12210
214
+ quant_core/app/factor/schema/factor_input_schema.py,sha256=0giZA34Bp7OMBXEc0ikCDuRU6EccCEv-eqn-vcQf8nA,1214
215
+ quant_core/app/factor/schema/factor_panel.py,sha256=2LRZVuOX45wfo69IvkWyBRKeU0hOM6lWE1ktD-SFnVs,2648
216
+ quant_core/app/factor/schema/factor_publication_schema.py,sha256=9i263LltTnMohmeZ3WrWrKgzDDMTEKE_gaIpvj5bVFU,1725
217
+ quant_core/app/factor/schema/factor_query_result_schema.py,sha256=TL8yuIopaVOi_myx4BOv9oheQ4yIQRPmnEOPf_hUPo8,303
218
+ quant_core/app/factor/schema/factor_result_schema.py,sha256=ZewjsSypY-mhueD3KHZ2hK2RjrlUb6IP7yzSSFmPQEw,151
219
+ quant_core/app/factor/schema/local_factor_schema.py,sha256=go9P-BudbMYGKTI2hnlM9QjU02BmtytWh8e5y5p0_vw,1744
220
+ quant_core/app/factor/schema/panel_policy.py,sha256=8kYs_YaD9p3HMvxtcKDD4HkrTYFcC_0Jcbg8d1svXvM,568
221
+ quant_core/app/factor/schema/selection_report.py,sha256=Kkokdc1GkLf_tgpov2Snk_fIglq5i8Ganb-c86HrBq8,3409
222
+ quant_core/app/factor/schema/selection_types.py,sha256=YLABt7-OzQJ-R1EPwsSBgYgP5lwAqFSBG4EynCBcQyE,4173
223
+ quant_core/app/factor/service/__init__.py,sha256=4aXAYGZ-Ae70j08wO6XZkeW3M_u9njcpT34YMauOyZU,62
224
+ quant_core/app/factor/service/factor_compute_service.py,sha256=_quqejCxEch5iVvg1dCpTH6xPMY72YPU02VRNDS0_BU,6189
225
+ quant_core/app/factor/service/factor_diagnostic_runner.py,sha256=xIquZROcyLg8NF3LWUb2yI4dwWJ_dZll01toHfofVz0,5748
226
+ quant_core/app/factor/service/factor_diagnostics_service.py,sha256=ezlaB6NMVVmKfLYoFxkl5AYmIIxQfZz3oZFyag-L1eU,5512
227
+ quant_core/app/factor/service/factor_exposure_service.py,sha256=U8MVLgawPPMW4m1OeCDSOl4ZhYA-saROr9_e2rVvxfY,942
228
+ quant_core/app/factor/service/factor_input_service.py,sha256=e0onFr1KGgQn1yb7sFR_AQu7I9UZzsjA-N5s25VZj7w,12077
229
+ quant_core/app/factor/service/factor_local_execution_service.py,sha256=74_du-N1Y9ZCjpbQAbRGMv3Wg7UsSXIdqo28ujtYarw,1940
230
+ quant_core/app/factor/service/factor_panel_service.py,sha256=pBIROWV67Y2ukOHEA8Y7eOQrmdCiAej7TAhiATWhyKc,3843
231
+ quant_core/app/factor/service/factor_runtime_service.py,sha256=Xu1y1ziCGhIFXJRmxz4XoatSeA3eY4bp5L5KIj17g2I,14575
232
+ quant_core/app/factor/service/factor_selection_runner.py,sha256=hnV1uVUTAA7F2h9e5UJC2yLqpHdTsxbdjErOTDhvPf8,2982
233
+ quant_core/app/factor/service/published_factor_execution_service.py,sha256=U3ExeJIEzqVivk_1Qd5VfmXc-xQ7IRf-PJujNVnZgw0,7450
234
+ quant_core/app/factor/service/selection_service.py,sha256=KBCZOH3G6V0Ka_8vBOH_wxFaZD12wfhnFbsv5mKtPEU,9915
235
+ quant_core/app/opportunity/SPEC.md,sha256=xQ3O08JADSSu0EsstZ2-XWAfbjYy-1wPafbQSNbHZl8,1740
236
+ quant_core/app/opportunity/__init__.py,sha256=pmCT80yOLFvgimnM541c-hG8JQgOum1H-Z6ZWuIqHZs,55
237
+ quant_core/app/order_execution/SPEC.md,sha256=moclUBG1KjkBzElooGXf6uKRk4lSdesskCbg9-rDrWM,2481
238
+ quant_core/app/order_execution/__init__.py,sha256=8TbvxlJwkKAhlLTEDRtyhE2ObrPrRjUfNWabA994uko,62
239
+ quant_core/app/order_execution/bar_matcher.py,sha256=mV8qvihzR53Vi_acE3TMeS5HNEToM_Feqe09zMYKm_w,2654
240
+ quant_core/app/order_execution/constants.py,sha256=G0PkJhvl-Or94oTh0CkOZLXuGx0jgh-rPxxGpsX0J7Q,4769
241
+ quant_core/app/order_execution/fee_model.py,sha256=Msl8_Scp_3ri99N6MgF1Lbe0krk2eOXIhxU2ZpqZf5k,2825
242
+ quant_core/app/order_execution/order_event_bus.py,sha256=UW8lIbMv-N8O6aCn9Ksi8NEkIR96OWWuLudd6i55Gmc,1121
243
+ quant_core/app/order_execution/order_execution_dependency.py,sha256=HOBZwv8iKGZWl08fdHq5VxhL3FCuiRDQNZMO_Ksd9PE,2249
244
+ quant_core/app/order_execution/order_submission_service.py,sha256=6N7vL1Z6arvLuUPska8Na4g6c2X9xUdFCdNktPJ2iQ4,13842
245
+ quant_core/app/order_execution/simulation_broker.py,sha256=nNcpnqQ9z3ogCWO0ymcgD3D6_6Zc8DslUN1HKbATlJw,39977
246
+ quant_core/app/order_execution/slippage_model.py,sha256=emoE5rTLaOjQUYxMkutxo0PIWc_6XuMA5OHm2pqkb_Q,1706
247
+ quant_core/app/order_execution/tradability_policy.py,sha256=KpbFxXWKcgtP0Ir6QQ0o0wKYgP8L4YSkXuGBQ7NDduk,8130
248
+ quant_core/app/order_execution/validators.py,sha256=RNYGSr3XwKuAud3p_sVSqWWLUk1OPATboNkGEFBxH10,1875
249
+ quant_core/app/order_execution/domain/__init__.py,sha256=_PJ6uNH0qVrU2MrnVGJ6Tgnk33jGbTktn77_fX1dvpQ,1055
250
+ quant_core/app/order_execution/domain/execution_batch.py,sha256=5LWjFaBGBt-V6s4NGmCk7_ae2YY5_KiPhSgS23N54xc,5060
251
+ quant_core/app/order_execution/domain/order_entity.py,sha256=F2yq2XlcQTlqPNyIWs3xBE2r2jtDZLKH8gviWrWGsAE,8121
252
+ quant_core/app/order_execution/domain/order_event.py,sha256=nkkYWVCVZewvkybWF4vkpmHd-MhAADiu9wAGOQSi2-M,3136
253
+ quant_core/app/order_execution/domain/order_policy.py,sha256=2bVuiuwqke-pKGhLpv1e5gVwAALETGy2vIrJyV0dJJM,873
254
+ quant_core/app/order_execution/domain/order_value.py,sha256=iWIiuf2t-8AMqnvtj3WLAyHUghmcgllcdJy3YYhDLP4,5668
255
+ quant_core/app/order_execution/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
+ quant_core/app/order_execution/interface/order_account.py,sha256=j6zyfFqCM9DyR3xpFvHQ2U_DlFNRQ5__PTEyshpHaYA,350
257
+ quant_core/app/order_execution/interface/order_trading_rules.py,sha256=EFQRjD4XozIBhrTALRv6VFF-se0ymdbfEaMNnXctsLs,317
258
+ quant_core/app/order_execution/interface/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
259
+ quant_core/app/order_execution/interface/public/execution_account.py,sha256=iw9xrSuxLfi2KMc3jKNyvOi9dEstqeW72zS5EMTQIqc,1658
260
+ quant_core/app/order_execution/interface/public/order_events.py,sha256=hWd7_799NtNHZ0-4rUayqygYOH-ZAhiwjJYbdp3_khs,817
261
+ quant_core/app/order_execution/interface/public/order_execution.py,sha256=T9r-kZzaejT0J14XKuZDu3hKNXnMzFAm07x6Hh4Ckts,4706
262
+ quant_core/app/order_execution/interface/public/order_runtime.py,sha256=BUAF0Xp0fJQ3oT_oDIQB1QfSb-7-2KW_BsT6TcKpIPI,1268
263
+ quant_core/app/order_execution/interface/public/order_submission.py,sha256=EzdGh1sPOp5saJ6-_ZV1wk9nmQ2YALKaY4YuDV1iCU4,720
264
+ quant_core/app/order_execution/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
265
+ quant_core/app/order_execution/schema/order_request_schema.py,sha256=QrEJD9HcwsXx9BZG2DcBP38jSZvx1ow3ItAQrT4WkWc,3484
266
+ quant_core/app/portfolio/SPEC.md,sha256=LPnp4AHnaJb0fxgm346BfBDYbQ-S9aFxyoC0JJSjCwg,2722
267
+ quant_core/app/portfolio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
268
+ quant_core/app/portfolio/ledger_schema.py,sha256=hNyXjVqqSWCp66v-_0bPTtPqqO1AjmdPDpS8CF7cdZ8,4084
269
+ quant_core/app/portfolio/order_account_listener.py,sha256=Q2q5qWryNA1Z8SiURIXpgPq7N7QmIphg-bGApduRGl4,1354
270
+ quant_core/app/portfolio/portfolio_dependency.py,sha256=-WFHNEB7qMQCEl-7QBiUCuBOLjlqWjGubsgou5XPOfc,910
271
+ quant_core/app/portfolio/portfolio_schema.py,sha256=6QprrIE6KC1kVPm4WkboLQC4-VGEfHDBuZgqhsZhYr8,9677
272
+ quant_core/app/portfolio/simulated_portfolio.py,sha256=GVp_cnSys_jTm2lnCDhRsAKETMKqogoGYaH78J1D0uE,17487
273
+ quant_core/app/portfolio/domain/__init__.py,sha256=6r-i0YuH4STIMpw-e4_T_szw8K6PXaHnZ44zwJ8Yiv8,942
274
+ quant_core/app/portfolio/domain/entitlement_entity.py,sha256=EVNPgbA7m1BWe5MssYCHWK100bkJIU9knU2t_C7tyJ8,1725
275
+ quant_core/app/portfolio/domain/portfolio_entity.py,sha256=VtKbDewzRZL_f48LDUHKLIBwmXqpB6hURVCrannsvkE,23464
276
+ quant_core/app/portfolio/domain/portfolio_event.py,sha256=7jd0AKgwK-vXXyfcfLKg61moi4-4h8O4NGqxaeeFUIU,1359
277
+ quant_core/app/portfolio/domain/portfolio_value.py,sha256=OSE1OBZhXI8ornfZY8XqIxQOYg_bt9llpuX8tszH3vw,478
278
+ quant_core/app/portfolio/domain/position_entity.py,sha256=a0pisiSA6qnxsT2V8fpkD5elFv0J9-pYWM3kaj8z1y4,6429
279
+ quant_core/app/portfolio/domain/reservation_entity.py,sha256=cGZUekbtwtPtpsYhRd2BdAVuq4joskjULGfnuRjExOQ,2674
280
+ quant_core/app/portfolio/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
+ quant_core/app/portfolio/interface/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
282
+ quant_core/app/portfolio/interface/public/portfolio.py,sha256=56wylgA0az5NqIcEG1Q47cY7SYKQIAnNS5pvxmZadO8,2569
283
+ quant_core/app/portfolio/interface/public/simulation_account.py,sha256=_2NT-E7TRcFi91DpDIoKrvT-0ZQce1cZj2mDyZmCKvQ,485
284
+ quant_core/app/research/SPEC.md,sha256=yo4BH3M8aQ_MT4RI4mfEhmbFwu7fPknqBZowJWO6eu8,2036
285
+ quant_core/app/research/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
286
+ quant_core/app/research/adapter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
287
+ quant_core/app/research/adapter/market_label_query.py,sha256=jEfk9z5SvJtNCsLXEg3F50sLtnh0H2P1h9ksFz7kqoQ,3750
288
+ quant_core/app/research/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
289
+ quant_core/app/research/interface/research_dataset.py,sha256=g9p_CfXZE_DmINLh7ZbhFOTH0opYQ8DGA5MehdfD-oE,1461
290
+ quant_core/app/research/interface/research_evaluation.py,sha256=nq0LEobmTd2Dkp4Awm_ver4QVazBgJGQTKsVX9xH_O8,666
291
+ quant_core/app/research/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
292
+ quant_core/app/research/schema/comparison_schema.py,sha256=M6kg-ijii0hU6VfNdG6duAzc0gmXXPHPAlhtOvIgMh8,376
293
+ quant_core/app/research/schema/dataset_schema.py,sha256=jrtIELssXsfOJPdQmCkMGNtwOGEWBsnx-9ktonI180Q,4321
294
+ quant_core/app/research/schema/research_schema.py,sha256=v2LoU65bUoPFl4iIC9hpH1AEYBTieXyhWAGg1u9x97I,4477
295
+ quant_core/app/research/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
+ quant_core/app/research/service/research_dataset_service.py,sha256=Z04nBTGpjaH78jJYjoNoVRQxu_04td-nFBD56qKke3Y,3543
297
+ quant_core/app/research/service/research_evaluation_service.py,sha256=LQ5rkQUHyc271QKj4bRAUXwhGNsb-cNCn3F48SNexLM,2418
298
+ quant_core/app/research/service/research_service.py,sha256=rrzf8nxnPys2oRATRUhGXmMKiU3uPMuRc55AxbPiGe4,6215
299
+ quant_core/app/strategy/SPEC.md,sha256=i_T29RlSNPrJsgvAwzCULuooOOIyRvG0t5XQkbS7qcU,10985
300
+ quant_core/app/strategy/__init__.py,sha256=nFlrYXIt9Hk-x_LwxCEhrPklLPQcRsr60K-CzzlyssY,91
301
+ quant_core/app/strategy/constants.py,sha256=sLIZCMlyxqLb3AS_IBLdRSst4pnSx3P6u7cCaiPRq8s,2512
302
+ quant_core/app/strategy/exceptions.py,sha256=LW12_fghLgyGsBXMjgec9JbvPzazMhFltt-eNlZdmJI,969
303
+ quant_core/app/strategy/strategy_context.py,sha256=PSg4AzLJmO-DvqT7rWPxjMWHADaP0iE_GCCwpiSvBHQ,12787
304
+ quant_core/app/strategy/strategy_dependency.py,sha256=soobOGniHtND3Vj5NAvWi6MRdIer_uYruGscqp2TIUk,4013
305
+ quant_core/app/strategy/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
+ quant_core/app/strategy/interface/strategy_factor_reader.py,sha256=ejvf5DgnuR_6HcRIRlma3xHQKTNNQtSisjQkcPkFb2U,585
307
+ quant_core/app/strategy/interface/strategy_order_reader.py,sha256=-ITQKVhT67nlDgosGuTBC3-SgJTLKvKQKwGsh3GJoDk,417
308
+ quant_core/app/strategy/interface/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
309
+ quant_core/app/strategy/interface/public/portfolio_construction.py,sha256=6XN2Sad-YaNnIrgiBCyjaC6BUG0U6Zg7i9IzNUpcrFs,658
310
+ quant_core/app/strategy/interface/public/strategy.py,sha256=47HjnqXNNuwjq3mgHW3PA6rscdjtOiMQVDVuYEsf2M0,1053
311
+ quant_core/app/strategy/interface/public/strategy_market_query.py,sha256=-PbUMNmFtvKWGts6cco8Vjx8Fuy7gqti6c0sAUeA_Ew,1603
312
+ quant_core/app/strategy/interface/public/strategy_portfolio_reader.py,sha256=6sSijo_5uub7T27wHjq97KvjVJkah4sVoxX3G08hZBs,1306
313
+ quant_core/app/strategy/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
314
+ quant_core/app/strategy/schema/portfolio_schema.py,sha256=jSxngOFO_ivxNwr1SqcFfXSmLnm6ARo7ycUp2b-k-dc,981
315
+ quant_core/app/strategy/schema/portfolio_target.py,sha256=LXRhxnlIdRYyY7YlxjIE7GEf3aFj02xFKpkeGqKfs6Y,2864
316
+ quant_core/app/strategy/schema/python_strategy_schema.py,sha256=6BjFiNCNpcIuc0AQ1T4pp7IGMsQT_2RP_I1FbDZimIk,3905
317
+ quant_core/app/strategy/schema/screener_schema.py,sha256=O0aPQhJClUokFP_a0T-_CzXPzPASOn5Mi6CO6WcUIh8,1812
318
+ quant_core/app/strategy/schema/signal_schema.py,sha256=S6JYn_L9-ZQcofEB1m7ap033JRPpD_iCV5c4179YC4I,1567
319
+ quant_core/app/strategy/schema/strategy_publication_schema.py,sha256=8NdEZHocrRCutJEMbOM1I4Z6LmkrRgOY227ukcVLRdU,1416
320
+ quant_core/app/strategy/schema/strategy_schema.py,sha256=2Vgp_VV0eB8mVB9nYZiI9fosr1q_tg4eh78LXd4e_Xo,5024
321
+ quant_core/app/strategy/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
322
+ quant_core/app/strategy/service/factor_top_n_strategy.py,sha256=34VEfVm5WovtcKl6eP6f-EtotZEBjz0DinipPbBOe04,4405
323
+ quant_core/app/strategy/service/portfolio_construction_service.py,sha256=dYWkyAaUnl4ZiySmRfwnoGhBN3O6p9BL72bIv45kHLE,6915
324
+ quant_core/app/strategy/service/python_strategy_service.py,sha256=Z2Nf9LvF7y8k2HU1wt1P8lMPvzEVQ_MM6oN4Zp7ShaM,2571
325
+ quant_core/app/strategy/service/screener_service.py,sha256=FdEN-8wfJLi3mxPAlk8VhQH9KxOMZrEwSxyh7h1E79s,3168
326
+ quant_core/app/strategy/service/store_factor_reader.py,sha256=Vx4ZZKdFra8itH6xmMuauuOF3FkpUOKR7jCHsh__CW0,4815
327
+ quant_core/app/strategy/service/strategy_market_view.py,sha256=Zl0F_e0rdmRX_IYZb9aZi33DqPZ9qv9QScrE4Ae6fmk,4470
328
+ quant_core/app/strategy/service/strategy_runtime_service.py,sha256=A-993CEdXFXtLcsvREwUYoXReBW2Y6Tvjsm9vHJ2uhI,15156
329
+ quant_core/app/strategy/service/strategy_scheduler.py,sha256=J9ipr85RvOAfeCOwevLZMnkKtwBIMIPvah1FH7duffk,1851
330
+ quant_core/app/strategy/strategies/__init__.py,sha256=EPUNI1WD8cGmmyF5-CQH_Vnav3gskdsWfe4zhGXH6fE,269
331
+ quant_core/app/strategy/strategies/momentum_volume_breakout.py,sha256=t2wrQA4Z7wZvow9NgGzxo5jrVd-IFr3iQd9OHB2ASsE,6165
332
+ quant_core/app/trading_runtime/SPEC.md,sha256=_V2iJ_m3AQnQkUhs__ccQjdYdCD4YTBQMwrGrn0Xts0,2467
333
+ quant_core/app/trading_runtime/__init__.py,sha256=WH6B_mWFQq0ds3836HI25ocskXhe17SaJTja6f3AZw0,56
334
+ quant_core/app/trading_runtime/runtime_ports.py,sha256=tSqvMykWsU7tKCFpItMyjXqKyXPD9FF0pfyRtxBF4uI,2657
335
+ quant_core/app/trading_runtime/runtime_schema.py,sha256=K6EHl4yVQNYpJPOOow6PRtWCUCff9OlQN95bTV3eSUg,5494
336
+ quant_core/app/trading_runtime/runtime_session.py,sha256=97faHWBAOFvxLMBAKPDX0wlZZKVi9uYkczxlSoQF-1c,15551
337
+ quant_core/app/trading_runtime/strategy_portfolio_adapter.py,sha256=t2f-1Xsx3VLH_5qKqItCPV-2iJrfLKOQdQYtJa1ZT7s,2470
338
+ quant_core/app/trading_runtime/trading_rule_book.py,sha256=6rcZ3N32lr9aqp5m9tQ-hbigCwXVAqGIp06C4PRCQdQ,1679
339
+ quant_core/app/trading_runtime/trading_rule_query.py,sha256=YwMQQpVvMTX10Ztj83dGa3gWUhbp6nbjW7DfB6uFbvg,420
340
+ quant_core/app/trading_runtime/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
341
+ quant_core/app/trading_runtime/replay/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
342
+ quant_core/app/trading_runtime/replay/daily_state_expand.py,sha256=fGxZbpizs-z0E9zmtFRzZTRjEKHTYNXJlmfTkFEYI14,1657
343
+ quant_core/app/trading_runtime/replay/exchange_state_resolver.py,sha256=2kzjbgDFPWPcQU9ryvAuatXqbV3QX_FItXDL4vEvdao,4625
344
+ quant_core/app/trading_runtime/replay/market_runtime_service.py,sha256=6-JUeTjb8KZ7dirsi-UaUDvKq6Uonj0R9QGw35WgWhA,26528
345
+ quant_core/app/trading_runtime/replay/market_state_resolver.py,sha256=qEZ43qZhAZEc5ByAtduWGjEmv3yuxQ7crr0ooCh7fuM,7654
346
+ quant_core/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
347
+ quant_core/common/local_run.py,sha256=vu4bwcWXG4W_73PQ0I6AzZ7grBAHQb3SGix9_oW4Z3k,1539
348
+ quant_core/common/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
349
+ quant_core/common/exceptions/base.py,sha256=vO9qLjs4rHwQQ8djbbs5RdWVrpzozKGcxt5gSjAgyGc,2782
350
+ powerquant_cli-0.2.6.dist-info/METADATA,sha256=aIPblfZ1cGRNMfV_w3qvdW6mw_pfihWQWgdcx9EbK8Q,2371
351
+ powerquant_cli-0.2.6.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
352
+ powerquant_cli-0.2.6.dist-info/entry_points.txt,sha256=55IxNxGKJjnDAR-TqwZO8FitpJWBOQHgjWuBdY_kHow,52
353
+ powerquant_cli-0.2.6.dist-info/licenses/LICENSE,sha256=L2lBZ95erGrZc7Lobho1xU4lVClBXJZAWBrdKW6BU7M,1848
354
+ powerquant_cli-0.2.6.dist-info/licenses/licenses/LICENSE.vnpy,sha256=gSlOW8upRVZN-FhvHXibAWABt7Q-tN6Xc2Z53Ygs8ZE,1087
355
+ powerquant_cli-0.2.6.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.4
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ pq = quant_cli.app.quant_cli:main
@@ -0,0 +1,36 @@
1
+ Power Quant Proprietary License
2
+ Copyright (c) 2026 Power Quant contributors. All rights reserved.
3
+
4
+ 1. Permission to use
5
+ You may install and use this software, inspect its source code, and make
6
+ local copies and modifications for your own use. Permitted uses include
7
+ connecting to Power Quant services and performing research and backtesting.
8
+ Commercial use of the software is permitted under these same conditions.
9
+
10
+ 2. Redistribution and resale
11
+ Unless you have prior written authorization from the copyright holders,
12
+ you may not redistribute, sublicense, publish, or resell this software or
13
+ its modified versions, including as part of another software product.
14
+ The copyright holders may distribute the software through their designated
15
+ release channels, including PyPI. This does not authorize recipients to
16
+ redistribute it.
17
+
18
+ 3. Service access and results
19
+ This license does not grant access to Power Quant services or market data.
20
+ Service access requires a valid access token and remains subject to the
21
+ applicable service and data terms. These redistribution restrictions apply
22
+ to the software, not to your own research code or results; rights in market
23
+ data remain governed by the applicable data terms.
24
+
25
+ 4. Third-party components
26
+ Third-party components retain their own licenses and copyright notices.
27
+ The restrictions above do not override rights granted by those licenses.
28
+ In particular, components identified as derived from vn.py remain subject
29
+ to the accompanying MIT license. Separately installed dependencies are
30
+ subject to their own licenses.
31
+
32
+ 5. Disclaimer
33
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
34
+ OR IMPLIED, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
35
+ AND NON-INFRINGEMENT. TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE
36
+ COPYRIGHT HOLDERS ARE NOT LIABLE FOR DAMAGES ARISING FROM ITS USE.
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-present, Xiaoyou Chen
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.
pqdata/__init__.py ADDED
@@ -0,0 +1,6 @@
1
+ """Power Quant 行情服务的独立 Python 客户端。"""
2
+
3
+ from pqdata.client import MarketClient
4
+ from pqdata.exceptions import MarketAPIError, MarketProtocolError
5
+
6
+ __all__ = ["MarketAPIError", "MarketClient", "MarketProtocolError"]