Как можно эффективно определить максимальное и минимальное значение цены, начиная с определенного времени?

 

Мне необходимо определить цену открытия символов, на указанное время, а потом определить максимальное и минимальное значение с того времени по настоящее.

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

Можете посоветовать или набросать пример как это можно реализовать? Потому что сейчас я пытаюсь запрашивать значения с помощью CopyRates с указанной даты по настоящее снова и снова, и потом каждый раз вычисляю максимальное и минимальное значение, перебирая все данные, но это очень медленно работает.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
sarged:

Мне необходимо определить цену открытия символов, на указанное время, а потом определить максимальное и минимальное значение с того времени по настоящее.

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

Можете посоветовать или набросать пример как это можно реализовать? Потому что сейчас я пытаюсь запрашивать значения с помощью CopyRates с указанной даты по настоящее снова и снова, и потом каждый раз вычисляю максимальное и минимальное значение, перебирая все данные, но это очень медленно работает.

Какое время, это часы минуты в сутках, или отступ от текущего момента?

 

 
Integer:

Какое время, это часы минуты в сутках, или отступ от текущего момента?

 

Дата, часы и минуты.
 
sarged:
Дата, часы и минуты.

Индикатор. Как пересекли временную точку, фиксируем High и Low, далее, по мере новых баров и цен расширяем диапазон.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
Integer:

Индикатор. Как пересекли временную точку, фиксируем High и Low, далее, по мере новых баров и цен расширяем диапазон.

 

Дело в том, что на график ничего выводить не нужно, и привязывать это к барам на индикаторе тем более.

Можно конечно попробовать сделать на OnInit чтобы запрашивал все нужные массивы данных через CopyHigh / CopyLow, выбирал минимум и максимум, записывал эти две точки в память. А потом на каждый тик, сравнивал значения. А потом цену открытия на определенную дату запрашивал бы отдельно каждый раз через CopyOpen.

Да, но дело в том что по мимо разных символов, необходимо запрашивать и разные временные отрезки, поэтому боюсь что это тоже будет не очень эффективно.

Или же можно как нибудь по другому? 


 
sarged:

Дело в том, что на график ничего выводить не нужно, и привязывать это к барам на индикаторе тем более.

Можно конечно попробовать сделать на OnInit чтобы запрашивал все нужные массивы данных через CopyHigh / CopyLow, выбирал минимум и максимум, записывал эти две точки в память. А потом на каждый тик, сравнивал значения. А потом цену открытия на определенную дату запрашивал бы отдельно каждый раз через CopyOpen.

Да, но дело в том что по мимо разных символов, необходимо запрашивать и разные временные отрезки, поэтому боюсь что это тоже будет не очень эффективно.

Или же можно как нибудь по другому? 


есть очень полезные функции Операции с массивами
 
sarged:

1. Дело в том, что на график ничего выводить не нужно, и привязывать это к барам на индикаторе тем более.

2. Можно конечно попробовать сделать на OnInit чтобы запрашивал все нужные массивы данных через CopyHigh / CopyLow, выбирал минимум и максимум, записывал эти две точки в память. А потом на каждый тик, сравнивал значения. А потом цену открытия на определенную дату запрашивал бы отдельно каждый раз через CopyOpen.

3. Да, но дело в том что по мимо разных символов, необходимо запрашивать и разные временные отрезки, поэтому боюсь что это тоже будет не очень эффективно.

4. Или же можно как нибудь по другому? 

1. Вам никто и не предлагает прикрплять этот индикатор на график и смотреть на него. В чем проблема привязки к барам, у вас время задано с точностью до секунды, минутки не подойдут?

2. ...и засыпаться на первом шухере. 

3. Сколько надо, столько и вызывается индикаторов с разными параметрами. 

4. Как-нибудь по другому всегда можно, но вы спрашивали про эффективный метод. 

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