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 SL Validator checks that 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 settings, the system either rejects the trade, uses your default SL, or attempts to auto-correct by mirroring the SL to the correct side.
Extreme Stop-Loss Distance
The problem: A signal with an entry at 1.1000, TP1 at 1.1050 (50 pips), and SL at 1.0500 (500 pips). The risk-to-reward ratio is 10:1 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 TP1 distance:
If SL Distance > 5 x TP1 Distance → Flag as extremeIn the example above, 500 pips > 5 x 50 pips = 250 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 TP Validator detects 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 Validator detects inverted zones (where the low value is higher than the high value) and silently swaps 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 slippage 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 enforces maximum zone widths:
| Asset Class | Maximum Zone Width |
|---|---|
| Forex | 3% of price |
| Metals / Crypto | 5% of price |
Zones exceeding these limits are capped. Your limit orders are recalculated within the reduced zone.
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 evaluates the overall quality of the AI parser's output.
Two-Phase Confidence
| Phase | Threshold | What Passes |
|---|---|---|
| Phase 1 | 0.90 | Cleanly parsed signals with all fields |
| Phase 2 | 0.80 | Borderline signals with acceptable structure |
| Below both | -- | Garbled, ambiguous, or unparseable content |
Signals that the AI parser cannot confidently extract (e.g., a message that is mostly emoji, a photo with no text, or a message in an unsupported language) are rejected before reaching any other validator.
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 the AI parser for 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 |
| Executed | Signal passed validation and was traded |
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 |
|---|---|---|
| Garbled/unparseable message | Signal Sanitizer | Reject |
| Wrong-side SL | SL Validator | Configurable (reject/correct/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 to maximum |
| 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 all 7 validation stages
- 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

