Repository Analysis

microsoft/qlib

Qlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate R&D process.

12.0 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of microsoft/qlib, a Python project with 46,211 GitHub stars. SynthScan v2.0 examined 84,435 lines of code across 523 source files, recording 774 pattern matches distributed across 19 syntactic categories. The overall adjusted score of 12.0 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

12.0
Adjusted Score
12.0
Raw Score
100%
Time Factor
2026-04-22
Last Push
46.2K
Stars
Python
Language
84.4K
Lines of Code
523
Files
774
Pattern Hits
2026-07-14
Scan Date
0.09
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 3HIGH 44MEDIUM 23LOW 704

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 774 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Unused Imports296 hits · 292 pts
SeverityFileLineSnippetContext
LOWsetup.py1CODE
LOWqlib/config.py14CODE
LOWqlib/typehint.py13CODE
LOWqlib/typehint.py13CODE
LOWqlib/typehint.py15CODE
LOWqlib/typehint.py15CODE
LOWqlib/utils/__init__.py6CODE
LOWqlib/utils/__init__.py7CODE
LOWqlib/utils/__init__.py28CODE
LOWqlib/utils/__init__.py28CODE
LOWqlib/utils/__init__.py28CODE
LOWqlib/utils/__init__.py28CODE
LOWqlib/utils/__init__.py35CODE
LOWqlib/utils/__init__.py939CODE
LOWqlib/utils/__init__.py939CODE
LOWqlib/utils/__init__.py939CODE
LOWqlib/utils/__init__.py939CODE
LOWqlib/utils/__init__.py939CODE
LOWqlib/utils/index_data.py12CODE
LOWqlib/contrib/evaluate_portfolio.py5CODE
LOWqlib/contrib/evaluate_portfolio.py6CODE
LOWqlib/contrib/evaluate.py4CODE
LOWqlib/contrib/evaluate.py5CODE
LOWqlib/contrib/tuner/pipeline.py10CODE
LOWqlib/contrib/tuner/pipeline.py11CODE
LOWqlib/contrib/tuner/launcher.py11CODE
LOWqlib/contrib/tuner/launcher.py12CODE
LOWqlib/contrib/tuner/tuner.py14CODE
LOWqlib/contrib/meta/__init__.py4CODE
LOWqlib/contrib/meta/__init__.py4CODE
LOWqlib/contrib/meta/__init__.py4CODE
LOWqlib/contrib/meta/data_selection/__init__.py4CODE
LOWqlib/contrib/meta/data_selection/__init__.py4CODE
LOWqlib/contrib/meta/data_selection/__init__.py5CODE
LOWqlib/contrib/workflow/__init__.py3CODE
LOWqlib/contrib/workflow/__init__.py4CODE
LOWqlib/contrib/model/pytorch_gru.py4CODE
LOWqlib/contrib/model/pytorch_gru.py5CODE
LOWqlib/contrib/model/pytorch_localformer_ts.py5CODE
LOWqlib/contrib/model/pytorch_localformer_ts.py6CODE
LOWqlib/contrib/model/pytorch_lstm.py5CODE
LOWqlib/contrib/model/pytorch_lstm.py6CODE
LOWqlib/contrib/model/pytorch_tabnet.py3CODE
LOWqlib/contrib/model/pytorch_tabnet.py4CODE
LOWqlib/contrib/model/pytorch_nn.py5CODE
LOWqlib/contrib/model/pytorch_nn.py6CODE
LOWqlib/contrib/model/pytorch_localformer.py5CODE
LOWqlib/contrib/model/pytorch_localformer.py6CODE
LOWqlib/contrib/model/pytorch_lstm_ts.py5CODE
LOWqlib/contrib/model/pytorch_lstm_ts.py6CODE
LOWqlib/contrib/model/pytorch_tcts.py5CODE
LOWqlib/contrib/model/pytorch_tcts.py6CODE
LOWqlib/contrib/model/pytorch_gru_ts.py5CODE
LOWqlib/contrib/model/pytorch_gru_ts.py6CODE
LOWqlib/contrib/model/pytorch_gats.py5CODE
LOWqlib/contrib/model/pytorch_gats.py6CODE
LOWqlib/contrib/model/pytorch_transformer.py5CODE
LOWqlib/contrib/model/pytorch_transformer.py6CODE
LOWqlib/contrib/model/pytorch_sfm.py4CODE
LOWqlib/contrib/model/pytorch_sfm.py5CODE
236 more matches not shown…
Cross-File Repetition30 hits · 150 pts
SeverityFileLineSnippetContext
HIGHqlib/contrib/model/pytorch_gru.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_gru_ts.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_lstm.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_lstm_ts.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_adarnn.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_tcts.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_alstm_ts.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_alstm.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_igmtf.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_krnn.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_tcn_ts.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_tcn.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_sandwich.py0tcn model parameters ---------- d_feat : int input dimension for each time step n_chans: int number of channels metric: STRING
HIGHqlib/contrib/model/pytorch_gats.py0add model parameters ---------- lr : float learning rate d_feat : int input dimensions for each time step metric : str tSTRING
HIGHqlib/contrib/model/pytorch_gats_ts.py0add model parameters ---------- lr : float learning rate d_feat : int input dimensions for each time step metric : str tSTRING
HIGHqlib/contrib/model/pytorch_hist.py0add model parameters ---------- lr : float learning rate d_feat : int input dimensions for each time step metric : str tSTRING
HIGHqlib/contrib/model/pytorch_add.py0add model parameters ---------- lr : float learning rate d_feat : int input dimensions for each time step metric : str tSTRING
HIGHscripts/data_collector/index.py0get history trading date returns ------- calendar listSTRING
HIGHscripts/data_collector/cn_index/collector.py0get history trading date returns ------- calendar listSTRING
HIGHscripts/data_collector/us_index/collector.py0get history trading date returns ------- calendar listSTRING
HIGHscripts/data_collector/index.py0returns ------- pd.dataframe: symbol date type sh600000 2019-11-11 add sh600000 2020-11-10 remove dtypes: symbol: str daSTRING
HIGHscripts/data_collector/cn_index/collector.py0returns ------- pd.dataframe: symbol date type sh600000 2019-11-11 add sh600000 2020-11-10 remove dtypes: symbol: str daSTRING
HIGHscripts/data_collector/us_index/collector.py0returns ------- pd.dataframe: symbol date type sh600000 2019-11-11 add sh600000 2020-11-10 remove dtypes: symbol: str daSTRING
HIGHscripts/data_collector/index.py0formatting the datetime in an instrument parameters ---------- inst_df: pd.dataframe inst_df.columns = [self.symbol_fielSTRING
HIGHscripts/data_collector/cn_index/collector.py0formatting the datetime in an instrument parameters ---------- inst_df: pd.dataframe inst_df.columns = [self.symbol_fielSTRING
HIGHscripts/data_collector/us_index/collector.py0formatting the datetime in an instrument parameters ---------- inst_df: pd.dataframe inst_df.columns = [self.symbol_fielSTRING
HIGHscripts/data_collector/br_index/collector.py0formatting the datetime in an instrument parameters ---------- inst_df: pd.dataframe inst_df.columns = [self.symbol_fielSTRING
HIGHscripts/data_collector/base.py0download data from internet parameters ---------- max_collector_count: int default 2 delay: float time.sleep(delay), defSTRING
HIGHscripts/data_collector/crypto/collector.py0download data from internet parameters ---------- max_collector_count: int default 2 delay: float time.sleep(delay), defSTRING
HIGHscripts/data_collector/fund/collector.py0download data from internet parameters ---------- max_collector_count: int default 2 delay: float time.sleep(delay), defSTRING
Hyper-Verbose Identifiers123 hits · 123 pts
SeverityFileLineSnippetContext
LOWqlib/log.py227def set_global_logger_level_cm(level: int):CODE
LOWqlib/tests/config.py112def get_record_xgboost_config(dataset_kwargs={}, handler_kwargs={"instruments": CSI300_MARKET}):CODE
LOWqlib/tests/data.py203 def _get_file_name_with_version(qlib_version, dataset_version):CODE
LOWqlib/utils/resam.py72def get_higher_eq_freq_feature(instruments, fields, start_time=None, end_time=None, freq="day", disk_cache=1):CODE
LOWqlib/utils/__init__.py359def normalize_cache_instruments(instruments):CODE
LOWqlib/utils/file.py96def unpack_archive_with_buffer(buffer, format="gztar"):CODE
LOWqlib/utils/mod.py25def get_module_by_module_path(module_path: Union[str, ModuleType]):CODE
LOWqlib/contrib/evaluate_portfolio.py17def _get_position_value_from_df(evaluate_date, position, close_data_df):CODE
LOWqlib/contrib/evaluate_portfolio.py105def get_daily_return_series_from_positions(positions, init_asset_value):CODE
LOWqlib/contrib/evaluate_portfolio.py122def get_annual_return_from_positions(positions, init_asset_value):CODE
LOWqlib/contrib/evaluate_portfolio.py143def get_annaul_return_from_return_series(r, method="ci"):CODE
LOWqlib/contrib/evaluate_portfolio.py159def get_sharpe_ratio_from_return_series(r, risk_free_rate=0.00, method="ci"):CODE
LOWqlib/contrib/evaluate_portfolio.py178def get_max_drawdown_from_series(r):CODE
LOWqlib/contrib/evaluate_portfolio.py225def get_volatility_from_series(r):CODE
LOWqlib/contrib/rolling/ddgda.py179 def _dump_data_for_proxy_model(self):STRING
LOWqlib/contrib/rolling/base.py123 def _replace_handler_with_cache(self, task: dict):CODE
LOWqlib/contrib/meta/data_selection/utils.py67def preds_to_weight_with_clamp(preds, clip_weight=None, clip_method="tanh"):CODE
LOWqlib/contrib/report/graph.py70 def get_instance_with_graph_parameters(graph_type: str = None, **kwargs):CODE
LOWqlib/contrib/report/analysis_position/rank_label.py14def _get_figure_with_position(CODE
LOW…/contrib/report/analysis_position/cumulative_return.py15def _get_cum_return_data_with_position(CODE
LOW…/contrib/report/analysis_position/cumulative_return.py89def _get_figure_with_position(CODE
LOWqlib/contrib/report/analysis_position/risk_analysis.py15def _get_risk_analysis_data_with_report(CODE
LOWqlib/contrib/report/analysis_position/risk_analysis.py57def _get_monthly_risk_analysis_with_report(report_normal_df: pd.DataFrame) -> pd.DataFrame:CODE
LOWqlib/contrib/report/analysis_position/risk_analysis.py95def _get_monthly_analysis_with_feature(monthly_df: pd.DataFrame, feature: str = "annualized_return") -> pd.DataFrame:CODE
LOWqlib/contrib/report/analysis_position/risk_analysis.py112def _get_risk_analysis_figure(analysis_df: pd.DataFrame) -> Iterable[py.Figure]:CODE
LOWqlib/contrib/report/analysis_position/risk_analysis.py129def _get_monthly_risk_analysis_figure(report_normal_df: pd.DataFrame) -> Iterable[py.Figure]:CODE
LOWqlib/contrib/data/highfreq_handler.py48 def get_normalized_price_feature(price_field, shift=0):CODE
LOWqlib/contrib/data/highfreq_handler.py151 def get_normalized_price_feature(price_field, shift=0):CODE
LOWqlib/contrib/data/highfreq_handler.py350 def get_normalized_price_feature(price_field, shift=0):CODE
LOWqlib/contrib/data/highfreq_handler.py366 def get_normalized_vwap_price_feature(price_field, shift=0):CODE
LOWqlib/contrib/strategy/order_generator.py16 def generate_order_list_from_target_weight_position(CODE
LOWqlib/contrib/strategy/order_generator.py54 def generate_order_list_from_target_weight_position(CODE
LOWqlib/contrib/strategy/order_generator.py146 def generate_order_list_from_target_weight_position(CODE
LOWqlib/contrib/strategy/cost_control.py47 def generate_target_weight_position(self, score, current, trade_start_time, trade_end_time, **kwargs):CODE
LOWqlib/contrib/strategy/signal_strategy.py330 def generate_target_weight_position(self, score, current, trade_start_time, trade_end_time):CODE
LOWqlib/contrib/strategy/signal_strategy.py462 def generate_target_weight_position(self, score, current, trade_start_time, trade_end_time):CODE
LOWqlib/backtest/profit_attribution.py72def decompose_portofolio_weight(stock_weight_df, stock_group_df):CODE
LOWqlib/backtest/exchange.py534 def generate_amount_position_from_weight_position(CODE
LOWqlib/backtest/exchange.py611 def generate_order_for_target_amount_position(CODE
LOWqlib/backtest/exchange.py679 def calculate_amount_position_value(CODE
LOWqlib/backtest/exchange.py712 def _get_factor_or_raise_error(CODE
LOWqlib/backtest/exchange.py761 def round_amount_by_trade_unit(CODE
LOWqlib/backtest/exchange.py834 def _get_buy_amount_by_cash_limit(self, trade_price: float, cash: float, cost_ratio: float) -> float:CODE
LOWqlib/backtest/exchange.py859 def _calc_trade_info_by_order(CODE
LOWqlib/backtest/report.py150 def get_latest_total_turnover(self) -> Any:CODE
LOWqlib/backtest/report.py153 def update_portfolio_metrics_record(CODE
LOWqlib/backtest/report.py203 def generate_portfolio_metrics_dataframe(self) -> pd.DataFrame:CODE
LOWqlib/backtest/report.py330 def _update_order_fulfill_rate(self) -> None:CODE
LOWqlib/backtest/report.py524 def _agg_order_price_advantage(self) -> None:CODE
LOWqlib/backtest/report.py570 def _cal_trade_price_advantage(self, method: str = "mean") -> Optional[BaseSingleMetric]:CODE
LOWqlib/backtest/report.py650 def generate_trade_indicators_dataframe(self) -> pd.DataFrame:CODE
LOWqlib/backtest/executor.py501def _retrieve_orders_from_decision(trade_decision: BaseTradeDecision) -> List[Order]:CODE
LOWqlib/workflow/utils.py31def experiment_exception_hook(exc_type, value, tb):CODE
LOWqlib/workflow/task/utils.py283def replace_task_handler_with_cache(task: dict, cache_dir: Union[str, Path] = ".") -> dict:CODE
LOWqlib/model/riskmodel/shrink.py115 def _get_shrink_target_const_var(self, X: np.ndarray, S: np.ndarray) -> np.ndarray:CODE
LOWqlib/model/riskmodel/shrink.py126 def _get_shrink_target_const_corr(self, X: np.ndarray, S: np.ndarray) -> np.ndarray:CODE
LOWqlib/model/riskmodel/shrink.py141 def _get_shrink_target_single_factor(self, X: np.ndarray, S: np.ndarray) -> np.ndarray:CODE
LOWqlib/model/riskmodel/shrink.py188 def _get_shrink_param_lw_const_var(self, X: np.ndarray, S: np.ndarray, F: np.ndarray) -> float:CODE
LOWqlib/model/riskmodel/shrink.py205 def _get_shrink_param_lw_const_corr(self, X: np.ndarray, S: np.ndarray, F: np.ndarray) -> float:CODE
LOWqlib/model/riskmodel/shrink.py231 def _get_shrink_param_lw_single_factor(self, X: np.ndarray, S: np.ndarray, F: np.ndarray) -> float:CODE
63 more matches not shown…
AI Structural Patterns80 hits · 80 pts
SeverityFileLineSnippetContext
LOWqlib/contrib/evaluate_portfolio.py73CODE
LOWqlib/contrib/evaluate.py93CODE
LOWqlib/contrib/evaluate.py143CODE
LOWqlib/contrib/evaluate.py276CODE
LOWqlib/contrib/rolling/ddgda.py79CODE
LOWqlib/contrib/rolling/base.py53CODE
LOWqlib/contrib/meta/data_selection/model.py45CODE
LOWqlib/contrib/model/pytorch_gru.py40CODE
LOWqlib/contrib/model/pytorch_localformer_ts.py27CODE
LOWqlib/contrib/model/pytorch_lstm.py39CODE
LOWqlib/contrib/model/pytorch_tabnet.py26CODE
LOWqlib/contrib/model/pytorch_tabnet.py437CODE
LOWqlib/contrib/model/pytorch_adarnn.py38CODE
LOWqlib/contrib/model/pytorch_adarnn.py377CODE
LOWqlib/contrib/model/pytorch_adarnn.py496CODE
LOWqlib/contrib/model/pytorch_nn.py57CODE
LOWqlib/contrib/model/pytorch_localformer.py29CODE
LOWqlib/contrib/model/pytorch_lstm_ts.py40CODE
LOWqlib/contrib/model/pytorch_tcts.py39CODE
LOWqlib/contrib/model/pytorch_tcts.py401CODE
LOWqlib/contrib/model/pytorch_gru_ts.py41CODE
LOWqlib/contrib/model/pytorch_gats.py43CODE
LOWqlib/contrib/model/pytorch_transformer.py28CODE
LOWqlib/contrib/model/pytorch_sfm.py197CODE
LOWqlib/contrib/model/pytorch_alstm_ts.py43CODE
LOWqlib/contrib/model/pytorch_igmtf.py42CODE
LOWqlib/contrib/model/pytorch_igmtf.py442CODE
LOWqlib/contrib/model/pytorch_transformer_ts.py26CODE
LOWqlib/contrib/model/pytorch_krnn.py222CODE
LOWqlib/contrib/model/pytorch_krnn.py240CODE
LOWqlib/contrib/model/pytorch_tcn_ts.py40CODE
LOWqlib/contrib/model/pytorch_tcn.py43CODE
LOWqlib/contrib/model/pytorch_general_nn.py52CODE
LOWqlib/contrib/model/pytorch_alstm.py40CODE
LOWqlib/contrib/model/double_ensemble.py18CODE
LOWqlib/contrib/model/pytorch_sandwich.py94CODE
LOWqlib/contrib/model/pytorch_sandwich.py112CODE
LOWqlib/contrib/model/pytorch_hist.py44CODE
LOWqlib/contrib/model/pytorch_tra.py62CODE
LOWqlib/contrib/model/pytorch_add.py46CODE
LOWqlib/contrib/model/pytorch_add.py443CODE
LOWqlib/contrib/model/pytorch_add.py565CODE
LOWqlib/contrib/model/pytorch_gats_ts.py61CODE
LOWqlib/contrib/data/handler.py49CODE
LOWqlib/contrib/data/handler.py99CODE
LOWqlib/contrib/data/dataset.py119CODE
LOWqlib/contrib/data/highfreq_handler.py9CODE
LOWqlib/contrib/data/highfreq_handler.py104CODE
LOWqlib/contrib/data/highfreq_handler.py308CODE
LOWqlib/contrib/strategy/rule_strategy.py388CODE
LOWqlib/contrib/strategy/cost_control.py9CODE
LOWqlib/backtest/exchange.py38CODE
LOWqlib/backtest/__init__.py33CODE
LOWqlib/backtest/report.py153CODE
LOWqlib/backtest/executor.py25CODE
LOWqlib/backtest/executor.py317CODE
LOWqlib/backtest/executor.py528CODE
LOWqlib/data/data.py927CODE
LOWqlib/data/data.py982CODE
LOWqlib/data/dataset/handler.py436CODE
20 more matches not shown…
Deep Nesting72 hits · 72 pts
SeverityFileLineSnippetContext
LOWqlib/__init__.py25CODE
LOWqlib/__init__.py87CODE
LOWqlib/__init__.py243CODE
LOWqlib/utils/time.py32CODE
LOWqlib/utils/time.py73CODE
LOWqlib/utils/time.py258CODE
LOWqlib/utils/resam.py12CODE
LOWqlib/utils/paral.py211CODE
LOWqlib/utils/__init__.py71CODE
LOWqlib/utils/__init__.py758CODE
LOWqlib/utils/index_data.py253CODE
LOWqlib/utils/file.py16CODE
LOWqlib/utils/mod.py122CODE
LOWqlib/utils/data.py70CODE
LOWqlib/contrib/torch.py14CODE
LOWqlib/contrib/rolling/ddgda.py128CODE
LOWqlib/contrib/meta/data_selection/model.py74CODE
LOWqlib/contrib/meta/data_selection/dataset.py386CODE
LOWqlib/contrib/meta/data_selection/utils.py67CODE
LOWqlib/contrib/model/pytorch_gru.py209CODE
LOWqlib/contrib/model/pytorch_adarnn.py563CODE
LOWqlib/contrib/model/pytorch_nn.py190CODE
LOWqlib/contrib/model/pytorch_utils.py7CODE
LOWqlib/contrib/model/pytorch_tra.py738CODE
LOWqlib/contrib/model/pytorch_tra.py176CODE
LOWqlib/contrib/model/gbdt.py28CODE
LOWqlib/contrib/report/data/ana.py45CODE
LOWqlib/contrib/data/dataset.py280CODE
LOWqlib/contrib/data/utils/sepdf.py193CODE
LOWqlib/contrib/data/utils/sepdf.py94CODE
LOWqlib/contrib/data/utils/sepdf.py160CODE
LOWqlib/contrib/strategy/rule_strategy.py157CODE
LOWqlib/contrib/strategy/signal_strategy.py138CODE
LOWqlib/backtest/signal.py88CODE
LOWqlib/backtest/exchange.py859CODE
LOWqlib/backtest/decision.py117CODE
LOWqlib/backtest/high_performance_ds.py184CODE
LOWqlib/backtest/report.py455CODE
LOWqlib/workflow/expm.py365CODE
LOWqlib/workflow/exp.py287CODE
LOWqlib/workflow/record_temp.py81CODE
LOWqlib/workflow/task/collect.py184CODE
LOWqlib/workflow/task/gen.py187CODE
LOWqlib/workflow/task/manage.py485CODE
LOWqlib/data/cache.py507CODE
LOWqlib/data/cache.py952CODE
LOWqlib/data/dataset/handler.py633CODE
LOWqlib/data/dataset/loader.py156CODE
LOWqlib/data/dataset/loader.py271CODE
LOWqlib/data/dataset/storage.py113CODE
LOWqlib/data/storage/file_storage.py261CODE
LOWqlib/data/storage/file_storage.py346CODE
LOWqlib/rl/interpreter.py101CODE
LOWqlib/rl/utils/data_queue.py167CODE
LOWqlib/rl/utils/finite_env.py39CODE
LOWqlib/rl/contrib/naive_config_parser.py31CODE
LOWqlib/rl/order_execution/simulator_simple.py147CODE
LOWexamples/run_all_model.py134CODE
LOWexamples/benchmarks/TRA/src/model.py566CODE
LOWexamples/benchmarks/TRA/src/dataset.py219CODE
12 more matches not shown…
Modern Structural Boilerplate58 hits · 62 pts
SeverityFileLineSnippetContext
LOWqlib/typehint.py10__all__ = ["Literal", "TypedDict", "final"]CODE
LOWqlib/utils/__init__.py948__all__ = [CODE
LOWqlib/contrib/meta/__init__.py6__all__ = ["MetaTaskDS", "MetaDatasetDS", "MetaModelDS"]CODE
LOWqlib/contrib/meta/data_selection/__init__.py7__all__ = ["MetaDatasetDS", "MetaTaskDS", "MetaModelDS"]CODE
LOWqlib/contrib/workflow/__init__.py6__all__ = ["MultiSegRecord", "SignalMseRecord"]CODE
LOWqlib/contrib/report/analysis_position/__init__.py10__all__ = ["cumulative_return_graph", "score_ic_graph", "report_graph", "rank_label_graph", "risk_analysis_graph"]CODE
LOWqlib/contrib/report/analysis_model/__init__.py6__all__ = ["model_performance_graph"]CODE
LOWqlib/contrib/strategy/__init__.py19__all__ = [CODE
LOWqlib/contrib/strategy/optimizer/__init__.py8__all__ = ["BaseOptimizer", "PortfolioOptimizer", "EnhancedIndexingOptimizer"]CODE
LOWqlib/backtest/signal.py77 def _update_model(self) -> None:CODE
LOWqlib/backtest/exchange.py273 def _update_limit(self, limit_threshold: Union[Tuple, float, None]) -> None:CODE
LOWqlib/backtest/__init__.py349__all__ = ["Order", "backtest", "get_strategy_executor"]CODE
LOWqlib/backtest/utils.py266 def set_sub_level_infra(self, sub_level_infra: LevelInfrastructure) -> None:CODE
LOWqlib/backtest/position.py57 def update_order(self, order: Order, trade_val: float, cost: float, trade_price: float) -> None:CODE
LOWqlib/backtest/position.py72 def update_stock_price(self, stock_id: str, price: float) -> None:CODE
LOWqlib/backtest/position.py189 def update_weight_all(self) -> None:CODE
LOWqlib/backtest/position.py390 def update_order(self, order: Order, trade_val: float, cost: float, trade_price: float) -> None:CODE
LOWqlib/backtest/position.py401 def update_stock_price(self, stock_id: str, price: float) -> None:CODE
LOWqlib/backtest/position.py404 def update_stock_count(self, stock_id: str, bar: str, count: float) -> None: # TODO: check type of `bar`CODE
LOWqlib/backtest/position.py407 def update_stock_weight(self, stock_id: str, weight: float) -> None:CODE
LOWqlib/backtest/position.py482 def update_weight_all(self) -> None:CODE
LOWqlib/backtest/position.py518 def update_order(self, order: Order, trade_val: float, cost: float, trade_price: float) -> None:CODE
LOWqlib/backtest/position.py521 def update_stock_price(self, stock_id: str, price: float) -> None:CODE
LOWqlib/backtest/position.py558 def update_weight_all(self) -> None:CODE
LOWqlib/backtest/report.py301 def _update_order_trade_info(self, trade_info: List[Tuple[Order, float, float, float]]) -> None:CODE
LOWqlib/backtest/report.py330 def _update_order_fulfill_rate(self) -> None:CODE
LOWqlib/backtest/report.py339 def update_order_indicators(self, trade_info: List[Tuple[Order, float, float, float]]) -> None:CODE
LOWqlib/backtest/report.py372 def _update_trade_amount(self, outer_trade_decision: BaseTradeDecision) -> None:CODE
LOWqlib/backtest/account.py183 def _update_state_from_order(self, order: Order, trade_val: float, cost: float, trade_price: float) -> None:CODE
LOWqlib/backtest/account.py203 def update_order(self, order: Order, trade_val: float, cost: float, trade_price: float) -> None:CODE
LOWqlib/backtest/account.py250 def update_portfolio_metrics(self, trade_start_time: pd.Timestamp, trade_end_time: pd.Timestamp) -> None:CODE
LOWqlib/backtest/account.py293 def update_hist_positions(self, trade_start_time: pd.Timestamp) -> None:CODE
LOWqlib/model/__init__.py8__all__ = ["Model", "warnings"]CODE
LOWqlib/model/meta/__init__.py7__all__ = ["MetaTask", "MetaTaskDataset"]CODE
LOWqlib/model/riskmodel/__init__.py9__all__ = [CODE
LOWqlib/data/__init__.py39__all__ = [CODE
LOWqlib/data/dataset/__init__.py722__all__ = ["Optional", "Dataset", "DatasetH"]CODE
LOWqlib/data/storage/__init__.py6__all__ = ["CalendarStorage", "InstrumentStorage", "FeatureStorage", "CalVT", "InstVT", "InstKT"]CODE
LOWqlib/rl/__init__.py8__all__ = ["Interpreter", "StateInterpreter", "ActionInterpreter", "Reward", "RewardCombination", "Simulator"]CODE
LOWqlib/rl/aux_info.py16__all__ = ["AuxiliaryInfoCollector"]CODE
LOWqlib/rl/utils/data_queue.py21__all__ = ["DataQueue"]CODE
LOWqlib/rl/utils/finite_env.py24__all__ = [CODE
LOWqlib/rl/utils/finite_env.py149 def _set_default_obs(self, obs: Any) -> None:CODE
LOWqlib/rl/utils/finite_env.py153 def _set_default_info(self, info: Any) -> None:CODE
LOWqlib/rl/utils/finite_env.py157 def _set_default_rew(self, rew: Any) -> None:CODE
LOWqlib/rl/utils/log.py35__all__ = ["LogCollector", "LogWriter", "LogLevel", "LogBuffer", "ConsoleWriter", "CsvWriter"]CODE
LOWqlib/rl/utils/__init__.py9__all__ = [CODE
LOWqlib/rl/utils/env_wrapper.py20__all__ = ["InfoDict", "EnvWrapperStatus", "EnvWrapper"]CODE
LOWqlib/rl/order_execution/policy.py19__all__ = ["AllOne", "PPO", "DQN"]CODE
LOWqlib/rl/order_execution/policy.py220def set_weight(policy: nn.Module, loaded_weight: OrderedDict) -> None:CODE
LOWqlib/rl/order_execution/__init__.py22__all__ = [CODE
LOWqlib/rl/order_execution/interpreter.py19__all__ = [CODE
LOWqlib/rl/order_execution/network.py16__all__ = ["Recurrent"]CODE
LOWqlib/rl/order_execution/simulator_simple.py21__all__ = ["SingleAssetOrderExecutionSimple"]CODE
LOWqlib/rl/order_execution/reward.py14__all__ = ["PAPenaltyReward"]CODE
LOWqlib/rl/trainer/__init__.py11__all__ = [CODE
LOWqlib/rl/strategy/__init__.py5__all__ = ["SingleOrderStrategy"]CODE
LOWqlib/strategy/base.py20__all__ = ["BaseStrategy", "RLStrategy", "RLIntStrategy"]CODE
Excessive Try-Catch Wrapping42 hits · 46 pts
SeverityFileLineSnippetContext
LOWqlib/log.py172 except Exception:CODE
LOWqlib/__init__.py163 except Exception as e:CODE
LOWqlib/utils/__init__.py235 except Exception as e:CODE
LOWqlib/utils/file.py140 except Exception as e:CODE
LOWqlib/contrib/model/pytorch_alstm_ts.py321 except Exception as e:CODE
MEDIUMqlib/contrib/model/pytorch_alstm_ts.py318def _build_model(self):CODE
LOWqlib/contrib/model/pytorch_alstm.py307 except Exception as e:CODE
MEDIUMqlib/contrib/model/pytorch_alstm.py304def _build_model(self):CODE
LOWqlib/contrib/data/dataset.py174 except Exception:CODE
LOWqlib/contrib/strategy/optimizer/enhanced_indexing.py173 except Exception as e:CODE
LOWqlib/contrib/strategy/optimizer/enhanced_indexing.py185 except Exception as e:CODE
LOWqlib/workflow/recorder.py436 except Exception as e:CODE
LOWqlib/workflow/__init__.py92 except Exception as e:CODE
LOWqlib/data/client.py46 except Exception as e:CODE
LOWqlib/data/client.py85 except Exception as e:CODE
LOWqlib/data/cache.py237 except Exception as e:CODE
LOWqlib/data/cache.py534 except Exception:CODE
LOWqlib/data/base.py194 except Exception as e:CODE
LOWqlib/data/data.py860 except Exception as e:CODE
MEDIUMqlib/data/data.py392def get_expression_instance(self, field):CODE
LOWqlib/rl/contrib/backtest.py74 except Exception:CODE
LOWexamples/orderbook_data/create_dataset.py94 except Exception:CODE
LOWexamples/orderbook_data/create_dataset.py150 except Exception as e:CODE
LOWexamples/orderbook_data/create_dataset.py238 except Exception as e:CODE
LOWscripts/dump_bin.py526 except Exception:CODE
LOWscripts/check_dump_bin.py106 except Exception as e:CODE
LOWscripts/data_collector/utils.py251 except Exception as e:CODE
LOWscripts/data_collector/utils.py343 except Exception as e:CODE
LOWscripts/data_collector/utils.py483 except Exception as e:CODE
LOWscripts/data_collector/utils.py547 except Exception as e:CODE
LOWscripts/data_collector/utils.py755 except Exception:CODE
LOWscripts/data_collector/base.py85 except Exception as e:CODE
LOWscripts/data_collector/base.py293 except Exception:CODE
LOWscripts/data_collector/crypto/collector.py39 except Exception as e:CODE
LOWscripts/data_collector/crypto/collector.py43 except Exception as e:CODE
LOWscripts/data_collector/crypto/collector.py148 except Exception as e:CODE
MEDIUMscripts/data_collector/crypto/collector.py35def _get_coingecko():CODE
LOWscripts/data_collector/br_index/collector.py228 except Exception as E:CODE
LOWscripts/data_collector/br_index/collector.py276 except Exception as E:CODE
LOWscripts/data_collector/yahoo/collector.py146 except Exception as e:CODE
LOWscripts/data_collector/yahoo/collector.py239 except Exception as e:CODE
LOWscripts/data_collector/fund/collector.py127 except Exception as e:CODE
Cross-Language Confusion7 hits · 32 pts
SeverityFileLineSnippetContext
HIGHqlib/contrib/strategy/signal_strategy.py448 if not factor_exp.index.equals(specific_risk.index):CODE
HIGHqlib/contrib/strategy/optimizer/optimizer.py90 assert r.index.equals(index), "`r` has mismatched index"CODE
HIGHqlib/contrib/strategy/optimizer/optimizer.py97 assert w0.index.equals(index), "`w0` has mismatched index"CODE
HIGHtests/data_mid_layer_tests/test_handler.py18 self.assertTrue(dh._data.equals(df))CODE
HIGHtests/data_mid_layer_tests/test_handler.py28 self.assertTrue(dh_d._data.equals(df))CODE
HIGHexamples/run_all_model.py342 f"conda install -y --prefix {env_path} anaconda cudatoolkit=10.0 && conda install -y --prefix {env_pCODE
HIGHscripts/collect_info.py14 `cd scripts && python collect_info.py all`STRING
Docstring Block Structure6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHqlib/utils/serial.py137 Load the serializable class from a filepath. Args: filepath (str): the path of file STRING
HIGHqlib/utils/pickle_utils.py73Override find_class to restrict allowed classes. Args: module: Module name of the class STRING
HIGHqlib/utils/pickle_utils.py100Safely load a pickle file with restricted classes. This is a drop-in replacement for pickle.load() that prevents STRING
HIGHqlib/utils/pickle_utils.py122Safely load a pickle from bytes with restricted classes. This is a drop-in replacement for pickle.loads() that prevSTRING
HIGHqlib/workflow/recorder.py414 Load object such as prediction file or model checkpoint in mlflow. Args: name (str): the oSTRING
HIGHexamples/benchmarks/TFT/libs/hyperparam_opt.py189Updates the results from last optimisation run. Args: parameters: Hyperparameters used in optimisatioSTRING
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALqlib/contrib/meta/data_selection/net.py74 self.twm.linear.bias.data.fill_(0.0)CODE
CRITICALexamples/benchmarks_dynamic/DDG-DA/vis_data.py48pd.DataFrame(meta_m.tn.twm.linear.weight.detach().numpy()).T[0].plot()CODE
CRITICALexamples/benchmarks_dynamic/DDG-DA/vis_data.py50pd.DataFrame(meta_m.tn.twm.linear.weight.detach().numpy()).T[0].rolling(5).mean().plot()CODE
AI Slop Vocabulary11 hits · 29 pts
SeverityFileLineSnippetContext
MEDIUMqlib/contrib/rolling/ddgda.py259 # 1) leverage the simplified proxy forecasting model to train meta model.STRING
MEDIUMqlib/contrib/strategy/rule_strategy.py135 # 1. Supporting leverage the get_range_limit result from the decisionCOMMENT
MEDIUMqlib/contrib/strategy/rule_strategy.py303 # 1. Supporting leverage the get_range_limit result from the decisionCOMMENT
MEDIUMqlib/contrib/strategy/rule_strategy.py385 # 1. Supporting leverage the get_range_limit result from the decisionCOMMENT
MEDIUMqlib/contrib/strategy/signal_strategy.py77 # 1. Supporting leverage the get_range_limit result from the decisionCOMMENT
MEDIUMqlib/contrib/strategy/signal_strategy.py145 # So it only leverage the first col of signalCOMMENT
MEDIUMqlib/contrib/strategy/signal_strategy.py300 # 1. Supporting leverage the get_range_limit result from the decisionCOMMENT
MEDIUMqlib/contrib/strategy/optimizer/optimizer.py229 # no shorting and leverageCOMMENT
MEDIUMqlib/backtest/signal.py63 # the latest signal leverage more recent data and therefore is used in trading.COMMENT
MEDIUMqlib/model/base.py18 """leverage Python syntactic sugar to make the models' behaviors like functions"""STRING
MEDIUMexamples/benchmarks/TFT/libs/tft_model.py275 # Use same value layer to facilitate interpCOMMENT
Over-Commented Block28 hits · 28 pts
SeverityFileLineSnippetContext
LOWqlib/config.py141 "expression_provider": "LocalExpressionProvider",COMMENT
LOWqlib/contrib/tuner/__init__.py1# pylint: skip-fileCOMMENT
LOWqlib/contrib/rolling/ddgda.py381 # 3) meta model will be stored in `DDG-DA`COMMENT
LOWqlib/contrib/meta/data_selection/dataset.py201 # 2009-01-05 2009-02-06 0.145809COMMENT
LOWqlib/backtest/decision.py61 start_time: pd.TimestampCOMMENT
LOWqlib/backtest/executor.py441 # - Normally, user will create a strategy and embed it into Qlib's executor and simulator interactionCOMMENT
LOWqlib/data/data.py761 ]COMMENT
LOWqlib/data/_libs/__init__.py1# Copyright (c) Microsoft Corporation.COMMENT
LOWqlib/rl/reward.py61# weight: floatCOMMENT
LOWqlib/rl/reward.py81# rewards[name] = (rew.reward.build(), rew.weight)COMMENT
LOWqlib/rl/utils/env_wrapper.py101 seed_iterator: Optional[Iterable[InitialStateType]],COMMENT
LOWqlib/strategy/__init__.py1# Copyright (c) Microsoft Corporation.COMMENT
LOWdocs/conf.py1# Copyright (c) Microsoft Corporation.COMMENT
LOWdocs/conf.py61# |version| and |release|, also used in various other places throughout theCOMMENT
LOWdocs/conf.py101# a list of builtin themes.COMMENT
LOWdocs/conf.py161 #COMMENT
LOWexamples/benchmarks/TFT/expt_settings/configs.py1# coding=utf-8COMMENT
LOWexamples/benchmarks/TFT/expt_settings/__init__.py1# coding=utf-8COMMENT
LOW…amples/benchmarks/TFT/data_formatters/qlib_Alpha158.py1# coding=utf-8COMMENT
LOWexamples/benchmarks/TFT/data_formatters/__init__.py1# coding=utf-8COMMENT
LOWexamples/benchmarks/TFT/data_formatters/base.py1# coding=utf-8COMMENT
LOWexamples/benchmarks/TFT/libs/hyperparam_opt.py1# coding=utf-8COMMENT
LOWexamples/benchmarks/TFT/libs/__init__.py1# coding=utf-8COMMENT
LOWexamples/benchmarks/TFT/libs/tft_model.py1# coding=utf-8COMMENT
LOWexamples/benchmarks/TFT/libs/utils.py1# coding=utf-8COMMENT
LOWexamples/benchmarks/LightGBM/multi_freq_handler.py61 # close0 open0 low0 ... vwap1 vwap16 LABEL0COMMENT
LOWexamples/benchmarks/LightGBM/multi_freq_handler.py81COMMENT
LOWexamples/benchmarks/LightGBM/multi_freq_handler.py101 # fields: Ref(Mean($close, 15), 225), ..., Mean($close, 15)COMMENT
Self-Referential Comments6 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMqlib/utils/file.py60 >>> # The following code will create an archive file('~/tmp/test_file') containing 'test_doc_i'(i is 0-10) filesSTRING
MEDIUMqlib/utils/file.py113 >>> # The following code is to print all the file names in 'test_unpack.tar.gz'STRING
MEDIUMqlib/workflow/online/manager.py358 # This method is not implemented in the proper way!!!COMMENT
MEDIUMqlib/data/dataset/handler.py287 # This method is extracted for sharing in subclassesCOMMENT
MEDIUMtests/test_workflow.py12 # Creating the directory manually doesn't work with mlflow,COMMENT
MEDIUMdocs/conf.py8# This file is execfile()d with the current directory set to itsCOMMENT
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHqlib/data/data.py792 # Instead, I'll add a cache for the index file.COMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWqlib/utils/index_data.py111 # Check if all elements in idx_list are of the same typeCOMMENT
LOWqlib/utils/index_data.py114 # Check if all elements in idx_list are of the same datetime64 precisionCOMMENT
LOW…amples/benchmarks/TFT/data_formatters/qlib_Alpha158.py138 # Set all to str so that we don't have mixed integer/string columnsCOMMENT
LOWscripts/data_collector/utils.py223 # Check if response contains valid dataCOMMENT
Slop Phrases2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/data_mid_layer_tests/test_dataloader.py32 # Of course you can use StaticDataLoaderCOMMENT
MEDIUMtests/data_mid_layer_tests/test_dataloader.py56 # Then you can use it wth DataHandler;COMMENT
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOWqlib/data/ops.py1120 # TODO: implement in CythonCOMMENT
LOWqlib/data/ops.py1335 # TODO: implement in CythonCOMMENT
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWqlib/workflow/task/manage.py485def run_task(CODE
LOWqlib/data/dataset/handler.py552 def process_data(self, with_fit: bool = False):CODE
Structural Annotation Overuse1 hit · 2 pts
SeverityFileLineSnippetContext
LOWqlib/data/data.py746 # NOTE: This class is not multi-threading-safe!!!!COMMENT