Skip to content

rules.params

AccountSize and the CombineParams behind it: the cited constants for each account tier.

params

Trading Combine parameters per account size (docs/topstep-rules.md §1).

These numbers are cited config, not constants: they come from Topstep's help center as researched July 2026. The DOLLAR FIGURES are canonical — no cross-size ratio holds (the oft-cited 1.5x/0.5x ratios are true only at $50K; $100K/$150K have target = 2 x MLL and DLL = 2/3 x MLL). The DLL is OPTIONAL and off by default (Topstep removed the default DLL in Aug 2024); enable it with dll_enabled=True to model a Personal Daily Loss Limit.

All money values are exact Decimal; the position cap is counted in micro-units (mini = 10, micro = 1) so cap math stays pure integer arithmetic.

AccountSize

Bases: StrEnum

The three Trading Combine account sizes Topstep offers.

S50K class-attribute instance-attribute

S50K = '50K'

S100K class-attribute instance-attribute

S100K = '100K'

S150K class-attribute instance-attribute

S150K = '150K'

CombineParams

Bases: Struct

Frozen rule parameters for one Trading Combine account.

dll is None when no Personal Daily Loss Limit is set (the default since Aug 2024); when set, it is the positive dollar amount of allowed daily loss. max_cap_micro_units is the fixed position cap for the whole Combine, in micro-units (5/10/15 minis x 10).

size instance-attribute

starting_balance instance-attribute

starting_balance: Decimal

profit_target instance-attribute

profit_target: Decimal

mll_buffer instance-attribute

mll_buffer: Decimal

dll instance-attribute

dll: Decimal | None

max_cap_micro_units instance-attribute

max_cap_micro_units: int

consistency_pct instance-attribute

consistency_pct: Decimal

combine_params

combine_params(size: AccountSize, *, dll_enabled: bool = False) -> CombineParams

Build the canonical CombineParams for an account size.

dll_enabled models a Personal Daily Loss Limit at the table's dollar amount for the size; the default (False) matches Topstep's post-Aug-2024 behavior of no DLL.

Source code in src/topstep_backtest/rules/params.py
def combine_params(size: AccountSize, *, dll_enabled: bool = False) -> CombineParams:
    """Build the canonical ``CombineParams`` for an account size.

    ``dll_enabled`` models a Personal Daily Loss Limit at the table's dollar
    amount for the size; the default (``False``) matches Topstep's
    post-Aug-2024 behavior of no DLL.
    """
    start, target, buffer, dll, cap = _TABLE[size]
    return CombineParams(
        size=size,
        starting_balance=Decimal(start),
        profit_target=Decimal(target),
        mll_buffer=Decimal(buffer),
        dll=Decimal(dll) if dll_enabled else None,
        max_cap_micro_units=cap,
        consistency_pct=Decimal("0.5"),
    )