基于Python的开源量化交易平台开发框架
This report summarizes scanner evidence for vnpy/vnpy, a Python project with 45,797 GitHub stars. SynthScan examined 34,944 lines of code across 163 source files, recording 268 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 8.4 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 115 finding(s).
Are imports declared and package/API names verified? 86 finding(s).
Are wrappers, guards, and repeated structures necessary? 143 finding(s).
Which changes need focused human review? 268 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 268 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vnpy/trader/event.py | 5 | CODE | |
| LOW | vnpy/trader/utility.py | 16 | CODE | |
| LOW | vnpy/trader/utility.py | 16 | CODE | |
| LOW | vnpy/trader/converter.py | 19 | CODE | |
| LOW | vnpy/trader/logger.py | 8 | CODE | |
| LOW | vnpy/trader/logger.py | 8 | CODE | |
| LOW | vnpy/trader/logger.py | 8 | CODE | |
| LOW | vnpy/trader/logger.py | 8 | CODE | |
| LOW | vnpy/trader/logger.py | 8 | CODE | |
| LOW | vnpy/trader/app.py | 11 | CODE | |
| LOW | vnpy/trader/ui/__init__.py | 5 | CODE | |
| LOW | vnpy/trader/ui/__init__.py | 5 | CODE | |
| LOW | vnpy/trader/ui/__init__.py | 5 | CODE | |
| LOW | vnpy/trader/ui/__init__.py | 5 | CODE | |
| LOW | vnpy/trader/ui/__init__.py | 5 | CODE | |
| LOW | vnpy/trader/ui/__init__.py | 6 | CODE | |
| LOW | vnpy/chart/__init__.py | 5 | CODE | |
| LOW | vnpy/chart/__init__.py | 6 | CODE | |
| LOW | vnpy/chart/__init__.py | 6 | CODE | |
| LOW | vnpy/rpc/__init__.py | 5 | CODE | |
| LOW | vnpy/rpc/__init__.py | 6 | CODE | |
| LOW | vnpy/alpha/__init__.py | 5 | CODE | |
| LOW | vnpy/alpha/__init__.py | 6 | CODE | |
| LOW | vnpy/alpha/__init__.py | 6 | CODE | |
| LOW | vnpy/alpha/__init__.py | 6 | CODE | |
| LOW | vnpy/alpha/__init__.py | 6 | CODE | |
| LOW | vnpy/alpha/__init__.py | 7 | CODE | |
| LOW | vnpy/alpha/__init__.py | 8 | CODE | |
| LOW | vnpy/alpha/__init__.py | 8 | CODE | |
| LOW | vnpy/alpha/__init__.py | 9 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 211 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 226 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 226 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 226 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 226 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 226 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 233 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 233 | CODE | |
| LOW | vnpy/alpha/dataset/utility.py | 237 | CODE | |
| 26 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_engine.py | 50 | def test_main_engine_routes_send_and_cancel_to_gateway() -> None: | CODE |
| LOW | tests/test_engine.py | 138 | def test_oms_convert_order_request_splits_only_after_contract() -> None: | CODE |
| LOW | tests/test_engine.py | 175 | def test_send_order_keeps_one_gateway_order_when_conversion_splits() -> None: | CODE |
| LOW | tests/test_alpha_backtesting.py | 101 | def test_order_from_first_bar_fills_on_second_bar() -> None: | CODE |
| LOW | tests/test_alpha_backtesting.py | 123 | def test_long_and_short_cross_prices_use_open() -> None: | CODE |
| LOW | tests/test_alpha_backtesting.py | 161 | def test_long_fill_cash_deducts_turnover_and_rate() -> None: | CODE |
| LOW | tests/test_alpha_backtesting.py | 189 | def test_execute_trading_price_add_rounds_to_tick() -> None: | CODE |
| LOW | tests/test_alpha_backtesting.py | 209 | def test_missing_bar_is_filled_for_cross_but_hidden_from_on_bars() -> None: | CODE |
| LOW | tests/test_utility.py | 21 | def test_extract_and_generate_vt_symbol() -> None: | CODE |
| LOW | tests/test_utility.py | 33 | def test_round_floor_and_ceil_to_price_tick() -> None: | CODE |
| LOW | tests/test_utility.py | 41 | def test_bar_generator_builds_one_minute_bar_from_ticks() -> None: | CODE |
| LOW | tests/test_utility.py | 113 | def test_bar_generator_updates_same_minute_extremes_and_deltas() -> None: | CODE |
| LOW | tests/test_utility.py | 144 | def test_bar_generator_keeps_new_extreme_on_the_new_minute_bar() -> None: | CODE |
| LOW | tests/test_utility.py | 181 | def test_bar_generator_ignores_unchanged_day_extreme_on_a_new_minute() -> None: | CODE |
| LOW | tests/test_utility.py | 210 | def test_bar_generator_ignores_day_extreme_and_cumulative_totals_on_the_first_tick() -> None: | CODE |
| LOW | tests/test_utility.py | 231 | def test_bar_generator_ignores_zero_low_in_the_same_minute() -> None: | CODE |
| LOW | tests/test_utility.py | 259 | def test_bar_generator_ignores_zero_low_on_a_new_minute() -> None: | CODE |
| LOW | tests/test_utility.py | 291 | def test_bar_generator_accepts_negative_extremes_in_the_same_minute() -> None: | CODE |
| LOW | tests/test_utility.py | 314 | def test_bar_generator_accepts_negative_extremes_on_a_new_minute() -> None: | CODE |
| LOW | tests/test_utility.py | 343 | def test_bar_generator_ignores_cumulative_total_rollback() -> None: | CODE |
| LOW | tests/test_utility.py | 372 | def test_bar_generator_absorbs_a_day_high_that_breaks_the_previous_session() -> None: | CODE |
| LOW | tests/test_utility.py | 406 | def test_bar_generator_absorbs_a_day_low_that_breaks_the_previous_session() -> None: | CODE |
| LOW | tests/test_utility.py | 433 | def test_bar_generator_ignores_a_day_range_inside_the_previous_session() -> None: | CODE |
| LOW | tests/test_utility.py | 467 | def test_bar_generator_completes_five_minute_window() -> None: | CODE |
| LOW | tests/test_utility.py | 504 | def test_load_json_writes_empty_object_when_file_is_missing() -> None: | CODE |
| LOW | tests/test_utility.py | 516 | def test_extract_vt_symbol_rejects_unknown_exchange() -> None: | CODE |
| LOW | tests/test_event.py | 6 | def test_event_engine_calls_registered_handler_once() -> None: | CODE |
| LOW | tests/test_data_services.py | 9 | def test_get_datafeed_empty_name_returns_base_singleton() -> None: | CODE |
| LOW | tests/test_data_services.py | 28 | def test_get_datafeed_missing_module_returns_base_singleton() -> None: | CODE |
| LOW | tests/test_data_services.py | 47 | def test_get_database_missing_module_falls_back_to_sqlite() -> None: | CODE |
| LOW | tests/test_object.py | 21 | def test_vt_symbol_joins_symbol_and_exchange() -> None: | CODE |
| LOW | tests/test_object.py | 60 | def test_order_request_builds_order_identity() -> None: | CODE |
| LOW | tests/test_object.py | 87 | def test_trade_and_quote_ids_include_gateway() -> None: | CODE |
| LOW | tests/test_object.py | 122 | def test_position_and_account_ids() -> None: | CODE |
| LOW | tests/test_object.py | 142 | def test_order_is_active_for_working_statuses() -> None: | CODE |
| LOW | tests/test_converter.py | 80 | def test_shfe_close_splits_today_then_yesterday() -> None: | CODE |
| LOW | tests/test_converter.py | 103 | def test_shfe_close_uses_yesterday_when_today_is_empty() -> None: | CODE |
| LOW | tests/test_converter.py | 112 | def test_shfe_close_subtracts_frozen_volume() -> None: | CODE |
| LOW | tests/test_converter.py | 130 | def test_shfe_short_close_uses_long_position() -> None: | CODE |
| LOW | tests/test_converter.py | 146 | def test_dce_close_stays_close() -> None: | CODE |
| LOW | tests/test_converter.py | 160 | def test_net_position_and_missing_contract_skip_conversion() -> None: | CODE |
| LOW | tests/test_converter.py | 171 | def test_ine_close_splits_today_then_yesterday() -> None: | CODE |
| LOW | tests/test_converter.py | 190 | def test_lock_dce_opens_when_opponent_has_today_position() -> None: | CODE |
| LOW | tests/test_converter.py | 217 | def test_lock_shfe_closes_yesterday_then_opens() -> None: | CODE |
| LOW | tests/test_converter.py | 234 | def test_net_shfe_closes_today_yesterday_then_opens() -> None: | CODE |
| LOW | tests/test_converter.py | 251 | def test_net_dce_closes_position_then_opens() -> None: | CODE |
| LOW | tests/test_converter.py | 281 | def test_update_trade_shfe_close_reduces_yesterday_only() -> None: | CODE |
| LOW | tests/test_converter.py | 295 | def test_update_trade_dce_close_reduces_today_then_yesterday() -> None: | CODE |
| LOW | tests/test_converter.py | 309 | def test_calculate_frozen_close_fills_today_then_yesterday() -> None: | CODE |
| LOW | tests/test_rpc.py | 78 | def test_remote_call_returns_value_and_wraps_server_exception() -> None: | CODE |
| LOW | tests/test_rpc.py | 98 | def test_empty_subscription_delivers_payload_and_hides_heartbeat() -> None: | CODE |
| LOW | tests/test_rpc.py | 114 | def test_topic_subscription_filters_prefixes_and_keeps_heartbeat() -> None: | CODE |
| LOW | tests/test_rpc.py | 137 | def test_publish_pickling_error_does_not_block_later_messages() -> None: | CODE |
| LOW | tests/alpha/test_dataproxy.py | 40 | def test_dataproxy_scalar_and_reverse_operations() -> None: | CODE |
| LOW | tests/alpha/test_dataproxy.py | 58 | def test_dataproxy_between_proxy_operations() -> None: | CODE |
| LOW | tests/alpha/test_dataproxy.py | 73 | def test_dataproxy_unary_operations() -> None: | CODE |
| LOW | tests/alpha/test_dataproxy.py | 82 | def test_dataproxy_scalar_comparisons() -> None: | CODE |
| LOW | tests/alpha/test_dataproxy.py | 95 | def test_dataproxy_between_proxy_comparisons() -> None: | CODE |
| LOW | tests/alpha/test_expression.py | 47 | def test_delay_mean_and_rank_on_tiny_frame() -> None: | CODE |
| LOW | tests/alpha/test_cs_function.py | 43 | def test_cs_rank_matches_worldquant() -> None: | CODE |
| 14 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/candle_chart/run.py | 38 | def update_bar() -> None: | CODE |
| LOW | vnpy/trader/optimize.py | 75 | def set_target(self, target_name: str) -> None: | CODE |
| LOW | vnpy/trader/utility.py | 211 | def update_tick(self, tick: TickData) -> None: | CODE |
| LOW | vnpy/trader/utility.py | 270 | def update_bar(self, bar: BarData) -> None: | CODE |
| LOW | vnpy/trader/utility.py | 281 | def update_bar_minute_window(self, bar: BarData) -> None: | CODE |
| LOW | vnpy/trader/utility.py | 321 | def update_bar_hour_window(self, bar: BarData) -> None: | CODE |
| LOW | vnpy/trader/utility.py | 444 | def update_bar_daily_window(self, bar: BarData) -> None: | CODE |
| LOW | vnpy/trader/utility.py | 525 | def update_bar(self, bar: BarData) -> None: | CODE |
| LOW | vnpy/trader/converter.py | 52 | def update_position(self, position: PositionData) -> None: | CODE |
| LOW | vnpy/trader/converter.py | 65 | def update_order(self, order: OrderData) -> None: | CODE |
| LOW | vnpy/trader/converter.py | 77 | def update_order_request(self, req: OrderRequest, vt_orderid: str) -> None: | CODE |
| LOW | vnpy/trader/converter.py | 88 | def update_trade(self, trade: TradeData) -> None: | CODE |
| LOW | vnpy/trader/converter.py | 353 | def update_position(self, position: PositionData) -> None: | CODE |
| LOW | vnpy/trader/converter.py | 364 | def update_trade(self, trade: TradeData) -> None: | CODE |
| LOW | vnpy/trader/converter.py | 375 | def update_order(self, order: OrderData) -> None: | CODE |
| LOW | vnpy/trader/converter.py | 386 | def update_order_request(self, req: OrderRequest, vt_orderid: str) -> None: | CODE |
| LOW | vnpy/trader/logger.py | 16 | __all__ = [ | CODE |
| LOW | vnpy/trader/engine.py | 591 | def update_order_request(self, req: OrderRequest, vt_orderid: str, gateway_name: str) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 78 | def set_content(self, content: Any, data: Any) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 112 | def set_content(self, content: Any, data: Any) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 131 | def set_content(self, content: Any, data: Any) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 182 | def set_content(self, content: Any, data: Any) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 208 | def set_content(self, content: datetime | None, data: Any) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 241 | def set_content(self, content: Any, data: Any) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 385 | def update_old_row(self, data: Any) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 979 | def set_vt_symbol(self) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 1099 | def update_with_cell(self, cell: BaseCell) -> None: | CODE |
| LOW | vnpy/trader/ui/widget.py | 1365 | def update_setting(self) -> None: | STRING |
| LOW | vnpy/trader/ui/__init__.py | 9 | __all__ = [ | CODE |
| LOW | vnpy/chart/widget.py | 167 | def update_history(self, history: list[BarData]) -> None: | CODE |
| LOW | vnpy/chart/widget.py | 181 | def update_bar(self, bar: BarData) -> None: | CODE |
| LOW | vnpy/chart/widget.py | 196 | def _update_plot_limits(self) -> None: | CODE |
| LOW | vnpy/chart/widget.py | 214 | def _update_x_range(self) -> None: | CODE |
| LOW | vnpy/chart/widget.py | 225 | def _update_y_range(self) -> None: | CODE |
| LOW | vnpy/chart/widget.py | 483 | def _update_line(self) -> None: | CODE |
| LOW | vnpy/chart/widget.py | 499 | def _update_label(self) -> None: | CODE |
| LOW | vnpy/chart/widget.py | 528 | def update_info(self) -> None: | CODE |
| LOW | vnpy/chart/widget.py | 576 | def _update_after_move(self) -> None: | CODE |
| LOW | vnpy/chart/__init__.py | 9 | __all__ = [ | CODE |
| LOW | vnpy/chart/manager.py | 29 | def update_history(self, history: list[BarData]) -> None: | CODE |
| LOW | vnpy/chart/manager.py | 51 | def update_bar(self, bar: BarData) -> None: | CODE |
| LOW | vnpy/chart/item.py | 82 | def update_history(self, history: list[BarData]) -> None: | CODE |
| LOW | vnpy/chart/item.py | 96 | def update_bar(self, bar: BarData) -> None: | CODE |
| LOW | vnpy/rpc/__init__.py | 9 | __all__ = [ | CODE |
| LOW | vnpy/alpha/__init__.py | 12 | __all__ = [ | CODE |
| LOW | vnpy/alpha/dataset/__init__.py | 20 | __all__ = [ | CODE |
| LOW | vnpy/alpha/dataset/template.py | 83 | def set_label(self, expression: str) -> None: | CODE |
| LOW | vnpy/alpha/model/__init__.py | 8 | __all__ = [ | CODE |
| LOW | vnpy/alpha/strategy/backtesting.py | 588 | def update_daily_close(self, bars: dict[str, BarData], dt: datetime) -> None: | CODE |
| LOW | vnpy/alpha/strategy/backtesting.py | 913 | def update_close_price(self, close_price: float) -> None: | CODE |
| LOW | vnpy/alpha/strategy/backtesting.py | 982 | def update_close_prices(self, close_prices: dict[str, float]) -> None: | CODE |
| LOW | vnpy/alpha/strategy/__init__.py | 9 | __all__ = [ | CODE |
| LOW | vnpy/alpha/strategy/template.py | 64 | def update_trade(self, trade: TradeData) -> None: | CODE |
| LOW | vnpy/alpha/strategy/template.py | 73 | def update_order(self, order: OrderData) -> None: | CODE |
| LOW | vnpy/alpha/strategy/template.py | 137 | def set_target(self, vt_symbol: str, target: float) -> None: | CODE |
| LOW | vnpy/event/__init__.py | 8 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vnpy/trader/utility.py | 314 | # Check if window bar completed | COMMENT |
| LOW | vnpy/trader/utility.py | 476 | # Check if daily bar completed | COMMENT |
| LOW | vnpy/alpha/lab.py | 127 | # Check if file exists | COMMENT |
| LOW | vnpy/alpha/lab.py | 133 | # Open file | COMMENT |
| LOW | vnpy/alpha/lab.py | 200 | # Check if file exists | COMMENT |
| LOW | vnpy/alpha/lab.py | 206 | # Open file | COMMENT |
| LOW | vnpy/alpha/model/models/lasso_model.py | 71 | # Check if model exists | COMMENT |
| LOW | vnpy/alpha/model/models/lgb_model.py | 91 | # Check if model exists | COMMENT |
| LOW | vnpy/alpha/model/models/mlp_model.py | 165 | # Check if early stopping condition is met | COMMENT |
| LOW | vnpy/alpha/strategy/backtesting.py | 281 | # Check if bankruptcy occurred | COMMENT |
| LOW | vnpy/alpha/strategy/backtesting.py | 303 | # Check if bankruptcy occurred | COMMENT |
| LOW | vnpy/alpha/strategy/backtesting.py | 359 | # Output results | COMMENT |
| LOW | vnpy/alpha/strategy/backtesting.py | 621 | # Check if historical data for the specified time of the contract is obtained | COMMENT |
| LOW | vnpy/alpha/strategy/strategies/equity_demo_strategy.py | 76 | if self.holding_days[vt_symbol] < self.min_days: # Check if holding period exceeds threshold | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/community/app/portfolio_strategy.md | 0 | load historical bar data for initializing strategy. | STRING |
| HIGH | docs/community/app/cta_strategy.md | 0 | load historical bar data for initializing strategy. | STRING |
| HIGH | docs/community/app/spread_trading.md | 0 | load historical bar data for initializing strategy. | STRING |
| HIGH | docs/elite/strategy/elite_spreadtrading.md | 0 | load historical bar data for initializing strategy. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_alpha101.py | 9 | CODE | |
| LOW | vnpy/trader/converter.py | 88 | CODE | |
| LOW | vnpy/trader/converter.py | 131 | CODE | |
| LOW | vnpy/trader/converter.py | 411 | CODE | |
| LOW | vnpy/trader/wechat.py | 149 | CODE | |
| LOW | vnpy/trader/engine.py | 658 | CODE | |
| LOW | vnpy/trader/engine.py | 829 | CODE | |
| LOW | vnpy/trader/ui/widget.py | 405 | CODE | |
| LOW | vnpy/trader/ui/widget.py | 675 | CODE | |
| LOW | vnpy/trader/ui/widget.py | 1099 | CODE | |
| LOW | vnpy/trader/ui/widget.py | 1222 | CODE | |
| LOW | vnpy/trader/ui/widget.py | 1422 | CODE | |
| LOW | vnpy/chart/widget.py | 258 | CODE | |
| LOW | vnpy/alpha/lab.py | 317 | CODE | |
| LOW | vnpy/alpha/dataset/ts_function.py | 463 | CODE | |
| LOW | vnpy/alpha/strategy/template.py | 141 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | vnpy/trader/engine.py | 680 | except Empty: | CODE |
| HIGH | vnpy/trader/engine.py | 835 | except Empty: | CODE |
| HIGH | vnpy/event/engine.py | 65 | except Empty: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/conf.py | 1 | # Configuration file for the Sphinx documentation builder. | COMMENT |
| LOW | docs/conf.py | 61 | # The language for content autogenerated by Sphinx. Refer to documentation | COMMENT |
| LOW | docs/conf.py | 101 | 'show_related': True | COMMENT |
| LOW | docs/conf.py | 141 | latex_elements = { | COMMENT |
| LOW | examples/veighna_trader/run.py | 21 | # from vnpy_rohon import RohonGateway | COMMENT |
| LOW | examples/veighna_trader/run.py | 61 | # main_engine.add_gateway(ToraOptionGateway) | COMMENT |
| LOW | vnpy/__init__.py | 1 | # The MIT License (MIT) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vnpy/trader/engine.py | 677 | except Exception: | CODE |
| LOW | vnpy/trader/ui/widget.py | 1471 | except Exception as exc: | CODE |
| LOW | vnpy/rpc/server.py | 122 | except Exception as e: # noqa | CODE |
| LOW | vnpy/alpha/strategy/backtesting.py | 185 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vnpy/trader/optimize.py | 150 | CODE | |
| LOW | vnpy/alpha/model/models/mlp_model.py | 40 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | vnpy/alpha/dataset/processor.py | 41 | method: str, # robust/zscore | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vnpy/alpha/dataset/template.py | 175 | def process_data(self) -> None: | CODE |