//--- input parameters
sinput int Param1=4; // хитрый параметр
sinput int Param2=30; // хитрый параметр
sinput bool Param3=false; // хитрый параметр
sinput long Counter=1; // а вот этот параметр мы и будем оптимизировать (синтетический счетчик)
//--- на основе Param1, Param2 и Param3 высчитаем хитрое количество проходов счетчика Counter
ParameterSetRange("Counter",true,0,0,1,1+long(Param3 ? (Param1*Param2):(Param1*2));
从这个条件中可以看出,它将在三种情况下执行。
1)测试器工作时
2)当测试器不工作时
3)视觉检测仪工作时
所以这个函数会一直工作,很可能你需要删除第二个条件,用&&连接第一个和第三个条件。
倒像是这样。
2或(1和2)。这就是我所需要的。不是在测试员,而是在视觉测试员模式。
我很抱歉,但我想我只是混淆了终端,测试了错误的代码。我的条件似乎是正常工作。
所以这个函数会一直工作,很可能你需要删除第二个条件,用&&连接第一个和第三个条件。
你的意思是,这个条件是充分的。
if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)
你的意思是,这样的条件是充分的。
if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)
如果要优化的参数的范围取决于另一个优化的参数,我如何影响它? 如果参数不合适,在oninit中调用 expertremove? 加快优化的最佳方法是什么?
看一下ParameterSetRange 和ParameterGetRange 函数。它们允许你在先前设置的非数字条件的基础上重写要枚举的参数。
例如,像这样。
注意使用sinput(静态输入)而不是input,这在GUI中给出了 "从 "和 "到 "这个参数的封锁变化。同样地,使用ParameterSetRange函数锁定的Counter参数也会随着计算极限的设置而被解锁。
你可以使用这种机制来制作非常复杂的输入条件,可以用来旋转合成计费计数器。不要忘记,参数设置功能只在OnTesterInit中工作。
目前情况:
1.我是用命令行启动终端来优化专家顾问的。
2.终端启动、优化并将结果保存在xml文件中。
3.手动关闭终端
4.我编辑ini文件(改变例如测试期)。
5.继续讨论第1点。
问题:是否有人已经能够将这一过程自动化,包括从一个给定的列表中自动选择ini文件的参数,并关闭终端?请分享您关于如何做到这一点的想法。最好的选择是提供一个现成的解决方案,使上述过程自动化。当然,有人已经在我之前想到了这一点。
雷纳特,那就为这四个人做个仓库吧,拜托了。我已经把专家顾问下载到我的笔记本电脑上,但我忘记了其中的内容。现在我作为一个简单的:)程序员坐在这里,写函数而不是调试专家顾问。
我的U盘是我们值得信赖的储存器 :)
SZY,嗯,还有不时的邮件
闪存盘是我们值得信赖的储存器 :)
ZS,有时还有邮件。
闪存驱动器 - 我认为,它们经常会损坏。
我有一个外部硬盘,每天自动同步一次(大约300G的工作文件),如果我去某个地方,把它扔到我的包里,我就很高兴了。
他们说,ssd驱动器几乎是不可破坏的。但非常昂贵。