Appearance
Are you an LLM? You can read better optimized documentation at /dashboard/signal-log.md for this page in Markdown format
Signal Log
The Signal Log records every signal TTMT has received from your connected Telegram channels — executed, skipped, rejected, or failed while being read. It is your go-to for understanding how TTMT read each message and what it did with it, and it's where you correct TTMT when it read a channel wrong.
The log at a glance
The Signal Log shares the coordinated log design used across Signal, Trade, and Position logs:
- Day groups with full-day rollups, so you can scan a day's signals without opening each one.
- Page size 30 — the log pages in blocks of 30.
- Consolidated toolbar — filters, search, and View controls in one bar.
- Direct selection — desktop checkboxes, or mobile long-press to start selecting; Escape exits selection.
- Bulk action bar — appears when rows are selected, for bulk soft-delete.
- "N new" notification — a held pill lets you pull in new signals on your terms.
- Trash always available — no mode to enable first.
Each row shows the channel, a preview of the raw text, a summary of what TTMT read (symbol, direction, entry, SL, TPs), the status, and received/processed times. Every signal carries a reference ID (sig_…) you can quote in a support request.
Signal statuses
The status tells you exactly what happened to a signal.
Active processing states
| Status | Meaning |
|---|---|
pending | Signal received, waiting to be processed |
queued | In line to be processed |
parsing | Currently being read by TTMT |
executing | Read successfully, trade execution in progress |
execution_paused | Execution temporarily paused (e.g. a safety limit was reached) |
Completed states
| Status | Meaning |
|---|---|
executed | Trade successfully placed from this signal |
executed_awaiting_modification | Trade placed, waiting for follow-up details to modify |
executed_via_followup | An alert that was completed by a later follow-up message |
pending_followup | Alert received, waiting for the follow-up with full details |
Terminal states
| Status | Meaning |
|---|---|
failed | Processing failed — see the reason in the details |
delivery_failed | Received but could not be sent for trade execution |
rejected | Valid message but rejected by safety checks (e.g. duplicate, stop-loss on the wrong side, market closed) |
ignored | Intentionally skipped (e.g. symbol not in your filter, a blacklisted term, or the channel paused) |
skipped | Deprioritized or superseded by a newer signal |
Most signals should be "Executed" or "Ignored"
A run of failed or rejected signals is worth investigating — it may point to a connection issue or a channel that sends poorly formatted messages. A rejected signal often corresponds to a Rejected trade in the Trade Log, where the exact reason is named.
The Signal Modal — the Parse Lens
Click any signal row to open the Signal Modal, TTMT's Parse Lens on that message: it shows you the raw text, exactly what TTMT read out of it, and why the signal ended up where it did.
| Section | What it shows |
|---|---|
| Raw + annotated message | The complete Telegram message, alongside an annotated version that highlights the pieces TTMT identified — the symbol, direction, entry, stop, and each take-profit — mapped back onto the words they came from. |
| Extracted fields | Every field TTMT pulled: symbol, direction, entry price, entry zone, stop-loss, and take-profit levels TP1–TP6. |
| Validation | Which safety checks passed and which flagged something — the stop-loss check, take-profit check, entry-zone check, duplicate check — with a plain-language explanation of any correction. |
| Per-account outcomes | If you run more than one account, what happened to this signal on each account — executed on one, skipped on another because of that account's filters or blocked hours. One signal can land differently per account. |
| Skip / reject reason | When a signal didn't execute, the specific reason — including a blacklisted term (shown as blacklist_match:<term>), a market-closed rejection, a symbol outside your filter, a duplicate, or an invalid stop. |
| Linked trade | If a trade was placed, a link to it and its outcome, so you can jump from the message to the result. |
Why a signal was skipped or rejected
The Parse Lens is where you learn why nothing traded. Common reasons it names:
- Blacklisted term — the message contained a term on the channel's text blacklist, so it was skipped before parsing. Note that replies bypass the blacklist, so a channel's close/modify follow-ups still work. See Message Filters.
- Market closed — the market for the symbol was closed when the signal arrived, so it was skipped immediately, not held for reopening. See Fast Market Conditions.
- Not in your symbol filter — the symbol isn't on that account's allowlist.
- Duplicate / superseded — the message repeated an earlier signal or was overtaken by a newer one.
- Failed validation — an implausible stop or price the safety checks couldn't accept.
Teach this channel — correcting a misread
When TTMT read a channel wrong — misclassified a message, or pulled the wrong entry or stop — you can teach it. On the signal's row or in the Signal Modal, choose Suggest a correction to open the Teach this channel edit sheet. There you fix the classification (was this actually a signal? a close? a status update?) and correct any extracted fields, then submit for review.
▶ Watch the walkthrough: Correcting how a signal was read (2 min).
Submitting a correction is a suggestion, not an instant change
Your correction goes to review and takes effect only after it's approved and the learning feature is active for your account. It does not rewrite how TTMT reads that channel the moment you submit, and it never changes trades that already happened. Think of it as improving future reads, not replaying the past.
This is how a channel's parsing gets better over time: real misreads, corrected by the people who follow the channel, folded back in after review.
Alert-then-details signals
Some channels post an alert first (just direction and symbol), then follow up with the full details in a separate message. This is the channel's signaling pattern, not a TTMT setting.
When it happens you'll see two rows: a pending_followup signal (the alert), then an executed_via_followup signal (the completed trade once the details arrived). How TTMT handles it depends on the channel's execution mode: execute_on_alert fires on the first message and applies the follow-up as a modification, while complete_only waits for the full details before executing.
Filters
Narrow the log from the toolbar by date range, channel, and status — combine the channel and status filters to assess one channel's signal quality at a glance.
Debugging channel quality
If a channel produces a high ratio of rejected or failed signals versus executed, open a few in the Parse Lens. The annotated message usually shows why — a format TTMT struggles with, a term on your blacklist, or stops the channel places too tight — and Teach this channel lets you fix the misreads.
Cleaning up
Signals in terminal states (executed, executed-via-followup, failed, delivery-failed, rejected, ignored, skipped) can be soft-deleted. Select rows directly — desktop checkboxes or mobile long-press — then delete from the bulk bar. Deleted signals move to the Trash and can be restored. See Trash & Restore.
Related pages
- Trade Log — the trades that resulted from these signals.
- Message Filters — the symbol allowlist and text blacklist behind skip reasons.
- Signal Tester — test how TTMT would read a signal without real money.
- Trash & Restore — restore soft-deleted signals.
- Execution Modes — how alert-then-details channels are handled.
- Signal Processing — how signals flow through the system.

