Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 714

 
dimnik:

Это HistoryDealSelect так сильно влияет на скорость? Как можно ликвидировать тормоза?

Разработчики рекомендуют сводить к минимуму вызов History-функций (дорогие) - через кэширование истории.

Рабочее такое решение выкладывал в кодобазу (MT4Orders), но Вам оно, наверное, не подойдет.

После использования кэширования тормозов не наблюдал.

 

ЗЫ Хотя, в Вашем OnTradeTransaction тормозить не должно, хоть и написан не оптимально.

 
Renat Akhtyamov:

Привет!

Кто знает - как в индикаторе отобразить бары, которые будут находиться справа от нулевого бара и сколько их максимум? (прогноз цены чтобы сделать)

К времени открытия последнего бара приплюсуй PeriodSeconds() и туда рисуй графическими объектами свечу. Максимум сколько будет видно справа. Но не проверял как будет отображаться если попадёт выходной. Наверное надо самостоятельно учитывать.
 
Alexey Viktorov:
К времени открытия последнего бара приплюсуй PeriodSeconds() и туда рисуй графическими объектами свечу. Максимум сколько будет видно справа. Но не проверял как будет отображаться если попадёт выходной. Наверное надо самостоятельно учитывать.
Сенкс, получилось!
 
Alexey Viktorov:
К времени открытия последнего бара приплюсуй PeriodSeconds() и туда рисуй графическими объектами свечу. Максимум сколько будет видно справа. Но не проверял как будет отображаться если попадёт выходной. Наверное надо самостоятельно учитывать.

На чарте рисует продолжение, а в окне индикатора - к сожалению нет.

Может быть я конечно ошибаюсь...

Что скажете - можно ли продолжить линию индикатора за нулевой бар вправо?

 
Кто в курсе - можно ли продолжить линию индикатора за нулевой бар вправо?
 
Renat Akhtyamov:
Кто в курсе - можно ли продолжить линию индикатора за нулевой бар вправо?
Можно. Можно поставить сдвиг, но сделать расчёт по не существующим значениям наверное не получится, да и в отображении индикатора не используется время. Потому я и говорил об отображении баров графическими элементами. В ObjectCreate() присутствует и номер окна(подокна) и время. Так-что проблем с созданием графических элементов быть не должно.
 
Alexey Viktorov:
Можно. Можно поставить сдвиг, но сделать расчёт по не существующим значениям наверное не получится, да и в отображении индикатора не используется время. Потому я и говорил об отображении баров графическими элементами. В ObjectCreate() присутствует и номер окна(подокна) и время. Так-что проблем с созданием графических элементов быть не должно.

В окне чарта используя метки времени обратиться к будущим предполагаемым барам можно. Получилось.

Однако сделать то же самое в окне индикатора не удается. То есть записать значения в буфер индикатора с индексом -1, -2 и прочее не получается.

Вопрос в этом.

В принципе понятно. Выход - построение индикатора графическими объектами.

 
Renat Akhtyamov:

В окне чарта используя метки времени обратиться к будущим предполагаемым барам можно. Получилось.

Однако сделать то же самое в окне индикатора не удается. То есть записать значения в буфер индикатора с индексом -1, -2 и прочее не получается.

Вопрос в этом.

В принципе понятно. Выход - построение индикатора графическими объектами.

Рассчитать второй буфер на нормальных его значениях, например (если нужно 10 баров рассчитать для отображения "будущего"), то посчитать этот буфер на значениях Buff[9] -- Buff[8] -- Buff[n] -- Buff[0], а потом вывести этот буфер с не нулевым смещением. Задать смещение буфера на нужное количество баров в будущее - на 10 в данном случае
 
Artyom Trishkin:
Рассчитать второй буфер на нормальных его значениях, например (если нужно 10 баров рассчитать для отображения "будущего"), то посчитать этот буфер на значениях Buff[9] -- Buff[8] -- Buff[n] -- Buff[0], а потом вывести этот буфер с не нулевым смещением. Задать смещение буфера на нужное количество баров в будущее - на 10 в данном случае

Оно самое. Вы меня абсолютно правильно поняли. Спасибо!

Вопрос - как задать смещение от нулевого бара буфера индикатора и в будущее?

Я сколько не пытался, не понимает индикатор такое. Нулевой бар - край индикатора.

 
Artyom Trishkin:
Рассчитать второй буфер на нормальных его значениях, например (если нужно 10 баров рассчитать для отображения "будущего"), то посчитать этот буфер на значениях Buff[9] -- Buff[8] -- Buff[n] -- Buff[0], а потом вывести этот буфер с не нулевым смещением. Задать смещение буфера на нужное количество баров в будущее - на 10 в данном случае.
Интересное решение, спасибо.