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

 
Evgeniy Oshurkevich:
Ich habe es bereits, und auf diese dank, vor jedem Handel Bestellung bereits vorgeschriebenen Fehlerbehandlung Funktion überall, aber jetzt bin ich in einer Schleife stecken und wie die EA zu bremsen, wenn es Fehler nur wegen meiner Fehler sein wird, und wo genau 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?

Können Sie die Hilfe für die Funktion öffnen und sehen, was sie zurückgibt? Und _LastError?

Konkret gibt OrderSend ein Auftragsticket oder -1 zurück. Raten Sie mal, in welchem Fall es -1 sein wird, wenn Sie allein sind ;)

 
Vitalie Postolache:

Können Sie die Hilfe für die Funktion öffnen und sehen, was sie zurückgibt? Und _LastError?

Konkret gibt OrderSend ein Auftragsticket oder -1 zurück. Raten Sie selbst, in welchem Fall es -1 sein wird ;)

Ich lese jetzt schon seit 10 Minuten darüber :)
 
Evgeniy Oshurkevich:
Ich lese jetzt schon seit 10 Minuten darüber :)
Hier ein Beispiel, das sich gut eignet
 
Vitaly Muzichenko:
Hier ein Beispiel, das sich gut eignet

Ich habe bereits begonnen, meine Fehlercodes auszuarbeiten, danke :) Und ich bin fast fertig mit meinem Expert Advisor zur Verlangsamung der Geschwindigkeit)

In diesem Beispiel kann ich den Wert von"Slippage" nicht finden, er steht im OrderSend, vielleicht ist er nicht so wichtig oder obligatorisch, ich frage mich!

 
Evgeniy Oshurkevich:

Und ich habe bereits damit begonnen, meine Fehlercodes herauszufinden, danke :) Und ich bin fast fertig mit meinem EA, wie man ihn verlangsamen kann)

In diesem Beispiel kann ich den Wert von"Slippage" nicht finden, er steht in OrderSend, vielleicht ist er nicht so wichtig oder obligatorisch, ich frage mich!

Damit wird der Code 135 oder 129 abgefangen und der Schlupfwert für den nächsten Versuch erhöht. Oder, wenn ein vermehrtes Abrutschen nicht attraktiv erscheint, zählen Sie einfach eine bestimmte Anzahl von Sekunden bis zum nächsten Versuch. Behalten Sie auch die Streuung im Auge. Wenn die Streuung zu diesem Zeitpunkt erhöht ist, warten Sie, bis sie sich verringert und versuchen Sie es erneut. Auch ist es wünschenswert, Sleep() nicht zu verwenden, es vereinfacht sicherlich das Schreiben von Code und es bringt nicht viel Schaden, um für eine halbe oder eine Sekunde in den Ruhezustand zu gehen, aber wenn der Expert Advisor ein schneller Pipsier ist, für den jede Millisekunde wichtig ist, oder eine Pause in Dutzenden von Sekunden benötigt wird, ist es besser, Sleep nicht zu verwenden, während des Schlafs ist der Expert Advisor gelähmt und kann nicht nur handeln, sondern auch die Handelsumgebung überwachen oder andere Berechnungen durchführen, reagiert nicht auf Benutzeraktionen usw.

Sie können die aktuelle Zeit festlegen, die gewünschte Anzahl von Sekunden (oder Millisekunden) herunterzählen und dann handeln.

 
Evgeniy Oshurkevich:

Und ich habe bereits damit begonnen, meine Fehlercodes herauszufinden, danke :) Und ich bin fast fertig mit meinem EA, wie man ihn verlangsamen kann)

In diesem Beispiel kann ich den Wert von"Slippage" nicht finden, er steht in OrderSend, vielleicht ist er nicht so wichtig oder obligatorisch, ich frage mich!

Heutzutage istSlippage nicht mehr so wichtig wie früher. Er wird in der Regel bei Konten mit festem Spread verwendet, aber es gibt noch ein paar dieser Konten in freier Wildbahn, und es gibt 5-7 Personen, die damit handeln. Wenn der Spread fließend ist, gibt es keinenSlippage, es ist besser, den Spread zu beobachten, und wenn er zu groß ist, sollte man von einem Einstieg absehen, aber auch hier hängt es von der Strategie ab, wie kritisch ein großer Spread ist.
 
Vitaly Muzichenko:
Heute istSlippage nicht mehr so wichtig wie früher und wird in der Regel auf Konten mit festem Spread verwendet, aber es gibt nur wenige solcher Konten und nur 5-7 Personen handeln auf ihnen. Wenn der Spread fließend ist, gibt es keinenSlippage, es ist besser, den Spread selbst zu beobachten, und wenn er zu groß ist, dann sollte man von einem Einstieg absehen, aber auch hier hängt es von der Strategie ab, wie kritisch ein großer Spread ist.

So ein Quatsch...

Bei sehr beliebten ECNs sind die Kursverluste aufgrund der Nachrichten gigantisch. Manchmal Hunderte von Pips (5ozn). Oder sie quälen die Bestellungen eine ganze Minute lang mit den Worten "neuer Preis", "kein Preis", usw.

 
Vitalie Postolache:

Damit wird Code 135 oder 129 abgefangen und der Schlupfwert für den nächsten Versuch erhöht. Oder, wenn ein vermehrtes Abrutschen nicht attraktiv erscheint, zählen Sie einfach eine bestimmte Anzahl von Sekunden bis zum nächsten Versuch. Behalten Sie auch die Streuung im Auge. Wenn die Streuung zu diesem Zeitpunkt erhöht ist, warten Sie, bis sie sich verringert und versuchen Sie es erneut. Auch ist es wünschenswert, nicht Sleep() zu verwenden, dies, natürlich, vereinfacht das Schreiben von Code und verursacht keinen besonderen Schaden, wenn Hibernation für eine halbe Sekunde oder eine Sekunde, aber wenn der Expert Advisor ist ein schnelles Pipsier, für die jede Millisekunde wichtig ist, oder eine Pause von zehn Sekunden erforderlich ist, ist es besser, nicht zu verwenden, während des Schlafes der Expert Advisor ist gelähmt und kann nicht nur den Handel, sondern auch die Überwachung der Handelsumgebung oder andere Berechnungen durchführen, reagiert nicht auf Benutzeraktionen, etc.

Sie können die aktuelle Zeit festlegen, die Anzahl der Sekunden (oder Millisekunden) herunterzählen und dann handeln.

Evgeniy Oshurkevich:

Ich habe bereits begonnen, nach Fehlercodes zu suchen, danke :) Und ich habe fast fertig, wie ich meinen Expert Advisor bremsen kann)

In diesem Beispiel kann ich den Wert von"Slippage" nicht finden, er steht im OrderSend, vielleicht ist er nicht so wichtig oder obligatorisch, ich frage mich!

Während des Sleep-Befehls Hibernation ist der EA tatsächlich lahmgelegt. Selbst im Falle eines Terminals ist es notwendig, die Arbeit von zwanzig verschiedenen Threads zu gewährleisten, d.h. jeden von ihnen CPU-Zeit belegen zu lassen. Zumindest, um etwas auf dem Bildschirm anzuzeigen, ganz zu schweigen von der für Millisekunden-Pipser entscheidenden Aufgabe, eingehende Ticks anzunehmen. In Wirklichkeit gibt es Dutzende von anderen Betriebssystemdiensten, die ebenfalls arbeiten wollen, d.h. den Prozessor mit ihren eigenen Bedürfnissen beschäftigen. Wenn der Sleep-Befehl dies nicht tut, wird der Thread-Scheduler des Betriebssystems es zwangsweise tun, aber nach seinen eigenen Überlegungen, wem die Zeit gegeben werden sollte. Sie können sich auch darauf verlassen und den Prozessor mit diesem Ratgeber fast immer zu 100 % auslasten. Aber das wird kaum jemandem gefallen. Wenn der Programmierer die Zuteilung der Prozessorressourcen nicht plant, wird in den meisten Fällen der in MQL implementierte Ansatz angewendet, bei dem der Expert Advisor die CPU beim Tick-Eingang für ein Symbol erhält und nach der Verarbeitung dieses Eingangs "lahmt" und die CPU bis zum nächsten Tick nicht in Anspruch nimmt.

Der Parameter Slippage in OrderSend (nicht zu verwechseln mit dem realen Slippage im Falle des "Market execution"-Modus der Auftragsausführung durch den Markt) ist nur im "Instant execution"-Modus, der sofortigen Ausführung, sinnvoll, wenn der Auftrag entweder zum angegebenen Preis ausgeführt oder abgelehnt wird, d.h. er wird zurückgewiesen. Die maximal zulässige Abweichung des Ausführungspreises von dem im Auftrag angegebenen Preis kann als ungleich Null festgelegt werden. Im Modus "Marktausführung" hat dieser Parameter keine Bedeutung, da in diesem Fall der Ausführungspreis vom Handelszentrum festgelegt wird und die Abweichung von dem im Auftrag angegebenen Preis in keiner Weise begrenzt ist.

 
Vitalie Postolache:

So ein Quatsch...

Bei sehr beliebten ECNs sind die Kursverluste aufgrund der Nachrichten gigantisch. Manchmal Hunderte von Pips (5ozn). Oder sie quälen die Bestellungen eine ganze Minute lang mit den Worten "neuer Preis", "kein Preis", usw.

ECN-Konten helfen Ihnen nichtSlippage mindestens 100 Pips, es Ausführung auf dem Markt und kann nur rutschen und nicht einen Preis geben, und das ist ein bisschen andere Dinge, und verschiedene Fehler.
 

Есть условие для открытия ордера BUY. Открывается ордер, как сделать переход к SELL условию после закрытия BUY ордера?




if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }