Warum sollte es eine zusätzliche Variable geben? Die direkte Kontrolle funktioniert gut:
Eine Variable sollte angelegt werden, wenn Sie den Wert einer Funktion an verschiedenen Stellen im Programm sehen wollen, damit Sie sie nicht mehrmals aufrufen müssen.
Die Variable soll das Verständnis für Neueinsteiger erleichtern. Ist jetzt klar, wofür sie gedacht ist?
Guten Tag. Sie müssen eine Position am Ende des Tages irgendwie schließen (rein Expert Advisor; tägliche Balken). Die Modellierung erfolgt entweder durch Öffnungen oder durch Zecken. D.h. wir geben uns entweder mit Eröffnungen zufrieden oder stolpern über den Kopf, wenn wir versuchen, die vergangenen Tage auf einem 15-Minuten-Zeitrahmen zu analysieren und den Anfang und das Ende des aktuellen Tages zu erfassen. Gibt es Lösungen für dieses Problem? Ich sehe mehrere virtuell-hypothetische Optionen:
1) Hacking - Schließen einer Position zu einem beliebigen Preis und zu einem beliebigen Zeitpunkt. Nehmen wir an, das wäre unfair, aber wir könnten die Position einfach zum gewünschten Preis schließen, ohne sie zu verderben.
2) Simulation des Öffnens und Schließens innerhalb eines Taktes. D.h. erst ein Tick Open, dann ein Tick Close.
3) Festlegung eines Auftrags, der zu einem bestimmten Zeitpunkt (z. B. am Ende des Tages) automatisch geschlossen wird.
Für jede Hilfe wären wir dankbar. Ich danke Ihnen.
Welcher Fehler tritt auf, wenn der Funktion die ID des aktuellen Diagramms, auf dem der Indikator läuft, und der Name des aktuellen Indikators, der auf dem aktuellen Diagramm läuft, übergeben wird?
tuner: Was ist der Fehler, wenn die Funktion die ID des aktuellen Charts, auf dem der Indikator läuft, und den Namen des aktuellen Indikators, der auf dem aktuellen Chart läuft, übergibt?
Wenn ich Sie richtig verstehe und Sie die Nummer des Unterfensters benötigen, in dem Ihr beigefügter Indikator-Testcode funktioniert, dann ist es aufgrund der Beschreibung der Funktion besser, ihre zweite Version anzuwenden.
Testcode (ich habe einige Zeilen zu Ihrem Code hinzugefügt):
In der Hilfe zur Funktion ChartWindowFind() gibt es noch ein gutes Beispiel zu diesem Thema (auch in Form von Kommentaren):
//+------------------------------------------------------------------+//| Сообщает номер окна графика с указанным индикатором |//+------------------------------------------------------------------+int GetIndicatorSubWindowNumber(long chartID=0,string short_name="")
{
int window=-1;
//--- if((ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE)==PROGRAM_INDICATOR)
{
//--- функция вызвана из индикатора,имя не требуется
window=ChartWindowFind();
}
else
{
//--- функция вызвана из эксперта или скрипта
window=ChartWindowFind(0,short_name);
if(window==-1) Print(__FUNCTION__+"(): Error = ",GetLastError());
}
//---return(window);
}
Wenn ich Sie richtig verstehe und Sie die Nummer des Unterfensters benötigen, in dem Ihr beigefügter Indikator-Testcode funktioniert, dann ist es aufgrund der Beschreibung der Funktion besser, ihre zweite Version anzuwenden.
Testcode (ich habe einige Zeilen zu Ihrem Code hinzugefügt):
Die Hilfe der Funktion ChartWindowFind() enthält ein gutes Beispiel zu diesem Thema (auch in Form von Kommentaren):
Danke für den Tipp, aber ich habe eine etwas andere Aufgabe, bei der die Verwendung der 2. Variante der Funktion keinen Sinn macht: Ich möchte die Anzahl der Indikatoren mit einem bestimmten Namen in allen offenen Terminal-Charts zählen. Die Aufgabe wurde bereits gelöst, aber ich wollte den resultierenden Code mitChartWindowFind() der ersten Variante vereinfachen, aber es stellte sich heraus, dass diese Funktion nicht nur mit anderen Fenstern, sondern auch mit dem aktuellen Fenster nicht funktioniert.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Warum sollte es eine zusätzliche Variable geben? Die direkte Kontrolle funktioniert gut:
Eine Variable sollte angelegt werden, wenn Sie den Wert einer Funktion an verschiedenen Stellen im Programm sehen wollen, damit Sie sie nicht mehrmals aufrufen müssen.Schauen Sie öfters vorbei. Es wird weniger Fragen geben. Es wird ein besseres Wissen geben.
Guten Tag. Sie müssen eine Position am Ende des Tages irgendwie schließen (rein Expert Advisor; tägliche Balken). Die Modellierung erfolgt entweder durch Öffnungen oder durch Zecken. D.h. wir geben uns entweder mit Eröffnungen zufrieden oder stolpern über den Kopf, wenn wir versuchen, die vergangenen Tage auf einem 15-Minuten-Zeitrahmen zu analysieren und den Anfang und das Ende des aktuellen Tages zu erfassen. Gibt es Lösungen für dieses Problem? Ich sehe mehrere virtuell-hypothetische Optionen:
1) Hacking - Schließen einer Position zu einem beliebigen Preis und zu einem beliebigen Zeitpunkt. Nehmen wir an, das wäre unfair, aber wir könnten die Position einfach zum gewünschten Preis schließen, ohne sie zu verderben.
2) Simulation des Öffnens und Schließens innerhalb eines Taktes. D.h. erst ein Tick Open, dann ein Tick Close.
3) Festlegung eines Auftrags, der zu einem bestimmten Zeitpunkt (z. B. am Ende des Tages) automatisch geschlossen wird.
Für jede Hilfe wären wir dankbar. Ich danke Ihnen.
Ein Fehler?
2015.04.13 20:51:10.710 indi AUDJPY,H1: Angeforderter Indikator-Unterrahmen: -1
Ein Fehler?
2015.04.13 20:51:10.710 indi AUDJPY,H1: Angeforderter Indikator-Unterrahmen: -1
Nein, das ist kein Fehler.
Rückgabewert.
Nummer des Teilfensters im Erfolgsfall. Null zeigt das Hauptdiagrammfenster an. Gibt im Falle eines Fehlers -1 zurück.
Nein, das ist kein Fehler.
Was ist der Fehler, wenn die Funktion die ID des aktuellen Charts, auf dem der Indikator läuft, und den Namen des aktuellen Indikators, der auf dem aktuellen Chart läuft, übergibt?
Wenn ich Sie richtig verstehe und Sie die Nummer des Unterfensters benötigen, in dem Ihr beigefügter Indikator-Testcode funktioniert, dann ist es aufgrund der Beschreibung der Funktion besser, ihre zweite Version anzuwenden.
Testcode (ich habe einige Zeilen zu Ihrem Code hinzugefügt):
In der Hilfe zur Funktion ChartWindowFind() gibt es noch ein gutes Beispiel zu diesem Thema (auch in Form von Kommentaren):
Wenn ich Sie richtig verstehe und Sie die Nummer des Unterfensters benötigen, in dem Ihr beigefügter Indikator-Testcode funktioniert, dann ist es aufgrund der Beschreibung der Funktion besser, ihre zweite Version anzuwenden.
Testcode (ich habe einige Zeilen zu Ihrem Code hinzugefügt):
Die Hilfe der Funktion ChartWindowFind() enthält ein gutes Beispiel zu diesem Thema (auch in Form von Kommentaren):
Guten Abend!
Ich kann es nicht verstehen: In der Startfunktion verlangt der Compiler "return" - die Funktion muss einen Wert zurückgeben".
Welcher Wert muss in diesem Fall zurückgegeben werden?
int start()
{
if (Orders!=0||Ord > 0)
{
CritCloseBuy();
CritCloseSell();
}
else
{
CritOpen();
}
return;
}
Könnte dies der Grund sein, warum OrderClose() keine offene Position sieht?
Guten Abend!
Ich kann es nicht verstehen: In der Startfunktion verlangt der Compiler "return" - die Funktion muss einen Wert zurückgeben".
Welcher Wert muss in diesem Fall zurückgegeben werden?
int start()
Kann dies der Grund sein, warum OrderClose() keine offene Position sieht?