Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 540

 
Rustam Bikbulatov:

Danke!!!!! Jetzt werde ich versuchen, es in meinen Code zu quetschen! Warum in der ersten Zeile (void) ?

Und warum müssen Sie die Auftragsart angeben, wenn der Name der Funktion besagt, dass sie Kaufaufträge berücksichtigt?
 
Artyom Trishkin:
Und warum müssen Sie die Auftragsart angeben, wenn der Name der Funktion besagt, dass sie Kaufaufträge berücksichtigt?

Der Name kann in Sekundenschnelle geändert werden, aber der Code selbst ist ein Problem

 
Rustam Bikbulatov:

Sie können den Namen in Sekundenschnelle ändern, aber es gibt ein Problem mit dem Code selbst

Das Problem liegt nicht am Code, sondern an Ihrem Verständnis dessen, was Sie tun :)

//+------------------------------------------------------------------+
int fMarketOrdersOpen(const ENUM_ORDER_TYPE order_type)
  {
   int total=OrdersTotal(), count=0;
   for(int i=total-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if(OrderType()!=order_type) continue;
         if(OrderMagicNumber()==123 && OrderSymbol()==Symbol())
            count++;
        }
     }
   return count;
  }
//+------------------------------------------------------------------+
 
Rustam Bikbulatov:
Leute. Mein Gehirn kocht bereits((( Bitte sagen Sie mir, wie ich die Anzahl der Bestellungen aus dieser Definition herauslesen kann

die Menge des Volumens in Losen zu machen? Was muss geändert oder optimiert werden?

double fMarketOrdersOpenB(int type){
   double c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount+=OrderLots();break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

Wenn Sie nicht mindestens einen Auftrag auswählen können, gibt diese Funktion -1 zurück.

Wenn der Typ OP_BUY ist, erhalten Sie das Volumen der BUY-Lose.

Wenn der Wert des Typs anders ist, gibt die Funktion 0 zurück.

Wenn ich die Aufgabe richtig verstanden habe - ändern Sie die Anzahl der Einheiten in die Anzahl der Lose der BUY-Bestellung
 
Kirill Belousov:

Wenn mindestens ein Auftrag nicht korrekt ausgewählt wurde, gibt die Funktion -1 zurück.

Wenn der Typ OP_BUY ist, erhalten Sie das Volumen der BUY-Lose.

Wenn der Wert des Typs anders ist, gibt diese Funktion 0 zurück.

Wenn ich die Aufgabe richtig verstanden habe, geht es darum, die Stückzahl in die Loszahl des BUY-Auftrags zu ändern

Ja, genau. Ich kann es nicht herausfinden.

 
Artyom Trishkin:

Das Problem liegt nicht am Code, sondern an Ihrem Verständnis dessen, was Sie tun :)

Ich stimme zu, dass ich das Programmieren nicht ganz verstehe. Nun, das ist nicht mein Ding((((

 
Ursprünglich war dieser Code
int fMarketOrdersOpenB(int type){
   int c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

Ich muss einfügen

     .........
double lts=fMarketOrdersOpenB(OP_BUY);
   if(lts>0){
         int irv2=OrderSend(Symbol(),OP_BUY,lts,Ask,3,0,0,NULL,123,0,CLR_NONE);}

Mein Code gibt die Anzahl der Aufträge aus, aber ich brauche das Losvolumen aller Kaufaufträge

 
Rustam Bikbulatov:
Dieser Code ist ursprünglich

Ich muss einfügen

Mein Code gibt die Anzahl der Aufträge aus und ich benötige das Losvolumen aller Kaufaufträge

Das Wichtigste ist, die richtige Frage zu stellen.

Finden Sie selbst heraus, was Sie brauchen

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Vitaly Muzichenko:

Das Wichtigste ist, die richtige Frage zu stellen.

Suchen Sie nach dem, was Sie brauchen

Gesehen und ausprobiert. Es hat schon viel geholfen, aber mein Verständnis hat seine Grenzen

 
Rustam Bikbulatov:
Leute. Mir kocht schon das Hirn((( Können Sie mir sagen, wie ich aus dieser Definition die Anzahl der Aufträge ermitteln kann?

die Menge des Volumens in Losen zu machen? Was muss geändert oder optimiert werden?

double fMarketOrdersOpenB(const ENUM_ORDER_TYPE type)
{
     double lots=0;
     for(int i=0;i<OrdersTotal();i++)
     {
          if( !OrderSelect(i,SELECT_BY_POS,MODE_TRADES) )   continue;
          if( OrderSymbol()!=Symbol() )                     continue;
          if( OrderMagicNumber()!=123 )                     continue;
          if( OrderType() != type )                         continue;
          lots += OrderLots();
     }
     return(lots);
}
Grund der Beschwerde: