Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   OrderClose() Rückgabewert (http://www.expert-advisor.com/forum/showthread.php?t=4827)

Ca$hDigger 01.03.16 05:20

OrderClose() Rückgabewert
 
Hallo,

kurze Frage in die Runde. Wie geht ihr mit der Möglichkeit um, dass OrderClose auch mal einen false zurückliefern könnte also die Order nicht geschlossen wird? RefreshRates ist schon mal gut davor zu setzen meine ich und vielleicht eine Schleife mit 10 Wiederholungsversuchen oder gar noch was anders?

Hat jemand schon mal den Fall gehabt das OrderClose immer wieder false zurückgeliefert hat? Für das Ordermanagement wäre das schon eine böse Angelegenheit. Ich geh aber mal ganz optimistisch davon aus das dies eher sehr selten vorkommt. Habt ihr da eine Sicherheitskaskade wie Schleife etc?

C$D

Raul0 01.03.16 07:08

Ja, man kann sich damit verrückt machen. Aber für den einen Fall wo wäre wenn, ist das Stoploss sonst da, oder ein TP.

traderdoc 01.03.16 10:29

Da hast Du die beiden wichtigsten Möglichkeiten schon genannt.
Es kommt auch auf den Fehler an. Der kann abfangen werden. Darauf wäre dann programmintelligent zu agieren.
In den Wiederholungsschleifen sollte eine Sleep()-Funktion eingebaut werden, mit einem Wert von mindestens 100 (also 100ms), sonst sind die 10 Schuss schnell verbraucht.
Auch auf das Ergebnis der permanenten Abfrage von IsTradeContextBusy()
sollte reagiert werden.

Und richtig, solange ein brokerreagierbarer SL an der Order klebt, sollte alles gut gehen (von Ausnahmen wie EURCHF mal abgesehen). Bei einem Hidden-SL wäre dann das Risiko schon wieder größer.

traderdoc

Ca$hDigger 01.03.16 14:29

Danke euch das sind gute Punkte.

Zitat:

Zitat von traderdoc (Beitrag 33546)
Auch auf das Ergebnis der permanenten Abfrage von IsTradeContextBusy()
sollte reagiert werden.

Wie hast du das angewendet? if(IsTradeContextBusy()==false) Als Filter vor Orderclose oder in die Schleife also nachdem OrderClose ein false geliefert hat?

Danke && Gruß

Ca$hDigger 01.03.16 15:25

Die Frage ist, bezieht sich IsTradeContextBusy() nur auf den Zugriff des Orderpools oder auf alle Trade Functions wie auch OrderSend etc?

Ca$hDigger 01.03.16 20:32

while(IsTradeContextBusy()){Sleep(100);} und gut ist :)

traderdoc 01.03.16 20:58

He, Gedankenübertragung! ich wollte gerade schreiben:

while(IsTradeContextBusy()) Sleep(100);

Die {} kannst Du an der Stelle weglassen.

traderdoc

Ca$hDigger 01.03.16 21:14

Das nenne ich mal auf einen Nenner. So bekommt man doch langsam ein wohliges Gefühl beim Ordermanagement. Und wenn alle Stricke reissen gibt es den geliebten SL :)

pischinger 01.03.16 22:24

Zitat:

Zitat von Ca$hDigger (Beitrag 33568)
Und wenn alle Stricke reissen gibt es den geliebten SL :)

oder auch nicht, denn wenn der quoteserver keine quoten ausspuckt, hilft der sl leider auch nicht, da der im tradecontextbusy oder sleep "festhängt".

kenne leider! keinen retail broker der garantierte sl gegen gebühr anbietet

mir fiel aber bei der chf action 2015 auf das das öffnen von positionen ohne probleme funktionierte, das schliessen jedoch zäh oder gar nicht...virtual dealer plugin?

traderdoc 01.03.16 23:04

Zitat:

Zitat von pischinger (Beitrag 33569)
oder auch nicht, denn wenn der quoteserver keine quoten ausspuckt, hilft der sl leider auch nicht, da der im tradecontextbusy oder sleep "festhängt".

kenne leider! keinen retail broker der garantierte sl gegen gebühr anbietet

mir fiel aber bei der chf action 2015 auf das das öffnen von positionen ohne probleme funktionierte, das schliessen jedoch zäh oder gar nicht...virtual dealer plugin?

Das ist die Erklärung dazu:
Returns true if a thread for trading is occupied by another Expert Advisor, otherwise returns false.

Außerdem würde der SL sehr wohl gezogen, egal ob der EA festhängt, weil der SL vom System aus ausgelöst werden würde und nicht über den EA. (SL wurde an die Order geknüpft! - Das hatte ich aber schon einmal vorausgesetzt).

traderdoc


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum