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.
- powerquant_cli-0.2.6.dist-info/METADATA +62 -0
- powerquant_cli-0.2.6.dist-info/RECORD +355 -0
- powerquant_cli-0.2.6.dist-info/WHEEL +4 -0
- powerquant_cli-0.2.6.dist-info/entry_points.txt +2 -0
- powerquant_cli-0.2.6.dist-info/licenses/LICENSE +36 -0
- powerquant_cli-0.2.6.dist-info/licenses/licenses/LICENSE.vnpy +21 -0
- pqdata/__init__.py +6 -0
- pqdata/client.py +389 -0
- pqdata/download.py +60 -0
- pqdata/exceptions.py +14 -0
- pqdata/schema/__init__.py +1 -0
- pqdata/schema/adjustment_schema.py +67 -0
- pqdata/schema/bar_content_schema.py +24 -0
- pqdata/schema/bar_schema.py +56 -0
- pqdata/schema/corporate_action_schema.py +46 -0
- pqdata/schema/history_schema.py +61 -0
- pqdata/schema/pit_daily_window.py +16 -0
- pqdata/schema/query_schema.py +53 -0
- pqdata/schema/quote_schema.py +73 -0
- pqdata/schema/reference_schema.py +48 -0
- pqdata/schema/reliability_schema.py +152 -0
- quant_cli/__init__.py +0 -0
- quant_cli/api.py +39 -0
- quant_cli/app/__init__.py +0 -0
- quant_cli/app/backtest/__init__.py +0 -0
- quant_cli/app/backtest/cli/__init__.py +0 -0
- quant_cli/app/backtest/cli/local_backtest_cli.py +72 -0
- quant_cli/app/backtest/local_backtest_dependency.py +10 -0
- quant_cli/app/backtest/local_backtest_schema.py +49 -0
- quant_cli/app/backtest/repository/__init__.py +0 -0
- quant_cli/app/backtest/repository/backtest_local_repository.py +67 -0
- quant_cli/app/backtest/service/__init__.py +0 -0
- quant_cli/app/backtest/service/local_backtest_service.py +271 -0
- quant_cli/app/data/__init__.py +0 -0
- quant_cli/app/data/cli/__init__.py +0 -0
- quant_cli/app/data/cli/data_cli.py +78 -0
- quant_cli/app/data/data_dependency.py +35 -0
- quant_cli/app/data/repository/__init__.py +0 -0
- quant_cli/app/data/repository/parquet_repository.py +124 -0
- quant_cli/app/data/schema/__init__.py +0 -0
- quant_cli/app/data/schema/dataset_audit_schema.py +37 -0
- quant_cli/app/data/schema/dataset_request_schema.py +28 -0
- quant_cli/app/data/schema/parquet_file_schema.py +17 -0
- quant_cli/app/data/service/__init__.py +0 -0
- quant_cli/app/data/service/bar_cache_service.py +287 -0
- quant_cli/app/data/service/dataset_audit_service.py +137 -0
- quant_cli/app/data/service/dataset_load_service.py +115 -0
- quant_cli/app/data/service/dataset_prepare_service.py +187 -0
- quant_cli/app/factor/__init__.py +0 -0
- quant_cli/app/factor/cli/__init__.py +0 -0
- quant_cli/app/factor/cli/factor_definition_cli.py +81 -0
- quant_cli/app/factor/cli/local_factor_cli.py +102 -0
- quant_cli/app/factor/cli/local_selection_cli.py +58 -0
- quant_cli/app/factor/interface/__init__.py +0 -0
- quant_cli/app/factor/interface/local_selection_store.py +12 -0
- quant_cli/app/factor/local_factor_dependency.py +38 -0
- quant_cli/app/factor/repository/__init__.py +0 -0
- quant_cli/app/factor/repository/factor_local_repository.py +154 -0
- quant_cli/app/factor/repository/selection_local_repository.py +67 -0
- quant_cli/app/factor/schema/local_selection_schema.py +56 -0
- quant_cli/app/factor/service/__init__.py +0 -0
- quant_cli/app/factor/service/factor_data_prepare_service.py +181 -0
- quant_cli/app/factor/service/local_factor_query_service.py +146 -0
- quant_cli/app/factor/service/local_factor_service.py +120 -0
- quant_cli/app/factor/service/local_selection_service.py +139 -0
- quant_cli/app/job/__init__.py +0 -0
- quant_cli/app/job/cli/__init__.py +0 -0
- quant_cli/app/job/cli/local_job_cli.py +69 -0
- quant_cli/app/job/schema/__init__.py +0 -0
- quant_cli/app/job/schema/local_job_schema.py +11 -0
- quant_cli/app/job/service/__init__.py +0 -0
- quant_cli/app/job/service/local_job_service.py +60 -0
- quant_cli/app/quant_cli.py +49 -0
- quant_cli/app/research/__init__.py +0 -0
- quant_cli/app/research/cli/__init__.py +0 -0
- quant_cli/app/research/cli/local_research_cli.py +93 -0
- quant_cli/app/research/local_research_dependency.py +10 -0
- quant_cli/app/research/repository/__init__.py +0 -0
- quant_cli/app/research/repository/research_local_repository.py +67 -0
- quant_cli/app/research/schema/__init__.py +0 -0
- quant_cli/app/research/schema/local_research_schema.py +26 -0
- quant_cli/app/research/service/__init__.py +0 -0
- quant_cli/app/research/service/local_research_execution_service.py +105 -0
- quant_cli/app/research/service/local_research_service.py +101 -0
- quant_cli/app/strategy/__init__.py +0 -0
- quant_cli/app/strategy/cli/__init__.py +0 -0
- quant_cli/app/strategy/cli/strategy_cli.py +104 -0
- quant_cli/common/__init__.py +0 -0
- quant_cli/common/constants.py +7 -0
- quant_cli/common/database/__init__.py +0 -0
- quant_cli/common/database/duckdb_connection.py +30 -0
- quant_cli/common/http/__init__.py +0 -0
- quant_cli/common/http/definition_client.py +54 -0
- quant_cli/common/utils/__init__.py +0 -0
- quant_cli/common/utils/cli_utils.py +37 -0
- quant_cli/common/utils/platform_utils.py +11 -0
- quant_cli/common/utils/runtime_environment.py +12 -0
- quant_cli/examples/cached_factor_screen.py +165 -0
- quant_cli/examples/factors/ma_close_10.py +10 -0
- quant_cli/examples/factors/max_drawdown_20d.py +18 -0
- quant_cli/examples/factors/momentum_20d.py +13 -0
- quant_cli/examples/factors/multi_intraday_screen.py +16 -0
- quant_cli/examples/factors/risk_adjusted_momentum_20d.py +18 -0
- quant_cli/examples/factors/volume_ratio_5d.py +14 -0
- quant_cli/examples/factors/volume_weighted_close_pressure.py +14 -0
- quant_cli/examples/full_market_screen.py +189 -0
- quant_cli/examples/local_quant_validation.py +196 -0
- quant_cli/examples/published_definition_validation.py +219 -0
- quant_cli/examples/research/factor_pit_coverage.py +87 -0
- quant_cli/examples/research/ipo_first_day.py +348 -0
- quant_cli/examples/selection/README.md +59 -0
- quant_cli/examples/selection/backtest.json +18 -0
- quant_cli/examples/selection/buy_hold.py +7 -0
- quant_cli/examples/selection/compute.json +15 -0
- quant_cli/examples/selection/prepare.json +13 -0
- quant_cli/examples/selection/select.json +44 -0
- quant_cli/examples/strategies/bar_roundtrip.py +12 -0
- quant_cli/examples/strategies/buy_and_hold.py +11 -0
- quant_cli/examples/strategies/contrarian_timing.py +14 -0
- quant_cli/examples/strategies/factor_gate_vwap.py +22 -0
- quant_cli/examples/strategies/ipo_next_day_vwap.py +31 -0
- quant_cli/examples/strategies/momentum_timing.py +14 -0
- quant_cli/examples/strategies/monthly_equal_weight.py +19 -0
- quant_cli/examples/strategies/session_roundtrip.py +16 -0
- quant_cli/examples/strategies/trend_drawdown_guard.py +22 -0
- quant_cli/examples/strategies/weekly_risk_adjusted_rotation.py +61 -0
- quant_cli/examples/unified_snapshot_validation.py +260 -0
- quant_core/__init__.py +0 -0
- quant_core/app/SPEC.md +18 -0
- quant_core/app/__init__.py +0 -0
- quant_core/app/backtest/SPEC.md +65 -0
- quant_core/app/backtest/__init__.py +1 -0
- quant_core/app/backtest/backtest_input_schema.py +20 -0
- quant_core/app/backtest/backtest_run.py +393 -0
- quant_core/app/backtest/data_guard.py +77 -0
- quant_core/app/backtest/historical_clock.py +26 -0
- quant_core/app/backtest/legacy_result_schema.py +34 -0
- quant_core/app/backtest/metrics.py +194 -0
- quant_core/app/backtest/performance_report.py +61 -0
- quant_core/app/backtest/report_schema.py +64 -0
- quant_core/app/backtest/schema.py +477 -0
- quant_core/app/backtest/service/__init__.py +0 -0
- quant_core/app/backtest/service/backtest_execution_service.py +114 -0
- quant_core/app/data/__init__.py +0 -0
- quant_core/app/data/constants.py +284 -0
- quant_core/app/data/domain/__init__.py +0 -0
- quant_core/app/data/domain/trading_quantity_value.py +57 -0
- quant_core/app/data/exceptions.py +95 -0
- quant_core/app/data/interface/__init__.py +0 -0
- quant_core/app/data/interface/adjustment_factor_query.py +21 -0
- quant_core/app/data/interface/market_data_query.py +71 -0
- quant_core/app/data/interface/market_data_verification.py +20 -0
- quant_core/app/data/interface/market_event_source.py +11 -0
- quant_core/app/data/interface/market_revision_query.py +8 -0
- quant_core/app/data/interface/market_runtime_repository.py +44 -0
- quant_core/app/data/interface/market_time_slice_source.py +11 -0
- quant_core/app/data/repository/__init__.py +0 -0
- quant_core/app/data/schema/__init__.py +1 -0
- quant_core/app/data/schema/adjustment_schema.py +67 -0
- quant_core/app/data/schema/corporate_action_schema.py +46 -0
- quant_core/app/data/schema/event_schema.py +506 -0
- quant_core/app/data/schema/exchange_operating_state.py +37 -0
- quant_core/app/data/schema/exchange_state_schema.py +106 -0
- quant_core/app/data/schema/history_schema.py +48 -0
- quant_core/app/data/schema/instrument_identity.py +69 -0
- quant_core/app/data/schema/market_schema.py +128 -0
- quant_core/app/data/schema/pit_daily_window.py +16 -0
- quant_core/app/data/schema/quote_schema.py +73 -0
- quant_core/app/data/schema/reliability_schema.py +152 -0
- quant_core/app/data/schema/snapshot_schema.py +82 -0
- quant_core/app/data/schema/trading_state_schema.py +211 -0
- quant_core/app/data/service/__init__.py +0 -0
- quant_core/app/data/service/calendar_coverage_service.py +63 -0
- quant_core/app/data/service/prepared_data_verification_service.py +40 -0
- quant_core/app/data/service/prepared_market_service.py +189 -0
- quant_core/app/data/service/price_adjustment_service.py +235 -0
- quant_core/app/factor/LICENSE.vnpy +21 -0
- quant_core/app/factor/__init__.py +13 -0
- quant_core/app/factor/builtin/__init__.py +0 -0
- quant_core/app/factor/builtin/alpha101_recipe.py +1095 -0
- quant_core/app/factor/builtin/alpha158_recipe.py +1284 -0
- quant_core/app/factor/builtin/factor_recipe_catalog.py +100 -0
- quant_core/app/factor/computation/__init__.py +0 -0
- quant_core/app/factor/computation/factor_batch_evaluator.py +141 -0
- quant_core/app/factor/computation/factor_expression.py +106 -0
- quant_core/app/factor/computation/factor_source_loader.py +24 -0
- quant_core/app/factor/computation/operators/__init__.py +0 -0
- quant_core/app/factor/computation/operators/arithmetic_operator.py +182 -0
- quant_core/app/factor/computation/operators/cross_section_operator.py +66 -0
- quant_core/app/factor/computation/operators/time_series_operator.py +342 -0
- quant_core/app/factor/computation/panel_evaluator.py +59 -0
- quant_core/app/factor/computation/panel_expression.py +193 -0
- quant_core/app/factor/computation/python_factor_executor.py +87 -0
- quant_core/app/factor/computation/universe_filter.py +25 -0
- quant_core/app/factor/constants.py +114 -0
- quant_core/app/factor/exceptions.py +35 -0
- quant_core/app/factor/factor_dependency.py +65 -0
- quant_core/app/factor/interface/__init__.py +0 -0
- quant_core/app/factor/interface/factor_compute.py +12 -0
- quant_core/app/factor/interface/factor_execution.py +15 -0
- quant_core/app/factor/interface/factor_local_data.py +42 -0
- quant_core/app/factor/interface/factor_panel_compute.py +18 -0
- quant_core/app/factor/interface/factor_panel_input.py +12 -0
- quant_core/app/factor/interface/factor_query_store.py +39 -0
- quant_core/app/factor/interface/public/__init__.py +0 -0
- quant_core/app/factor/interface/public/factor_diagnostics.py +18 -0
- quant_core/app/factor/interface/public/factor_exposure_query.py +12 -0
- quant_core/app/factor/interface/public/factor_local.py +15 -0
- quant_core/app/factor/interface/public/factor_query.py +57 -0
- quant_core/app/factor/interface/public/factor_selection.py +20 -0
- quant_core/app/factor/model/__init__.py +0 -0
- quant_core/app/factor/repository/__init__.py +0 -0
- quant_core/app/factor/schema/__init__.py +1 -0
- quant_core/app/factor/schema/diagnostic_types.py +42 -0
- quant_core/app/factor/schema/factor_artifact_schema.py +36 -0
- quant_core/app/factor/schema/factor_computation_schema.py +102 -0
- quant_core/app/factor/schema/factor_compute_request.py +24 -0
- quant_core/app/factor/schema/factor_contract.py +257 -0
- quant_core/app/factor/schema/factor_input_schema.py +32 -0
- quant_core/app/factor/schema/factor_panel.py +65 -0
- quant_core/app/factor/schema/factor_publication_schema.py +41 -0
- quant_core/app/factor/schema/factor_query_result_schema.py +12 -0
- quant_core/app/factor/schema/factor_result_schema.py +6 -0
- quant_core/app/factor/schema/local_factor_schema.py +42 -0
- quant_core/app/factor/schema/panel_policy.py +13 -0
- quant_core/app/factor/schema/selection_report.py +116 -0
- quant_core/app/factor/schema/selection_types.py +135 -0
- quant_core/app/factor/service/__init__.py +1 -0
- quant_core/app/factor/service/factor_compute_service.py +140 -0
- quant_core/app/factor/service/factor_diagnostic_runner.py +134 -0
- quant_core/app/factor/service/factor_diagnostics_service.py +140 -0
- quant_core/app/factor/service/factor_exposure_service.py +24 -0
- quant_core/app/factor/service/factor_input_service.py +258 -0
- quant_core/app/factor/service/factor_local_execution_service.py +51 -0
- quant_core/app/factor/service/factor_panel_service.py +86 -0
- quant_core/app/factor/service/factor_runtime_service.py +306 -0
- quant_core/app/factor/service/factor_selection_runner.py +88 -0
- quant_core/app/factor/service/published_factor_execution_service.py +160 -0
- quant_core/app/factor/service/selection_service.py +234 -0
- quant_core/app/factor/visibility.py +22 -0
- quant_core/app/opportunity/SPEC.md +45 -0
- quant_core/app/opportunity/__init__.py +1 -0
- quant_core/app/order_execution/SPEC.md +64 -0
- quant_core/app/order_execution/__init__.py +1 -0
- quant_core/app/order_execution/bar_matcher.py +55 -0
- quant_core/app/order_execution/constants.py +142 -0
- quant_core/app/order_execution/domain/__init__.py +45 -0
- quant_core/app/order_execution/domain/execution_batch.py +108 -0
- quant_core/app/order_execution/domain/order_entity.py +197 -0
- quant_core/app/order_execution/domain/order_event.py +87 -0
- quant_core/app/order_execution/domain/order_policy.py +29 -0
- quant_core/app/order_execution/domain/order_value.py +142 -0
- quant_core/app/order_execution/fee_model.py +60 -0
- quant_core/app/order_execution/interface/__init__.py +0 -0
- quant_core/app/order_execution/interface/order_account.py +10 -0
- quant_core/app/order_execution/interface/order_trading_rules.py +10 -0
- quant_core/app/order_execution/interface/public/__init__.py +0 -0
- quant_core/app/order_execution/interface/public/execution_account.py +53 -0
- quant_core/app/order_execution/interface/public/order_events.py +19 -0
- quant_core/app/order_execution/interface/public/order_execution.py +107 -0
- quant_core/app/order_execution/interface/public/order_runtime.py +30 -0
- quant_core/app/order_execution/interface/public/order_submission.py +17 -0
- quant_core/app/order_execution/order_event_bus.py +28 -0
- quant_core/app/order_execution/order_execution_dependency.py +48 -0
- quant_core/app/order_execution/order_submission_service.py +301 -0
- quant_core/app/order_execution/schema/__init__.py +0 -0
- quant_core/app/order_execution/schema/order_request_schema.py +88 -0
- quant_core/app/order_execution/simulation_broker.py +883 -0
- quant_core/app/order_execution/slippage_model.py +40 -0
- quant_core/app/order_execution/tradability_policy.py +174 -0
- quant_core/app/order_execution/validators.py +40 -0
- quant_core/app/portfolio/SPEC.md +69 -0
- quant_core/app/portfolio/__init__.py +0 -0
- quant_core/app/portfolio/domain/__init__.py +32 -0
- quant_core/app/portfolio/domain/entitlement_entity.py +45 -0
- quant_core/app/portfolio/domain/portfolio_entity.py +511 -0
- quant_core/app/portfolio/domain/portfolio_event.py +59 -0
- quant_core/app/portfolio/domain/portfolio_value.py +21 -0
- quant_core/app/portfolio/domain/position_entity.py +165 -0
- quant_core/app/portfolio/domain/reservation_entity.py +69 -0
- quant_core/app/portfolio/interface/__init__.py +0 -0
- quant_core/app/portfolio/interface/public/__init__.py +0 -0
- quant_core/app/portfolio/interface/public/portfolio.py +77 -0
- quant_core/app/portfolio/interface/public/simulation_account.py +16 -0
- quant_core/app/portfolio/ledger_schema.py +130 -0
- quant_core/app/portfolio/order_account_listener.py +36 -0
- quant_core/app/portfolio/portfolio_dependency.py +21 -0
- quant_core/app/portfolio/portfolio_schema.py +204 -0
- quant_core/app/portfolio/simulated_portfolio.py +427 -0
- quant_core/app/research/SPEC.md +57 -0
- quant_core/app/research/__init__.py +0 -0
- quant_core/app/research/adapter/__init__.py +0 -0
- quant_core/app/research/adapter/market_label_query.py +84 -0
- quant_core/app/research/interface/__init__.py +0 -0
- quant_core/app/research/interface/research_dataset.py +47 -0
- quant_core/app/research/interface/research_evaluation.py +19 -0
- quant_core/app/research/schema/__init__.py +0 -0
- quant_core/app/research/schema/comparison_schema.py +12 -0
- quant_core/app/research/schema/dataset_schema.py +112 -0
- quant_core/app/research/schema/research_schema.py +120 -0
- quant_core/app/research/service/__init__.py +0 -0
- quant_core/app/research/service/research_dataset_service.py +80 -0
- quant_core/app/research/service/research_evaluation_service.py +56 -0
- quant_core/app/research/service/research_service.py +171 -0
- quant_core/app/strategy/SPEC.md +215 -0
- quant_core/app/strategy/__init__.py +1 -0
- quant_core/app/strategy/constants.py +87 -0
- quant_core/app/strategy/exceptions.py +32 -0
- quant_core/app/strategy/interface/__init__.py +0 -0
- quant_core/app/strategy/interface/public/__init__.py +0 -0
- quant_core/app/strategy/interface/public/portfolio_construction.py +19 -0
- quant_core/app/strategy/interface/public/strategy.py +30 -0
- quant_core/app/strategy/interface/public/strategy_market_query.py +53 -0
- quant_core/app/strategy/interface/public/strategy_portfolio_reader.py +33 -0
- quant_core/app/strategy/interface/strategy_factor_reader.py +19 -0
- quant_core/app/strategy/interface/strategy_order_reader.py +14 -0
- quant_core/app/strategy/schema/__init__.py +0 -0
- quant_core/app/strategy/schema/portfolio_schema.py +28 -0
- quant_core/app/strategy/schema/portfolio_target.py +70 -0
- quant_core/app/strategy/schema/python_strategy_schema.py +94 -0
- quant_core/app/strategy/schema/screener_schema.py +51 -0
- quant_core/app/strategy/schema/signal_schema.py +33 -0
- quant_core/app/strategy/schema/strategy_publication_schema.py +32 -0
- quant_core/app/strategy/schema/strategy_schema.py +96 -0
- quant_core/app/strategy/service/__init__.py +0 -0
- quant_core/app/strategy/service/factor_top_n_strategy.py +103 -0
- quant_core/app/strategy/service/portfolio_construction_service.py +142 -0
- quant_core/app/strategy/service/python_strategy_service.py +65 -0
- quant_core/app/strategy/service/screener_service.py +77 -0
- quant_core/app/strategy/service/store_factor_reader.py +120 -0
- quant_core/app/strategy/service/strategy_market_view.py +120 -0
- quant_core/app/strategy/service/strategy_runtime_service.py +319 -0
- quant_core/app/strategy/service/strategy_scheduler.py +50 -0
- quant_core/app/strategy/strategies/__init__.py +7 -0
- quant_core/app/strategy/strategies/momentum_volume_breakout.py +157 -0
- quant_core/app/strategy/strategy_context.py +316 -0
- quant_core/app/strategy/strategy_dependency.py +101 -0
- quant_core/app/trading_runtime/SPEC.md +70 -0
- quant_core/app/trading_runtime/__init__.py +1 -0
- quant_core/app/trading_runtime/domain/__init__.py +0 -0
- quant_core/app/trading_runtime/replay/__init__.py +0 -0
- quant_core/app/trading_runtime/replay/daily_state_expand.py +49 -0
- quant_core/app/trading_runtime/replay/exchange_state_resolver.py +90 -0
- quant_core/app/trading_runtime/replay/market_runtime_service.py +573 -0
- quant_core/app/trading_runtime/replay/market_state_resolver.py +150 -0
- quant_core/app/trading_runtime/runtime_ports.py +64 -0
- quant_core/app/trading_runtime/runtime_schema.py +129 -0
- quant_core/app/trading_runtime/runtime_session.py +361 -0
- quant_core/app/trading_runtime/strategy_portfolio_adapter.py +58 -0
- quant_core/app/trading_runtime/trading_rule_book.py +37 -0
- quant_core/app/trading_runtime/trading_rule_query.py +12 -0
- quant_core/common/__init__.py +0 -0
- quant_core/common/exceptions/__init__.py +0 -0
- quant_core/common/exceptions/base.py +89 -0
- 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,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.
|