Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Прошу принять к сведенью разработчиков терминала.
что данная опперация не совсем корректно работает
так как я уже который час бьюсь и немогу принят те данные которые нужно, самми посудите чем отличается всеголиш 4 строки между собой и почему вторая строка не дает ответа ставильного
Первая строка дает мне из 0 буффера плавающий но нудный ответ 0 бара.
вторая должна выдать мне 1 бар я его поменял на 10 может думаю глюк в 1 баре
и добавил еще 2 строки
и результат печатаю в журнал
а там просто хаос
как видите 0 бар всегда расчитывается.. 20 тоже.. 21 тоже.. а вот 10 почемуто 0.. чтоб я туда не писал..ни первый ни 2 ни третий.. глюк какойто
"как видите 0 бар всегда расчитывается.. 20 тоже.. 21 тоже" - эти бары синенькие (Blue), их значения лежат в буфере UpBuffer, индекс этого буфера 0.
" а вот 10 почемуто 0.. чтоб я туда не писал..ни первый ни 2 ни третий. . глюк какойто" - эти бары не синенькие, их значения лежат в других буферах, индекс этих буферов не равен нулю.
Вам всё правильно уже объяснили. Внимательно изучите свой индикатор. Ненулевое значение индикатора может лежать в любом из четырех буферов. Вы же проверяете только нулевой буфер.
Прошу принять к сведенью разработчиков терминала.
что данная опперация не совсем корректно работает
так как я уже который час бьюсь и немогу принят те данные которые нужно, самми посудите чем отличается всеголиш 4 строки между собой и почему вторая строка не дает ответа ставильного
Первая строка дает мне из 0 буффера плавающий но нудный ответ 0 бара.
вторая должна выдать мне 1 бар я его поменял на 10 может думаю глюк в 1 баре
и добавил еще 2 строки
и результат печатаю в журнал
а там просто хаос
как видите 0 бар всегда расчитывается.. 20 тоже.. 21 тоже.. а вот 10 почемуто 0.. чтоб я туда не писал..ни первый ни 2 ни третий.. глюк какойто
"как видите 0 бар всегда расчитывается.. 20 тоже.. 21 тоже" - эти бары синенькие (Blue), их значения лежат в буфере UpBuffer, индекс этого буфера 0.
" а вот 10 почемуто 0.. чтоб я туда не писал..ни первый ни 2 ни третий. . глюк какойто" - эти бары не синенькие, их значения лежат в других буферах, индекс этих буферов не равен нулю.
Вам всё правильно уже объяснили. Внимательно изучите свой индикатор. Ненулевое значение индикатора может лежать в любом из четырех буферов. Вы же проверяете только нулевой буфер.
Похоже надо переделывать индикатор и оставлять только один буфер, тогда и проблемы исчезнут.
Потому как Один из буфферов несет значение, а остальные пустые в это время. И проверять каждый раз надо все, и брать тот, который не равен нулю.
Да это действительно так и оказалось.. тепер надо брать каждый буфер и его перепроверять.. долгий и кропотливай труд.. дабы получить еддиный..
кто может помочь обьеденить в советнике эти 4 буфера в 1.. для каждого бара или это проблемно и тоже долго ?
пока разобрался кто где лежит уже бошка разваливается.. что от чего отнять к чему присвоить чтбы правильно получить ответ и его сравнить тока..
Сложи все буферы. Чтобы не было проблем, установи для каждого нулевой уровень функцией SetIndexEmptyValue() . Но я не уверен, что эта функция тут нужна.
Ой, Simca это уже написал...
как видите 0 бар всегда расчитывается.. 20 тоже.. 21 тоже.. а вот 10 почемуто 0.. чтоб я туда не писал..ни первый ни 2 ни третий.. глюк какойто
Если индикатор корректно обнуляет значения неиспользуемых цветовых буферов и присваивает значение только нужному буферу, то чтобы сильно не заморачиваться и не искать нужный буфер, можно попробовать просто сложить значения всех четырех (с 0 по 3, вроде на гистограмме используется 4 цвета) буферов для требуемого бара и по идее получится нужное значение индикатора (повторяю, прокатит если неиспользуемые буфера обнуляются).
Еще, часто разработчики (сам так делаю) сохраняют расчитанное значение индикатора (чтобы лишний раз не пересчитывать) во вспомогательном (не отображаемом) буфере, но вызвать то его значения из эксперта можно. :) Попробуйте запросить значения буферов с номером большим чем цветовых буферов на графике. Вполне возможно что где-нибудь в пятом (т.е. с индексом 4, т.к. с 0 считаем) буфере и будет нужное Вам значение индикатора (не придется ничего искать и суммировать). :)
тепрь результат обьеденен, осталось малое, сравнить его и дать волю ) Всем спасибо. Действительно стоющий форум со Знатоками. Всех благ Товарищи и процветания. Будут еще вопросы обязательно напишу. а пока как и вы буду просмотривать и брать на вооружение все что есть и учить младших коллег. С найлутьшим пожеланиями Виталий.Да прокатло очень даже скажу ничего..
Подымаю ветку т.к. перечитав несколько подобных сообщений на форуме, возможно по неграмотности, не нашел ответа или общего механизма.
Проблема следующая: вызываю индиактор из эксперта получаю 0 или empty_value, вызываю из скрипта получаю верные результаты, совпадающие с визуальной интерпритацией индикатора.
Далее интереснее - включаю тестер, прогоняю советник, не получаю необходимые результаты. Останавливаю тестер. Прикрепляю скрипт, получаю значения индикатора за текущий момент, а не на момент остановки графика.
И собственно вопрос, как получить требуемые результаты от индикатора в советнике?
Почему прикрепленный скрипт выдает результаты за текущий момент, а не на момент остановки советника?
Вызывается индикатор верно, т.к. на графике при работе скрипта, последний дает результаты соответствующие истине. Такой же вызов используется и в эксперте. Я видел как Rosh советовал делать массивы в отдельном индикаторе и в массивы присваивать значения необходимых индикаторов индикаторов, но упорно не понимаю как это может помочь делу. Поэтому решил не танцевать с бубном, а спросить у тех кто уже решил этот вопрос. Опять же, возможно я не понял ROSH-а. Ветка с объяснением https://forum.mql4.com/ru/7081
у вас переменные инициализируются на глобальном уровне
да и все другие. при таком раскладе возможны неопределенного рода эффекты при распределении памяти под них. Попробуйте перенести инициализацию в функцию init()
у вас переменные инициализируются на глобальном уровне
да и все другие. при таком раскладе возможны неопределенного рода эффекты при распределении памяти под них. Попробуйте перенести инициализацию в функцию init()
Спасибо конечно, но если вы посмотрите на даты, то я думаю тот вопрос на который вы ответили, уже решили. Меня больше волнует своя проблема, а ветки плодить не хочется одинаковые!
но если вы посмотрите на датычерт...:))))