DoIt Signal Publisher / User Guide
0 / 6 done
User guide · v2.1 · MT4 & MT5 · Telegram & Discord

DoIt Signal Publisher.
Your trades, published.

Publishes every trade on your account to your Telegram channels and Discord servers — signals, closes, partials and SL/TP updates. The original message is edited in place so followers always see the live state. VIP + free tiers, inline buttons, chart screenshots and automatic reports. Works with any EA or manual trading — no coding needed.

6channels · 3 TG + 3 Discord
2platforms · MT4/MT5
5min to first signal
Overview

Why Signal Publisher

Attach it to any chart and it watches your whole account. Every execution, close, partial and SL/TP change becomes a clean, professional message in your channels — and the original signal is kept up to date instead of buried under update spam.

DifferentiatorEdit-in-placeThe original signal is edited with the current SL/TP and the final result — followers never scroll through 5 updates to know the state of a trade.
TiersVIP + free from one EAUp to 3 Telegram chats and 3 Discord webhooks, each with its own delay and magic/symbol/direction filters.
ThreadingReplies, not spamCloses and partials arrive as replies to the original signal on Telegram — a tidy thread per trade.
GrowthInline buttonsUp to 4 URL buttons under every signal — your VIP link, your broker link, whatever you monetise with.
VisualChart screenshotsChart image and message sent as one single post, with your visual settings applied.
AccountabilityAuto reportsDaily, weekly and monthly summaries: win rate, net P/L, pips, profit factor, best/worst.
Fast track: want it working in 5 minutes? Do steps 2, 3 (Telegram) or 4 (Discord), and 5 — then press TEST on the panel. Everything else is optional power features.
01 / Purchase

Get it on MQL5

Each platform and transport is a separate product — pick the one that matches your terminal and where your audience lives.

Telegram builds
Discord builds
  1. 1Open the product page — use the buttons above.
  2. 2Click the orange Buy button on the MQL5 product page.
  3. 3Select your payment method (card, PayPal…) and complete the payment.
  4. 4Install the EA directly to MetaTrader and begin setup (next step).
You can try before buying: download the free demo from the MQL5 product page and run it in the Strategy Tester.
02 / WebRequest

Allow the URLs in MetaTrader

Takes 30 seconds — and it is required.

MetaTrader blocks all internet access by default. Without this step, nothing will ever be sent.
  1. 1In MetaTrader: Tools → Options → Expert Advisors.
  2. 2Tick “Allow WebRequest for listed URL”.
  3. 3Add the URL for your build: https://api.telegram.org (Telegram builds) and/or https://discord.com (Discord builds). The Pro build needs both.
  4. 4Click OK. If the EA was already on a chart, remove it and attach it again.
03 / Telegram

Telegram setup — bot, channel, chat id

Three short parts: create a bot, make it admin of your channel, and grab the chat id. Discord users can skip to the next step.

3.1 — Create your bot (2 minutes)
  1. aIn Telegram, search for @BotFather (the verified one) and open it.
  2. bSend /newbot.
  3. cGive it a display name (anything, e.g. My Signals).
  4. dGive it a username — must be unique and end in bot, e.g. my_signals_2026_bot.
  5. eCopy the token BotFather replies with (looks like 1234567890:AAHrX3...) into the EA input Telegram bot token. Treat it like a password.
  6. fOpen your new bot’s chat and press START once.
3.2 — Add the bot to your channel as ADMIN
Key fact: bots cannot join channels like normal members, and they can only post if they are administrators. You add them directly as admin.
  1. 1Open your channel → tap/click the channel name at the top.
  2. 2Go to Administrators → Add Administrator.
  3. 3Type the bot’s full @username in the search box (e.g. @my_signals_2026_bot). Type the username, not the display name — bots only appear when you type the exact username, and the result shows up in the “Global search” section at the bottom, not in the member list.
  4. 4Select the bot, make sure “Post messages” is enabled, and save.
Bot not found in search? ① Copy the exact @username from BotFather (/mybots) — display names don’t work. ② Type at least 5 characters. ③ Brand-new bots can take 2–3 minutes to appear in global search — wait and retry. ④ Alternative: open your chat with the bot → tap its profile → “Add to Group or Channel” (on some Telegram versions this picker only lists groups — if your channel doesn’t appear, use the channel-side method above).
3.3 — Get your chat id
  1. 1Post any message in the channel (e.g. “test”). This matters — an empty channel produces an empty result in the next step.
  2. 2Open this address in your browser, replacing <TOKEN> with your bot token: https://api.telegram.org/bot<TOKEN>/getUpdates
  3. 3Look for "chat":{"id":-100xxxxxxxxxx,...}. The negative number starting with -100 is your chat id. Copy it into Chat id (Channel 1).
Seeing only {"ok":true,"result":[]}? The update queue was empty. Post a fresh message in the channel now and reload the page — as admin, your bot receives every channel post. Still empty? Make sure no webhook is set for the bot (/getWebhookInfo should show an empty url) and that the bot really is admin.
Shortcut for public channels: if your channel has a public link (t.me/yourchannel), you can simply use @yourchannel as the chat id — no number hunting. The bot still needs to be admin.
3.4 — Forum topics (optional)

To post into a specific topic of a supergroup, use the format chatid:topicid, e.g. -1001234567890:2. You can see the topic id in the topic’s URL in Telegram Web.

04 / Discord

Discord setup — webhook

One minute. No bots, no permissions.

  1. 1In your Discord server, go to the target channel → Edit Channel (gear icon).
  2. 2Open Integrations → Webhooks → New Webhook.
  3. 3Name it (this becomes the sender name), pick the channel, then Copy Webhook URL.
  4. 4Paste the URL into the EA input Webhook URL (Discord Channel 1). Done.
05 / First test

Attach the EA and send your first test

The EA watches the whole account — the chart it sits on doesn’t matter.

  1. 1Drag the EA onto any chart — symbol and timeframe don’t matter.
  2. 2Make sure “Allow Algo Trading” is enabled (toolbar button) — required for WebRequest.
  3. 3Fill in your token + chat id (Telegram) and/or webhook URL (Discord) in the inputs, click OK.
  4. 4The panel appears top-left, shows ● STARTING briefly and then ● ACTIVE.
  5. 5Press TEST on the panel. A test message must arrive in every configured channel and the panel shows Last send: OK (200).
If TEST works, you are done — trades will now be published automatically. Everything below is fine-tuning.
Running 24/7: the EA only publishes while MetaTrader is open. If your terminal is off when a trade closes, your followers miss the close and the original signal never gets its result — the one thing a signal channel can’t afford. Most providers run it on a VPS (affiliate link).
06 / Channels

Channels, tiers & per-channel filters

Up to 3 Telegram chats and (Discord/Pro builds) up to 3 Discord webhooks — each with its own settings. This is how you run a VIP + free setup from one EA.

InputWhat it doesExample VIP/free setup
Delay in secondsSignals reach this channel N seconds later. Edits of the original message are never delayed.VIP channel: 0 · Free channel: 900 (15 min)
Magic filterOnly trades from these magic numbers (CSV) reach this channel. ALL = everything.Channel for your Gold EA only: 311109
Symbol filterOnly these symbols (CSV).XAUUSD,EURUSD
Direction filterAll / only BUY / only SELL.A “longs only” channel
A channel with an empty chat id / webhook is simply not used. The global filters (section 2 of the inputs) apply before the per-channel ones.
Customisation

Message templates & placeholders

Every event has its own template. Use \n for line breaks.

PlaceholderValue
[TYPE] / [SYMBOL] / [TICKET]BUY / SELL (LIMIT/STOP), symbol, ticket number
[ENTRY] / [SL] / [TP]Prices (close price on close events)
[SLPIP] / [TPPIP] / [PROFITPIP]Distances in pips (profit pips are directional)
[RRR] / [LOTSIZE] / [PROFIT] / [REASON]Risk:reward, lots, money P/L, close reason (SL/TP/manual)
[RISK] / [RISKACCOUNTPERCENTAGE]Money at risk to SL, and as % of balance
[CLOSEDLOTS] / [REMAININGLOTS]Partial closes: closed and remaining volume
[TIME]Event time (format configurable in Advanced)
[DIRECTION_EMOJI] / [RESULT_EMOJI]🟢/🔴 by direction · ✅/🔴 by profit/loss
Telegram HTML: with Use HTML formatting ON you can use <b>bold</b>, <i>italic</i>, <code>mono</code> in templates. If a template contains broken HTML, the EA automatically re-sends that message as plain text (nothing is lost) and logs a hint.
Events

What gets published and when

EventDefaultNotes
Order executedONThe “signal” message. Its message id is remembered.
Position closedONSent as a reply to the original signal (Telegram) and the original message is edited with the result — both configurable.
Partial closeONSeparate template with closed/remaining lots.
SL/TP modifiedEdit onlyBy default the original message is edited in place (“Updated: SL x TP y”). Enable Notify on modified for an extra new message.
Pending placed / deletedOFFEnable if you also want pending order flow published.
Why edit-in-place matters: your channel followers always see the current SL/TP and the final result on the original signal — no more scrolling through 5 update messages to know the state of a trade.
Power features

Buttons, screenshots & reports

Inline buttons under your signals (Telegram)

Input Telegram buttons, format: Label|https://url;Label2|https://url2 (up to 4, one per row). Example:

Join VIP|https://t.me/yourvip;Broker I use|https://your-affiliate-link.com

Buttons appear under every new message (not on edits). Entries without | or with a non-http URL are ignored with a log warning.

Chart screenshots

Per-event toggles. The EA finds an open chart of the trade’s symbol (or opens one), applies your visual settings (trade levels, history, scales) and sends the image with the message as its caption — one single post. Set the preferred timeframe in the inputs.

