An EA can reach its entry condition and still open no position. Error 10030, unsupported filling mode, belongs to the order request. Changing the entry signal will not fix that boundary.
The useful first question is: what exactly did the EA ask the trade server to do?
Save a request receipt
Before a retry, keep the symbol, execution mode, supported filling flags, requested filling policy and requested volume together. After sending, keep the result code and any returned order or deal reference. If a Python wrapper returns None, handle that separately before reading retcode.
This separates three questions:
- Was the strategy ready to enter?
- Was its request policy allowed for that symbol and execution mode?
- What happened after the request was sent?
A log saying only "entry failed" cannot answer all three.
A successful retry may change the rule
FOK requires the whole requested volume to be filled, or none. IOC allows the available part to be filled and cancels the remainder. Switching from one to the other can therefore change the position size the strategy receives.
For a challenge EA, "the error disappeared" is a poor acceptance condition. Agree whether a partial position is allowed before changing the policy. This is an order-behaviour decision, not a claim that the EA will pass a challenge.
The symbol property SYMBOL_FILLING_MODE is a flag mask. The order field type_filling uses a different enumeration. Do not copy the raw mask into the order field.
Three checks before a retry
- Positive: the requested policy is allowed for the actual symbol and execution mode. Preserve that intended policy.
- Negative: the requested policy is not allowed. Stop with a clear diagnostic instead of trying a different policy without agreement.
- Boundary: the symbol uses Market Execution and the request asks for RETURN. That combination is not allowed for a market deal.
Pending orders are a separate path. Do not apply a market-deal helper to them simply because the same request structure is available.
These are acceptance cases to implement and review. They are not a report of a broker fill or a live-account experiment.
Keep the diagnostic beside the source
The canonical error-10030 case contains the MQL5 helper and its scope. The official symbol-property reference describes the execution-mode and filling-policy rules.
The smallest useful receipt is the intended request, the allowed policies and the observed result. Keep all three before calling a retry a repair.
Top comments (0)