# forge.types.Trade

```python
forge.types.Trade(id: int, symbol: str, side: PositionSide, size: float, entry: FillEvent, exit: FillEvent, gross_pnl: float, pnl: float, r_multiple: float | None, bars_held: int, tag: str | None, exit_level: float | None = None, exit_vs_level: float | None = None, exit_flags: tuple[str, ...] = (), mae_r: float | None = None, exit_name: str | None = None, add_count: int = 0, reduce_count: int = 0, peak_size: float | None = None, size_capped_by: str | None = None, risk_cash: float | None = None, risk_pct: float | None = None, target_distance: float | None = None, trail_distance: float | None = None) -> None
```

One closed round trip, or the closed part of one: an entry fill, its exit fill and the money.

``size`` is the lots this row closed, so a partial close is its own row. ``pnl`` is net in
account currency and ``gross_pnl`` is before costs.

Since Forge API 1.
