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)
-   -   OrdersTota() funktioniert nicht mit SL (http://www.expert-advisor.com/forum/showthread.php?t=7043)

AngryBear 11.07.21 22:04

OrdersTota() funktioniert nicht mit SL
 
hi,

Ich habe ein Problem mit mein EA.

Wenn die Orders mit SL geschlossen sind, OrdersTota() reagiert nicht und zeigt, dass immer noch offene Orders im Pool gibt.

Haben Sie Ideen, wie kann ich das lösen?

traderdoc 12.07.21 10:16

Ja, indem Sie hier mal a bisserl Code gucken lässt.
Sonst gucken wir nämlich in eine dunkle Röhre.

traderdoc

AngryBear 12.07.21 13:57

Liste der Anhänge anzeigen (Anzahl: 1)
Datei angehängt.

traderdoc 12.07.21 17:16

Schön, dann wollen wir mal:
Prinzipiell bei allen Schleifen, wo Orders geöffnet aber v.a. geschlossen werden, sollte:

for (int i = OrdersTotal()-1; i>= 0; i--)

stehen und nicht
for(i = 0; i < total; i++)
oder eben
for(i = 0; i < OrdersTotal(); i++)
D.h. Dekrementierung verwenden und nicht Inkrementierung!

int TotalOrders =OrdersTotal();
völlig ohne Funktion!?

Den Teil
Code:

double TotalOrder()
 {
  double GetTotalOrder =0;
  for ( int cnt=0;cnt<OrdersTotal();cnt++)
  {
  OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
  if ( OrderMagicNumber() == MagicNumber)
    {
      GetTotalOrder +=(OrdersTotal() );
    }
  }
  return (GetTotalOrder);
 }

habe ich überhaupt nicht verstanden. Würde z.B. OrdersTotal() = 3 sein, dann stünde in der Variablen GetTotalOrder entweder 0, 3, 6 oder 9, je nachdem, ob die MagicNumber jeweils stimmte.
Aber auch egal, weil die Funktion TotalOrder() nirgendwo im Programm aufgerufen wird, also nutzlos und überflüssig.

In Summe wird OrdersTotal() sinnvollerweise vom EA nur 4 Mal aufgerufen, davon 1 Mal in einer dekrementierenden und 3 Mal in einer inkrementierenden Schleife.

Das würde ich zuerst ändern.

traderdoc

AngryBear 13.07.21 15:59

Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe ein EA nach Beispeil aufgebaut. Beim Backtest macht was, aber beim Demokonto öffnet keine Positionen.


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