AI Slop Code RIsk Monitor

polakowo/vectorbt

The backtesting engine that gives you an unfair advantage. Run thousands of trading ideas before others finish one.

5.5 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for polakowo/vectorbt, a Python project with 9,335 GitHub stars. SynthScan examined 130,017 lines of code across 167 source files, recording 646 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 5.5 (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.

5.5
Adjusted Signal
5.5
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
9.3K
Stars
Python
Language
130.0K
Lines of Code
167
Files
646
Pattern Hits
2026-10-12
Scan Date
0.15
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 16.3/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 481 finding(s).

Hallucinated Dependency & Supply Chain Risk 6.0/100 · LOW

Are imports declared and package/API names verified? 117 finding(s).

Agent Over-Engineering Ratio 14.2/100 · LOW

Are wrappers, guards, and repeated structures necessary? 384 finding(s).

PR Review Velocity Impact 26.3/100 · MEDIUM

Which changes need focused human review? 646 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

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.

CRITICAL 1HIGH 24MEDIUM 10LOW 611

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 646 distinct pattern matches across 15 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.

Hyper-Verbose Identifiers277 hits · 248 pts
SeverityFileLineSnippetContext
LOWvectorbt/_engine.py83def callback_unsupported_with_rust() -> RustSupport:CODE
LOWvectorbt/_engine.py100def non_neg_int_compatible_with_rust(name: str, value: tp.Optional[int]) -> RustSupport:CODE
LOWvectorbt/_engine.py107def array_compatible_with_rust(a: tp.Any, dtype: tp.Any = np.float64) -> RustSupport:CODE
LOWvectorbt/_engine.py127def exact_array_compatible_with_rust(a: tp.Any, dtype: tp.Any = np.float64) -> RustSupport:CODE
LOWvectorbt/_engine.py153def prepare_flex_array_for_rust(CODE
LOW⚡vectorbt/_engine.py171def matching_shape_compatible_with_rust(name: str, a: tp.Any, other: tp.Any) -> RustSupport:CODE
LOW⚡vectorbt/_engine.py180def array_shape_compatible_with_rust(name: str, a: tp.Any, shape: tp.Shape) -> RustSupport:CODE
LOW⚡vectorbt/_engine.py189def flex_array_compatible_with_rust(CODE
LOWvectorbt/_engine.py225def scalar_compatible_with_rust(name: str, value: tp.Any) -> RustSupport:CODE
LOWvectorbt/_engine.py236def unit_interval_compatible_with_rust(name: str, value: tp.Any) -> RustSupport:CODE
LOW⚡vectorbt/_engine.py247def non_neg_array_compatible_with_rust(name: str, a: tp.Any) -> RustSupport:CODE
LOW⚡vectorbt/_engine.py257def array_and_non_neg_int_compatible_with_rust(a: tp.Any, name: str, value: tp.Optional[int]) -> RustSupport:CODE
LOW⚡vectorbt/_engine.py262def mask_and_array_compatible_with_rust(a: tp.Any, mask: tp.Any) -> RustSupport:CODE
LOW⚡vectorbt/_engine.py271def mask_and_values_compatible_with_rust(a: tp.Any, mask: tp.Any, values: tp.Any) -> RustSupport:CODE
LOW⚡vectorbt/_engine.py280def col_range_compatible_with_rust(col_range: tp.Any) -> RustSupport:CODE
LOW⚡vectorbt/_engine.py289def col_map_compatible_with_rust(col_map: tp.Any) -> RustSupport:CODE
LOWvectorbt/_engine.py301def rolling_compatible_with_rust(a: tp.Any, window: int, minp: tp.Optional[int]) -> RustSupport:CODE
LOWvectorbt/root_accessors.py101def register_dataframe_accessor(name: str) -> tp.Callable:CODE
LOWvectorbt/root_accessors.py129def register_series_vbt_accessor(name: str, parent: tp.Type[DirNamesMixin] = Vbt_SRAccessor) -> tp.Callable:CODE
LOWvectorbt/root_accessors.py134def register_dataframe_vbt_accessor(name: str, parent: tp.Type[DirNamesMixin] = Vbt_DFAccessor) -> tp.Callable:CODE
LOWvectorbt/records/mapped_array.py379def combine_mapped_with_other(CODE
LOWvectorbt/records/dispatch.py106def record_array_compatible_with_rust(records: tp.Any) -> RustSupport:CODE
LOWvectorbt/records/nb.py79def record_col_range_select_nb(records: tp.RecordArray, col_range: tp.ColRange, new_cols: tp.Array1d) -> tp.RecordArray:CODE
LOWvectorbt/records/nb.py571def reduce_mapped_to_array_nb(CODE
LOWvectorbt/records/nb.py605def reduce_mapped_to_idx_array_nb(CODE
LOWvectorbt/records/base.py858 def override_field_config_doc(cls, __pdoc__: dict, source_cls: tp.Optional[type] = None) -> None:CODE
LOWvectorbt/signals/accessors.py1528 def partition_pos_rank_mapped(self, group_by: tp.GroupByLike = None, **kwargs) -> MappedArray:CODE
LOWvectorbt/signals/dispatch.py327def generate_rand_enex_by_prob(CODE
LOWvectorbt/signals/nb.py382def generate_rand_ex_by_prob_nb(CODE
LOWvectorbt/signals/nb.py525def generate_rand_enex_by_prob_nb(CODE
LOWvectorbt/signals/nb.py1000def generate_ohlc_stop_enex_nb(CODE
LOWvectorbt/signals/nb.py1163def between_partition_ranges_nb(a: tp.Array2d) -> tp.RecordArray:CODE
LOWvectorbt/labels/nb.py208def bn_cont_sat_trend_labels_nb(CODE
LOWvectorbt/utils/checks.py126def is_engine_compatible_func(CODE
LOWvectorbt/utils/checks.py614def assert_dict_sequence_valid(arg: tp.DictLikeSequence, lvl_keys: tp.Sequence[tp.MaybeSequence[str]]) -> None:CODE
LOWvectorbt/utils/array_.py63def uniform_summing_to_one_nb(n: int) -> tp.Array1d:CODE
LOWvectorbt/utils/decorators.py527def attach_binary_magic_methods(STRING
LOWvectorbt/utils/decorators.py591def attach_unary_magic_methods(translate_func: UnaryTranslateFuncT, config: tp.Optional[Config] = None) -> WrapperFuncT:STRING
LOWvectorbt/portfolio/dispatch.py25def order_record_array_compatible_with_rust(records: tp.Any) -> RustSupport:CODE
LOWvectorbt/portfolio/dispatch.py35def trade_record_array_compatible_with_rust(records: tp.Any) -> RustSupport:CODE
LOWvectorbt/portfolio/nb.py1616def resolve_stop_price_and_slippage_nb(CODE
LOWvectorbt/portfolio/nb.py1634def resolve_signal_conflict_nb(CODE
LOWvectorbt/portfolio/nb.py1720def resolve_opposite_entry_nb(CODE
LOWvectorbt/portfolio/nb.py2418def simulate_from_signal_func_nb(CODE
LOWvectorbt/portfolio/nb.py5186def flex_simulate_row_wise_nb(CODE
LOWvectorbt/portfolio/nb.py5768def fill_entry_trades_in_position_nb(CODE
LOWvectorbt/portfolio/nb.py6593def position_coverage_grouped_nb(position_mask: tp.Array2d, group_lens: tp.Array1d) -> tp.Array2d:CODE
LOWvectorbt/portfolio/nb.py6977def benchmark_value_grouped_nb(close: tp.Array2d, group_lens: tp.Array1d, init_cash_grouped: tp.Array1d) -> tp.Array2d:CODE
LOWvectorbt/portfolio/nb.py6994def total_benchmark_return_nb(benchmark_value: tp.Array2d) -> tp.Array1d:CODE
LOWvectorbt/portfolio/decorators.py14def attach_returns_acc_methods(config: Config) -> WrapperFuncT:CODE
LOWvectorbt/generic/dispatch.py1284def flat_reduce_grouped_to_array(CODE
LOWvectorbt/generic/dispatch.py1858def dd_recovery_duration_ratio(CODE
LOWvectorbt/generic/nb.py1209def expanding_matrix_apply_nb(CODE
LOWvectorbt/generic/nb.py1391def reduce_grouped_to_array_nb(CODE
LOWvectorbt/generic/nb.py1415def flat_reduce_grouped_to_array_nb(CODE
LOWvectorbt/generic/nb.py1481def flatten_uniform_grouped_nb(a: tp.Array2d, group_lens: tp.Array1d, in_c_order: bool) -> tp.Array2d:CODE
LOWvectorbt/generic/nb.py1939def dd_recovery_duration_ratio_nb(CODE
LOWvectorbt/returns/accessors.py429 def rolling_annualized_volatility(CODE
LOWvectorbt/returns/accessors.py706 def rolling_information_ratio(CODE
LOWvectorbt/returns/accessors.py847 def rolling_common_sense_ratio(CODE
217 more matches not shown…
Deep Nesting126 hits · 116 pts
SeverityFileLineSnippetContext
LOWvectorbt/px_accessors.py24CODE
LOWvectorbt/px_accessors.py30CODE
LOWvectorbt/records/mapped_array.py431CODE
LOWvectorbt/records/nb.py222CODE
LOWvectorbt/records/nb.py284CODE
LOWvectorbt/records/base.py490CODE
LOWvectorbt/records/base.py599CODE
LOWvectorbt/records/decorators.py20CODE
LOWvectorbt/records/decorators.py58CODE
LOWvectorbt/records/decorators.py28CODE
LOWvectorbt/records/decorators.py90CODE
LOWvectorbt/indicators/factory.py1220CODE
LOWvectorbt/indicators/factory.py1277CODE
LOWvectorbt/indicators/factory.py1350CODE
LOWvectorbt/indicators/factory.py2219CODE
LOWvectorbt/indicators/factory.py2644CODE
LOWvectorbt/indicators/factory.py3135CODE
LOWvectorbt/indicators/factory.py3532CODE
LOWvectorbt/indicators/factory.py3645CODE
LOWvectorbt/indicators/factory.py3823CODE
LOWvectorbt/indicators/factory.py2791CODE
LOWvectorbt/indicators/factory.py3307CODE
LOWvectorbt/indicators/factory.py3743CODE
LOWvectorbt/signals/factory.py192CODE
LOWvectorbt/signals/factory.py703CODE
LOWvectorbt/signals/nb.py92CODE
LOWvectorbt/signals/nb.py159CODE
LOWvectorbt/signals/nb.py413CODE
LOWvectorbt/signals/nb.py571CODE
LOWvectorbt/signals/nb.py736CODE
LOWvectorbt/signals/nb.py1080CODE
LOWvectorbt/signals/nb.py1128CODE
LOWvectorbt/signals/nb.py1163CODE
LOWvectorbt/signals/nb.py1192CODE
LOWvectorbt/signals/nb.py1272CODE
LOWvectorbt/labels/nb.py101CODE
LOWvectorbt/labels/nb.py208CODE
LOWvectorbt/labels/nb.py260CODE
LOWvectorbt/labels/nb.py306CODE
LOWvectorbt/utils/config.py340CODE
LOWvectorbt/utils/config.py763CODE
LOWvectorbt/utils/schedule_.py108CODE
LOWvectorbt/utils/checks.py220CODE
LOWvectorbt/utils/checks.py286CODE
LOWvectorbt/utils/attr_.py131CODE
LOWvectorbt/utils/mapping.py42CODE
LOWvectorbt/utils/datetime_.py119CODE
LOWvectorbt/utils/decorators.py134CODE
LOWvectorbt/utils/decorators.py204CODE
LOWvectorbt/portfolio/trades.py1012CODE
LOWvectorbt/portfolio/nb.py72CODE
LOWvectorbt/portfolio/nb.py215CODE
LOWvectorbt/portfolio/nb.py1256CODE
LOWvectorbt/portfolio/nb.py1353CODE
LOWvectorbt/portfolio/nb.py1580CODE
LOWvectorbt/portfolio/nb.py1634CODE
LOWvectorbt/portfolio/nb.py1685CODE
LOWvectorbt/portfolio/nb.py1720CODE
LOWvectorbt/portfolio/nb.py1758CODE
LOWvectorbt/portfolio/nb.py1916CODE
66 more matches not shown…
Unused Imports107 hits · 105 pts
SeverityFileLineSnippetContext
LOWvectorbt/_typing.py9CODE
LOWvectorbt/_typing.py11CODE
LOWvectorbt/_typing.py13CODE
LOWvectorbt/_typing.py13CODE
LOWvectorbt/_typing.py14CODE
LOWvectorbt/_typing.py14CODE
LOWvectorbt/_typing.py15CODE
LOWvectorbt/__init__.py12CODE
LOWvectorbt/__init__.py12CODE
LOWvectorbt/__init__.py13CODE
LOWvectorbt/__init__.py16CODE
LOWvectorbt/__init__.py17CODE
LOWvectorbt/__init__.py18CODE
LOWvectorbt/__init__.py19CODE
LOWvectorbt/__init__.py20CODE
LOWvectorbt/__init__.py21CODE
LOWvectorbt/__init__.py22CODE
LOWvectorbt/__init__.py23CODE
LOWvectorbt/__init__.py24CODE
LOWvectorbt/__init__.py25CODE
LOWvectorbt/records/__init__.py10CODE
LOWvectorbt/records/__init__.py11CODE
LOWvectorbt/indicators/__init__.py10CODE
LOWvectorbt/indicators/__init__.py10CODE
LOWvectorbt/indicators/__init__.py10CODE
LOWvectorbt/indicators/__init__.py10CODE
LOWvectorbt/indicators/__init__.py10CODE
LOWvectorbt/indicators/__init__.py10CODE
LOWvectorbt/indicators/__init__.py10CODE
LOWvectorbt/indicators/__init__.py10CODE
LOWvectorbt/signals/__init__.py6CODE
LOWvectorbt/signals/__init__.py7CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/signals/__init__.py8CODE
LOWvectorbt/labels/__init__.py6CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/labels/__init__.py7CODE
LOWvectorbt/utils/__init__.py6CODE
LOWvectorbt/utils/__init__.py6CODE
LOWvectorbt/utils/__init__.py6CODE
LOWvectorbt/utils/__init__.py6CODE
LOWvectorbt/utils/__init__.py6CODE
LOWvectorbt/utils/__init__.py7CODE
LOWvectorbt/utils/__init__.py7CODE
47 more matches not shown…
AI Structural Patterns59 hits · 54 pts
SeverityFileLineSnippetContext
LOWvectorbt/records/mapped_array.py1022CODE
LOWvectorbt/indicators/factory.py1350CODE
LOWvectorbt/indicators/factory.py2219CODE
LOWvectorbt/indicators/factory.py2512CODE
LOWvectorbt/indicators/basic.py264CODE
LOWvectorbt/indicators/basic.py475CODE
LOWvectorbt/signals/accessors.py316CODE
LOWvectorbt/signals/accessors.py570CODE
LOWvectorbt/signals/accessors.py745CODE
LOWvectorbt/signals/accessors.py859CODE
LOWvectorbt/signals/dispatch.py812CODE
LOWvectorbt/signals/dispatch.py983CODE
LOWvectorbt/signals/factory.py192CODE
LOWvectorbt/signals/factory.py703CODE
LOWvectorbt/utils/config.py340CODE
LOWvectorbt/utils/attr_.py194CODE
LOWvectorbt/portfolio/dispatch.py60CODE
LOWvectorbt/portfolio/dispatch.py115CODE
LOWvectorbt/portfolio/dispatch.py243CODE
LOWvectorbt/portfolio/dispatch.py304CODE
LOWvectorbt/portfolio/dispatch.py537CODE
LOWvectorbt/portfolio/dispatch.py738CODE
LOWvectorbt/portfolio/trades.py819CODE
LOWvectorbt/portfolio/trades.py1012CODE
LOWvectorbt/portfolio/nb.py72CODE
LOWvectorbt/portfolio/nb.py215CODE
LOWvectorbt/portfolio/nb.py737CODE
LOWvectorbt/portfolio/nb.py778CODE
LOWvectorbt/portfolio/nb.py1353CODE
LOWvectorbt/portfolio/nb.py1916CODE
LOWvectorbt/portfolio/nb.py2418CODE
LOWvectorbt/portfolio/nb.py3007CODE
LOWvectorbt/portfolio/nb.py3873CODE
LOWvectorbt/portfolio/nb.py4499CODE
LOWvectorbt/portfolio/nb.py5186CODE
LOWvectorbt/portfolio/nb.py6730CODE
LOWvectorbt/portfolio/base.py1624CODE
LOWvectorbt/portfolio/base.py2055CODE
LOWvectorbt/portfolio/base.py3308CODE
LOWvectorbt/generic/accessors.py789CODE
LOWvectorbt/generic/accessors.py1227CODE
LOWvectorbt/generic/accessors.py2327CODE
LOWvectorbt/generic/accessors.py2508CODE
LOWvectorbt/generic/plotting.py372CODE
LOWvectorbt/generic/plotting.py521CODE
LOWvectorbt/generic/plotting.py647CODE
LOWvectorbt/generic/plotting.py770CODE
LOWvectorbt/generic/stats_builder.py89CODE
LOWvectorbt/generic/ranges.py407CODE
LOWvectorbt/generic/drawdowns.py641CODE
LOWvectorbt/generic/plots_builder.py74CODE
LOWvectorbt/returns/accessors.py1350CODE
LOWvectorbt/data/custom.py441CODE
LOWvectorbt/data/custom.py614CODE
LOWvectorbt/base/accessors.py621CODE
LOWvectorbt/base/array_wrapper.py535CODE
LOWvectorbt/base/array_wrapper.py611CODE
LOWvectorbt/base/reshape_fns.py358CODE
LOWtests/test_data.py34CODE
Cross-Language Confusion9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHvectorbt/indicators/factory.py3577 if not pd.Index.equals(r.index, test_df.index):CODE
HIGHvectorbt/indicators/factory.py3589 if not pd.Index.equals(result.index, test_df.index):CODE
HIGHvectorbt/indicators/factory.py3764 if pd.Index.equals(input_list[0].index, o.index):CODE
HIGHvectorbt/utils/checks.py162 return pd.Index.equals(arg1, arg2)CODE
HIGHvectorbt/utils/checks.py171 return pd.Index.equals(arg1, arg2)CODE
HIGHvectorbt/utils/checks.py567 if arg1.equals(arg2):CODE
HIGHvectorbt/base/index_fns.py273 if pd.Index.equals(index1, index2):CODE
HIGHvectorbt/base/column_grouper.py201 if not pd.Index.equals(group_by, self.group_by):CODE
HIGHvectorbt/base/column_grouper.py215 if pd.Index.equals(group_by, self.group_by):CODE
Empty Error Handlers9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHvectorbt/indicators/factory.py1697except:CODE
HIGHvectorbt/utils/checks.py215except:CODE
HIGHvectorbt/utils/checks.py335except:CODE
HIGHvectorbt/utils/checks.py346except:CODE
HIGHvectorbt/base/index_fns.py336except ValueError:CODE
HIGHvectorbt/base/column_grouper.py45except (IndexError, KeyError):CODE
HIGHdocs/generate_api.py1171except (subprocess.CalledProcessError, OSError):CODE
HIGHdocs/generate_api.py624except ValueError:CODE
HIGHdocs/generate_api.py1214except Exception:CODE
Modern Structural Boilerplate23 hits · 23 pts
SeverityFileLineSnippetContext
LOWvectorbt/_settings.py103 def set_theme(self, theme: str) -> None:CODE
LOWvectorbt/records/__init__.py13__all__ = ["MappedArray", "Records"]CODE
LOWvectorbt/indicators/__init__.py29__all__ = ["IndicatorFactory", "talib", "pandas_ta", "ta", "MA", "MSTD", "BBANDS", "RSI", "STOCH", "MACD", "ATR", "OBV"]CODE
LOWvectorbt/signals/enums.py11__all__ = ["StopType", "FactoryMode"]CODE
LOWvectorbt/signals/__init__.py22__all__ = [CODE
LOWvectorbt/labels/enums.py11__all__ = ["TrendMode"]CODE
LOWvectorbt/labels/__init__.py9__all__ = ["FMEAN", "FSTD", "FMIN", "FMAX", "FIXLB", "MEANLB", "LEXLB", "TRENDLB", "BOLB"]CODE
LOWvectorbt/utils/config.py99def set_dict_item(dct: dict, k: tp.Any, v: tp.Any, force: bool = False) -> None:CODE
LOWvectorbt/utils/config.py832 def update_config(self, *args, **kwargs) -> None:CODE
LOWvectorbt/utils/schedule_.py18logger = logging.getLogger(__name__)CODE
LOWvectorbt/utils/__init__.py14__all__ = [CODE
LOWvectorbt/utils/random_.py13def set_seed_nb(seed: int) -> None:CODE
LOWvectorbt/utils/random_.py18def set_seed(seed: int) -> None:CODE
LOWvectorbt/portfolio/enums.py13__all__ = [CODE
LOWvectorbt/portfolio/__init__.py12__all__ = ["Portfolio", "Orders", "Logs", "Trades", "EntryTrades", "ExitTrades", "Positions"]CODE
LOWvectorbt/portfolio/nb.py1233def update_open_pos_stats_nb(record: tp.Record, position_now: float, price: float) -> None:CODE
LOWvectorbt/generic/enums.py13__all__ = ["RangeStatus", "DrawdownStatus", "drawdown_dt", "range_dt"]CODE
LOWvectorbt/generic/__init__.py13__all__ = ["Ranges", "Drawdowns", "RangeSplitter", "RollingSplitter", "ExpandingSplitter"]CODE
LOWvectorbt/data/__init__.py10__all__ = [CODE
LOWvectorbt/data/updater.py21logger = logging.getLogger(__name__)CODE
LOWvectorbt/messaging/telegram.py23logger = logging.getLogger(__name__)CODE
LOWvectorbt/messaging/__init__.py6__all__ = []CODE
LOWvectorbt/base/__init__.py8__all__ = ["ArrayWrapper"]CODE
Self-Referential Comments7 hits · 19 pts
SeverityFileLineSnippetContext
MEDIUMvectorbt/indicators/factory.py2922 # Create a new instanceCOMMENT
MEDIUMvectorbt/portfolio/nb.py3225 ... # Create a temporary array and pass it down the stackSTRING
MEDIUMvectorbt/portfolio/base.py2041 # Create an instanceCOMMENT
MEDIUMvectorbt/portfolio/base.py3170 # Create an instanceCOMMENT
MEDIUMvectorbt/portfolio/base.py4135 # Create an instanceCOMMENT
MEDIUMtests/test_base.py19# Initialize global variablesCOMMENT
MEDIUMdocs/generate_api.py1# This file is a modified derivative of pdoc3.COMMENT
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHvectorbt/indicators/factory.py3433Build an indicator class around a TA-Lib function. Requires [TA-Lib](https://github.com/mrjbq7/ta-lib) installeSTRING
HIGHvectorbt/indicators/factory.py3652Build an indicator class around a pandas-ta function. Requires [pandas-ta](https://github.com/twopirllc/pandas-STRING
HIGHvectorbt/indicators/factory.py3862Build an indicator class around a ta class. Requires [ta](https://github.com/bukosabino/ta) installed. STRING
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHvectorbt/utils/config.py0set of writeable attributes that will be saved/copied along with the config.STRING
HIGHvectorbt/generic/stats_builder.py0set of writeable attributes that will be saved/copied along with the config.STRING
HIGHvectorbt/generic/plots_builder.py0set of writeable attributes that will be saved/copied along with the config.STRING
Excessive Try-Catch Wrapping13 hits · 12 pts
SeverityFileLineSnippetContext
LOWvectorbt/indicators/factory.py3570 except Exception as e:CODE
LOWvectorbt/indicators/factory.py3639 except Exception as e:CODE
LOWvectorbt/utils/template.py251 except Exception as e:CODE
LOWvectorbt/generic/stats_builder.py575 except Exception as e:CODE
LOWvectorbt/generic/plots_builder.py590 except Exception as e:CODE
LOWtests/test_indicators.py56 except Exception:CODE
LOWtests/test_base.py57 except Exception:CODE
LOWdocs/generate_api.py80 except Exception as e:CODE
LOWdocs/generate_api.py420 except Exception as ex:CODE
LOWdocs/generate_api.py1140 except Exception:STRING
LOWdocs/generate_api.py1211 except Exception:STRING
LOWdocs/generate_api.py1214 except Exception:STRING
MEDIUMdocs/generate_api.py279def source(self):CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALvectorbt/messaging/telegram.py521 from telegram.utils.helpers import effective_message_typeCODE
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWvectorbt/signals/nb.py624 # Check if stop price is within barCOMMENT
LOWvectorbt/signals/nb.py847 # Check if stop price is within barCOMMENT
LOWvectorbt/utils/decorators.py435 # Check if object can be hashedCOMMENT
Slop Phrases5 hits · 4 pts
SeverityFileLineSnippetContext
LOWvectorbt/records/nb.py94 col_records["col"][:] = c # don't forget to assign new column indicesCODE
LOWvectorbt/records/nb.py94 col_records["col"][:] = c # don't forget to assign new column indicesCODE
LOWvectorbt/records/base.py387 Don't forget to decorate the class with `@override_field_config` to inherit configs from base classes.STRING
LOWvectorbt/portfolio/base.py2313 If you generated signals using close price, don't forget to shift your signals by one tickSTRING
MEDIUMvectorbt/data/custom.py200 It's only used in vectorbt for demonstration purposes.STRING
AI Slop Vocabulary1 hit · 1 pts
SeverityFileLineSnippetContext
MEDIUMvectorbt/portfolio/base.py67 model futures with [contract multipliers](https://vectorbt.pro/features/backtesting/fees-slippage-and-leverage/#contSTRING