Free, open source crypto trading bot
This report presents the forensic synthetic code analysis of freqtrade/freqtrade, a Python project with 52,315 GitHub stars. SynthScan v2.0 examined 166,078 lines of code across 633 source files, recording 2514 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 21.6 places this repository in the Moderate 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).
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.
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.
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.
The scanner identified 2514 distinct pattern matches across 18 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ft_client/freqtrade_client/ft_rest_client.py | 268 | def list_open_trades_custom_data(self, key=None, limit=100, offset=0): | CODE |
| LOW | ft_client/test_client/test_rest_client.py | 196 | def test_ft_client_argparsing(mocker, params, expected_args, expected_kwargs, caplog): | CODE |
| LOW | tests/conftest.py | 94 | def pytest_xdist_make_scheduler(config, log): | CODE |
| LOW | tests/conftest.py | 234 | def patched_configuration_load_config_file(mocker, config) -> None: | CODE |
| LOW | tests/conftest.py | 420 | def create_mock_trades_with_leverage(fee, use_db: bool = True): | CODE |
| LOW | tests/conftest.py | 507 | def fixture_set_mp_start_method(): | CODE |
| LOW | tests/conftest.py | 1830 | def limit_buy_order_old_partial(): | CODE |
| LOW | tests/conftest.py | 1848 | def limit_buy_order_old_partial_canceled(limit_buy_order_old_partial): | CODE |
| LOW | tests/conftest.py | 1856 | def limit_buy_order_canceled_empty(request): | CODE |
| LOW | tests/conftest.py | 2744 | def limit_buy_order_usdt_open(): | CODE |
| LOW | tests/conftest.py | 2772 | def limit_sell_order_usdt_open(): | CODE |
| LOW | tests/conftest.py | 2816 | def market_buy_order_usdt_doublefee(market_buy_order_usdt): | CODE |
| LOW | tests/conftest.py | 2906 | def funding_rate_history_hourly(): | CODE |
| LOW | tests/conftest.py | 2996 | def funding_rate_history_octohourly(): | CODE |
| LOW | tests/test_plotting.py | 207 | def test_generate_candlestick_graph_no_signals_no_trades(default_conf, mocker, testdatadir, caplog): | CODE |
| LOW | tests/test_plotting.py | 251 | def test_generate_candlestick_graph_no_trades(default_conf, mocker, testdatadir): | CODE |
| LOW | tests/test_plotting.py | 342 | def test_generate_profit_graph(testdatadir): | CODE |
| LOW | tests/test_plotting.py | 398 | def test_start_plot_dataframe(mocker): | CODE |
| LOW | tests/test_plotting.py | 415 | def test_load_and_plot_trades(default_conf, mocker, caplog, testdatadir): | CODE |
| LOW | tests/test_plotting.py | 460 | def test_start_plot_profit_error(mocker): | CODE |
| LOW | tests/test_misc.py | 233 | def test_parse_db_uri_for_logging(conn_url, expected) -> None: | CODE |
| LOW⚡ | tests/test_configuration.py | 655 | def test_validate_default_conf(default_conf) -> None: | CODE |
| LOW⚡ | tests/test_configuration.py | 661 | def test_validate_fiat_currency_options(default_conf, fiat) -> None: | CODE |
| LOW⚡ | tests/test_configuration.py | 670 | def test_validate_max_open_trades(default_conf): | CODE |
| LOW | tests/test_configuration.py | 49 | def test_load_config_missing_attributes(default_conf) -> None: | CODE |
| LOW | tests/test_configuration.py | 63 | def test_load_config_incorrect_stake_amount(default_conf) -> None: | CODE |
| LOW | tests/test_configuration.py | 83 | def test_load_config_file_error(default_conf, mocker, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 96 | def test_load_config_file_error_range(default_conf, mocker, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 157 | def test_load_config_max_open_trades_zero(default_conf, mocker, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 169 | def test_load_config_combine_dicts(default_conf, mocker, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 230 | def test_from_recursive_files(testdatadir) -> None: | CODE |
| LOW | tests/test_configuration.py | 276 | def test_load_config_max_open_trades_minus_one(default_conf, mocker, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 290 | def test_load_config_file_exception(mocker) -> None: | CODE |
| LOW | tests/test_configuration.py | 312 | def test_load_config_with_params(default_conf, mocker) -> None: | CODE |
| LOW | tests/test_configuration.py | 407 | def test_load_custom_strategy(default_conf, mocker, tmp_path) -> None: | CODE |
| LOW | tests/test_configuration.py | 443 | def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 475 | def test_setup_configuration_with_arguments(mocker, default_conf, caplog, tmp_path) -> None: | CODE |
| LOW | tests/test_configuration.py | 532 | def test_setup_configuration_with_stratlist(mocker, default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 577 | def test_hyperopt_with_arguments(mocker, default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 605 | def test_cli_verbose_with_params(default_conf, mocker, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 643 | def test_load_config_warn_forcebuy(default_conf, mocker, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 793 | def test_validate_ask_orderbook(default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 811 | def test_validate_time_in_force(default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 835 | def test__validate_order_types(default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 872 | def test__validate_unfilledtimeout(default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 898 | def test__validate_pricing_rules(default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 935 | def test__validate_freqai_include_timeframes(default_conf, caplog) -> None: | CODE |
| LOW | tests/test_configuration.py | 1048 | def test__validate_demo_trading(default_conf_usdt) -> None: | CODE |
| LOW | tests/test_configuration.py | 1064 | def test_validate_edge_removal(default_conf): | CODE |
| LOW | tests/test_configuration.py | 1075 | def test_load_config_test_comments() -> None: | CODE |
| LOW | tests/test_configuration.py | 1085 | def test_load_config_default_exchange(all_conf) -> None: | CODE |
| LOW | tests/test_configuration.py | 1098 | def test_load_config_default_exchange_name(all_conf) -> None: | CODE |
| LOW | tests/test_configuration.py | 1111 | def test_load_config_stoploss_exchange_limit_ratio(all_conf) -> None: | CODE |
| LOW | tests/test_configuration.py | 1126 | def test_load_config_default_subkeys(all_conf, keys) -> None: | CODE |
| LOW | tests/test_configuration.py | 1159 | def test_pairlist_resolving_with_config(mocker, default_conf): | CODE |
| LOW | tests/test_configuration.py | 1194 | def test_pairlist_resolving_with_config_pl(mocker, default_conf): | CODE |
| LOW | tests/test_configuration.py | 1215 | def test_pairlist_resolving_with_config_pl_not_exists(mocker, default_conf): | CODE |
| LOW | tests/test_configuration.py | 1233 | def test_pairlist_resolving_fallback(mocker, tmp_path): | CODE |
| LOW | tests/test_configuration.py | 1268 | def test_process_temporary_deprecated_settings(mocker, default_conf, setting, caplog): | CODE |
| LOW | tests/test_configuration.py | 1314 | def test_process_removed_settings(mocker, default_conf, setting): | CODE |
| 1282 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/strategy/strats/hyperoptable_strategy_v2.py | 0 | strategy used by tests freqtrade bot. please do not modify this strategy, it's intended for internal use only. please lo | STRING |
| HIGH | tests/strategy/strats/hyperoptable_strategy.py | 0 | strategy used by tests freqtrade bot. please do not modify this strategy, it's intended for internal use only. please lo | STRING |
| HIGH | …strategy/strats/strategy_test_v3_custom_entry_price.py | 0 | strategy used by tests freqtrade bot. please do not modify this strategy, it's intended for internal use only. please lo | STRING |
| HIGH | tests/strategy/strats/informative_decorator_strategy.py | 0 | strategy used by tests freqtrade bot. please do not modify this strategy, it's intended for internal use only. please lo | STRING |
| HIGH | tests/strategy/strats/freqai_test_classifier.py | 0 | test strategy - used for testing freqai multimodel functionalities. do not use in production. | STRING |
| HIGH | tests/strategy/strats/freqai_rl_test_strat.py | 0 | test strategy - used for testing freqai multimodel functionalities. do not use in production. | STRING |
| HIGH | tests/strategy/strats/freqai_test_strat.py | 0 | test strategy - used for testing freqai multimodel functionalities. do not use in production. | STRING |
| HIGH | …tegy/strats/freqai_test_multimodel_classifier_strat.py | 0 | test strategy - used for testing freqai multimodel functionalities. do not use in production. | STRING |
| HIGH | tests/strategy/strats/freqai_test_multimodel_strat.py | 0 | test strategy - used for testing freqai multimodel functionalities. do not use in production. | STRING |
| HIGH | tests/strategy/strats/strategy_test_v2.py | 0 | adds several different ta indicators to the given dataframe performance note: for the best performance be frugal on the | STRING |
| HIGH | docs/strategy-customization.md | 0 | adds several different ta indicators to the given dataframe performance note: for the best performance be frugal on the | STRING |
| HIGH | freqtrade/templates/sample_strategy.py | 0 | adds several different ta indicators to the given dataframe performance note: for the best performance be frugal on the | STRING |
| HIGH | tests/strategy/strats/strategy_test_v2.py | 0 | based on ta indicators, populates the exit signal for the given dataframe :param dataframe: dataframe :param metadata: a | STRING |
| HIGH | docs/strategy-customization.md | 0 | based on ta indicators, populates the exit signal for the given dataframe :param dataframe: dataframe :param metadata: a | STRING |
| HIGH | freqtrade/templates/sample_strategy.py | 0 | based on ta indicators, populates the exit signal for the given dataframe :param dataframe: dataframe :param metadata: a | STRING |
| HIGH | freqtrade/strategy/interface.py | 0 | based on ta indicators, populates the exit signal for the given dataframe :param dataframe: dataframe :param metadata: a | STRING |
| HIGH | docs/freqai-configuration.md | 0 | *only functional with freqai enabled strategies* this optional function will be called once with the dataframe of the ba | STRING |
| HIGH | docs/freqai-feature-engineering.md | 0 | *only functional with freqai enabled strategies* this optional function will be called once with the dataframe of the ba | STRING |
| HIGH | docs/strategy_migration.md | 0 | *only functional with freqai enabled strategies* this optional function will be called once with the dataframe of the ba | STRING |
| HIGH | freqtrade/templates/FreqaiExampleStrategy.py | 0 | *only functional with freqai enabled strategies* this optional function will be called once with the dataframe of the ba | STRING |
| HIGH | freqtrade/templates/FreqaiExampleHybridStrategy.py | 0 | *only functional with freqai enabled strategies* this optional function will be called once with the dataframe of the ba | STRING |
| HIGH | freqtrade/strategy/interface.py | 0 | *only functional with freqai enabled strategies* this optional function will be called once with the dataframe of the ba | STRING |
| HIGH | docs/freqai-configuration.md | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …eqai/prediction_models/LightGBMRegressorMultiTarget.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | freqtrade/freqai/prediction_models/XGBoostRegressor.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …qai/prediction_models/LightGBMClassifierMultiTarget.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …qtrade/freqai/prediction_models/XGBoostRFClassifier.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …reqai/prediction_models/XGBoostRegressorMultiTarget.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | freqtrade/freqai/prediction_models/XGBoostClassifier.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …eqtrade/freqai/prediction_models/LightGBMClassifier.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …reqai/prediction_models/PyTorchTransformerRegressor.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …eqtrade/freqai/prediction_models/XGBoostRFRegressor.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | freqtrade/freqai/prediction_models/LightGBMRegressor.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …qai/prediction_models/SKLearnRandomForestClassifier.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | …qtrade/freqai/prediction_models/PyTorchMLPRegressor.py | 0 | user sets up the training and test data to fit their desired model here :param data_dictionary: the dictionary holding a | STRING |
| HIGH | docs/strategy_migration.md | 0 | *only functional with freqai enabled strategies* this function will automatically expand the defined features on the con | STRING |
| HIGH | freqtrade/templates/FreqaiExampleStrategy.py | 0 | *only functional with freqai enabled strategies* this function will automatically expand the defined features on the con | STRING |
| HIGH | freqtrade/templates/FreqaiExampleHybridStrategy.py | 0 | *only functional with freqai enabled strategies* this function will automatically expand the defined features on the con | STRING |
| HIGH | freqtrade/strategy/interface.py | 0 | *only functional with freqai enabled strategies* this function will automatically expand the defined features on the con | STRING |
| HIGH | docs/strategy_migration.md | 0 | *only functional with freqai enabled strategies* this function will automatically expand the defined features on the con | STRING |
| HIGH | freqtrade/templates/FreqaiExampleStrategy.py | 0 | *only functional with freqai enabled strategies* this function will automatically expand the defined features on the con | STRING |
| HIGH | freqtrade/templates/FreqaiExampleHybridStrategy.py | 0 | *only functional with freqai enabled strategies* this function will automatically expand the defined features on the con | STRING |
| HIGH | freqtrade/strategy/interface.py | 0 | *only functional with freqai enabled strategies* this function will automatically expand the defined features on the con | STRING |
| HIGH | docs/strategy_migration.md | 0 | *only functional with freqai enabled strategies* required function to set the targets for the model. all targets must be | STRING |
| HIGH | docs/freqai-reinforcement-learning.md | 0 | *only functional with freqai enabled strategies* required function to set the targets for the model. all targets must be | STRING |
| HIGH | freqtrade/templates/FreqaiExampleStrategy.py | 0 | *only functional with freqai enabled strategies* required function to set the targets for the model. all targets must be | STRING |
| HIGH | freqtrade/templates/FreqaiExampleHybridStrategy.py | 0 | *only functional with freqai enabled strategies* required function to set the targets for the model. all targets must be | STRING |
| HIGH | freqtrade/strategy/interface.py | 0 | *only functional with freqai enabled strategies* required function to set the targets for the model. all targets must be | STRING |
| HIGH | freqtrade/exchange/hitbtc.py | 0 | coinex exchange class. contains adjustments needed for freqtrade to work with this exchange. please note that this excha | STRING |
| HIGH | freqtrade/exchange/kucoin.py | 0 | coinex exchange class. contains adjustments needed for freqtrade to work with this exchange. please note that this excha | STRING |
| HIGH | freqtrade/exchange/bitvavo.py | 0 | coinex exchange class. contains adjustments needed for freqtrade to work with this exchange. please note that this excha | STRING |
| HIGH | freqtrade/exchange/luno.py | 0 | coinex exchange class. contains adjustments needed for freqtrade to work with this exchange. please note that this excha | STRING |
| HIGH | freqtrade/exchange/modetrade.py | 0 | coinex exchange class. contains adjustments needed for freqtrade to work with this exchange. please note that this excha | STRING |
| HIGH | freqtrade/exchange/coinex.py | 0 | coinex exchange class. contains adjustments needed for freqtrade to work with this exchange. please note that this excha | STRING |
| HIGH | freqtrade/exchange/okx.py | 0 | binance exchange class. contains adjustments needed for freqtrade to work with this exchange. | STRING |
| HIGH | freqtrade/exchange/hyperliquid.py | 0 | binance exchange class. contains adjustments needed for freqtrade to work with this exchange. | STRING |
| HIGH | freqtrade/exchange/bybit.py | 0 | binance exchange class. contains adjustments needed for freqtrade to work with this exchange. | STRING |
| HIGH | freqtrade/exchange/kraken.py | 0 | binance exchange class. contains adjustments needed for freqtrade to work with this exchange. | STRING |
| HIGH | freqtrade/exchange/lbank.py | 0 | binance exchange class. contains adjustments needed for freqtrade to work with this exchange. | STRING |
| HIGH | freqtrade/exchange/bitmart.py | 0 | binance exchange class. contains adjustments needed for freqtrade to work with this exchange. | STRING |
| 140 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ft_client/freqtrade_client/__init__.py | 1 | CODE | |
| LOW | tests/strategy/strats/failing_strategy.py | 3 | CODE | |
| LOW | freqtrade/configuration/__init__.py | 3 | CODE | |
| LOW | freqtrade/configuration/__init__.py | 3 | CODE | |
| LOW | freqtrade/configuration/__init__.py | 4 | CODE | |
| LOW | freqtrade/configuration/__init__.py | 5 | CODE | |
| LOW | freqtrade/configuration/__init__.py | 6 | CODE | |
| LOW | freqtrade/configuration/__init__.py | 7 | CODE | |
| LOW | freqtrade/configuration/__init__.py | 8 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 2 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 2 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 2 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 2 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 2 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 2 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 10 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 11 | CODE | |
| LOW | freqtrade/ft_types/__init__.py | 11 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 3 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 4 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 7 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 7 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 7 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 8 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 9 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 10 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 11 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 12 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 13 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 13 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 14 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 15 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 16 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 32 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 32 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 32 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 32 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 32 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 32 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 32 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 41 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 41 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 42 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 43 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 44 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 45 | CODE | |
| LOW | freqtrade/exchange/__init__.py | 46 | CODE | |
| 258 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/optimize/test_lookahead_analysis.py | 366 | assert expected_data1.equals(saved_data1) | CODE |
| HIGH | tests/optimize/test_lookahead_analysis.py | 394 | assert expected_data2.equals(saved_data2) | CODE |
| HIGH | tests/optimize/test_lookahead_analysis.py | 424 | assert expected_data3.equals(saved_data3) | CODE |
| HIGH⚡ | tests/optimize/test_hyperopt.py | 713 | '{"params":{"mfi-value":null,"sell-mfi-value":null},"minimal_roi"' | CODE |
| HIGH⚡ | tests/optimize/test_hyperopt.py | 714 | ':{},"stoploss":null,"trailing_stop":null,"max_open_trades":null}' | CODE |
| HIGH | tests/optimize/test_hyperopt.py | 771 | '{"params":{"mfi-value":null,"sell-mfi-value":null},"minimal_roi":{},"stoploss":null}' | CODE |
| HIGH | tests/optimize/test_hyperopt.py | 828 | assert '{"minimal_roi":{},"stoploss":null}' in out | CODE |
| HIGH | tests/plugins/test_pairlist.py | 1240 | assert not df1.equals(df2) | CODE |
| HIGH | tests/freqtradebot/test_stoploss_on_exchange.py | 102 | # should do nothing and return false | COMMENT |
| HIGH⚡ | tests/freqtradebot/test_freqtradebot.py | 4446 | # delta is 100 which is impossible to reach. hence function will return false | COMMENT |
| HIGH | tests/persistence/test_trade_fromjson.py | 66 | "liquidation_price": null, | CODE |
| HIGH | tests/persistence/test_trade_fromjson.py | 74 | "open_order_id": null, | CODE |
| HIGH | tests/data/test_metrics.py | 554 | assert df.equals(df1) | CODE |
| HIGH | tests/data/test_metrics.py | 606 | assert df.equals(df1) | CODE |
| HIGH⚡ | tests/data/test_datahandler.py | 130 | assert df.columns.equals(df1.columns) | CODE |
| HIGH | tests/data/test_datahandler.py | 357 | assert ohlcv.equals(ohlcv1) | CODE |
| HIGH⚡ | tests/data/test_btanalysis.py | 101 | assert bt_data.equals(bt_data2) | CODE |
| HIGH⚡ | tests/data/test_btanalysis.py | 105 | assert bt_data.equals(bt_data3) | CODE |
| HIGH⚡ | tests/data/test_btanalysis.py | 124 | assert bt_data.equals(bt_data2) | CODE |
| HIGH⚡ | tests/data/test_converter.py | 367 | assert not data_modify.equals(data) | CODE |
| HIGH⚡ | tests/data/test_converter.py | 377 | assert not data_modify.equals(data) | CODE |
| HIGH⚡ | tests/data/test_converter.py | 387 | assert not data_modify.equals(data) | CODE |
| HIGH⚡ | tests/data/test_converter.py | 397 | assert not data_modify.equals(data) | CODE |
| HIGH⚡ | tests/data/test_converter.py | 411 | assert res.equals(trades_history_df) | CODE |
| HIGH | tests/data/test_converter.py | 206 | assert data.equals(df1) | CODE |
| HIGH | tests/data/test_converter.py | 234 | assert dfs.equals(dfm) | CODE |
| HIGH | tests/data/test_converter.py | 235 | assert dfs.equals(df1) | CODE |
| HIGH | tests/data/test_dataprovider.py | 32 | assert ohlcv_history.equals(dp.ohlcv("UNITTEST/BTC", timeframe, candle_type=candletype)) | CODE |
| HIGH | tests/data/test_dataprovider.py | 144 | assert ohlcv_history.equals( | CODE |
| HIGH | tests/data/test_dataprovider.py | 147 | assert ohlcv_history.equals( | CODE |
| HIGH⚡ | tests/data/test_dataprovider.py | 198 | assert ohlcv_history.equals( | CODE |
| HIGH⚡ | tests/data/test_dataprovider.py | 204 | assert ohlcv_history.equals( | CODE |
| HIGH | tests/data/test_dataprovider.py | 420 | assert ohlcv_history.equals(dataframe) | CODE |
| HIGH | tests/data/test_dataprovider.py | 424 | assert ohlcv_history.equals(dataframe) | CODE |
| HIGH | tests/data/test_history.py | 924 | assert stored_data.equals(expected_result) | CODE |
| HIGH | tests/data/test_history.py | 1002 | assert stored_data.equals(existing_data) | CODE |
| HIGH | freqtrade/exchange/exchange_utils.py | 182 | # true then it's true. If it's undefined, then it's most likely true, but not 100% )" | COMMENT |
| HIGH | …trade/freqai/prediction_models/PyTorchMLPClassifier.py | 33 | "n_epochs": null, | STRING |
| HIGH | …qtrade/freqai/prediction_models/PyTorchMLPRegressor.py | 34 | "n_epochs": null, | STRING |
| HIGH | freqtrade/loggers/ft_rich_handler.py | 33 | # Handles pythonw, where stdout/stderr are null, and we return NullFile | COMMENT |
| HIGH | freqtrade/plugins/pairlist/VolatilityFilter.py | 53 | "either None (undefined), 'asc' or 'desc'" | CODE |
| HIGH | freqtrade/plugins/pairlist/rangestabilityfilter.py | 47 | "either None (undefined), 'asc' or 'desc'" | CODE |
| HIGH | freqtrade/data/metrics.py | 647 | against the null) when it cannot be computed - fewer than two | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | ft_client/freqtrade_client/__init__.py | 37 | __all__ = ["FtRestClient"] | CODE |
| LOW | …ts/freqai/test_models/ReinforcementLearner_test_4ac.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ts/freqai/test_models/ReinforcementLearner_test_3ac.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/strategy/strats/hyperoptable_strategy.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/strategy/strats/freqai_test_classifier.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | …tegy/strats/freqai_test_multimodel_classifier_strat.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/strategy/strats/freqai_test_multimodel_strat.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/strategy/strats/freqai_rl_test_strat.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/strategy/strats/freqai_test_strat.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/worker.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/misc.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/wallets.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/wallets.py | 105 | def _update_dry(self) -> None: | CODE |
| LOW | freqtrade/wallets.py | 185 | def _update_live(self) -> None: | CODE |
| LOW⚡ | freqtrade/freqtradebot.py | 367 | def update_all_liquidation_prices(self) -> None: | CODE |
| LOW⚡ | freqtrade/freqtradebot.py | 377 | def update_funding_fees(self) -> None: | CODE |
| LOW | freqtrade/freqtradebot.py | 70 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/freqtradebot.py | 449 | def update_trades_without_assigned_fees(self) -> None: | CODE |
| LOW | freqtrade/configuration/config_validation.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/configuration/configuration.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/configuration/timerange.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | freqtrade/configuration/deploy_config.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/configuration/deprecated_settings.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/configuration/load_config.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/configuration/environment_vars.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/configuration/directory_operations.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/configuration/config_setup.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/hitbtc.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/okx.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/hyperliquid.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/bybit.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/kraken.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/lbank.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/binance_public_data.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/bitmart.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | freqtrade/exchange/exchange.py | 351 | def _set_startup_candle_count(self, config: Config) -> None: | CODE |
| LOW | freqtrade/exchange/exchange.py | 116 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/exchange_ws.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/krakenfutures.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/kucoin.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/bitvavo.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/common.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/bitpanda.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/check_exchange.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/cryptocom.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/bitget.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/gate.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/luno.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/htx.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/modetrade.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/coinex.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/bingx.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/idex.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/exchange/binance.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/freqai/data_kitchen.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/freqai/data_kitchen.py | 597 | def set_all_pairs(self) -> None: | CODE |
| LOW | freqtrade/freqai/utils.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/freqai/freqai_interface.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | freqtrade/freqai/freqai_interface.py | 588 | def set_full_path(self) -> None: | CODE |
| LOW | freqtrade/freqai/data_drawer.py | 29 | logger = logging.getLogger(__name__) | CODE |
| 163 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/conftest.py | 3201 | "minNotional": 0, # stake(before leverage) = 0 | CODE |
| MEDIUM | tests/conftest.py | 3202 | "maxNotional": 100000, # max stake(before leverage) = 5000 | CODE |
| MEDIUM | tests/exchange/test_exchange.py | 6143 | # limit leverage tiers | COMMENT |
| MEDIUM⚡ | tests/exchange/test_binance.py | 684 | # Assert if conftest leverage tiers have less or equal tiers than the exchange | COMMENT |
| MEDIUM | tests/optimize/test_backtesting.py | 632 | # leverage = 5 | COMMENT |
| MEDIUM | tests/optimize/test_backtest_detail.py | 567 | # Test 27: (copy of test26 with leverage) | COMMENT |
| MEDIUM | tests/optimize/test_backtest_detail.py | 589 | # Test 28: (copy of test26 with leverage and as short) | COMMENT |
| MEDIUM | tests/freqtradebot/test_freqtradebot.py | 1027 | # leverage=1.0, open_rate=10.00000000, open_since=...) | COMMENT |
| MEDIUM | tests/freqtradebot/test_freqtradebot.py | 1029 | # leverage=3.0, open_rate=10.00000000, open_since=...) | COMMENT |
| MEDIUM | tests/persistence/test_persistence.py | 796 | # 10 minute limit trade on Binance/Kraken at 1x, 3x leverage | COMMENT |
| MEDIUM | tests/strategy/strats/strategy_test_v3.py | 192 | # Bot-logic must make sure it's an allowed leverage and eventually adjust accordingly. | COMMENT |
| MEDIUM⚡ | freqtrade/freqtradebot.py | 1167 | # Cap leverage between 1.0 and max_leverage. | COMMENT |
| MEDIUM⚡ | freqtrade/freqtradebot.py | 1170 | # Changing leverage currently not possible | COMMENT |
| MEDIUM⚡ | freqtrade/freqtradebot.py | 1175 | # We do however also need min-stake to determine leverage, therefore this is ignored as | COMMENT |
| MEDIUM | freqtrade/freqtradebot.py | 1979 | # Filled val is in quote currency (after leverage) | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 213 | # There are no leverage tiers | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 221 | # Hyperliquid expects leverage to be an int | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 223 | # Hyperliquid needs the parameter leverage. | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 261 | # Docs: The maintenance margin is half of the initial margin at max leverage, | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 263 | # (for 50x max leverage assets) and 16.7% (for 3x max leverage assets) | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 265 | # The key thing here is 'Half of the initial margin at max leverage'. | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 268 | # 2. Assume max leverage, calculate the initial margin by dividing the position value | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 269 | # by the max leverage | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 282 | # Docs: The maintenance margin is half of the initial margin at max leverage | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 283 | # The docs don't explicitly specify maintenance leverage, but this works. | COMMENT |
| MEDIUM⚡ | freqtrade/exchange/hyperliquid.py | 284 | # Double because of the statement 'half of the initial margin at max leverage' | COMMENT |
| MEDIUM | freqtrade/exchange/exchange.py | 3561 | # Fetch all leverage tiers at once | COMMENT |
| MEDIUM | freqtrade/exchange/exchange.py | 3564 | # Must fetch the leverage tiers for each market separately | COMMENT |
| MEDIUM | freqtrade/exchange/exchange.py | 3704 | # Adjust notional by leverage to do a proper comparison | COMMENT |
| MEDIUM | freqtrade/exchange/exchange.py | 3739 | return 1.0 # Default if max leverage cannot be found | CODE |
| MEDIUM | freqtrade/freqai/freqai_interface.py | 296 | # Loop enforcing the sliding window training/backtesting paradigm | COMMENT |
| MEDIUM | freqtrade/optimize/backtesting.py | 1083 | # Cap leverage between 1.0 and max_leverage. | COMMENT |
| MEDIUM | freqtrade/persistence/trade_model.py | 1324 | # Leverage not updated, as we don't allow changing leverage through DCA at the moment. | COMMENT |
| MEDIUM | freqtrade/persistence/trade_model.py | 488 | """Returns true if this is a non-leverage, non-short trade""" | STRING |
| MEDIUM | freqtrade/persistence/wallet_history.py | 33 | # Total position value in `quote_currency` - including leverage | COMMENT |
| MEDIUM | freqtrade/rpc/rpc.py | 906 | # est_stake = rate * pos.position - pos.collateral * (pos.leverage - 1) | COMMENT |
| MEDIUM | freqtrade/rpc/rpc.py | 909 | # = collateral + (pos.collateral * pos.leverage) | COMMENT |
| MEDIUM | freqtrade/rpc/api_server/api_v1.py | 47 | # 2.17: Forceentry - leverage, partial force_exit | COMMENT |
| MEDIUM | freqtrade/strategy/interface.py | 66 | # Version 3 - First version with short and leverage support | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 172 | CODE | |
| LOW | tests/optimize/test_backtesting.py | 2624 | CODE | |
| LOW | tests/plugins/test_pairlist.py | 770 | CODE | |
| LOW | tests/plugins/test_pairlist.py | 1022 | CODE | |
| LOW | tests/exchange_online/test_ccxt_compat.py | 128 | CODE | |
| LOW | tests/exchange_online/test_ccxt_compat.py | 212 | CODE | |
| LOW | tests/rpc/test_rpc_apiserver.py | 915 | CODE | |
| LOW | tests/strategy/test_strategy_helpers.py | 253 | CODE | |
| LOW | scripts/ws_client.py | 197 | CODE | |
| LOW | freqtrade/freqtradebot.py | 79 | CODE | |
| LOW | freqtrade/freqtradebot.py | 449 | CODE | |
| LOW | freqtrade/freqtradebot.py | 516 | CODE | |
| LOW | freqtrade/freqtradebot.py | 613 | CODE | |
| LOW | freqtrade/freqtradebot.py | 1309 | CODE | |
| LOW | freqtrade/freqtradebot.py | 1390 | CODE | |
| LOW | freqtrade/freqtradebot.py | 1596 | CODE | |
| LOW | freqtrade/freqtradebot.py | 1799 | CODE | |
| LOW | freqtrade/freqtradebot.py | 2387 | CODE | |
| LOW | freqtrade/configuration/config_validation.py | 296 | CODE | |
| LOW | freqtrade/configuration/configuration.py | 189 | CODE | |
| LOW | freqtrade/configuration/timerange.py | 134 | CODE | |
| LOW | freqtrade/configuration/environment_vars.py | 14 | CODE | |
| LOW | freqtrade/exchange/hyperliquid.py | 163 | CODE | |
| LOW | freqtrade/exchange/binance_public_data.py | 108 | CODE | |
| LOW | freqtrade/exchange/binance_public_data.py | 232 | CODE | |
| LOW | freqtrade/exchange/binance_public_data.py | 388 | CODE | |
| LOW | freqtrade/exchange/binance_public_data.py | 442 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 649 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 1241 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 2102 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 2509 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 2611 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 3127 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 3340 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 3394 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 3558 | CODE | |
| LOW | freqtrade/exchange/exchange.py | 3628 | CODE | |
| LOW | freqtrade/exchange/exchange_ws.py | 234 | CODE | |
| LOW | freqtrade/exchange/krakenfutures.py | 61 | CODE | |
| LOW | freqtrade/exchange/krakenfutures.py | 142 | CODE | |
| LOW | freqtrade/exchange/exchange_utils.py | 305 | CODE | |
| LOW | freqtrade/exchange/common.py | 122 | CODE | |
| LOW | freqtrade/exchange/common.py | 123 | CODE | |
| LOW | freqtrade/exchange/bitget.py | 104 | CODE | |
| LOW | freqtrade/exchange/gate.py | 109 | CODE | |
| LOW | freqtrade/freqai/utils.py | 94 | CODE | |
| LOW | freqtrade/freqai/freqai_interface.py | 273 | CODE | |
| LOW | freqtrade/freqai/freqai_interface.py | 871 | CODE | |
| LOW | freqtrade/freqai/data_drawer.py | 440 | CODE | |
| LOW | freqtrade/freqai/data_drawer.py | 572 | CODE | |
| LOW | freqtrade/freqai/data_drawer.py | 636 | CODE | |
| LOW | freqtrade/freqai/data_drawer.py | 711 | CODE | |
| LOW | freqtrade/freqai/torch/PyTorchModelTrainer.py | 71 | CODE | |
| LOW | freqtrade/freqai/RL/Base5ActionRLEnv.py | 32 | CODE | |
| LOW | freqtrade/freqai/RL/Base3ActionRLEnv.py | 30 | CODE | |
| LOW | freqtrade/freqai/RL/Base4ActionRLEnv.py | 31 | CODE | |
| LOW | freqtrade/loggers/__init__.py | 126 | CODE | |
| LOW | freqtrade/optimize/backtesting.py | 518 | CODE | |
| LOW | freqtrade/optimize/backtesting.py | 855 | CODE | |
| LOW | freqtrade/optimize/backtesting.py | 1641 | CODE | |
| 68 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_misc.py | 52 | # Create a temporary directory and file | COMMENT |
| MEDIUM | tests/test_wallets.py | 567 | # Create a trade and verify the new currency is added to the wallets | COMMENT |
| MEDIUM | tests/util/test_historic_wallets_migration.py | 262 | # Create a trade with a pair that won't be in markets | COMMENT |
| MEDIUM | tests/util/test_historic_wallets_migration.py | 293 | # Create a trade | COMMENT |
| MEDIUM | tests/util/test_historic_wallets_migration.py | 353 | # Create a trade | COMMENT |
| MEDIUM | tests/util/test_historic_wallets_migration.py | 395 | # Create a trade | COMMENT |
| MEDIUM | tests/persistence/test_persistence.py | 2141 | # Create an order with no filled amount | COMMENT |
| MEDIUM | tests/persistence/test_persistence.py | 2168 | # Create an order with filled amount but wrong status | COMMENT |
| MEDIUM | tests/rpc/test_rpc_apiserver.py | 3377 | # Create a temporary directory and file | COMMENT |
| MEDIUM | tests/rpc/test_rpc_apiserver.py | 3408 | # Create a temporary directory and file | COMMENT |
| MEDIUM | tests/rpc/test_rpc_apiserver.py | 3497 | # Create a temporary directory and file | COMMENT |
| MEDIUM | tests/rpc/test_rpc_apiserver.py | 3535 | # Create a temporary directory and file | COMMENT |
| MEDIUM | tests/rpc/test_rpc.py | 866 | # Create a short and a long position wallet directly to avoid depending on position parsing | COMMENT |
| MEDIUM | tests/data/test_converter_orderflow.py | 91 | # Define the configuration for order flow calculation | COMMENT |
| MEDIUM | tests/data/test_converter_orderflow.py | 320 | # Define the bin size for the first test | COMMENT |
| MEDIUM | tests/data/test_converter_orderflow.py | 576 | # Create a sample DataFrame with known imbalances | COMMENT |
| MEDIUM | tests/data/test_trade_parallelism.py | 30 | # Create a minimal trades DataFrame with 4 trades over time | COMMENT |
| MEDIUM | tests/data/test_history.py | 463 | # Create the Json file | COMMENT |
| MEDIUM | freqtrade/exchange/exchange.py | 268 | # Initialize ccxt objects | COMMENT |
| MEDIUM | freqtrade/freqai/torch/PyTorchTransformerModel.py | 43 | # Define the encoder block of the Transformer | COMMENT |
| MEDIUM | freqtrade/optimize/backtesting.py | 551 | # Create a copy of the dataframe before shifting, that way the entry signal/tag | COMMENT |
| MEDIUM | freqtrade/optimize/analysis/lookahead_helpers.py | 102 | # Create a new empty DataFrame with the desired column names and set the index | COMMENT |
| MEDIUM | …ptimize/hyperopt_loss/hyperopt_loss_short_trade_dur.py | 55 | # Create an alias for This to allow the legacy Method to work as well. | COMMENT |
| MEDIUM | freqtrade/plot/plotting.py | 460 | # Define the graph | COMMENT |
| MEDIUM | freqtrade/plot/plotting.py | 703 | # Create an average close price of all the pairs that were involved. | COMMENT |
| MEDIUM⚡ | freqtrade/templates/sample_strategy.py | 39 | # This class is a sample. Feel free to customize it. | COMMENT |
| MEDIUM | freqtrade/commands/optimize_commands.py | 59 | # Initialize backtesting object | COMMENT |
| MEDIUM | freqtrade/commands/optimize_commands.py | 109 | # Initialize backtesting object | COMMENT |
| MEDIUM | freqtrade/rpc/external_message_consumer.py | 156 | # Create a connection to each producer | COMMENT |
| MEDIUM | freqtrade/rpc/external_message_consumer.py | 204 | # Create the message stream for this channel | COMMENT |
| MEDIUM | freqtrade/rpc/api_server/api_backtest.py | 183 | # Initialize backtesting object | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.sh | 284 | # Verify if 3.11+ is installed | COMMENT |
| LOW | tests/test_pip_audit.py | 59 | # Check if pip-audit found any vulnerabilities | COMMENT |
| LOW | tests/test_pip_audit.py | 64 | # Check if it's an actual vulnerability vs an error | COMMENT |
| LOW | tests/optimize/test_hyperopt.py | 495 | # Check if some indicators are generated. We will not test all of them | COMMENT |
| LOW | tests/plugins/test_pairlist.py | 812 | # Set whitelist_result to None if pairlist is invalid and should produce exception | COMMENT |
| LOW | tests/plugins/test_pairlist.py | 2213 | # Set max_open_trades to 4, the filter should empty the whitelist | COMMENT |
| LOW | tests/plugins/test_pairlist.py | 2233 | # Set max_open_trades to 3, the filter should empty the whitelist | COMMENT |
| LOW | tests/exchange_online/conftest.py | 711 | # Set proxy to test in CI. | COMMENT |
| LOW | tests/exchange_online/test_ccxt_compat.py | 268 | # Check if last-timeframe is within the last 2 intervals | COMMENT |
| LOW | tests/exchange_online/test_ccxt_compat.py | 286 | # Check if last-timeframe is within the last 2 intervals | COMMENT |
| LOW | tests/exchange_online/test_ccxt_compat.py | 328 | # Check if first-timeframe is either the start, or start + 1 | COMMENT |
| LOW | tests/persistence/test_migrations.py | 26 | # Check if init create a session | COMMENT |
| LOW | freqtrade/freqtradebot.py | 300 | # Check if we need to adjust our current positions before attempting to enter new trades. | COMMENT |
| LOW | freqtrade/freqtradebot.py | 1342 | # Check if we can exit our current position for this trade | COMMENT |
| LOW | freqtrade/freqtradebot.py | 1705 | # Check if new candle | COMMENT |
| LOW | freqtrade/configuration/configuration.py | 114 | # Check if the exchange set by the user is supported | COMMENT |
| LOW | freqtrade/configuration/environment_vars.py | 56 | # Check if any ccxt config key is in the key parts | COMMENT |
| LOW | freqtrade/exchange/bybit.py | 266 | # Set acknowledged to True to avoid ccxt exception | COMMENT |
| LOW⚡ | freqtrade/exchange/exchange.py | 358 | # Check if timeframe is available | COMMENT |
| LOW⚡ | freqtrade/exchange/exchange.py | 361 | # Check if all pairs are available | COMMENT |
| LOW | freqtrade/exchange/exchange.py | 732 | # Set markets to avoid reloading on websocket api | COMMENT |
| LOW | freqtrade/exchange/exchange.py | 1553 | # Verify if stopPrice works for your exchange, else configure stop_price_param | COMMENT |
| LOW | freqtrade/exchange/exchange.py | 2278 | # Check if cache has been invalidated | COMMENT |
| LOW | freqtrade/exchange/exchange.py | 2733 | # Check if 1 call can get us updated candles without hole in the data. | COMMENT |
| LOW | freqtrade/exchange/exchange_ws.py | 160 | # Check if they're already scheduled | COMMENT |
| LOW | freqtrade/exchange/common.py | 125 | kucoin = args[0].name == "KuCoin" # Check if the exchange is KuCoin. | CODE |
| LOW | freqtrade/loggers/__init__.py | 148 | # Check if we have the module available | COMMENT |
| LOW | freqtrade/optimize/backtesting.py | 344 | # Set stoploss_on_exchange to false for backtesting, | COMMENT |
| LOW | freqtrade/optimize/backtesting.py | 649 | # Set close_rate to stoploss | COMMENT |
| LOW | freqtrade/optimize/backtesting.py | 740 | # Check if we should increase our position | COMMENT |
| LOW | freqtrade/optimize/backtesting.py | 986 | # Check if we need to adjust our current positions | COMMENT |
| LOW | freqtrade/optimize/optimize_reports/bt_output.py | 543 | # Print results | COMMENT |
| LOW | …ptimize/hyperopt_loss/hyperopt_loss_short_trade_dur.py | 14 | # Set TARGET_TRADES to suit your number concurrent trades so its realistic | COMMENT |
| LOW | freqtrade/optimize/hyperopt/hyperopt_interface.py | 40 | # Assign timeframe to be used in hyperopt | COMMENT |
| LOW | freqtrade/plot/plotting.py | 57 | # Set timerange to use | COMMENT |
| LOW | freqtrade/plugins/pairlist/IPairList.py | 273 | # Check if market is active | COMMENT |
| LOW | freqtrade/plugins/pairlist/CrossMarketPairList.py | 82 | # Check if pair quote currency equals to the stake currency. | COMMENT |
| LOW | freqtrade/plugins/pairlist/VolumePairList.py | 187 | # Check if pair quote currency equals to the stake currency. | COMMENT |
| LOW | freqtrade/plugins/pairlist/PercentChangePairList.py | 182 | # Check if pair quote currency equals to the stake currency. | COMMENT |
| LOW | freqtrade/plugins/pairlist/MarketCapPairList.py | 146 | # Check if pair quote currency equals to the stake currency. | COMMENT |
| LOW | freqtrade/resolvers/strategy_resolver.py | 56 | # Check if we need to override configuration | COMMENT |
| LOW | freqtrade/resolvers/hyperopt_resolver.py | 47 | # Assign timeframe to be used in hyperopt | COMMENT |
| LOW | freqtrade/persistence/migrations.py | 431 | # Check if migration necessary | STRING |
| LOW | freqtrade/rpc/telegram.py | 750 | # Check if there's at least one numerical ID provided. | COMMENT |
| LOW | freqtrade/rpc/rpc.py | 1032 | # Check if there is there are open orders | COMMENT |
| LOW | freqtrade/rpc/rpc.py | 1148 | # Check if pair quote currency equals to the stake currency. | COMMENT |
| LOW | freqtrade/rpc/fiat_convert.py | 135 | # Check if the fiat conversion you want is supported | COMMENT |
| LOW | freqtrade/rpc/fiat_convert.py | 165 | # Check if the fiat conversion you want is supported | COMMENT |
| LOW | freqtrade/rpc/api_server/api_auth.py | 64 | # Check if ws_token is/in secret_ws_token | COMMENT |
| LOW | freqtrade/rpc/api_server/api_auth.py | 77 | # Check if ws_token is a JWT | COMMENT |
| LOW⚡ | freqtrade/data/converter/orderflow.py | 28 | # Set columns to object type | COMMENT |
| LOW | freqtrade/data/converter/orderflow.py | 126 | # Check if the trades are already in the cache | COMMENT |
| LOW | freqtrade/data/history/datahandlers/idatahandler.py | 203 | # Check if regex found something and only return these results to avoid exceptions. | COMMENT |
| LOW | freqtrade/strategy/interface.py | 1302 | # Check if dataframe is out of date | COMMENT |
| LOW | freqtrade/strategy/interface.py | 1719 | # Check if time matches and current rate is above threshold | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ft_client/freqtrade_client/ft_client.py | 114 | except Exception as e: | CODE |
| LOW⚡ | ft_client/freqtrade_client/__init__.py | 27 | except Exception: # pragma: no cover | CODE |
| LOW⚡ | ft_client/freqtrade_client/__init__.py | 34 | except Exception: # noqa: S110 | CODE |
| LOW | tests/conftest.py | 87 | except Exception as e: | CODE |
| LOW | tests/test_configuration.py | 639 | except Exception: | CODE |
| LOW | tests/optimize/test_hyperopt.py | 267 | except Exception: | CODE |
| LOW | docs/strategy-callbacks.md | 1053 | except Exception as exception: | CODE |
| LOW | scripts/ws_client.py | 273 | except Exception as e: | CODE |
| LOW | freqtrade/wallets.py | 513 | except Exception as e: | CODE |
| LOW | freqtrade/freqtradebot.py | 191 | except Exception as e: | CODE |
| LOW | freqtrade/freqtradebot.py | 216 | except Exception as e: | CODE |
| LOW | freqtrade/freqtradebot.py | 232 | except Exception: | CODE |
| LOW | freqtrade/freqtradebot.py | 604 | except Exception: | CODE |
| LOW | freqtrade/__init__.py | 26 | except Exception: # pragma: no cover | CODE |
| LOW | freqtrade/__init__.py | 33 | except Exception: # noqa: S110 | CODE |
| LOW | freqtrade/main.py | 75 | except Exception: | CODE |
| LOW⚡ | freqtrade/configuration/deploy_config.py | 19 | except Exception: | CODE |
| LOW⚡ | freqtrade/configuration/deploy_config.py | 27 | except Exception: | CODE |
| MEDIUM | freqtrade/configuration/deploy_config.py | 15 | def validate_is_int(val): | CODE |
| MEDIUM | freqtrade/configuration/deploy_config.py | 23 | def validate_is_float(val): | CODE |
| LOW | freqtrade/configuration/directory_operations.py | 43 | except Exception: | CODE |
| LOW | freqtrade/exchange/hyperliquid.py | 190 | except Exception as e: | CODE |
| LOW⚡ | freqtrade/exchange/hyperliquid.py | 206 | except Exception as e: | CODE |
| LOW | freqtrade/exchange/binance_public_data.py | 86 | except Exception as e: | CODE |
| LOW | freqtrade/exchange/binance_public_data.py | 163 | except Exception as e: | CODE |
| LOW | freqtrade/exchange/binance_public_data.py | 299 | except Exception as e: | CODE |
| LOW | freqtrade/exchange/binance_public_data.py | 330 | except Exception as e: | CODE |
| LOW | freqtrade/exchange/binance_public_data.py | 434 | except Exception as e: | CODE |
| LOW | freqtrade/exchange/binance_public_data.py | 494 | except Exception as e: | CODE |
| LOW | freqtrade/exchange/exchange.py | 3192 | except Exception: | CODE |
| LOW | freqtrade/exchange/exchange.py | 3649 | except Exception: | CODE |
| LOW | freqtrade/exchange/exchange_ws.py | 89 | except Exception: | CODE |
| LOW | freqtrade/exchange/exchange_ws.py | 98 | except Exception: | CODE |
| LOW | freqtrade/exchange/exchange_ws.py | 205 | except Exception: | CODE |
| LOW | freqtrade/exchange/exchange_ws.py | 220 | except Exception: | CODE |
| MEDIUM | freqtrade/exchange/exchange_ws.py | 92 | def _cleanup_async(self) -> None: | CODE |
| LOW | freqtrade/freqai/freqai_interface.py | 258 | except Exception as msg: | CODE |
| LOW | freqtrade/freqai/freqai_interface.py | 376 | except Exception as msg: | CODE |
| LOW | freqtrade/loggers/ft_rich_handler.py | 48 | except Exception: | CODE |
| MEDIUM | freqtrade/loggers/ft_rich_handler.py | 19 | def emit(self, record): | CODE |
| LOW | freqtrade/loggers/std_err_stream_handler.py | 25 | except Exception: | CODE |
| MEDIUM | freqtrade/loggers/std_err_stream_handler.py | 17 | def emit(self, record): | CODE |
| LOW | freqtrade/plugins/pairlist/RemotePairList.py | 178 | except Exception as e: | CODE |
| LOW | freqtrade/plugins/pairlist/RemotePairList.py | 232 | except Exception as e: | CODE |
| LOW | freqtrade/plugins/pairlist/RemotePairList.py | 273 | except Exception as e: | CODE |
| LOW | freqtrade/commands/list_commands.py | 278 | except Exception as e: | CODE |
| LOW | freqtrade/rpc/telegram.py | 353 | except Exception as ex: | CODE |
| LOW | freqtrade/rpc/fiat_convert.py | 75 | except Exception as exception: | CODE |
| LOW | freqtrade/rpc/fiat_convert.py | 188 | except Exception as exception: | CODE |
| MEDIUM | freqtrade/rpc/fiat_convert.py | 58 | def _load_cryptomap(self) -> None: | CODE |
| LOW | freqtrade/rpc/external_message_consumer.py | 234 | except Exception as e: | CODE |
| LOW | freqtrade/rpc/external_message_consumer.py | 270 | except Exception as e: | CODE |
| LOW | freqtrade/rpc/external_message_consumer.py | 283 | except Exception as e: | CODE |
| LOW | freqtrade/rpc/rpc_manager.py | 83 | except Exception: | CODE |
| LOW | freqtrade/rpc/api_server/webserver.py | 342 | except Exception: | CODE |
| LOW | freqtrade/rpc/api_server/api_pair_history.py | 43 | except Exception as e: | CODE |
| LOW | freqtrade/rpc/api_server/api_pair_history.py | 77 | except Exception as e: | CODE |
| LOW | freqtrade/rpc/api_server/api_v1.py | 130 | except Exception as e: | CODE |
| LOW | freqtrade/rpc/api_server/api_v1.py | 176 | except Exception: | CODE |
| LOW | freqtrade/rpc/api_server/ws/channel.py | 189 | except Exception: | CODE |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/strategy/strats/strategy_test_v2.py | 75 | # ------------------------------------ | COMMENT |
| MEDIUM | tests/strategy/strats/strategy_test_v3.py | 105 | # ------------------------------------ | COMMENT |
| MEDIUM | docs/includes/strategy-imports.md | 41 | # -------------------------------- | COMMENT |
| MEDIUM | scripts/ws_client.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/ws_client.py | 88 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/ws_client.py | 120 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/ws_client.py | 282 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | freqtrade/templates/sample_strategy.py | 33 | # -------------------------------- | COMMENT |
| MEDIUM | freqtrade/templates/sample_strategy.py | 159 | # ------------------------------------ | COMMENT |
| MEDIUM | freqtrade/templates/sample_strategy.py | 240 | # ------------------------------------ | COMMENT |
| MEDIUM | freqtrade/templates/sample_strategy.py | 293 | # ------------------------------------ | COMMENT |
| MEDIUM | freqtrade/templates/sample_strategy.py | 300 | # ------------------------------------ | COMMENT |
| MEDIUM | freqtrade/templates/sample_strategy.py | 315 | # ------------------------------------ | COMMENT |
| MEDIUM | freqtrade/templates/sample_strategy.py | 330 | # ------------------------------------ | COMMENT |
| MEDIUM | freqtrade/templates/sample_strategy.py | 345 | # # ------------------------------------ | COMMENT |
| MEDIUM | freqtrade/templates/sample_strategy.py | 354 | # ------------------------------------ | COMMENT |
| MEDIUM | freqtrade/rpc/api_server/ws_schemas.py | 73 | # -------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.yml | 1 | --- | COMMENT |
| LOW | docker/docker-compose-freqai.yml | 1 | --- | COMMENT |
| LOW | tests/exchange/test_exchange.py | 4581 | # Testing markets (in conftest.py): | COMMENT |
| LOW | tests/exchange/test_binance.py | 1081 | exchange = get_patched_exchange(mocker, default_conf_usdt, exchange="binance") | COMMENT |
| LOW | tests/optimize/test_backtesting.py | 641 | # Binance, Long | COMMENT |
| LOW | docs/producer-consumer.md | 121 | producer_pairs = self.dp.get_producer_pairs() | COMMENT |
| LOW | docs/advanced-setup.md | 61 | services: | COMMENT |
| LOW | freqtrade/exchange/hyperliquid.py | 261 | # Docs: The maintenance margin is half of the initial margin at max leverage, | COMMENT |
| LOW | freqtrade/freqai/RL/BaseEnvironment.py | 381 | initialized env for tensorboard callback | COMMENT |
| LOW | freqtrade/freqai/RL/BaseEnvironment.py | 401 | # previous_price = self.add_entry_fee(previous_price) | COMMENT |
| LOW | freqtrade/optimize/hyperopt/hyperopt_interface.py | 81 | # to adjust resulting ranges of the ROI tables. | COMMENT |
| LOW | freqtrade/templates/FreqaiExampleStrategy.py | 201 | # Classifiers are typically set up with strings as targets: | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 161 | # ADX | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 181 | # # Keltner Channel | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 201 | dataframe["rsi"] = ta.RSI(dataframe) | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 221 | # Please read https://github.com/freqtrade/freqtrade/issues/2961 before using this. | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 261 | # dataframe["wbb_percent"] = ( | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 281 | # dataframe['sma10'] = ta.SMA(dataframe, timeperiod=10) | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 301 | # # Hammer: values [0, 100] | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 321 | # dataframe['CDLGRAVESTONEDOJI'] = ta.CDLGRAVESTONEDOJI(dataframe) | COMMENT |
| LOW | freqtrade/templates/sample_strategy.py | 341 | # # Three Inside Up/Down: values [0, -100, 100] | COMMENT |
| LOW | freqtrade/rpc/api_server/api_v1.py | 41 | # 1.12: add blacklist delete endpoint | COMMENT |
| LOW | freqtrade/rpc/api_server/api_v1.py | 61 | # 2.33: Additional weekly/monthly metrics | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | build_helpers/create_command_partials.py | 94 | # freqtrade-client still uses subprocess as requested | COMMENT |
| HIGH | freqtrade/freqai/data_kitchen.py | 368 | # ensure we are predicting on exactly same amount of data as requested by user defined | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | freqtrade/exchange/exchange.py | 3046 | CODE | |
| LOW | freqtrade/freqai/RL/BaseEnvironment.py | 47 | CODE | |
| LOW | freqtrade/freqai/RL/BaseReinforcementLearningModel.py | 303 | CODE | |
| LOW | freqtrade/optimize/analysis/lookahead.py | 51 | CODE | |
| LOW | …ptimize/hyperopt_loss/hyperopt_loss_short_trade_dur.py | 52 | CODE | |
| LOW | freqtrade/optimize/hyperopt/hyperopt_optimizer.py | 334 | CODE | |
| LOW | freqtrade/templates/sample_hyperopt_loss.py | 57 | CODE | |
| LOW | freqtrade/rpc/rpc.py | 1450 | CODE | |
| LOW | freqtrade/rpc/rpc.py | 1486 | CODE | |
| LOW | freqtrade/rpc/api_server/api_webserver.py | 109 | CODE | |
| LOW | freqtrade/data/history/history_utils.py | 360 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.sh | 167 | echo_block "Don't forget to activate your virtual environment with 'source .venv/bin/activate'!" | CODE |
| MEDIUM | freqtrade/freqai/RL/BaseReinforcementLearningModel.py | 431 | # you can use feature values from dataframe | COMMENT |
| MEDIUM⚡ | freqtrade/templates/sample_strategy.py | 39 | # This class is a sample. Feel free to customize it. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/freqai/test_freqai_interface.py | 76 | # test the RL guardrails | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/installation.md | 376 | # Step 1 - Initialize user folder | COMMENT |
| LOW | docs/installation.md | 379 | # Step 2 - Create a new configuration file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/freqai/test_freqai_interface.py | 457 | "model_filename": "fake_name", | CODE |