MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1755

 
Andrey Sokolov #:

ごあいさつヒントを教えてください。mt5では、初期化時またはティック時にどのようにテストを定義するのですか?

今のところ、OnDeinit() の直前に呼ばれるOnTester()しか見つかっていません。

MQLInfoInteger(MQL_TESTER)です。

こんな感じ。

 
Nerd Trader #:
last_time = iTime(NULL, 0, 0);

  if(last_time > bar.time_open){
    bar.time_open = last_time;
    coint++;//стартовое значение -1
  }

明らかにおかしいぞ!?

 
Alekseu Fedotov ありがとうございました。
 

なぜ?

#property indicator_color1 clrIndianRed;
#property indicator_color2 clrMagenta;
#property indicator_color3 clrRed;

extern color Cl1 = clrIndianRed;
extern color Cl2 = clrMagenta;
extern color Cl3 = clrRed;

color sColor[] = {indicator_color1,indicator_color2,indicator_color3}; // Так нормально
color sColor[] = {Cl1,Cl2,Cl3}; // Так ошибки 'Cl1' - constant expression required 

---

入力/外部文字列から配列を構築する最良の方法は何ですか?

 
Vitaly Muzichenko #:

なぜ?

---

入力/外部文字列から配列を構築する最も良い方法は何ですか?

入力に色を文字列で入れ、文字列を配列に分離する。

今は色のコードを入れたくないので、自分で考えてください。こんな感じで、文字列を配列に転送したリストがあるのですが

  string s_arr[]; // В этом массиве будет перечень нужных символов
  if(StringSplit(slist, ',', s_arr) <= 0)
   {
    Print(__FUNCTION__ + " Error converting !");
    return;
   }

入力変数にリストが表示されます。

 
Vitaly Muzichenko #:

なぜ?

---

入力/外部文字列から配列を構築する方法は?

アレクセイと同じ意見です。

extern string Colors = "clrIndianRed/clrMagenta/clrRed";
color sColor[];
//+------------------------------------------------------------------+
int OnInit()
  {
   ushort sep  = StringGetCharacter("/",0);
   string tempLevel[];
   int sz1  = StringSplit(Colors,sep,tempLevel);
   ArrayResize(sColor,sz1);
   for(int i=0; i<sz1; i++)
   {
    sColor[i] = StringToColor(tempLevel[i]);Print(i," / ",sColor[i]);
   }
//---
   return(INIT_SUCCEEDED);
  }
 
Alexey Viktorov #:

入力に色を文字列で入力し、その文字列を配列に分割します。

今すぐ色のコードを渡したくないので、自分で考えてください。こんな感じで、文字列を配列に転送したリストがあるんです。

これが入力変数のリストである。

この方法は知っていますが、うまくいきません - リストから選択する方法がありません


 

今は色がこのようになっていて、不便だし、設定変更を標準に適用した後、色を変えられない理由が見つからない。


 
Vitaly Muzichenko #:

今現在、色がこのようになっていて、不便だし、パラメータ変更を標準に適用した後、色を変えられない理由が見つからない。


すると、このようになります。

extern color Cl1 = clrIndianRed;
extern color Cl2 = clrMagenta;
extern color Cl3 = clrRed;
string Colors = ColorToString(Cl1)+"/"+ColorToString(Cl2)+"/"+ColorToString(Cl3);
color sColor[];
//+------------------------------------------------------------------+
int OnInit()
  {
   ushort sep  = StringGetCharacter("/",0);
   string tempLevel[];
   int sz1  = StringSplit(Colors,sep,tempLevel);
   ArrayResize(sColor,sz1);
   for(int i=0; i<sz1; i++)
   {
    sColor[i] = StringToColor(tempLevel[i]);Print(i," / ",sColor[i]);
   }
//---
   return(INIT_SUCCEEDED);
  }
 
MakarFX #:

それでは、これでおしまいです。

素晴らしい、まさに私が必要としていたものです

ありがとうございました。

追伸:パラメータが保存されない原因を見つけました。最後にセミコロンがあり、入力からコピーするときに引っかかるのです。不注意である。