Coverage report: 96%

Files Functions Classes

coverage.py v7.15.4, created at 2026-08-21 17:12 +0000

      Statements   Branches   Total
File class   coverage statements missing excluded   coverage branches partial   coverage
src/finbot/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/finbot/backtest/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/finbot/backtest/artifacts.py ExperimentStore   100% 25 0 0   100% 4 0   100%
src/finbot/backtest/artifacts.py (no class)   100% 18 0 0   100% 0 0   100%
src/finbot/backtest/comparison.py ExperimentComparisonRow   100% 0 0 0   100% 0 0   100%
src/finbot/backtest/comparison.py (no class)   100% 20 0 0   100% 0 0   100%
src/finbot/backtest/experiment.py ExperimentConfig   93% 14 1 0   93% 14 1   93%
src/finbot/backtest/experiment.py ExperimentMetadata   100% 0 0 0   100% 0 0   100%
src/finbot/backtest/experiment.py ExperimentRun   100% 0 0 0   100% 0 0   100%
src/finbot/backtest/experiment.py (no class)   100% 27 0 0   100% 0 0   100%
src/finbot/backtest/models.py EquityPoint   100% 2 0 0   100% 0 0   100%
src/finbot/backtest/models.py SignalRejection   0% 1 1 6   100% 0 0   0%
src/finbot/backtest/models.py BacktestResult   98% 111 2 0   95% 66 3   97%
src/finbot/backtest/models.py (no class)   100% 81 0 1   100% 0 0   100%
src/finbot/backtest/runner.py ExperimentRunner   100% 17 0 0   100% 10 0   100%
src/finbot/backtest/runner.py (no class)   100% 15 0 0   100% 0 0   100%
src/finbot/backtest/trades.py Trade   100% 6 0 15   100% 0 0   100%
src/finbot/backtest/trades.py (no class)   100% 42 0 1   100% 10 0   100%
src/finbot/cli/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/finbot/cli/backtest.py (no class)   96% 45 2 0   100% 2 0   96%
src/finbot/cli/main.py (no class)   100% 54 0 2   100% 4 0   100%
src/finbot/config.py Settings   100% 0 0 0   100% 0 0   100%
src/finbot/config.py (no class)   100% 20 0 0   100% 6 0   100%
src/finbot/engine/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/finbot/engine/backtest_engine.py BacktestEngine   83% 81 14 0   75% 44 7   80%
src/finbot/engine/backtest_engine.py (no class)   100% 17 0 0   100% 0 0   100%
src/finbot/engine/trading_engine.py TradingEngine   0% 6 6 0   100% 0 0   0%
src/finbot/engine/trading_engine.py (no class)   0% 6 6 0   100% 0 0   0%
src/finbot/execution/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/finbot/execution/broker.py SimulatedBroker   100% 26 0 0   100% 16 0   100%
src/finbot/execution/broker.py (no class)   100% 8 0 0   100% 0 0   100%
src/finbot/execution/fill.py Fill   100% 20 0 0   100% 18 0   100%
src/finbot/execution/fill.py (no class)   100% 18 0 0   100% 0 0   100%
src/finbot/execution/order.py OrderSide   100% 0 0 0   100% 0 0   100%
src/finbot/execution/order.py OrderType   100% 0 0 0   100% 0 0   100%
src/finbot/execution/order.py Order   100% 6 0 0   100% 6 0   100%
src/finbot/execution/order.py (no class)   100% 16 0 0   100% 0 0   100%
src/finbot/execution/policy.py ExecutionPolicy   100% 0 0 0   100% 0 0   100%
src/finbot/execution/policy.py (no class)   100% 4 0 0   100% 0 0   100%
src/finbot/main.py (no class)   0% 7 7 2   100% 0 0   0%
src/finbot/market/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/finbot/market/alpaca.py AlpacaMarketDataProvider   100% 45 0 0   100% 12 0   100%
src/finbot/market/alpaca.py (no class)   100% 16 0 0   100% 0 0   100%
src/finbot/market/cache.py DatasetCacheError   100% 0 0 0   100% 0 0   100%
src/finbot/market/cache.py DatasetNotFoundError   100% 0 0 0   100% 0 0   100%
src/finbot/market/cache.py DatasetIntegrityError   100% 0 0 0   100% 0 0   100%
src/finbot/market/cache.py HistoricalDataCache   95% 133 6 0   93% 56 4   95%
src/finbot/market/cache.py (no class)   100% 36 0 0   100% 0 0   100%
src/finbot/market/data_provider.py MarketDataProvider   100% 0 0 2   100% 0 0   100%
src/finbot/market/data_provider.py (no class)   100% 4 0 11   100% 0 0   100%
src/finbot/market/dataset.py DatasetMetadata   98% 62 1 0   97% 32 1   98%
src/finbot/market/dataset.py (no class)   100% 21 0 0   100% 0 0   100%
src/finbot/market/models.py Bar   100% 16 0 0   100% 16 0   100%
src/finbot/market/models.py (no class)   100% 13 0 0   100% 0 0   100%
src/finbot/portfolio/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/finbot/portfolio/portfolio.py Portfolio   100% 42 0 0   100% 16 0   100%
src/finbot/portfolio/portfolio.py (no class)   100% 15 0 0   100% 0 0   100%
src/finbot/portfolio/position.py Position   100% 2 0 0   100% 0 0   100%
src/finbot/portfolio/position.py (no class)   100% 10 0 0   100% 0 0   100%
src/finbot/risk/__init__.py (no class)   100% 4 0 0   100% 0 0   100%
src/finbot/risk/models.py RiskLimits   100% 21 0 0   100% 18 0   100%
src/finbot/risk/models.py RiskDecision   89% 9 1 0   88% 8 1   88%
src/finbot/risk/models.py SizingDecision   100% 11 0 0   100% 8 0   100%
src/finbot/risk/models.py (no class)   100% 36 0 0   100% 0 0   100%
src/finbot/risk/position_sizer.py PositionSizer   96% 24 1 0   94% 18 1   95%
src/finbot/risk/position_sizer.py (no class)   100% 7 0 0   100% 0 0   100%
src/finbot/risk/risk_manager.py RiskManager   95% 56 3 0   93% 30 2   94%
src/finbot/risk/risk_manager.py (no class)   100% 11 0 0   100% 0 0   100%
src/finbot/strategy/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/finbot/strategy/base.py Strategy   100% 0 0 1   100% 0 0   100%
src/finbot/strategy/base.py (no class)   100% 4 0 2   100% 0 0   100%
src/finbot/strategy/signal.py SignalDirection   100% 0 0 0   100% 0 0   100%
src/finbot/strategy/signal.py Signal   100% 7 0 0   100% 8 0   100%
src/finbot/strategy/signal.py (no class)   100% 15 0 0   100% 0 0   100%
src/finbot/strategy/sma_crossover.py SmaCrossoverStrategy   96% 28 1 0   94% 16 1   95%
src/finbot/strategy/sma_crossover.py (no class)   100% 9 0 0   100% 0 0   100%
src/finbot/strategy/strategies.py RandomStrategy   100% 6 0 0   100% 4 0   100%
src/finbot/strategy/strategies.py BuyOnceStrategy   100% 5 0 0   100% 2 0   100%
src/finbot/strategy/strategies.py (no class)   100% 9 0 0   100% 0 0   100%
Total     96% 1390 52 43   94% 444 21   96%

No items found using the specified filter.