Appearance
Are you an LLM? You can read better optimized documentation at /core-concepts/signal-processing.md for this page in Markdown format
How TTMT Reads Your Signals
TTMT reads your channels' messages the way a person would — you don't need rigid formats, exact wording, or a fixed template. This page covers what TTMT understands from a message, how it cleans up obviously wrong prices before risking money, and why a signal might never become a trade. Every signal you'll ever see in your log lands in one of the statuses listed at the end.
From message to trade
When a new message arrives in one of your enabled channels, TTMT works through three steps:
- Read it. TTMT reads the message and works out what trade it describes — symbol, direction, entry, stop-loss, and take-profits.
- Check it. TTMT confirms the prices make sense against the live market and against each other, then fixes or rejects anything that's clearly wrong.
- Place it. If everything checks out, TTMT builds your layered trade and sends the orders to your broker.
Messages are handled one at a time, so a burst of signals never gets tangled — each is read, checked, and acted on in order.
What TTMT understands
TTMT does not look for a fixed template. It reads:
- Any format or language. Plain typed messages, however the channel writes them.
- Reply context. "Close half" sent as a reply to the original signal is tied back to that trade.
- Edited messages. If a channel fixes a typo or changes a take-profit, TTMT sees the edit and updates the trade.
- Emojis, bold text, and odd formatting. These don't confuse the read.
- Multiple signals in one message. A single message with several trades is split and each trade is handled on its own.
For unusual channels — non-standard wording, uncommon aliases, or quirky multi-part formats — the TTMT team can tune how a tricky channel is read so its signals are understood correctly. This tuning is per channel; it is not something you configure yourself.
INFO
You never need to format your channel's messages. TTMT reads plain text, replies, edits, emojis, and even multiple signals in one message.
Skipping messages you don't want traded: the text blacklist
Some channels mix trade calls with commentary, ads, or setups you'd never take — "scalp idea", "educational only", a particular symbol you avoid. Each channel has a text blacklist (in the channel's Filters tab) where you list words or phrases that should stop a message before it's ever read as a signal.
How it behaves:
- Matching is forgiving. It's case-insensitive and ignores extra spacing, and it matches whole terms — so blacklisting
scalpblocks "scalp" but not "scalpel". - A match skips the message before parsing. If a blacklisted term appears in a new signal message, TTMT stops right there — nothing is parsed and no trade is placed. The Signal Log shows the reason as
blacklist_match:<term>so you can see which word caught it. - Replies are exempt. A reply to an existing signal — "close half", "move SL to entry" — is not filtered, so your close and modify follow-ups always get through even if they contain a blacklisted word.
- It fails open. If the filter can't evaluate a message for any reason, the message is allowed through rather than silently dropped.
You can list up to 100 terms (200 characters each). The blacklist is a channel-wide message filter — distinct from the per-account symbol allowlist, which controls which symbols each account is allowed to trade. See Message Filters for both in depth.
The four kinds of signal
TTMT sorts every message into one of four kinds.
Complete signal
A complete signal has everything needed to open a trade right away:
- Direction — BUY or SELL
- Symbol — EURUSD, XAUUSD, NAS100, and so on
- Entry — a price, or "NOW" for the current market price
- Stop-loss — the price that invalidates the trade
- Take-profits — one or more targets (TP1 through TP6)
Example
SELL GOLD @ 2850
SL: 2856
TP1: 2847
TP2: 2844
TP3: 2840Alert signal
An alert carries only direction and symbol — the minimum to flag an opportunity. The full details follow in a later message. How an alert is handled depends on the channel's execution mode.
Example
BUY EURUSD NOW!
Details coming soon...Modification signal
A modification updates a trade that's already open. TTMT ties it to the original trade by symbol and direction.
Supported modifications:
- Stop-loss update — "Move SL to 2050"
- Take-profit update — "New TP: 1.1200"
- Breakeven — "Move SL to entry", "Set BE"
- Partial close — "Close half", "Close 50%", "Take partials"
- Full close — "Close GOLD now", "Close all"
Followup signal
A followup fills in the details for an alert you received earlier. TTMT ties the followup to its parent alert by symbol, direction, and a time window.
Example
Alert: "Prepare for BUY GOLD"
Followup (5 minutes later):
BUY GOLD
Entry: 2850
SL: 2844
TP1: 2853
TP2: 2856
TP3: 2860Execution modes: when a channel trades
Each channel runs in one of two execution modes. This is set per channel in your channel settings and decides whether an alert trades on its own or waits for the full details.
| Mode | Behavior | Best for |
|---|---|---|
complete_only | Only trades signals that have entry, stop-loss, and at least one take-profit. Alerts and incomplete signals are logged but not traded. | Channels that post complete, well-formed signals. The conservative choice. |
execute_on_alert | Trades immediately on an alert, filling in missing values from your defaults. Any followup details are applied as modifications to the open trade. | Channels that post a quick alert first, then the details. The speed-first choice. |
WARNING
execute_on_alert mode needs sensible default stop-loss and take-profit values configured. When an alert arrives without them, TTMT uses your defaults to open the trade at once — so wrong defaults mean a wrong trade.
For the full treatment of how each mode behaves, see Execution Modes.
Signal patterns (how a channel is categorized)
A signal pattern describes a channel's posting habits so TTMT knows what kind of messages to expect from it. These are descriptions set by the TTMT team, not something you choose, and they are not quality badges.
| Pattern | Description |
|---|---|
complete_signals | The channel posts fully formed signals with all details in one message. |
alert_then_details | The channel posts a quick alert first, then the entry, stop-loss, and take-profits in a separate message. |
alerts_only | The channel posts directional alerts without specific entry details. |
How TTMT cleans up bad prices
Before any order is placed, TTMT checks every price in the signal. A copy-paste artifact or a misplaced decimal can otherwise become a real-money order at the wrong level. Here is what gets caught.
Catching obviously wrong prices
TTMT compares each price against the live market and against the signal's other values. A value off by 10× or more — a decimal slip such as 10.85 typed for 1.085 — is rejected outright; it's almost always a typo. Borderline-odd values are scored and either replaced with a sensible value or rejected. This is the decimal-slip guard.
Without this check
A signal that meant 1.0850 but typed 10.85 would be sent to your broker at 10.85. Either the broker bounces it, or — on a symbol where that price is reachable — it fills at a wildly wrong level. The decimal-slip guard rejects it instead.
Stop-loss sanity
TTMT catches three kinds of bad stop:
- Wrong side. A BUY whose stop sits above entry (or a SELL whose stop sits below) would be on the profit side of the trade — no protection at all. TTMT catches it.
- Inside the entry zone. A stop sitting where the trade is meant to enter is impossible and is caught.
- Absurdly far. A stop more than 5× the distance to your farthest take-profit is flagged as implausibly far.
Depending on your settings, TTMT corrects the stop, substitutes your default stop, or rejects the signal.
Without this check
A BUY signal with the stop typed above entry would open with its stop on the wrong side — it either closes instantly for a loss or leaves the trade completely unprotected. The wrong-side check stops that order from being placed.
Take-profit sanity
TTMT removes duplicate take-profits, fixes targets that are out of order, and drops targets on the wrong side. The wrong-side judgement is made against where your trade will actually enter (the entry zone), not the live market — so a limit order waiting for a pullback isn't wrongly flagged as having bad targets.
Without this check
A buy-limit waiting for a pullback can look "wrong" against the current market: its take-profits sit below today's price even though they're correct once price dips to the entry. Judging targets against the entry zone keeps those valid trades from being thrown out.
Duplicate check
TTMT builds a signature from the signal's key details — symbol, direction, entry, stop-loss, and take-profits — and blocks an exact repeat. This handles reposts and forwarded messages, so yesterday's signal re-shared today doesn't open a second copy of the same trade. A blocked duplicate is logged as skipped.
Final pre-trade checks
Right before placing the trade, TTMT confirms:
- Your broker connection is healthy.
- The symbol exists on your broker.
- Volume is within your limits.
- Margin is enough to open the position.
- No Automatic Safety Pause is active on the account.
Two checks, two numbers
A price off by 10× or more is treated as a typo and rejected (the decimal-slip guard). A stop more than 5× your farthest take-profit distance is flagged as implausibly far. These are different checks that catch different mistakes — don't confuse the two thresholds.
For the deeper safety treatment see Signal Validation, and for how the entry zone itself is decided see How Your Entry Zone Is Decided.
When a signal doesn't become a trade
Not every message can be traded. Here's what happens to the common cases.
| Issue | What TTMT does |
|---|---|
| Missing stop-loss | Uses your default stop. If you have no default set, the signal is rejected. |
| Missing entry | Treated as a market entry at the current price. |
| Missing take-profits | Uses your per-asset default targets. |
| Ambiguous symbol | Rejected and logged for review. See Symbol Mapping. |
| Non-trade message | Ignored. Chat, ads, and greetings are filtered out. |
| Blacklisted term | Skipped before parsing. Logged with blacklist_match:<term>. |
| Market closed | Skipped immediately — no order is placed. It is not held or queued for reopening. |
| Inside your blocked hours | Skipped, same as market-closed. The signal is not replayed when the window ends. |
| Duplicate | Blocked by the duplicate check. Logged as skipped. |
A closed market skips the signal — it does not queue it
If a signal arrives while your broker's market is closed, or during hours you've blocked in your trading schedule, TTMT skips it there and then. Nothing is stored to fire later when the market reopens. The reopening countdown you may see on the dashboard is a display aid, not a promise to replay a skipped signal.
When a signal reaches several accounts
If a channel is assigned to more than one of your trading accounts, TTMT reads the message once and then decides the outcome per account. The same signal can trade on one account and be skipped on another — because each account has its own symbol allowlist, its own settings, its own market state, and its own safety checks. When you open a signal in your log, you'll see the outcome for each account it reached, so a skip on one account never hides a fill on another.
Teaching a channel when TTMT reads it wrong
Occasionally TTMT will read a message differently from how you'd read it — it treats a comment as a signal, or picks up the wrong take-profit. You can flag it from the Signal Log: open the signal, choose Suggest a correction, and an edit sheet titled Teach this channel lets you fix the classification or the extracted fields and submit it for review.
▶ Watch the walkthrough: Correcting how a signal was read (2 min).
A few things to know:
- Submitting doesn't change anything immediately. Your correction goes to the TTMT team for review; it does not instantly retrain how the channel is read.
- It's a suggestion, not a setting. This is different from the per-channel overrides and filters you control directly — those take effect right away.
- Nothing you submit can break your trading. The reading pipeline is designed to keep working normally whether or not a correction is ever applied.
This is the customer-facing way to improve a tricky channel over time. For channel tuning the team does directly, see the "unusual channels" note above.
Signal statuses
Every signal carries a status through its life. You'll see these exact values in your log.
| Status | What it means |
|---|---|
pending | Received, waiting to be handled. |
queued | In line to be read (signals are handled one at a time). |
parsing | Being read right now. |
executing | The trade is being placed. |
executed | The trade opened successfully. |
executed_awaiting_modification | Trade opened; waiting for followup modifications. |
executed_via_followup | Trade opened after the followup details arrived. |
pending_followup | Alert received; waiting for the followup details. |
execution_paused | Placing was paused (for example, the channel was paused mid-handling). |
failed | Placing failed (a broker error or a failed safety check). |
delivery_failed | The signal couldn't be handled due to an internal error. |
rejected | Failed a safety check (bad stop, wrong-side target, and so on). |
ignored | A non-trade message, or filtered out by symbol or time rules. |
skipped | A duplicate of a signal already handled. |
INFO
Every status here appears in your Signals Log — use it to see exactly why a signal did or didn't trade.
Related pages
- Order Execution Strategy — how a valid signal becomes a layered trade.
- Order Management — the full trade lifecycle reference.
- How Your Entry Zone Is Decided — how your entry zone is set.
- Override Modes — replacing a signal's levels with your own.
- Signal Validation — the deeper safety treatment.
- Message Filters — the text blacklist and the per-account symbol allowlist.
- Symbol Mapping — how signal symbols map to your broker.
- Execution Modes — alert-versus-complete execution behavior in depth.

