[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 503

 

an sergeev:

Ja, da war ich etwas verwirrt, danke. Es wird aber immer noch kein Auftrag mit Gewinnmitnahme ausgewählt.


an Roger, abolk:

Ups, ich habe das mit den Problemen vergessen und gar nicht bemerkt. Ich danke Ihnen!

 
Solree:

Ja, da war ich etwas verwirrt, danke. Es wird aber immer noch kein Auftrag mit Gewinnmitnahme ausgewählt.

Wo ist der korrigierte Schleifencode?
 

an sergeev:

Ich dachte, es gäbe nur eine Lösung, die Sie nicht zu schreiben brauchen. Aber wenn es sein muss, bitte sehr:

for (int a = 0; a < OrdersTotal(); a++)
    if (OrderSelect(a, SELECT_BY_POS, MODE_TRADES))
        if (OrderComment() == "Aelit" && OrderType() == OP_SELL)
            OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), 0);
 
Solree:

Ich dachte, es gäbe da nur eine Korrektur, die nicht geschrieben werden muss. Aber wenn es sein muss, bitte sehr:

Sie haben es immer noch nicht verstanden, ich werde es Ihnen erklären.

zu Beginn der Schleife haben Sie a=0 und OrdersTotal()=2

nach der ersten Löschung haben Sie a=1 und OrdersTotal()=1

das war's. es wird keine zweite iteration geben. es bleibt nur ein auftrag übrig. verstehen sie das?

Welche Schlussfolgerungen können Sie ziehen, d. h. welche beiden Lösungen gibt es für das Problem?
 

Hallo! Bitte helfen Sie mir. Ich brauche den Indikator, um die Summe der Volumina zu berechnen. Irgendetwas funktioniert bei mir nicht.

#property indicator_separate_window    
#property indicator_buffers 1       
#property indicator_color1 Blue  
 
double Buf_0[];           
//--------------------------------------------------------------------
int init()                        
  {
//--------------------------------------------------------------------
   SetIndexBuffer(0,Buf_0);       
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);
//--------------------------------------------------------------------
   return;                     
  }
//--------------------------------------------------------------------
int start()                        
  {
   int i,                         
       n,                         
       Counted_bars;              
       double
       Sum;                      

//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); 
   i=Bars-Counted_bars-1;           
   while(i>=0)                     
     {
      Sum=0;                 
      for(n=i;n<=i+1;n++) 
        {
         Sum=Sum + Volume[n];    
        }
      Buf_0[i]=Sum;   
      i--;                         
     }
//--------------------------------------------------------------------
   return;                         
  }
//--------------------------------------------------------------------
 

an sergeev:

In OrderSelect ist 0 auch eine Position, d.h. wenn es 2 Aufträge gibt, sind ihre Positionen 0 und 1.

 
Solree:

In OrderSelect ist 0 auch eine Position, d.h. wenn es 2 Aufträge gibt, sind ihre Positionen 0 und 1.

Ja, es gibt zwei Aufträge. Und OrdersTotal wird 2 zurückgeben.

Bitte lesen Sie es noch einmal.

Wenn Sie mir nicht glauben, dann nutzen Sie den Print in der Zeitschrift

 
prom18:

Hallo! Bitte helfen Sie mir. Ich brauche den Indikator, um die Summe der Volumina zu berechnen. Irgendetwas funktioniert bei mir nicht.


Ja, es scheint zu funktionieren.

 
prom18:

Hallo! Bitte helfen Sie mir. Ich brauche den Indikator, um die Summe der Volumina zu berechnen. Irgendetwas funktioniert bei mir nicht.


Ja, es scheint zu funktionieren.

 
Vinin:


Es scheint zu funktionieren.

Ich meinte Lautstärke[100]+Lautstärke[99]+...+Lautstärke[1]. Das Diagramm sollte wie eine ansteigende Kurve aussehen.