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

 

这可能是它的工作方式。

开始,在图表上创建一个全局变量 和一个对象(在图表之外的某个地方,这样就不会意外地用手删除它),并在这两个对象中 "写入 "一个共同的键(例如,通过GetTickCount获得)。

在其他图表上重新运行,检查全局变量是否存在。如果存在--在我们的图表上搜索具有相同键的对象。如果没有找到--其他图表--不工作,并发出警报说这是一次重新运行!

由于图表对象和全局变量必须在重新启动和重新编译后仍然存在--该检查将始终正确工作)。

 
ForexTools:

这可能是它的工作方式。

开始,在图表上创建一个全局变量和一个对象(在图表之外的某个地方,这样就不会意外地用手删除它),并在这两个对象中 "写入 "一个共同的键(例如,通过GetTickCount获得)。

在其他图表上重新运行,检查全局变量是否存在。如果存在--在我们的图表上搜索具有相同键的对象。如果没有找到--其他图表--不工作,并发出警报说这是一次重新运行!

由于图表对象和全局变量必须在重新启动和重新编译后仍然存在--该检查将始终正确工作)。

如果终端崩溃了,有时对象不会被保存。
 
ForexTools:

专家顾问应该只用 "一个实例 "来工作。也就是说,我第一次把它附在任何图表上,它就会工作。如果我不小心或有意将其再次附加到另一个图表上,第二个附件应该检测到它已经在运行,而不会做任何事情。

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

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


如果在初始化时打开文件进行写入,在非初始化时释放它。从逻辑上讲,一个新的EA实例不能打开一个先前被打开写入的文件。例如,如果五次迭代后,我们一直得到一个打开文件 写入的错误,这意味着EA的一个实例已经打开。

 
exhumer:
一个新的EA实例将无法打开一个之前已经打开的文件进行写入。

在终端崩溃并重新启动,该文件 将被第一个打开它的人使用,而不是被第一个重置它的人使用 :(

我再次重申:你需要一个特定的图表-- 一个特定的专家顾问。

 
ForexTools:

你的想法是不可行的。

你说它不起作用是什么意思?虽然这是一个空洞的论断。
特别是你除了一个想法(更不用说 "具体配方 "了),什么都没有

我可以从你的 "解决方案 "中推断出什么?;)

这正是我们的想法。如果你没有足够的知识来了解如何检查,那么就这样写。事实上你做到了,但你把它写成了一个主张。至少说 "你的 "解决方案 "能让我有什么法?;) "看起来完全像一个索赔。然后出于某种原因,一组琐碎的事情

"应该 "并不意味着 "将","那里 "是 "哪里"? 如果 "没有成功"

- 你怎么能对未经测试的解决方案提出建议?

听着,如果只提供行之有效的解决方案,你还会拿着棍子找根。 这是谁的问题,我的还是你的?你到底为什么要把一个想法的建议说成是一个解决方案的建议?

从我的观点来看,问题的表述是:我给你一个想法,你来测试,如果它成功了,你就通知我它成功了,以此来表达最起码的感谢。

P.S. 伙计,你应该出于好奇而研究一个chr文件,因为你假装是一个使用MT的专家。

 
TheXpert:
然后直截了当地作为储物柜归档,没有问题。
为什么不使用这个最简单的选项呢?专家顾问创建一个控制文件,并在这之前检查该文件是否存在。如果同名的文件已经存在,专家顾问将不会启动。如果EA正确退出图表,它将删除该文件。如果发生崩溃,剩余的文件会阻止任何EA实例的启动,并被手动删除,以便继续工作。
 

Candid:

这是谁的问题,我的还是你的?你到底为什么要把你的想法建议说成是对解决方案的建议?

因为这正是我在第一篇文章中所要求的--这就是为什么我把你的想法当成是这样。

你似乎假装是一个与MT合作的专家。

这就是为什么我认为许多 "想法 "的有效性,甚至是DOTO,因为他们.....。;)

如果我错怪了你--写一些EA代码,除了阻止你的第二个副本运行外,什么都不做。 检查它在重新编译和重启终端时是否真的有效,并在这里发布代码--一切都会归位;)

 
granit77:
当崩溃发生时,剩余的文件被....,封锁了。

有两个图表,其中一个有一个工作的EA持有文件,第二个有一个EA的副本由于文件被锁定而无法工作。

终端停机或关闭。

(在它上面有两个EA开始检查读取文件。是否有任何保证,真正的第一个会先抓住它,而不是上次被阻止的那个?:(

我第三次重申:我需要图表 和专家之间的联系,但不是用另一个专家顾问来阻止一个专家顾问。

 
granit77:
为什么不使用这个最简单的选项呢?
不,不,那只是在运行哪个实例无所谓的情况下。
原因: