Where error 4756 comes from
OrderSend could not send the request at the terminal runtime layer, or developers use 4756 as a generic label while the actionable server reason is in MqlTradeResult.retcode. The numeric value is listed in the official runtime error table, which is separate from MetaEditor compilation errors and trade server return codes.
Reset the last-error state before the suspected call, save its direct return value, and read GetLastError immediately afterward. This produces a causal log instead of a stale code.
