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

 
drknn:


Нет. Не нужно внутри цикла на каждой его итерации объявлять переменную.

хм... спасибо
 
drknn:

я надеюсь ничего нужного не удалил а то компилятор ругался на слово else:


bool Torg=true;

if (OrdersTotal()>0){
for(int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderOpenTime()>=Time[0]) Torg=false;
}
}
}
 
drknn:
Владимир, товарищ уже забанен. Уберите ссылку из цитаты.
 
GarKain:

я надеюсь ничего нужного не удалил а то компилятор ругался на слово else:

if (OrdersTotal()>0){// не нужная строчка - если ордеров нет, то счётчик цикла будет на нуле и цикл не выполнится
for(int i=OrdersTotal()-1;i>=0;i--){// проходим по всем ордерам
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// если ордер не выбран, то...
if(OrderMagicNumber()!=MagicNumber) continue; //если магик не наш, то переходим к другому ордеру
if(OrderOpenTime()>=Time[0]) Torg=false;
}
// А если ордер выбрать из списка всё же удалось?
}
}


P.S.

зря убрали строку, сигнализирующую о номере ошибки при выборе ордера - иногда бывает, что она выстреливает. Вообще, обработку ошибок лучше применять везде, где только возможно её возникновение.

 
drknn:
if (OrdersTotal()>0){// не нужная строчка - если ордеров нет, то счётчик цикла будет на нуле и цикл не выполнится
for(int i=OrdersTotal()-1;i>=0;i--){// проходим по всем ордерам
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// если ордер не выбран, то...
if(OrderMagicNumber()!=MagicNumber) continue; //если магик не наш, то переходим к другому ордеру
if(OrderOpenTime()>=Time[0]) Torg=false;
}
// А если ордер выбрать из списка всё же удалось?
}
}


а если так?

bool Torg;
if (OrdersTotal()==0) Torg=true;
if (OrdersTotal()>0){
for(int i=OrdersTotal()-1;i>=0;i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderOpenTime()>=Time[0]) Torg=false;
if (OrderOpenTime()<Time[0]) Torg=true;
}
}
}
 
GarKain:
а если так?

А если попробовать проверить этот цикл в скрипте самостоятельно? Ну просто отпринтовав результат - в какое положение станет переменная Torg в разных случаях. Думаете сделать самостоятельно не получится?
 
drknn:
А если попробовать проверить этот цикл в скрипте самостоятельно? Ну просто отпринтовав результат - в какое положение станет переменная Torg в разных случаях. Думаете сделать самостоятельно не получится?
думаю нет
 
GarKain:
думаю нет

Скачайте - поможет - http://depositfiles.com/files/eg4fmn3bp
 
GarKain: Там нумерация занятий идёт снизу вверх. Нажмите кнопку с изображением домика и начните со скриптов.
 
получилось так что на новом баре открывается неограниченное количество ордеров. раньше было что все они сразу открывались а теперь один открылся ожидается новый бар и все остальные открываются.
Причина обращения: