Last updated: May 17, 2026
Capital Defense

Dynamic Position Sizing: Coding Risk Management

Trade-Charts IntelUpdate 2026.03

The Logic of the Percent Risk: What is Auto-Lot?

Fixed lot sizes (e.g., always 0.1 lots) are a recipe for failure. As your account grows, a fixed lot becomes too small. As your account shrinks, it becomes too large. Dynamic Position Sizing (Auto-Lot) is a mathematical approach that calculates the trade's volume based on a fixed percentage of your account's equity (e.g., 2% per trade).

This ensures that your risk is always proportional to your current balance. It's the engine of Compounding Interest. If your account doubles, your lot size doubles. This allows for exponential growth while maintaining a strictly controlled 'Risk of Ruin' across every individual trade.

The Math: (Balance * Risk %) / (Stop Loss * Pip Value)

To calculate the correct lot size in MQL4, you need four variables: 1. AccountBalance(): Your current funds. 2. RiskPercent: Your desired risk (e.g., 0.02 for 2%). 3. StopLossPoints: The distance from entry to stop-loss in points. 4. MarketInfo(MODE_TICKVALUE): The monetary value of a single price change.

The formula is: Lots = (Balance * RiskPercent) / (StopLossPoints * TickValue). By using this dynamic formula, your EA will automatically enter with a 0.5 lot if the stop-loss is 20 pips, and a 0.25 lot if the stop-loss is 40 pips. The monetary risk remains exactly the same in both cases.

⚠️Danger Zone / Risk Check

Auto-Lot Execution Rules

  • Primary: Fix risk to a specific percentage (e.g., 1-2%)

  • Calculation: Dynamic lots based on Stop Loss distance

  • Constraint: Use 'Equity' instead of 'Balance' for high-margin bots

  • Market State: Account for pip-value changes on Yen and cross-pairs

  • Verified: Round the final lot size to the broker's minimum step (0.01)

  • Safety: Set a 'Max Lot' limit to prevent accidental over-leveraging

The Danger of Fixed Lots in Volatile Markets

Consider a strategy with a variable stop-loss. If you use a fixed 0.1 lot, a trade with a 100-pip SL loses twice as much money as a trade with a 50-pip SL. This 'Skewed' risk profile destroys your mathematical edge over time. With an Auto-Lot function, every trade has the exact same 'Pound for Pound' impact on your account curve.

Best Practice: The Margin Check

Before the EA sends the OrderSend() command, it should perform a final Margin Check. If the calculated lot size is so large that your account doesn't have enough free margin to open it, the EA should either reduce the lot size or skip the trade entirely. This prevents the 'Order Send Error 134' (Insufficient Funds) from stopping your algorithm's execution during high-leverage events.

Frequently Asked Questions

Should I risk 5% or 10% per trade?

Mathematically, risking more than 2-3% per trade is considered high-risk 'Gambling'. While it can lead to faster growth, it only takes a small losing streak of 10-15 trades to completely destroy your account. Most professional quants use a risk of 0.5% to 1.5% per trade to ensure long-term survival of the principal capital.

Does Auto-Lot work on all accounts?

Yes, it works on Standard, Mini, and Micro accounts. The MQL4 MODE_LOTSTEP function allows the EA to detect whether it should round the lot size to 0.1, 0.01, or 1.0. This makes your EA 'Universal' and ready to trade with any broker's contract specification.

Recommended Reading