Complete Suite: all 12 tools. 6 Premium desks inside.All 12 tools $606.98 one by one

$606.98 one by one $97 once Save $509.98Get the SuiteGet it

MT5 error 4806: Requested data not found

Wait for BarsCalculated(), then retry.

Updated 24 October 2026. Runs in your browser; nothing you type is uploaded.

Sample Experts logCause and fix below

The number after retcode= or "error" in MT5's Experts or Journal tab. 296 codes, return codes and runtime errors, as MQL5's reference words them.

4806

ERR_INDICATOR_DATA_NOT_FOUND

Requested data not found

Cause and fix for 4806

Share this fix

Post on XPost to Reddit

What MQL5 says

4806 ERR_INDICATOR_DATA_NOT_FOUND
Requested data not found

From MQL5's table of runtime errors, read 24 October 2026. An Expert Advisor reads it with GetLastError() after a call fails; the Experts tab prints what the EA logs.

What causes it

CopyBuffer() asked for indicator values that aren't calculated yet, usually on the first ticks after the handle was created. MQL5's CopyBuffer page: when the timeseries aren't built yet, it returns -1 at once and starts building them.

The fix in MQL5

Return until BarsCalculated(handle) covers the bars you need, check that CopyBuffer() copied as many values as you asked for, and try again on the next tick.

Before
int ma_handle = INVALID_HANDLE;

int OnInit()
  {
   ma_handle = iMA(_Symbol, PERIOD_CURRENT, 50, 0, MODE_SMA, PRICE_CLOSE);
   return(INIT_SUCCEEDED);
  }

void OnTick()
  {
   double ma[];
   CopyBuffer(ma_handle, 0, 0, 3, ma);       // -1 and error 4806 while the MA is still calculating
   Print("MA now: ", ma[2]);                  // and then an array out of range
  }
After
int ma_handle = INVALID_HANDLE;

int OnInit()
  {
   ma_handle = iMA(_Symbol, PERIOD_CURRENT, 50, 0, MODE_SMA, PRICE_CLOSE);
   return(ma_handle == INVALID_HANDLE ? INIT_FAILED : INIT_SUCCEEDED);
  }

void OnTick()
  {
   double ma[];
   if(BarsCalculated(ma_handle) < 3)          // still calculating: try again on the next tick
      return;
   if(CopyBuffer(ma_handle, 0, 0, 3, ma) != 3)
     {
      Print("CopyBuffer failed: ", GetLastError());
      return;
     }
   Print("MA now: ", ma[2]);
  }

Both compile in MetaEditor 5 with no errors or warnings. Adapt them to your EA; they were not run against a trade server.

Other MT5 errors

Method and privacy

Method: The constant and the description are MQL5's reference table of runtime errors, read 24 October 2026. The MQL5 code compiles in MetaEditor 5 with no errors or warnings; it is an example to adapt and was not run against a trade server.

Calculations run entirely in your browser — nothing you type is uploaded. Your last numbers stay in this browser so you can pick up where you left off; Forget them clears them. A link with your numbers carries them after the # sign, which browsers do not send to servers, and the page takes them out of the address before any analytics loads. Copy and download actions save your calculation locally. The site may record coarse tool actions under its privacy policy, without inputs, results, file contents or filenames.

Read a whole MT5 EA's source

Goes deeper

Limits and trading risk

These tools calculate from your inputs, supported historical records or explicitly labelled teaching examples. They do not verify a live account, predict future returns or confirm that a broker or prop-firm rule has been met. Missing costs, floating losses and changed market conditions can materially change outcomes. Trading can lose the capital committed to it; check the stated method and your account specifications.

Read the risk disclosure