Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 885

 
AlexeyVik:

Entschuldigen Sie, dass ich darauf bestehe, aber ich möchte verstehen, warum Sie keinen Dolmetscher benutzen wollen, wenn Sie so wie ich Englisch sprechen.

Das ist die Bedeutung dieser Warnung.

Um genauer zu sein, gibt die Funktion OrderClose() bei erfolgreicher Ausführung true zurück oder false, wenn sie fehlschlägt, so dass Sie sie überprüfen müssen... wenn die Funktion erfolgreich ausgeführt wurde.

Und warum glauben Sie, dass die Warnung irgendwie mit der Bestellnummer in der Liste zusammenhängt? Ich verstehe das nicht...

Nun, mit Englisch komme ich ohne fremde Hilfe zurecht, aber mit mql4 schaffe ich es irgendwie nicht. Wie prüfe ich den Erfolg - nicht den Erfolg, welche Funktion oder was sonst? Und mit der Ticketnummer ist keine Warnung verbunden, und meine Suche nach einer Funktionsprüfung, ohne das Wesen zu verstehen, durchgeführt.

 
rapid_minus:

Nun, mit Englisch komme ich ohne Hilfe zurecht, aber mql4 ist nicht so gut. Erläutern Sie, wie man den Erfolg überprüft - nicht den Erfolg, sondern welche Funktion oder was sonst? Es handelt sich nicht um eine Warnung, sondern darum, dass ich nach der Funktionsprüfung suche, ohne das Wesen der Funktion zu verstehen.


Das ist überhaupt nicht gut. Vladimir, Sie haben einen Satz zitiert, der eine eindeutige und kristallklare Antwort auf Ihre Frage enthält, und sofort haben Sie diese Frage wiederholt und dem Antwortenden Vorwürfe gemacht:

" ... Die Funktion OrderClose() gibt true zurück, wenn sie erfolgreich ausgeführt wurde, oder false, wenn sie nicht erfolgreich war. Das ist es, was Sie überprüfen müssen...ob die Funktion erfolgreich ausgeführt wurde... "

Ist es nicht an der Zeit, darüber nachzudenken?

 
tara:

Bzzzzz... Nun, Sie haben mich gerade dazu gebracht, mql4 zu lernen.

Ich habe mir ein solches Ziel nicht gesetzt. Meine Aufgabe war rein lokal - einen funktionierenden EA nach meiner eigenen Strategie zu schreiben, wobei ich die Sprache nur im minimal erforderlichen Umfang studierte. Nachdem ich viele Beiträge in verschiedenen Foren gelesen habe, bin ich zuversichtlicher geworden, was die Realität dieser Aufgabe angeht, denn ich habe viele Händler gesehen, die EAs in mql schreiben, während sie selbst der russischen Sprache nicht mächtig sind.

Aber ich sehe, dass die Experten in diesem Thread nicht helfen wollen, sondern mich zwingen wollen, die Sprache zu lernen. Nicht wie verkündet: "Jede Frage...", sondern: "Stellen Sie keine dummen Fragen". Selbst ein Kapitel eines Lehrbuchs oder ein Beispiel, in dem diese Frage gelöst wird, ist eines großen Lehrers unwürdig, wenn man in der Nase bohrt.

Ich glaube, Sie irren sich ein wenig - Neulinge kommen nicht hierher, um Sie zu bewundern und Ihrem Wissen Beifall zu zollen.

Man muss kein Karatekämpfer sein, um einen Teenager vor Mobbing zu schützen, man muss nur ein oder zwei Dinge wissen.

ZS: Eigentlich habe ich den Eindruck, dass Sie selbst zur Beantwortung der Frage in ein Lehrbuch schauen müssen, aber nicht wollen ...

Und Gott bewahre mich davor, dass ich hier jemandem etwas vorwerfe. Ich sage nur meine Meinung, und danke, dass Sie Ihre Zeit mit mir verschwendet haben.

 

Ich musste mich selbst in die Dokumentation vertiefen, um das Unverständliche zu verstehen...

In der Dokumentation steht noch das alte Beispiel.

Allgemein gilt: Wenn eine Funktion einen Wert zurückgibt, dann muss dieser Wert einer Variablen des entsprechenden Typs zugewiesen werden und der Wert dieser Variablen muss überprüft werden.

Das geht so:

bool res;

res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40);
if(!res) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());
 
AlexeyVik:

Ich musste mich selbst in die Dokumentation vertiefen, um das Unverständliche zu verstehen...

In der Dokumentation steht noch das alte Beispiel.

Allgemein gilt: Wenn eine Funktion einen Wert zurückgibt, dann muss dieser Wert einer Variablen des entsprechenden Typs zugewiesen werden und der Wert dieser Variablen muss überprüft werden.

