Appearance
Are you an LLM? You can read better optimized documentation at /safety-and-reliability/typos-and-bad-signals.md for this page in Markdown format
Typos & Bad Signals
Signal providers are human. They make typos, swap numbers, forget stop losses, post the wrong symbol, or send signals in inconsistent formats. A system that blindly copies these mistakes into real trades will lose money for you -- not because the market moved against you, but because the signal was wrong from the start.
TTMT is built to catch these errors before they reach your broker. This page explains the specific protections for each type of signal quality issue.
The Reality of Signal Quality
Even the best signal channels have error rates. Across typical channels, TTMT's safety checks catch signal issues in 10-25% of all messages. These are not bad channels -- they are normal channels where human operators occasionally:
- Swap entry and stop-loss prices
- Type 1.1050 when they mean 1.1500
- Post TPs in the wrong order
- Forget to include a stop loss
- Copy signals from other channels with different formatting
- Send partial updates that are ambiguous
- Post the same signal twice with minor edits
Without automated validation, every one of these errors would result in a trade that does not match the provider's intent -- and often a trade that is structurally dangerous.
Wrong-Side Stop Losses
The problem: A BUY signal at 1.1000 with an SL at 1.1050. The stop loss is above the entry, meaning price would need to move in your favor to trigger it. This is almost always a typo -- the provider meant 1.0950.
How TTMT catches it: The stop-loss checks confirm the stop loss is on the correct side of entry for the given direction.
| Direction | SL Must Be | Wrong-Side Example |
|---|---|---|
| BUY | Below entry | SL at 1.1050 for entry 1.1000 |
| SELL | Above entry | SL at 1.0950 for entry 1.1000 |
What happens next: Based on your invalid-SL setting, TTMT either keeps the signal's SL as-is (Use Signal) or recomputes a safe SL from your configured default stop distance (Use Default). See the correction modes on the Signal Validation page.
Extreme Stop-Loss Distance
The problem: A signal with an entry at 1.1000, a furthest take-profit at 1.1080 (80 pips), and an SL at 1.0500 (500 pips). The risk-to-reward ratio is wildly skewed against you. This is almost certainly a typo -- the provider probably meant 1.0950.
How TTMT catches it: The SL Validator compares the SL distance to the furthest take-profit distance:
If SL Distance > 5 x furthest-TP Distance → Flag as extremeIn the example above, 500 pips > 5 x 80 pips = 400 pips, so the SL is flagged.
What happens next: Based on your Extreme Value behavior setting:
| Setting | Action |
|---|---|
| Reject | Trade is not executed |
| Correct | SL is adjusted to a plausible distance |
| Execute | Trade executes with a warning logged |
WARNING
The "Execute anyway" option exists for users who trust specific channels that intentionally use wide stop losses (e.g., swing trading strategies). For most users, "Reject" or "Correct" is the safer choice.
Wrong-Side Take Profits
The problem: A BUY signal at 2850 with a TP at 2840. The take-profit target is below entry, meaning price would need to move against you to reach it. This is a common typo, especially with gold and indices where prices have many digits.
How TTMT catches it: The take-profit checks detect wrong-side TPs -- but with a critical improvement over naive implementations.
The naive approach (wrong): Compare TPs to the current market price. If the market has already moved past the entry, a valid TP might look like it is on the wrong side.
TTMT's approach (correct): Compare TPs to the entry zone boundaries, not the live price. TTMT uses:
- BUY: The lower of the zone low and entry price -- the most conservative possible entry
- SELL: The higher of the zone high and entry price -- the most conservative possible entry
This means a TP that is valid relative to the entry zone is never incorrectly rejected just because the live price has already moved.
Real-World Example
BUY XAUUSD, entry zone [2377, 2387], current price 2391.90, TP1 = 2391.
A naive system would reject TP1 because 2391 < 2391.90 (current price). But TTMT uses the entry zone low (2377) as the reference. Since 2391 > 2377, TP1 is valid. This is correct -- if you enter at 2377, a TP at 2391 is 14 points of profit.
Duplicate Take Profits
The problem: A signal lists TP1 = 1.1050, TP2 = 1.1050, TP3 = 1.1100. Two TPs at the same price waste order capacity and create confusing allocation.
How TTMT catches it: Step 2 of the TP validation removes duplicate values. In this case, the signal is treated as having TP1 = 1.1050 and TP2 = 1.1100.
Misordered Take Profits
The problem: A BUY signal lists TP1 = 1.1100, TP2 = 1.1050, TP3 = 1.1200. TP2 is closer to entry than TP1, which breaks the expected ordering.
How TTMT catches it: Step 3 of the TP validation detects misordered TPs and re-sorts them:
- BUY: Ascending order (TP1 nearest, TP6 furthest)
- SELL: Descending order (TP1 nearest, TP6 furthest)
The corrected signal becomes TP1 = 1.1050, TP2 = 1.1100, TP3 = 1.1200.
Inverted Entry Zones
The problem: A BUY signal lists the entry zone as "1.1050 - 1.1000". The high boundary (1.1050) is listed first and the low boundary (1.1000) second. Technically, the zone is inverted -- it should be "1.1000 - 1.1050" for a BUY.
How TTMT catches it: The entry-zone checks detect inverted zones (where the low value is higher than the high value) and silently swap them.
This is one of the most common formatting issues -- many signal providers naturally list the nearest price first, regardless of whether it is the high or low of the zone. TTMT handles this automatically without rejecting the signal.
Excessively Wide Entry Zones
The problem: During volatile sessions, a provider posts "Buy XAUUSD 2300 - 2360". That is a 60-point zone -- $60/lot of potential spread between your worst and best fills. This is usually a reaction to volatility rather than a deliberate strategy.
How TTMT catches it: The Entry Zone Validator checks the zone width against the stop-loss distance. A zone that is implausibly wide relative to the stop -- wider than five times the stop distance -- is treated as a likely error. The zone is capped, and your limit orders are recalculated within the reduced range.
Zone-Only LIMIT Signals
The problem: A signal gives only an entry zone (for example, "Buy XAUUSD 2300 - 2305") with no single entry price. On a single-layer setup, an older version of TTMT would fall back to a market order, filling you at the current price instead of waiting for the zone.
How TTMT handles it now: When a signal provides only a zone and you run a single-layer setup, TTMT derives a favorable entry from the zone -- the edge most advantageous to your direction -- and places a proper limit order there. Zone-only signals are no longer slipped to market; they wait at the favorable edge of the zone, the way the provider intended.
See Limit Order Conversion and Order Execution for how limit entries are placed and managed.
Missing Stop Losses
The problem: Some signal providers do not include a stop loss in every signal. They may intend for traders to use their own risk management, or they may simply forget.
How TTMT handles it: This depends on your execution mode:
| Mode | Behavior |
|---|---|
| Complete Only | Signal is rejected -- it requires Entry + SL + at least 1 TP |
| Execute on Alert | Signal executes with your configured default SL for the asset class |
If you use Complete Only mode (the default), missing stop losses simply prevent execution. If you use Execute on Alert mode, your configured per-asset-class default SL is applied automatically.
Duplicate Signals
The problem: The same signal is posted twice -- either because the provider edited and reposted, the message was forwarded from another channel, or TTMT processed it twice due to a connection retry.
How TTMT catches it: The duplicate detection system generates a unique identifier from:
symbol + direction + entry + SL + TP1 + TP2 + ... + TPnIf this identifier has been seen recently, the signal is skipped. This prevents opening two identical trades from the same signal.
TIP
The duplicate check happens after validation but before execution. This means if a provider posts the same signal with slightly different TPs (e.g., TP3 changed by 1 pip), it is treated as a new signal -- which is usually the correct behavior, since the provider intentionally modified their target.
Signal Sanitizer: The First Filter
Before any of the specific checks below run, the Signal Sanitizer screens each value (entry, stop loss, and every take-profit) against trusted price references for that symbol. A value is flagged as an extremity -- a likely decimal error or copy-paste artifact -- when it is clearly out of line with the live market and your open trades, or when several milder warning signs add up. A value that is more than ten times off a trusted reference is always rejected outright, catching decimal-shift typos like 110.50 in place of 1.1050.
Flagged values are rejected or replaced before reaching any other check. See the full Signal Sanitizer page for how the trusted references and reasoning work.
Teach This Channel: Correcting How a Signal Was Read
When TTMT reads a message wrong — misses a take profit, gets the direction backwards, or classifies a real signal as chatter — you are not stuck with it. Each entry in your Signal Log has a Suggest a correction action that opens a Teach this channel edit sheet. There you can fix how that message should have been read: correct the classification (signal vs. not a signal, alert vs. complete) and adjust the extracted fields (entry, stop loss, take profits, direction).
Can't see the video? Watch it on YouTube.
Submitting sends your correction for review. It does not change how the parser reads that channel right now:
A correction only affects future signals after it has been reviewed, approved, and activated for that channel — and only when the teaching feature is switched on. Until then, your submission is a suggestion in the queue, not a live rule. The parser is also fail-open: if a taught correction can't be applied for any reason, the channel falls back to normal reading rather than blocking the signal.
Correcting is how channels get better over time
The most useful corrections come from channels with an unusual style — signals in paragraph form, abbreviated symbols, or a different language. Each accepted correction nudges that channel toward more accurate reads. Just remember the loop takes review, so a single submission won't fix a signal that's already in your log.
What Happens to Caught Signals
Every signal that is rejected, corrected, or skipped is logged with a clear reason in your Signal Log. The log distinguishes between:
| Status | Meaning |
|---|---|
| Rejected | Signal failed validation -- something was wrong with it |
| Skipped | Signal was valid but already executed (duplicate) |
| Ignored | Signal was from a paused channel or non-signal message |
| Blocked | Signal was valid, but the account is halted by Risk Limits -- the daily-loss cap stopped new trades |
| Executed | Signal passed validation and was traded |
A blocked signal is the common answer to "the signal looked fine -- why didn't it trade?" The signal was not wrong; your account had hit its daily-loss halt, so TTMT held new trades until you resume. This is different from a rejection (a problem with the signal itself).
You can review your signal log at any time to understand exactly what TTMT caught and why. This transparency is critical for tuning your channel selection and settings.
INFO
A high rejection rate from a specific channel does not necessarily mean the channel is bad -- it may mean the channel's format needs a custom prompt, or that the channel sends many non-signal messages that are correctly filtered. Check the rejection reasons to understand the pattern.
Summary: Protection by Error Type
| Error Type | Detection System | Default Response |
|---|---|---|
| Malformed price values | Signal Sanitizer | Reject or replace the extremity |
| Garbled/unparseable message | Signal reader | Reject |
| Wrong-side SL | SL Validator | Configurable (use signal / use default) |
| Extreme SL distance | SL Validator | Configurable (reject/correct/execute) |
| Wrong-side TP | TP Validator | Remove invalid TPs |
| Duplicate TPs | TP Validator | Remove duplicates |
| Misordered TPs | TP Validator | Re-sort |
| Inverted entry zone | Entry Zone Validator | Auto-correct (swap) |
| Wide entry zone | Entry Zone Validator | Cap relative to stop distance |
| Zone-only single-layer signal | Entry Zone handling | Place a limit order at the favorable edge |
| Missing SL | Execution Mode | Reject (Complete Only) or use default (Execute on Alert) |
| Duplicate signal | Duplicate Detection | Skip |
| Extreme values | Extreme Value setting | Configurable (reject/correct/execute) |
Related Pages
- Signal Validation -- Full reference for the validation stages
- Signal Sanitizer -- The first filter against malformed prices
- Message Filters -- The text blacklist that skips messages before parsing
- Risk Limits -- Why a valid signal can still be blocked
- Safety & Reliability Overview -- The five layers of defense
- Trading Settings -- Configure validation behavior and extreme value handling
- Channel Settings -- Execution modes and per-channel configuration
- Signal Processing -- The full signal lifecycle from Telegram to execution
- Analyze Your Own Channel -- Self-approve a channel you've joined, with the same signal-reading safeguards

