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)
-   -   Anzahl Orders begrenzen auf ein Symbol (http://www.expert-advisor.com/forum/showthread.php?t=4871)

Bw-Man 05.04.16 17:50

Anzahl Orders begrenzen auf ein Symbol
 
Hi,

ich versuche seit Wochen die richtige Kombination zu finden, um eben die Anzahl der offenen Orders pro Symbol zu begrenzen.

OrdersTotal ist nicht das was ich suche, weil der ja die offenen Orders über alle Symbole zusammen zählt.

Was ich möchte ist z.B. EURUSD auf 4 offene Orders begrenzen, und auch EURJPY auf 4 begrenzen.
Es bringt mir nichts mit OrdersTotal, weil er dann auch EURUSD 1 und EURJPY 7 macht, oder andere Kombis.

Ich habe schon versucht mit OrderSymbol mit 4 zu begrenzen, aber gibt nur Fehler Meldung.

Hat jemand eine Idee, wie die Zeile funktionieren könnte ?

Bw-Man 05.04.16 19:40

habe eine Lösung gefunden
 
Input double Anzahl = 3;
//----------------------------------
int start()
{
bool OrderIsOpen = false;

for (int i= OrdersTotal()-1; i>=Anzahl; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() == Symbol())
{
OrderIsOpen = true;
return(0);
}
}


Habe was von traderdoc hier gefunden, und etwas abgeändert. Teste ich gerade, sieht aber bis jetzt gut aus.

yytrader 05.04.16 19:53

Hallo Bw-Man,

hier ein Beispiel-Code:
Code:

void OnTick()
{
  if(bSymbolAllowed("EURUSD",4))
  {
      Print("EURUSD allowed!");
  }
}
//+------------------------------------------------------------------+ 

bool bSymbolAllowed(string sSymbol, int iMaxAllowedPerSymbol)
{
  int i, count = 0;
  for(i=0;i<OrdersTotal();i++)
  {
      if(OrderSelect(i,SELECT_BY_POS))
      {
        if(OrderSymbol() == sSymbol)
        {
            count++;
            if(count >= iMaxAllowedPerSymbol)
            {
              return false;
            }
        }
      }
  }
  return true;
}

Achtung, der Code ist nicht getestet!

Gruß

yytrader

Bw-Man 06.04.16 13:25

Hi yytrader,

vielen Dank für die schnelle Antwort :)

Habe dein Code probiert, und auch versucht etwas anzupassen. Leider kommen da Fehlermeldungen die ich nicht weg bekomme.

Den Code von traderdoc ist schon ok. Ich lass das so.

Danke nochmal


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