新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 47

 
Artyom Trishkin:

如果你在每行加入注释,会更有趣。

input    int      MetaQuotes1    =  30;         // Описание входного параметра 1
input    bool     MetaQuotes2    =  true;       // Описание входного параметра 2
input    double   MetaQuotes3    =  20.3;       // Описание входного параметра 3
input    string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4

而如果你再做一个枚举,用它来代替bool,那就更有意思了。

enum enumYN
  {
   enYes =  1,    // Да
   enNo  =  0,    // Нет
  };

input    int      MetaQuotes1    =  30;         // Описание входного параметра 1
input    enumYN   MetaQuotes2    =  enYes;      // Описание входного параметра 2
input    double   MetaQuotes3    =  20.3;       // Описание входного параметра 3
input    string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4

sinput 允许你将一个变量从优化的变量列表中排除。例如,在这种情况下,MetaQuotes4变量对于优化来说是没有必要的,它可以被排除。

enum enumYN
  {
   enYes =  1,    // Да
   enNo  =  0,    // Нет
  };

input    int      MetaQuotes1    =  30;         // Описание входного параметра 1
input    enumYN   MetaQuotes2    =  enYes;      // Описание входного параметра 2
input    double   MetaQuotes3    =  20.3;       // Описание входного параметра 3
sinput   string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4

这没有什么问题,我们只是需要添加文字,以便在优化过程中明确从哪个参数和步骤开始,到哪个参数和步骤为止。

 
Mikhail Goryunov:
这没有什么问题,所需要的是添加文字,使其在优化时清楚地知道从哪个参数和步骤开始,到哪个参数和步骤。
好的。但也有其他人不知道;)
 
为什么他们要这样写,他们分配的是什么? int tik=OrderSend
 
wishmast:
为什么他们要把这个写成一个赋值? int tik=OrderSend
因为
Возвращаемое значение

Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

然后,这个变量的值将决定你接下来要做什么。比如说

      double ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),digits);
      price=NormalizePrice(_Symbol,ask+Distance*_Point);
      t=OrderSend(_Symbol,OP_BUYSTOP,volume,price,Slippage,0,0,CommentOrder,Magic,0,clrBlue);
      if(t<0)
        {
         error=GetLastError();
         rezult=StringConcatenate(_Symbol,": error open order ",DoubleToString(volume,2)," ",TypeToStr(type)," №- ",error," ",ErrorDescription(error));
         Print(rezult);
        }
      else
        {
         tiket=t;
         rezult=StringConcatenate(_Symbol,": open order ",t," ",DoubleToString(volume,2)," ",TypeToStr(type));
         Print(rezult);
         SendNotification(rezult);
        }


....

 
Artyom Trishkin:

sinput 允许你将一个变量从要优化的变量列表中排除。例如,在这种情况下,变量MetaQuotes4不需要进行优化,可以排除。


sinput   string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4
不幸的例子,小写的参数不会以任何方式参与优化。
 
Vitalie Postolache:
不幸的例子,小写的参数不会以任何方式参与优化。
我并没有通过成功/失败来选择他们。我刚刚给你看了我上面写的代码的一个例子。这个例子很清楚。这就是我所要做的。
 
Artyom Trishkin:
我不是按成功/失败来接的。我刚刚向你展示了上述代码的一个例子。这个例子很清楚。这就是我所要做的。

完全正确,你也可以这样做。

input string   MetaQuotes4    =  "Corp";
 
Mikhail Goryunov:

完全正确,你也可以这样做

input string   MetaQuotes4    =  "Corp";
你可以。谁在阻止你?我的目的是要谈论Sinput。我做到了。好吧,这个例子有点不幸,但它并没有改变重点。
 

这里有一个构造。

doubleiLowest(string symbol,ENUM_TIMEFRAMES timeframe,int ne)

问题:ENUM_TIMEFRAMES 什么类型

 
Vitaly Muzichenko:

这里有一个构造。

doubleiLowest(string symbol,ENUM_TIMEFRAMES timeframe,int ne)

问题:ENUM_TIMEFRAMES 什么类型

这是一个枚举
原因: