Stock AI Trader: 1-stop platform for learning, sim & live trading. Covers: stock basics, strategies, LLMs, factor mining, ML/DL/RL, graph nets, HFT, C++ deploy & JoinQuant code. 股票AI操盘手:一站式学习、模拟、实盘平台。涵盖:股票基础、策略、大模型、因子挖掘、机器学习/深度学习/强化学习、图网络、高频交易、C++部署及聚宽代码。
This report summarizes scanner evidence for charliedream1/ai_quant_trade, a Jupyter Notebook project with 6,602 GitHub stars. SynthScan examined 52,067 lines of code across 449 source files, recording 791 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 25.8 (Elevated 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? 355 finding(s).
Are imports declared and package/API names verified? 26 finding(s).
Are wrappers, guards, and repeated structures necessary? 596 finding(s).
Which changes need focused human review? 791 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 791 distinct pattern matches across 13 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 |
|---|---|---|---|---|
| MEDIUM | egs_data/宏观经济/fred/fred_demo.py | 34 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/宏观经济/fred/fred_demo.py | 36 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/宏观经济/fred/fred_demo.py | 90 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/宏观经济/fred/fred_demo.py | 92 | # ============================================================ | COMMENT |
| MEDIUM⚡ | egs_data/宏观经济/fred/fred_demo.py | 119 | # ============================================================ | COMMENT |
| MEDIUM⚡ | egs_data/宏观经济/fred/fred_demo.py | 121 | # ============================================================ | COMMENT |
| MEDIUM⚡ | egs_data/股票/yfinance/yfinance_data.py | 53 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/yfinance/yfinance_data.py | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/yfinance/yfinance_data.py | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/yfinance/yfinance_data.py | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/yfinance/yfinance_data.py | 284 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/yfinance/yfinance_data.py | 286 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/baostock/get_stock_data.py | 53 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/baostock/get_stock_data.py | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/baostock/get_stock_data.py | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/baostock/get_stock_data.py | 119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/baostock/get_stock_data.py | 154 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/baostock/get_stock_data.py | 156 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/baostock/get_stock_data.py | 179 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/baostock/get_stock_data.py | 181 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/stooq/stooq_demo.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/stooq/stooq_demo.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/pytdx/pytdx_demo.py | 45 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/pytdx/pytdx_demo.py | 47 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/pytdx/pytdx_demo.py | 259 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/pytdx/pytdx_demo.py | 261 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/tushare/tushare_demo.py | 48 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/tushare/tushare_demo.py | 50 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/tushare/tushare_demo.py | 148 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | egs_data/股票/tushare/tushare_demo.py | 151 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/tushare/tushare_demo.py | 231 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/tushare/tushare_demo.py | 233 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/akshare/akshare_demo.py | 142 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | egs_data/股票/akshare/akshare_demo.py | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …data/股票/data_loader_framework/data_loader_base_demo.py | 47 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …data/股票/data_loader_framework/data_loader_base_demo.py | 49 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …data/股票/data_loader_framework/data_loader_base_demo.py | 95 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …data/股票/data_loader_framework/data_loader_base_demo.py | 97 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …data/股票/data_loader_framework/data_loader_base_demo.py | 404 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …data/股票/data_loader_framework/data_loader_base_demo.py | 406 | # =========================================================================== | COMMENT |
| MEDIUM | …data/股票/data_loader_framework/data_loader_base_demo.py | 151 | # =========================================================================== | COMMENT |
| MEDIUM | …data/股票/data_loader_framework/data_loader_base_demo.py | 153 | # =========================================================================== | COMMENT |
| MEDIUM | …data/股票/data_loader_framework/data_loader_base_demo.py | 198 | # =========================================================================== | COMMENT |
| MEDIUM | …data/股票/data_loader_framework/data_loader_base_demo.py | 200 | # =========================================================================== | COMMENT |
| MEDIUM | …data/股票/data_loader_framework/data_loader_base_demo.py | 254 | # =========================================================================== | COMMENT |
| MEDIUM | …data/股票/data_loader_framework/data_loader_base_demo.py | 256 | # =========================================================================== | COMMENT |
| MEDIUM | egs_data/新闻/news_api/newsapi_demo.py | 34 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/news_api/newsapi_demo.py | 36 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/news_api/newsapi_demo.py | 113 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/news_api/newsapi_demo.py | 115 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/finnhub/finnhub_demo.py | 34 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/finnhub/finnhub_demo.py | 36 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/finnhub/finnhub_demo.py | 89 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/finnhub/finnhub_demo.py | 91 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/xueqiu/xueqiu_demo.py | 35 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/xueqiu/xueqiu_demo.py | 37 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/xueqiu/xueqiu_demo.py | 208 | # ============================================================ | COMMENT |
| MEDIUM | egs_data/新闻/xueqiu/xueqiu_demo.py | 210 | # ============================================================ | COMMENT |
| MEDIUM⚡ | …cel_stock_monitor/v2/video_generator/generate_video.py | 188 | # ============================================================ | COMMENT |
| MEDIUM⚡ | …cel_stock_monitor/v2/video_generator/generate_video.py | 190 | # ============================================================ | COMMENT |
| 100 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/log/log_util.py | 65 | except Exception as e: | CODE |
| LOW⚡ | zz_scripts/check_docs_build.py | 65 | except Exception as e: | CODE |
| LOW⚡ | zz_scripts/check_docs_build.py | 72 | except Exception as e: | CODE |
| LOW | …train/a01_unsloth_stock_forcaster/a04_train/run_e2e.py | 24 | except Exception as e: | CODE |
| LOW | …train/a01_unsloth_stock_forcaster/a04_train/run_e2e.py | 46 | except Exception as e: | CODE |
| LOW | …train/a01_unsloth_stock_forcaster/a04_train/run_e2e.py | 61 | except Exception as e: | CODE |
| LOW | …train/a01_unsloth_stock_forcaster/a04_train/run_e2e.py | 75 | except Exception as e: | CODE |
| MEDIUM | …train/a01_unsloth_stock_forcaster/a04_train/run_e2e.py | 21 | def _has(modname, attr): | CODE |
| MEDIUM | …train/a01_unsloth_stock_forcaster/a04_train/run_e2e.py | 58 | def test_trl_sft(): | CODE |
| LOW | egs_data/期货/futures/futures_demo.py | 82 | except Exception as e: | CODE |
| LOW⚡ | egs_data/宏观经济/fred/fred_demo.py | 127 | except Exception as e: | CODE |
| LOW | egs_data/宏观经济/world_bank/world_bank_demo.py | 89 | except Exception as e: | CODE |
| LOW | egs_data/基金/fund/fund_demo.py | 76 | except Exception as e: | CODE |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 134 | except Exception as e: | CODE |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 157 | except Exception as e: | CODE |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 178 | except Exception as e: | CODE |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 208 | except Exception as e: | CODE |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 232 | except Exception as e: | CODE |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 258 | except Exception as e: | CODE |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 320 | except Exception as e: | CODE |
| LOW | egs_data/股票/qlib/qlib_demo.py | 99 | except Exception as e: | CODE |
| LOW⚡ | egs_data/股票/baostock/get_stock_data.py | 150 | except Exception as e: | CODE |
| LOW | egs_data/股票/baostock/get_stock_data.py | 211 | except Exception as e: | CODE |
| LOW | egs_data/股票/baostock/get_stock_data.py | 246 | except Exception as e: | CODE |
| LOW | egs_data/股票/baostock/get_stock_data.py | 275 | except Exception as e: | CODE |
| LOW | egs_data/股票/baostock/get_stock_data.py | 298 | except Exception as e: | CODE |
| LOW | egs_data/股票/baostock/get_stock_data.py | 320 | except Exception as e: | CODE |
| LOW | egs_data/股票/stooq/stooq_demo.py | 115 | except Exception as e: | CODE |
| LOW | egs_data/股票/stooq/stooq_demo.py | 143 | except Exception: | CODE |
| LOW⚡ | egs_data/股票/stooq/stooq_demo.py | 162 | except Exception as e: | CODE |
| LOW | egs_data/股票/stooq/stooq_demo.py | 195 | except Exception: | CODE |
| LOW | egs_data/股票/stooq/stooq_demo.py | 271 | except Exception as e: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 40 | except Exception as e: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 55 | except Exception as e: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 71 | except Exception as e2: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 85 | except Exception as e: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 96 | except Exception as e2: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 108 | except Exception as e: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 122 | except Exception as e: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 139 | except Exception as e2: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 153 | except Exception as e: | CODE |
| LOW | egs_data/股票/efinance/efinance_demo.py | 165 | except Exception as e: | CODE |
| LOW | egs_data/股票/wind/basic_data/src/tools/log/log_util.py | 65 | except Exception as e: | CODE |
| LOW | egs_data/股票/pytdx/pytdx_demo.py | 122 | except Exception as e: | CODE |
| LOW | egs_data/股票/pytdx/pytdx_demo.py | 135 | except Exception: | CODE |
| LOW | egs_data/股票/tushare/tushare_demo.py | 100 | except Exception as e: | CODE |
| LOW⚡ | egs_data/股票/tushare/tushare_demo.py | 227 | except Exception as e: | CODE |
| LOW | egs_data/股票/tushare/tushare_demo.py | 265 | except Exception as e: | CODE |
| LOW⚡ | egs_data/股票/akshare/akshare_demo.py | 138 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 41 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 60 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 72 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 85 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 98 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 111 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 124 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 164 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 187 | except Exception as e: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 219 | except Exception: | CODE |
| LOW | egs_data/股票/akshare/akshare_demo.py | 221 | except Exception as e: | CODE |
| 161 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | unit_test/test_momentum_rotation.py | 83 | def test_tushare_stock_list_skips_stock_basic_call(self): | CODE |
| LOW | unit_test/test_momentum_rotation.py | 101 | def test_normalize_tushare_numeric_trade_dates(self): | CODE |
| LOW | unit_test/test_momentum_rotation.py | 117 | def test_monthly_rebalance_uses_previous_day_scores(self): | CODE |
| LOW | unit_test/test_momentum_rotation.py | 145 | def test_top_n_positions_and_exposure_are_capped(self): | CODE |
| LOW | unit_test/test_momentum_rotation.py | 175 | def test_trailing_stop_exits_without_capping_winners(self): | CODE |
| LOW | unit_test/test_momentum_rotation.py | 205 | def test_transaction_costs_reduce_final_equity(self): | CODE |
| LOW | unit_test/test_momentum_rotation.py | 240 | def test_csv_fixture_smoke_outputs_reports_without_tushare_token(self): | CODE |
| LOW | unit_test/test_momentum_rotation.py | 259 | def test_cli_runs_from_strategy_directory(self): | CODE |
| LOW | tools/file_io/load_csv.py | 24 | def get_self_select_stock_lst(file_path: str) -> list: | CODE |
| LOW⚡ | zz_scripts/check_docs_build.py | 60 | def check_mkdocs_yml_parseable() -> list[str]: | CODE |
| LOW | zz_scripts/check_docs_build.py | 120 | def check_english_nav_translations_exist() -> list[str]: | CODE |
| LOW | zz_scripts/check_docs_build.py | 135 | def iter_publishable_default_markdown() -> list[Path]: | CODE |
| LOW | zz_scripts/check_docs_build.py | 147 | def check_all_publishable_markdown_translated() -> list[str]: | CODE |
| LOW | zz_scripts/check_docs_build.py | 175 | def check_no_legacy_runtime_language_switch() -> list[str]: | CODE |
| LOW | zz_scripts/check_docs_build.py | 197 | def check_no_dot_prefixed_docs_dirs() -> list[str]: | CODE |
| LOW | zz_scripts/check_docs_build.py | 213 | def check_extra_assets_listed() -> list[str]: | CODE |
| LOW | …train/a01_unsloth_stock_forcaster/a04_train/run_e2e.py | 41 | def test_transformers_chat_template(): | CODE |
| LOW⚡ | …a01_unsloth_stock_forcaster/a05_test/tests/test_all.py | 11 | def test_make_dirs_creates_nested_dirs(tmp_path): | CODE |
| LOW⚡ | …a01_unsloth_stock_forcaster/a05_test/tests/test_all.py | 19 | def test_clean_dirs_removes_dir(tmp_path): | CODE |
| LOW⚡ | …a01_unsloth_stock_forcaster/a05_test/tests/test_all.py | 28 | def test_batch_test_transformers_imports_cleanly(): | CODE |
| LOW | …a01_unsloth_stock_forcaster/a05_test/tests/test_all.py | 44 | def test_simple_test_transformers_imports_cleanly(): | CODE |
| LOW⚡ | egs_data/股票/wind/basic_data/tests/test_all.py | 30 | def test_parse_val_extracts_fields(): | CODE |
| LOW⚡ | egs_data/股票/wind/basic_data/tests/test_all.py | 41 | def test_make_dirs_idempotent(tmp_path): | CODE |
| LOW⚡ | egs_data/股票/wind/basic_data/tests/test_all.py | 51 | def test_wind_data_loader_construction(): | CODE |
| LOW⚡ | egs_data/股票/wind/basic_data/tests/test_all.py | 60 | def test_dump_data_module_importable(): | CODE |
| LOW⚡ | egs_data/股票/wind/basic_data/tests/test_all.py | 69 | def test_save_index_data_module_importable(): | CODE |
| LOW | egs_data/股票/wind/basic_data/tests/test_all.py | 81 | def test_save_market_data_module_importable(): | CODE |
| LOW | …_data/股票/wind/basic_data/src/tools/file_io/load_csv.py | 24 | def get_self_select_stock_lst(file_path: str) -> list: | CODE |
| LOW⚡ | …cel_stock_monitor/v2/video_generator/generate_video.py | 711 | def render_sentiment_viz_frame(scene: dict, progress: float) -> Image.Image: | CODE |
| LOW⚡ | …cel_stock_monitor/v2/video_generator/generate_video.py | 839 | def render_stock_pool_demo_frame(scene: dict, progress: float) -> Image.Image: | CODE |
| LOW⚡ | …cel_stock_monitor/v2/video_generator/generate_video.py | 940 | def render_excel_showcase_frame(scene: dict, progress: float) -> Image.Image: | CODE |
| LOW⚡ | …cel_stock_monitor/v2/video_generator/generate_video.py | 1094 | def render_fallback_chain_frame(scene: dict, progress: float) -> Image.Image: | CODE |
| LOW⚡ | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 22 | def test_normalize_codes_removes_postfix(): | CODE |
| LOW⚡ | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 29 | def test_normalize_codes_removes_market_prefix(): | CODE |
| LOW⚡ | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 36 | def test_normalize_codes_handles_empty(): | CODE |
| LOW⚡ | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 42 | def test_detect_market_prefix_sh(): | CODE |
| LOW⚡ | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 49 | def test_detect_market_prefix_sz(): | CODE |
| LOW⚡ | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 56 | def test_detect_market_prefix_bj(): | CODE |
| LOW⚡ | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 85 | def test_backup_sources_initialization(): | CODE |
| LOW⚡ | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 93 | def test_backup_sources_lazy_loading_akshare(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 109 | def test_akshare_stock_realtime_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 140 | def test_akshare_stock_realtime_empty_codes(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 147 | def test_akshare_stock_realtime_failure(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 159 | def test_akshare_news_cls_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 198 | def test_eastmoney_stock_realtime_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 224 | def test_eastmoney_money_flow_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 248 | def test_eastmoney_guba_hot_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 267 | def test_tencent_stock_realtime_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 294 | def test_netease_kline_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 323 | def test_efinance_stock_realtime_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 352 | def test_backup_source_disabled_when_lib_missing(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 363 | def test_akshare_north_money_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 381 | def test_akshare_weibo_sentiment_with_mock(): | CODE |
| LOW | …de/excel_stock_monitor/v2/tests/test_backup_sources.py | 398 | def test_akshare_news_sentiment_with_mock(): | CODE |
| LOW⚡ | …s_aide/excel_stock_monitor/v2/tests/test_stock_pool.py | 24 | def test_pinyin_first_letters_basic(): | CODE |
| LOW⚡ | …s_aide/excel_stock_monitor/v2/tests/test_stock_pool.py | 33 | def test_pinyin_first_letters_unknown_char(): | CODE |
| LOW⚡ | …s_aide/excel_stock_monitor/v2/tests/test_stock_pool.py | 53 | def test_fetch_from_akshare_success(): | CODE |
| LOW⚡ | …s_aide/excel_stock_monitor/v2/tests/test_stock_pool.py | 125 | def test_save_and_load_cache_fresh(): | CODE |
| LOW⚡ | …s_aide/excel_stock_monitor/v2/tests/test_stock_pool.py | 167 | def test_load_cache_not_exist(): | CODE |
| LOW⚡ | …s_aide/excel_stock_monitor/v2/tests/test_stock_pool.py | 174 | def test_load_cache_corrupted(): | CODE |
| 123 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/__init__.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/parse_options.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/file_io/load_csv.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/file_io/fold_excel_rows.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/file_io/__init__.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/file_io/find_files.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/file_io/make_nd_clean_dirs.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/date_time/chinese_calendar_check.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/date_time/query_time.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/date_time/__init__.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/date_time/date_format_check.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/plots/__init__.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/plots/trades_on_k_line.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tools/plots/trades_on_k_line.py | 121 | # | COMMENT |
| LOW | …_hot_topic_report/v1_proto_internet/generate_report.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …a01_unsloth_stock_forcaster/a04_train/requirements.txt | 21 | # 导致以下 CVE 暂无法升级修复(训练环境,非生产对外服务): | COMMENT |
| LOW | …ain/a01_unsloth_stock_forcaster/a04_train/train_sft.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …ain/a01_unsloth_stock_forcaster/a04_train/train_sft.py | 141 | # save lora model | COMMENT |
| LOW | …ain/a01_unsloth_stock_forcaster/a04_train/train_sft.py | 161 | # model.save_pretrained_gguf("model", tokenizer, quantization_method = "q4_k_m") | COMMENT |
| LOW | …stock_forcaster/a01_download_mdl/hf_mirror_download.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …tock_forcaster/a01_download_mdl/modelscope_download.sh | 1 | #modelscope download --model 'unsloth/Qwen3-0.6B-unsloth-bnb-4bit' \ | COMMENT |
| LOW | …ck_forcaster/a03_data_process/process_fin_r1_reason.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …rcaster/a03_data_process/process_fin_gpt_forecaster.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …th_stock_forcaster/a05_test/batch_test_transformers.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …nsloth_stock_forcaster/a05_test/simple_test_unsloth.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …nsloth_stock_forcaster/a05_test/simple_test_unsloth.py | 61 | max_new_tokens = 2256, # Increase for longer outputs! | COMMENT |
| LOW | …nsloth_stock_forcaster/a05_test/simple_test_unsloth.py | 81 | # # ret_ids 是 Tensor,batch_size=1 时取第一个序列并解码 | COMMENT |
| LOW | …h_stock_forcaster/a05_test/simple_test_transformers.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …aster/a05_test/src/tools/file_io/make_nd_clean_dirs.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/期货/futures/futures_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/宏观经济/fred/fred_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/宏观经济/world_bank/world_bank_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/基金/fund/fund_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/yfinance/pandas_datareader_data.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/qlib/qlib_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/baostock/get_stock_data.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/stooq/stooq_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/efinance/efinance_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/wind/basic_data/save_index_data.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/wind/basic_data/save_market_data.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/wind/basic_data/save_market_data.py | 61 | default=[], | COMMENT |
| LOW | …a/股票/wind/basic_data/src/data_io/wind/account_login.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …_data/股票/wind/basic_data/src/data_io/wind/dump_data.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …_data/股票/wind/basic_data/src/data_io/wind/dump_data.py | 221 | COMMENT | |
| LOW | …a/股票/wind/basic_data/src/data_io/wind/query_rt_data.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/wind/basic_data/src/data_io/wind/utils.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …_data/股票/wind/basic_data/src/tools/file_io/load_csv.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …ind/basic_data/src/tools/file_io/make_nd_clean_dirs.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/pytdx/pytdx_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/tushare/tushare_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/eastmoney/eastmoney_news_guba.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/eastmoney/eastmoney_api.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/tencent/tencent_api.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/cninfo/cninfo_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/netease/netease_api.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/股票/akshare/akshare_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …data/股票/data_loader_framework/data_loader_base_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/新闻/news_api/newsapi_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | egs_data/新闻/gdelt/gdelt_demo.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| 57 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | zz_scripts/check_docs_build.py | 74 | except ImportError: | CODE |
| HIGH | egs_data/股票/pytdx/pytdx_demo.py | 135 | except Exception: | CODE |
| HIGH | egs_data/新闻/xueqiu/xueqiu_demo.py | 85 | except Exception: | CODE |
| HIGH | egs_data/新闻/xueqiu/xueqiu_demo.py | 61 | except Exception: | CODE |
| HIGH | egs_data/电子币/cryptocompare/cryptocompare_demo.py | 63 | except Exception: | CODE |
| HIGH | egs_aide/excel_stock_monitor/v2/main.py | 246 | except Exception: | CODE |
| HIGH | egs_aide/excel_stock_monitor/v2/main.py | 236 | except Exception: | CODE |
| HIGH | egs_aide/excel_stock_monitor/v2/main.py | 207 | except Exception: | CODE |
| HIGH | egs_aide/excel_stock_monitor/v2/main.py | 215 | except Exception: | CODE |
| HIGH | …ck_monitor/v2/video_generator/capture_excel_screens.py | 25 | except Exception: | CODE |
| HIGH | …ck_monitor/v2/video_generator/capture_excel_screens.py | 64 | except Exception: | CODE |
| HIGH | …cel_stock_monitor/v2/video_generator/generate_video.py | 1260 | except Exception: | CODE |
| HIGH | …cel_stock_monitor/v2/video_generator/generate_video.py | 377 | except Exception: | CODE |
| HIGH | …cel_stock_monitor/v2/video_generator/generate_video.py | 404 | except Exception: | CODE |
| HIGH | …ck_monitor/v2/src/excel_monitor/sheets/custom_watch.py | 58 | except Exception: | CODE |
| HIGH | …ck_monitor/v2/src/excel_monitor/sheets/custom_watch.py | 89 | except Exception: | CODE |
| HIGH | …ck_monitor/v2/src/excel_monitor/sheets/custom_watch.py | 121 | except Exception: | CODE |
| HIGH | …ck_monitor/v2/src/excel_monitor/sheets/custom_watch.py | 265 | except (ValueError, TypeError): | CODE |
| HIGH | …onitor/v2/src/excel_monitor/sheets/stock_pool_sheet.py | 152 | except Exception: | CODE |
| HIGH | …ock_monitor/v2/src/excel_monitor/core/excel_manager.py | 26 | except Exception: | CODE |
| HIGH | …platform/聚宽_JoinQuant/03_模拟盘及实盘/01_股票规则类/龙虎榜+震荡区间过滤.py | 147 | except Exception: | CODE |
| HIGH | …e_platform/聚宽_JoinQuant/03_模拟盘及实盘/01_股票规则类/强势股+趋势预测.py | 149 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | egs_alpha/alpha_libs/alpha101/101Alpha_code_2.py | 6 | CODE | |
| LOW | egs_alpha/alpha_libs/alpha101/101Alpha_code_2.py | 836 | CODE | |
| LOW | egs_alpha/alpha_libs/alpha101/101Alpha_code_2.py | 2420 | CODE | |
| LOW | zz_scripts/check_docs_build.py | 33 | CODE | |
| LOW | …th_stock_forcaster/a05_test/batch_test_transformers.py | 115 | CODE | |
| LOW | egs_data/股票/yfinance/yfinance_data.py | 236 | CODE | |
| LOW | egs_data/股票/qlib/qlib_demo.py | 52 | CODE | |
| LOW | egs_data/股票/baostock/get_stock_data.py | 279 | CODE | |
| LOW | egs_data/股票/baostock/get_stock_data.py | 302 | CODE | |
| LOW | egs_data/股票/stooq/stooq_demo.py | 119 | CODE | |
| LOW | egs_data/股票/pytdx/pytdx_demo.py | 89 | CODE | |
| LOW | egs_data/股票/akshare/akshare_demo.py | 191 | CODE | |
| LOW | egs_data/股票/akshare/akshare_demo.py | 308 | CODE | |
| LOW | …data/股票/data_loader_framework/data_loader_base_demo.py | 494 | CODE | |
| LOW | …data/股票/data_loader_framework/data_loader_base_demo.py | 324 | CODE | |
| LOW | …data/股票/data_loader_framework/data_loader_base_demo.py | 373 | CODE | |
| LOW | egs_aide/excel_stock_monitor/v2/main.py | 101 | CODE | |
| LOW | …cel_stock_monitor/v2/video_generator/generate_video.py | 429 | CODE | |
| LOW | …cel_stock_monitor/v2/video_generator/generate_video.py | 1094 | CODE | |
| LOW | …ck_monitor/v2/src/excel_monitor/sheets/custom_watch.py | 257 | CODE | |
| LOW | …ck_monitor/v2/src/excel_monitor/core/backup_sources.py | 201 | CODE | |
| LOW | …ck_monitor/v2/src/excel_monitor/core/backup_sources.py | 274 | CODE | |
| LOW | …ck_monitor/v2/src/excel_monitor/core/backup_sources.py | 800 | CODE | |
| LOW | …ck_monitor/v2/src/excel_monitor/core/backup_sources.py | 1015 | CODE | |
| LOW | egs_trade/paper_trade/wind/double_ma.py | 67 | CODE | |
| LOW | egs_trade/vanilla/momentum_rotation/strategy.py | 86 | CODE | |
| LOW | …rade/vanilla/double_ma/src/data_io/api_tushare_data.py | 121 | CODE | |
| LOW | …rade/vanilla/double_ma/src/data_io/api_tushare_data.py | 196 | CODE | |
| LOW | …ll/broker-research-analyst/scripts/report_validator.py | 247 | CODE | |
| LOW | …ll/broker-research-analyst/scripts/report_validator.py | 365 | CODE | |
| LOW | egs_skill/broker-research-analyst/scripts/pdf_parser.py | 285 | CODE | |
| LOW | …ill/broker-research-analyst/scripts/generate_report.py | 154 | CODE | |
| LOW | …skill/broker-research-analyst/scripts/report_router.py | 34 | CODE | |
| LOW | …skill/broker-research-analyst/scripts/report_router.py | 234 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docs/04_website_deployment/Cloudflare_Pages_部署指南.en.md | 44 | ### Step 1: Register a Cloudflare Account | COMMENT |
| LOW⚡ | docs/04_website_deployment/Cloudflare_Pages_部署指南.en.md | 52 | ### Step 2: Create a Pages Project | COMMENT |
| LOW⚡ | docs/04_website_deployment/Cloudflare_Pages_部署指南.en.md | 57 | ### Step 3: Authorize Cloudflare to Access GitHub | COMMENT |
| LOW⚡ | docs/04_website_deployment/Cloudflare_Pages_部署指南.en.md | 67 | ### Step 4: Fill in Project Configuration | COMMENT |
| LOW | docs/04_website_deployment/Cloudflare_Pages_部署指南.en.md | 90 | ### Step 5: Deploy | COMMENT |
| LOW | docs/04_website_deployment/Cloudflare_Pages_部署指南.en.md | 96 | ### Step 6: Visit the Documentation Site | COMMENT |
| LOW⚡ | docs/04_website_deployment/发布操作指南.en.md | 56 | #### Step 1: Confirm the Workflow Has Been Pushed | COMMENT |
| LOW⚡ | docs/04_website_deployment/发布操作指南.en.md | 66 | #### Step 2: Enable GitHub Pages from GitHub Actions | COMMENT |
| LOW⚡ | docs/04_website_deployment/发布操作指南.en.md | 73 | #### Step 3: Trigger the First Deployment | COMMENT |
| LOW⚡ | docs/04_website_deployment/发布操作指南.en.md | 79 | #### Step 4: Visit the Site | COMMENT |
| LOW | docs/04_website_deployment/发布操作指南.en.md | 122 | #### Step 1: Register a Cloudflare Account | COMMENT |
| LOW | docs/04_website_deployment/发布操作指南.en.md | 127 | #### Step 2: Create a Pages Project | COMMENT |
| LOW | docs/04_website_deployment/发布操作指南.en.md | 147 | #### Step 3: Wait for the First Build | COMMENT |
| LOW | docs/04_website_deployment/发布操作指南.en.md | 152 | #### Step 4: Visit the Site | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | zz_scripts/check_docs_build.py | 14 | CODE | |
| LOW | zz_scripts/check_docs_publish_scope.py | 4 | CODE | |
| LOW | …_data/股票/wind/basic_data/src/data_io/wind/dump_data.py | 30 | CODE | |
| LOW | …data/股票/data_loader_framework/data_loader_base_demo.py | 268 | CODE | |
| LOW | …data/股票/data_loader_framework/data_loader_base_demo.py | 319 | CODE | |
| LOW | egs_data/新闻/xueqiu/xueqiu_demo.py | 214 | CODE | |
| LOW | egs_aide/excel_stock_monitor/v2/main.py | 64 | CODE | |
| LOW | …tform/聚宽_JoinQuant/03_模拟盘及实盘/02_股票机器学习类/SVM动态因子选择策略.py | 37 | CODE | |
| LOW | …tform/聚宽_JoinQuant/03_模拟盘及实盘/02_股票机器学习类/SVM动态因子选择策略.py | 38 | CODE | |
| LOW | …ine_platform/聚宽_JoinQuant/03_模拟盘及实盘/01_股票规则类/龙虎榜+均线.py | 23 | CODE | |
| LOW | …platform/聚宽_JoinQuant/03_模拟盘及实盘/01_股票规则类/龙虎榜+震荡区间过滤.py | 27 | CODE | |
| LOW | …ne_platform/聚宽_JoinQuant/03_模拟盘及实盘/01_股票规则类/小市值+多均线.py | 20 | CODE | |
| LOW | …e_platform/聚宽_JoinQuant/03_模拟盘及实盘/01_股票规则类/强势股+趋势预测.py | 28 | CODE | |
| LOW | egs_online_platform/聚宽_JoinQuant/01_模板使用说明/模板.py | 2 | CODE | |
| LOW | …broker-research-analyst/scripts/report_quality_gate.py | 9 | CODE | |
| LOW | …ll/broker-research-analyst/scripts/report_validator.py | 11 | CODE | |
| LOW | egs_skill/broker-research-analyst/scripts/pdf_parser.py | 13 | CODE | |
| LOW | …l/broker-research-analyst/scripts/eastmoney_adapter.py | 24 | CODE | |
| LOW | …_skill/broker-research-analyst/scripts/error_logger.py | 6 | CODE | |
| LOW | …kill/broker-research-analyst/scripts/pdf_downloader.py | 12 | CODE | |
| LOW | …ill/broker-research-analyst/scripts/generate_report.py | 15 | CODE | |
| LOW | …skill/broker-research-analyst/scripts/report_router.py | 10 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | egs_data/股票/yfinance/yfinance_data.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | egs_data/股票/baostock/get_stock_data.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | egs_data/股票/stooq/stooq_demo.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | egs_data/股票/pytdx/pytdx_demo.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | egs_data/股票/tushare/tushare_demo.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | …data/股票/data_loader_framework/data_loader_base_demo.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rade/rl/a001_proto_sb3/src/rl/envs/StockTradingEnv0.py | 7 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | awesome_projects/10-llm.md | 120 | ## RAG | COMMENT |
| MEDIUM | awesome_projects/10-llm.md | 188 | - **[AlphaAgentEvo](https://github.com/hongha5192-bit/AlphaAgentEvo)** — Evolution-oriented alpha mining via self-evolvi | CODE |
| MEDIUM | …_skill/broker-research-analyst/scripts/error_logger.py | 21 | stage: str # 发生阶段:fetch/quality_gate/download/parse/image/generate/validate/hallucination | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | egs_data/股票/wind/basic_data/tests/test_all.py | 32 | fake_data = types.SimpleNamespace( | CODE |
| LOW⚡ | egs_data/股票/wind/basic_data/tests/test_all.py | 37 | ret = parse_val(fake_data, ['RT_LAST']) | CODE |
| LOW⚡ | egs_trade/paper_trade/wind/tests/test_all.py | 84 | fake_data = types.SimpleNamespace( | CODE |
| LOW⚡ | egs_trade/paper_trade/wind/tests/test_all.py | 89 | ret = parse_val(fake_data, ['RT_LAST', 'RT_MA_20D']) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …data/股票/data_loader_framework/data_loader_base_demo.py | 224 | 按回退链获取第一个可用的数据加载器实例 Args: market: 市场类型,如 "a_share", "us_equity" Returns: 可用的数据加载器实例 Raise | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | egs_data/股票/eastmoney/eastmoney_api.py | 102 | CODE | |
| LOW | egs_data/股票/tencent/tencent_api.py | 65 | CODE | |
| LOW | …l/broker-research-analyst/scripts/eastmoney_adapter.py | 134 | CODE |