Skip to content

contango.trading.metrics.builder

contango.trading.metrics.builder

OpenPosition dataclass

OpenPosition(quantity: units = 0, entry_time: datetime | None = None, entry_price: USD | None = None)

A single open position when building trade points.

Attributes:

Name Type Description
quantity units

The units for the position.

entry_time datetime | None

The time in which the trade was entered.

entry_price USD | None

The price in which the trade was entered at.

build_context

build_context(data: ExecutionData) -> AnalysisContext

Builds an AnalysisContext for a single backtest.

Parameters:

Name Type Description Default
data ExecutionData

The ExecutionData results from a strategy.

required

Returns:

Name Type Description
AnalysisContext AnalysisContext

The context to compute metrics for the backtest.

Source code in src\contango\trading\metrics\builder.py
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
def build_context(data: ExecutionData) -> AnalysisContext:
    """
    Builds an `AnalysisContext` for a single backtest.

    Args:
        data: The `ExecutionData` results from a strategy.

    Returns:
        AnalysisContext: The context to compute metrics for the backtest.
    """
    equity_curve = _build_equity_curve(data)
    returns = _build_returns(equity_curve)
    drawdowns = _build_drawdowns(equity_curve)
    trades = _build_trades(data)

    return AnalysisContext(
        equity_curve=equity_curve,
        returns=returns,
        drawdowns=drawdowns,
        trades=trades
    )