build 216 bug ? isConnected() returns false but metatrader still connected - 页 3 1234 新评论 Liliput 2008.05.28 22:51 #21 edddim: 这能解决这个问题吗...? string FILE[1]; int MOVE[1]; void init() { FILE[0]=Symbol(); } int start() { //---- check connection if ( !Connection() ) return(0); //---- return(0); } bool Connection() { int d; bool connect; RefreshRates(); for ( d=0; d<ArraySize(FILE); d++) { if ( MOVE[d] != MarketInfo(FILE[d],5) ) { MOVE[d] = MarketInfo(FILE[d],5); /* if ( !connect ) */ connect=1; } } return(connect); } 谢谢你edddim! 你能用文字解释你的想法吗? ukt 2008.05.28 23:46 #22 the problem is not in my code it is in the IsConnected(). 谢谢你说明了你为什么留在infinit循环中的原因。 是的,我意识到不是你的代码--我是在推测一系列的事件,导致终端自己进入代码区,执行一些代码,从而引发了连接问题。 既然你说你确实停留在循环中,那么是不是终端不能正确地处理这个问题......谁知道呢?但除非有人公开这些想法,否则没有人会想到考虑这种情况的可能性,是吗? 再次感谢您的回答。 支持团队无法模拟你的问题--所以有时侧面的思考是有用的...... ;) Edi Dimitrovski 2008.05.29 08:43 #23 你能用文字解释一下你的想法吗? 这个想法是要被检查的,......有点复杂,因为它要检查进入的tick和时间。更多的可以用ArraySize(FILE)来检查,更准确的是检查MOVE[d]>MarketInfo(FILE[d],5)作为一组其他可能的函数,包括准确的指向变化。更简单的检查版本是,如果只是连接,可以。int incomeTime = TimeCurrent(); Sleep(1000); if ( incomeTime <= 0 ) return; RefreshRates(); if ( incomeTime >= TimeCurrent() ) return;情况是,如果超过1000个睡眠暂停将是不准确的精度,但如果更少,可能会导致收到与之前相同的时间,因为收到的时间是秒。 下一步的检查可能是,如果刻度线被改变了,就要进行后续操作。 。 这是从我的观点出发的。 [Deleted] 2008.06.01 14:45 #24 谢谢你的这个想法,Edddim。 但不幸的是,这并不能解决问题,因为这很不方便,也不太可靠。此外,它只是检查 市场是否开放,而不是检查与交易账户的连接(如果我理解你的解决方案)。MetaQuotes,我友好地要求你投入更多的精力来解决这个问题,因为这是一个关键问题,而且我不是唯一遇到这个问题的人。然而,如果你们已经在处理这个问题,请不要对我的请求感到不快。善意的问候。丹尼尔。 [Deleted] 2008.06.03 15:39 #25 今天,我在我的虚拟服务器上安装了一个观察者脚本,它告诉两个MT4站的IsConnected()状态。其中,MIG投资公司的MT4在一两次短暂的断开连接后仍停留在!isConnected()状态,尽管它确实是连接的。 亲爱的MT4开发团队,你能不能用几个不同的经纪商的MT4站做一个更大的测试设置,并反转isConnected()的状态?我非常肯定,如果你投入一些精力,你将能够重现这个问题!我相信你会的。 大多数可用的脚本和EA都依赖于IsConnected()返回正确的连接状态,一直重启MT4并不是我所满意的解决方法。 Slava 2008.06.03 15:56 #26 再一次。为了确定这个问题,你应该使用简单的专家 void start() { if(!IsConnected()) Print("Alarm!!! Connection is lost!"); } 而不是脚本或EA的无尽循环!!!!!!! 如果你的脚本报告失去了连接,但我们的EA(见上文)保持沉默,那么你的互联网有全球性的问题(例如,你的互联网供应商的最后一英里有问题)。 如果EA打印出 "警报",那么我们的连接程序就有问题。 [Deleted] 2008.06.03 16:18 #27 是的!Stringo又在回答了,非常感谢。 然而,这就是它的本质!我试着用这种简单的无循环的EA/脚本。 我非常肯定我的网络没有问题,因为它是在我的私人网络和虚拟服务器 上测试的。 问题是,我可以进行交易,一切看起来都很好,但isConnected()仍然返回FALSE。 Slava 2008.06.03 16:33 #28 交易操作初始化它自己与交易服务器的连接。 IsConnected()显示了泵的数据连接状态。 1.连接指示灯(右下角)是红色还是深色? 2.您连接到哪个经纪商? 3.你的虚拟服务器上安装了什么操作系统? [Deleted] 2008.06.03 17:32 #29 谢谢你的快速答复,我的答案在此。 1.它是绿色-红色的,像往常一样 2.米格投资 3.在我的虚拟服务器 上,安装的是Windows Server 2003。在我的家庭桌面上,偶尔会出现同样的问题 WinXP。 Ronaldo 2008.06.09 12:43 #30 stringo: 再一次。为了确定这个问题,你应该使用简单的专家 void start() { if(!IsConnected()) Print("Alarm!!! Connection is lost!"); } 而不是脚本或EA的无尽循环!!!!!!! 如果你的脚本报告失去了连接,但我们的EA(见上文)保持沉默,那么你的互联网有全球性的问题(例如,你的互联网供应商的最后一英里有问题)。 如果EA打印出 "报警",那么我们的连接程序就有问题。 我尝试了以下方法。 空白 启动()。 { 如果(IsConnected())Print("Connected!")。 如果(!IsConnected())Print("Alarm!!! Connection is lost!");} 在有连接的情况下,打印出 "连接",但当连接丢失时,EA就会失效。我认为原因是没有更多的传入点来触发代码!"IsConnected()",所以它将永远不会检测到失去连接!!!。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这能解决这个问题吗...?
谢谢你edddim!
你能用文字解释你的想法吗?
the problem is not in my code it is in the IsConnected().
谢谢你说明了你为什么留在infinit循环中的原因。
是的,我意识到不是你的代码--我是在推测一系列的事件,导致终端自己进入代码区,执行一些代码,从而引发了连接问题。
既然你说你确实停留在循环中,那么是不是终端不能正确地处理这个问题......谁知道呢?但除非有人公开这些想法,否则没有人会想到考虑这种情况的可能性,是吗?
再次感谢您的回答。
支持团队无法模拟你的问题--所以有时侧面的思考是有用的......
;)
你能用文字解释一下你的想法吗?
这个想法是要被检查的,......有点复杂,因为它要检查进入的tick和时间。更多的可以用ArraySize(FILE)来检查,更准确的是检查MOVE[d]>MarketInfo(FILE[d],5)作为一组其他可能的函数,包括准确的指向变化。更简单的检查版本是,如果只是连接,可以。
情况是,如果超过1000个睡眠暂停将是不准确的精度,但如果更少,可能会导致收到与之前相同的时间,因为收到的时间是秒。
下一步的检查可能是,如果刻度线被改变了,就要进行后续操作。。
这是从我的观点出发的。
但不幸的是,这并不能解决问题,因为这很不方便,也不太可靠。
此外,它只是检查 市场是否开放,而不是检查与交易账户的连接(如果我理解你的解决方案)。
MetaQuotes,我友好地要求你投入更多的精力来解决这个问题,因为这是一个关键问题,而且我不是唯一遇到这个问题的人。
然而,如果你们已经在处理这个问题,请不要对我的请求感到不快。
善意的问候。
丹尼尔。
今天,我在我的虚拟服务器上安装了一个观察者脚本,它告诉两个MT4站的IsConnected()状态。其中,MIG投资公司的MT4在一两次短暂的断开连接后仍停留在!isConnected()状态,尽管它确实是连接的。
亲爱的MT4开发团队,你能不能用几个不同的经纪商的MT4站做一个更大的测试设置,并反转isConnected()的状态?我非常肯定,如果你投入一些精力,你将能够重现这个问题!我相信你会的。
大多数可用的脚本和EA都依赖于IsConnected()返回正确的连接状态,一直重启MT4并不是我所满意的解决方法。
再一次。为了确定这个问题,你应该使用简单的专家
而不是脚本或EA的无尽循环!!!!!!!
如果你的脚本报告失去了连接,但我们的EA(见上文)保持沉默,那么你的互联网有全球性的问题(例如,你的互联网供应商的最后一英里有问题)。
如果EA打印出 "警报",那么我们的连接程序就有问题。
是的!Stringo又在回答了,非常感谢。
然而,这就是它的本质!我试着用这种简单的无循环的EA/脚本。
我非常肯定我的网络没有问题,因为它是在我的私人网络和虚拟服务器 上测试的。
问题是,我可以进行交易,一切看起来都很好,但isConnected()仍然返回FALSE。
交易操作初始化它自己与交易服务器的连接。
IsConnected()显示了泵的数据连接状态。
1.连接指示灯(右下角)是红色还是深色?
2.您连接到哪个经纪商?
3.你的虚拟服务器上安装了什么操作系统?
谢谢你的快速答复,我的答案在此。
1.它是绿色-红色的,像往常一样
2.米格投资
3.在我的虚拟服务器 上,安装的是Windows Server 2003。在我的家庭桌面上,偶尔会出现同样的问题 WinXP。
再一次。为了确定这个问题,你应该使用简单的专家
而不是脚本或EA的无尽循环!!!!!!!
如果你的脚本报告失去了连接,但我们的EA(见上文)保持沉默,那么你的互联网有全球性的问题(例如,你的互联网供应商的最后一英里有问题)。
如果EA打印出 "报警",那么我们的连接程序就有问题。
我尝试了以下方法。
空白 启动()。
{
如果(IsConnected())Print("Connected!")。
如果(!IsConnected())Print("Alarm!!! Connection is lost!");
}
在有连接的情况下,打印出 "连接",但当连接丢失时,EA就会失效。我认为原因是没有更多的传入点来触发代码!"IsConnected()",所以它将永远不会检测到失去连接!!!。