[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 503

 

a sergeev:

Sì, mi sono un po' confuso, grazie. Ma ancora nessun ordine con take profit viene selezionato.


a Roger, abolk:

Ops, l'ho dimenticato con i problemi e non l'ho nemmeno notato. Grazie!

 
Solree:

Sì, mi sono un po' confuso, grazie. Ma ancora nessun ordine con un take profit viene selezionato.

Dov'è il codice del ciclo corretto?
 

a sergeev:

Pensavo che ci fosse solo una correzione, che non è necessario scrivere. Ma se devi, eccoti servito:

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:

Ho pensato che c'era solo una correzione che non aveva bisogno di essere scritta. Ma se devi, eccoti servito:

Non hai ancora capito, lascia che te lo spieghi.

all'inizio del ciclo avete a=0 e OrdersTotal()=2

dopo la prima cancellazione, avete a=1 e OrdersTotal()=1

Questo è tutto. non ci sarà una seconda iterazione. e rimane solo un ordine. hai capito?

quali conclusioni puoi trarre? cioè quali sono le due soluzioni al problema?
 

Ciao, per favore aiutami. Ho bisogno che l'indicatore calcoli la somma dei volumi. Qualcosa non funziona per me.

#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;                         
  }
//--------------------------------------------------------------------
 

a sergeev:

In OrderSelect 0 è anche una posizione, cioè se ci sono 2 ordini, le loro posizioni sono 0 e 1.

 
Solree:

In OrderSelect 0 è anche una posizione, cioè se ci sono 2 ordini, le loro posizioni sono 0 e 1.

Sì, ci sono due ordini. E OrdersTotal restituirà 2.

Per favore, leggetelo di nuovo.

Se non mi credete, allora usate la stampa nel giornale

 
prom18:

Ciao, per favore aiutami. Ho bisogno che l'indicatore calcoli la somma dei volumi. Qualcosa non funziona per me.


Sì, sembra funzionare.

 
prom18:

Ciao, per favore aiutami. Ho bisogno che l'indicatore calcoli la somma dei volumi. Qualcosa non funziona per me.


Sì, sembra funzionare.

 
Vinin:


Sembra funzionare.

Intendevo Volume[100]+Volume[99]+...+Volume[1]. Il grafico dovrebbe apparire come una curva crescente.