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)
-   -   Bestimmte Order automatisch schliessen (http://www.expert-advisor.com/forum/showthread.php?t=4586)

janosch72 18.11.15 07:10

Bestimmte Order automatisch schliessen
 
Liebes Forum,

zu einer bestimmten Uhrzeit werden alle offene Order über den folgneden Code geschlossen:

Code:

if (Hour()==CloseHour && Minute()>=CloseMinute) {
    for (int i=OrdersTotal()-1; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
        if (!UseCurrSymbol || OrderSymbol()==Symbol()) {
          if (OrderType()==OP_BUY) {
            pBid=MarketInfo(OrderSymbol(), MODE_BID);
            OrderClose(OrderTicket(), OrderLots(), pBid, Slippage, clBuy);
          }
          if (OrderType()==OP_SELL) {
            pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
            OrderClose(OrderTicket(), OrderLots(), pAsk, Slippage, clSell);
          }
        }
      }
    }
  }

Ich möchte aber die Order nur eines bestimmten Symbols schließen. Muss ich bei
Code:

if (!UseCurrSymbol || OrderSymbol()==Symbol()) {
den Eintrag "Symbol" durch z.B. "EURUSD" ersetzen?

Danke und Grüße,
Dieter

traderdoc 18.11.15 10:15

Nicht nur Symbol, sondern gegen Symbol() austauschen.

traderdoc

janosch72 18.11.15 10:47

OK, dann muss es wohl so lauten:

Code:

if (!UseCurrSymbol || OrderSymbol()=="EURUSD") {
Danke und Grüße,
Dieter

dieter.backin 18.11.15 22:20

Leider hat es so nicht geklappt. Es wurden trotzdem alle Order geschlossen. Was kann man da tun?

Gesendet von meinem SM-G900F mit Tapatalk

traderdoc 18.11.15 23:04

if (!UseCurrSymbol || OrderSymbol()=="EURUSD")

Was verbirgt sich denn hinter UseCurSymbol?

Ich hätte auch nur

if (OrderSybol() == "EURUSD")

genommen.

traderdoc

janosch72 19.11.15 08:48

UseCurrSymbol habe ich folgendermaßen definiert:

Code:

extern bool    UseCurrSymbol = False;    // Use one symbol only
Hatte den Code aus diesem Forum übernommen. Weiß daher nicht, warum UseCurrSymbol da abgefragt wird.

traderdoc 19.11.15 10:15

Mit
if (OrderSybol() == "EURUSD") {
...
}
wird nur nach Orders des Handelsinstrumentes EURUSD selektiert.
Evtl. steht auch mEURUSD oder ein anderer Buchstabe davor.

traderdoc

dieter.backin 19.11.15 10:16

Werde es dann so einbauen und testen was passiert. Vielen Dank schon mal für die schnelle Rückmeldung.

Gesendet von meinem SM-G900F mit Tapatalk

Bw-Man 10.03.17 17:38

Hi,
ich würde gern etwas ähnlichen machen wollen.
Und zwar eine Offene Order nicht zu einer bestimmten Uhrzeit z.B. 23 immer schließen.
Sondern ich würde gern die offene Order 24 stunden laufen lassen, und wenn es kein TP gab, dann soll er die erst schließen. Also z.B. 13:54 Uhr geöffnet, dann soll der am nächsten Tag auch um 13:54 Uhr schließen.

Ich habe da schon mit OrderOpenTime und Time herum experimentiert. Kommt aber nur Müll bei raus. Wie würde die Zeile denn aussehen ? Ich komme nicht drauf, und sowas gibt es hier im Forum anscheinend noch nicht.

limit 10.03.17 17:42

Eigentlich musst du ja nur zum: Kurs erreicht=takeprofit noch ein oder-> || hinzufügen wenn zeit>X-Stunden erreicht ist.


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:33 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