O!kurra
Chapter 21
● Open

Troubleshooting

Tool version: O!kurra Capital Defense EA 2.00

The philosophy of this chapter. Most “problems” with O!kurra are not tool defects but a configuration working exactly as it was set — just differently than you expected. That is why, for every symptom, we first ask: is this really a failure, or designed behavior? Surprisingly often it is the latter.

A discrepancy between the manual and reality? If during diagnosis you notice that the manual, the chatbot’s answer and the EA’s actual behavior say different things — report it to [email protected] (chapter 1.9). The tools evolve dynamically and such reports help us keep the documentation in line with the code.


Table of contents

21.1 How to diagnose — universal principles 21.2 Installation and startup 21.3 License (key + online verification) 21.4 No signals 21.5 Pending orders do not fill 21.6 Position management (BE / Trailing) 21.7 BEa behaves unexpectedly 21.8 Account guardians (DPL / EG / Basket Max Loss / PT) 21.9 Trading Hours 21.10 Cross-button Triggers 21.11 EA panel 21.12 Performance


21.1 How to diagnose — universal principles

Before you jump to a specific symptom — a few principles that resolve most cases.

Start with the logs. The Experts tab in MetaTrader (Ctrl+TExperts tab) shows the EA’s messages — from initialization, through the reasons signals were rejected, to trading errors. Most problems leave a trace in the logs. Red lines, alerts, warnings about blocking filters — this is the first place to look.

Check the panel. The Status Block shows the current state; the info modes [B/G/S/T/C/H] (chapter 8) give a look “under the hood” — filter state (G), trading hours (T), the trigger map (C). The problem is often immediately visible in the right mode.

Turn on T. Levels and T. History. Visualization (chapter 19) shows where and in what context the EA opened and closed positions. Unintuitive behavior often becomes obvious on the chart.

Eliminate variables one at a time. When something does not work — reduce to the minimum (one button, defaults), see whether the problem disappears, and add components back one by one. Classic bisection — it always works.

Restart the EA, then MT5. Some problems are state that disappears after a reload. First remove the EA from the chart and drop it back on; if that does not help — restart the whole platform.

Keep a stable .set. Save every working configuration (chapter 7). When the current one starts behaving strangely, compare it against the last stable one to find the difference.

Everything on demo. First tests always on a demo account — some behavior depends on the broker and account type.

When nothing helps — contact support. Go to okurra.com. In your report include: instrument and timeframe, a description of the problem, a capture of the Experts tab from the moment of the problem, a screenshot of the panel and the chart. The more context, the faster the diagnosis.


21.2 Installation and startup

The tool does not appear in the Navigator

Symptom: you copied the file, opened MT5, and there is no O!kurra in Navigator (Ctrl+N) (under Expert Advisors for the EA or Indicators for the panels/indicators).

  • Wrong file location. The EA must sit in MQL5\Experts\ (recommended subfolder MQL5\Experts\OKU\), indicators in MQL5\Indicators\OKU\. Open the folder via File → Open Data Folder and check the path (chapter 3).
  • No refresh. After pasting the files, right-click Navigator → Refresh, or restart MT5.
  • File corrupted during transfer. Download again from okurra.com and paste.

Error 560 — “newer unsupported version” (terminal too old)

Symptom: the tool does not load onto the chart (it disappears right after dropping it, or never starts), and the Journal / Experts tab shows error 560 or the message ”‘…ex5’ has newer unsupported version, please update your client terminal”. Typical moment: right after replacing the files with a newer release.

  • Cause: the .ex5 files of this release are compiled on a newer MetaTrader build than your terminal. This is a platform limit — not corrupted files and not a configuration error. The required minimum build is shown next to the download button on okurra.com; you can check your terminal’s build in Help → About.
  • Solution: update MetaTrader 5 — your broker always ships the current build; usually it is enough to close the terminal and start it again with automatic updates enabled. After the update, restart the platform and check the Navigator.
  • If you overwrote a working installation with the files of a new release on a too-old terminal — together with the new files, your existing configuration stopped working too (the old files have been replaced). The fastest way back to work is updating the platform. Alternatively, reinstall the files of the previous release — the current release and one before it (N-1) are supported.