Das geht so:

Schauen Sie öfters vorbei. Es wird weniger Fragen geben. Besseres Wissen wird vorhanden sein.
 
AlexeyVik:

Ich musste mich selbst in die Dokumentation vertiefen, um das Unverständliche zu verstehen...

In der Dokumentation steht noch das alte Beispiel.

Allgemein gilt: Wenn eine Funktion einen Wert zurückgibt, muss dieser Wert einer Variablen des entsprechenden Typs zugewiesen werden, und der Wert dieser Variablen muss überprüft werden.

Es sieht so aus:

bool res;

res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40);
if(!res) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());

Warum sollte es eine zusätzliche Variable geben? Die direkte Kontrolle funktioniert gut:

if(!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40)) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());
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.
 
evillive:

Warum sollte es eine zusätzliche Variable geben? Die direkte Kontrolle funktioniert einwandfrei:

Die Variable muss angelegt werden, wenn der Wert einer Funktion von verschiedenen Stellen im Programm aus gesehen werden muss, damit sie nicht mehrfach aufgerufen werden muss.

Oh, mein Gott! Eine solche Debatte, und ich soll "auf den Punkt denken"...

Ich habe die Fehler behoben, die Kompilierung ergibt 0 Fehlermeldungen, 0 Warnungen, aber es gibt ein weiteres Problem (oder eher zwei): Wenn ich die erste Gelegenheit habe, einen Auftrag zu eröffnen, öffnen sie sich ununterbrochen, bis das Geld ausgeht, und dann, wenn die Schließungsbedingungen eintreten, werden sie alle geschlossen und es werden keine neuen Aufträge eröffnet, obwohl geschlossene Aufträge schließlich Gewinne bringen.

 
rapid_minus:

Oh, mein Gott! Eine solche Debatte, und ich soll ihr "auf den Grund gehen"...

Ich habe die Fehler behoben, die Zusammenstellung gibt 0 Fehlermeldungen und 0 Warnungen aus, aber es gibt ein weiteres Problem (oder eher zwei): Wenn ich die erste Gelegenheit habe, einen Auftrag zu eröffnen, öffnen sie sich ununterbrochen, bis ich kein Geld mehr habe, und dann, wenn der Auftrag geschlossen wird, schließen sie sich alle und es werden keine neuen Aufträge eröffnet, obwohl geschlossene Aufträge schließlich einen Gewinn ergeben.

Es gibt mehrere Möglichkeiten, die Anzahl der Aufträge zu begrenzen :

1) nach Menge - Zählen Sie die Anzahl der bereits geöffneten Aufträge und vergleichen Sie sie mit der vom Benutzer eingestellten Anzahl. Wenn die Anzahl der offenen Aufträge bereits eingestellt ist, dann sollten keine weiteren Aufträge geöffnet werden;

2) nach Zeit - berücksichtigen Sie die Zeit, die seit der Eröffnung der letzten Bestellung vergangen ist; wenn die vergangene Zeit kürzer ist als die angegebene, handeln Sie nicht

3) durch den Abstand in Pips zwischen dem Eröffnungskurs des vorherigen Auftrags und dem aktuellen Marktkurs (oder dem berechneten Kurs für schwebende Aufträge); wenn der Abstand geringer ist, wird nicht gehandelt.

In der Regel werden verschiedene Kombinationen dieser Beschränkungen verwendet.

 
evillive:

Es gibt mehrere Möglichkeiten, die Anzahl der Aufträge zu begrenzen:

1) nach Menge - Zählen Sie die Anzahl der bereits geöffneten Bestellungen und vergleichen Sie sie mit der vom Benutzer eingestellten Anzahl, wenn so viel geöffnet wurde wie eingestellt, öffnen Sie keine weiteren;

2) nach Zeit - berücksichtigen Sie die Zeit, die seit der Eröffnung des letzten Auftrags vergangen ist; wenn die vergangene Zeit kürzer ist als die angegebene, handeln Sie nicht

3) durch den Abstand in Pips zwischen dem Eröffnungskurs des vorherigen Auftrags und dem aktuellen Marktkurs (oder dem berechneten Kurs für schwebende Aufträge); wenn der Abstand geringer ist, wird nicht gehandelt.

In der Regel werden verschiedene Kombinationen dieser Beschränkungen verwendet.

Danke, ich werde versuchen, die Zahl 1 einzustellen.
 

Was man...

...sind alle geschlossen und es werden keine neuen Aufträge eröffnet...
Die Bedingungen sollten mindestens einmal bei jedem neuen Balken (bei der Eröffnung) oder überhaupt bei jedem Tick, je nach den Bedingungen der Strategie, auf die Möglichkeit einer neuen Handelssitzung überprüft werden.