Repository Analysis

AI4Finance-Foundation/FinRL

FinRL®: Financial Reinforcement Learning. 🔥

16.4 Moderate AI signal View on GitHub
16.4
Adjusted Score
16.4
Raw Score
100%
Time Factor
2026-05-25
Last Push
15,281
Stars
Jupyter Notebook
Language
19,762
Lines of Code
107
Files
231
Pattern Hits
2026-05-31
Scan Date

Score History

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

Severity Breakdown

CRITICAL 0HIGH 15MEDIUM 16LOW 200

Pattern Findings

231 matches across 11 categories. Click a row to expand file-level details.

Unused Imports122 hits · 122 pts
SeverityFileLineSnippet
LOWsetup.py1
LOWfinrl/plot.py1
LOWfinrl/plot.py15
LOWfinrl/config.py2
LOWfinrl/config_private.py1
LOWfinrl/trade.py1
LOWfinrl/__init__.py1
LOWfinrl/__init__.py3
LOWfinrl/__init__.py4
LOWfinrl/__init__.py5
LOWfinrl/test.py1
LOWfinrl/test.py4
LOWfinrl/train.py1
LOWfinrl/train.py5
LOWfinrl/train.py6
LOWfinrl/main.py1
LOWfinrl/main.py5
LOWfinrl/config_tickers.py1
LOWfinrl/__main__.py1
LOWfinrl/meta/data_processor.py1
LOWfinrl/meta/meta_config.py1
LOW…v_portfolio_optimization/env_portfolio_optimization.py3
LOWfinrl/meta/env_portfolio_allocation/env_portfolio.py1
LOWfinrl/meta/env_cryptocurrency_trading/env_btc_ccxt.py1
LOW…meta/env_cryptocurrency_trading/env_multiple_crypto.py1
LOWfinrl/meta/paper_trading/common.py4
LOWfinrl/meta/paper_trading/alpaca.py3
LOWfinrl/meta/data_processors/processor_alpaca.py1
LOWfinrl/meta/data_processors/processor_alpaca.py3
LOWfinrl/meta/data_processors/processor_alpaca.py5
LOWfinrl/meta/data_processors/processor_alpaca.py6
LOWfinrl/meta/data_processors/processor_alpaca.py11
LOWfinrl/meta/data_processors/processor_eodhd.py1
LOWfinrl/meta/data_processors/processor_eodhd.py7
LOWfinrl/meta/data_processors/processor_eodhd.py11
LOWfinrl/meta/data_processors/processor_eodhd.py12
LOWfinrl/meta/data_processors/processor_quantconnect.py1
LOWfinrl/meta/data_processors/processor_sinopac.py1
LOWfinrl/meta/data_processors/processor_ccxt.py1
LOWfinrl/meta/data_processors/processor_wrds.py1
LOWfinrl/meta/data_processors/processor_wrds.py8
LOWfinrl/meta/data_processors/processor_yahoofinance.py3
LOWfinrl/meta/data_processors/processor_yahoofinance.py7
LOWfinrl/meta/data_processors/processor_yahoofinance.py10
LOWfinrl/meta/data_processors/processor_yahoofinance.py11
LOWfinrl/meta/data_processors/processor_yahoofinance.py12
LOWfinrl/meta/data_processors/processor_yahoofinance.py13
LOWfinrl/meta/data_processors/processor_yahoofinance.py14
LOWfinrl/meta/data_processors/processor_yahoofinance.py15
LOWfinrl/meta/data_processors/processor_yahoofinance.py16
LOWfinrl/meta/data_processors/processor_yahoofinance.py21
LOWfinrl/meta/data_processors/processor_joinquant.py1
LOWfinrl/meta/data_processors/func.py1
LOW…rl/meta/env_stock_trading/env_stocktrading_stoploss.py1
LOWfinrl/meta/env_stock_trading/env_nas100_wrds.py1
LOWfinrl/meta/env_stock_trading/env_stocktrading.py1
LOWfinrl/meta/env_stock_trading/env_stocktrading.py3
LOW…meta/env_stock_trading/env_stocktrading_cashpenalty.py1
LOWfinrl/meta/env_stock_trading/env_stock_papertrading.py1
LOWfinrl/meta/env_stock_trading/env_stocktrading_np.py1
62 more matches not shown…
Cross-File Repetition15 hits · 75 pts
SeverityFileLineSnippet
HIGHfinrl/meta/data_processors/processor_alpaca.py0add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe
HIGHfinrl/meta/data_processors/processor_eodhd.py0add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe
HIGHfinrl/meta/data_processors/processor_sinopac.py0add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe
HIGHfinrl/meta/data_processors/processor_wrds.py0add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe
HIGHfinrl/meta/data_processors/processor_yahoofinance.py0add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe
HIGHfinrl/meta/preprocessor/preprocessors.py0add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe
HIGHfinrl/agents/portfolio_optimization/architectures.py0defines a most favorable action of this policy given input x. args: observation: environment observation. last_action: l
HIGHfinrl/agents/portfolio_optimization/architectures.py0defines a most favorable action of this policy given input x. args: observation: environment observation. last_action: l
HIGHfinrl/agents/portfolio_optimization/architectures.py0defines a most favorable action of this policy given input x. args: observation: environment observation. last_action: l
HIGHfinrl/agents/portfolio_optimization/architectures.py0policy network's forward propagation. args: observation: environment observation (dictionary). last_action: last action
HIGHfinrl/agents/portfolio_optimization/architectures.py0policy network's forward propagation. args: observation: environment observation (dictionary). last_action: last action
HIGHfinrl/agents/portfolio_optimization/architectures.py0policy network's forward propagation. args: observation: environment observation (dictionary). last_action: last action
HIGHfinrl/agents/portfolio_optimization/architectures.py0process the last action to retrieve cash bias and last stocks. args: last_action: last performed action. returns: last s
HIGHfinrl/agents/portfolio_optimization/architectures.py0process the last action to retrieve cash bias and last stocks. args: last_action: last performed action. returns: last s
HIGHfinrl/agents/portfolio_optimization/architectures.py0process the last action to retrieve cash bias and last stocks. args: last_action: last performed action. returns: last s
Deep Nesting28 hits · 28 pts
SeverityFileLineSnippet
LOWfinrl/plot.py258
LOWfinrl/main.py51
LOW…v_portfolio_optimization/env_portfolio_optimization.py200
LOW…v_portfolio_optimization/env_portfolio_optimization.py571
LOWfinrl/meta/paper_trading/alpaca.py20
LOWfinrl/meta/paper_trading/alpaca.py147
LOWfinrl/meta/data_processors/processor_alpaca.py411
LOWfinrl/meta/data_processors/processor_eodhd.py23
LOWfinrl/meta/data_processors/processor_eodhd.py166
LOWfinrl/meta/data_processors/processor_eodhd.py205
LOWfinrl/meta/data_processors/processor_eodhd.py242
LOWfinrl/meta/data_processors/processor_sinopac.py91
LOWfinrl/meta/data_processors/processor_ccxt.py16
LOWfinrl/meta/data_processors/processor_ccxt.py24
LOWfinrl/meta/data_processors/processor_wrds.py20
LOWfinrl/meta/data_processors/processor_yahoofinance.py182
LOWfinrl/meta/data_processors/processor_yahoofinance.py274
LOWfinrl/meta/data_processors/processor_yahoofinance.py531
LOWfinrl/meta/env_stock_trading/env_stocktrading.py113
LOWfinrl/meta/env_stock_trading/env_stocktrading.py231
LOWfinrl/meta/env_stock_trading/env_stock_papertrading.py17
LOWfinrl/agents/stablebaselines3/tune_sb3.py33
LOWfinrl/agents/stablebaselines3/tune_sb3.py108
LOWfinrl/agents/rllib/models.py80
LOWfinrl/agents/rllib/models.py113
LOW…pplications/stock_trading/fundamental_stock_trading.py4
LOW…pplications/stock_trading/fundamental_stock_trading.py413
LOW…pplications/stock_trading/fundamental_stock_trading.py519
Hyper-Verbose Identifiers23 hits · 23 pts
SeverityFileLineSnippet
LOWfinrl/plot.py29def convert_daily_return_to_pyfolio_ts(df):
LOWfinrl/main.py45def check_and_make_directories(directories: list[str]):
LOWfinrl/meta/data_processor.py13class DataProcessor:
LOW…v_portfolio_optimization/env_portfolio_optimization.py403 def _get_state_and_info_from_time_index(self, time_index):
LOW…meta/env_cryptocurrency_trading/env_multiple_crypto.py114 def _generate_action_normalizer(self):
LOWfinrl/meta/data_processors/processor_eodhd.py205 def nber_present_tics_per_day(self, max_days, tics_in_more_than_90perc_days):
LOWfinrl/meta/data_processors/processor_joinquant.py46 def calc_trade_days_by_joinquant(self, start_day, end_day):
LOWfinrl/meta/data_processors/func.py13def calc_stockname_from_filename(filename):
LOWfinrl/meta/data_processors/func.py91def calc_train_trade_starts_ends_if_rolling(
LOWfinrl/agents/stablebaselines3/tune_sb3.py108 def default_sample_hyperparameters(self, trial: optuna.Trial):
LOWfinrl/agents/portfolio_optimization/architectures.py514 def _create_edge_type_for_batch(self, batch, edge_type):
LOW…ications/stock_trading/stock_trading_rolling_window.py31def stock_trading_rolling_window(
LOWunit_tests/test_core.py55def test_check_and_make_directories(DIRS: list[str]) -> None:
LOWunit_tests/test_core.py84def test_feature_engineer_no_turbulence(
LOWunit_tests/test_core.py114def test_feature_engineer_turbulence_less_than_a_year(
LOWunit_tests/test_core.py148def test_feature_engineer_turbulence_more_than_a_year(
LOWunit_tests/preprocessors/test_yahoodownloader.py38 def test_adjust_prices_calculates_correctly(self):
LOWunit_tests/preprocessors/test_yahoodownloader.py82 def test_adjust_prices_drops_columns(self):
LOWunit_tests/preprocessors/test_groupby_scaler.py39def test_fit_transform_specific_column():
LOWunit_tests/preprocessors/test_groupby_scaler.py60def test_fit_transform_other_df():
LOWunit_tests/preprocessors/test_groupby_scaler.py85def test_minmax_fit_transform():
LOWunit_tests/preprocessors/test_groupby_scaler.py106def test_minmax_fit_transform_specific_column():
LOWunit_tests/preprocessors/test_groupby_scaler.py127def test_minmax_fit_transform_other_df():
Decorative Section Separators7 hits · 21 pts
SeverityFileLineSnippet
MEDIUMfinrl/meta/paper_trading/common.py2# ----------------------------------------------------------------------------------------------------------------------
MEDIUMfinrl/meta/paper_trading/common.py15# ----------------------------------------------------------------------------------------------------------------------
MEDIUMfinrl/meta/paper_trading/common.py551# ----------------------------------------------------------------------------------------------------------------------
MEDIUMfinrl/meta/paper_trading/common.py686# ----------------------------------------------------------------------------------------------------------------------
MEDIUMfinrl/meta/paper_trading/common.py744# ----------------------------------------------------------------------------------------------------------------------
MEDIUMfinrl/meta/paper_trading/common.py799# ----------------------------------------------------------------------------------------------------------------------
MEDIUMfinrl/meta/paper_trading/common.py842# ----------------------------------------------------------------------------------------------------------------------
Excessive Try-Catch Wrapping14 hits · 19 pts
SeverityFileLineSnippet
MEDIUMfinrl/meta/data_processors/processor_eodhd.py87 print(f"Error fetching data for {ticker}: {response.text}")
LOWfinrl/meta/data_processors/processor_eodhd.py200 except Exception as e:
LOWfinrl/meta/data_processors/processor_eodhd.py234 except Exception as e:
LOWfinrl/meta/data_processors/processor_eodhd.py277 except Exception as e:
LOWfinrl/meta/data_processors/processor_sinopac.py127 except Exception as e:
MEDIUMfinrl/meta/data_processors/processor_sinopac.py128 print(f"Error calculating {indicator}: {str(e)}")
LOWfinrl/meta/data_processors/processor_yahoofinance.py103 except Exception as e:
LOWfinrl/meta/data_processors/processor_yahoofinance.py172 except Exception as e:
MEDIUMfinrl/meta/data_processors/processor_yahoofinance.py173 print(f"Error fetching data for {stock_name}: {e}")
LOWfinrl/meta/data_processors/processor_yahoofinance.py403 except Exception as e:
MEDIUMfinrl/meta/data_processors/processor_yahoofinance.py130def safe_convert(value, dtype):
LOWfinrl/meta/preprocessor/preprocessors.py228 except Exception as e:
LOWfinrl/meta/preprocessor/shioajidownloader.py56 except Exception as e:
MEDIUMfinrl/meta/preprocessor/shioajidownloader.py77 print(f"Error renaming columns: {e}")
Verbosity Indicators8 hits · 14 pts
SeverityFileLineSnippet
LOWfinrl/meta/data_processors/processor_alpaca.py142 # Step 1: Merging dataframes to avoid loop
LOWfinrl/meta/data_processors/processor_alpaca.py150 # Step 2: Handling NaN values efficiently
LOWfinrl/meta/data_processors/processor_alpaca.py173 # Step 3: Data type conversion
LOWfinrl/meta/data_processors/processor_eodhd.py37 # Step 1: Get NASDAQ 100 components
LOWfinrl/meta/data_processors/processor_eodhd.py47 # Step 2: Fetch historical minute data for each ticker
LOWfinrl/meta/data_processors/processor_eodhd.py93 # Step 3: Save the data
LOWfinrl/meta/data_processors/processor_eodhd.py118 # Step 1: First pass to collect all unique dates
LOWfinrl/meta/data_processors/processor_eodhd.py141 # Step 2: Second pass to update each file with the 'Day' column
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippet
MEDIUMfinrl/meta/data_processors/processor_sinopac.py48 # Create a new DataFrame to ensure all time points are included
MEDIUM…pplications/stock_trading/fundamental_stock_trading.py265 # Create a dataframe that merges all the ratios
MEDIUMunit_tests/preprocessors/test_yahoodownloader.py21 # Create a sample DataFrame similar to what fetch_data might produce before adjustment
Over-Commented Block8 hits · 8 pts
SeverityFileLineSnippet
LOWfinrl/test.py101 cwd="./test_ppo",
LOWfinrl/test.py121 # cwd="./test_ppo/checkpoint_000030/checkpoint-30",
LOWfinrl/train.py121 erl_params=ERL_PARAMS,
LOWfinrl/train.py141 # cwd="./test_ppo",
LOWfinrl/agents/stablebaselines3/models.py641 self.unique_trade_date[i - self.rebalance_window],
LOWdocs/source/conf.py1#
LOWdocs/source/conf.py121# to template names.
LOWdocs/source/conf.py141 #
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippet
LOWfinrl/meta/env_stock_trading/env_stocktrading.py117 ): # check if the stock is able to sell, for simlicity we just add it in techical index
MEDIUMunit_tests/preprocessors/test_yahoodownloader.py79 # Use pandas testing utility for robust DataFrame comparison
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippet
LOWfinrl/meta/data_processors/processor_alpaca.py158 tmp_df.iloc[0] = [first_valid_price] * 4 + [0.0] # Set volume to zero