Скачать MetaTrader 5

Не рекламы ради, а помощи для......... - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vladimir Karputov
Модератор
85768
Vladimir Karputov  
Mihail Marchukajtes:

Душевно!!! Всё заработало. Почему тогда в других индюках стоит тоже самое и при этом всё показывает???


Есть разные индикаторы: которые записывают данные в каждый индекс индикаторного массива, а есть индикаторы, которые данные пишут не во все индексы (например фракталы - там данные пишутся в некоторые индексы, а там где нет фракталов пишется или "0" или EMPTY_VALUE).

Mihail Marchukajtes
4860
Mihail Marchukajtes  
Vladimir Karputov:

Есть разные индикаторы: которые записывают данные в каждый индекс индикаторного массива, а есть индикаторы, которые данные пишут не во все индексы (например фракталы - там данные пишутся в некоторые индексы, а там где нет фракталов пишется или "0" или EMPTY_VALUE).


Изначально в тетвёрке это было для того чтобы заполнить буфер нулями перед записью его. Сейчас я так понимаю смысл подобной функции изменился...

Vladimir Karputov
Модератор
85768
Vladimir Karputov  
Mihail Marchukajtes:

Изначально в тетвёрке это было для того чтобы заполнить буфер нулями перед записью его. Сейчас я так понимаю смысл подобной функции изменился...


Смысл в индикаторах всегда один:

  • при первом проходе или подкачке истории ОБЯЗАТЕЛЬНО пройтись по каждому индексу индикаторного буфера
  • в последующих проходах ОБЯЗАТЕЛЬНО пройтись по новым индексам 
  • также многие индикаторы многократно пересчитывают самый правый бар на графике - для актуальности данных.
При этом есть индикаторы которые в каждый индекс пишут актуальные данные, а есть те, кто пропускает некоторые индексы. Но пропустить индекс и ничего туда не записав - это неправильно, там будет мусор. Поэтому в пропускаемые индексы пишут "0" или "EMPTY_VALUE".

Mihail Marchukajtes
4860
Mihail Marchukajtes  
Vladimir Karputov:

Смысл в индикаторах всегда один:

  • при первом проходе или подкачке истории ОБЯЗАТЕЛЬНО пройтись по каждому индексу индикаторного буфера
  • в последующих проходах ОБЯЗАТЕЛЬНО пройтись по новым индексам 
  • также многие индикаторы многократно пересчитывают самый правый бар на графике - для актуальности данных.
При этом есть индикаторы которые в каждый индекс пишут актуальные данные, а есть те, кто пропускает некоторые индексы. Но пропустить индекс и ничего туда не записав - это неправильно, там будет мусор. Поэтому в пропускаемые индексы пишут "0" или "EMPTY_VALUE".


Понятно. Просто я думал немного по другому. Мы изначально заполняем весь буфер нулями, а потом начинаем в него писать. Если какой бар не записали, то там сохранится ноль. ЧТо в принципе избавляет нас от этого самого мусора. Признаюсь честно ещё только одупляюсь с пятёркой. НО всё равно спасибо за разяснения.....!!!!

Mihail Marchukajtes
4860
Mihail Marchukajtes  

Не могу разобратся. Как в отладчике посмотреть значение функции??? Пишет Unknown identifier....

Mihail Marchukajtes
4860
Mihail Marchukajtes  

Вообще не понятен вызов функции ICustom. Я делаю вот так... что тут не правильно???

в он Ините

   MA_handle=iCustom(Symbol(),0,"TDSEQUENTA_by_nikelodeon",5,5);

Далее...

double Sig(int index)
  {
   double MA[1];
   ResetLastError();
   if(CopyBuffer(MA_handle,3,index,1,MA)<0)
     {
      PrintFormat("Failed to copy data from the iMA indicator, error code %d",GetLastError());
      return(0.0);
     }
   return NormalizeDouble(MA[0],Digits());
  }

Хотя по итогу в скрипте такая конструкция работает, а вот и индикаторе работать не хочет. Полтергейст прям!!!!

Ihor Herasko
16468
Ihor Herasko  
Mihail Marchukajtes:

Не могу разобратся. Как в отладчике посмотреть значение функции??? Пишет Unknown identifier....


Присвоить значение функции какой-нибудь переменной, а переменную вынести в контрольные значения. Значение переменной будет доступно после выхода из функции.

Ihor Herasko
16468
Ihor Herasko  
Mihail Marchukajtes:

Вообще не понятен вызов функции ICustom. Я делаю вот так... что тут не правильно???

в он Ините

Далее...

Хотя по итогу в скрипте такая конструкция работает, а вот и индикаторе работать не хочет. Полтергейст прям!!!!


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

Alexey Viktorov
20923
Alexey Viktorov  
Ihor Herasko:

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

CopyBuffer может и не будет работать в OnInit, но получить хендл индикатора никто не запрещал.

Mihail Marchukajtes
4860
Mihail Marchukajtes  

Ну что же... Мои познания МТ5 продолжают развиваться, проблема в следующем. Есть индикатор, который читает данные из файла. Однако при тестировании его в агенте, пишет ошибка открытия файла. Хотя я эти файлы положил в тестер агенту. Но он всё равно ругается на то что не может открыть файл. Как так???

Выкладываю индикатор и файл к нему. ЧТо нужно сделать чтоб в тестере этот индикатор работал. Ну и в реалтайме тоже.. естественно!!!!!

Файлы:
f_OI.mq5 10 kb
Si-12.17_OI.txt 5760 kb
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий