Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 25

 
fyords:

Ja, sie ist eingestellt, aber wenn sie ausgelöst wird...

Oder ein anderes Beispiel: Wir haben einen schwebenden Auftrag, dessen Preis um 1 Punkt vom aktuellen Preis abweicht, beim nächsten Tick springt der Preis nicht um 1 Punkt, sondern, sagen wir, um 3-5 Punkte, was zu einer Eröffnung zu einem falschen Preis führt. Ein offensichtliches Beispiel ist eine Lücke.

Oder vielleicht verstehe ich die Frage nicht und bin dumm.

Hier verstehe ich nicht ganz, wie OrderGetTicket funktioniert. Die Funktion gibt abwechselnd false und true zurück. Selbst wenn wir berücksichtigen, dass der Auftrag zu einem falschen Preis erteilt wurde, sollte sie einfach false zurückgeben. Aber abwechselnd ...


UPD: Im Allgemeinen war die Angelegenheit in einem vergessenen NormalizeDouble in der Preisübergabe. Wie immer:) Die Funktion selbst funktioniert einwandfrei.


 
Bitte sagen Sie mir, ob es möglich ist, Folgendes zu schreiben
 if (OrderTicket=OrderGetTicket(i)) {//Возвращает тикет соответствующего ордера и автоматически выбирает ордер

Wenn kein Auftrag ausgewählt wird, ergibt die Funktion Null?

Das heißt, wenn die gleich ist nicht doppelt, einfach, es wird eine Zuordnung hier, nicht ein Vergleich? Ist Null nicht gleichbedeutend mit Nein?

Ich habe nicht sofort eine Fehlermeldung erhalten, aber später habe ich gemerkt, dass ich nicht verstanden hatte, was ich geschrieben hatte!

 
Dimka-novitsek:
Können Sie uns bitte sagen, ob es möglich ist, Folgendes zu schreiben

Wenn kein Auftrag ausgewählt wird, ergibt die Funktion Null?

Das heißt, wenn die gleich ist nicht doppelt, einfach, es wird eine Zuordnung hier, nicht ein Vergleich? Ist Null nicht gleichbedeutend mit Nein?

Ich habe nicht sofort eine Fehlermeldung erhalten, aber später habe ich gemerkt, dass ich nicht verstanden hatte, was ich geschrieben hatte!

Der Ausdruck ist korrekt; die Funktionsbeschreibung besagt, dass sie bei einem Fehlschlag Null zurückgibt. Null für wenn ist falsch. Das Konstrukt wird also gut funktionieren.

Eine andere Sache ist, dass die Handelsfunktionalität so schnell ist, dass wir eine Order bei einem Tick gesendet haben und sie beim nächsten Tick bereits in der Historie ist, so dass dieses Konstrukt sehr oft (aber nicht immer) falsch zurückgeben wird.

Dieser Code sucht nach Aufträgen, die bereits erteilt, aber noch nicht ausgeführt worden sind. Die Funktion OnTradeTransaction() ist besser geeignet, um sie zu überwachen.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
DANKESCHÖN!!!
 
Ich habe keine Ahnung, wie man mit Klassen und virtuellen Funktionen umgeht. Ich habe gelesen, gelesen, gelesen... Schon seit einer Stunde, und nicht zum ersten Mal. Es ist irgendwie schwer, unverständlich und vor allem mit neuen und neuartigen Begriffen gespickt - man muss nur den Links folgen. Hier heißt es (Klassen und Strukturen können einen expliziten Konstruktor und Destruktor haben) siehe Konstruktoren und Destruktoren Es heißt (Konstruktor ist eine spezielle Funktion, die automatisch aufgerufen wird, wenn Sie ein Strukturobjekt oder eine Klasse erstellen, und wird normalerweise verwendet, um Klassenmitglieder zu initialisieren) Kurz gesagt, ich verstehe nicht.
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 
Dimka-novitsek:
Ich habe keine Ahnung, wie man mit Klassen und virtuellen Funktionen umgeht. Lesen, lesen, lesen, lesen. Eine Stunde lang, und nicht zum ersten Mal. Es ist irgendwie schwer, unverständlich geschrieben, und die Hauptsache ist mit neuen und neuartigen Begriffen belegt - man muss nur den Links folgen. Es heißt: (Klassen und Strukturen können einen expliziten Konstruktor und Destruktor haben) Ich werde mir Konstruktoren und Destruktoren ansehen Es heißt: (Konstruktor ist eine spezielle Funktion, die automatisch aufgerufen wird, wenn ein Strukturobjekt oder eine Klasse erstellt wird, und wird normalerweise verwendet, um Klassenmitglieder zu initialisieren) Kurz gesagt, ich verstehe nicht.

Ein Konstruktor ist eine Funktion, die automatisch aufgerufen wird, wenn ein Klassenobjekt erstellt wird, und die zur Initialisierung des Objekts dient.

Ist es klarer? Wenn nicht, bin ich machtlos.

 
Ich danke Ihnen! Also gut. Ich werde jetzt Fußball spielen gehen. Ich komme zurück, packe zusammen und frage. Ich werde fragen. Was ist eine virtuelle Funktion? Läuft er, wann er will? Wie lautet das Wort "dynamisch"?
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
  • www.mql5.com
Основы языка / Объектно-ориентированное программирование / Виртуальные функции - Документация по MQL5
 

Also. Sie besagt, dass die Wahl der Funktionsdefinition, die für die virtuelle Funktion aufgerufen werden soll, dynamisch (zur Laufzeit) erfolgt.

Die Funktionsdefinition steht in Klammern, d.h. sie befiehlt der Maschine, etwas Bestimmtes zu tun, richtig? Aber hier stellt sich heraus, dass die Maschine selbst macht, was sie will und wann sie will, genau wie mein Freund Vasya? Wirklich, ich habe den Satz schon 100 Mal gelesen, aber ich kann ihn nicht verstehen. Ich kann das nicht verstehen! Ich werde versuchen, die Beispiele sorgfältig und aufmerksam zu lesen...

Und ich habe angefangen, über die Klasse zu lesen - da habe ich angefangen, zu verstehen, dass ich über die Funktion schreibe!

 
Dimka-novitsek:

Also. Sie besagt, dass die Wahl der Funktionsdefinition, die für die virtuelle Funktion aufgerufen werden soll, dynamisch (zur Laufzeit) erfolgt.

Die Funktionsdefinition steht in Klammern, d.h. sie befiehlt der Maschine, etwas Bestimmtes zu tun, richtig? Aber hier stellt sich heraus, dass die Maschine selbst macht, was sie will und wann sie will, genau wie mein Freund Vasya? Wirklich, ich habe den Satz schon 100 Mal gelesen, aber ich kann ihn nicht verstehen. Ich könnte mir den Kopf stoßen! Ich werde versuchen, die Beispiele sorgfältig und aufmerksam zu lesen...

Und ich habe angefangen, über die Klasse zu lesen - da habe ich angefangen zu verstehen, dass ich über eine Funktion schreibe!

Wollen Sie mich auf den Arm nehmen?

Wenn Sie lernen, die richtigen Fragen zu stellen, müssen Sie die meisten davon gar nicht stellen.

Virtuelle Funktionen sind nur im Zusammenhang mit der Vererbung sinnvoll.

Der Trick bei der Vererbung ist nicht nur, dass der Code auf viele Klassen verteilt werden kann (wenn die Vererbung zunimmt),

sondern darin, dass Sie zuerst ein dynamisches Vorgängerobjekt deklarieren und es dann als Nachkomme deklarieren können.

Zum Beispiel muss ein Objekt global deklariert werden, aber zum Zeitpunkt der Deklaration ist nicht bekannt, welcher Klasse das Objekt angehören soll. Dann werden Klassen von einem gemeinsamen Vorfahren geerbt, ein dynamisches Objekt des Vorfahren wird im globalen Bereich deklariert und dann, wenn die Klasse, der das Objekt angehören soll, durch den Operator new neu definiert.

Das Wort dynamisch ist unterstrichen, weil es mit statischen Klassen nicht möglich ist, statische Klassen werden sofort und vollständig definiert.

 
OK, es geht nicht sofort ins Auge, aber etwas kommt durch. Ich danke Ihnen. Wenn Sie gestatten, werde ich diese Frage im Laufe des Gesprächs stellen.