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:
何も問題はありません。必要なのは、どのパラメータとステップから最適化するのかを明確にするためのテキストを追加することだけでした。
OKです。しかし、知らなかった人もいるはずです ;)
 
なぜそのような書き方をするのか、何を代入するのか 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";
できたんですね。誰が止めるんだ?私の目的は、シンプトの話をすることでした。しました。まあ、この例はちょっと残念ですが、要点は変わりません。
 

ここでは、その構造を紹介します。

doubleiLowest(string symbol,ENUM_TIMEFRAMES timeframe,int ne)

質問:ENUM_TIMEFRAMESは どのようなタイプですか?

 
Vitaly Muzichenko:

ここでは、その構造を紹介します。

doubleiLowest(string symbol,ENUM_TIMEFRAMES timeframe,int ne)

質問:ENUM_TIMEFRAMESは どのようなタイプですか?

これはenum