Symbol contract changes that break lot math overnight
Posted: Mon Oct 19, 2026 8:58 am
Brokers sometimes change contract specifications: contract size, tick value, lot step or margin requirements. EAs with hard-coded assumptions break silently.
Examples that have happened:
- Index CFDs changing contract size (e.g. from 1 to 10 per point).
- Metals moving from 100 oz to 10 oz contracts on a specific account type.
- Lot step changing from 0.01 to 0.1 on certain symbols.
- Symbols renamed (adding a suffix).
How to protect your EA:
- Never hard-code contract size or tick value. Read them at runtime:
SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE)
SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)
- Calculate lot size from risk in account currency every time.
- Log the values at EA start and compare with expected.
- Add a sanity check: if calculated lot size is more than 2x the usual, block the trade and alert.
Brokers usually notify changes by email, but notifications get missed.
Has a contract change ever affected your EA?
Examples that have happened:
- Index CFDs changing contract size (e.g. from 1 to 10 per point).
- Metals moving from 100 oz to 10 oz contracts on a specific account type.
- Lot step changing from 0.01 to 0.1 on certain symbols.
- Symbols renamed (adding a suffix).
How to protect your EA:
- Never hard-code contract size or tick value. Read them at runtime:
SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE)
SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)
- Calculate lot size from risk in account currency every time.
- Log the values at EA start and compare with expected.
- Add a sanity check: if calculated lot size is more than 2x the usual, block the trade and alert.
Brokers usually notify changes by email, but notifications get missed.
Has a contract change ever affected your EA?