Скачать MetaTrader 5

Счетчик тиков. Куда деваются тики?

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

Сделала счетчик тиков для mt4. 

Вопрос: Почему количество тиков, на моем индикаторе не соответствует объему индикатора Volumes (из штатной поставки MT4)???

Код:

 

 

#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers  1
#property indicator_color1 clrGreen
#property indicator_width1 3
double mas[9];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {IndicatorSetInteger( INDICATOR_DIGITS,0);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,mas);
   SetIndexEmptyValue(0,0);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  
mas[0]++;
return(rates_total);
  }
Alexey Volchanskiy
17142
Alexey Volchanskiy  
Anna Cvarc:

Сделала счетчик тиков для mt4. 

Вопрос: Почему количество тиков, на моем индикаторе не соответствует объему индикатора Volumes (из штатной поставки MT4)???

Код:

 

 

#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers  1
#property indicator_color1 clrGreen
#property indicator_width1 3
double mas[9];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {IndicatorSetInteger( INDICATOR_DIGITS,0);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,mas);
   SetIndexEmptyValue(0,0);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  
mas[0]++;
return(rates_total);
  }

А как вы сравниваете, на глазок? Сравнивайте с iVolume(...). Второе, где обнуление mas[0] в начале нового бара? Третье, возможно, вы не знаете, что при переключении таймфрейма в индикаторах обнуляются глобальные переменные и происходит вызов OnInit. 

Вы приведите полный код, как и где вы mas[0] выводите на печать, а мы напрягемся и поможем )) 

Maxim Kuznetsov
10162
Maxim Kuznetsov  

Сюрпиз : кол-во тиков и тиковый объём это разные вещи :-)

Yuriy Asaulenko
3494
Yuriy Asaulenko  
Maxim Kuznetsov:

Сюрпиз : кол-во тиков и тиковый объём это разные вещи :-)

Я тоже не знаю. Расскажите.
Maxim Kuznetsov
10162
Maxim Kuznetsov  
Yuriy Asaulenko:
Я тоже не знаю. Расскажите.

тут полфорума забито этой истоптанной темой - эпопея CopyTicks покруче "приключений Петрова и Васечкина", читайте там..

Кратко для ТС: Volume это тиковый объём от сервера и он не равен (и обычно больше) чем число тиков которые в реальном времени обрабатывает терминал.

Плюс к сведению ТС: OnCalculate может быть вызван вообще без тика от сервера :-)

Yuriy Asaulenko
3494
Yuriy Asaulenko  
Maxim Kuznetsov:

тут полфорума забито этой истоптанной темой - эпопея CopyTicks покруче "приключений Петрова и Васечкина", читайте там..

Кратко для ТС: Volume это тиковый объём от сервера и он не равен (и обычно больше) чем число тиков которые в реальном времени обрабатывает терминал.

Плюс к сведению ТС: OnCalculate может быть вызван вообще без тика от сервера :-)

Я думал что-то другое.

Плюс к сведению ТС: OnCalculate может быть вызван вообще без тика от сервера :-)  

Если пользоватемем как функция - понятно. Возможно запуском программы (типа как индикаторы). А чем еще? 

Maxim Kuznetsov
10162
Maxim Kuznetsov  
Yuriy Asaulenko:

Я думал что-то другое.

Плюс к сведению ТС: OnCalculate может быть вызван вообще без тика от сервера :-)  

Если пользоватемем как функция - понятно. Возможно запуском программы (типа как индикаторы). А чем еще? 

подгрузка истории например.

не уверен (можно поставить эксперимент, но лень), на границе минутных баров также может случаться

Vladimir Zubov
4430
Vladimir Zubov  
Maxim Kuznetsov:

Сюрпиз : кол-во тиков и тиковый объём это разные вещи :-)

Anna Cvarc:

Сделала счетчик тиков для mt4. 

Вопрос: Почему количество тиков, на моем индикаторе не соответствует объему индикатора Volumes (из штатной поставки MT4)???

Код:

 

 

#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers  1
#property indicator_color1 clrGreen
#property indicator_width1 3
double mas[9];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {IndicatorSetInteger( INDICATOR_DIGITS,0);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,mas);
   SetIndexEmptyValue(0,0);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  
mas[0]++;
return(rates_total);
  }
Этого никто не знает, у меня робот под MT4 пинг до сервера 60мс у разных людей работает по разному, я незнаю почему это происходит. Сервер одинаковый, думаю дело в поступлении тиков.
Vladimir Zubov
4430
Vladimir Zubov  
Anna Cvarc:


Анна, такое всегда было или при void OnTick() заметили в мт4 ?
Alexey Kozitsyn
6739
Alexey Kozitsyn  
Anna Cvarc:

Сделала счетчик тиков для mt4. 

Вопрос: Почему количество тиков, на моем индикаторе не соответствует объему индикатора Volumes (из штатной поставки MT4)???

Код:

#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers  1
#property indicator_color1 clrGreen
#property indicator_width1 3
double mas[9];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {IndicatorSetInteger( INDICATOR_DIGITS,0);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,mas);
   SetIndexEmptyValue(0,0);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  
mas[0]++;
return(rates_total);
  }

Вы что хотите посчитать? Тиковый объем? А зачем?)

Если Вы хотите посчитать торговый объем - Вам в МТ5 и использовать CopyTicks(). Но, к сожалению, вряд ли Вы сможете правильно его подсчитать без потерь. 

Anna Cvarc
70
Anna Cvarc  
Alexey Kozitsyn:

Вы что хотите посчитать? Тиковый объем? А зачем?)

Если Вы хотите посчитать торговый объем - Вам в МТ5 и использовать CopyTicks(). Но, к сожалению, вряд ли Вы сможете правильно его подсчитать без потерь. 

Я хочу посчитать количество тиков которые пришли мне в терминал. Мой код правильный?

Если индикатора Volumes (из штатной поставки MT4) это тиковый который послал мне сервер, то почему происходит расхождение? 

Получается тики либо не доходят до меня либо мой код не успевает их обрабатывать.

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