[Индикатор сессий] Нужна помощь с написанием индикатора (для новичка)

 

Доброго!

Никогда до селе не работал с mql4, если вопрос детский, просьба сильно не пинать :)

Вообщем нужно мне написать довольно простой индикатор, который ориентируется не на цену, а на время. Например, мы знаем, что рынок "размазан" по всему миру, но есть ключевые точки. Но они начинают и заканчивают свою работу не одновременно. Так вот, в индикаторе нужно, ориентируясь на время в окне, рисовать разноцветные линии. Начало линии - начало работы "точки" (напр. Лондон) - конец линии - "точка" закрылась и т.д. Я смотрел справочник - ф-ию ObjectCreate, но она не позволяет подобную линию нарисовать. Подскажите, пожалуйста, как это можно сделать? (весь код не нужен, естественно, просто рисование линии, ориентируясь на дату/время). Пример индикатора - ниже: (линии от балды дорисовал в паинте :)).

Заранее большое спасибо!

 

может поможет

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

Картинка:

Пример работы индикатора:

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

 
Большое спасибо! То, что надо))
 

Еще пару вопросов.

Чуть разобрал код программы. Она прорисовывает каждый раз при приходе тика, как и многие другие индикаторы. Если указано небольшое кол-во торговых сессий - все хорошо. При большом кол-ве сессий возникает проблема. Отрисовка проходит медленно и программа подвисает. На ум приходит такое решение - рисовать линии только в видимом диапазоне. Т.е. вопрос номер раз, как определить текущее видимое время на графике? Может как-то ориентироваться на бары, показанные в данный момент? Ну и резонно - как узнать, что мы "перелистали" график вперед или назад, чтоб заново отрисовать?

С уважением.

 
alexeykkk:

Еще пару вопросов.

Чуть разобрал код программы. Она прорисовывает каждый раз при приходе тика, как и многие другие индикаторы. Если указано небольшое кол-во торговых сессий - все хорошо. При большом кол-ве сессий возникает проблема. Отрисовка проходит медленно и программа подвисает. На ум приходит такое решение - рисовать линии только в видимом диапазоне. Т.е. вопрос номер раз, как определить текущее видимое время на графике? Может как-то ориентироваться на бары, показанные в данный момент? Ну и резонно - как узнать, что мы "перелистали" график вперед или назад, чтоб заново отрисовать?

С уважением.

Пусть индикатор рисует линии раз в сутки, с началом нового дня.

 
Файлы:
 

за основу взял самый простой i-Sessions. Просто переместил все функции рисования из Start() в Init(), программа "подвисает" только разово при запуске.

Всем спасибо!

 
alexeykkk:

Еще пару вопросов.

Чуть разобрал код программы. Она прорисовывает каждый раз при приходе тика, как и многие другие индикаторы. Если указано небольшое кол-во торговых сессий - все хорошо. При большом кол-ве сессий возникает проблема. Отрисовка проходит медленно и программа подвисает. На ум приходит такое решение - рисовать линии только в видимом диапазоне. Т.е. вопрос номер раз, как определить текущее видимое время на графике? Может как-то ориентироваться на бары, показанные в данный момент? Ну и резонно - как узнать, что мы "перелистали" график вперед или назад, чтоб заново отрисовать?

С уважением.

На этот случай есть функции WindowFirstVisibleBar() и WindowBarsPerChart()
 

Такой еще

Файлы: