A short note from a parallel project. A prop-firm challenge with daily and total drawdown limits is, structurally, a constraint problem first and a strategy problem second. The instinct is to find the highest-return configuration that respects the constraint. The better instinct is to encode the constraint first, in code, in a layer the strategy cannot bypass, and only then to design the strategy as a participant inside that constraint.
The translation is deliberately mechanical. Two daily thresholds: an upper bound at which any new entry is locked out, and a lower bound at which all open positions are flattened. Two total-account thresholds with the same logic. Per-instrument risk capped well below the daily lock so that a single losing day cannot reach the lock on its own. Symbol-aware unit rounding so the broker does not reject a sub-tick order and leave the account in ambiguous open exposure. A scheduler that the strategy code is not allowed to override.
Once the constraint module is in place, the strategy design changes in tone. The question is no longer “how much return can be wrung from the model”; the question is “how does a steady-Sharpe model survive a hard ceiling on drawdown enforced by a process outside its control.” That is a different design space. It selects for lower per-trade risk, shorter holds in volatile sessions, and a willingness to do nothing on days when the day’s loss budget is already most of the way spent.
The note here is narrow. A constraint written first produces a calmer strategy than the same constraint added after the strategy has been built. The compliance comes for free. The discipline does not.