Step 1: Identify the Symptom – Incorrect SL/TP or Stop Order Levels
Attach your EA to a live or demo MT4 chart. Open the ‘Experts’ tab (Ctrl+T). If you see orders placed but stop loss or take profit levels are wrong (e.g., exactly 10x too far), or stop entry orders never trigger because they are too far from market price, you have this issue. Screenshot: Experts tab showing order with incorrect SL/TP distance.
Step 2: Understand the Root Cause – Tick Size / Pip Step Mismatch
This error occurs when your EA was developed using a different tick size or pip step setting than your broker uses. For example, your EA expects 0.0001 per pip but your broker uses 0.00001. The EA calculates SL/TP in points, but the broker interprets them differently, resulting in levels being placed 10x too far or too close . Screenshot: Diagram showing tick size difference between brokers.
Step 3: Check Your Broker’s Instrument Settings
Right-click on a chart (e.g., EURUSD) and select ‘Symbols’ (or ‘Properties’). Look for ‘Tick Size’ and ‘Tick Value’. Alternatively, check the broker’s specification page. Common examples:
If these differ, your EA’s SL/TP calculations will be off. Screenshot: Symbols window showing Tick Size field.
Step 4: Check the EA’s ‘Stop Level’ Broker Restriction
Every broker has a minimum ‘Stop Level’ – the minimum distance from market price for placing SL/TP. Find yours: In MT4, go to ‘Tools’ → ‘Options’ → ‘Expert Advisors’ is not the place. Instead, right-click chart → ‘Properties’ and look for ‘Stop Level’, or simply try to manually place an order with a very close SL. The platform will show the minimum allowed distance. If your EA sets SL inside this distance, the broker rejects the order with ‘Invalid stops’ or ‘Error 130’ . Screenshot: Order window showing minimum stop distance error.
Step 5: Fix Using EA Parameters – Look for Tick Size Variables
Many modern EAs include parameters like ‘UseSQTickSize’, ‘TickSize’, or ‘PipStep’. Open the EA’s input settings (double-click the EA on chart or right-click → ‘Properties’). Look for these parameters:
Screenshot: EA input parameters window with UseSQTickSize highlighted.
Step 6: Fix by Adjusting SL/TP Multiplier in EA Code (Advanced)
If the EA has no tick size parameter, you can modify the code. Open MetaEditor (F4) and open your EA’s .mq4 file. Find lines containing ‘OrderSend’ or ‘SetStopLoss’. Look for where SL/TP are calculated. Add a tick size adjustment:
```cpp
// Original calculation might be:
double sl = NormalizeDouble(Ask - StopLoss * Point, Digits);
// Change to use broker's tick size:
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pipStep = tickSize * 10; // typical adjustment
double sl = NormalizeDouble(Ask - StopLoss * pipStep, Digits);
```
Recompile (F7) and re-attach the EA. Screenshot: MetaEditor code with tick size adjustment.
Step 7: Validate the Fix
After applying the fix, place a small test order. Check the ‘Experts’ tab to confirm the actual SL/TP levels match your intended distance. Use a demo account first. If still incorrect, adjust the multiplier (e.g., try 1, 10, or 100 times your expected value). Screenshot: Successful order with correct SL/TP distance in Experts tab.
Reference: StrategyQuant Forum – MT4 EA SL/TP levels incorrect (Jan 2026); MQL4 Documentation – SymbolInfoTick.