Fehler, Irrtümer, Fragen - Seite 813

 
VNIK:
Alternativ: Erstellen Sie ein neues Thema in der Rubrik Handelssysteme mit einem Link zu dem bestehenden Thema und machen Sie dort weiter.

Danke. Ich denke an... dasselbe... wie Teil 1, Teil 2.

Vielleicht möchte es jemand Würdigeres tun... :-)

 
Rosh:
Leider gibt es diese Möglichkeit nicht.
Warum hast du es kaputt gemacht? Das war früher so. Nach dem Erscheinen von Trading Systems wurden einige Themen dorthin verschoben.
 
Ich stimmte im Forum mit Google Chrome mit Online-Übersetzung, dann ging ich zu Firefox (immer verwenden Sie es) und wieder kann ich in den gleichen Thread stimmen, ist es ein Browser-Problem oder ein Fehler der Website?
 

Frage an die Experten für Makrosubstitution...

Im Drehbuch:

double plot1[],plot2[],plot3[];

#define macr(i) ploti
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int i=0;i<3;i++)
     ArrayResize(macr(i),100);
  }

Ich muss plot1, plot2 und plot3 anstelle von macr(i) in der for-Schleife ersetzen... Nach meiner Version ist die Ersetzung wie Ploti, was überhaupt nicht nötig ist :-(

Vielen Dank im Voraus!
 
Es wird nicht funktionieren. Der MQL5-Präprozessor unterstützt keine Verkettung von Token über ##. Sie könnten eine Anregung an servicedesk schreiben. Oder verwenden Sie ein zweidimensionales Array anstelle mehrerer eindimensionaler Arrays.
 
denkir:

...

Ich brauche plot1, plot2 und plot3 als Ersatz für macr(i) in der for-Schleife ... Nach meiner Version geht die Ersetzung als Ploti, was gar nicht nötig ist :-(

Vielen Dank im Voraus!
Wie wäre es, wenn Sie es mit einem Zeiger-Array versuchen würden?
 
Frage. In dem Artikel Migration von MQL4 zu MQL5 in Tabelle "18. Zugriff auf Zeitreihen" in der Rubrik "MQL5" verwendet der Autor ein dimensionsloses Array Arr[] innerhalb von Funktionen. Ich sehe, dass die Funktion immer nur einen Wert für das Nullelement des Arrays zurückgibt. Weiß jemand, ob die Verwendung eines dimensionslosen Arrays anstelle von Arr[1] eine versteckte Bedeutung hat? In der Hilfe steht, dass Sie, wenn Sie die Größe des Arrays kennen, besser so viele Elemente angeben sollten.
 
paladin800:
Frage. In dem Artikel Migration von MQL4 zu MQL5 wird die "18. Zugriff auf Zeitreihen" in der Rubrik "MQL5" verwendet der Autor ein dimensionsloses Array Arr[] innerhalb der Funktionen. Ich sehe, dass die Funktion immer nur einen Wert für das Nullelement des Arrays zurückgibt. Weiß jemand, ob die Verwendung eines dimensionslosen Arrays anstelle von Arr[1] eine versteckte Bedeutung hat? Sie schreiben in der Hilfe, dass die Anzahl der Elemente in Kenntnis der Array-Größe angegeben werden sollte.

Es gibt sie.

In MQL5 wird dieses Array als Argument an Funktionen übergeben, die seine Größe nach ihrer eigenen Logik verwalten,

Sie verteilen nämlich die Größe automatisch neu, abhängig von den übergebenen Parametern Startpunkt und Menge der zu kopierenden Daten.

Wenn Sie ein statisches Array als Argument an die Funktion CopyXXX übergeben, erhalten Sie einen Fehler.

ZZZ Der Code prüft die Größe des Arrays und trifft dann eine Entscheidung in Abhängigkeit von der Größe, so dass die Größe höchstwahrscheinlich nicht statisch ist.

 

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() auf Korrektheit prüfen und einen Fehler melden, wenn ein Bürger versehentlich eine andere Zahl eingegeben hat. Es gibt jedoch ENUM_... Typen für die Eingabe. (z.B. ENUM_MA_METHOD), wenn wir einfach einen Wert aus dem erweiterten Fenster auswählen können.

Frage. Gibt es eine solche Option, wo es möglich ist, eine solche Konstruktion zu machen, 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.

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
paladin800:

Frage. Gibt es eine Option, wo Sie eine solche Konstruktion, so dass in externen Parametern in Analogie zu 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 Sie es nicht finden, erstellen Sie bitte ein solches Dokument.

Bitte erklären Sie das mit anderen Worten. Ich verstehe nicht, was ich meine.