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

 
Alexey Viktorov:
Auf diese Weise kann jeder einen Kursstopp festlegen. Nur die Punkte werden mit _Point multipliziert und zum aktuellen Preis addiert. Aber niemand verbietet, einen bestimmten Preis zu nennen.
Wir müssen einen Stopp für alle offenen Aufträge zu einem bestimmten Preis festlegen. Wir eröffnen zum Beispiel drei Orders, und der Stoppkurs, sagen wir 1,32511, ist bereits im Expert Advisor festgelegt. Das ist es, was wir brauchen)
 
Anton Govorukhin:
Wir brauchen es, um einen Stopp für alle offenen Aufträge zu einem bestimmten Preis zu setzen. Zum Beispiel werden drei Orders eröffnet und ein Stop, zum Beispiel 1,32511, in den Expert Advisor geschrieben... So sollte es sein)
Nehmen Sie einen beliebigen EA von Kodobase, der Stops verwendet, und ändern Sie den Teil, in dem der Stop gesetzt ist. Dies ist für 15 Minuten langsame Arbeit.
 

Hallo Leute, könnt ihr mir die Logik von Server->Terminal->Advisor erklären. Ich habe diese Frage wegen der Fehlerbehandlungsfunktion im EA. Soweit ich es aus dem Tutorium verstanden habe, ist TIC: SERVER ---> überträgt Kursnotierungen ---> TERMINAL ---> übergibt die Kontrolle an EA ---> ADVISOR (verarbeiteter Tick-Zyklus) ---> kurzum rückwärts.

FRAGE: Zu Beginn, wenn der Server ein Angebot übermittelt, ist es nur ein Angebot, oder in diesem TICK-Zyklus gibt es sofort eine Daten über verschiedene Fehler auf dem Server (wenn es natürlich passiert)?

Es ist schwer zu programmieren, ohne die Logik zu verstehen

 
Evgeniy Oshurkevich:

Hallo Leute, erklärt mir die Logik von Server->Terminal->Berater. Ich habe diese Frage wegen der Fehlerbehandlungsfunktion im EA. Soweit ich es aus dem Tutorium verstanden habe, ist TIC: SERVER ---> überträgt Kursnotierungen ---> TERMINAL ---> übergibt die Kontrolle an EA ---> ADVISOR (verarbeiteter Tick-Zyklus) ---> kurzum rückwärts.

FRAGE: Zu Beginn, wenn der Server ein Angebot übermittelt, ist es nur ein Angebot, oder in diesem TICK-Zyklus gibt es sofort eine Daten über verschiedene Fehler auf dem Server (wenn es natürlich passiert)?

Es ist schwer zu programmieren, ohne die Logik zu verstehen

Fehler treten unabhängig von den Zecken auf.
 
Vitalie Postolache:
Fehler treten unabhängig von den Ticks auf.

Dann verstehe ich das nicht. Die Fehlerbehandlungsfunktionen werden nur für Handelsfälle benötigt, habe ich das richtig verstanden? Ist es vor der Eröffnung eines Auftrags oder vor der Änderung eines Auftrags. Ist dies richtig? D.h., bevor ich einen Auftrag eröffne, sollte ich mich zunächst vergewissern, dass auf dem Server keine Fehler vorliegen; wenn dies der Fall ist, eröffne ich den Auftrag?

Mein EA hat immer Aufträge ohne Fehlermeldungen gesendet, wahrscheinlich wegen der Hartnäckigkeit meines EAs. Es kann sein, dass mein EA deshalb nicht handeln durfte. Ich weiß nicht, wie ich es machen soll, ich muss es mit einem Expert Advisor machen, aber ich weiß nicht, wie ich es machen soll.

Wenn Fehler unabhängig von Fehlern auftreten, dannfragtGetLastError() selbst den Server, ob es Fehler gibt?

 
Evgeniy Oshurkevich:

Dann verstehe ich es nicht. Die Fehlerbehandlungsfunktionen werden nur für Handelsfälle benötigt, verstehe ich das richtig? Ist es vor der Eröffnung eines Auftrags oder vor der Änderung eines Auftrags. Ist dies richtig? D.h., bevor ich einen Auftrag eröffne, sollte ich mich zunächst vergewissern, dass auf dem Server keine Fehler vorliegen; wenn dies der Fall ist, eröffne ich den Auftrag?

Mein EA hat immer Aufträge ohne Fehlermeldungen gesendet, wahrscheinlich wegen der Hartnäckigkeit meines EAs. Es kann sein, dass mein EA deshalb nicht handeln durfte. Ich weiß nicht, wie ich es machen soll, ich muss es mit einem Expert Advisor machen, aber ich weiß nicht, wie ich es machen soll.

Wenn Fehler unabhängig von Fehlern auftreten, dannfragt GetLastError() selbst den Server, ob es Fehler gibt?

Nun, es gibt keine clientseitigen Fehler auf dem Server, überhaupt nicht, niemals, nirgendwo, verstehen Sie das erst einmal.

Der Server gibt als Antwort auf den Handelsauftrag eines Kunden einen numerischen Code zurück, das ist alles. Code 0 - alles in Ordnung, der Befehl wurde ohne Probleme ausgeführt. Code größer als Null - es gibt Probleme, das Terminal protokolliert den Fehlercode und die Entschlüsselung.

Die Verarbeitung des Return-Codes des Servers muss nicht nur im Expert Advisor berücksichtigt werden, der Programmierer muss die Fehler vor dem Senden des Befehls an den Server berücksichtigen und verhindern, dass falsche Werte in den Handelsaufträgen gesendet werden, die zu Fehlern führen. Dann wird der Handel mit EAs nicht verboten werden. Andernfalls erhalten Sie eine Unterschrift.

Beispiel: Es ist nicht genug Geld auf dem Konto, um 1 Lot Euro zu kaufen, der Expert Advisor berücksichtigt dies nicht und bombardiert den Server mit Aufträgen, 1 Lot jeden Tick zu kaufen. Natürlich wird der Server das Konto bestenfalls in den manuellen Modus versetzen.

Wenn der Expert Advisor zunächst die für den Kauf von 1 Lot erforderliche Marge prüft, dann diesen Wert mit dem verfügbaren Guthaben auf dem Konto vergleicht und feststellt, dass das Guthaben nicht ausreicht, handelt er nicht und warnt stattdessen den Händler, dann ist alles in Ordnung.

Sie sollten alle möglichen Fehlerbedingungen in Betracht ziehen, den Wert korrigieren, wo dies möglich ist, den Handel sperren, wo dies nicht möglich ist, und den Händler vor den Problemen warnen.

 
Evgeniy Oshurkevich:

Dann verstehe ich es nicht. Die Fehlerbehandlungsfunktionen werden nur für Handelsfälle benötigt, habe ich das richtig verstanden? Ist es vor der Eröffnung eines Auftrags oder vor der Änderung eines Auftrags. Ist dies richtig? D.h., bevor ich einen Auftrag eröffne, sollte ich mich zunächst vergewissern, dass auf dem Server keine Fehler vorliegen; wenn dies der Fall ist, eröffne ich den Auftrag?

Mein EA hat immer Aufträge ohne Fehlermeldungen gesendet, wahrscheinlich wegen der Hartnäckigkeit meines EAs. Es kann sein, dass mein EA deshalb nicht handeln durfte. Ich weiß nicht, was ich mit ihnen machen soll, ich muss sie um Hilfe bitten und sie müssen mich bitten.

Wenn Fehler unabhängig von Fehlern auftreten, dannfragt GetLastError() selbst den Server, ob es Fehler gibt?

Das Prinzip: Wenn wir eine Handelsoperation durchführen wollen, müssen wir uns logischerweise darüber im Klaren sein, ob genug Geld für die Transaktion vorhanden ist. Der nächste Schritt: "Ist es das richtige Maß an Aufträgen, Entfernung oder nicht? - prüfen. Dies ist eine Kontrolle auf Ihrer Seite, um den Server nicht zu berühren.

Weiter: Prüfung bestanden und erfolgreich bestanden - wir senden eine Bestellung an den Server und warten auf Antwort, FunktionGetLastError() erhält eine Antwort vom Server, wenn es keinen Fehler gibt "0", wenn es Fehler gibt, gibt es den Fehlercode zurück, bzw. gibt Ihre Bestellung zur Überarbeitung zurück. Darüber hinaus gilt es, die empfangenen Fehler zu behandeln und zu entscheiden, ob der Server erneut bombardiert werden soll oder ob man sich einfach beruhigen soll. Die Fehlercodes finden Sie in der Hilfe.

PS. während ich schrieb, haben Sie bereits geantwortet)

 
Vitalie Postolache undVitaly Muzichenko, ein großes menschliches DANKESCHÖN! )) Stell dir vor, ich habe es endlich kapiert)))
 
Evgeniy Oshurkevich:
Vitalie Postolache undVitaly Muzichenko, ein großes menschliches DANKESCHÖN! )) Stell dir vor, ich habe es endlich kapiert.)
Ausgezeichnet) Vervollständigung der Details. Stellen Sie sich folgende Situation vor: Ihr Broker notiert am Freitag bis 23-59 Uhr, aber seine Handelsanfragen werden nur bis 23-50 Uhr bearbeitet. Sie haben einen EA, dessen Stochastik irgendwo gekreuzt wird und der anfängt, Anfragen an den Server zu senden und die Fehlermeldung "Market is closed" erhält, aber die Ticks laufen weiter und er sendet bei jedem Tick eine neue Order. Glauben Sie, dass es dem Server gefallen wird? Es ist auch wünschenswert, solche Dinge zu berücksichtigen.
 
Vitaly Muzichenko:
Gut) Dann lassen Sie mich hinzufügen. Stellen Sie sich die Situation vor: Ihr Brokerage-Unternehmen notiert am Freitag bis 23-59 Uhr, aber Handelsanfragen werden nur bis 23-50 Uhr bearbeitet. Sie haben einen EA und seine Stochastik wird irgendwo gekreuzt und er beginnt, Anfragen an den Server zu senden und erhält die Fehlermeldung "Market is closed", aber die Ticks ticken weiter und er sendet bei jedem Tick erneut Aufträge, ohne Überprüfung. Glauben Sie, dass es dem Server gefallen wird? Diese Dinge sollten ebenfalls berücksichtigt werden.
Ich habe es bereits, und auf dieser danke. Ich habe Fehlerbehandlung Funktion vor jeder Bestellung vorgeschrieben, aber ich bin immer noch fragen, wie man den Expert Advisor zu verlangsamen, wenn es Fehler wegen meiner Fehler, und wo es zu verschreiben. D.h. ich habe versucht, eine Bestellung zu öffnen, aber es ist ein Fehler aufgetreten, wie kann ich ihn beheben? Zum Beispiel OrderSend(....); hat eine Transaktion durchgeführt, wie bekomme ich Informationen, ob sie erfolgreich war?