Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Документация доступна в CHM и PDF. Скачай в удобном тебе виде!
Anna Cvarc
96
Anna Cvarc 2016.10.25 22:00 

Сделала счетчик тиков для 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
16240
Alexey Volchanskiy 2016.10.25 23:35  
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
9321
Maxim Kuznetsov 2016.10.26 00:04  

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

Yuriy Asaulenko
3161
Yuriy Asaulenko 2016.10.26 00:07  
Maxim Kuznetsov:

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

Я тоже не знаю. Расскажите.
Maxim Kuznetsov
9321
Maxim Kuznetsov 2016.10.26 00:32  
Yuriy Asaulenko:
Я тоже не знаю. Расскажите.

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

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

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

Yuriy Asaulenko
3161
Yuriy Asaulenko 2016.10.26 00:38  
Maxim Kuznetsov:

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

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

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

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

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

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

Maxim Kuznetsov
9321
Maxim Kuznetsov 2016.10.26 00:46  
Yuriy Asaulenko:

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

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

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

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

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

Vladimir Zubov
4169
Vladimir Zubov 2016.10.26 01:08  
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
4169
Vladimir Zubov 2016.10.26 01:13  
Anna Cvarc:


Анна, такое всегда было или при void OnTick() заметили в мт4 ?
Alexey Kozitsyn
6228
Alexey Kozitsyn 2016.10.26 11:02  
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
96
Anna Cvarc 2016.10.26 11:59  
Alexey Kozitsyn:

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

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

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

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

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

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