Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 782
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe die Idee, eine Funktion zu schreiben, die ein Array aufnimmt und verschiebt. Die Frage ist, wie diese Funktion zu machen, so dass es selbst bestimmt, welche Art von Array eindimensional oder 2-dimensional ist, so dass ich nicht in den Argumenten jedes Mal angeben müssen, dass das Array 2-dimensional oder regelmäßig ist. Gleichzeitig möchte ich eine Vorlage anwenden, so dass ich den Typ des Arrays nicht angeben muss.
Wie kann ich es so einrichten, dass ich den Typ des Arrays nicht angeben muss?
Überladen Sie:
Überlastung zu tun:
Kann die zweite Dimension dynamisch sein?
Es ist nicht dynamisch, sondern wird einfach als empfangenes Argument geschrieben, einfach in eckige Klammern setzen.
Wie kann ich die Aufzählung der möglichen Bedingungsvarianten in einer Schleife (oder auf andere Weise) implementieren?
Zum Beispiel gibt es 2 Indikatoren MA und MACD, d.h. sie repräsentieren 3 mögliche Zustandsvarianten:
1 Option - if(iMA ...) {...};
2. Szenario - if(iMACD ...) {...};
Variante 3 - if(iMA ... iMACD ...) {...};
Es ist einfach, Eingabeparameter zu kombinieren, aber wie kann ich Bedingungen kombinieren? Dies ist besonders nützlich, wenn es mehr als 2 Indikatoren oder Formeln gibt
Geben Sie Links zu Beispielen an, falls vorhanden
Wie lässt sich die Aufzählung der möglichen Bedingungsvarianten in einer Schleife (oder auf andere Weise) implementieren?
Wenn ich es richtig verstanden habe, findet sich die Antwort in diesem Thema.
Hallo noch einmal, wieder verstehe ich etwas Offensichtliches nicht.
Wie kann man also ein Array an eine Funktion übergeben?
Irrtümer:
']' - Ausdruck erwartet
b' - Parameterumwandlung nicht erlaubt
Angenommen, ich weiß, wie ich den ersten Fehler beheben kann:
Func(b[3]);
Aber was ist in diesem Fall, wird nur das dritte Element weitergegeben? Das macht keinen Sinn.
Wie kann ich das Array als Ganzes übergeben?
Ich danke Ihnen.
Hallo noch einmal, wieder verstehe ich etwas Offensichtliches nicht.
Wie kann man also ein Array an eine Funktion übergeben?
Irrtümer:
']' - Ausdruck erwartet
b' - Parameterumwandlung nicht erlaubt
Angenommen, ich weiß, wie ich den ersten Fehler beheben kann:
Aber was ist in diesem Fall, wird nur das dritte Element weitergegeben? Das macht keinen Sinn.
Wie kann ich das Array als Ganzes übergeben?
Ich danke Ihnen.
Bitte erklären Sie die Mechanik des variablen Beginns
Dieser Link scheint Informationen zu enthalten:https://www.mql5.com/ru/docs/basis/function/events, aber ich verstehe sie entweder nicht oder habe sie nicht gefunden. Ich kann nicht verstehen, was der Standardwert am Anfang ist und wie er sich ändert, wenn die Zyklen in den Indikatoren durchlaufen werden
Ich weiß zum Beispiel, dass return() innerhalb der Funktion OnCalculate() den Rückgabewert der Variablen prev_calculated zuweist, die dann beim nächsten Aufruf von OnCalculate(), d.h. beim nächsten Tick, für die Berechnungen verwendet wird
Beschreiben Sie bitte mit denselben einfachen Worten die Mechanik des Variablenbeginns innerhalb der Funktion OnCalculate()
Guten Tag.
Können Sie mir bitte sagen, warum die Funktion OnTick mit diesem Code keine Daten in die Datei schreibt?
//=== Daten in Datei schreiben ===
h1=FileOpen("test_bar.csv",FILE_CSV|FILE_WRITE|FILE_READ,",");
FileSeek(h1, 0, SEEK_END);
FileWrite(h1, TimeToStr(Time[1],TIME_DATE|TIME_MINUTES),i,Open[1],High[1],Low[1],Close[1], Parabola57Up, ");
FileClose(h1);
Und zwar während der Geschichtsprüfung. Wenn der Expert Advisor online arbeitet, zeichnet er weiter auf.
Dankeschön
Wie kann ich die Aufzählung der möglichen Bedingungsvarianten in einer Schleife (oder auf andere Weise) implementieren?
Zum Beispiel gibt es 2 Indikatoren MA und MACD, d.h. sie repräsentieren 3 mögliche Zustandsvarianten:
1 Option - if(iMA ...) {...};
2. Szenario - if(iMACD ...) {...};
Variante 3 - if(iMA ... iMACD ...) {...};
Es ist einfach, Eingabeparameter zu kombinieren, aber wie kann ich Bedingungen kombinieren? Dies ist besonders nützlich, wenn es mehr als 2 Indikatoren oder Formeln gibt
Geben Sie mir einige Links zu Beispielen, wenn Sie welche haben.
Ich möchte eine Selbstoptimierung durchführen, aber nicht nur durch Eingabeparameter von Indikatoren.
Ich verstehe es,aber wie kann man eineSchleifevon Bedingungen machen? Es gibt beispielsweise 3 Indikatoren (die Auswahl der Eingabeparameter in der Schleife lassen wir der Einfachheit halber unberücksichtigt) und es gibt 7 mögliche Kombinationen von Bedingungen/Kombinationen
Die ersten drei Bedingungen haben beispielsweise einen Indikator
1) if(Indikator #1 ...) {...};
2) if(Indikator #2 ...) {...};
3) if(Indikator #3....) {...};
Die zweiten drei Bedingungen für zwei Indikatoren sind
4) if(#1 ... && #2 ...) {...};
5) if(#1 ... && #3 ...) {...};
6) if(#2 ... && #3 ...) {...};
Und in der letzten siebten Bedingung alle drei verfügbaren Indikatoren
7) if(#1 ... && #2 ... && #3 ...) { ...};
Und wenn es auch möglich ist, wäre es gut, die Aufzählung der logischen Bedingungen zu schleifen. Schreiben Sie zum Beispiel nicht && || > < == usw., sondern eine Schleife
. Es wäre schön, wenn wir jede mögliche Variante manuell schreiben könnten und der EA alle möglichen Varianten der Eingabeparameter, kombinierten oder individuellen Indikatoren und logischen Bedingungen kombinieren und prüfen würde.