Strategy Module¶
Execution¶
signalflow.strategy.runner.backtest_runner.BacktestRunner
dataclass
¶
BacktestRunner(strategy_id: str = 'backtest', broker: Any = None, entry_rules: list[EntryRule] = list(), exit_rules: list[ExitRule] = list(), metrics: list[StrategyMetric] = list(), initial_capital: float = 10000.0, pair_col: str = 'pair', ts_col: str = 'timestamp', price_col: str = 'close', data_key: str = 'spot')
Bases: StrategyRunner
Runs backtests over historical data.
This order ensures
- Metrics reflect current market state
- Exits are processed before entries (can close and re-enter same bar)
- No look-ahead bias
get_results ¶
Get backtest results summary.
Source code in src/signalflow/strategy/runner/backtest_runner.py
run ¶
Run backtest over the entire dataset.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
raw_data
|
RawData
|
Historical OHLCV data |
required |
signals
|
Signals
|
Pre-computed signals for the period |
required |
state
|
StrategyState | None
|
Optional initial state (for continuing backtests) |
None
|
Returns:
| Type | Description |
|---|---|
StrategyState
|
Final strategy state |
Source code in src/signalflow/strategy/runner/backtest_runner.py
Exit Rules¶
signalflow.strategy.component.exit.tp_sl.TakeProfitStopLossExit
dataclass
¶
TakeProfitStopLossExit(take_profit_pct: float = 0.02, stop_loss_pct: float = 0.01, use_position_levels: bool = False)
Bases: ExitRule
Exit rule based on take-profit and stop-loss levels.
Can use fixed percentages or dynamic levels from position meta.
Metrics¶
signalflow.strategy.component.metric ¶
__all__
module-attribute
¶
__all__ = ['TotalReturnMetric', 'BalanceAllocationMetric', 'DrawdownMetric', 'WinRateMetric', 'SharpeRatioMetric']
BalanceAllocationMetric
dataclass
¶
Bases: StrategyMetric
DrawdownMetric
dataclass
¶
Bases: StrategyMetric
SharpeRatioMetric
dataclass
¶
SharpeRatioMetric(initial_capital: float = 10000.0, window_size: int = 100, risk_free_rate: float = 0.0, _returns_history: list[float] = None)
Bases: StrategyMetric
TotalReturnMetric
dataclass
¶
Bases: StrategyMetric
Computes total return metrics for the portfolio.