Объясните на русском языке что дает функция while? - страница 2

 
tara:
double i=...
Мне аж стыдно стало...
 
sss2019:

Ну а вот еще такая штука.

int start()
{
int i = 1.3960;
while(Bid < i)
{

}
Alert("Цена выше уровня 1.3960");
return(0);
}

По идее пока цена ниже уровня 1.3960 ничего не должно происходить, а как только поднимется, то должно вылезти сообщение, а у меня наоборот! Что здесь неправильного?

int start()
 {
double i = 1.3960;
 while(Bid <= i)
 {
RefresRates();
Sleep(1)
 }
 Alert("Цена выше уровня 1.3960");
 return(0);
 }
Так будет работать. Основной ошибкой было i типа int и отсутствие обновления цены. Только в советниках не надо делать таких циклов. Надо объавить i на глобальном уровне и просто проверять условие, start() выполняется на каждом тике в советнике.
 
А я RefresRates(); не добавлял, просто оставил while пустым, и тоже все заработало.
 
sss2019:
А я RefresRates(); не добавлял, просто оставил while пустым, и тоже все заработало.

Не может быть.
 
sss2019:

Ну а вот еще такая штука.

int start()
{
int i = 1.3960;
while(Bid < i)
{

}
Alert("Цена выше уровня 1.3960");
return(0);
}

По идее пока цена ниже уровня 1.3960 ничего не должно происходить, а как только поднимется, то должно вылезти сообщение, а у меня наоборот! Что здесь неправильного?

Это равносильно логике:

НужноСходитьЗаХлебом;

ЕслиНетДенег

   ЖдатьПервымВозлеБанкоматаИникогоКнемуНеПодпускать;

ПолучитьДеньги;
 
Integer:

Не может быть.



Может, вот вместо RefresRates() я прописал return(0); и все работает как надо. Вот.

int start()
   {
   double i = 1.3940;
   while(Bid < i)
      {
      return(0);
      }
   Alert("Цена выше уровня 1.3960");
   return(0);
   }
Причина обращения: