[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 164

 
evgenio писал(а) >>

чето не фурычит

Сорри. Код скрипта. Все работает. Проверил.

#property show_confirm

int start() {
   Print("Start");
   double as[5];
   for (int i=0; i<5; i++) {
      as[i]=Low[i];
      Print(i," ",as[i]);
   }
   Print("Stop");
   return(0);
}
 

Подскажите пожалуйста как пишется оператор, который делает паузу в милисекундах. Всё время забываю. Помнится один раз забыл и потом долго искал его. Где искал опять же не помню. Наверное, снова долго искать буду. 

Подскажите, пожалуйста как пишется - сам опять забыл.

 
FOReignEXchange писал(а) >>

Подскажите пожалуйста как пишется оператор, который делает паузу в милисекундах. Всё время забываю. Помнится один раз забыл и потом долго искал его. Где искал опять же не помню. Наверное, снова долго искать буду.

Подскажите, пожалуйста как пишется - сам опять забыл.

Sleep()

 
Vinin >>:

Sleep()

 О, точно, спасибо большое

 
Добрый день. Подскажите пожалуйста, как проверить, есть ли позиция, открытая на текущем баре, и если есть, то запретить открытие новых. Начиная со следующего бара ограничение снимается. Sleep() не подходит.
 
Alex5757000 >>:
Добрый день. Подскажите пожалуйста, как проверить, есть ли позиция, открытая на текущем баре, и если есть, то запретить открытие новых. Начиная со следующего бара ограничение снимается. Sleep() не подходит.

 При открытии позиции запомнинаете время 

t=TimeCurrent()


И в условии открытия  сделки ставите условие


if (iBarShift(NULL,0,t)>0)

Это должно подойти, если не ошибаюсь.

 
Alex5757000 >>:
Добрый день. Подскажите пожалуйста, как проверить, есть ли позиция, открытая на текущем баре, и если есть, то запретить открытие новых. Начиная со следующего бара ограничение снимается. Sleep() не подходит.
bool ЗапретитьТорговлю = false;
for(int k = 0; k < OrdersTotal(); k++ )
{
   OrderSelect(k,SELECT_BY_POS,MODE_TRADES); // Проверяем каждый ордер. 
                                             // Если он открыт после времени открытия текущего бара - запрещаем торговлю.
   if(OrderOpenTime()>Time[0])
   {
      ЗапретитьТорговлю = true;
      break;
   }
}
 
FOReignEXchange и mql-experts, спасибо!
 

Что-то любопытное:(

Индикатор в процессе выполняет подсчет прибыли и убытка. Хочу внести результаты в комментарии (вывод на экран):


      int    TotalProfit_pips    = TotalProfit;
      int    TotalProfit_count   = (Buy_Profits_Count+Sell_Profits_Count)-(Buy_Losses_Count +Sell_Losses_Count);
      int    TotalTrades_count   = (Buy_Profits_Count+Sell_Profits_Count)+(Buy_Losses_Count +Sell_Losses_Count);
      int    Total_Profits_Count = Buy_Profits_Count+Sell_Profits_Count;
      int    Total_Losses_Count  = Buy_Losses_Count +Sell_Losses_Count;
//      double WinningRatio        = Total_Profits_Count / TotalTrades_count;

Без последней строчки (закомментированной) все работает как положено.

Но стоит лишь ее раскомментировать - на экране остаются только голые свечки и ничего более.. Перегрузка МТ не помогла.

Что это может быть?

 
chief2000 >>:

Что-то любопытное:(

Индикатор в процессе выполняет подсчет прибыли и убытка. Хочу внести результаты в комментарии (вывод на экран):


Без последней строчки (закомментированной) все работает как положено.

Но стоит лишь ее раскомментировать - на экране остаются только голые свечки и ничего более.. Перегрузка МТ не помогла.

Что это может быть?



Все переменные типа int - целые. При делении целого числа на целое ответом будет тоже целое число. А если первое число меньше второго, то ответом стабильно будет 0. Возможно, в этом проблема.

Если есть возможность - измените все типы на double.

Причина обращения: