Скачать MetaTrader 5

Цена которая была пару секунд назад... (Вопрос чайника)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
pasha.ronin
280
pasha.ronin 2013.06.07 19:51 

Здравствуйте,

Подскажите пожалуйста как получить цену которая была х секунд назад (например 1 секунду назад)???

 Здесь в коде пытался, сделать задержку на одну секунду, но цены не меняются...

double DelayASK=0;

double StartASK=0;

int start()

  {

   if(StartPrice()!=DelayPrice())

      Print("Не Равны! УРА StartPrice= ",StartPrice(),"DelayPrice= ",DelayPrice());

   else

      Print("Не сработало= ",StartPrice(),"DelayPrice= ",DelayPrice());         

return(0);

}

   double StartPrice()

      {

      StartASK=Ask;

      return(StartASK);      

      }

   double DelayPrice()

      {

      DelayASK=Ask;

      Sleep(1000);

      return(DelayASK);

      } 

Alexey Subbotin
4998
Alexey Subbotin 2013.06.07 20:02  

Способов множество, в зависимости от того, что вам конкретно надо.

Вот один из вариантов:

int start()
{

double price_now,price_1_sec_ago;

while(!IsStopped())
{

RefreshRates();
price_1_sec_ago = Ask;


Sleep(1000);

RefreshRates();
price_now = Ask;

//теперь делаем что надо


}

}
pasha.ronin
280
pasha.ronin 2013.06.07 20:25  

Спасибо за ответ,

Скажите как сделать что бы печатало по 5 цифр после точки?

Print(" Current Ask= ", Ask);

Почему то печатает только 4 цифры...

Alexey Subbotin
4998
Alexey Subbotin 2013.06.07 20:56  
pasha.ronin:

Спасибо за ответ,

Скажите как сделать что бы печатало по 5 цифр после точки?

Print(" Current Ask= ", Ask);

Почему то печатает только 4 цифры...

 

Блин, да читайте же вы документацию

Print(DoubleToStr(число,5));
pasha.ronin
280
pasha.ronin 2013.06.07 20:58  
ОК Спасибо!
pasha.ronin
280
pasha.ronin 2013.06.08 08:25  

//ВАШ КОД, НЕ РАБОТАЕТ! 

int start()

{

double price_now,price_1_sec_ago;

while(!IsStopped())

{

RefreshRates();

price_1_sec_ago = Ask;

Sleep(1000);

RefreshRates();

price_now = Ask;

Print(" ----> price_1_sec_ago=",DoubleToStr(price_1_sec_ago,5)," price_now=",DoubleToStr(price_now,5));

}

//Дает одну и туже цену!  :  ----> price_1_sec_ago=1.26831 price_now=1.26831


pako
3319
pako 2013.06.08 08:28  
pasha.ronin:

//ВАШ КОД, НЕ РАБОТАЕТ! 

int start()

{

double price_now,price_1_sec_ago;

while(!IsStopped())

{

RefreshRates();

price_1_sec_ago = Ask;

Sleep(1000);

RefreshRates();

price_now = Ask;

Print(" ----> price_1_sec_ago=",DoubleToStr(price_1_sec_ago,5)," price_now=",DoubleToStr(price_now,5));

}

//Дает одну и туже цену!  :  ----> price_1_sec_ago=1.26831 price_now=1.26831


маркт закрыт
суббота однако
pasha.ronin
280
pasha.ronin 2013.06.08 08:31  
Единственный свободный день... 
pasha.ronin
280
pasha.ronin 2013.06.08 08:32  
Так ведь тестер не отдыхает никогда!
Dmitry Fedoseev
43501
Dmitry Fedoseev 2013.06.08 08:45  
В тесетере Sleep() не работает. Как бы нет способа получить цену несколько сек. назад. Если надо, то делать собственными силами. Складывать все изменения цен в свой массив (два массива, один с ценой, другой со временем), потом искать в нем. 
pasha.ronin
280
pasha.ronin 2013.06.08 10:01  

double PreviousPrice[];

double NewPrice[]; 

double PriceTime[]; 

Подскажите как можно сохранять предыдущею цену и сравнивать ее с нынешней ценой с определенным интервалом времени?

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий