如何确保EA只在其首次投放的图表上工作?

 

我需要使EA只在 "一个实例 "中工作。也就是说,我第一次把它附在任何图表上,它就能工作。如果我再不小心或故意将其附加到另一个图表上,第二个附件应该能识别出它已经在运行,并不做任何事情。

把标签留在一个全局变量 中可能不会起作用。如果我有两个附加的EA,我重新编译它的文本,不清楚哪一个会先用它的init工作,在那里可以创建这个全局变量。

谁能建议什么?对如何做到这一点有什么想法吗?

 

重新编译是很困难的,但可以解决,但在终端重新启动的情况下该怎么办呢?

而全局变量是不好的,因为如果终端崩溃了,之前已经把全局变量写入 文件,那么一切都会崩溃。

另外,你也可以保留一些东西的手柄。

 

TheXpert:

.... 任何东西

这就是问题所在:()
 
但只是不把EA与图表链接两次,这不可行吗?
 
Techno:
但就是不要把EA和图表链接两次,这不可能吗?

我需要一份保证书,保证我和其他人都不会意外或故意这样做;)

试想一下:EA收到 "外部 "指令来开立订单,即使多一份也是(理论上)多一份订单。

 
ForexTools:
这就是问题所在:()

不,那是实施细节,主要问题是重新启动和重新编译。

哦,有一个话题,只是需要检查一下 -- 如果之前崩溃了,例如除以0,那么EA在重启和重新编译时是否恢复了?

如果没有,那就是要走的路。

 
TheXpert:

不,那是一个实现细节,主要问题是重新加载和重新编译。


重新编译不应该是问题所在。
 
PapaYozh:

在重新编译过程中不应该出现这个问题。

怎么会这样?假设我们有三份EA(没有任何技巧--只是干净的)。你重新编译了它。"命令 "到了终端。EA开始初始化....。它们应以何种顺序被重新初始化?
 
ForexTools:

假设我们有三份EA(没有任何技巧--只是干净的)。你重新编译了它。"命令 "到了终端。EA开始初始化....。它们应以何种顺序被重新初始化?
然后发现其中一个人在交易,但在重启后,成为领导者的权利将被赋予另一个人,而第一个人将失去这个权利,所以他们是否相同有什么区别呢? 主要的是一个人在交易。使用一个全局变量,就可以了。在inite函数中为每个EA写一个随机期望值到sleep(),第一次醒来的人计算全局变量并删除它,在deinit又恢复它。第一个计数和删除的人就可以了。简而言之,你为sleep()生成一个随机数
 
ForexTools:

假设我们有三份EA(没有任何技巧--只是干净的)。你重新编译了它。"命令 "到了终端。EA开始初始化....。它们应以何种顺序被重新初始化?

而你不排除有同样的图表?也就是说,EA应该在2个具有相同符号和相同时期的图表上开始处理吗?
 
Techno:
后来发现,其中一个人交易了,但重装后,另一个人将获得领导权,而第一个人将失去这个权利,如果他们是一样的,那又有什么区别?使用一个全局变量,就可以了。在inite函数中为每个EA写一个随机期望值到sleep(),第一次醒来的人计算全局变量并删除它,在deinit又恢复它。第一个计数和删除的人就可以了。简而言之,你为sleep()生成一个随机数

顺便说一句,是的。如果有2个EA的实例是不可接受的,那么哪个EA先开始并不重要。
原因: