- 显示:
- 241
- 等级:
- 已发布:
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
主要功能
- 📨实时交易通知- 开仓/平仓/修改的即时警报
- 📸图表截图- 自动捕获带注释的图表
- 📊帐户报告- 每日、每周和每月业绩报告
- ⚠️风险管理警报- 缩减、保证金水平和止损警告
- 消息队列系统- 具有重试机制的可靠交付
- 👥多通道支持- 广播至多个 Telegram 聊天室/频道
- 📝模板系统- 可定制的消息模板
- 🎯智能速率限制- 防止 API 节流
要求
- MetaTrader 5 2375 版或更高版本
- Telegram 机器人令牌(从 @BotFather 获取)
- 聊天 ID 或频道 ID
- 互联网连接
安装
步骤 1:创建 Telegram 机器人
- 打开 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("Failed to initialize bot"); return INIT_FAILED; } // 发送测试信息 bot.SendMessage("Bot connected successfully!"); // 发送图表截图 bot.SendChartScreenshot("Current market situation"); 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();
智能交易系统示例
软件包包括一个功能齐全的 EA 示例,可演示以下功能
- 带通知的仓位监控
- 交易事件自动截图
- 定期更新账户状态
- 风险管理警报
- 每日报告
- 模拟交易信号
信息格式
HTML 格式(推荐)
string message = "<b> Bold text</b>\n"; message += "<i> Italic text</i>\n"; message += "<code> Fixed-width code</code>\n"; message += "<a href='http://example.com'> Link</a>"; bot.SendHTMLMessage(message);
Markdown 格式
string message = "*Bold text*\n"; message += "_Italic text_\n"; message += "`Fixed-width code`\n"; message += "[Link](http://example.com)"; bot.SendMarkdownMessage(message);
性能
- 信息速率: 每分钟最多 30 条信息
- 文件大小限制: 每个文件 50MB
- 信息长度: 4096 个字符
- 标题长度: 1024 个字符
- 队列大小: 100 条信息
- 平均响应时间: 50-200 毫秒
错误处理
程序库包含全面的错误处理功能:
- 连接验证
- 速率限制保护
- 失败时自动重试
- 失败信息队列系统
- 详细的错误日志
支持
- 文档 源代码中包含完整的应用程序接口文档
- 示例 EA: 包含所有功能的工作示例
- 调试模式 内置调试以排除故障
版本历史
版本 1.0.0 (2024)
- 首次发布
- 完全集成 Telegram 机器人应用程序接口
- 多渠道支持
- 队列系统
- 模板引擎
- 风险管理警报
许可证
本库按原样提供,供 MetaTrader 5 使用。个人和商业用途均可免费使用。
作者
金融蓝图
专业交易解决方案
免责声明
本软件按 "原样 "提供,不提供任何形式的担保。交易涉及重大亏损风险,并不适合所有投资者。过去的表现并不代表未来的结果。
如果您觉得此库有用,请在 MQL5 CodeBase 上对其进行评价!
详细设置说明
创建 Telegram Bot
-
找到 BotFather
- 打开 Telegram
- 搜索 @BotFather
- 按开始
-
创建新机器人
- 发送 /newbot 命令
- 输入机器人名称(例如,"我的交易机器人)
- 输入机器人用户名(例如,my_trading_bot)
- 保存标记,如123456789:ABCdefGHIjklMNOpqrsTUVwxyz
-
配置机器人
- 发送 /setprivacy,选择 DISABLE(用于群组功能)
- 发送 /setjoingroups,选择 ENABLE(加入群组)
获取聊天 ID
对于私人信息:
- 开始与机器人对话
- 发送任何信息
- 在浏览器中打开: https://api.telegram.org/bot<TOKEN>/getUpdates
- 找到 "聊天":{"id":123456789}。- 这是您的聊天 ID
对于群组
- 将机器人添加到群组
- 在群组中发送消息
- 在浏览器中打开: https://api.telegram.org/bot<TOKEN>/getUpdates
- 查找 "chat":{"id":-123456789}- 组的负数
对于频道
- 添加机器人为频道管理员
- 向频道发送消息
- 或使用 @channelname 作为聊天 ID
常见问题故障排除
WebRequest 错误:
解决方法1.工具 → 选项 → 专家顾问 2.允许对列出的 URL 进行 WebRequest 3.添加: https://api.telegram.org 4.重新启动 MT5
机器人无响应:
检查: 1. 令牌正确性 2.聊天 ID 正确性 3.网络连接 4.网络请求设置
信息未送达:
可能的原因1.超过 API 限制(30 条信息/分钟) 2. 信息中的 HTML 格式无效 3.信息太长(>4096 个字符)
使用示例
发送买入信号
bot.SendTradeSignal(SIGNAL_BUY, "EURUSD", 1.1850, 1.1800, 1.1900);
发送带注释的屏幕截图
string caption = "<b> Entry Point</b>\n"; caption += "Pair: EURUSD\n"; caption += "Type: BUY\n"; caption += "Price: 1.1850"; bot.SendChartScreenshot(caption);
发送账户状态
bot.SendAccountStatus();
// 自动发送余额、股本、保证金等信息。 设置每日报告
// 在 EA 的 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/en/code/63587
Arbitrage Triangle EURGBP-EURUSD-GBPUSD
EA 可识别理论汇率与实际汇率之间的差异,以执行风险最小化的交易机会。
Martingale Pulse EA
SPLpulse 的 MP 是专为现代交易者设计的一款复杂且功能强大的智能交易系统。无论您是剥头皮交易者、趋势跟踪者还是反转交易者,SPLpulse 的 MP 都能将多种交易策略与机构级风险管理套件相结合,以适应您独特的交易风格。通过无与伦比的自定义和强大的自动化功能,掌控您的交易。
MT5 至 Telegram - 专业交易通知库
MT5 的完整 Telegram 集成。向 Telegram 频道发送交易信号、截图、报告和警报。包括队列系统、多通道支持和风险管理。
时间栏
一个简单的信息指示器,显示条形图关闭前的剩余时间,以及条形图打开后的时间和当前时间。