Помогите, баг программы.

 

Вообщем просто в ауте, не работает простейшее, не могу понять почему ...

int x=0;

double bidold; 

int start()

{

 bidold=Bid;

Alert (bidold); 

 while (x==0)

{

 if (bidold!=Bid) {Alert ("Изменение цены   !");  bidold=Bid;}  // Сообщение не появляется 

}

 } 

 

Что происходит, программа сама по себе работает, но вызова сообщение о изменении цены не происходит. 

 

 
zertain:

Вообщем просто в ауте, не работает простейшее, не могу понять почему ...

int x=0;

double bidold; 

int start()

{

 bidold=Bid;

Alert (bidold); 

 while (x==0)

{

 if (bidold!=Bid) {Alert ("Изменение цены   !");  bidold=Bid;}  // Сообщение не появляется 

}

 } 

 

Что происходит, программа сама по себе работает, но вызова сообщение о изменении цены не происходит. 

 

У вас bidold всегда = Bid, поэтому условие if (bidold!=Bid) запрещает сообщение.
 
khorosh:
У вас bidold всегда = Bid, поэтому условие if (bidold!=Bid) запрещает сообщение.


Bid не будет изменяться, если не делать RefreshRates(), такова специфика, вместо Bid лучше использовать MarketInfo(Symbol(), MODE_BID), кроме того чтобы терминал не подвисал следует в цикле делать Sleep().. в общем изучайте матчасть..
 
// просто поменяйте "точку зрения" на противоположную

double bidold;
int start()
{
        if (bidold == Bid) return (0);

        bidold = Bid;
        Alert("Изменение цены   !", bidold);
        
        return (0);
}