Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 141

 
Можете научить открывать и закрывать торговлю в МТ4 с рынка и с отложенных ордеров?
 

Здравствуйте уважаемые программисты!!
Делаю счетчик тиков для свечи и что то у меня видимо пошло не так!!! Хочу сделать что бы считало тики, когда цена только растет, а он считает, и когда растет и когда падает (тоесть все тики, а надо только растущие тики) Гляньте плз...

double CountTickBUY()
{

double old_price;
double delta_cur; 
double price = 0;
double old_open_price = 0;

for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
         if(OrderSymbol() == _Symbol && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
           {
           old_price = iClose(NULL, 0 , i);
           price = iOpen(NULL, 0 , i);

           delta_cur = old_price > price;
           if(delta_cur > 0) 
             {
             count_plusbuy++;
             }
           }
   }
   return(count_plusbuy);
}
 
sviter-pro:

Здравствуйте уважаемые программисты!!
Делаю счетчик тиков для свечи и что то у меня видимо пошло не так!!! Хочу сделать что бы считало тики, когда цена только растет, а он считает, и когда растет и когда падает (тоесть все тики, а надо только растущие тики) Гляньте плз...

int CountTickBUY()
{
   static double    old_price     = Bid;
   static datetime  time_bar      = Time[0];
   static int       count_plusbuy = 0;
   
   if( time_bar != Time[0] )
   {
      count_plusbuy = 0;
      time_bar      = Time[0];
   }
   
   if( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid;

   return(count_plusbuy);
}
 
Konstantin Nikitin:

Спасибо огромное!

 

Konstantin Nikitin: Считает тики на кождой свече хорошо, но по 2 раза! Тоесть если отсчет пошел от 1.00000 и дошел до 1.00100 он 100 пунктов щитает, потом когда спустилась цена до 1.00080 он ждет и не считает, но когда цена опять начинает расти от 1.00080 то опять начинает считать пункты, а надо что бы ждал до 1.00100 и от нее считал дальше!!!

int CountTickBUY()
{
   static double    old_price     = Bid;
   static datetime  time_bar      = Time[0];
   static int       count_plusbuy = 0;
   
   if( time_bar != Time[0] )
   {
      count_plusbuy = 0;
      time_bar      = Time[0];
   }
   
   if( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid;

   return(count_plusbuy);
}



 

Поясните пожалуйста, что именно проверяет функция "IsTradeAllowed" , когда вызывается ее вторая форма.

Знаю что, первая форма проверяет разрешена ли автоматическая торговля и свободен ли торговый поток. А что насчет второй формы вызова ? Какие именно проверки происходят при вызове второй формы?

 
Asa saas:

Поясните пожалуйста, что именно проверяет функция "IsTradeAllowed" , когда вызывается ее вторая форма.

Знаю что, первая форма проверяет разрешена ли автоматическая торговля и свободен ли торговый поток. А что насчет второй формы вызова ? Какие именно проверки происходят при вызове второй формы?

Вторая форма вызова возвращает информацию о возможности торговли для заданного символа в указанное время.


Свободен ли торговый поток, это   IsTradeContextBusy

 
Alekseu Fedotov:

Вторая форма вызова возвращает информацию о возможности торговли для заданного символа в указанное время.


Свободен ли торговый поток, это   IsTradeContextBusy

Вроде же первая форма "IsTradeAllowed" тоже проверяет, свободен ли торговый поток или же нет?

Я просто использую вторую форму функции "IsTradeAllowed", чтобы узнать, открыт ли рынок перед тем, как совершать операции с ордерами.

Однако не совсем понимаю, нужно ли отдельно использовать функцию для проверки доступности свободного потока вроде "IsTradeContextBusy" или же вторая форма "IsTradeAllowed" уже делает такую проверку.

 
Asa saas:

Вроде же первая форма "IsTradeAllowed" тоже проверяет, свободен ли торговый поток или же нет?

Я просто использую вторую форму функции "IsTradeAllowed", чтобы узнать, открыт ли рынок перед тем, как совершать операции с ордерами.

Однако не совсем понимаю, нужно ли отдельно использовать функцию для проверки доступности свободного потока вроде "IsTradeContextBusy" или же вторая форма "IsTradeAllowed" уже делает такую проверку.

1. Нет

2. Нет,  разрешает не разрешает торговать с помощью советников, руками то можно

3. Нужно использовать другую функцию для проверки торгового потока  ( IsTradeContextBusy() )

 
Asa saas:

Вроде же первая форма "IsTradeAllowed" тоже проверяет, свободен ли торговый поток или же нет?

Да, проверяет. По крайней мере, в документации об этом сказано. Сам не знаю, зачем это сделано, но факт остается фактом:

Возвращаемое значение

Возвращает true, если эксперту разрешено торговать и поток для выполнения торговых операций свободен, иначе возвращает false.

Я просто использую вторую форму функции "IsTradeAllowed", чтобы узнать, открыт ли рынок перед тем, как совершать операции с ордерами. 

Однако не совсем понимаю, нужно ли отдельно использовать функцию для проверки доступности свободного потока вроде "IsTradeContextBusy" или же вторая форма "IsTradeAllowed" уже делает такую проверку.

А вот со второй формой как раз непонятно. Ведь она отвечает за время в будущем или прошлом.

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