文章 "如何采用 MQL5 创建用于 Telegram 的 bots" - 页 24 1...171819202122232425262728293031...55 新评论 thegosutrader 2020.04.17 14:27 #231 您好、 我的机器人多次发送相同的信息,您知道问题出在哪里吗? 下面是代码:<链接已移除>。 谢谢 Keith Watford 2020.04.17 14:35 #232 thegosutrader:你好我的机器人多次发送相同的信息,您知道问题出在哪里吗? 以下是代码:<链接已移除>。谢谢 请在此处附上代码,而不要链接到外部网站。 thegosutrader 2020.04.17 14:41 #233 Keith Watford:请在此处附上代码,而不是链接到外部网站。 机器人多次发送同一条信息,日志显示:"请求过多:10 次后重试","参数":{"retry_after":10}。 这是我的 mq4 文件: #include <Telegram.mqh> input string InpChannelName="@xxx";//Channel Name input string InpToken="1049045330:AxxxxxxbFxxx0-IxwKXyxxxxxxxx";//机器人令牌 CCustomBot bot; datetime time_signal=0; //int SendMessage(const string channel_name、 //const string text); //+------------------------------------------------------------------+ //| 专家初始化函数| //+------------------------------------------------------------------+ int OnInit() { time_signal=0; //--- 设置标记 bot.Token(InpToken); //--- 完成 return(INIT_SUCCEEDED); } datetime _opened_last_time = TimeCurrent() ; datetime _closed_last_time = TimeCurrent() ; //+------------------------------------------------------------------+ //| 专家去初始化函数| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| 专家勾选功能| //+------------------------------------------------------------------+ void OnTick() { string message = ""; int total=OrdersTotal(); for(int pos=0;pos<total;pos++){ // 当前订单 ----------------------- if(OrderSelect(pos,SELECT_BY_POS)==false) continue; if(OrderOpenTime() <= _opened_last_time) continue; message += StringFormat("Order opened!\r\nType: %s\r\nSymbol: %s\r\nPrice: %s\r\nSL: %s\r\nTP: %s\r\nTime: %s\r\nTicket:.%s ", order_type(), OrderSymbol(), DoubleToStr(OrderOpenPrice(),MarketInfo(OrderSymbol(),MODE_DIGITS)), DoubleToStr(OrderStopLoss(),MarketInfo(OrderSymbol(),MODE_DIGITS)), DoubleToStr(OrderTakeProfit(),MarketInfo(OrderSymbol(),MODE_DIGITS)), TimeToStr(OrderOpenTime(),TIME_MINUTES), IntegerToString(OrderTicket()) ); int res=bot.SendMessage(InpChannelName,message); if(res!=0) Print("Error: ",GetErrorDescription(res)); } bool is_closed = false; total = OrdersHistoryTotal(); for(int pos=0;pos<total;pos++){ // 历史订单----------------------- if(OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)==false) continue; if(OrderCloseTime() <= _closed_last_time) continue; printf(OrderCloseTime()); is_closed = true; message += StringFormat("Order closed!\r\nTicket: %s\r\nSymbol: %s\r\nClosing Price: %s\r\nTime: %s", IntegerToString(OrderTicket()), OrderSymbol(), DoubleToStr(OrderClosePrice(),MarketInfo(OrderSymbol(),MODE_DIGITS)), TimeToStr(OrderCloseTime(),TIME_MINUTES), DoubleToStr(order_pips(),1) ); int res=bot.SendMessage(InpChannelName,message); if(res!=0) Print("Error: ",GetErrorDescription(res)); } } double order_pips() { double pips; if(OrderType() == OP_BUY) { pips = (OrderClosePrice()-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT); } else { pips = (OrderOpenPrice()-OrderClosePrice())/MarketInfo(OrderSymbol(),MODE_POINT); } return pips/10; } string order_type_to_str(int type) { return StringSubstr(EnumToString((ENUM_ORDER_TYPE)type), 11); } string order_type () { return order_type_to_str(OrderType()); if(OrderType() == OP_BUY) return "BUY"; if(OrderType() == OP_SELL) return "SELL"; if(OrderType() == OP_BUYLIMIT) return "BUY LIMIT"; if(OrderType() == OP_SELLLIMIT) return "SELL LIMIT"; if(OrderType() == OP_BUYSTOP) return "BUYSTOP"; if(OrderType() == OP_SELLSTOP) return "SELLSTOP"; return "{err}"; } //--- 谢谢 thegosutrader 2020.04.17 17:45 #234 Antonio Vargas:你好!我设法做到了,因为它们也适用于私人频道,一切都在 Telegram.mqh 文件中,文件中有一部分是"@"所在的位置,我所做的是用"-"替换,并在将频道名称放入变量 InpChannelName 时放入以下内容"-10014749xxxxx",即机器人频道的令牌 您好、 对于想要发送到私人频道的用户,请注意以下几点 1) 将 Telegram.mqh 第 1009 行和第 1010 行的"@"替换为"-"(见附图)、 2) 在 mq4 文件中,以 -1000xxxx 开头写入您的频道标记,如下所示:InpChannelName="-10000xxxx";//Channel Name 将频道设置为私有后,您就可以收到信息了。 祝你好运 附加的文件: privatechannel.jpg 100 kb channeltoken.jpg 18 kb thegosutrader 2020.04.18 08:31 #235 您好、 对于发送的多条信息,这是我在 MT4 日志中收到的错误信息: {"ok":false, "error_code":429, "description": "Too Many Requests: retry after 11","parameters":{"retry_after":11}} 和 错误:未知错误 66965 感谢您的帮助。 Agus Wahyu Pratomo 2020.04.19 12:42 #236 thegosutrader:你好对于那些想发送到私人频道的人、1) 将 Telegram.mqh 第 1009 行和第 1010 行的"@"改为"-"(见附图)、 2) 在 mq4 文件中,以 -1000xxxx 开头写入您的频道标记,如下所示:InpChannelName="-10000xxxx";//Channel Name 将频道设置为私有后,您就可以收到信息了。祝你好运 如果我已经把"@"改成"-",设置成了私人频道,当我想发送到公共频道时,我应该再改回来吗? 谢谢 thegosutrader 2020.04.20 07:07 #237 Agus Wahyu Pratomo:那么,如果我已经将"@"改为"-",设置为私人频道,当我想发送到公共频道时,是否应该再改回来?谢谢 我想是的,但我不是编码员,所以我相信有一种方法可以同时发送到公共和私人频道... Alexandr Gavrilin 2020.04.20 12:52 #238 是否可以使用机器人从无法添加为管理员的 telegram 频道获取数据?如果可以,如何实现? Thiago Benfica Da Cruz 2020.05.05 23:18 #239 虽然是2016年的文章,但仍然非常新颖,对于那些刚刚起步的人来说......非常棒!!!! Kayode Ebenezer Adeyemi 2020.05.12 11:37 #240 你好,安德烈,我的 HTTP 请求失败了。 请帮助 谢谢 附加的文件: Screenshot_20200512-091243.jpg 339 kb 1...171819202122232425262728293031...55 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
您好、
我的机器人多次发送相同的信息,您知道问题出在哪里吗? 下面是代码:<链接已移除>。
谢谢
你好
我的机器人多次发送相同的信息,您知道问题出在哪里吗? 以下是代码:<链接已移除>。
谢谢
请在此处附上代码,而不要链接到外部网站。
请在此处附上代码,而不是链接到外部网站。
机器人多次发送同一条信息,日志显示:"请求过多:10 次后重试","参数":{"retry_after":10}。
这是我的 mq4 文件:
谢谢
你好!我设法做到了,因为它们也适用于私人频道,一切都在 Telegram.mqh 文件中,文件中有一部分是"@"所在的位置,我所做的是用"-"替换,并在将频道名称放入变量 InpChannelName 时放入以下内容"-10014749xxxxx",即机器人频道的令牌
您好、
对于想要发送到私人频道的用户,请注意以下几点
1) 将 Telegram.mqh 第 1009 行和第 1010 行的"@"替换为"-"(见附图)、
2) 在 mq4 文件中,以 -1000xxxx 开头写入您的频道标记,如下所示:InpChannelName="-10000xxxx";//Channel Name
将频道设置为私有后,您就可以收到信息了。
祝你好运
您好、
对于发送的多条信息,这是我在 MT4 日志中收到的错误信息:
{"ok":false, "error_code":429, "description": "Too Many Requests: retry after 11","parameters":{"retry_after":11}}
和
错误:未知错误 66965
感谢您的帮助。
你好
对于那些想发送到私人频道的人、
1) 将 Telegram.mqh 第 1009 行和第 1010 行的"@"改为"-"(见附图)、
2) 在 mq4 文件中,以 -1000xxxx 开头写入您的频道标记,如下所示:InpChannelName="-10000xxxx";//Channel Name
将频道设置为私有后,您就可以收到信息了。
祝你好运
如果我已经把"@"改成"-",设置成了私人频道,当我想发送到公共频道时,我应该再改回来吗?
谢谢
那么,如果我已经将"@"改为"-",设置为私人频道,当我想发送到公共频道时,是否应该再改回来?
谢谢
你好,安德烈,我的 HTTP 请求失败了。
请帮助
谢谢