[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 503

 

to sergeev:

Да, там я немного затупил, спасибо. Но все равно не выбирается ордер с тейк профитом.


to Roger, abolk:

Ой, забылся с проблемами, что и не заметил. Спасибо!

 
Solree:

Да, там я немного затупил, спасибо. Но все равно не выбирается ордер с тейк профитом.

а где исправленный код цикла?
 

to sergeev:

Я подумал, что там всего одно исправление, что и писать не обязательно. Но раз нужно, то вот:

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:

Я подумал, что там всего одно исправление, что и писать не обязательно. Но раз нужно, то вот:

вы так и не поняли. объясню на пальцах.

в начале цикла у вас а=0 и OrdersTotal()=2

после первого удаления у вас а=1 и OrdersTotal()=1

всё. второй итерации не будет. и остался один ордер. так понятнее?

какие выводы вы можете сделать? то есть какие два варианта решения проблемы?
 

Здравствуйте! Прошу помощи. Нужно чтобы индикатор считал сумму объемов. Что-то у меня не работает.

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

to sergeev:

В OrderSelect же 0 - тоже позиция, т.е если ордеров 2, то их позиция 0 и 1.

 
Solree:

В OrderSelect же 0 - тоже позиция, т.е если ордеров 2, то их позиция 0 и 1.

да. ордеров два. И OrdersTotal вернёт 2.

перечитайте еще раз.

если не верите мне, то воспользуйтесь Print в журнал

 
prom18:

Здравствуйте! Прошу помощи. Нужно чтобы индикатор считал сумму объемов. Что-то у меня не работает.


Да вроде работает

 
prom18:

Здравствуйте! Прошу помощи. Нужно чтобы индикатор считал сумму объемов. Что-то у меня не работает.


Да вроде работает

 
Vinin:


Да вроде работает

Я имел ввиду Volume[100]+Volume[99]+...+Volume[1]. График должен иметь вид возрастающей кривой.
Причина обращения: