你好,
是否有人知道MT4的EA监控账户资产并关闭所有交易,如果股票从账户高位下跌一个特定的百分比?但同样重要的是,如果止损被触及,EA将关闭所有交易,然后禁用所有EA,以便在EA交易重新启用之前不会进行进一步交易。
我在论坛上进行了搜索,但没有找到任何东西。
谢谢。
你好,
是否有人知道MT4的EA监控账户资产并关闭所有交易,如果股票从账户高位下跌一个特定的百分比?但同样重要的是,如果止损被触及,EA将关闭所有交易,然后禁用所有EA,以便在EA交易重新启用之前不会进行进一步交易。
我在论坛上进行了搜索,但没有找到任何东西。
谢谢。
AFAIK无法影响(禁用)EA内的其他EA。您可以关闭任何交易,但不告诉其他EA停止开放新交易。 (AFAIK意味着我可能是错的)一种解决方案是通过您的stoploss-EA设置一个全局变量,并让所有其他EA修改以在任何交易之前检查此变量。另一个更严格的解决方案是,在成功关闭所有未结交易并成功删除所有挂单后,使止损EA完全通过Windows-API关闭Metatrader应用程序。Originally Posted by ;
你好7位..虽然我还没有搜索过......但如果这不是很详细你可以用一些代码解释它,可以添加到这种stoploss Ea的?对于那些无法直观地管理自己的EA所有时间的人来说,这一点非常重要。在此先感谢问候Originally Posted by ;
嘿mathew ....股票尾随stoploss是一个简单的代码....只比典型的追踪止损稍微困难.....它听起来像使用全局变量,如7bit提到的,是什么最适合你的需求......它只会涉及到几行代码....../-----所有这一切,是的,一个单一的ea可以控制其他ea的......影响可能是某种东西就像禁止从生产ea的交易中进一步交易一样简单,或者它可以改变其他ea的任何或所有工作参数,例如批量大小,赢利目标,止损点,成对交易等等。关于......单个ea不必与产生ea的行业在同一台计算机上......如果您将ea在其他位置的计算机上运行,这很有用,例如if你在工作中,你可以控制家里或其他地点的电子管理......或反之亦然......这种电子管不会在网上找到...... h
全局变量怎么样?对不起,我猜我脑中有全局变量。但是,我想如果你修改每个EA,这是可能的。Originally Posted by ;
哦,没关系,我们似乎在说同样的事情。但是,这是我会做的。Originally Posted by ;
大家好,谢谢。我必须承认我的编码知识实际上是没有用的。随着可用的EA数量的增加,我一直希望有人会说这是一件容易的事情,他们知道一件事。虽然我真的只是想作为最终的失败安全EA,其中99.9%的时间安静地坐在后台(因为交易EA使用停止),但如果有谚语中的“黑天鹅” 。马修
未经测试:插入代码#define SW_SHOWNORMAL 1 #import shell32.dll int ShellExecuteA(int hWnd,string Verb,string File,string Parameter,string Path,int ShowCommand); #import** *启动一个外部程序,但不要等待它完成*void shell(string file,string parameters =){ShellExecuteA(0,open,file,parameters,NULL,SW_SHOWNORMAL); }** *立即关闭metatrader *void shutdown(){shell(taskkill,/im terminal.exe); }
如果您正在处理无法关闭的商业封闭源EA,我只会将上述代码作为最后手段。它存在一些缺陷,例如,你不能100%确信在所有未结订单和MT4关闭之间的短时间内,其中一个EA有足够的时间开启新的交易。最优雅和最简单的解决方案是,如果设置了某个全局变量,立即退出函数顶部的start()函数即可禁用EA。所有的EA都必须修改,以便在启动函数的最开始处包含它:插入代码int start(){if(GlobalVariableGet(trading_disbled)!= 0){return(0); }/这里跟着原始启动函数的其余部分}然后你的stoploss EA首先必须执行以下操作:插入代码GlobalVariableSet(trading_disabled,1); ...然后关闭所有未结交易和订单。之后,没有任何修改后的EA能够做任何*任何事情,因为它们的启动函数总是会在做任何事情之前立即返回,直到变量被删除或再次设置为0。您也可以从metatrader菜单访问和更改全局变量,以便在触发后点击几下鼠标即可重置它。Originally Posted by ;