The EA panel does not appear after startup

Symptom: the EA started (smiling face in the corner of the chart), but there is no panel.

  • Panel outside the chart area. After a monitor resolution change or an earlier drag, the panel can end up out of view. Remove the EA and drop it back on — it returns to the default position.
  • Control panel disabled in Inputs. Visibility of the control panel (buttons, actions, status) is governed by the field Show interactive control panel (parameter UI_ShowControlPanel, group Interactive Control Panel). Note: this is a different switch than Show info panel (Global_ShowStatsPanel) — that one controls only the extended info panel [i], not the control panel. Check whether a previous preset turned off the first one.
  • All sections hidden. If you hid all panel sections, only the bar remains. Enable at least Strategy Buttons (chapter 8).

Errors when trying to open a position

Symptom: red errors with MT5 codes in Experts (reject, invalid price, etc.).

  • Algo Trading disabled. The green Algo Trading button in the MT5 toolbar must be on; when dropping the EA on the chart, tick Allow Algorithmic Trading in the Common tab.
  • Account does not allow auto-trading. Some accounts (certain prop/demo) block algo. Check with your broker.
  • Not enough funds (margin). Even the smallest lot requires margin. Check the account equity.
  • Symbol with a suffix. Gold may appear as XAUUSD, XAUUSDm, XAUUSD.r, etc. Make sure exactly which symbol you are working on.

21.3 License (key + online verification)

O!kurra uses a license key in the format OKUR-XXXX-XXXX-XXXX-XXXX, verified online through a connection to okurra.com (chapter 3). You enter the key in the EA’s Inputs. Verification runs in the background (every few minutes); short network interruptions are tolerated.

Alert about no valid license / the EA generates no new positions

Symptom: the EA starts, but issues no new signals; a license message in the logs.

  1. Check the WebRequest whitelist. Tools → Options → Expert Advisors → Allow WebRequest for listed URL must contain https://okurra.com. Without it the EA cannot verify the key (chapter 3).
  2. Check the key. Entered exactly (format OKUR-...), no spaces, still valid.
  3. Check the EA subscription on okurra.com — is it active, did the payment go through. The subscription covers the EA only (chapter 3); all the indicators — the panels (OkurraButton/OkurraGlobal) and the companions — are free and the license does not apply to them.
  4. Check the internet connection. Verification requires access to okurra.com.
  5. The computer’s clock does NOT block verification. Online verification is not clock-sensitive — a wrong time zone or a drifted machine clock does not reject a valid license (the time gate was removed from the server on 2026-07-25; earlier editions of this manual described it as active). If the EA works on one computer but not another — most often a VPS — check on the failing machine, in order: the WebRequest whitelist (point 1), whether that machine’s MT5 account number is assigned to the key in the okurra.com panel (point 3), and whether the machine has an internet connection (point 4). A correctly set clock is worth having anyway (tidy logs and reports), but it is not what decides verification.
  6. Restart the EA after fixes so it retries verification.

Gentle wind-down — not a failure. When the subscription expires, the EA does not cut positions overnight. Only new signals are blocked; existing positions are still supervised — they reach their SL/TP, Break Even and Trailing work, manual closing and reactions to an opposite signal work. Pending orders (future entries) are deleted; the exception is a basket under an armed BEa defense — the defense may keep adding positions until it closes the basket to zero (chapter 12). The EA gradually becomes idle after the basket closes. This is a deliberate, gentle mechanism (chapter 3).

A note on demo. In learning/demo mode the license may be disabled — then this chapter does not apply to you. We describe the production state.

