Skip to content

The argument

Discipline is the product

The common way to lose money is not a bad signal. It is a good system abandoned under pressure — usually at the exact moment it was working.

The claim

Most trading software treats risk limits as settings. You type a number into a form, it is saved, and at the moment it matters it is a line of text on a screen you are no longer looking at. The rule exists; the enforcement does not.

What actually happens is smaller and more ordinary than a blow-up. Two losses, then a third trade taken sooner and larger than the system says, to get back to flat before the session ends. A daily cap raised by a thousand because the setup this time is genuinely better. A stop moved because the position is only just offside. None of those is a failure of analysis. Each one is a decision made by a person who is tired, behind, and out of time.

So the limits here are not preferences. They are decisions you make when calm, and the server holds you to them when you are not — which is the only time a limit has ever been worth anything.

What that means in the code

Each of these exists because the obvious implementation quietly does not work.

  • Limits are measured against the loss a trade could reach

    Sitting at 1.4% down against a 1.5% daily cap, a trade risking another 1% is refused. Checking only what has already been lost permits precisely the trade the limit exists to prevent, and it is the single most common reason a daily loss limit turns out not to be one. The question is never "how much have I lost?" but "how much could I have lost by the end of this trade?"
  • The daily baseline is frozen at the start of the session

    Measure the day’s loss against current equity and the limit moves down as you lose, so each successive loss is measured against a smaller account and the cap is never quite reached. It has to be measured against what you started the day with.
  • The consecutive-loss ladder, and the cooldown

    After three losses size drops to half, after four to a quarter, after five the day ends. There is also a minimum interval before the next entry, because revenge trades are a measurable category rather than a character flaw. Losing streaks are when position sizing gets worse, not better.
  • A broken number fails closed

    Every comparison against a non-finite value is false, so a corrupt risk figure does not trip a limit — it silently removes it. Any risk figure that is not a real number is therefore treated as infinite and the trade is refused. A limit that disappears when the arithmetic breaks is not a limit.
  • Every reason is reported, not the first one

    A trader who fixes the single thing they were told about and re-submits has learned nothing and is about to be refused again. A refusal lists everything that fired, names the layer that produced it, and states the numbers.
  • Costs are inside the decision, not a footnote to it

    An intraday edge worth three basis points gross is worth minus two after brokerage, exchange turnover, the SEBI fee, GST on those fees, the one-sided securities transaction tax and stamp duty. A setup whose edge does not survive its own costs is not a setup, so every result is either net of that model or explicitly labelled gross.

There is no override

No rule has an override parameter. There is no "just this once" on a rejection, and no field in any request that relaxes a limit.

Changing a limit is a settings change: validated, saved, and written to an audit trail with the direction of travel recorded — loosening at a higher severity than tightening, because the two are the same form submission and completely different events.

The reason is the obvious one. The moment you most want to raise your daily loss cap is the moment the cap is working.

Refused by your limits, or not offered by the market

Two different answers that most software renders identically.

"Your rules stopped this" and "there is no setup here" mean opposite things and lead to opposite actions. Collapsing them into one greyed-out button teaches you nothing about either, and over weeks it teaches you to distrust the system, which is the beginning of overriding it.

So a block and an absence are different states with different words, and the block says which limit produced it and by how much.

How it is meant to appear on screen

Designed, and not yet built — the engine computes all of this, and no screen yet shows it against a real account.

Discipline is shown as state rather than as rules. Not "your daily cap is ₹2,000" but "₹1,240 of ₹2,000 used, 62%", with what happens at 100% written next to it. A limit you cannot see your position against is a limit that will surprise you.

The ladder is visible before it bites: two losses in, you can see that a third halves your size. A reduction you could see coming is a system you chose. A reduction that appears from nowhere is a punishment, and people do not keep using software that punishes them — they turn it off.

What this will not do

  • No gamification

    No streaks for trading daily, no confetti on a win, no badges. Those mechanics are engineered to increase frequency, and frequency is how retail traders lose. A losing day is rendered as information, without a shake, a flash or an emoji.
  • No nudging toward volume

    Nothing here is designed to make you trade more. The intention is to charge a subscription rather than to take a share of your trades, so that the incentive and the advice point the same way.

What discipline rules cannot do

They cannot make a losing system profitable. A limit constrains the size of a mistake; it does not turn one into an edge. They also cannot stop you opening the same position at a different broker, and nothing in this product pretends otherwise.