π²Telegram Signal Integration
The Telegram Signal Integration is currently in beta. It is recommended to validate its behavior using a demo account before deploying it in a live trading environment.
The Telegram Signal Integration enables the automated reception and execution of trading signals from Telegram channels and groups. By connecting your Telegram account to MetaCopier via the official Telegram API, incoming messages are analyzed by an AI engine to identify actionable trading signals (e.g., open, close, modify).
Once a valid signal is detected, it is automatically executed on the linked trading account without any manual intervention. In essence, MetaCopier acts as an intelligent assistant that transforms Telegram messages into executable trading actions.
Requirements
To use the Telegram Signal Integration with MetaCopier, ensure the following:
One or more trading accounts connected to MetaCopier
A Telegram account with access to the signal providerβs channel or group
Quick Start
Step 1: Get Telegram API Credentials
To communicate with your Telegram, you need to create API credentials. Please follow the steps below:
Go to my.telegram.org and log in with your phone number
Click on "API development tools"
If you already have an API configured, proceed to step 6.
Fill in the application form:
App title: MetaCopier (or any name you prefer)
Short name: metacopier (or any name you prefer)
URL: <leave emtpy>
Platform: Desktop
Description: Trading signal integration
Click "Create application"
Copy and save your API ID and API Hash

Keep your API credentials secure. Never share them with anyone.
Step 2: Create a Telegram Account in MetaCopier
Navigate to the Telegram section in your project and find the Telegram Signal Integration section. Click the "+" button to add a new Telegram account.

A setup dialog will open. Follow the workflow:
Enter your API ID and API Hash from Step 1
Enter your phone number in international format (e.g., +1234567890)
Select the region that matches where your trading accounts are deployed
Click Save
Important: Select a region that matches where your trading accounts are deployed. For example, if your trading account is in New York, select the New York region for your Telegram account.
Step 3: Complete Verification
After saving, Telegram will send a verification code to your Telegram app. Enter the code in MetaCopier to authorize the connection.
If you have Two-Factor Authentication (2FA) enabled on your Telegram account, you'll also need to enter your 2FA password.

Once verified, a confirmation message will be displayed.

In Telegram, you will receive a notification asking you to confirm the login from the selected region. Please confirm by selecting βYes, itβs me.β

On the Telegram Signal Integration page, the status will change to βAuthorizedβ, and your available chats will be loaded.

Step 4: Add Telegram Connector to Your Trading Account
Now you need to link a Telegram chat to your trading account. Go to your Trading Account and add the "Telegram Connector" feature.
In the Telegram Connector dialog:
Select the Telegram Account you created in Step 2
Select the Chat/Channel you want to receive signals from
Select the AI Model Tier (Basic, Standard, or Pro)
Configure the connector settings (optional)
Click Save
That's it! Signals from the selected Telegram chat will now be executed on your trading account.
Multiple Connectors: You can add multiple Telegram Connectors to the same trading account to receive signals from different channels. You can also connect the same channel to multiple trading accounts.
Step 5: Protect Your Account
Following signals from untrusted sources can expose your account to significant financial risk. It is essential to understand these risks and implement appropriate safeguards.
We strongly recommend using the following features:
Risk Limiter: This is one of the most important protection tools. We recommend setting a strict limit on the account that is following the signals. The Risk Limiter allows you to automatically close all open positions if a predefined drawdown threshold is exceeded, helping to prevent excessive losses.
Max Open Positions: This feature is useful for controlling exposure by limiting the number of simultaneously open positions. It ensures that your account does not exceed a predefined level of activity or risk.
Maximum Lot Size: In the Telegram Connector, you can define a Maximum Allowed Volume to limit the lot size of each individual position. This helps ensure that no trade exceeds your predefined risk limits.
AI Signal Interpretation
Please note that the AI is intended for signal extraction and not for building strategies. If you intend to use break-even, trailing stop, risk limits, and similar features, please use the dedicated functionality provided for those purposes.
MetaCopier uses AI to interpret trading signals from Telegram messages. The AI understands various signal formats commonly used by signal providers.
Supported Signal Formats
The AI can detect signals in various formats:
Simple format:
With lot size:
Natural language:
Signal provider style:
AI Instructions
Use the AI Instructions field to provide specific instructions for better signal interpretation:
Example AI instructions:
"The signal provider uses GOLD instead of XAUUSD"
"SL/TP values are always in points, not price"
"Ignore messages from admin that contain 'announcement'"
"Volume is specified in mini lots (multiply by 0.1)"
"Only process messages that contain the π emoji"
"Use half of the lot size defined in the chat message."
AI Model Tier
When creating a Telegram Connector, you can choose the AI model tier used for signal interpretation. The tier determines the quality and accuracy of the AI engine that analyzes your Telegram messages.
Basic
Default model. Suitable for most standard signal formats.
Free
Standard
Enhanced model with better accuracy for complex signal formats.
$5/month (billed daily)
Pro
Premium model for maximum accuracy and advanced interpretation.
$10/month (billed daily)
The AI Model Tier cannot be changed after the connector is created. To switch to a different tier, you must delete the connector and create a new one.
When selecting Standard or Pro, a confirmation dialog will appear showing the cost. The charge is calculated on a daily basis (monthly price Γ· 30 days).
Daily Message Limit: Each connector has a daily AI call limit that depends on the AI model tier:
Basic β up to 100 messages per day
Standard / Pro β up to 200 messages per day
Messages beyond this limit are ignored until the counter resets at midnight (server time). Messages excluded by the Message Filters below do not count against this limit.
Message Filters (Include / Exclude)
Use Include or Exclude patterns to control which messages are sent to the AI for interpretation. Filters run before the AI call, so filtered-out messages are free: they do not consume your daily AI call quota.
Use either Include OR Exclude, not both. In the connector dialog, typing in one field automatically clears the other list. Pick the approach that best fits your chat:
Exclude β drop noisy messages (announcements, promos, off-topic chatter) and let everything else through. Good when most messages are signals.
Include β whitelist only messages matching at least one pattern and drop the rest. Good when the chat is full of noise and signals follow a recognizable pattern.
Semantics:
Patterns are case-insensitive regular expressions and use substring matching (a pattern matches if it appears anywhere in the message).
Exclude list: a message is skipped if any exclude pattern matches it.
Include list: only messages matching at least one include pattern are sent to the AI. All other messages are dropped.
Maximum 60 patterns per list. Each pattern is a separate chip in the dialog.
Invalid regex patterns are rejected at save time.
Decision table (β = sent to AI, β = skipped):
Exclude
Yes
β skipped (does not consume daily quota)
Exclude
No
β sent to AI
Include
Yes
β sent to AI
Include
No
β skipped (does not consume daily quota)
Neither
n/a
β sent to AI (no filter active)
Examples:
Exclude
announcement
Skip any message containing the word "announcement"
Exclude
^promo:
Skip messages that start with promo:
Exclude
\bgiveaway\b
Skip messages with the whole word "giveaway"
Exclude
https?://
Skip any message containing a URL
Include
\b(buy|sell)\b
Only forward messages with the whole word "buy" or "sell"
Include
signal
Only forward messages containing the word "signal"
Include
π
Only forward messages containing the bell emoji
Include
\b(EURUSD|GBPUSD|XAUUSD)\b
Only forward messages mentioning one of these specific symbols
Need a refresher on regular expressions? See the Regex cheat sheet for more examples.
Best Practices
Security
Protect your Telegram credentials:
Never share your API ID, API Hash, or verification codes
Use 2FA on your Telegram account for extra security
Performance
Choose the right region: Select the region closest to your trading account's server for lower latency
Start with a demo account: Test the integration with a demo account first to verify signals are interpreted correctly
Use AI instructions: Provide clear AI instructions to help the AI understand your signal provider's format
Monitor regularly: Check the connector status and review executed trades periodically
Multiple Signal Providers
You can subscribe to multiple signal providers by:
Creating separate Telegram Connectors for each channel
Using different magicNumber values to identify which provider triggered each trade
Troubleshooting
Telegram Account Issues
"Code Required" status won't change?
Check your Telegram app for the verification code
Enter the code exactly as received (no spaces)
The code expires after a few minutes - request a new one if needed
"Session Expired" error?
Telegram sessions can expire after inactivity
Edit the Telegram account and re-verify with a new code
Chats not loading?
Make sure the account status is "Authorized"
You must be a member of the channel/group to see it
Private channels require an invite link to join first
Connector Issues
Signals not being executed?
Check that the connector is enabled
Verify the Telegram account status is "Authorized"
Check if the action is in the allowedActions list
Review the connector's error message if status is "ERROR"
Wrong symbol being traded?
Use AI Instructions to specify symbol name mappings
Example: "GOLD means XAUUSD, US30 means DJ30"
Volume not correct?
Set volumeMode to
FIXEDand configure defaultVolume if signals don't include lot sizeSet volumeMode to
BALANCE_SCALEDand configure lotsPerThousandBalance to automatically scale volume based on account balanceSet volumeMode to
AIto let AI determine volume based on the signal (customize via AI Instructions, e.g., "use 50% of signal volume")Set volumeMode to
RISK_PERCENTand configure riskPercent to automatically size positions based on a percentage of your account balance (requires a stop loss and the account-level Risk Per Trade feature)
Before using RISK_PERCENT, you must:
Add the Risk Per Trade feature to your account. You do not need to set a risk percentage or absolute risk amount - both values can be left at
0. This disables account-level risk limiting, but the tick value service still runs in the background, which is what the Telegram connector needs for lot size calculation.Provide a tick value for each symbol you plan to trade. Two options:
Automatic (recommended): Leave Tick value automatic adjustement enabled on the account-level Risk Per Trade feature, then open and close a few trades on each symbol - the trades must have some pips of profit or loss (not zero). The system detects the tick value from live and history trades. Until the first sample is collected, the connector returns
RISK_TICK_VALUE_UNAVAILABLE.Manual: Disable Tick value automatic adjustement and enter the Tick value directly (globally or per symbol) on the account-level Risk Per Trade feature. Use this when you want to trade immediately without waiting for auto-detection, or when auto-detection is unreliable (very small or very few trades). See risk-per-trade-tick-value.md for how to calculate the tick value.
Use forceVolumeMode =
trueto always use the configured volumeMode and ignore any volume specified in the signalUse maxAllowedVolume as a safety cap for any volume mode
Use AI Instructions to explain the volume format
SL/TP not being set?
Set defaultStopLossPoints and defaultTakeProfitPoints
Use AI Instructions to clarify if values are in points or price
Frequently Asked Questions (FAQ)
Can I use the same Telegram account for multiple trading accounts? Yes. Create one Telegram account at the project level, then add multiple Telegram connectors to different trading accounts, all linked to the same Telegram account.
Does this work with private channels? Yes, as long as your Telegram account is a member of the private channel.
What happens if the signal provider sends multiple signals quickly? Each signal is processed independently. Consider using the Max Open Positions feature to limit exposure.
Can I filter which signals to trade?
Yes. Use allowedActions to restrict specific actions, and apply AI instructions to filter by keywords, emojis, or message patterns.
Is there a delay in signal execution? Signals are processed in near real-time (typically under one second). The primary latency depends on Telegramβs message delivery.
What if the AI misinterprets a signal?
Review the trade in your account logs and adjust the AI instructions to improve accuracy. You can also set allowedActions to an empty array ([]) to pause execution during testing.
Settings details
Telegram Account
apiId
number
-
Your Telegram API ID from my.telegram.org
apiHash
string
-
Your Telegram API Hash from my.telegram.org
phoneNumber
string
-
Phone number in international format (+1234567890)
regionId
number
-
Region where the Telegram client runs
includePrivateChats
boolean
false
Include private chats in the available chats list (default: only groups/channels)
Telegram Connector
telegramAccountFeatureId
UUID
-
Reference to the Telegram Account feature ID (required)
chatId
number
-
Telegram chat ID to subscribe to (required)
chatTitle
string
-
Chat title (read-only, populated automatically)
enabled
boolean
true
Enable/disable signal processing
allowedActions
array
all
Allowed actions: open, close, modify. Empty = all
aiInstructions
string
-
AI instructions for signal interpretation (max 2000 characters). Use this to customize how the AI interprets signals. The default prompt is always included. Examples: symbol mappings, volume adjustments, filtering rules
aiTier
string
BASIC
AI model tier: BASIC (free), STANDARD ($5/month), or PRO ($10/month). Can only be set on creation - cannot be changed after the connector is created
volumeMode
string
FIXED
Volume calculation mode: FIXED (use defaultVolume), BALANCE_SCALED (calculate from account balance), AI (let AI determine volume based on signal), RISK_PERCENT (calculate lot size from risk percentage of account balance - requires riskPercent, a stop loss, and the account-level Risk Per Trade feature enabled), or RISK_AMOUNT (calculate lot size from a fixed currency amount - requires riskAmount, a stop loss, and the account-level Risk Per Trade feature enabled)
forceVolumeMode
boolean
false
If true, always use volumeMode calculation and ignore any volume specified in the signal. If false, use signal volume when provided. Note: forceVolumeMode=true with volumeMode=AI falls back to defaultVolume
maxAllowedVolume
number
1.0
Maximum allowed volume safety limit (min 0.001). Applies to ALL volume modes. Calculated volume is capped to this value
defaultVolume
number
-
Default lot size if not specified in signal (min 0.001, used when volumeMode=FIXED)
lotsPerThousandBalance
number
0.01
Lots per 1000 balance (min 0.001, used when volumeMode=BALANCE_SCALED). Example: balance 10000 with value 0.01 = 0.1 lots
riskPercent
number
-
Risk per trade as percentage of account balance (0.01β100, used when volumeMode=RISK_PERCENT). Requires a stop loss (from signal or defaultStopLossPoints) and the account-level Risk Per Trade feature enabled for tick value configuration
riskAmount
number
-
Risk per trade as fixed currency amount (e.g., 100 = $100, used when volumeMode=RISK_AMOUNT). Requires a stop loss (from signal or defaultStopLossPoints) and the account-level Risk Per Trade feature enabled for tick value configuration
defaultStopLossPoints
number
-
Default SL in points if not in signal (min 0)
defaultTakeProfitPoints
number
-
Default TP in points if not in signal (min 0)
magicNumber
number
-
Magic number for positions from this connector
comment
string
-
Position comment (max 20 characters). See note below on comment behavior
messageExpiryMinutes
number
10
Maximum message age in minutes (1β10080). Messages older than this are skipped (e.g., due to network delays, Telegram outages, or server restarts). Default is 10
confidenceThreshold
number
70
AI confidence threshold (0β100). Only signals with confidence >= this threshold are executed. Lower = more signals (but more false positives), higher = fewer signals (but more reliable)
contextMessageCount
number
5
Number of recent messages included as AI context (1β10). Higher values give the AI more context for multi-message signals but consume more tokens
includePatterns
array
-
Optional list of case-insensitive regex patterns (max 60). If non-empty, only messages matching at least one pattern are sent to the AI. Substring match semantics. Mutually exclusive with excludePatterns (use one or the other, not both)
excludePatterns
array
-
Optional list of case-insensitive regex patterns (max 60). Messages matching any pattern are skipped before the AI call and do not count against the daily AI call limit. Mutually exclusive with includePatterns (use one or the other, not both)
status
string
PENDING
Connector status (read-only)
errorMessage
string
-
Error message if status is ERROR (read-only)
lastMessageAt
datetime
-
Last message processed timestamp (read-only)
Comment Truncation: MetaCopier uses the trade comment field internally to track positions opened by the Telegram connector (format: TG|messageId.tpIndex). This is required for reliable close/modify operations. Since MT4/MT5 brokers typically limit the comment field to 25β31 characters, the comment value you configure may be truncated or partially visible on the broker side. The Telegram channel name or original signal text is not included in the MT5 comment field due to these broker-imposed length constraints. Use magicNumber if you need to identify trades from a specific connector.
Authorization Status
PENDING
Waiting for initial setup
CODE_REQUIRED
Verification code sent to Telegram app
PASSWORD_REQUIRED
2FA password required
AUTHORIZED
Connected and ready
FAILED
Authorization failed
SESSION_EXPIRED
Session expired, re-authorization needed
DISCONNECTED
Disconnected from Telegram
Connector Status
PENDING
Connector created, waiting for activation
ACTIVE
Receiving and processing messages
PAUSED
Temporarily paused (enabled = false)
ERROR
Error occurred (check error message)
DISCONNECTED
Parent Telegram account disconnected
Last updated