A release also has its own expiry date. Independently of the subscription, every distributed version of the tools has a built-in expiry date. The EA checks it once a day while running (not only at startup); after the deadline it enters the same gentle caretaker mode as on subscription expiry — it opens no new positions, deletes pending orders, but keeps managing open ones to their planned close (the BEa defense may close out the basket). Indicators and panels show an alert after the deadline and remove themselves from the chart. Solution: download the current release from okurra.com.


21.4 No signals

The button is enabled (colored), but no pending orders are created

This is the most common report — and the cause is almost always some blocking condition, not a failure. Go through these in order (decision tree below):

  1. Is the EA switched on at all? Since release 1.27 the panel has its own master switch (chapter 8). Under OFF the button in the top row is red and the panel title reads “O!kurra - EA OFF” — nothing new will start, although open positions are still watched over.
  2. Algo Trading active? (section 21.2).
  3. Trading Hours. If trading hours are enabled, the button may be outside the window. Mode [T] shows the current window or “no trading” (chapter 16). Remember: broker time, not local.
  4. Filters. Mode [G] shows the state of the global filters. If MMD is bearish and the button is BUY with the MMD filter enabled — all BUY signals are blocked (chapter 10). The same for SAR / SR / OKUR Filter.
  5. Activation Zone. If the button has “Active only inside Activation Zone” and there is no zone or price is outside it — it will not enter (chapter 11). Check that the zone exists and has not expired.
  6. OKUR threshold. Threshold 180 is very deep — in a quiet market the oscillator may not get there for hours. Reduce it (e.g. to 100) and see whether signals start (chapter 9).
  7. Signal Band. If the validity window (Signal Band) has closed, the button waits for a new arming in the zone. Temporarily disable Signal Band to check (chapter 9).
  8. Logs. With logging enabled you will see the reason every signal was rejected — this usually removes all doubt.
decision tree "button enabled but no signals". Vertical flow of yes/no questions, each node = one check, the "no/blocking" branch leads to a solution, the "ok" branch to the next question. Node order: (1) Algo Trading on? → no: enable in the MT5 toolbar + Common; (2) Inside a Trading Hours window? (mode T) → no: wait for the window / check broker time; (3) Filters passing? (mode G) → no: a filter is blocking (e.g. MMD bearish vs BUY) — wait for alignment or loosen; (4) Price inside the Activation Zone? → no: zone inactive/price outside — fix the zone; (5) OKUR threshold reachable? → no: Threshold too deep — reduce it; (6) Signal Band open? → no: validity window closed — disable the Band for testing; at the end a green node "signals should appear — check the Experts logs to be sure". Caption: most "no signal" cases are a blocking condition, not a failure — walk the branches in order
Fig. 21.1 — decision tree "button enabled but no signals". Vertical flow of yes/no questions

A button switched itself off or on although nobody clicked

Since release 1.27 a button’s state is changed by more than your hand and the cross-button triggers. Check in order:

  • A price-travel sensor (chapter 18). The button may have been switched off by the sensor named in its “switched OFF by” field, or switched on by the one in “switched ON by”. In the log look for [PM N] fired: — next to it the sensor lists which buttons it acted on. All sensors ship disabled, so this only applies to a configuration where someone deliberately set them up.
  • The one-shot cycle (§9.13). If the button has “switch off when its own positions are closed” enabled, it retires itself once the last position closes — and that is intended behaviour, not a fault.
  • The daily rollover. At the day reset hour the EA restores the buttons to their “Initial Enabled” state — a button switched on by hand in the evening may be back to off in the morning (and vice versa). Chapter 14. Exception: with the EA switched off, the restore does not happen (chapter 8).
  • The account guardians. The daily limit, Equity Guard and Profit Target disable buttons when they fire — the most common cause of “everything was off in the morning”. Chapters 14 and 15.

Signals are created, but almost all end in a loss

  • Threshold too shallow — signals on “any old” pullback, not on real extremes. Increase the depth (e.g. 100 → 150).
  • Wrong direction versus the market — the instrument is in a strong trend and a mean-reversion button “catches a falling knife”. Check MMD/SAR on M15+; if opposite — disable that side.
  • Trigger too sensitive — Movement Correction 5 fires on the first micro-pullback. Increase to 10–15.
  • No filter — every signal is “blind”. Enable the global MMD filter (chapter 10) to limit entries to the trend.

21.5 Pending orders do not fill

Pending lines are visible, but positions never appear

  • Pending distance too large. The pending order sits too far from price and is not touched in any reasonable time. Reduce “Pending Stop/Limit Distance” (chapter 9).
  • Broker spread. At certain hours (session open, news releases, weekend) the spread widens; a pending fills only when the relevant side of the price touches it. Check the current spread.

The pending disappeared, but no position was created

  • Not enough funds (margin). The log usually shows “Not enough money”. Reduce the lot or add funds.
  • Spread too wide at the moment of fill — the broker rejects the order (invalid price). Typical around news releases.
  • Broker position limit (max simultaneous positions per account/symbol). Check with your broker.

The position opened with a different SL/TP than configured

  • Broker’s minimum stop level. SL/TP cannot be closer to price than the broker’s threshold. If your SL is too close, the broker rejects/modifies it. Check: right-click the symbol → Specification → Stops level.

Pending orders at the broker disappeared after an EA restart

  • This is designed behavior, not a failure (since EA 1.11). With real pendings (virtualization disabled), the EA at startup deletes its own pending orders left over from the previous run — a pending “orphaned” by a restart could fill days later in a different market and open a position without a valid context. Look for the [StalePendings] tag in the log. Fresh pendings from the current session are not touched; new ones will be created from the buttons’ current signals. Details: chapter 9.7.

21.6 Position management (BE / Trailing)

Mind the two levels. Break Even and Trailing from chapter 9 work per individual position. BEa from chapter 12 works on the whole basket of a direction. These are different mechanisms — do not confuse them.

Break Even (per position) does not move the SL

  • The position has not reached the BE start threshold. BE arms only when the position is in profit by “Break Even Start”. Check the value (chapter 9).
  • No SL to modify. If the position was opened without an SL, there is nothing to move — set a sensible Stop Loss per button.
  • Broker limit (stops / freeze level). With some brokers, modifying an SL too close to price was rejected and BE “did not work” — inconsistently across accounts. The EA now pushes the SL out to the broker’s minimum distance, and when even that fails (price inside the freeze zone) — it closes the position as an emergency at market and raises an alert (popup + log). If you see such alerts, check the instrument’s stops/freeze level (chapter 9).

The Trailing Stop does not follow price

  • Price has not reached the Trailing start threshold. Trailing starts only after “Trailing Start” is exceeded (chapter 9).
  • BEa closed the basket earlier. BEa manages the whole direction independently; if it closes the basket before Trailing arms — that is natural, not an error.

The position does not close on the virtual (stealth) SL

  • A former problem — already fixed. Virtual SL/TP is now supervised reliably on every account type (positions recognized by a persistent ID). If on an older version “price reached the SL and the position did not close” — update the EA (chapter 9).
  • The EA must be online. Virtual SL works only with the EA running and connected — with the terminal closed it will not fire (it does not exist at the broker). If you want offline protection → use a real SL (disable virtual mode in OkurraGlobal).
  • Orphan alert. A popup “position vanished without a close / protection lost” means an anomaly on the broker side — check the account manually (chapter 9).

Alert “PROTECTION OFFLINE” — trading disabled on the terminal side

Symptom: a popup starting with “PROTECTION OFFLINE”, repeated roughly every minute, saying the EA cannot close positions or move stops.

It is not the broker rejecting orders — it is your terminal with trading disabled. Before the EA sends any close or stop modification, it checks two switches: the AutoTrading button in the MT5 toolbar and the “Allow Algo Trading” consent in this EA’s settings. When either is off, all protection mechanisms stand still: the virtual SL will not close a position, Break Even will not move a stop, Equity Guard and Close All will send nothing. Positions are left unattended, even though the EA “is running” and drawing its panel.

Solution: enable AutoTrading (Ctrl+E or the toolbar button) and check “Allow Algo Trading” in the EA’s properties. The alert will disappear and the mechanisms resume work immediately. If AutoTrading switched itself off “on its own” — most often it was a keyboard shortcut pressed by accident or a terminal restart with a different profile.

This alert deliberately replaces the old “storm” of “Broker refused SL move… keep retrying” messages — one readable popup per minute instead of hundreds of entries, and an unambiguous diagnosis (terminal, not broker).

Log “[CloseModel] ADAPTIVE: … switching to SYNC-first”

This is not an error — it is information. With the Adaptive close model (optional — since EA 1.23 the default is Auto with async disabled, i.e. synchronous closes; chapter 5.5) the EA sends closes asynchronously; if the broker fails to close some positions on the first pass, the EA finishes them off synchronously anyway (a safety net), and additionally switches subsequent closes to synchronous mode for the duration of a cooldown (default 30 min), after which it returns to asynchronous on its own. This log entry documents exactly that switch. If it appears often, your broker tolerates asynchronous closes poorly — consider “Close Model = 1 (Sync)” permanently.

Alert “EA build … is older than this panel expects” — mixed package versions

The panel (OkurraButton or OkurraGlobal) detected that the state on disk was written by an EA from an older release than the one this panel shipped with — most often because only some of the files were replaced during an update. Okurra is always released as a complete package (EA + both panels + companion indicators); mixing releases can cause silent inconsistencies in data exchange.

Solution: replace all files from a single release package (chapter 3), refresh the Navigator or restart the terminal. The message appears once per panel session and does not block operation — but treat it as a red warning light, not decoration.

The EA activity journal and decision journal — “why did(n’t) it enter?”

For questions like “why didn’t the EA open a position?” or “what exactly happened at 14:32?” there is the activity journal: with the field Log EA activity + decision/execution CSV (off during optimization) enabled (parameter Global_DiagActivity, group Global in Inputs, enabled by default) the EA appends one line per event to the file MQL5\Files\OKU\diag\ea_activity.log. Every entry has a category:

  • ENTRY — the fate of an entry signal (passed / which gate blocked it; the same block reason is logged once, until the outcome changes — the file does not bloat),
  • TRADE — operations on positions (opens, SL moves by BE/Trailing, etc.),
  • BASKET — periodic basket snapshots (position counts, PnL, EG/PT state),
  • SAFETY — guardian events (DPL limits, Equity Guard, Profit Target, Magic collisions, etc.),
  • EXEC — broker-side execution refusals, with the code and a plain-words reason (since 1.28 — previously raw reject codes were visible only in the Experts journal, and some refusals left no trace at all).

The same entries are mirrored to the Experts tab with the [OKU-ACT] tag — the file is convenient to send/review as a whole, the MT5 journal for live viewing.

Since release 1.28 the same switch also keeps a decision journal — the machine-readable file ea_decisions.csv in the same folder: one line = one event in fixed columns. It records every entry decision (the signal, the name of the blocking gate, the entry registration) and every contact with the broker — open, pending, close, stop modification — with the code and description of any refusal, the requested vs the executed price (that is, the slippage) and the server response time in milliseconds. The file deliberately contains no login and no balance. This is the evidence file for questions like “did the EA make a bad decision, or did the broker hold my order?” — and the client panel on okurra.com offers analysis tools that turn an uploaded file into a readable report: broker response-time distribution per hour, execution slippage, a refusal map and the history of gate blocks.

The journal also works in the Strategy Tester (since 1.28) — it switches off only during optimization, so thousands of parallel passes do not produce files nobody reads. Tester files land in the terminal’s common data folder (…\MetaQuotes\Terminal\Common\Files\OKU\diag\), with the symbol and a run number in the name — every pass gets its own pair of files, nothing is overwritten. Backtest analysis and live analysis therefore use the same tool and the same format.

The separate [OwnReg] tag in the logs concerns the “own only” registry (adoption/tracking of own tickets in Monitor Own Only mode — section 21.8) — that is a different mechanism than the activity journal.


