Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 17

 
Так не хотелось все снова, ну ладно! Спасибо!
 
почему-то перестали прорисовываться индикаторы в окне визуализации.... 
 

Доброго дня!!  Робот вешает терминал. В журнале последняя записс- одна удаленная позиция, только одна. Потом все виснет- ни тпру, ни ну...

Ордера с графика вмиг зависания и в последующие миги  исчезают, а терминал я перегружал уж раз десять.

 

У робота есть функция удаления. Она удаляла все через один, я ей переделал цикл внутри скобк фор...Хотя и так удаляла, но за несколько тиков.Компилировал. И вот.. 

 

void Udalenie()
{
int Error; string errorcomment="";
for( int i=OrdersTotal()-1;i>=0;i++){OrderSelect (i, SELECT_BY_POS  ) ;
int nt=0,type=0;nt=OrderTicket( );type = OrderType();
if (type==0){
    for(int  A=25;A>=0;A--){Sleep(2000); RefreshRates();if(nt==0)break ;
  OrderClose(  nt, OrderLots( ) , Bid, 5, 0) ; Error=GetLastError(); 
  if (Error==0) break ; 
  else {errorcomment = "Ошибка удаления  ордера BUY  "  + " " + Symbol() +  " " + ErrorDescript(Error);
  Print (errorcomment);  } } }
 if (type==1){ 
    for(  A=25;A>=0;A--){Sleep(2000); RefreshRates();if(nt==0)break ;
  OrderClose(  nt, OrderLots( ) , Ask, 5, 0) ; Error=GetLastError();
  if (Error==0) break ; 
  else {errorcomment = "Ошибка удаления  ордера SELL  "  + " " + Symbol() +  " " + ErrorDescript(Error);
  Print (errorcomment);   }}}
 if (type>=2){   
  for(  A=25;A>=0;A--){Sleep(2000); RefreshRates();if(nt==0)break ;
   OrderDelete(nt);Error=GetLastError();
  if (Error==0) break ; 
  else {errorcomment = "Ошибка удаления  ордера отложенного ордера  "  + " " + Symbol() +  " " + ErrorDescript(Error);
  Print (errorcomment);   }}}}
  
          
}
 
Dimka-novitsek:

Доброго дня!!  Робот вешает терминал. В журнале последняя записс- одна удаленная позиция, только одна. Потом все виснет- ни тпру, ни ну...

Ордера с графика вмиг зависания и в последующие миги  исчезают, а терминал я перегружал уж раз десять.

 

У робота есть функция удаления. Она удаляла все через один, я ей переделал цикл внутри скобк фор...Хотя и так удаляла, но за несколько тиков.Компилировал. И вот.. 

 

 

 


Ошибка в цикле

У Вас

for( int i=OrdersTotal()-1;i>=0;i++)
Нужно
for( int i=OrdersTotal()-1;i>=0;i--)
 
Dimka-novitsek:

Доброго дня!!  Робот вешает терминал. В журнале последняя записс- одна удаленная позиция, только одна. Потом все виснет- ни тпру, ни ну...

Ордера с графика вмиг зависания и в последующие миги  исчезают, а терминал я перегружал уж раз десять.

У робота есть функция удаления. Она удаляла все через один, я ей переделал цикл внутри скобк фор...Хотя и так удаляла, но за несколько тиков.Компилировал. И вот.. 

Твой код читать невозможно. Для начала исправь здесь:

for( int i=OrdersTotal()-1;i>=0;i--)

P.S. Одна из главных составляющих к успеху - это порядок.

 

Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!   Даже подумать е мог...  Да, видно это там, щас попробую.

А тоя уже второй терминал скачал!

 
А как лучше прописать функцию ArrayInitialize в этом случае, у меня так.
double Orderasthitaem[6][2];ArrayInitialize(Orderasthitaem, 0.0);
 for ArrayInitialize function must be array
 
Скомпилировалось так  ArrayInitialize(Orderasthitaem[6][2], 0.0);
 
Dimka-novitsek:
Скомпилировалось так  ArrayInitialize(Orderasthitaem[6][2], 0.0);

Результат проверьте. Выведете все значения массива через Print(), желательно до инициализации присвоить им (членам массива) какое-либо значение
 

Нет, и так, в журнале сплошная ругань- то ли массив в функцию не передается мол, верней передается не массив...

 

Да что ж ему надо? Уж как угодно скобки расставлял- пустые, полные..