iBarShift с параметром перекрестия

 

Здравствуйте ! 

есть функция    iBarShift которая высчитывает номер бара по заданной дате

возможно ли чтобы в параметр даты вставить значение даты на которую указывает визуально Перекрестие, чтобы не париться постоянно вставлять дату ? или может какой другой облегченный вариант есть , чтобы дату быстро вставлять нужную ?


перекрестие

iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL4
iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Индекс бара, в который попадает указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает -1 или индекс ближайшего бара (в зависимости от параметра
 
Yerkin Sagandykov:

Здравствуйте ! 

есть функция    iBarShift которая высчитывает номер бара по заданной дате

возможно ли чтобы в параметр даты вставить значение даты на которую указывает визуально Перекрестие, чтобы не париться постоянно вставлять дату ? или может какой другой облегченный вариант есть , чтобы дату быстро вставлять нужную ?

Где вы хотите это использовать? Просто посмотреть номер бара?

В документации есть готовый индикатор для посмотреть номер бара.
ArraySetAsSeries - Операции с массивами - Справочник MQL4
ArraySetAsSeries - Операции с массивами - Справочник MQL4
  • docs.mql4.com
Флаг AS_SERIES не может быть установлен у многомерных массивов и у статических массивов (то есть массивов, чей размер в квадратных скобках указан еще на этапе компиляции). Индексация в таймсерии отличается от обычного массива тем, что индексация элементов таймсерии производится от конца массива к началу (от самых свежих данных к самым старым...
 

Если от перекрестья нужен индекс бара, то это реализовано штатно (рисунок не грузится, поэтому прикрепил файлом).

Если требуется автоматизация подстановки даты в iBarShift, то нужно отследить положение указателя мыши, преобразовать его Y-координату во время и полученное время подставить в iBarShift. 

Файлы:
C2DS7LArmL.gif  60 kb
 
Ihor Herasko:

Если от перекрестья нужен индекс бара, то это реализовано штатно (рисунок не грузится, поэтому прикрепил файлом).

Если требуется автоматизация подстановки даты в iBarShift, то нужно отследить положение указателя мыши, преобразовать его Y-координату во время и полученное время подставить в iBarShift. 

это не совсем то

 
Ihor Herasko:

Если от перекрестья нужен индекс бара, то это реализовано штатно (рисунок не грузится, поэтому прикрепил файлом).

Если требуется автоматизация подстановки даты в iBarShift, то нужно отследить положение указателя мыши, преобразовать его Y-координату во время и полученное время подставить в iBarShift. 

нужно для такого случая - по истории встал на определенную дату и мне надо узнать значение индикатора с другого таймфрейма, и для этого чтоб  постоянно дату не вставлять в фУНКЦИю   iBarShift хотел бы чтобы дату высчитывала  посредством значения даты на которм стоит  Перекрестие или другого графического элемента ...

iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL4
iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Индекс бара, в который попадает указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает -1 или индекс ближайшего бара (в зависимости от параметра
 

перекрестье кажется не доступно из кода

клик мышкой по чарту можно отследить кодом и преобразовать в цена + время бара

выкладывал в КБ https://www.mql5.com/ru/code/25897

HighAndLow_TF
HighAndLow_TF
  • www.mql5.com
1. Откройте любой график в терминале и добавьте индикатор 2. Выберите в настройке индикатора необходимый таймфрейм (используются младшие таймфреймы или текущий) 3. При клике мышкой на информационной панели будут отображаться данные о   High и Low на младших таймфреймах или сообщение об ошибке 4. Бар на который пользователь кликнул мышкой будет...
 
Igor Makanu:

перекрестье кажется не доступно из кода

клик мышкой по чарту можно отследить кодом и преобразовать в цена + время бара

выкладывал в КБ https://www.mql5.com/ru/code/25897

удобный индикатор. Но к сожалению, задачу не правильно поставил. Номер бара к примеру на часов ТФ один но когда высчитывает значенеи индикатора с другого ТФ то там же номер бара совсем другой ...

то есть надо высчитать значение индикатора с другого таймфрема для текущего бара. есть советы ?

 
Yerkin Sagandykov:

удобный индикатор. Но к сожалению, задачу не правильно поставил. Номер бара к примеру на часов ТФ один но когда высчитывает значенеи индикатора с другого ТФ то там же номер бара совсем другой ...

то есть надо высчитать значение индикатора с другого таймфрема для текущего бара. есть советы ?

https://www.mql5.com/ru/code/22164

Позиция XY перекрестия = позиция XY указателя мышки.

Посмотрите на гиф демонстрационного индикатора.

Преобразуете X указателя мышки во время, а по времени можно узнать номер бара любого ТФ.

Механизм реализован внутри библиотеки iCanvas.

Easy Canvas
Easy Canvas
  • www.mql5.com
Данная библиотека и класс iCanvas упростит написание программ с применением Canvas и увеличит скорость работы с графикой благодаря минимизации работы с долгими асинхронными функциями. Вот пример простого индикатора с применением данной библиотеки и его демонстрация. Обратите внимание, что в данном примере в теле индикатора отсутствует функция...
 
Yerkin Sagandykov:

то есть надо высчитать значение индикатора с другого таймфрема для текущего бара. есть советы ?

по клику мышкой мой индикатор и получает бар и цену другого ТФ и текущего ТФ

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


Yerkin Sagandykov:

Номер бара к примеру на часов ТФ один но когда высчитывает значенеи индикатора с другого ТФ то там же номер бара совсем другой ..

и где в моем коде номер бара ? )))) - там как раз и получает индикатор дату + время открытия бара и потом ее преобразовывает в номер бара 

bar_chart=iBarShift(NULL,PERIOD_CURRENT,t_chart);



UPD:

для решения Вашей задачи нужно уметь пользоваться функциями iBarShift() и ChartXYToTimePrice()

и уметь обрабатывать событие OnChartEvent

 
Igor Makanu:

по клику мышкой мой индикатор и получает бар и цену другого ТФ и текущего ТФ

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


и где в моем коде номер бара ? )))) - там как раз и получает индикатор дату + время открытия бара и потом ее преобразовывает в номер бара 



UPD:

для решения Вашей задачи нужно уметь пользоваться функциями iBarShift() и ChartXYToTimePrice()

и уметь обрабатывать событие OnChartEvent

Я бы не советовал использовать функцию ChartXYToTimePrice(). Эта функция - просто какое-то недоразумение в плане быстродействия. Поднимал этот вопрос уже несколько раз.
ЗЫ хотя надо проверить. Вдруг починили на МТ5
 
Nikolai Semko:
Я бы не советовал использовать функцию ChartXYToTimePrice(). Эта функция - просто какое-то недоразумение в плане быстродействия. Поднимал этот вопрос уже несколько раз.
ЗЫ хотя надо проверить. Вдруг починили на МТ5

не тестировал скорость  ChartXYToTimePrice() - не знаю

при использовании для кликов мышкой пользователя фризов не наблюдал


ОК, учту, правда как протестировать скорость  ChartXYToTimePrice() еще не придумал, высока вероятность, что она выполняется в окружении терминала, а не в MQL-коде, т.е. скорее всего это асинхронная команда, думаю она не спроста bool 

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