Coverage report: 62%

Files Functions Classes

coverage.py v7.13.1, created at 2026-01-28 16:27 +0200

File function   statements missing excluded   coverage
src / monte_neo / _version.py (no function)   1 0 0   100%
src / monte_neo / cli / app.py MonteNeoCLI.__init__   2 2 0   0%
src / monte_neo / cli / app.py MonteNeoCLI.run   5 5 0   0%
src / monte_neo / cli / app.py MonteNeoCLI.run_export   15 15 0   0%
src / monte_neo / cli / app.py MonteNeoCLI.run_evolve   19 19 0   0%
src / monte_neo / cli / app.py MonteNeoCLI.run_headless   2 2 0   0%
src / monte_neo / cli / app.py parse_args   9 9 0   0%
src / monte_neo / cli / app.py main   18 18 0   0%
src / monte_neo / cli / app.py (no function)   20 0 4   100%
src / monte_neo / cli / menu / custom_test.py test_custom_indicator_workflow   55 55 3   0%
src / monte_neo / cli / menu / custom_test.py test_custom_indicator_workflow.MockResult.__init__   5 5 3   0%
src / monte_neo / cli / menu / custom_test.py _load_indicator_class   14 14 0   0%
src / monte_neo / cli / menu / custom_test.py (no function)   18 18 2   0%
src / monte_neo / cli / menu / data.py download_data_workflow   24 24 0   0%
src / monte_neo / cli / menu / data.py _process_download   40 40 0   0%
src / monte_neo / cli / menu / data.py (no function)   14 14 2   0%
src / monte_neo / cli / menu / generator.py generate_indicator_workflow   21 21 0   0%
src / monte_neo / cli / menu / generator.py _get_iterations   1 1 0   0%
src / monte_neo / cli / menu / generator.py _get_indicator_types   1 1 0   0%
src / monte_neo / cli / menu / generator.py _run_generation   11 11 1   0%
src / monte_neo / cli / menu / generator.py (no function)   11 11 2   0%
src / monte_neo / cli / menu / hardware.py hardware_workflow   28 28 4   0%
src / monte_neo / cli / menu / hardware.py _show_hardware_info   25 25 1   0%
src / monte_neo / cli / menu / hardware.py _run_hardware_benchmark   31 31 0   0%
src / monte_neo / cli / menu / hardware.py (no function)   11 11 2   0%
src / monte_neo / cli / menu / leadership.py leadership_pipeline_workflow   37 37 1   0%
src / monte_neo / cli / menu / leadership.py _display_pipeline_results   13 13 0   0%
src / monte_neo / cli / menu / leadership.py (no function)   14 14 2   0%
src / monte_neo / cli / menu / main.py InteractiveMenu.__init__   18 18 1   0%
src / monte_neo / cli / menu / main.py InteractiveMenu.run   12 12 0   0%
src / monte_neo / cli / menu / main.py InteractiveMenu._show_main_menu   2 2 0   0%
src / monte_neo / cli / menu / main.py InteractiveMenu._handle_choice   31 31 0   0%
src / monte_neo / cli / menu / main.py InteractiveMenu._sync_to_config   8 8 0   0%
src / monte_neo / cli / menu / main.py InteractiveMenu._save_config   3 3 0   0%
src / monte_neo / cli / menu / main.py (no function)   18 0 3   100%
src / monte_neo / cli / menu / mc_config.py configure_mc_workflow   9 9 0   0%
src / monte_neo / cli / menu / mc_config.py (no function)   7 7 2   0%
src / monte_neo / cli / menu / metrics.py set_metrics_workflow   15 15 0   0%
src / monte_neo / cli / menu / metrics.py (no function)   7 7 2   0%
src / monte_neo / cli / menu / portfolio.py portfolio_workflow   18 18 0   0%
src / monte_neo / cli / menu / portfolio.py _portfolio_mc_workflow   13 13 0   0%
src / monte_neo / cli / menu / portfolio.py _cluster_analysis_workflow   13 13 0   0%
src / monte_neo / cli / menu / portfolio.py _optimize_workflow   6 6 0   0%
src / monte_neo / cli / menu / portfolio.py _show_summary   15 15 0   0%
src / monte_neo / cli / menu / portfolio.py _add_asset_workflow   19 19 0   0%
src / monte_neo / cli / menu / portfolio.py (no function)   14 14 2   0%
src / monte_neo / cli / menu / results.py view_results_workflow   13 13 0   0%
src / monte_neo / cli / menu / results.py _display_result_file   27 27 1   0%
src / monte_neo / cli / menu / results.py _format_time   9 9 0   0%
src / monte_neo / cli / menu / results.py show_generation_result   41 41 6   0%
src / monte_neo / cli / menu / results.py _save_result   8 8 1   0%
src / monte_neo / cli / menu / results.py _plot_result   8 8 0   0%
src / monte_neo / cli / menu / results.py _print_trust_certificate   7 7 3   0%
src / monte_neo / cli / menu / results.py (no function)   17 17 2   0%
src / monte_neo / cli / menu / settings.py settings_workflow   48 48 3   0%
src / monte_neo / cli / menu / settings.py (no function)   7 7 2   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector.__init__   19 19 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._get_title   3 3 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._get_cursor_position   8 8 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._update_cols   3 3 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._on_search_change   5 5 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._get_grid_text   18 18 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._setup_keybindings   12 12 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._setup_keybindings._   2 2 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._setup_keybindings._   2 2 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._setup_keybindings._   2 2 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._setup_keybindings._   2 2 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._setup_keybindings._   3 3 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector._setup_keybindings._   2 2 0   0%
src / monte_neo / cli / menu / symbol_selector.py SymbolSelector.ask   2 2 0   0%
src / monte_neo / cli / menu / symbol_selector.py select_symbol   16 16 0   0%
src / monte_neo / cli / menu / symbol_selector.py (no function)   22 22 3   0%
src / monte_neo / cli / progress.py ProgressTracker.__init__   4 0 0   100%
src / monte_neo / cli / progress.py ProgressTracker.start   5 0 0   100%
src / monte_neo / cli / progress.py ProgressTracker.update   3 0 0   100%
src / monte_neo / cli / progress.py ProgressTracker.stop   4 0 0   100%
src / monte_neo / cli / progress.py ProgressTracker.get_eta_minutes   8 8 0   0%
src / monte_neo / cli / progress.py estimate_generation_time   9 9 0   0%
src / monte_neo / cli / progress.py (no function)   11 0 0   100%
src / monte_neo / cli / styles.py press_any_key   2 2 0   0%
src / monte_neo / cli / styles.py print_banner   11 11 0   0%
src / monte_neo / cli / styles.py print_success   1 1 0   0%
src / monte_neo / cli / styles.py print_error   1 1 0   0%
src / monte_neo / cli / styles.py print_warning   1 1 0   0%
src / monte_neo / cli / styles.py print_info   1 1 0   0%
src / monte_neo / cli / styles.py print_section   1 1 0   0%
src / monte_neo / cli / styles.py print_metrics_panel   7 7 0   0%
src / monte_neo / cli / styles.py format_number   5 5 0   0%
src / monte_neo / cli / styles.py format_percentage   1 1 0   0%
src / monte_neo / cli / styles.py format_duration   7 7 0   0%
src / monte_neo / cli / styles.py (no function)   19 0 0   100%
src / monte_neo / core / acceleration / engine.py GpuAccelerationEngine.__init__   17 0 1   100%
src / monte_neo / core / acceleration / engine.py GpuAccelerationEngine._reconstruct_strategy   7 0 0   100%
src / monte_neo / core / acceleration / engine.py GpuAccelerationEngine.run_simulation   39 0 1   100%
src / monte_neo / core / acceleration / engine.py GpuAccelerationEngine.run_benchmark_simulation   18 0 0   100%
src / monte_neo / core / acceleration / engine.py (no function)   12 0 0   100%
src / monte_neo / core / acceleration / float8.py Float8Encoder.__init__   14 6 0   57%
src / monte_neo / core / acceleration / float8.py Float8Encoder.encode_scalar   34 34 0   0%
src / monte_neo / core / acceleration / float8.py Float8Encoder.decode_scalar   16 16 0   0%
src / monte_neo / core / acceleration / float8.py Float8Encoder.encode_array   6 6 0   0%
src / monte_neo / core / acceleration / float8.py Float8Encoder.decode_array   6 6 0   0%
src / monte_neo / core / acceleration / float8.py pack_float8_array   2 2 0   0%
src / monte_neo / core / acceleration / float8.py unpack_float8_array   1 1 0   0%
src / monte_neo / core / acceleration / float8.py (no function)   10 0 0   100%
src / monte_neo / core / acceleration / indicators.py MLXIndicator.compute   0 0 1   100%
src / monte_neo / core / acceleration / indicators.py MLXSMA.__init__   2 0 0   100%
src / monte_neo / core / acceleration / indicators.py MLXSMA.compute   9 1 0   89%
src / monte_neo / core / acceleration / indicators.py MLXRSI.__init__   1 1 0   0%
src / monte_neo / core / acceleration / indicators.py MLXRSI.compute   9 9 0   0%
src / monte_neo / core / acceleration / indicators.py MLXRollingMax.__init__   1 1 0   0%
src / monte_neo / core / acceleration / indicators.py MLXRollingMax.compute   6 6 0   0%
src / monte_neo / core / acceleration / indicators.py MLXDynamicStrategy.__init__   1 1 0   0%
src / monte_neo / core / acceleration / indicators.py MLXDynamicStrategy.generate_signals   10 10 0   0%
src / monte_neo / core / acceleration / indicators.py MLXCrossStrategy.__init__   2 0 0   100%
src / monte_neo / core / acceleration / indicators.py MLXCrossStrategy.generate_signals   6 1 0   83%
src / monte_neo / core / acceleration / indicators.py MLXSMACrossStrategy.__init__   2 2 0   0%
src / monte_neo / core / acceleration / indicators.py MLXSMACrossStrategy.generate_signals   5 5 0   0%
src / monte_neo / core / acceleration / indicators.py (no function)   23 0 0   100%
src / monte_neo / core / acceleration / tensor_ops.py TensorOps.to_tensor   1 0 0   100%
src / monte_neo / core / acceleration / tensor_ops.py TensorOps.moving_average   13 3 0   77%
src / monte_neo / core / acceleration / tensor_ops.py TensorOps.generate_shuffle_scenarios   11 0 0   100%
src / monte_neo / core / acceleration / tensor_ops.py TensorOps.generate_noise_scenarios   12 0 0   100%
src / monte_neo / core / acceleration / tensor_ops.py (no function)   15 0 0   100%
src / monte_neo / core / config.py (no function)   39 0 4   100%
src / monte_neo / core / evolution.py EvolutionEngine.__init__   5 0 0   100%
src / monte_neo / core / evolution.py EvolutionEngine.run   61 14 0   77%
src / monte_neo / core / evolution.py EvolutionEngine._crossover_indicators   8 1 0   88%
src / monte_neo / core / evolution.py EvolutionEngine._tournament_select   3 0 0   100%
src / monte_neo / core / evolution.py EvolutionEngine._mutate_indicator   15 2 0   87%
src / monte_neo / core / evolution.py EvolutionEngine._mutate_indicator.replace_num   3 3 0   0%
src / monte_neo / core / evolution.py (no function)   17 0 3   100%
src / monte_neo / core / evolution_ai.py AIEvolutionEngine.__init__   7 0 0   100%
src / monte_neo / core / evolution_ai.py AIEvolutionEngine.evolve   16 0 0   100%
src / monte_neo / core / evolution_ai.py AIEvolutionEngine._initialize_population   6 0 0   100%
src / monte_neo / core / evolution_ai.py AIEvolutionEngine._evaluate_population   29 3 0   90%
src / monte_neo / core / evolution_ai.py AIEvolutionEngine._crossover   10 2 0   80%
src / monte_neo / core / evolution_ai.py AIEvolutionEngine._mutate   19 3 0   84%
src / monte_neo / core / evolution_ai.py (no function)   23 0 0   100%
src / monte_neo / core / generator.py IndicatorGenerator.__init__   8 0 0   100%
src / monte_neo / core / generator.py IndicatorGenerator.set_progress_callback   1 0 0   100%
src / monte_neo / core / generator.py IndicatorGenerator._run_mc_validation   2 0 1   100%
src / monte_neo / core / generator.py IndicatorGenerator.generate   1 0 0   100%
src / monte_neo / core / generator.py IndicatorGenerator._mutate_indicator   2 0 0   100%
src / monte_neo / core / generator.py IndicatorGenerator._generate_random_indicator   19 0 0   100%
src / monte_neo / core / generator.py IndicatorGenerator._meets_basic_targets   10 0 0   100%
src / monte_neo / core / generator.py IndicatorGenerator._run_evolution   3 0 0   100%
src / monte_neo / core / generator.py IndicatorGenerator.estimate_time   1 0 0   100%
src / monte_neo / core / generator.py (no function)   29 0 2   100%
src / monte_neo / core / generator_search.py run_search   72 4 11   94%
src / monte_neo / core / generator_search.py _create_result   7 2 1   71%
src / monte_neo / core / generator_search.py _pre_generate_scenarios   13 0 0   100%
src / monte_neo / core / generator_search.py _update_progress   6 0 0   100%
src / monte_neo / core / generator_search.py _run_evolution_phase   17 15 2   12%
src / monte_neo / core / generator_search.py (no function)   15 0 3   100%
src / monte_neo / core / generator_utils.py estimate_time   11 0 0   100%
src / monte_neo / core / generator_utils.py (no function)   6 0 2   100%
src / monte_neo / core / generator_worker.py _search_worker   18 3 1   83%
src / monte_neo / core / generator_worker.py (no function)   4 0 2   100%
src / monte_neo / core / gpu_engine.py (no function)   2 0 0   100%
src / monte_neo / core / gpu_lazy.py backtest_lazy_scenarios   70 5 2   93%
src / monte_neo / core / gpu_lazy.py (no function)   8 0 2   100%
src / monte_neo / core / gpu_scenarios.py normalize_signal_array   15 2 0   87%
src / monte_neo / core / gpu_scenarios.py run_scenarios_backtest   69 6 2   91%
src / monte_neo / core / gpu_scenarios.py (no function)   10 0 2   100%
src / monte_neo / core / mlx_engine.py MLXBacktestEngine.__init__   20 1 0   95%
src / monte_neo / core / mlx_engine.py MLXBacktestEngine._select_best_driver   28 3 0   89%
src / monte_neo / core / mlx_engine.py MLXBacktestEngine.run_full_simulation   47 1 0   98%
src / monte_neo / core / mlx_engine.py MLXBacktestEngine.backtest_batch   45 0 0   100%
src / monte_neo / core / mlx_engine.py MLXBacktestEngine.backtest_scenarios   1 0 0   100%
src / monte_neo / core / mlx_engine.py MLXBacktestEngine.backtest_lazy_scenarios   1 0 0   100%
src / monte_neo / core / mlx_engine.py (no function)   43 3 2   93%
src / monte_neo / core / native / metal_engine.py MetalFloat8Engine.__init__   7 7 0   0%
src / monte_neo / core / native / metal_engine.py MetalFloat8Engine._load_shaders   15 15 0   0%
src / monte_neo / core / native / metal_engine.py MetalFloat8Engine._create_default_shaders   7 7 0   0%
src / monte_neo / core / native / metal_engine.py MetalFloat8Engine.encode_float32_to_e4m3   23 23 0   0%
src / monte_neo / core / native / metal_engine.py MetalFloat8Engine.decode_e4m3_to_float32   23 23 0   0%
src / monte_neo / core / native / metal_engine.py MetalFloat8Engine.generate_scenarios_e4m3   31 31 1   0%
src / monte_neo / core / native / metal_engine.py MetalFloat8Engine.get_memory_bandwidth_improvement   1 1 0   0%
src / monte_neo / core / native / metal_engine.py MetalFloat8Engine.get_precision_loss_estimate   1 1 0   0%
src / monte_neo / core / native / metal_engine.py (no function)   18 1 2   94%
src / monte_neo / core / optimization / production_exporter.py ProductionExporter.__init__   2 0 0   100%
src / monte_neo / core / optimization / production_exporter.py ProductionExporter.export   16 0 0   100%
src / monte_neo / core / optimization / production_exporter.py ProductionExporter._export_cpp   20 0 0   100%
src / monte_neo / core / optimization / production_exporter.py ProductionExporter._export_metal   7 0 0   100%
src / monte_neo / core / optimization / production_exporter.py ProductionExporter._generate_cpp_source   2 0 0   100%
src / monte_neo / core / optimization / production_exporter.py ProductionExporter._generate_metal_source   1 0 0   100%
src / monte_neo / core / optimization / production_exporter.py (no function)   11 0 0   100%
src / monte_neo / core / optimizer.py ParameterOptimizer.__init__   3 0 0   100%
src / monte_neo / core / optimizer.py ParameterOptimizer.optimize   16 8 0   50%
src / monte_neo / core / optimizer.py ParameterOptimizer._random_search   13 0 0   100%
src / monte_neo / core / optimizer.py ParameterOptimizer._grid_search   20 20 0   0%
src / monte_neo / core / optimizer.py ParameterOptimizer._genetic_search   33 33 0   0%
src / monte_neo / core / optimizer.py ParameterOptimizer._evaluate   6 1 0   83%
src / monte_neo / core / optimizer.py ParameterOptimizer._tournament_select   3 3 0   0%
src / monte_neo / core / optimizer.py ParameterOptimizer._crossover   4 4 0   0%
src / monte_neo / core / optimizer.py ParameterOptimizer._mutate   4 4 0   0%
src / monte_neo / core / optimizer.py (no function)   24 0 4   100%
src / monte_neo / core / portfolio / manager.py PortfolioManager.__init__   3 0 0   100%
src / monte_neo / core / portfolio / manager.py PortfolioManager.add_asset   2 0 0   100%
src / monte_neo / core / portfolio / manager.py PortfolioManager.calculate_correlations   3 0 0   100%
src / monte_neo / core / portfolio / manager.py PortfolioManager.cluster_assets   26 21 0   19%
src / monte_neo / core / portfolio / manager.py PortfolioManager.optimize_weights   18 1 0   94%
src / monte_neo / core / portfolio / manager.py PortfolioManager.run_portfolio_monte_carlo   14 1 0   93%
src / monte_neo / core / portfolio / manager.py PortfolioManager.get_combined_equity   12 2 0   83%
src / monte_neo / core / portfolio / manager.py PortfolioManager.get_portfolio_summary   6 6 0   0%
src / monte_neo / core / portfolio / manager.py PortfolioManager.auto_rebalance   7 1 0   86%
src / monte_neo / core / portfolio / manager.py (no function)   25 0 0   100%
src / monte_neo / core / portfolio / risk.py calculate_kelly_fraction   4 0 0   100%
src / monte_neo / core / portfolio / risk.py calculate_volatility_adjusted_size   4 0 0   100%
src / monte_neo / core / portfolio / risk.py calculate_risk_parity_weights   7 0 0   100%
src / monte_neo / core / portfolio / risk.py (no function)   4 0 0   100%
src / monte_neo / core / validator.py OverfitValidator.__init__   3 0 0   100%
src / monte_neo / core / validator.py OverfitValidator.validate   26 2 1   92%
src / monte_neo / core / validator.py OverfitValidator.check_non_repainting   11 3 0   73%
src / monte_neo / core / validator.py OverfitValidator._calculate_oos_ratio   6 1 0   83%
src / monte_neo / core / validator.py OverfitValidator._cross_validate   13 1 0   92%
src / monte_neo / core / validator.py OverfitValidator._check_targets   10 3 0   70%
src / monte_neo / core / validator.py OverfitValidator._calculate_overall_score   8 0 0   100%
src / monte_neo / core / validator.py OverfitValidator.quick_check   9 4 1   56%
src / monte_neo / core / validator.py (no function)   23 0 4   100%
src / monte_neo / data / downloader.py BinanceDownloader.__init__   4 0 0   100%
src / monte_neo / data / downloader.py BinanceDownloader.get_available_symbols   2 0 0   100%
src / monte_neo / data / downloader.py BinanceDownloader._fetch_klines   22 1 0   95%
src / monte_neo / data / downloader.py BinanceDownloader.download   33 0 0   100%
src / monte_neo / data / downloader.py BinanceDownloader._process_dataframe   7 0 0   100%
src / monte_neo / data / downloader.py BinanceDownloader.download_multiple   7 0 0   100%
src / monte_neo / data / downloader.py download_sample_data   4 0 0   100%
src / monte_neo / data / downloader.py (no function)   19 0 0   100%
src / monte_neo / data / sampler.py DataSampler.__init__   1 0 0   100%
src / monte_neo / data / sampler.py DataSampler.bootstrap   10 0 0   100%
src / monte_neo / data / sampler.py DataSampler.block_bootstrap   14 0 0   100%
src / monte_neo / data / sampler.py DataSampler.circular_block_bootstrap   15 15 0   0%
src / monte_neo / data / sampler.py DataSampler.stratified_sample   18 18 0   0%
src / monte_neo / data / sampler.py DataSampler.inject_noise   8 0 0   100%
src / monte_neo / data / sampler.py DataSampler.synthetic_data   12 12 0   0%
src / monte_neo / data / sampler.py (no function)   14 0 2   100%
src / monte_neo / data / storage.py ParquetStorage.__init__   4 1 0   75%
src / monte_neo / data / storage.py ParquetStorage._ensure_directories   2 0 0   100%
src / monte_neo / data / storage.py ParquetStorage._get_path   2 0 0   100%
src / monte_neo / data / storage.py ParquetStorage.save   5 0 0   100%
src / monte_neo / data / storage.py ParquetStorage.load   6 1 0   83%
src / monte_neo / data / storage.py ParquetStorage.exists   1 0 0   100%
src / monte_neo / data / storage.py ParquetStorage.list_files   7 0 0   100%
src / monte_neo / data / storage.py ParquetStorage.delete   6 1 0   83%
src / monte_neo / data / storage.py ParquetStorage.get_info   30 3 0   90%
src / monte_neo / data / storage.py (no function)   19 0 2   100%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer.__init__   8 1 0   88%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer.__enter__   2 0 0   100%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer.__exit__   1 0 0   100%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer.start   5 0 0   100%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer.stop   7 2 0   71%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer.subscribe_kline   7 0 0   100%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer.subscribe_mini_ticker   6 0 0   100%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer.subscribe_streams   6 6 0   0%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer._normalize_symbol   4 1 0   75%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer._normalize_interval   7 1 0   86%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer._normalize_streams   6 6 0   0%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer._register_callback   2 0 0   100%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer._dispatch_message   16 9 0   44%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer._handle_error   2 0 0   100%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer._handle_close   4 4 0   0%
src / monte_neo / data / websocket.py BinanceWebsocketStreamer._attempt_reconnect   22 8 1   64%
src / monte_neo / data / websocket.py (no function)   26 0 0   100%
src / monte_neo / indicators / base.py BaseIndicator.__init__   2 0 0   100%
src / monte_neo / indicators / base.py BaseIndicator.name   1 0 0   100%
src / monte_neo / indicators / base.py BaseIndicator.get_parameters   1 0 0   100%
src / monte_neo / indicators / base.py BaseIndicator.set_parameter   2 0 0   100%
src / monte_neo / indicators / base.py BaseIndicator.set_parameters   2 0 0   100%
src / monte_neo / indicators / base.py BaseIndicator.get_id   3 3 0   0%
src / monte_neo / indicators / base.py BaseIndicator.calculate   0 0 1   100%
src / monte_neo / indicators / base.py BaseIndicator.generate_signals   0 0 1   100%
src / monte_neo / indicators / base.py BaseIndicator.get_metal_params   1 1 0   0%
src / monte_neo / indicators / base.py BaseIndicator.to_mlx_representation   1 1 0   0%
src / monte_neo / indicators / base.py BaseIndicator.generate_signals_fast   7 7 0   0%
src / monte_neo / indicators / base.py BaseIndicator.get_formula   1 1 0   0%
src / monte_neo / indicators / base.py BaseIndicator.validate_data   9 9 0   0%
src / monte_neo / indicators / base.py BaseIndicator.get_min_periods   1 1 0   0%
src / monte_neo / indicators / base.py BaseIndicator.to_dict   1 1 0   0%
src / monte_neo / indicators / base.py BaseIndicator.from_dict   4 4 0   0%
src / monte_neo / indicators / base.py (no function)   35 0 0   100%
src / monte_neo / indicators / code_gen.py CodeGenerator.__init__   1 0 0   100%
src / monte_neo / indicators / code_gen.py CodeGenerator.generate_code   33 0 0   100%
src / monte_neo / indicators / code_gen.py (no function)   5 0 0   100%
src / monte_neo / indicators / custom.py ConditionRule.evaluate   17 6 0   65%
src / monte_neo / indicators / custom.py ConditionRule._get_value   3 1 0   67%
src / monte_neo / indicators / custom.py CustomIndicatorBuilder.__init__   4 0 0   100%
src / monte_neo / indicators / custom.py CustomIndicatorBuilder.add_sma   3 0 0   100%
src / monte_neo / indicators / custom.py CustomIndicatorBuilder.add_ema   3 3 0   0%
src / monte_neo / indicators / custom.py CustomIndicatorBuilder.add_rsi   3 3 0   0%
src / monte_neo / indicators / custom.py CustomIndicatorBuilder.add_entry_rule   2 0 0   100%
src / monte_neo / indicators / custom.py CustomIndicatorBuilder.add_exit_rule   2 0 0   100%
src / monte_neo / indicators / custom.py CustomIndicatorBuilder.build   6 0 0   100%
src / monte_neo / indicators / custom.py CustomIndicator.__init__   4 0 0   100%
src / monte_neo / indicators / custom.py CustomIndicator.calculate   9 0 0   100%
src / monte_neo / indicators / custom.py CustomIndicator.generate_signals   14 0 0   100%
src / monte_neo / indicators / custom.py CustomIndicator.get_min_periods   5 5 0   0%
src / monte_neo / indicators / custom.py (no function)   29 0 0   100%
src / monte_neo / indicators / dynamic.py DynamicIndicator.__init__   3 0 0   100%
src / monte_neo / indicators / dynamic.py DynamicIndicator.__getstate__   3 3 0   0%
src / monte_neo / indicators / dynamic.py DynamicIndicator.__setstate__   2 2 0   0%
src / monte_neo / indicators / dynamic.py DynamicIndicator.source_code   1 0 0   100%
src / monte_neo / indicators / dynamic.py DynamicIndicator._compile_if_needed   2 0 0   100%
src / monte_neo / indicators / dynamic.py DynamicIndicator._reset_to_safe_source   3 3 0   0%
src / monte_neo / indicators / dynamic.py DynamicIndicator._evaluate   13 6 0   54%
src / monte_neo / indicators / dynamic.py DynamicIndicator._evaluate_with_fallback   10 8 0   20%
src / monte_neo / indicators / dynamic.py DynamicIndicator.get_metal_params   2 2 0   0%
src / monte_neo / indicators / dynamic.py DynamicIndicator.get_formula   1 0 0   100%
src / monte_neo / indicators / dynamic.py DynamicIndicator.to_mlx_representation   19 19 1   0%
src / monte_neo / indicators / dynamic.py DynamicIndicator.calculate   6 1 0   83%
src / monte_neo / indicators / dynamic.py DynamicIndicator.generate_signals   14 4 0   71%
src / monte_neo / indicators / dynamic.py DynamicIndicator.generate_signals_fast   5 1 0   80%
src / monte_neo / indicators / dynamic.py DynamicIndicator.get_min_periods   1 1 0   0%
src / monte_neo / indicators / dynamic.py (no function)   26 0 0   100%
src / monte_neo / indicators / evaluator.py rsi   8 1 0   88%
src / monte_neo / indicators / evaluator.py sma   4 4 0   0%
src / monte_neo / indicators / evaluator.py compile_source   13 0 0   100%
src / monte_neo / indicators / evaluator.py evaluate_fast_signals   20 5 0   75%
src / monte_neo / indicators / evaluator.py (no function)   11 0 0   100%
src / monte_neo / indicators / macd.py MACDIndicator.__init__   4 0 0   100%
src / monte_neo / indicators / macd.py MACDIndicator.calculate   6 0 0   100%
src / monte_neo / indicators / macd.py MACDIndicator.generate_signals   9 0 0   100%
src / monte_neo / indicators / macd.py MACDIndicator.generate_signals_fast   10 10 0   0%
src / monte_neo / indicators / macd.py MACDIndicator.get_formula   4 4 0   0%
src / monte_neo / indicators / macd.py MACDIndicator.get_min_periods   1 1 0   0%
src / monte_neo / indicators / macd.py MACDIndicator.get_metal_params   1 1 0   0%
src / monte_neo / indicators / macd.py (no function)   14 0 0   100%
src / monte_neo / indicators / metal_parser.py parse_metal_params   20 1 0   95%
src / monte_neo / indicators / metal_parser.py parse_metal_params.parse_simple_cond   43 10 0   77%
src / monte_neo / indicators / metal_parser.py (no function)   2 0 0   100%
src / monte_neo / indicators / numba_funcs.py sma_numba   11 11 0   0%
src / monte_neo / indicators / numba_funcs.py ema_numba   8 8 0   0%
src / monte_neo / indicators / numba_funcs.py rsi_numba   28 28 0   0%
src / monte_neo / indicators / numba_funcs.py sma_crossover_signals_numba   25 25 1   0%
src / monte_neo / indicators / numba_funcs.py rsi_signals_numba   11 11 1   0%
src / monte_neo / indicators / numba_funcs.py macd_signals_numba   20 20 1   0%
src / monte_neo / indicators / numba_funcs.py (no function)   15 0 0   100%
src / monte_neo / indicators / rsi.py RSIIndicator.__init__   4 0 0   100%
src / monte_neo / indicators / rsi.py RSIIndicator.calculate   3 0 0   100%
src / monte_neo / indicators / rsi.py RSIIndicator.generate_signals   7 0 0   100%
src / monte_neo / indicators / rsi.py RSIIndicator.generate_signals_fast   8 8 0   0%
src / monte_neo / indicators / rsi.py RSIIndicator.get_formula   4 4 0   0%
src / monte_neo / indicators / rsi.py RSIIndicator.get_min_periods   1 1 0   0%
src / monte_neo / indicators / rsi.py RSIIndicator.get_metal_params   1 1 0   0%
src / monte_neo / indicators / rsi.py (no function)   14 0 0   100%
src / monte_neo / indicators / sma.py SMAIndicator.__init__   3 0 0   100%
src / monte_neo / indicators / sma.py SMAIndicator.calculate   4 0 0   100%
src / monte_neo / indicators / sma.py SMAIndicator.generate_signals   9 0 0   100%
src / monte_neo / indicators / sma.py SMAIndicator.generate_signals_fast   8 8 0   0%
src / monte_neo / indicators / sma.py SMAIndicator.get_formula   3 0 0   100%
src / monte_neo / indicators / sma.py SMAIndicator.get_min_periods   1 1 0   0%
src / monte_neo / indicators / sma.py SMAIndicator.get_metal_params   1 1 0   0%
src / monte_neo / indicators / sma.py SMAIndicator.to_mlx_representation   7 7 0   0%
src / monte_neo / indicators / sma.py (no function)   15 0 1   100%
src / monte_neo / indicators / technical.py (no function)   7 0 0   100%
src / monte_neo / indicators / technical_lib.py TechnicalIndicators.sma   1 0 0   100%
src / monte_neo / indicators / technical_lib.py TechnicalIndicators.ema   1 0 0   100%
src / monte_neo / indicators / technical_lib.py TechnicalIndicators.rsi   6 0 0   100%
src / monte_neo / indicators / technical_lib.py TechnicalIndicators.macd   6 0 0   100%
src / monte_neo / indicators / technical_lib.py TechnicalIndicators.bollinger_bands   5 0 0   100%
src / monte_neo / indicators / technical_lib.py TechnicalIndicators.atr   9 0 0   100%
src / monte_neo / indicators / technical_lib.py TechnicalIndicators.stochastic   6 0 0   100%
src / monte_neo / indicators / technical_lib.py (no function)   17 0 0   100%
src / monte_neo / metrics / calculator.py MetricsCalculator.__init__   8 0 0   100%
src / monte_neo / metrics / calculator.py MetricsCalculator.calculate_all   60 0 0   100%
src / monte_neo / metrics / calculator.py MetricsCalculator.calculate_all.needs   1 0 0   100%
src / monte_neo / metrics / calculator.py MetricsCalculator._extract_trades   17 0 0   100%
src / monte_neo / metrics / calculator.py MetricsCalculator.calculate_batch_fast   1 0 0   100%
src / monte_neo / metrics / calculator.py MetricsCalculator.calculate_batch_multi_price_fast   1 0 0   100%
src / monte_neo / metrics / calculator.py MetricsCalculator._calculate_equity   7 0 0   100%
src / monte_neo / metrics / calculator.py (no function)   27 2 0   93%
src / monte_neo / metrics / drawdown.py DrawdownMetric.calculate_max   6 0 0   100%
src / monte_neo / metrics / drawdown.py DrawdownMetric.calculate_avg   9 0 0   100%
src / monte_neo / metrics / drawdown.py DrawdownMetric.calculate_duration   13 0 0   100%
src / monte_neo / metrics / drawdown.py DrawdownMetric.get_drawdown_curve   6 1 0   83%
src / monte_neo / metrics / drawdown.py DrawdownMetric.get_underwater_curve   1 1 0   0%
src / monte_neo / metrics / drawdown.py DrawdownMetric.analyze_drawdowns   21 21 0   0%
src / monte_neo / metrics / drawdown.py (no function)   11 0 0   100%
src / monte_neo / metrics / numba_funcs.py extract_trades_fast   52 52 0   0%
src / monte_neo / metrics / numba_funcs.py calculate_batch_fast   71 71 0   0%
src / monte_neo / metrics / numba_funcs.py calculate_batch_multi_price_fast   77 77 0   0%
src / monte_neo / metrics / numba_funcs.py (no function)   9 0 0   100%
src / monte_neo / metrics / profit_factor.py ProfitFactorMetric.calculate   8 1 0   88%
src / monte_neo / metrics / profit_factor.py ProfitFactorMetric.calculate_rolling   8 8 0   0%
src / monte_neo / metrics / profit_factor.py ProfitFactorMetric.is_acceptable   1 1 0   0%
src / monte_neo / metrics / profit_factor.py (no function)   8 0 0   100%
src / monte_neo / metrics / sharpe.py SharpeRatioMetric.__init__   2 0 0   100%
src / monte_neo / metrics / sharpe.py SharpeRatioMetric.calculate   11 1 0   91%
src / monte_neo / metrics / sharpe.py SharpeRatioMetric.calculate_rolling   8 8 0   0%
src / monte_neo / metrics / sharpe.py SortinoRatioMetric.__init__   2 0 0   100%
src / monte_neo / metrics / sharpe.py SortinoRatioMetric.calculate   14 2 0   86%
src / monte_neo / metrics / sharpe.py SortinoRatioMetric.calculate_downside_deviation   5 5 0   0%
src / monte_neo / metrics / sharpe.py (no function)   12 0 0   100%
src / monte_neo / metrics / types.py (no function)   11 0 0   100%
src / monte_neo / metrics / utils.py max_consecutive   9 0 0   100%
src / monte_neo / metrics / utils.py calculate_recovery_factor   3 0 0   100%
src / monte_neo / metrics / utils.py calculate_calmar_ratio   4 0 0   100%
src / monte_neo / metrics / utils.py get_empty_metrics   1 0 0   100%
src / monte_neo / metrics / utils.py (no function)   6 0 0   100%
src / monte_neo / metrics / winrate.py WinrateMetric.calculate   5 1 0   80%
src / monte_neo / metrics / winrate.py WinrateMetric.expectancy   8 1 0   88%
src / monte_neo / metrics / winrate.py WinrateMetric.avg_win   7 1 0   86%
src / monte_neo / metrics / winrate.py WinrateMetric.avg_loss   7 1 0   86%
src / monte_neo / metrics / winrate.py WinrateMetric.win_loss_ratio   5 0 0   100%
src / monte_neo / metrics / winrate.py WinrateMetric.required_winrate   3 3 0   0%
src / monte_neo / metrics / winrate.py WinrateMetric.edge_ratio   4 4 0   0%
src / monte_neo / metrics / winrate.py WinrateMetric.get_trade_distribution   4 4 0   0%
src / monte_neo / metrics / winrate.py WinrateMetric._skewness   7 7 0   0%
src / monte_neo / metrics / winrate.py (no function)   14 0 0   100%
src / monte_neo / monte_carlo / cscv.py CSCVAnalyzer.analyze   12 0 0   100%
src / monte_neo / monte_carlo / cscv.py (no function)   7 0 3   100%
src / monte_neo / monte_carlo / engine.py MonteCarloEngine.__init__   7 0 0   100%
src / monte_neo / monte_carlo / engine.py MonteCarloEngine.set_progress_callback   1 0 0   100%
src / monte_neo / monte_carlo / engine.py MonteCarloEngine.run   61 0 18   100%
src / monte_neo / monte_carlo / engine.py MonteCarloEngine.run._meets_targets   10 0 0   100%
src / monte_neo / monte_carlo / engine.py MonteCarloEngine._run_cpu_parallel   22 0 6   100%
src / monte_neo / monte_carlo / engine.py MonteCarloEngine._finalize_results   0 0 17   100%
src / monte_neo / monte_carlo / engine.py MonteCarloEngine.run_sequential   3 0 0   100%
src / monte_neo / monte_carlo / engine.py (no function)   19 0 6   100%
src / monte_neo / monte_carlo / noise.py NoiseInjector.__init__   1 0 0   100%
src / monte_neo / monte_carlo / noise.py NoiseInjector.add_noise   10 0 0   100%
src / monte_neo / monte_carlo / noise.py NoiseInjector.add_slippage   11 0 0   100%
src / monte_neo / monte_carlo / noise.py NoiseInjector.add_spread_variation   15 0 0   100%
src / monte_neo / monte_carlo / noise.py NoiseInjector.add_gap_noise   13 13 0   0%
src / monte_neo / monte_carlo / noise.py NoiseInjector.add_volume_noise   9 0 0   100%
src / monte_neo / monte_carlo / noise.py NoiseInjector.add_latency_shift   9 9 0   0%
src / monte_neo / monte_carlo / noise.py NoiseInjector._fix_ohlc   4 0 0   100%
src / monte_neo / monte_carlo / noise.py (no function)   14 0 0   100%
src / monte_neo / monte_carlo / scenarios.py ScenarioBuilder.__init__   6 0 0   100%
src / monte_neo / monte_carlo / scenarios.py ScenarioBuilder.generate_shuffling   4 0 0   100%
src / monte_neo / monte_carlo / scenarios.py ScenarioBuilder.generate_noise   1 0 0   100%
src / monte_neo / monte_carlo / scenarios.py ScenarioBuilder.generate_walk_forward   1 0 0   100%
src / monte_neo / monte_carlo / scenarios.py ScenarioBuilder.generate_block_bootstrap   1 0 0   100%
src / monte_neo / monte_carlo / scenarios.py ScenarioBuilder.generate   17 1 0   94%
src / monte_neo / monte_carlo / scenarios.py (no function)   15 0 2   100%
src / monte_neo / monte_carlo / sensitivity.py SensitivityAnalyzer.__init__   2 0 0   100%
src / monte_neo / monte_carlo / sensitivity.py SensitivityAnalyzer.analyze_parameter   13 0 0   100%
src / monte_neo / monte_carlo / sensitivity.py SensitivityAnalyzer.analyze_all_parameters   6 0 0   100%
src / monte_neo / monte_carlo / sensitivity.py SensitivityAnalyzer.get_stability_report   4 0 0   100%
src / monte_neo / monte_carlo / sensitivity.py SensitivityAnalyzer._generate_variations   6 0 0   100%
src / monte_neo / monte_carlo / sensitivity.py SensitivityAnalyzer._calculate_stability   16 4 0   75%
src / monte_neo / monte_carlo / sensitivity.py (no function)   22 0 3   100%
src / monte_neo / monte_carlo / sequential.py SequentialMCRunner.__init__   1 0 0   100%
src / monte_neo / monte_carlo / sequential.py SequentialMCRunner.run   40 0 14   100%
src / monte_neo / monte_carlo / sequential.py SequentialMCRunner._run_step   26 3 10   88%
src / monte_neo / monte_carlo / sequential.py SequentialMCRunner._run_sensitivity_step   4 0 5   100%
src / monte_neo / monte_carlo / sequential.py SequentialMCRunner._generate_advice   0 0 30   100%
src / monte_neo / monte_carlo / sequential.py (no function)   16 0 5   100%
src / monte_neo / monte_carlo / shuffler.py DataShuffler.__init__   1 0 0   100%
src / monte_neo / monte_carlo / shuffler.py DataShuffler.shuffle_returns   10 0 0   100%
src / monte_neo / monte_carlo / shuffler.py DataShuffler.shuffle_blocks   20 0 0   100%
src / monte_neo / monte_carlo / shuffler.py DataShuffler.shuffle_within_session   18 3 0   83%
src / monte_neo / monte_carlo / shuffler.py DataShuffler.shuffle_columns   11 1 0   91%
src / monte_neo / monte_carlo / shuffler.py DataShuffler._reconstruct_ohlcv   7 0 0   100%
src / monte_neo / monte_carlo / shuffler.py (no function)   12 0 0   100%
src / monte_neo / monte_carlo / types.py (no function)   38 0 7   100%
src / monte_neo / monte_carlo / utils.py summarize_metrics   19 4 0   79%
src / monte_neo / monte_carlo / utils.py (no function)   3 0 0   100%
src / monte_neo / monte_carlo / walk_forward.py WalkForwardAnalyzer.__init__   3 0 0   100%
src / monte_neo / monte_carlo / walk_forward.py WalkForwardAnalyzer.generate_scenarios   9 0 0   100%
src / monte_neo / monte_carlo / walk_forward.py WalkForwardAnalyzer.analyze   17 1 5   94%
src / monte_neo / monte_carlo / walk_forward.py WalkForwardAnalyzer._generate_windows   23 6 0   74%
src / monte_neo / monte_carlo / walk_forward.py WalkForwardAnalyzer._check_targets   12 5 0   58%
src / monte_neo / monte_carlo / walk_forward.py WalkForwardAnalyzer._aggregate_metrics   12 1 0   92%
src / monte_neo / monte_carlo / walk_forward.py WalkForwardAnalyzer._calculate_efficiency   14 2 0   86%
src / monte_neo / monte_carlo / walk_forward.py (no function)   29 0 6   100%
src / monte_neo / monte_carlo / workers.py _generate_signals_wrapper   7 0 0   100%
src / monte_neo / monte_carlo / workers.py run_indicator_batch   13 0 0   100%
src / monte_neo / monte_carlo / workers.py _generate_lazy_scenario_wrapper   1 0 0   100%
src / monte_neo / monte_carlo / workers.py init_worker   1 0 0   100%
src / monte_neo / monte_carlo / workers.py init_worker_data   1 0 0   100%
src / monte_neo / monte_carlo / workers.py run_scenario_batch   27 0 6   100%
src / monte_neo / monte_carlo / workers.py run_single_scenario   11 0 4   100%
src / monte_neo / monte_carlo / workers.py run_block_bootstrap_scenario   22 0 0   100%
src / monte_neo / monte_carlo / workers.py (no function)   14 0 3   100%
src / monte_neo / utils / ast_utils.py ExpressionCollector.__init__   1 0 0   100%
src / monte_neo / utils / ast_utils.py ExpressionCollector.visit_BinOp   2 0 0   100%
src / monte_neo / utils / ast_utils.py ExpressionCollector.visit_Call   2 0 0   100%
src / monte_neo / utils / ast_utils.py ExpressionCollector.visit_Attribute   2 0 0   100%
src / monte_neo / utils / ast_utils.py ExpressionCollector.visit_Subscript   2 0 0   100%
src / monte_neo / utils / ast_utils.py CrossoverTransformer.__init__   2 0 0   100%
src / monte_neo / utils / ast_utils.py CrossoverTransformer.visit   3 0 0   100%
src / monte_neo / utils / ast_utils.py crossover_trees   19 0 0   100%
src / monte_neo / utils / ast_utils.py (no function)   16 0 0   100%
src / monte_neo / utils / cache.py get_cache_path   3 1 0   67%
src / monte_neo / utils / cache.py save_cache   11 3 0   73%
src / monte_neo / utils / cache.py load_cache   12 3 0   75%
src / monte_neo / utils / cache.py get_data_hash   3 0 0   100%
src / monte_neo / utils / cache.py save_calibration   3 0 0   100%
src / monte_neo / utils / cache.py load_calibration   3 0 0   100%
src / monte_neo / utils / cache.py clear_cache   7 0 0   100%
src / monte_neo / utils / cache.py (no function)   16 0 0   100%
src / monte_neo / utils / config.py load_config   11 0 0   100%
src / monte_neo / utils / config.py _merge_yaml_config   33 12 0   64%
src / monte_neo / utils / config.py save_config   3 3 0   0%
src / monte_neo / utils / config.py (no function)   29 0 0   100%
src / monte_neo / utils / console.py (no function)   2 0 0   100%
src / monte_neo / utils / logger.py setup_logging   20 4 0   80%
src / monte_neo / utils / logger.py get_logger   3 0 0   100%
src / monte_neo / utils / logger.py (no function)   6 0 0   100%
src / monte_neo / utils / parallel.py ParallelExecutor.__init__   5 0 0   100%
src / monte_neo / utils / parallel.py ParallelExecutor.__enter__   8 0 0   100%
src / monte_neo / utils / parallel.py ParallelExecutor.__exit__   12 4 1   67%
src / monte_neo / utils / parallel.py ParallelExecutor.map   45 13 0   71%
src / monte_neo / utils / parallel.py ParallelExecutor.starmap   2 0 0   100%
src / monte_neo / utils / parallel.py ParallelExecutor.starmap.wrapper   1 0 0   100%
src / monte_neo / utils / parallel.py ParallelExecutor.map_reduce   8 8 0   0%
src / monte_neo / utils / parallel.py as_completed_with_timeout   3 0 0   100%
src / monte_neo / utils / parallel.py (no function)   15 0 0   100%
src / monte_neo / utils / visualization.py plot_equity_curves   11 0 0   100%
src / monte_neo / utils / visualization.py plot_drawdown_dist   10 0 0   100%
src / monte_neo / utils / visualization.py plot_metrics_summary   12 0 0   100%
src / monte_neo / utils / visualization.py plot_stress_test_summary   24 1 0   96%
src / monte_neo / utils / visualization.py plot_sensitivity_heatmap   12 12 0   0%
src / monte_neo / utils / visualization.py (no function)   10 0 0   100%
src / monte_neo / visualization / charts.py ChartGenerator.__init__   6 2 0   67%
src / monte_neo / visualization / charts.py ChartGenerator.plot_candlestick   3 0 0   100%
src / monte_neo / visualization / charts.py ChartGenerator._plot_mpl   9 3 0   67%
src / monte_neo / visualization / charts.py ChartGenerator._plot_terminal   10 2 0   80%
src / monte_neo / visualization / charts.py ChartGenerator.plot_with_signals   19 1 0   95%
src / monte_neo / visualization / charts.py (no function)   11 0 2   100%
src / monte_neo / visualization / metrics.py MetricsDisplay.show_metrics_table   19 2 0   89%
src / monte_neo / visualization / metrics.py MetricsDisplay.show_metrics_panel   7 7 0   0%
src / monte_neo / visualization / metrics.py MetricsDisplay.compare_metrics   21 21 0   0%
src / monte_neo / visualization / metrics.py (no function)   9 0 0   100%
src / monte_neo / visualization / trades.py TradeVisualizer.show_trades_table   13 0 0   100%
src / monte_neo / visualization / trades.py TradeVisualizer.show_trade_summary   19 19 0   0%
src / monte_neo / visualization / trades.py (no function)   8 0 2   100%
Total     5903 2231 283   62%

No items found using the specified filter.