Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1381

 
Alexey Viktorov:

Ничего сверхъестественного. Обычный OBJ_BITMAP_LABEL и в него всё что душа пожелает в виде ресурса. Канвас тоже работает в OBJ_BITMAP_LABEL.

Но ваш вариант гораздо проще для новичка.

Я Вас понял, спасибо.
 
Alexey Viktorov:

Пожалуйста научитесь вставлять код в сообщение.

А по вопросу: Читайте документацию по CopyTicksRange

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = TimeCurrent() - 10000;
ulong to_msc = TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc);
  }
//+------------------------------------------------------------------+
Не работает. При каждом вызове OnTick результат переменной Ticks 0.
 
Boris:
Не работает. При каждом вызове OnTick результат переменной Ticks 0.

А Вам точно прошлые нужны тики при заходе. 10 секунд не так много, можно и подождать и посчитать реально пришедшие тики, их количество.

в общем нужно 2 переменные для первой секунды и запоминать сколько тиков было за 9 секунд и суммировать, далее считать тики за следующую секунду, вычитать первую и прибавлять последнюю. Полученные результаты сохранять либо в массив, либо в переменную. 

 
Valeriy Yastremskiy:

А Вам точно прошлые нужны тики при заходе. 10 секунд не так много, можно и подождать и посчитать реально пришедшие тики, их количество.

в общем нужно 2 переменные для первой секунды и запоминать сколько тиков было за 9 секунд и суммировать, далее считать тики за следующую секунду, вычитать первую и прибавлять последнюю. Полученные результаты сохранять либо в массив, либо в переменную. 

Получается через функции CopyTicks и CopyTicksRange это нельзя сделать?

Спасибо.

 
Boris:
Не работает. При каждом вызове OnTick результат переменной Ticks 0.

Читайте документацию!!!

Или вы хотите чтобы вам всю документацию по частям сюда копировали???

from_msc

[in]  Дата, начиная с которой запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Если параметр from_msc не указан, то отдаются тики от самого начала истории. Отдаются тики со временем >= from_msc.

to_msc

[in]   Дата, по которую запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Отдаются тики со временем <= to_msc. Если параметр to_msc не указан, то отдаются все тики до конца истории.

 
Valeriy Yastremskiy:

А Вам точно прошлые нужны тики при заходе. 10 секунд не так много, можно и подождать и посчитать реально пришедшие тики, их количество.

в общем нужно 2 переменные для первой секунды и запоминать сколько тиков было за 9 секунд и суммировать, далее считать тики за следующую секунду, вычитать первую и прибавлять последнюю. Полученные результаты сохранять либо в массив, либо в переменную. 

Зачем давать такие советы?

 
Boris:

Получается через функции CopyTicks и CopyTicksRange это нельзя сделать?

Спасибо.

Можно. Документацию читайте, и потом спрашивайте что не поняли в документации. Так до истины быстрее путь)

 
Alexey Viktorov:

Зачем давать такие советы?

Сам так делаю. Зачем лезть в структуры, если короткие действия можно фиксить самому.

 
Valeriy Yastremskiy:

Сам так делаю. Зачем лезть в структуры, если короткие действия можно фиксить самому.

А я левое ухо чешу мизинцем правой ноги… Могу вас научить… Оно вам надо? Вот и других не надо учить тому, что вы делаете через…………………

 
Valeriy Yastremskiy:

Можно. Документацию читайте, и потом спрашивайте что не поняли в документации. Так до истины быстрее путь)

Так... Прочитал документацию (еще раз).

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];
ulong ten_msc =(ulong)TimeCurrent()-10000; // 1 секунда = 1000 милисекунд
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = (ulong)TimeCurrent() - 10000;
ulong to_msc = (ulong)TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc); //(с текущего времени - 10 сек назад)
// либо CopyTicks(_Sybol,Tick_Mql,COPY_TICKS_ALL,from_msc,0); //(все тики от 10 сек назад до настоящего времени)
  }

Вопрос. Что не так? Не считает ни через CopyTicksRange ни через CopyTicks

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