从一个文件中自动初始化和重新初始化EA - 页 6

 
Romal001:
晚上好,告诉我测试机器人的质量有多少年,它不应该有亏损的交易??????????。如果你能回复这个请求,请以私人信息的形式发给我,提前感谢你!
鉴于历史数据的质量很差,无论其来源如何,即使是几年的数据也不是一个指标。专家顾问应该为特定的经纪人进行优化和测试,但不要忘记,"特定 "的经纪人在历史上有很多 "漏洞"。因此,测试取决于EA运行的时间框架。如果在M1-M5上,那么6-12个月就足以得出结论。如果在M15和更远的地方,我们需要12个月的时间来测试,希望历史数据的正确性。在这里,没有杜卡西普之类的东西可以拯救我们。
 
Vasiliy Sokolov:
你在这里没有推崇你的神话经验。这里很多人都有真实的交易经验,包括在FORTS上,包括使用MetaTrader 5。如果交易者在FORTS上没有钱,他们必须在FORTS上进行交易,那么他们就不能在真实市场上进行FORTS交易。

关于迈克尔的经历。

一年多前,他和我交换了服务。我为他提供了一项服务,作为回报,他为我写了一份MT5 FORTS的EA。在这一年中,有证券交易所崩溃、停电和连接故障,但他编写的机器人从未出现过任何错误。

对资金的唯一打击是交易所的服务器因交易超限而崩溃,但这是由于开发商还没有对交易服务器进行 正常的回码

我们和他讨论了这个问题,我不想在无效的请求返回代码上阻止EA,因为交易服务器,有时在正常操作中,会返回这个返回代码(代码10013)。

如果你认为这是一个臆造的问题,只停留在他的脑海中,那么请告知如何绕过它。

 
kond777:

关于迈克尔的经历。

一年多以前,他和我交换了服务。我为他提供了一项服务,作为回报,他为我写了一份MT5 FORTS的EA。在这一年中,有证券交易所崩溃、停电和连接故障,但他编写的机器人从未出现过任何错误。

对资金的唯一打击是交易所的服务器因交易超限而崩溃,但这是由于开发商还没有对交易服务器进行 正常的回码

我们和他讨论了这个问题,我不想在无效的请求返回代码上阻止EA,因为交易服务器,有时在正常操作中,会返回这个返回代码(代码10013)。

如果你认为这是一个臆造的问题,只停留在他的脑海中,那么请告知如何绕过它。

如果米哈伊尔已经说过,他在Inite的EA是愚蠢地删除订单,然后重新开始,而且这种情况在每次启动时都会发生,那么你就不需要回顾关于米哈伊尔的经验。有什么可谈的呢?

我们无法提供任何建议,因为在他和他的辩护人心中都不知道这些垃圾的全部范围。你在这里写到 "通过返回代码阻止专家顾问"。为什么要阻止它呢?你需要做正确的事情。你那里有你自己的特殊的EA编程原则(没有人看过代码,也不太可能看到),所以要自己思考如何处理自己的特殊情况。

 
Romal001:
晚上好,告诉我测试机器人的质量有多少年,它不应该有亏损的交易??????????。如果你能在私信中告诉我答案,提前感谢你
这可能是。没有亏损的交易,这是不现实的,也是可疑的。
 
Dmitry Fedoseev:

为什么要告诉我们更多关于米哈伊尔的经验,因为他自己已经告诉我们,他在Inite的EA会愚蠢地删除订单,然后重新开始,每次启动都是如此。有什么可谈的呢?

我们无法提供任何建议,因为在他和他的辩护人心中都不知道这些垃圾的全部范围。你在这里写到 "通过返回代码阻止专家顾问"。为什么要阻止它呢?你需要做正确的事情。你那里有你自己的EA编程的特殊原则(没有人看过代码,也不太可能看到),所以要自己思考如何处理你自己的特殊情况。

 
是的,成人的彩色图片是非常有力的论据。
 
Dmitry Fedoseev:

为什么要告诉我们更多关于米哈伊尔的经验,因为他自己已经告诉我们,他在Inite的EA会愚蠢地删除订单,然后重新开始,每次启动都是如此。有什么可谈的呢?

我们无法提供任何建议,因为在他和他的辩护人心中都不知道这些垃圾的全部范围。你在这里写到 "通过返回代码阻止专家顾问"。为什么要阻止它呢?你必须做正确的事情。你那里有你自己的EA编程的特殊原则(没有人看过代码,也不太可能看到),所以要自己思考如何处理你自己的特殊情况。

我不是在为谁辩护,我只是在陈述我所掌握的事实。

回到返回代码的错误上。迈克尔建议在三次请求后暂停EA,理由是这是开发商的一个疏忽。

https://www.mql5.com/ru/forum/58012/page2#comment_2017705

我和你一样,认为不值得停止EA工作者,那么你认为如何解决上面链接中提到的问题?

ФОРТС: OnTradeTransaction() коды возврата
ФОРТС: OnTradeTransaction() коды возврата
  • www.mql5.com
Сейчас, коды возврата торгового сервера функции OnTradeTransaction() выглядят так:. - Страница 2 - Категория: автоматические торговые системы
 

很明显,如果。

Когда "подглючивает" сервер МТ5 или сбой на бирже, то происходит следующее:

审查员发送命令 删除 一个已存在的订单,得到的答复是

"无效的请求"!!!!而EA不断用删除命令 "冲击 "服务器

的命令

然后你必须继续敲打。没有必要阻止专家顾问。也许错误的数量会增加,尝试的时间间隔也会增加。最简单的解决办法是进行几次尝试,然后暂停,直到下一个栏杆打开。

 
Dmitry Fedoseev:

这里已经写过了--把所有东西都重新计算一遍。即用命令分析情况。将一些数据存储在文件或任何其他方式(也许是全局变量)--这并不重要。主要的一点是,如果需要一些数据,它被存储在与订单票的绑定中,在这种情况下,不存在数据过期的问题 - 我们有订单 - 我们有数据,没有订单 - 我们没有数据。可能有数据不与具体的订单挂钩,但我们必须考虑每一种情况,这是一个可解决的问题。

清理确实是最复杂的问题。但这不是一个长期数据存储(或其过时)的问题,我们可以将数据存储在专家顾问的简单变量中(有点冒险,但只是5分钟)。这里的困难是以后如何处理它。我们可以为每个订单创建一组全局终端变量,并在其中存储开盘价。然后,当未标记的订单出现时(或在新的一天开盘时),我们查看历史上最后一个关闭的订单,根据那些可以使用的特征(例如,手数)进行匹配,并将所有全局变量从关闭的订单重置为新的订单。

谢谢你。主旨是明确的。我以为有一个简单而普遍的解决方案,适用于所有情况。
 
Andrey Khatimlianskii:

我同意前面几位发言者(几乎所有的人)的意见。

  1. 我们从市场环境中恢复我们所能做的一切。
  2. 其他的东西我们都用一个参考来存储(订单票,一天中的开始时间,等等)。
只要为每个存储变量定义一个不同的 "到期日"(不能对所有变量都一样),并且只在它没有过期的情况下加载。

在你的申请数量的例子中:只要增加一个变量--最后一天的开始时间。这一天已经改变了--计数器已被重置,新的日期已被记录。

对于重新开仓的例子:你需要决定哪些事件会使这些信息无法使用。例如,正如米哈伊尔建议的那样--如果没有立场,就忘掉一切,如果有,就认为信息是最新的。

一般来说,需要的不是一般的配方,而是具体的内容。

我明白了。

具体内容:明天我将思考如何在FORTS上飞快地抓住一个位置。事实上,我最需要的是知道一个已经清仓(以清仓价重新开仓)的头寸的真实开仓价。

FORTS的头寸是由一个(或多个)订单的交易总和获得的。清算时有一个没有票据的技术性交易,我们需要想办法确定清算前的POSITION_PRICE_OPEN价格。