Appearance
Are you an LLM? You can read better optimized documentation at /troubleshooting/signal-issues.md for this page in Markdown format
Signal Issues
Every message from your monitored channels goes through reading, safety validation, duplicate detection, and routing before it can become a trade. When a signal does not turn into the trade you expected, the Signal Log tells you which stage stopped it. This page maps each Signal Log status to its cause and fix, then covers the trickier "it executed, but not how I expected" cases.
TIP
The Signal Tester is your single best tool here: paste any signal and see exactly what TTMT read, which checks pass or fail, and what the trade would look like — with no money at risk.
Signal Failed (couldn't be read)
The signal shows as Failed with a reading error. This means the message format wasn't recognized as a trade, or it wasn't a signal at all — commentary, chat, or an image.
Fixes:
- Read the raw text. Click the failed signal to view the original message and confirm it actually contains a direction, symbol, entry, stop-loss, and take-profit.
- Test it. Paste the message into the Signal Tester to see exactly what the AI signal reading detected and what it missed.
- Persistently failing channels. If one channel consistently fails to read, it may need a custom signal-reading prompt. These are set per channel by the TTMT team, so contact support with examples of the channel's format.
- Unusual formatting. Very uncommon languages or heavy emoji and special-character formatting reduce reading accuracy.
Signal Rejected (caught by a safety check)
The signal was read correctly, but a safety check stopped it. Click the signal to see which check fired:
- SL on the wrong side — the stop-loss is above entry on a BUY (or below on a SELL). Check your invalid-SL handling setting.
- SL too far — the stop-loss is more than 5× the distance to the farthest take-profit. That pattern usually means a mistyped price, so TTMT protects you from an oversized stop. Verify the signal before loosening anything.
- TP on the wrong side — wrong-side take-profits are removed automatically. If every TP is removed, the trade may fail.
- Entry zone invalid — the zone is inverted (low above high) or implausibly wide relative to the stop distance. Usually a typo — test it in the Signal Tester.
- Extreme values — a price sits far outside any trustworthy reference, for example a decimal shift like
1.085arriving as10.85. TTMT either replaces the value from a trusted anchor or rejects the signal. Adjust your extreme-value handling if you want to override.
INFO
Rejections are TTMT refusing a signal that looks wrong. They protect you from typos and decimal slips in the original message.
Signal Skipped (valid but intentionally not run)
The signal was valid but TTMT chose not to run it. Click it for the skip reason:
- Duplicate — an identical signal already ran. This is expected.
- Close or modify instruction for a trade you don't have — common right after you join a channel mid-stream and the close instruction refers to an earlier entry you never took.
- Symbol not in your allowlist — that instrument isn't in this channel's per-account symbol allowlist, so it's excluded on that account. Check the channel's Filters tab.
- Blacklisted term matched — the message contained a term on the channel's text blacklist and was stopped before it was read. The reason reads
blacklist_match:<term>, naming the term that caught it. See Blocked by a blacklist term below. - Market closed — the signal arrived while your broker's market for that instrument was closed. It's skipped immediately, not held for reopen. See Trade Execution Issues.
- Blocked hours — the signal landed inside a blocked trading window you configured (on the account, the channel, or a profile). Also skipped, not queued.
Signal Ignored (no active route)
The message never reaches execution. The cause is almost always that the channel has no active account assignment, or the message isn't from a monitored channel. Fixes:
- Confirm an active assignment. The channel needs at least one active account assignment. A paused assignment ignores signals — the channel itself is never "switched off"; the per-account assignment controls whether signals flow to that account.
- Confirm the channel is added in TTMT, not just joined in Telegram.
- Check the execution mode. In Complete Only mode, an alert-only message (direction and symbol, no entry/SL/TP) won't run. Switch to Execute on Alert if the channel alerts first and sends details later. See Execution Modes.
Wrong symbol detected
The signal mapped to the wrong instrument, or to none at all. TTMT matches the signal's symbol to your broker's instrument list with a four-step approach:
- Exact match.
- Suffix/prefix strip —
EURUSDmandEURUSD.rawboth resolve toEURUSD. - Alias groups —
GOLDresolves toXAUUSD,US30resolves to its index equivalent, across a curated set of alias groups (currently around 20), plus dedicated Gold and Bitcoin handling. - Normalized-base fallback for minor formatting differences.
Fixes:
- Check Symbol Mapping to see how the symbol resolved.
- Add a manual map to override automatic matching for that symbol.
- If you recently switched the account to a different broker, re-run the symbol refresh so mappings re-validate against the new broker's list.
- Test in the Signal Tester before it hits the live account.
See Symbol Mapping.
Missing SL or TP
The signal was read correctly but has no stop-loss or take-profit because the channel omitted them. Fixes:
- Set default SL/TP pip values per asset class in your settings.
- Set per-channel SL/TP defaults on the channel's SL-TP tab.
- For channels that always omit, assign a Config Profile with the right defaults.
- Two-phase channels (alert first, details later) need Execute on Alert mode. In Complete Only, TTMT waits for one message with all values. See Execution Modes.
Blocked by a blacklist term
A channel can carry a text blacklist — a list of terms that, when they appear in a message, stop it before it's read as a signal at all. This is how you mute a channel's non-trading noise ("scalp session starting", "results", promo posts) without unfollowing it.
- The list holds up to 100 terms, each up to 200 characters. Matching is case-insensitive and whitespace-normalized, and it matches whole terms — so
scalpblocks a message that says "scalp" but not one that says "scalpel." - A matched message is skipped and logged with a
blacklist_match:<term>reason, so you can see exactly which term caught it. - Replies are exempt. A reply to an earlier signal (a close, a modify, "move SL to entry") still goes through even if its wording would otherwise match, so your follow-ups keep working.
- If matching ever fails internally, it fails open — the message is let through rather than silently dropped.
If a channel's signals suddenly stop trading, open its Filters tab and check the blacklist for a term that's catching them. The allowlist and the blacklist both live on the Filters tab, but they do different jobs: the symbol allowlist is per-account and decides which instruments may trade; the text blacklist is channel-wide and decides which messages are even read. See Message filters.
"Teach this channel" (suggest a correction)
When a channel is consistently misread — the wrong direction, a missed take-profit, a value pulled from the wrong place — you can teach TTMT how that channel's signals should be understood.
Can't see the video? Watch it on YouTube.
- In the Signal Log, open the signal that came out wrong and choose Suggest a correction.
- In the Teach this channel sheet, fix what's wrong: the classification (is this actually a signal? an alert? a close?) and/or the extracted fields (entry, SL, TPs, symbol, direction).
- Submit it for review.
Submitting doesn't change parsing right away
A correction goes to the TTMT team for review; it doesn't retrain the channel the instant you submit. Improvements are applied when the review is approved and the teaching feature is switched on for that channel. Treat it as feedback that makes the channel better over time, not a live edit — and keep using the Signal Tester to check how signals read in the meantime.
Parse Lens and per-account outcomes
Open any signal from the Signal Log to see the Parse Lens — the signal view that shows the raw message next to what TTMT actually extracted, with plain-English notes on each field and why any validation adjusted it. It's the fastest way to answer "what did TTMT think this signal said, and why."
Because one signal can broadcast to several accounts, the same message can end differently on each — executed on one account, skipped on another (paused assignment, symbol not in that account's allowlist, that account halted), rejected on a third. The signal view breaks the outcome out per account, so a signal that "didn't trade" on one account but did on another isn't a contradiction — it's the per-account picture. Read the per-account outcomes before assuming a signal failed everywhere.
"It executed at a price I didn't expect"
The trade opened, but the entry, stop, or target wasn't what the signal printed. There are three common, deliberate reasons.
WARNING
If you use SL/TP overrides, the executed levels come from your settings, not the signal. Check your override settings before reporting a "wrong" fill.
Trade filled just outside the printed zone (entry-zone expansion). TTMT widens the Layer-1 side of the entry zone by a small margin so a near-miss price still gets you in rather than missing the move entirely. If a fill looks a pip or two outside the stated zone, this is why. It only widens the favorable side, and only by your configured expansion amount. See Entry Zone Expansion.
Your SL/TP override changed the levels (override modes). If you turned on stop-loss or take-profit overrides, TTMT applies your own levels instead of the signal's, and resolves the entry zone first so the override anchors to the right price. There are two ways the entry zone can be handled — a fixed mode using your exact pip distances, and an auto mode computed at fill. If the resulting stop or target differs from the signal's printed values, your override is doing exactly what you set it to. See Override Modes.
A zone-only "limit" signal placed as a limit, not at market (single-layer). With one entry layer configured, a signal that gives only a price zone (no single entry) places a limit order at the favorable edge of that zone instead of firing at market. If you expected an immediate market fill on a one-layer setup and got a resting limit instead, this is the reason. See Limit Order Conversion.
Examples
- Failed read. A meme- and emoji-heavy message that wasn't a signal at all shows as Failed — there was no trade for TTMT to build.
- SL too far. A gold signal arrives with the stop-loss mistyped 5× past the farthest take-profit. TTMT rejects it before placing an oversized stop. Without the check, a fat-finger SL becomes a real, huge-risk position.
- Extreme-value catch. A decimal shift —
1.0850sent as10.850— is replaced from the live price anchor. Without sanitization, the trade would have used a price 10× off. - Ignored signal. You joined a channel in Telegram but never added or assigned it in TTMT, so every signal shows as Ignored.
- Entry-zone-expansion fill. The zone was 1.0850–1.0840, price ticked to 1.0851, and TTMT still filled Layer 1 — the expansion caught the near-miss. Without expansion, the signal would have been missed by a single pip.
- Override surprise. Your take-profit override is set to fixed 30/60/90 pips, so a signal that printed TP at 1.0900 instead took profit at your 30-pip level — your override, working as configured.

