Нужно понимать разницу при работе ИЗ советника и ИЗ индикатора. Для работы из индикатора пользуйтесь примером из справки (iMA).
Так вы возьмите пример из справки iMA, добавьте
ArraySetAsSeries(iMABuffer, true);
comm = (string)DoubleToString(iMABuffer[0], Digits());
ArraySetAsSeries(iMABuffer, false);
Comment(comm);
и убедитесь, что значение отличается от значения, выводимого вашим экспертом, ровно на ma_shift баров.
Мне же нужно получить в индикаторе в iMABuffer[0] значение, как у вас в эксперте в array_ma[0].
Как минимум, на текущий момент можно видеть, что поведение CopyBuffer для экспертов и для индикаторов отличается. Если вы понимаете разницу CopyBuffer при работе ИЗ советника и ИЗ индикатора, просьба указать соответствующий раздел документации для изучения.
Я попробую упростить вопрос. Как мне в индикаторе получить в буфер вот эти значения MA (начиная от красной вертикальной линии и влево)? Можете написать пример?
Я попробую упростить вопрос. Как мне в индикаторе получить в буфер вот эти значения MA (начиная от красной вертикальной линии и влево)? Можете написать пример?
На скрине отображение буфера смещено на пять баров вправо. Значит - чтобы получить пятый бар индикаторного буфера (с индексом 4), и далее по списку влево, откуда их нужно получить? Из Buffer[4] и далее влево.
В теории. На практике - дааавно не открывал код индикаторов, и не работал с ними - почти год как... Попробуйте.
На скрине отображение буфера смещено на пять баров вправо. Значит - чтобы получить пятый бар индикаторного буфера (с индексом 4), и далее по списку влево, откуда их нужно получить? Из Buffer[4] и далее влево.
В теории. На практике - дааавно не открывал код индикаторов, и не работал с ними - почти год как... Попробуйте.
Это верно. Но мне не нужны эти 5 значений справа, хочется иметь сразу в Buffer[0] нужное значение. Иначе в кучу функций для вычислений фракталов по MA и прочего мне придется передавать не только буфер, но еще и смещение. Это лишнее усложнение кода и лишнее замедление вычислений.
Скопировать в Buffer требуемые значения (без 5 значений MA справа) мне удается, только если в CopyBuffer для start_pos я передаю -2*ma_shift. В этом и изначальный вопрос - откуда там двойное отрицательное смещение. Просьба пояснить. Возможно - это баг, а возможно - и особенность MQL5.
Это верно. Но мне не нужны эти 5 значений справа, хочется иметь сразу в Buffer[0] нужное значение. Иначе в кучу функций для вычислений фракталов по MA и прочего мне придется передавать не только буфер, но еще и смещение. Это лишнее усложнение кода и лишнее замедление вычислений.
Скопировать в Buffer требуемые значения (без 5 значений MA справа) мне удается, только если в CopyBuffer для start_pos я передаю -2*ma_shift. В этом и изначальный вопрос - откуда там двойное отрицательное смещение. Просьба пояснить. Возможно - это баг, а возможно - и особенность MQL5.
Вы видите, что Вас не понимают. В таком случае обычно рисуют рисунок. ПОка не ясно ЧТО Вы хотите получить.
Добавлено: на рисунке нужно отобразить ЧТО должно получится В ИТОГЕ.
Это верно. Но мне не нужны эти 5 значений справа, хочется иметь сразу в Buffer[0] нужное значение. Иначе в кучу функций для вычислений фракталов по MA и прочего мне придется передавать не только буфер, но еще и смещение. Это лишнее усложнение кода и лишнее замедление вычислений.
Скопировать в Buffer требуемые значения (без 5 значений MA справа) мне удается, только если в CopyBuffer для start_pos я передаю -2*ma_shift. В этом и изначальный вопрос - откуда там двойное отрицательное смещение. Просьба пояснить. Возможно - это баг, а возможно - и особенность MQL5.
Смещение - это просто сдвиг отображения машки. Самое правое значение будет в Buffer[0]. Если нужно узнать значение машки на нулевом баре, то оно будет в Buffer[0 + shift].
Если хотите без + shift, то в CopyBuffer() начальную позицию указывайте 0 + shift, тогда Buffer[0] будет содержать нужное значение.
Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Нужно понимать разницу при работе ИЗ советника и ИЗ индикатора. Для работы из индикатора пользуйтесь примером из справки (iMA).
Так вы возьмите пример из справки iMA, добавьте
и убедитесь, что значение отличается от значения, выводимого вашим экспертом, ровно на ma_shift баров.
Мне же нужно получить в индикаторе в iMABuffer[0] значение, как у вас в эксперте в array_ma[0].
Как минимум, на текущий момент можно видеть, что поведение CopyBuffer для экспертов и для индикаторов отличается. Если вы понимаете разницу CopyBuffer при работе ИЗ советника и ИЗ индикатора, просьба указать соответствующий раздел документации для изучения.
Я попробую упростить вопрос. Как мне в индикаторе получить в буфер вот эти значения MA (начиная от красной вертикальной линии и влево)? Можете написать пример?
Я попробую упростить вопрос. Как мне в индикаторе получить в буфер вот эти значения MA (начиная от красной вертикальной линии и влево)? Можете написать пример?
На скрине отображение буфера смещено на пять баров вправо. Значит - чтобы получить пятый бар индикаторного буфера (с индексом 4), и далее по списку влево, откуда их нужно получить? Из Buffer[4] и далее влево.
В теории. На практике - дааавно не открывал код индикаторов, и не работал с ними - почти год как... Попробуйте.
В теории. На практике - дааавно не открывал код индикаторов, и не работал с ними - почти год как... Попробуйте.
Мастерство не пропьёшь.
Мастерство не пропьёшь.
Да? Тогда по сто? С лимончиком...
На скрине отображение буфера смещено на пять баров вправо. Значит - чтобы получить пятый бар индикаторного буфера (с индексом 4), и далее по списку влево, откуда их нужно получить? Из Buffer[4] и далее влево.
В теории. На практике - дааавно не открывал код индикаторов, и не работал с ними - почти год как... Попробуйте.
Это верно. Но мне не нужны эти 5 значений справа, хочется иметь сразу в Buffer[0] нужное значение. Иначе в кучу функций для вычислений фракталов по MA и прочего мне придется передавать не только буфер, но еще и смещение. Это лишнее усложнение кода и лишнее замедление вычислений.
Скопировать в Buffer требуемые значения (без 5 значений MA справа) мне удается, только если в CopyBuffer для start_pos я передаю -2*ma_shift.
В этом и изначальный вопрос - откуда там двойное отрицательное смещение. Просьба пояснить. Возможно - это баг, а возможно - и особенность MQL5.
Это верно. Но мне не нужны эти 5 значений справа, хочется иметь сразу в Buffer[0] нужное значение. Иначе в кучу функций для вычислений фракталов по MA и прочего мне придется передавать не только буфер, но еще и смещение. Это лишнее усложнение кода и лишнее замедление вычислений.
Скопировать в Buffer требуемые значения (без 5 значений MA справа) мне удается, только если в CopyBuffer для start_pos я передаю -2*ma_shift.
В этом и изначальный вопрос - откуда там двойное отрицательное смещение. Просьба пояснить. Возможно - это баг, а возможно - и особенность MQL5.
Вы видите, что Вас не понимают. В таком случае обычно рисуют рисунок. ПОка не ясно ЧТО Вы хотите получить.
Добавлено: на рисунке нужно отобразить ЧТО должно получится В ИТОГЕ.
Это верно. Но мне не нужны эти 5 значений справа, хочется иметь сразу в Buffer[0] нужное значение. Иначе в кучу функций для вычислений фракталов по MA и прочего мне придется передавать не только буфер, но еще и смещение. Это лишнее усложнение кода и лишнее замедление вычислений.
Скопировать в Buffer требуемые значения (без 5 значений MA справа) мне удается, только если в CopyBuffer для start_pos я передаю -2*ma_shift.
В этом и изначальный вопрос - откуда там двойное отрицательное смещение. Просьба пояснить. Возможно - это баг, а возможно - и особенность MQL5.
Смещение - это просто сдвиг отображения машки. Самое правое значение будет в Buffer[0]. Если нужно узнать значение машки на нулевом баре, то оно будет в Buffer[0 + shift].
Если хотите без + shift, то в CopyBuffer() начальную позицию указывайте 0 + shift, тогда Buffer[0] будет содержать нужное значение.
Подскажите, какой инклюдник нужно подключить, чтобы добраться до функции MathCorrelationKendall() ?
Подключить:
#include <Math\Stat\Math.mqh>