FinRL®: Financial Reinforcement Learning. 🔥
This report summarizes scanner evidence for AI4Finance-Foundation/FinRL, a Jupyter Notebook project with 16,620 GitHub stars. SynthScan examined 22,149 lines of code across 121 source files, recording 311 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 18.7 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 138 finding(s).
Are imports declared and package/API names verified? 138 finding(s).
Are wrappers, guards, and repeated structures necessary? 106 finding(s).
Which changes need focused human review? 311 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 311 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 1 | CODE | |
| LOW | finrl/plot.py | 1 | CODE | |
| LOW | finrl/plot.py | 15 | CODE | |
| LOW | finrl/config.py | 2 | CODE | |
| LOW | finrl/config_private.py | 1 | CODE | |
| LOW | finrl/trade.py | 1 | CODE | |
| LOW | finrl/__init__.py | 1 | CODE | |
| LOW | finrl/__init__.py | 3 | CODE | |
| LOW | finrl/__init__.py | 4 | CODE | |
| LOW | finrl/__init__.py | 5 | CODE | |
| LOW | finrl/test.py | 1 | CODE | |
| LOW | finrl/test.py | 4 | CODE | |
| LOW | finrl/train.py | 1 | CODE | |
| LOW | finrl/train.py | 5 | CODE | |
| LOW | finrl/train.py | 6 | CODE | |
| LOW | finrl/main.py | 1 | CODE | |
| LOW | finrl/main.py | 5 | CODE | |
| LOW | finrl/config_tickers.py | 1 | CODE | |
| LOW | finrl/__main__.py | 1 | CODE | |
| LOW | finrl/meta/data_processor.py | 1 | CODE | |
| LOW | finrl/meta/meta_config.py | 1 | CODE | |
| LOW | …v_portfolio_optimization/env_portfolio_optimization.py | 3 | CODE | |
| LOW | finrl/meta/env_portfolio_allocation/env_portfolio.py | 1 | CODE | |
| LOW | finrl/meta/env_cryptocurrency_trading/env_btc_ccxt.py | 1 | CODE | |
| LOW | …meta/env_cryptocurrency_trading/env_multiple_crypto.py | 1 | CODE | |
| LOW | finrl/meta/paper_trading/common.py | 4 | CODE | |
| LOW | finrl/meta/paper_trading/alpaca.py | 3 | CODE | |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 3 | CODE | |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 5 | CODE | |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 6 | CODE | |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 11 | CODE | |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 7 | CODE | |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 11 | CODE | |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 12 | CODE | |
| LOW | finrl/meta/data_processors/processor_quantconnect.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/processor_sinopac.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/processor_ccxt.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/processor_wrds.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/processor_wrds.py | 8 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 3 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 7 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 10 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 11 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 12 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 13 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 14 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 15 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 16 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 21 | CODE | |
| LOW | finrl/meta/data_processors/processor_joinquant.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/func.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/processor_fxmacrodata.py | 1 | CODE | |
| LOW | finrl/meta/data_processors/processor_fxmacrodata.py | 3 | CODE | |
| LOW | …rl/meta/env_stock_trading/env_stocktrading_stoploss.py | 1 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_nas100_wrds.py | 1 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_stocktrading.py | 1 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_stocktrading.py | 3 | CODE | |
| LOW | …meta/env_stock_trading/env_stocktrading_cashpenalty.py | 1 | CODE | |
| 78 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | finrl/meta/paper_trading/common.py | 0 | provides implementations for drl algorithms attributes ---------- env: gym environment class user-defined class methods | STRING |
| HIGH | finrl/agents/elegantrl/models.py | 0 | provides implementations for drl algorithms attributes ---------- env: gym environment class user-defined class methods | STRING |
| HIGH | finrl/agents/stablebaselines3/models.py | 0 | provides implementations for drl algorithms attributes ---------- env: gym environment class user-defined class methods | STRING |
| HIGH | finrl/meta/data_processors/processor_alpaca.py | 0 | add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe | STRING |
| HIGH | finrl/meta/data_processors/processor_eodhd.py | 0 | add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe | STRING |
| HIGH | finrl/meta/data_processors/processor_sinopac.py | 0 | add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe | STRING |
| HIGH | finrl/meta/data_processors/processor_wrds.py | 0 | add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe | STRING |
| HIGH | finrl/meta/data_processors/processor_yahoofinance.py | 0 | add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe | STRING |
| HIGH | finrl/meta/preprocessor/preprocessors.py | 0 | add turbulence index from a precalcualted dataframe :param data: (df) pandas dataframe :return: (df) pandas dataframe | STRING |
| HIGH | finrl/meta/preprocessor/tusharedownloader.py | 0 | fetches data from ibkr api parameters ---------- returns ------- `pd.dataframe` 7 columns: a date, open, high, low, clos | STRING |
| HIGH | finrl/meta/preprocessor/yahoodownloader.py | 0 | fetches data from ibkr api parameters ---------- returns ------- `pd.dataframe` 7 columns: a date, open, high, low, clos | STRING |
| HIGH | finrl/meta/preprocessor/ibkrdownloader.py | 0 | fetches data from ibkr api parameters ---------- returns ------- `pd.dataframe` 7 columns: a date, open, high, low, clos | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrl/plot.py | 29 | def convert_daily_return_to_pyfolio_ts(df): | CODE |
| LOW | finrl/main.py | 45 | def check_and_make_directories(directories: list[str]): | CODE |
| LOW | finrl/meta/data_processor.py | 16 | class DataProcessor: | CODE |
| LOW | …v_portfolio_optimization/env_portfolio_optimization.py | 403 | def _get_state_and_info_from_time_index(self, time_index): | CODE |
| LOW | …meta/env_cryptocurrency_trading/env_multiple_crypto.py | 114 | def _generate_action_normalizer(self): | CODE |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 205 | def nber_present_tics_per_day(self, max_days, tics_in_more_than_90perc_days): | CODE |
| LOW | finrl/meta/data_processors/processor_joinquant.py | 46 | def calc_trade_days_by_joinquant(self, start_day, end_day): | CODE |
| LOW | finrl/meta/data_processors/func.py | 13 | def calc_stockname_from_filename(filename): | CODE |
| LOW | finrl/meta/data_processors/func.py | 91 | def calc_train_trade_starts_ends_if_rolling( | CODE |
| LOW | finrl/meta/data_processors/processor_fxmacrodata.py | 13 | class FXMacroDataProcessor: | CODE |
| LOW | finrl/meta/data_processors/processor_fxmacrodata.py | 67 | def download_release_calendar( | CODE |
| LOW | finrl/agents/stablebaselines3/tune_sb3.py | 118 | def default_sample_hyperparameters(self, trial: optuna.Trial): | CODE |
| LOW | finrl/agents/portfolio_optimization/architectures.py | 514 | def _create_edge_type_for_batch(self, batch, edge_type): | CODE |
| LOW | …ications/stock_trading/stock_trading_rolling_window.py | 31 | def stock_trading_rolling_window( | CODE |
| LOW | unit_tests/test_core.py | 55 | def test_check_and_make_directories(DIRS: list[str]) -> None: | CODE |
| LOW | unit_tests/test_core.py | 84 | def test_feature_engineer_no_turbulence( | CODE |
| LOW | unit_tests/test_core.py | 114 | def test_feature_engineer_turbulence_less_than_a_year( | CODE |
| LOW | unit_tests/test_core.py | 148 | def test_feature_engineer_turbulence_more_than_a_year( | CODE |
| LOW | unit_tests/preprocessors/test_yahoodownloader.py | 38 | def test_adjust_prices_calculates_correctly(self): | CODE |
| LOW | unit_tests/preprocessors/test_yahoodownloader.py | 82 | def test_adjust_prices_drops_columns(self): | CODE |
| LOW | unit_tests/preprocessors/test_groupby_scaler.py | 39 | def test_fit_transform_specific_column(): | CODE |
| LOW | unit_tests/preprocessors/test_groupby_scaler.py | 60 | def test_fit_transform_other_df(): | CODE |
| LOW | unit_tests/preprocessors/test_groupby_scaler.py | 85 | def test_minmax_fit_transform(): | CODE |
| LOW | unit_tests/preprocessors/test_groupby_scaler.py | 106 | def test_minmax_fit_transform_specific_column(): | CODE |
| LOW | unit_tests/preprocessors/test_groupby_scaler.py | 127 | def test_minmax_fit_transform_other_df(): | CODE |
| LOW | unit_tests/environments/test_env_stock_papertrading.py | 18 | def test_trade_starts_submit_order_threads_without_calling_submit_order_early(): | CODE |
| LOW | unit_tests/environments/test_stocktrading.py | 43 | def test_initial_holdings_contribute_to_state_and_reward(shares, shares_type): | CODE |
| LOW | unit_tests/environments/test_stocktrading.py | 67 | def test_previous_state_restores_cash_and_holdings(shares, state_type): | CODE |
| LOW | unit_tests/environments/test_stocktrading.py | 104 | def test_reset_restores_single_stock_initial_holdings_after_selling(shares_type): | CODE |
| LOW | unit_tests/downloaders/test_fxmacrodata_downloader.py | 29 | def test_fxmacrodata_downloader_fetch_data(monkeypatch): | CODE |
| LOW | unit_tests/downloaders/test_fxmacrodata_downloader.py | 81 | def test_fxmacrodata_processor_download_data(monkeypatch): | CODE |
| LOW⚡ | unit_tests/downloaders/test_fxmacrodata_downloader.py | 116 | def test_fxmacrodata_downloader_invalid_pair(): | CODE |
| LOW⚡ | unit_tests/downloaders/test_fxmacrodata_downloader.py | 121 | def test_fxmacrodata_processor_daily_only(): | CODE |
| LOW⚡ | unit_tests/downloaders/test_fxmacrodata_downloader.py | 128 | def test_fxmacrodata_macro_downloader_fetches_announcements(monkeypatch): | CODE |
| LOW | unit_tests/downloaders/test_fxmacrodata_downloader.py | 175 | def test_fxmacrodata_macro_downloader_fetches_calendar_and_predictions(monkeypatch): | CODE |
| LOW | unit_tests/downloaders/test_fxmacrodata_downloader.py | 240 | def test_fxmacrodata_processor_adds_macro_features(): | CODE |
| LOW | unit_tests/downloaders/test_fxmacrodata_downloader.py | 271 | def test_fxmacrodata_downloader_follows_pagination(monkeypatch): | CODE |
| LOW | unit_tests/downloaders/test_yahoofinance_processor.py | 10 | def test_scrap_data_sorts_by_day_and_tic(): | CODE |
| LOW | unit_tests/agents/test_fasttd3.py | 44 | def test_projection_conserves_mass_and_stays_non_negative(): | CODE |
| LOW | unit_tests/agents/test_fasttd3.py | 55 | def test_projection_puts_all_mass_on_the_exact_landing_atom(): | CODE |
| LOW | unit_tests/agents/test_fasttd3.py | 74 | def test_projection_interpolates_linearly_between_neighboring_atoms(): | CODE |
| LOW | unit_tests/agents/test_fasttd3.py | 85 | def test_projection_n_atoms_two_is_the_minimum_supported_case(): | CODE |
| LOW | unit_tests/agents/test_fasttd3.py | 100 | def test_a_terminal_transition_ignores_the_next_state_entirely(): | CODE |
| LOW | unit_tests/agents/test_fasttd3.py | 115 | def test_buffer_add_and_sample_round_trips_a_single_transition(): | CODE |
| LOW | unit_tests/agents/test_fasttd3.py | 134 | def test_buffer_caps_at_capacity_and_wraps_like_a_ring(): | CODE |
| LOW | unit_tests/agents/test_fasttd3.py | 151 | def test_buffer_add_accepts_a_batch_larger_than_one_env_step(): | CODE |
| LOW⚡ | unit_tests/agents/test_stablebaselines3_models.py | 22 | def test_tqc_and_crossq_are_registered(): | CODE |
| LOW⚡ | unit_tests/agents/test_stablebaselines3_models.py | 30 | def test_get_model_builds_the_right_class(env, model_name, model_cls): | CODE |
| LOW⚡ | unit_tests/agents/test_stablebaselines3_models.py | 37 | def test_get_model_then_learn_runs_a_few_steps(env, model_name): | CODE |
| LOW | unit_tests/paper_trading/test_alpaca_orders.py | 67 | def test_order_dispatch_hands_submit_order_a_response_list(): | CODE |
| LOW | unit_tests/paper_trading/test_alpaca_orders.py | 75 | def test_no_response_list_is_dropped_after_the_join(): | CODE |
| LOW | unit_tests/paper_trading/test_alpaca_orders.py | 93 | def test_failures_are_reported_after_the_threads_are_joined(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | README.md | 118 | ### Step 1: Clone the Repository | COMMENT |
| LOW⚡ | README.md | 125 | ### Step 2: Create and Activate Virtual Environment | COMMENT |
| LOW⚡ | README.md | 132 | ### Step 3: Install FinRL | COMMENT |
| LOW⚡ | README.md | 138 | ### Step 4: Run the Scripts | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_alpaca.py | 142 | # Step 1: Merging dataframes to avoid loop | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_alpaca.py | 150 | # Step 2: Handling NaN values efficiently | COMMENT |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 173 | # Step 3: Data type conversion | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_eodhd.py | 37 | # Step 1: Get NASDAQ 100 components | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_eodhd.py | 47 | # Step 2: Fetch historical minute data for each ticker | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_eodhd.py | 93 | # Step 3: Save the data | COMMENT |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 118 | # Step 1: First pass to collect all unique dates | COMMENT |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 141 | # Step 2: Second pass to update each file with the 'Day' column | COMMENT |
| LOW⚡ | examples/README.md | 3 | ### Step 1: Clone the Repository | COMMENT |
| LOW⚡ | examples/README.md | 10 | ### Step 2: Create and Activate Virtual Environment | COMMENT |
| LOW⚡ | examples/README.md | 17 | ### Step 3: Install FinRL | COMMENT |
| LOW⚡ | examples/README.md | 23 | ### Step 4: Run the Scripts | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrl/plot.py | 258 | CODE | |
| LOW | finrl/main.py | 51 | CODE | |
| LOW | finrl/meta/data_processor.py | 17 | CODE | |
| LOW | …v_portfolio_optimization/env_portfolio_optimization.py | 200 | CODE | |
| LOW | …v_portfolio_optimization/env_portfolio_optimization.py | 571 | CODE | |
| LOW | finrl/meta/paper_trading/alpaca.py | 20 | CODE | |
| LOW | finrl/meta/paper_trading/alpaca.py | 147 | CODE | |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 411 | CODE | |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 23 | CODE | |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 166 | CODE | |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 205 | CODE | |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 242 | CODE | |
| LOW | finrl/meta/data_processors/processor_sinopac.py | 91 | CODE | |
| LOW | finrl/meta/data_processors/processor_ccxt.py | 16 | CODE | |
| LOW | finrl/meta/data_processors/processor_ccxt.py | 24 | CODE | |
| LOW | finrl/meta/data_processors/processor_wrds.py | 20 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 185 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 277 | CODE | |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 541 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_stocktrading.py | 113 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_stocktrading.py | 231 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_stock_papertrading.py | 17 | CODE | |
| LOW | finrl/agents/stablebaselines3/tune_sb3.py | 35 | CODE | |
| LOW | finrl/agents/stablebaselines3/tune_sb3.py | 118 | CODE | |
| LOW | finrl/agents/rllib/models.py | 80 | CODE | |
| LOW | finrl/agents/rllib/models.py | 113 | CODE | |
| LOW | …pplications/stock_trading/fundamental_stock_trading.py | 4 | CODE | |
| LOW | …pplications/stock_trading/fundamental_stock_trading.py | 413 | CODE | |
| LOW | …pplications/stock_trading/fundamental_stock_trading.py | 519 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | finrl/meta/paper_trading/common.py | 2 | # ---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finrl/meta/paper_trading/common.py | 16 | # ---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finrl/meta/paper_trading/common.py | 552 | # ---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finrl/meta/paper_trading/common.py | 687 | # ---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finrl/meta/paper_trading/common.py | 745 | # ---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finrl/meta/paper_trading/common.py | 800 | # ---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finrl/meta/paper_trading/common.py | 841 | # ---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | finrl/meta/data_processors/processor_eodhd.py | 87 | print(f"Error fetching data for {ticker}: {response.text}") | CODE |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 200 | except Exception as e: | CODE |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 234 | except Exception as e: | CODE |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 277 | except Exception as e: | CODE |
| LOW | finrl/meta/data_processors/processor_sinopac.py | 127 | except Exception as e: | CODE |
| MEDIUM | finrl/meta/data_processors/processor_sinopac.py | 128 | print(f"Error calculating {indicator}: {str(e)}") | CODE |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 103 | except Exception as e: | CODE |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 172 | except Exception as e: | CODE |
| MEDIUM | finrl/meta/data_processors/processor_yahoofinance.py | 173 | print(f"Error fetching data for {stock_name}: {e}") | CODE |
| LOW | finrl/meta/data_processors/processor_yahoofinance.py | 406 | except Exception as e: | CODE |
| MEDIUM | finrl/meta/data_processors/processor_yahoofinance.py | 130 | def safe_convert(value, dtype): | CODE |
| LOW | finrl/meta/data_processors/processor_fxmacrodata.py | 171 | except Exception as exc: | CODE |
| LOW | finrl/meta/preprocessor/preprocessors.py | 228 | except Exception as e: | CODE |
| LOW | finrl/meta/preprocessor/shioajidownloader.py | 56 | except Exception as e: | CODE |
| MEDIUM | finrl/meta/preprocessor/shioajidownloader.py | 77 | print(f"Error renaming columns: {e}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrl/plot.py | 258 | CODE | |
| LOW | finrl/plot.py | 337 | CODE | |
| LOW | …v_portfolio_optimization/env_portfolio_optimization.py | 73 | CODE | |
| LOW | finrl/meta/env_cryptocurrency_trading/env_btc_ccxt.py | 7 | CODE | |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 312 | CODE | |
| LOW | finrl/meta/data_processors/processor_sinopac.py | 41 | CODE | |
| LOW | …rl/meta/env_stock_trading/env_stocktrading_stoploss.py | 64 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_nas100_wrds.py | 15 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_stocktrading.py | 35 | CODE | |
| LOW | …meta/env_stock_trading/env_stocktrading_cashpenalty.py | 52 | CODE | |
| LOW | finrl/meta/env_stock_trading/env_stocktrading_np.py | 9 | CODE | |
| LOW | finrl/agents/rllib/drllibv2.py | 125 | CODE | |
| LOW | finrl/agents/portfolio_optimization/algorithms.py | 34 | CODE | |
| LOW | finrl/agents/portfolio_optimization/architectures.py | 101 | CODE | |
| LOW | finrl/agents/portfolio_optimization/architectures.py | 245 | CODE | |
| LOW | finrl/agents/portfolio_optimization/architectures.py | 278 | CODE | |
| LOW | finrl/agents/portfolio_optimization/architectures.py | 464 | CODE | |
| LOW | finrl/agents/fasttd3/agent.py | 75 | CODE | |
| LOW | …pplications/stock_trading/fundamental_stock_trading.py | 347 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | finrl/meta/data_processors/processor_alpaca.py | 142 | # Step 1: Merging dataframes to avoid loop | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_alpaca.py | 150 | # Step 2: Handling NaN values efficiently | COMMENT |
| LOW | finrl/meta/data_processors/processor_alpaca.py | 173 | # Step 3: Data type conversion | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_eodhd.py | 37 | # Step 1: Get NASDAQ 100 components | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_eodhd.py | 47 | # Step 2: Fetch historical minute data for each ticker | COMMENT |
| LOW⚡ | finrl/meta/data_processors/processor_eodhd.py | 93 | # Step 3: Save the data | COMMENT |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 118 | # Step 1: First pass to collect all unique dates | COMMENT |
| LOW | finrl/meta/data_processors/processor_eodhd.py | 141 | # Step 2: Second pass to update each file with the 'Day' column | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | finrl/meta/data_processors/processor_sinopac.py | 48 | # Create a new DataFrame to ensure all time points are included | COMMENT |
| MEDIUM | …pplications/stock_trading/fundamental_stock_trading.py | 265 | # Create a dataframe that merges all the ratios | COMMENT |
| MEDIUM | unit_tests/preprocessors/test_yahoodownloader.py | 21 | # Create a sample DataFrame similar to what fetch_data might produce before adjustment | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrl/test.py | 101 | cwd="./test_ppo", | COMMENT |
| LOW | finrl/test.py | 121 | # cwd="./test_ppo/checkpoint_000030/checkpoint-30", | COMMENT |
| LOW | finrl/train.py | 121 | erl_params=ERL_PARAMS, | COMMENT |
| LOW | finrl/train.py | 141 | # cwd="./test_ppo", | COMMENT |
| LOW | finrl/agents/stablebaselines3/models.py | 661 | self.train_period[0], | COMMENT |
| LOW | docs/source/conf.py | 1 | # | COMMENT |
| LOW | docs/source/conf.py | 121 | # to template names. | COMMENT |
| LOW | docs/source/conf.py | 141 | # | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrl/meta/env_stock_trading/env_stocktrading.py | 117 | ): # check if the stock is able to sell, for simlicity we just add it in techical index | CODE |
| MEDIUM | unit_tests/preprocessors/test_yahoodownloader.py | 79 | # Use pandas testing utility for robust DataFrame comparison | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | finrl/meta/data_processors/processor_alpaca.py | 158 | tmp_df.iloc[0] = [first_valid_price] * 4 + [0.0] # Set volume to zero | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrl/agents/fasttd3/__init__.py | 5 | __all__ = ["FastTD3"] | CODE |