Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1755

 
Andrey Sokolov #:

Grüße. Können Sie mir einen Tipp geben? Wie in mt5 bei der Initialisierung oder bei Tick zu definieren Prüfung?

Bislang habe ich nur OnTester() gefunden, das direkt vor OnDeinit() aufgerufen wird.

MQLInfoInteger (MQL_TESTER).

Etwa so.

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

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

Hier ist offensichtlich etwas nicht in Ordnung!

 
Alekseu Fedotov dankt Ihnen
 

Und warum?

#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 

---

Wie lässt sich ein Array am besten aus Eingabe-/Externstrings aufbauen?

 
Vitaly Muzichenko #:

Und warum?

---

Was ist der beste Weg, um ein Array aus einer Eingabe/externen Zeichenfolge zusammenzustellen?

Geben Sie die Farben als Zeichenkette in die Eingabe ein und trennen Sie die Zeichenkette dann in ein Array.

Ich möchte jetzt keinen Code für Farben einfügen, das müssen Sie schon selbst herausfinden. Ich habe eine Liste von Zeichen, die wie folgt in ein Array übertragen wird

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

Dies ist eine Liste in der Eingangsvariablen.

 
Vitaly Muzichenko #:

Und warum?

---

Wie kann man ein Array aus Eingabe-/Extern-Strings erstellen?

Ich stimme mit Alexej überein.

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 #:

Geben Sie die Farben als Zeichenkette in die Eingabe ein und unterteilen Sie die Zeichenkette dann in ein Array.

Ich möchte jetzt nicht den Code für die Farben weitergeben, das können Sie selbst herausfinden. Ich habe eine Liste von Zeichen, die wie folgt in ein Array übertragen wird

Dies ist die Liste in der Eingangsvariablen.

Ich kenne diesen Weg, aber er funktioniert nicht - es gibt keine Möglichkeit, aus der Liste auszuwählen


 

Im Moment sind die Farben so, es ist nicht bequem, und ich kann keinen Grund finden, warum ich die Farbe nicht ändern kann, nachdem ich die Einstellungen auf Standard geändert habe


 
Vitaly Muzichenko #:

Im Moment sind die Farben so, es ist nicht bequem, und ich kann keinen Grund finden, warum ich die Farbe nicht ändern kann, sobald die Parameter auf den Standard geändert werden


Dann sieht es so aus

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 #:

Das war's dann.

Toll, genau das, was ich brauche!

Ich danke Ihnen!

P.S. Habe den Grund gefunden, warum die Parameter nicht gespeichert wurden, es waren Semikolons am Ende, die beim Kopieren von der Eingabe hängen blieben - entfernt und alles funktionierte. Unaufmerksamkeit.