int h = FileOpen(filename, FILE_BIN|FILE_READ|FILE_COMMON);
if(h == INVALID_HANDLE)
{
Print("Ошибка открытия файла обученной сети по индикатору >>> ",name);
writeErrorFile(program_name,program_version,"======= "+IntegerToString(bars_count-1)+" === Ошибка открытия файла обученной сети по индикатору >>> "+name);
writeOptTestFile(file_Opt_Tst,"======= "+IntegerToString(bars_count-1)+" === Ошибка открытия файла обученной сети по индикатору >>> "+name+"\n");
FileClose(h);
return(TRADESIGNAL_NO);
}
如果你用相同的EA参数进行几次优化,不同的优化结果是否一致?如果一致,那么问题就出在优化器和单通道之间的差异。如果不一致--那么问题肯定出在EA的代码上。
让我解释一下--这里的时髦写作在......。
if (condition) {
} else if (!condition) {
}
声称可以增加代码的可读性和理解性,实际上是一种邪恶的行为。
再加上你必须非常、非常小心地处理双倍的
你认为全局 EA变量会保留过去优化器运行时的数值,并被带到下一个优化器中?
是的,这就对了。我是想这么做的。
只是它不仅仅是一个全局变量,而是一个静态类成员或一个终端变量或其他东西。
此外,启动终端后立即进行的一次 测试和对同一代理进行的重复测试可能是不同的。出于同样的原因。
总而言之,你需要初始化一切,并对其进行严格的监督。
ps:不,这提醒了我。我在初始化方面没有问题,只是在构建过程中初始化静态时出现了问题。迅速得到了修复。
任何从一个运行到另一个运行的EA变量内容的转移都应该被认为是测试人员的错误,即使它涉及到终端的全局变量。
如果一个EA有多个副本在图表上实时运行,用户使用法师或其他方式识别,而优化过程意味着一个EA有多个且相互独立的运行,有相同的法师,如果不是这样,那么不仅从优化的意识形态角度来看是错误的,而且为影响优化和通过误导买方滥用市场产品提供了可能。
等待TC关于未修剪交易的报告,虽然很好奇。
不是为圣洁的盗贼而设的。
像往常一样,重点很简单--EA不是为了更快地优化而卸载。EX文件可能很大。
直到今天我才有时间来处理这个问题。我决定从小事做起。一次只做一件事。包括检查已打开的文件。代码如下。
我已经运行了优化,然后进行了一次测试。结果是,我得到了两个文件。
我在WinMerge程序中打开这两个文件。这就是我在那里看到的情况
在优化器中打开文件时有一个问题。请注意,在测试器中没有这样的错误!
优化器打开文件时有问题。请注意,在测试器中没有这样的错误!
几个核心同时打开文件。一个打开了,其余的都被搞坏了。
需要有等待的代码,或者至少是FILE_SHARE_READ 标志的代码
如果你
几个核心同时打开文件。一个人开业,其他人就会被坑。
我需要有等待的代码,或者至少有FILE_SHARE_READ 标志的代码
嗯,我没有专门为优化器写代码。预计优化器将已经意识到这种细微差别。我试着加一个标志,它不会使情况更糟。)))
如果你
既然仍然没有代码,测试条件也没有任何描述,而且你的说法明显错误,那就自己处理吧。
如果你甚至不能打开文件,这意味着专家顾问有很多问题。
你甚至隐藏了这些文件的名称。
既然仍然没有代码,测试条件也没有任何描述,而且你的说法明显错误,那就自己处理吧。
如果你甚至不能打开文件,这意味着专家顾问有很多问题。
你甚至隐藏了这些文件名。
没有代码,因为添加气球真的解决了问题。现在,优化结果 和单次运行是完全一致的。
只是我以前几乎不在EA中使用文件(至少在优化/测试过程中所有的写入/读取都被禁止),但认为优化器解决了从单个EA中访问的问题。