Ошибки, баги, вопросы - страница 1029

MetaDriver:
Нет так не сработает.  Пауза нужна после первого переключения перед вторым.

Они там чего-то с оптимизацией перемудрили.

// Не с оптимизатором кода, а с логической оптимизацией работы чартов.

Я не злюсь, бывает, за всем не уследишь.  Просто исправить надо.

Хех, придётся сервисдеск напрягать.

MetaDriver:

Они там чего-то с оптимизацией перемудрили.

// Не с оптимизатором кода, а с логической оптимизацией работы чартов.

Я не злюсь, бывает, за всем не уследишь.  Просто исправить надо.

Хех, придётся сервисдеск напрягать.

Может, нужна команда, которая будет имитировать смену тф и приводить к полной переинициализации графика?

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

"
Silent:

Может, нужна команда, которая будет имитировать смену тф и приводить к полной переинициализации графика?

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

Может.  Только луче б вообще без изменений таймфрейма.  По хорошему для индикаторов нужна тупо генерация тика.

Для мои целей это не всегда пригодно, а общем случае множество "проблем выходного дня" бы сняло.

MetaDriver:
"

Может.  Только луче б вообще без изменений таймфрейма.  По хорошему для индикаторов нужна тупо генерация тика.

Для мои целей это не всегда пригодно, а общем случае множество "проблем выходного дня" бы сняло.

Ну да, без изменения, именно имитация с последствиями как бы если была смена тф. Генерация какого нибудь события.

upd они ж не только выходного, любой обрыв связи там же.

Silent:

upd они ж не только выходного, любой обрыв связи там же.

Согласен.

Ещё б пригодилась "команда" програмного насильственного обнуления всех prev_calculated для выбpaннoгo cимвoлa. С последующей генерацией тика хорошо бы комбинировалось.

MetaDriver:

Согласен.

Ещё б пригодилась "команда" програмного насильственного обнуления всех prev_calculated для выбранного символа.  С последующей генерацией тика хорошо бы комбинировалось.

Во!

Напишите, что в сд скажут?

И еще вопрос:

         sDatetime  = FileReadString(file_handle);
         sActual    = FileReadString(file_handle);
         sConsensus = FileReadString(file_handle);
         sPrevious  = FileReadString(file_handle);
         
         barshift = iBarShift(Symbol(), Period(), datetime(formatdatetime(sDatetime)), false); //ВОТ ЭТА СТРОКА ВЫДАЕТ ПРАВИЛЬНЫЙ БАРШИФТ.
         if(StringToDouble(formatstring(sActual)) > 0 && StringToDouble(formatstring(sActual)) < 10000) ActualBuffer[barshift] = StringToDouble(formatstring(sActual));
         Print(formatdatetime(sDatetime));
         Print("iBarShift = ", barshift, " Datetime = ", formatstring(sDatetime), " sActual = ", sActual, " sConsensus = ", sConsensus, " sPrevious = ", sPrevious);

Это кусок кода индикатора, который грузит фундаментальные данные из csv.

1. в баршифт заносим номер бара по дэйттайм с помощью функции. Отлаживал программу. Эта строка работает корректно.

2. А вот эта строка выдает ошибку "Array OUT of range". Собственно почему? Неужто буферы теперь дополнительного шаманства требуют. Вышестоящий код не привожу, делался по шаблону через "создать->индикатор", буферы через мастера прописал. З.Ы. Я даже условия поставил, чтобы только баршифты проверялись в диапазоне от 0 до 10 000. Но это не помогло.

ActualBuffer[barshift] = StringToDouble(formatstring(sActual));

И еще я баршифт получал с помощью библиотеки компостера. Неужели встроенных средств в метатрейдере нет?

Al_key:

И еще вопрос:

Это кусок кода индикатора, который грузит фундаментальные данные из csv.

1. в баршифт заносим номер бара по дэйттайм с помощью функции. Отлаживал программу. Эта строка работает корректно.

2. А вот эта строка выдает ошибку "Array OUT of range". Собственно почему? Неужто буферы теперь дополнительного шаманства требуют.

Вышестоящий код не привожу,

делался по шаблону через "создать->индикатор", буферы через мастера прописал. З.Ы. Я даже условия поставил, чтобы только баршифты проверялись в диапазоне от 0 до 10 000. Но это не помогло.

И еще я баршифт получал с помощью библиотеки компостера. Неужели встроенных средств в метатрейдере нет?

"Надо, Федя. Надо."

  (с) Шурик

--

Такая ошибка возникает, например, если память под динамический буфер не распределена (в данном случае под ActualBuffer).  По приведённому участку кода это непонятно.

Al_key:

И еще я баршифт получал с помощью библиотеки компостера. Неужели встроенных средств в метатрейдере нет?

К сожалению нет.  На самом деле в MT4 скорее всего iBarShift() работает примерно так же как в библтотеке компостера.  Но лучше б была встроенная - побыстрей бы работала (поскольку на С++).
MetaDriver:

Твой случай лечится небольшим слипом.

У меня хуже.  (Кстате, раньше твой случай без Слип'а работал, перестал несколько недель назад)

Такая же схема перестала срабатывать без жутких слипов на других (не текущем) чартах:

Код отсюда: https://www.mql5.com/ru/code/224

установил сов, посмотреть.

На текущем кидаю стандарт. AMA на график, тык перерасчет (при Sleep от 0 до 2350) - сваливаюсь в М1 и больше не возвращаюсь. Через несколько сек. АМА прорисовывается, ну и всё.

Слип, в общем, не помогает, пробую с флагами (запоминать два флага, текущего тф и м1? если на текущем уже были (флаг), а сейчас на м1 (флаг 2), тогда  ...)

но что то сомневаюсь... тики понедельника раньше придут, пока я на текущий тф вернусь :)

upd да, на графике у меня сотня объектов, и плюс АМА, т. е., он такой тяжеленький.