21.7 BEa behaves unexpectedly

BEa closes the basket immediately after arming

Symptom: you click BEa BUY, the basket closes right away.

This is designed behavior. At the moment of arming, price was already above weighted break-even + BEa Gain. BEa acts immediately when the condition is met. Solution: arm BEa earlier (before price reaches the threshold), or reduce BEa Gain (e.g. 30 → 10) to close nearer to zero.

The BEa line “runs away” as new positions come in

This is not an error. The weighted break-even depends on all positions in the basket; every new position changes the weighted average, and the BEa line = weighted BE + Gain, so it moves. What is more — this is good news: the more positions at worse places, the lower (BUY) the weighted break-even, i.e. the realization threshold gets ever closer to the current price (chapter 12).

Auto-Arm did not arm BEa

  • The EA was off at that moment. Auto-Arm works only with the EA running; a missed moment is lost.
  • No open positions. Auto-Arm suppresses arming when there is no position in the trigger’s direction — there is nothing to protect, so BEa stays disarmed (in the log: arming suppressed). The trigger will act on its next occurrence, when the basket exists.
  • The “once a day” latch (time-based Auto-Arm). Arming at a given hour works once per day; if you disarmed BEa manually earlier that day, it will not try again (chapter 12).
  • Broker time ≠ local. The Auto-Arm hour is in broker time. Check the offset.

BEa hedge mode — the net basket “won’t” close

In hedge mode (BUY and SELL counted together net), realization happens when the whole goes into profit. With balanced lots on both sides, the net can be “frozen” near zero and does not close until one side gains the upper hand. This follows from the geometry (chapter 12.5), not from an error.


21.8 Account guardians (DPL / EG / Basket Max Loss / PT)

The most important correction to intuition. Equity Guard watches the PROFIT side (profit target/trailing), and the basket’s loss is watched by Basket Max Loss (chapter 15). This is a frequent source of misunderstandings — see below.

Daily Loss activates immediately after startup

  • Positions from before. If there are open positions (e.g. from the previous day) and at the current price they show a loss exceeding the limit — Daily Loss fires immediately. The daily result is computed as current equity − equity captured at reset (chapter 14).
  • Equity captured at reset out of sync (after a long offline period / chart change). Solution: set Daily Loss to 0 (off), wait for the next day reset — the reference value refreshes cleanly.

Equity Guard fires “not where I expected”

  • EG is the profit side. A positive EG “Start” value = a profit threshold (with Distance 0 it closes at +Start; with Distance > 0 — profit trailing with a ratcheting lock). EG is not a loss guardian. If you want to cap the basket’s loss — that is Basket Max Loss (chapter 15).
  • Percent mode. If EG is in percent mode, “Start” is computed as % of equity — easy to confuse with an amount. Check the mode.
  • EG looks at Total PnL (floating + realized), not floating alone.

Basket Max Loss closed the basket, and trading continues

This is designed. Basket Max Loss is a “planned-loss safety net”: when the basket’s loss exceeds the limit (e.g. 3% of equity), the EA closes the whole basket, resets the basket, and keeps playing (chapter 15). That is the difference versus Daily Loss, which does a hard stop of the day.

Profit Target does not fire despite profit

PT looks only at realized profit, not floating. +300 “on screen” is not yet profit for PT — you must actually close positions (TP/BEa/manually). After realization, the sum is added toward the threshold and PT fires (chapter 15).

Counters / Equity Guard show positions this EA did not open

Two typical causes:

  • The “own only” mode is disabled. By default the “Monitor Own Only” cell (chapter 5.5) is enabled and every EA instance manages only the positions it opened itself — even when a second instance works on the same symbol with the same Magic Number. If someone disabled it, instances with overlapping Magic “bleed into each other”: they count each other’s positions into their baskets, and the counters and Equity Guard show distorted values. Turn “Monitor Own Only” back on.
  • Overlapping Magic Number range (bases differ by less than 5). Even in “own only” mode, a shared Magic means a shared realized daily result (Daily P/L counts per Magic), so the daily guardians can react to the other instance’s trades. Spread the Global Magic Number so the bases differ by at least 5 (in practice by 10). On detecting an overlap the EA raises a startup alert (chapter 9).

Priority. When several conditions converge, Daily P/L Limits take precedence over EG/PT/Basket Max Loss (chapter 14).


21.9 Trading Hours

Buttons enabled, but silent all day

  • Master enabled, but the windows are empty. If all days say “no trading”, the EA does not trade. Check the entries (chapter 16).
  • Broker time vs local. You entered “08:00-22:00” thinking locally, and the EA reads it as broker time. Correct for the offset.
  • Bad format. A typo in a window (e.g. “08:0-22:00”) → the EA skips that segment and logs a warning [TH] …: invalid range '…' - skipping in Experts; the remaining valid windows of that day work. When the day had only that one (invalid) window — the whole day comes out as “no trading”. Check the “HH:MM-HH:MM” format (chapter 16.2).

I enabled a button outside the hours and nothing happens

This is intentional — the button is “dormant”. Manual enabling outside a trading window is accepted (the button is on), but signals are not created until the nearest Trading Hours window opens — then the button starts on its own. If you want trading immediately — widen the window or disable Trading Hours (chapter 16).

The button keeps collecting after the window ends

If it has BEa armed — this is intentional: with “Exclude BEa mode from Trading Hours” enabled, a button in BEa mode keeps working to close the basket to zero. The other buttons stay silent (chapter 16). The end of a window does not close open positions.


21.10 Cross-button Triggers

A trigger does not fire

  1. Mode [C] — does the map show the connection? If not, the EA did not load the configuration. Check that the target is 1…7 (not 0) and that it does not point at itself (self-target is rejected — chapter 17).
  2. Wrong slot for the event. A manual click fires only OnManualOn, not OnAnyAutoOn. Match the slot to the event.
  3. Logs. With logging enabled every trigger action is recorded; no entry = the trigger did not fire.

Loop detection activates during normal operation

You have a cycle in the trigger graph. Most often B1 → B3 → B1 (direct) or B1 → B3 → B5 → B1 (transitive). Draw the graph on paper, find the cycle, remove one trigger. Do not raise the loop detection thresholds — that is hiding the problem, not fixing it (chapter 17.7).

Triggers do not fire at EA startup

This is intentional. Startup with “Initial Enabled” is a system event that does not propagate (chapter 17.6). If you want the target button active from startup — give it “Initial Enabled” of its own, or activate the source button manually after startup (then OnManualOn fires). The same applies to the DPL rollover and the hard stop.


21.11 EA panel

Panel outside the chart area

Remove the EA and drop it back on — the panel returns to the default position. (The position and corner are designed in the settings — chapter 8.)

Target Blocks cells do not react to a click

  • Section hidden. Check that you can see the Target Blocks section at all; if not — it is disabled in the section settings (chapter 8).
  • Live editing. The cells work in SET mode → enter a value → OK/X. Make sure you are clicking the right SET button (chapter 8).

The info mode shows nothing

Most likely the [i] button is off (gray). Mode [B/G/S/T/C/H] cycles the category, but the extended panel stays hidden until you turn on [i] (green) — chapter 8. If that does not help either — check the Show info panel field in Inputs (parameter Global_ShowStatsPanel, subsection Info Panel): when it is off, the extended [i] panel will not show at all. It is a separate switch from Show interactive control panel (UI_ShowControlPanel), which controls the main control panel.

Too many alert popups — or a notification is missing

Since EA 1.08 you mute each popup group separately in the Alerts section of the OkurraGlobal panel (or in the Alerts group of the EA’s Inputs window): 8 popup groups + a shared push switch (chapter 5.5). Two things to remember while diagnosing:

  • Muting silences only the popup/push — the entry in the Experts journal always remains. If you are looking for an event whose popup did not show, check the log.
  • Not getting push on your phone? Check in order: the Push Notifications switch in the Alerts section, then the MetaQuotes ID in MT5 (Tools → Options → Notifications). Without a configured ID no push goes out, even though the switch is on.

