Fehler, Irrtümer, Fragen - Seite 814

 
paladin800:

In den externen EA-Parametern verwende ich nur den Parameter R = 1 oder 2 oder 12 oder 13 (allgemeines einfaches Beispiel). Sie können diesen Parameter in OnInit() überprüfen und einen Fehler melden, wenn ein Bürger versehentlich eine andere Nummer eingibt. Es gibt jedoch ENUM_... Typen für die Eingabe. (z.B. ENUM_MA_METHOD), wenn Sie einfach einen Wert aus dem erweiterten Fenster auswählen können.

Frage. Gibt es eine Möglichkeit, wo ich eine solche Konstruktion machen kann, so dass in externen Parametern in Analogie zu den ENUM_... nur das erscheinen, was der Programmierer beabsichtigt hat, ohne dass OnInit() überprüft werden muss. Ich habe es in der Dokumentation nicht gefunden. Wenn nicht, besteht der Wunsch, so etwas zu tun.

Das gilt auch für ENUM.

enum MyLimitedType
  {  
   Адын = 1,
   Дыва = 2,
   Трынацать = 13,
   Читырныцыть = 14,
  };
Ich habe sogar einen schmutzigen Trick mit ENUM-Doppel-Arrays mit begrenzten Schritten (Beispiel hier), aber hier kann ich nicht ohne Umwandlung in OnInit(), natürlich tun.
 
MetaDriver:

Das gilt auch für ENUM.

Ich habe mich sogar dazu entschlossen, ENUM zu verwenden, um doppelte Arrays mit begrenzten Schritten zu erstellen (Beispiel hier), aber ohne Konvertierung in OnInit() geht es natürlich nicht.
Etwa so! Danke für den Link, ich werde es selbst herausfinden.
 
paladin800:
Genau so! Danke für den Link, ich werde es selbst herausfinden.

Dies gilt auch für die Eingabe:

enum MyLimitedType
  {  
   Адын = 1,// почти Адын 
   Дыва = 2,// совсем Дыва
   Трынацать = 13,// ++ Трынацать
   Читырныцыть = 14,// Читырныцыть.--
  };

Geben Sie den Code ein und rufen Sie das Fenster auf, um zu sehen, wie die Enum-Optionen aussehen.

Der Code wird Enum-Varianten verwenden und das Eingabefenster wird Kommentare verwenden.

 

Ich habe eine Aufzählung wie diese:

enum ENUM_FIBO_LEVEL
  {
   O_0,  //0.0
   O_236,//0.236
   O_382,//0.382
   O_5,  //0.5
   O_618 //0.618
  };

ZY wenn den Enumerator-Optionen keine Werte wie MetaDriver zugewiesen werden, werden die Standardwerte von 0 an fortlaufend zugewiesen.

Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Основы языка / Операции и выражения / Операции присваивания - Документация по MQL5
 
Urain:

Dies gilt auch für die Eingabe:

Geben Sie den Code ein und rufen Sie das Fenster auf, um zu sehen, wie die Enum-Optionen aussehen.

Der Code wird Enum-Varianten verwenden und das Eingabefenster wird Kommentare verwenden.

Ja, bestätigen Sie, es funktioniert alles. :)

paladin800:
Etwa so! Danke für den Link, ich werde es selbst nachschlagen.
Viel Glück. Große Enum's (wenn nötig) versuche ich automatisch zu generieren, weil ich erstens faul bin und zweitens weniger Fehler/Typos auftreten. Insbesondere die Enum's, die von diesen Skripten generiert wurden (siehe Trailer).
Dateien:
 
Wie erfährt man in OnTesterPass, welche Parameter für die Optimierung verwendet wurden? Ich sehe nur, dass diese Parameter am Anfang der Array-Parameter der Funktion FrameInputs zurückgegeben werden, aber an welchem Punkt enden die optimierten Parameter und beginnen die konstanten Parameter?
 
marketeer:
Wie erfährt man in OnTesterPass, welche Parameter für die Optimierung verwendet wurden? Ich sehe nur, dass diese Parameter am Anfang der Array-Parameter der Funktion FrameInputs zurückgegeben werden, aber an welchem Punkt enden die optimierten Parameter und beginnen die konstanten Parameter?
Ich verstehe die Frage nicht ganz, aber ich kann eine nützliche Funktion vorschlagen - ParameterGetRange
 
Rosh:
Ich verstehe die Frage nicht ganz, aber ich kann eine nützliche Funktion vorschlagen - ParameterGetRange
Ja, das ist in Ordnung. Noch nicht in der lokalen Hilfe verfügbar.
 
Wie ich herausgefunden habe, werden die gleichen abgeschnittenen Optimierungsergebnisse an OnTesterPass übergeben wie an die Registerkarte Optimierungsergebnisse. Ich hatte gehofft, dass es zumindest auf diese Weise möglich sein würde, den vollständigen Datensatz zu erhalten. Der Antrag Nr. 459431, der im SD liegt, ist also der einzige Ausweg, falls er jemals bearbeitet wird (und wenn, dann wahrscheinlich erst nach der Weltmeisterschaft, leider).
 

Können Sie mir sagen, warum beim Abrufen eines Indikator-Handles ein Fehler auftritt, wenn der Name des aufzurufenden Indikators in einer Variablen enthalten ist?

Ich meine, es gibt keinen Fehler wie diesen:

handle=iCustom(_Symbol,tf_ind,"Name_Indicator",param_ind);

Auf diese Weise erhalten wir den Fehler 4802 (Indikator kann nicht erstellt werden):

string lnm_ind="Name_Indicator";
//---
handle=iCustom(_Symbol,tf_ind,lnm_ind,param_ind);