为什么不把输入参数放在结构中? - 页 3

 
Комбинатор:
然后用一个文件设置参数。

顺便说一句,是的。

如果有很多参数,在我看来,INI文件就是 "文件的命令"。

你可以直接使用现成的Windows函数来处理INI文件。虽然,我有自己的,自己写的。

 
Taras Slobodyanik:

所以它适用,要写那么一堆参数,只要定义好结构,把它放在输入参数里就可以了。


是的,这是正确的。

 
Alexey Volchanskiy:

是的,这是正确的。

你能给我看一个方便的例子吗?我搞不清楚你在说什么。

 
Ihor Herasko:

因此,看到两个设置窗口并不奇怪:一个标准窗口和一个新窗口?

在没有标准窗口的情况下运行EA。

 
fxsaber:

这不是这个主题的内容,因为它提到了一个mqh-file。而定义结构与编写所有字段是一样的。换句话说,这是同一件事。


我想我已经写得很清楚了,但我要用一个例子来重复。我们有一个专家顾问,它有100个输入参数,我们必须将 它们全部传递给 所有工作发生的算法类的一个实例。有两种方法。

  1. 使参数设置功能在类中得到体现。现在想象一个有100个参数的函数。顺便问一下,在MQL5中,对函数参数的数量有限制吗?
  2. 该类被定义在输入变量之后,也就是说,它们在EA中是可见的。缺点是,在类的多个实例的情况下,灵活性较差。加分项是最小的写作量。

    input double LotSize = 0.1;
    // другие 100 input переменных...
    
    #include <MyLib\MyClassEA.mqh>
    CMyClassEA MyEA;
因此,问题是如何将输入变量 传递给算法类的一个实例
 
fxsaber:

你能给我看一个方便的例子吗?我不明白我们在谈论什么。


向初始化函数传递100个参数,还是对一个带有输入参数的结构的引用,哪个更容易?

 
George Merts:

顺便说一句,是的。

如果有大量的参数,我认为INI文件只是 "医生的命令"。

你可以直接使用现成的Windows函数来处理INI文件。虽然,我也有自己的,自己写的。


关键是要留下标准优化的可能性。用ini真的可以做到吗?

 
Ihor Herasko:

这就是现在的做法。同时,专家顾问以DLL的形式附带了这样一个文件的 "编辑器",它显示一个带有标签参数的窗口。

就是说,一切皆有可能。没有人反驳这一点。另一件事是,如果它是以终端的现成功能的形式,那就很酷了。


那么你如何优化它呢?这不是我第一次问这个问题,没有人说一句话。

 
Alexey Volchanskiy:

关键是要留下标准优化的可能性。有可能用ini吗?

这是有可能的。但我不明白为什么ini。

 
fxsaber:

在没有标准窗口的情况下运行EA。


这怎么可能呢?我真的不明白这怎么可能。我知道这一招用于脚本,但不用于EA和指标。