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 validators 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 either any single check scores 0.90 or higher, or the combined score reaches 0.80. A magnitude that is more than ten times off a trusted reference is always flagged, catching decimal-shift typos like 110.50 in place of 1.1050.
Flagged values are rejected or replaced before reaching any other validator. See the full Signal Sanitizer page for how the trust scores and checks work.
Custom Prompts: Improving Parse Quality
If a channel has an unusual signal format that causes frequent parsing errors, TTMT supports custom per-channel prompts that fine-tune how TTMT reads that specific channel's style.
This is set at the system level by TTMT administrators who curate the channel library. When a channel is added to the library, its typical signal format is analyzed and a custom prompt is crafted to maximize parsing accuracy.
The result: channels with non-standard formatting (e.g., signals in paragraph form, signals with abbreviated symbols, signals in different languages) parse more accurately, reducing false rejections and miscategorized values.
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
- 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

