2007年自动交易锦标赛:专家的常见错误 - 页 7

 

自8月底以来,几乎每天我都会收到一封自动的电子邮件,说专家已成功通过测试并被接受参加。

我想问一下不断自动检查同一个文件的意义,我已经一个月没有改变过这个文件了?只有在下载新版本的文件时,服务器才能不重新检查EA,尤其是在当前版本的EA被成功检查的情况下?

我并不为此感到困扰,只是想了解反复检查同一文件并向作者发出通知的意义?

 
EA测试 开始前一周,我删除了我的EA,因为由于演示的结果,我决定调整一下代码,然后(当测试开始时)我收到一条信息,说我的EA测试成功并被接受--错误--0等
我有一个问题,如果我删除了它,你在测试什么EA?
而现在我一直收到消息:

对你的EA的检查已经完成。Expert的测试报告:
-----------------------
2007.09.08 19:31 loading
invalid configuration
0 min 0 seconds
Errors: 1

Although I have not added upgraded Expert code yet.请注意。谢谢你。
 
Renat:
开。
也就是说,我已经两次收到电子邮件,说指数已经成功通过测试,我已经注册......而在第三种情况下,它说我的代码有错误......为什么我应该改变专家的代码,我已经把它上传到档案中了?
从结果来看,专家顾问已经抓到了一个追加保证金。我还不能说什么。明天早上将完成下一次检查,我们将检查结果。

我的专家顾问正在优化,等待测试结果 .........在90%的时候,专家顾问真的得到了一个保证金追缴,但很难理解它为什么能够错过之前的两次MK尝试。
 
folver:
雷纳特
开。
也就是说,我已经两次收到电子邮件,说指数已经成功通过测试,我已经注册......在第三个问题上,它说我的代码有错误......为什么我应该改变专家顾问的代码,我已经把它上传到档案中了?
从结果来看,专家顾问已经抓到了一个追加保证金。我还不能说什么。明天早上将完成下一次检查,我们将检查结果。

我的专家顾问正在优化,等待测试结果 ...我用较低质量的建模得到了更好的结果。 ......在90%的时候,专家顾问确实抓到了保证金,但很难理解它以前总是亏损两次。
显然,专家顾问一直是亏损的。然而,几天前我们开始把追加保证金显示为错误(为什么我们要接受一个保证无利可图的专家顾问),所以前两次测试是 "没有错误"。

从现在起,生成的日志数量过多将被视为一个错误。如果在8个月的标准测试中产生的日志超过64兆字节,专家顾问将不被允许参与。这一措施是被迫的,因为目前一些专家产生了数百兆的无用日志信息。由于我们是在锦标赛网站上实时发布专家顾问的日志,如此巨大的日志量是绝对不可接受的。去年,我们取消了一个参与者的资格,他的专家顾问在24小时内产生了大约30G的日志。
 
solandr:

这在原则上并不妨碍我,但我只想了解反复检查同一文件并向作者发送通知的意义?

我们几乎每天都在修复脚本,增加新类型的诊断和错误控制。这就是为什么我们定期进行全面的重新检查。只有修改过的EA在通常模式下被重新检查。
 
Renat:

从今天起,生成的日志量过大将被算作一个错误。如果在8个月的标准测试中产生超过64兆字节的日志,专家将不被允许参与。这一措施是被迫的,因为目前一些专家产生了数百兆的无用日志信息。由于我们是在锦标赛网站上实时发布专家顾问的日志,如此巨大的日志量是绝对不可接受的。去年,我们取消了一个参与者的资格,他的专家顾问在24小时内产生了大约30G的日志。
我的报告显示8个月内有249MB的日志。而且没有无用的信息,唯一显示的是修改日志和跟踪期间的订单开仓和平仓。
在终端(或代码)中是否有一个选项可以禁止输出 "无用信息"?
我认为大多数使用追踪止损的EA都有这个限制。同样,它将不得不被重新设计。这一点至少在一个月前就可以提到了吗?
 
abadan:
根据我的报告,8个月的日志是249Mb。而且没有无用的信息,那里唯一显示的是修改日志和跟踪时的开仓和平仓单。
假设修改的信息需要250字节(这甚至太多)。
因此,专家顾问在8个月内修改订单的次数超过了100万次!
这意味着每天有超过6000 次的修改,或每小时有250 次的修改。


这些都是 "有用 "的信息!
 
komposter:
阿巴丹
根据我的报告,8个月的日志是249Mb。而且没有无用的信息,那里唯一显示的是修改日志和跟踪时的开仓和平仓订单。


假设修改的信息需要250字节(这甚至太多)。
因此,专家顾问在8个月内修改订单的次数超过了100万次!
这意味着每天有超过6000 次的修改,或每小时有250 次的修改。


这些都是 "有用 "的信息!



对不起,刚才检查EA时弹出了一条信息,所以我搞混了。当然,这不是249MB,而是249kB。我几乎吓坏了自己。
 

一个小问题--如果在测试期间没有错误,专家顾问被录取,但在锦标赛期间产生错误,专家顾问会被取消资格吗?

我注意到(特别是在准备我的EA的过程中),比较非正常化的数值,例如,在追踪止损条件中,可能会给出一个OrderModify 的信号,尽管价格实际上没有变化,结果EA以相同的数值执行OrderModify(),因此错误1。

我以前没有注意到这一点,例如带有这种代码的EA在上次冠军赛时没有产生错误,但现在却出现了错误1。

                  if(OrderStopLoss()<(Bid-TrailingPoints*Point)) {
                     OrderModify(.......);
而调试打印在日志中给了我 "1.97550000 < 1.97550000"......我不知道为什么,但这种情况的出路,例如:
                  if( NormalizeDouble((Bid-TrailingPoints*Point)-OrderStopLoss(),nDigits)>0) {
                     OrderModify(.......);
,顺便说一下,我在某个地方看到了好的建议,我不记得是谁的(由Rosh的方式),类似的比较操作执行为比较归一化的结果的值差,有必要的错误。我希望它能帮助别人纠正错误。
 
它可以简单地完成。
bool  modifyResult;                    
oldSL=OrderStopLoss();
newSL=Bid-TrailingStop*Point;
if (MathAbs(newSL-oldSL)>Point) 
{
modifyResult=OrderModify(OrderTicket(),OrderOpenPrice(),NewSL,OrderTakeProfit(),0,Yellow);
if (!modifyResult) Print("TrailingStop:Ошибка модифации ",GetLastError(),"  oldSL=",oldSL,"   newSL=",newSL);
}

只有当旧值与新值相差至少一个点时,才会发生拖尾。