Daily / weekly / monthly reports
ReportWhenCovers
DailyAt the configured hour (broker time)Today’s closed trades
WeeklyConfigured weekday, same hourSince Monday 00:00
Monthly1st of the month, same hourThe full previous month

Content: trades (W/L), win rate, net P/L (incl. swap & commission), pips, profit factor, best/worst. Reports go to all channels, without delay. With no trades, nothing is sent unless Send empty reports is ON.

Your track record can pay twice. These reports build a public track record for your followers — and if your results are consistent, Axi Select allocates real capital to consistent traders, with no challenge fees. Same trading, two income streams (affiliate link).
Interface

The on-chart panel explained

ElementMeaning
● ACTIVE / ● PAUSEDWhether new trade events are being published. PAUSE stops new publications; queued messages still finish sending.
Channel rows (e.g. TG1 ✓ 12)Health per channel: green ✓ with sent count = working · red ✗ = last attempt failed (with fail count) · -- = no activity yet. The delay tag (TG2 +60s) marks delayed tiers.
Last sendResult and local time of the most recent transport call.
Sent / Failed / QueuedTotals across all channels. Queued counts messages waiting (including tier delays and retries).
TESTSends a test message to every channel immediately (ignores filters, delays and PAUSE) — your connection check.
Troubleshooting

Every error and its fix

The Experts log (Toolbox → Experts) contains the exact HTTP response — start there.

Symptom (Experts log)CauseFix
WebRequest error 4014URL not allow-listedStep 2 — add the URL, re-attach the EA
HTTP 401 UnauthorizedWrong bot tokenRe-copy from BotFather /mybots → API Token
HTTP 400 chat not foundWrong chat idRedo step 3.3 — remember the -100 prefix
HTTP 403 bot is not a member / not enough rightsBot is not admin of the channelStep 3.2 — add as admin with “Post messages”
HTTP 400 message thread not foundWrong topic id in chat:topicCheck the topic id, or remove :topic
HTTP 429 in the logTelegram/Discord rate limitNothing to do — the EA waits exactly the required time and retries automatically
HTTP 404 on DiscordWebhook deleted or URL truncatedCreate a new webhook, paste the full URL
Panel shows ✗ on one channel onlyThat channel’s credential/permission brokeThe row tells you which one — fix only that channel
Test time looks “old” on weekendsThe TEST message shows your local PC time labeled “(local)”; trade events use server time
Nothing publishes but TEST worksFiltersCheck global magic/symbol filters and per-channel filters — and that the panel is not PAUSED
Messages arrive without edits on DiscordTerminal doesn’t support PATCHKnown limitation logged once — closes fall back to new messages automatically
Still stuck? Send us the Experts log lines (Toolbox → Experts) around the failure — they contain the exact HTTP response and we can pinpoint the issue immediately. Contact support or write via the MQL5 product page.
FAQ

Hard questions, direct answers

Both. The EA watches the whole account, so every trade is captured no matter what opened it — any EA, any magic number, manual trades. Attach it to a single chart (symbol and timeframe don’t matter) and use the magic/symbol filters if you only want to publish part of the flow.

Yes — that’s what per-channel tiers are for. Configure up to 3 Telegram chats (and, on Discord/Pro builds, up to 3 Discord webhooks). Give the free channel a delay (e.g. 900 seconds = 15 minutes) and the VIP channel zero. Each channel also has its own magic, symbol and direction filters. See step 6.

They are separate builds: MT5/MT4 to Telegram and MT5/MT4 to Discord. If you publish to both platforms, the Pro build combines Telegram + Discord in a single EA (up to 6 channels) — remember it needs both URLs allow-listed in step 2.

Yes, on the original message. When you modify SL/TP or a trade closes, the EA edits the original signal in place — followers always see the current state and the final result without scrolling through update spam. Closes also arrive as a reply to the original signal on Telegram. Both behaviours are configurable in Events.

Nothing is lost. Sending is queued and asynchronous; on HTTP 429 the EA waits exactly the time the platform requests and retries automatically. Failed sends are retried, and the panel’s Queued counter shows what’s waiting.

No. It is a publishing utility — it only reads your account’s trade events and sends messages. It never opens, modifies or closes positions.

TEST bypasses filters on purpose — real events don’t. Check the global magic/symbol filters, the per-channel filters, and that the panel is not PAUSED.

Yes — download the free demo from the MQL5 product page and run it in the Strategy Tester to explore the inputs and the panel before buying.

Resources

The setup we actually run

Broker, funded program and VPS behind our own live results — the same stack this guide assumes.

Affiliate links — using them supports DoIt Trading at no cost to you.

Support & resources

Help when you need it

EmailSupport teamContact our support team.
CommunityMQL5 commentsAsk on the product page’s Comments tab on MQL5.
VideoTutorialsComing soon on YouTube.
DocsTrading InsightsBrowse Trading Insights.
Scroll to Top