Audience
For MT4 EA builders whose code compiles but OrderSend fails with error 130, invalid stops, wrong SL/TP side, off-normalized prices, or broker stop-level restrictions.
MQL4 execution blocker
Fix MQL4 OrderSend error 130 by checking invalid stops, stop-level distance, Bid/Ask side, Digits, Point, NormalizeDouble, and broker spread before retesting.
Common error 130 evidence
OrderSend failed. Error: 130 ERR_INVALID_STOPS SL is above Bid for a buy order MODE_STOPLEVEL=50 Digits=5, Point=0.00001
These are price, distance, normalization, and broker-rule failures. Fix the order request before changing entry logic or weakening risk controls.
Audience
For MT4 EA builders whose code compiles but OrderSend fails with error 130, invalid stops, wrong SL/TP side, off-normalized prices, or broker stop-level restrictions.
Problem
OrderSend error 130 is usually an execution validation failure, not a signal-quality verdict. The EA can calculate SL/TP on the wrong side of Bid/Ask, ignore MODE_STOPLEVEL, mishandle five-digit symbols, or send unnormalized prices.
Outcome
Workfusionapp keeps the repair path narrow: validate stop direction, read broker stop levels, normalize prices, reject unsafe orders with logs, then route the MT4 order block into the free desk.
Support path
Start with the concrete blocker, keep the full EA context attached, then move to a reviewable output.
For buys, SL belongs below the market and TP above it. For sells, SL belongs above the market and TP below it. Check against the active Bid/Ask context before OrderSend.
Use MarketInfo with MODE_STOPLEVEL and, where relevant, MODE_FREEZELEVEL. Compare the requested SL/TP distance in points before sending the order.
Use NormalizeDouble with Digits, handle five-digit symbols, RefreshRates before price reads, and skip the order with a log when stops are invalid.
Workflow
The goal is not to force the EA to trade. The goal is to prove whether the requested SL/TP is valid for the current symbol, quote, stop level, spread, and order direction.
Step 1
Paste the failing OrderSend block
Step 2
Check SL/TP side and distance
Step 3
Normalize prices for Digits and Point
Step 4
Retest manually with rejection logs
Related resource cluster
Use the cluster hub when the first issue branches into adjacent compiler, draft, risk, or review checks.
MT4 cluster
Use this hub for OrderSend 130, MQL4 compiler errors, magic-number ownership, and MT4-to-MT5 migration checks.
Open MT4 cluster
Compiler cluster
Use this hub for undeclared identifiers, CTrade setup, CopyBuffer, invalid stops, invalid volume, and fill-policy blockers.
Open compiler cluster
OrderSend 130 handoff
Open the guide that matches the failed stop request, then run the free desk with Bid, Ask, SL, TP, Digits, Point, stop level, spread, and the exact OrderSend call.
Use this when MT4 rejects SL/TP because the price side, stop distance, digits, or normalization is wrong.
Use this when error 130 is part of a larger MQL4 repair: order loops, magic numbers, duplicate entries, or legacy EA structure.
Use this when the EA sends or modifies the wrong order because it does not filter by symbol and MagicNumber before managing stops.
Send me the OrderSend 130 repair workflow
Opt in only if your MQL4 EA is blocked by OrderSend error 130, invalid stops, stop-level distance, price normalization, or wrong-side SL/TP. This captures the OrderSend 130 source for conversion measurement.
Lead activation handoff
No email wait is required. After saving the opt-in, continue into the free desk with the same blocker so the visitor-to-lead-to-workflow path is measurable.
Continue in free deskChoose the workflow you want, then opt in only if you want Workfusionapp updates.
No. Fix the stop calculation, stop-level check, and normalization. Removing risk controls hides the software issue.
Brokers can have different stop levels, digits, spreads, symbols, and freeze-level behavior. Read the live symbol contract before sending orders.
No. It only makes one order request valid. Compile review, tester evidence, risk checks, and demo validation remain separate.