Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1256
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
Wie erkenne ich den Typ des Eingabeparameters?
der Compiler selbst ersetzt die Typen im Moment des Aufrufs der Schablonenfunktion, wenn ein solcher Aufruf noch nicht im Code war, dann wird der Compiler eine weitere Funktionskopie erstellen und die Typen selbst setzen - nun, als ob logisch - eine Schablone
Wenn die Frage lautet, wie der Typ in einer solchen Funktion zu definieren ist, verwenden Sie
typename
UPD: dem obigen Beispiel wurde der Parametertyp Drucker hinzugefügt:
2020.09.16 18:58:21.679 tst (EURUSD,M5) int myfunc<int,int>(int,int)
2020.09.16 18:58:21.680 tst (EURUSD,M5) val1 = 2, typenname = int
2020.09.16 18:58:21.681 tst (EURUSD,M5) val2 = 3, typenname = int
2020.09.16 18:58:21.681 tst (EURUSD,M5) 5
2020.09.16 18:58:21.681 tst (EURUSD,M5) int myfunc<double,double>(double,double)
2020.09.16 18:58:21.681 tst (EURUSD,M5) val1 = 10.0, typenname = double
2020.09.16 18:58:21.681 tst (EURUSD,M5) val2 = 30.0, typenname = double
2020.09.16 18:58:21.681 tst (EURUSD,M5) 40
UPD:__FUNCSIG__ zu diesem Beispiel hinzugefügt
Nachmittags.
Ich stehe vor einer seltsamen Sache , wenn ich einen Indikator in MQL5 schreibe (Indikator in einem separaten Unterfenster, 4 Zeilen).
Die anfänglichen Pufferbeschreibungen lauten wie folgt:
Weiter in OnInit:
Im Wesentlichen zeichnet der Indikator 4 Linien: die ersten beiden sind einfarbig, die nächsten beiden zweifarbig (sie wechseln die Farbe bei Knicken).
Die Zweifarbigkeit ist auf die Art des Zeichnens von DRAW_COLOR_LINE zurückzuführen.
Frage: die erste Zeile (Puffer 2 und 3 im obigen Code) ist perfekt gezeichnet und der gesamte Code, der für sie in OnInit geschrieben wurde, funktioniert;
D.h. anstelle des Textes, den ich im Datenfenster eingestellt habe, wird nur der Name des Indikators anstelle des Puffers angezeigt. Die Linie selbst ist zwar gezogen, aber sie ist, wie es sich gehört, vielfarbig.zweite Zeile erscheint aus irgendeinem Grund, zum Beispiel funktioniert die Zeile nicht:
Ich glaube, der Trick liegt in der Verschiebung der Nummerierung? Ich bin mir zum Beispiel nicht sicher, warum im oberen Teil des Codes, wenn ich die letzte Zeile mit der #property-Direktive deklariere, der Index 4 und nicht 5 sein sollte, da 4 Puffer bereits vorher verwendet wurden. Gibt es überhaupt eine Beziehung zwischen Zeilennummerierung bei der Deklaration mit #property und Puffer Nummerierung bei der Verknüpfung mit Arrays in OnInit?
Bitte geben Sie an, was im obigen Code falsch ist. Vielleicht kann jemand ein Beispiel für einen Indikator finden, bei dem mindestens zwei Linien mit der Zeichenmethode DRAW_COLOR_LINE.... gezeichnet werden
Eine weitere Frage in diesem Zusammenhang: Wie werden die bunten Linienpuffer miteinander verbunden? Ich meine, woher weiß der kompilierte Code, dass, wenn ich einen Wert in einen Farbpuffer eintrage, diese Farbe zum Einfärben einer Linie aus einem anderen Puffer verwendet werden soll?
Nachmittags.
Ich stehe vor einer seltsamen Sache , wenn ich einen Indikator in MQL5 schreibe (Indikator in einem separaten Unterfenster, 4 Zeilen).
Die anfänglichen Pufferbeschreibungen lauten wie folgt:
Weiter in OnInit:
Im Wesentlichen zeichnet der Indikator 4 Linien: die ersten beiden sind einfarbig, die nächsten beiden zweifarbig (sie wechseln die Farbe bei Knicken).
Die Zweifarbigkeit ist auf die Art des Zeichnens von DRAW_COLOR_LINE zurückzuführen.
Frage: die erste Zeile (Puffer 2 und 3 im obigen Code) ist perfekt gezeichnet und der gesamte Code, der für sie in OnInit geschrieben wurde, funktioniert;
D.h. anstelle des Textes, den ich im Datenfenster eingestellt habe, wird nur der Name des Indikators anstelle des Puffers angezeigt. Die Linie selbst ist zwar gezogen, aber sie ist, wie es sich gehört, vielfarbig.zweite Zeile erscheint aus irgendeinem Grund, zum Beispiel funktioniert die Zeile nicht:
Ich glaube, der Trick liegt in der Verschiebung der Nummerierung? Zum Beispiel bin ich mir nicht sicher, warum im oberen Teil des Codes, wenn ich die letzte Zeile mit der #property-Direktive deklariere, der Index 4 und nicht 5 sein sollte, da 4 Puffer bereits vorher verwendet wurden. Gibt es überhaupt eine Beziehung zwischen Zeilennummerierung bei der Deklaration mit #property und Puffer Nummerierung bei der Verknüpfung mit Arrays in OnInit?
Bitte teilen Sie mir mit, was an dem obigen Code falsch ist. Vielleicht kann jemand ein Beispiel für einen Indikator finden, bei dem mindestens zwei Linien mit der Zeichenmethode DRAW_COLOR_LINE.... gezeichnet werden
Eine weitere Frage in diesem Zusammenhang: Wie werden die bunten Linienpuffer miteinander verbunden? Ich meine, woher weiß der kompilierte Code, dass, wenn ich einen Wert in einen Farbpuffer eintrage, diese Farbe zum Einfärben einer Linie aus einem anderen Puffer verwendet werden soll?
Mappings werden anders nummeriert als Puffer.
Das sollte funktionieren.
Guten Tag zusammen!
Ich habe eine Funktion zur Änderung des Stoploss erstellt. Aber wenn es funktioniert, gibt es EURUSD,H1: OrderModify Fehler 130.
Und der Preis ist weit von dem Ort entfernt, an dem der Stoploss gesetzt werden sollte.
Hier ist die Funktion:
Ich habe eine Funktion geschrieben, um die Balkenanzahl eines Fraktals aus 3 Balken zu ermitteln. Auf der Online-Karte scheint es richtig zu sein. Aber bei der visuellen Prüfung im Prüfgerät liegt sie. Kann einer der Fachleute einen Blick auf den Code werfen und einige Fehler finden?
Ich wäre Ihnen sehr dankbar.
Guten Tag. WELCHEN CODE MUSS ICH HINZUFÜGEN, DAMIT DER INDIKATOR IM TESTER NACH EINEM MONAT NICHT MEHR FUNKTIONIERT? D.H. ICH HABE ALLES RICHTIG GESCHRIEBEN! ABER WENN ICH EINEN BACKTEST MACHE, FUNKTIONIERT ES WIEDER. (mgl4)
Hallo!
Ich wollte eine Bedingung in den Auftragsschließungszyklus amTag der Auftragseröffnung einfügen, damitdie Aufträge, die am Freitag geöffnet wurden, nicht geschlossen werden.
Guten Tag. WELCHEN CODE SOLLTE ICH HINZUFÜGEN, DAMIT DER INDIKATOR IM TESTER NACH EINEM MONAT NICHT MEHR FUNKTIONIERT? D.H. ICH HABE ALLES RICHTIG GESCHRIEBEN! ABER WENN ICH EINEN BACKTEST MACHE, FUNKTIONIERT ES WIEDER. (mgl4)
Sie müssen diesen Code nicht in OnInit, sondern in OnTick() schreiben.
Hallo!
Ich wollte eine Bedingung in den Auftragsschließungszyklus am Tag derAuftragseröffnung aufnehmen, damit die am Freitag eröffneten Aufträge nicht geschlossen werden.
Versuchen Sie es auf diese Weise: