{
  "id": 16163549,
  "title": "MT5 error 10004: a requote is not a reason to retry forever",
  "url": "https://urgent.news/2026/10/23/mt5-error-10004-a-requote-is-not-a-reason-to-retry-forever",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-23T07:59:07.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/stratcorealpha/mt5-error-10004-a-requote-is-not-a-reason-to-retry-forever-5275"
  },
  "original_language": "en",
  "account": "In the scenario described, a trader encountered an MT5 error code 10004 when submitting a USDJPY buy request. The error code is officially identified as TRADE_RETCODE_REQUOTE. The trader questioned why only a minor price difference of 0.001 caused the error, without considering other factors.\n\nThe article emphasizes that a requote does not automatically justify placing a new order. Other MT5 codes exist for different order statuses, such as placed, completed, or partially completed. The decision to retry or proceed should be based on the actual result and the current account state.\n\nThe author proposes a policy to separate requote handling from other order outcomes. The helper function 'MayReconsider' checks if a requote can be reconsidered based on several conditions: the error code must be 10004, the signal must be valid, there must be available attempts, the quote age should be within limits, the spread should be within limits, and the price should be within the acceptable limit.\n\nThe function ensures that a requote is only reconsidered under specific conditions, preventing an automatic retry loop from continuing indefinitely once the original conditions have disappeared. The helper function only provides a local policy decision and does not handle order submission. The caller is responsible for checking the current order and position state before making any new order submissions.",
  "summary": "Your EA needs a stop condition after a requote. My policy example compiled with 0 errors; it sends no orders and proves no broker-side repair. What the error means A trader asked why a USDJPY buy request returned 10004 when the requested price and the server ask differed by only 0.001. That price difference alone does not establish the cause. The official MT5 server-return table names 10004 as…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}