- 显示:
- 334
- 等级:
- 已发布:
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
为 MetaTrader 5 集成 Telegram Bot 的专业库。向 Telegram 频道和群组发送交易信号、屏幕截图、报告和实时通知的完整解决方案。
主要功能
- 📨实时交易通知- 开仓/平仓/修改仓位的即时提醒
- 📸图表截图- 自动捕捉带有注释的图表
- 📊账户报告- 每日、每周和每月业绩报告
- ⚠️风险管理警报- 平仓、保证金水平和止损警报
- 🔄消息队列系统- 具有重试机制的可靠交付
- 👥多通道支持- 发送到多个 Telegram 聊天室/频道
- 📝模板系统- 可定制的消息模板
- 🎯智能速率限制- 防止 API 屏蔽
要求
- MetaTrader 5 2375 或更高版本
- Telegram 机器人令牌(从 @BotFather 获取)
- 聊天或频道 ID
- 互联网连接
安装
步骤 1:创建 Telegram Bot
- 打开 Telegram 并找到 @BotFather
- 发送命令 /newbot
- 选择机器人名称
- 选择用户名(必须以 "bot "结尾)
- 保存机器人之父提供的令牌
步骤 2:获取聊天 ID
- 将机器人添加到群组/频道或创建私人聊天室
- 向机器人发送任何消息
- 转到: https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
- 在回复中找到聊天 ID
第 3 步:设置 MT5
- 打开 MT5 → 服务 → 设置 → 智能交易系统
- 勾选 "允许以下 URL 的 WebRequest "框
- 添加 URL: https://api.telegram.org
- 点击确定
第 4 步:安装文件
- 将 TelegramBot.mqh 复制到 MQL5/Include/ 文件夹。
- 将 TelegramBot_Example.mq5 复制到 MQL5/Experts/ 文件夹。
- 编译这两个文件
快速启动
#include <TelegramBot.mqh> CTelegramBot bot; int OnInit() { // 初始化机器人 if(!bot.Initialize("YOUR_TOKEN"., "YOUR_CHAT_ID")) { Print("机器人初始化失败"); return INIT_FAILED; } // 发送测试信息 bot.SendMessage("机器人成功连接!"); // 发送图表截图 bot.SendChartScreenshot("当前市场形势"。); return INIT_SUCCEEDED; }
API 参考
基本消息
bool SendMessage(string text); bool SendHTMLMessage(string text); bool SendMarkdownMessage(string text); bool SendMessageToAll(string text);
交易信号
bool SendTradeSignal(ENUM_SIGNAL_TYPE type, string symbol, double price); bool SendPositionOpened(ulong ticket, string symbol, ENUM_POSITION_TYPE type, double volume, double price); bool SendPositionClosed(ulong ticket, string symbol, double profit, double commission, double swap);
媒体文件
bool SendPhoto(string file_path, string caption); bool SendDocument(string file_path, string caption); bool SendChartScreenshot(); bool SendChartScreenshot(string caption);
报告
bool SendAccountStatus(); bool SendDailyReport(); bool SendWeeklyReport(); bool SendMonthlyReport();
风险管理
bool SendRiskAlert(double drawdown_percent); bool SendMarginWarning(double margin_level); bool SendStopOutWarning();
专家顾问示例
软件包中包含一个功能齐全的专家顾问示例:
- 带通知的仓位监控
- 交易事件自动截图
- 定期更新账户状态
- 风险管理警报
- 每日报告
- 模拟交易信号
信息格式
HTML 格式(推荐)
string message = "<b> Жирный текст</b>\n"; message += "<i> Курсив</i>\n"; message += "<code> Моноширинный код</code>\n"; message += "<a href='http://example.com'> Ссылка</a>"; bot.SendHTMLMessage(message);
Markdown 格式
string message = "粗体文字{n}"; message += "斜体"。; message += "单行代码"。; message += "[链接](http://example.com)"; bot.SendMarkdownMessage(message);
性能
- 信息速度: 每分钟最多 30 条信息
- 文件大小限制: 每个文件 50MB
- 信息长度 4096 个字符
- 签名长度: 1024 个字符
- 队列大小: 100 条信息
- 平均响应时间: 50-200 毫秒
错误处理
该库包含复杂的错误处理功能:
- 连接检查
- 超限保护
- 失败时自动重试
- 失败信息队列系统
- 详细的错误记录
支持
- 文档: 源代码中包含完整的应用程序接口文档
- EA 示例: 包含所有功能的工作示例
- 调试模式: 内置调试功能,用于故障排除
版本历史
版本 1.0.0 (2024)
- 首次发布
- 完全集成 Telegram Bot API
- 支持多个频道
- 排队系统
- 模板引擎
- 风险管理警报
许可证
本程序库 "按原样 "提供,供 MetaTrader 5 使用。个人和商业用途均可免费使用。
作者
外汇交易蓝图
(Stepan Sinic)
免责声明
本软件按 "原样 "提供,不提供任何形式的担保。交易涉及重大亏损风险,并不适合所有投资者。过去的业绩并不代表未来的结果。
如果您觉得此库有用,请在 MQL5 CodeBase 上对其进行评价!
详细设置说明
在 Telegram 中创建机器人
-
找到 BotFather
- 打开 Telegram
- 在搜索中输入 @BotFather
- 按开始
-
创建新机器人
- 发送 /newbot 命令
- 输入机器人名称(例如:"我的交易机器人)
- 输入机器人的用户名(例如:my_trading_bot)
- 保存形式为123456789:ABCdefGHIjklMNOpqrsTUVwxyz
-
配置机器人
- 发送 /setprivacy,选择 DISABLE(用于在群组中工作)。
- 发送 /setjoingroups,选择 ENABLE(加入群组)
获取聊天 ID
用于私人消息:
- 与机器人开始对话
- 发送任何信息
- 在浏览器中打开: https://api.telegram.org/bot<TOKEN>/getUpdates
- 找到 "chat":{"id":123456789} - 这是你的聊天 ID
对于群组
- 将机器人添加到群组
- 在群组中发送消息
- 在浏览器中打开: https://api.telegram.org/bot<TOKEN>/getUpdates
- 查找 "chat":{"id":-123456789}--对于群组来说是负数
对于频道:
- 添加一个机器人为频道管理员
- 向频道发送消息
- 或使用 @ 用户名作为聊天 ID
常见问题解决方案
WebRequest 错误:
解决方案: 1. 工具 → 设置 → 顾问 2.允许以下网址的 WebRequest ✓ 3.添加: https://api.telegram.org 4.重新启动 MT5
机器人没有响应:
检查: 1. 令牌正确 2.聊天 ID 正确 3. 互联网连接 4. WebRequest 设置
消息无法通过:
可能原因: 1.超过 API 限制(30 条信息/分钟) 2.信息中的 HTML 格式不正确 3.信息太长(>4096 个字符)
使用示例
发送买入信号
bot.SendTradeSignal(SIGNAL_BUY, "EURUSD", 1.1850, 1.1800, 1.1900);
发送带注释的截图
string caption = "<b> Точка входа</b>\n"; caption += "Пара: EURUSD\n"; caption += "Тип: BUY\n"; caption += "Цена: 1.1850"; bot.SendChartScreenshot(caption);
发送账户状态
bot.SendAccountStatus();
// 自动发送余额、股本、保证金等信息。 设置每日报告
// 在 OnTimer() 顾问中 if(TimeHour(TimeCurrent()) == 23 && TimeMinute(TimeCurrent()) == 0) { bot.SendDailyReport(); }
缩水警报
double drawdown = CalculateDrawdown(); // 您的计算函数 if(drawdown > 20.0) // 缩编超过 20 { bot.SendRiskAlert(drawdown); }
信息结构
开仓
[POSITION OPENED] ↑ ================ Ticket: #12345678 Symbol: EURUSD Type: BUY Volume: 0.10 Price: 1.18500 Time: 2024.01.15 10:30 ================
平仓
[POSITION CLOSED] ================ Ticket: #12345678 Symbol: EURUSD Profit: +125.50 USD Commission: -2.00 Swap: -0.50 Total: +123.00 USD Time: 2024.01.15 14:45 ================
每日报告
[DAILY REPORT] ================ Date: 2024.01.15 ACCOUNT SUMMARY ---------------- Balance: 10,125.50 USD Equity: 10,250.00 USD Floating P/L: +124.50 USD TRADING ACTIVITY ---------------- Trades Today: 5 Today's Result: +250.00 USD Open Positions: 2 BOT STATISTICS ---------------- Messages Sent: 45 Signals Sent: 8 Success Rate: 98.5% ================
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/63585
MT5 to Telegram Professional Library
适用于 MetaTrader 5 的专业 Telegram Bot 集成库。向 Telegram 频道和群组发送交易信号、屏幕截图、报告和实时通知的完整解决方案。
Arbitrage Triangle EURGBP-EURUSD-GBPUSD
EA 可识别理论汇率与实际汇率之间的差异,以执行风险最小化的交易机会。