License alerts have no off-switch — if the EA is not trading because of the license, the popup will always show (section 21.3).


21.12 Performance

MT5 slows down with the EA active

  • T. History with a large number of days. A dozen or several dozen days on M1 means thousands of arrows to draw. Reduce the number of history days to 1–3 (chapter 19.6).
  • Many parallel EA instances. Each consumes resources. Disable the unnecessary ones or spread them across separate terminals.
  • Weak hardware. On very old machines consider a VPS.

The Experts logs are flooded with messages

Most often “Log Every Trigger Action” is enabled with active triggers. Once debugging is done, disable per-action logging — the logs become readable again (chapter 17).

21.13 After a restart the EA “does not see” its positions (or it cut the pending orders)

Positions with the robot’s Magic Number are open, but the robot is not managing them

This is almost always an orphan position: it is missing from the own-only ownership registry (chapter 7.9). Typical scenarios: a pending order filled while the platform was off, the positions were opened on the built-in MetaTrader VPS (the robot’s files do not migrate — the local registry does not know them), more rarely a netting account.

Steps:

  1. Check the Experts journal — on EA 1.26 look for [OwnReg] reconcile ... ORPHAN entries (with factory settings you also get a popup). The entry names the position number and the reason.
  2. Restore the care: set Global_OwnOnly_Reconcile = Adopt (reclaiming with an ownership proof) or use the one-shot Global_OwnOnly_AdoptExisting = true (adopts every MN-matching position — use deliberately and switch back to false).
  3. Mind the virtual SL: until the orphan is back under care, with Virtual SL enabled it has no stop at all — protect it manually at the broker if needed.
  4. If the alert mentions a second instance on the same MN base — sort the bases out first (spacing ≥ 5), adopt afterwards.

Pending orders disappeared after a restart

This is a deliberate policy, not a malfunction: the pending watch-list lives in the robot’s memory, so after a restart the orphaned broker pendings are swept before a stale setup can fire (since 1.26 with a notification). If you want the sweep to cancel only the orders from the robot’s own registry (protecting a sibling instance with overlapping MN ranges), enable Global_OwnReg_TrackPendingOrders + Global_StalePendings_OwnListOnly (chapter 7.9).

The “[Migration] … retired B6/B7 magics” alert after updating to 2.00

Symptom: after replacing the files with release 2.00, the EA shows a popup and a journal entry starting with [Migration] at startup, naming a position count and two specific magics.

Cause: the account still holds open positions of the former buttons B6/B7 from a 7-button release (magics base+5 and base+6). Release 2.00 has five buttons and does not manage those positions: no Break Even or Trailing for them, no virtual SL/TP supervision (with Virtual SL enabled such a position is naked — the stop does not exist at the broker either!), and they are not counted into BEa baskets, daily limits or Close All. The alert is purely informational — the EA does nothing with those positions.

Solution: close those positions manually in the terminal (the Trade tab — you will recognize them by the magic from the message), or — if you still have access to an installation with the old release — let the old EA carry them to their planned close before you update. Best of all, avoid the situation entirely: close the B6/B7 positions before replacing the files (chapter 3.5). The alert repeats at every EA start for as long as the positions exist.

The Magic Number column in a report is empty

A deal without an MN is a deal from outside the robot: a position opened or closed manually (terminal, phone) carries MN = 0. The platform does not allow assigning an MN after the open — no EA can “write” a number onto a manual position. If, however, positions opened by the robot show an empty MN — check whether Global_MagicBase is set to 0 (button B1 then trades with MN = 0; since 1.26 the EA warns about it).


In the next chapter — the FAQ: the most common questions and short answers from various areas, including those that do not fit squarely into any chapter. Question–answer format, concise and concrete.