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

[Удален]
Vladimir Karputov:

Нужно понимать разницу при работе ИЗ советника и ИЗ индикатора. Для работы из индикатора пользуйтесь примером из справки (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 (начиная от красной вертикальной линии и влево)? Можете написать пример?


RickD:

Я попробую упростить вопрос. Как мне в индикаторе получить в буфер вот эти значения MA (начиная от красной вертикальной линии и влево)? Можете написать пример?


На скрине отображение буфера смещено на пять баров вправо. Значит - чтобы получить пятый бар индикаторного буфера (с индексом 4), и далее по списку влево, откуда их нужно получить? Из Buffer[4] и далее влево.

В теории. На практике - дааавно не открывал код индикаторов, и не работал с ними - почти год как... Попробуйте.

Artyom Trishkin:


В теории. На практике - дааавно не открывал код индикаторов, и не работал с ними - почти год как... Попробуйте.

Мастерство не пропьёшь.

Alexey Viktorov:

Мастерство не пропьёшь.

Да? Тогда по сто? С лимончиком...

[Удален]
Artyom Trishkin:

На скрине отображение буфера смещено на пять баров вправо. Значит - чтобы получить пятый бар индикаторного буфера (с индексом 4), и далее по списку влево, откуда их нужно получить? Из Buffer[4] и далее влево.

В теории. На практике - дааавно не открывал код индикаторов, и не работал с ними - почти год как... Попробуйте.

Это верно. Но мне не нужны эти 5 значений справа, хочется иметь сразу в Buffer[0] нужное значение. Иначе в кучу функций для вычислений фракталов по MA и прочего мне придется передавать не только буфер, но еще и смещение. Это лишнее усложнение кода и лишнее замедление вычислений.

Скопировать в Buffer требуемые значения (без 5 значений MA справа) мне удается, только если в CopyBuffer для start_pos я передаю -2*ma_shift.
В этом и изначальный вопрос - откуда там двойное отрицательное смещение. Просьба пояснить. Возможно - это баг, а возможно - и особенность MQL5.

RickD:

Это верно. Но мне не нужны эти 5 значений справа, хочется иметь сразу в Buffer[0] нужное значение. Иначе в кучу функций для вычислений фракталов по MA и прочего мне придется передавать не только буфер, но еще и смещение. Это лишнее усложнение кода и лишнее замедление вычислений.

Скопировать в Buffer требуемые значения (без 5 значений MA справа) мне удается, только если в CopyBuffer для start_pos я передаю -2*ma_shift.
В этом и изначальный вопрос - откуда там двойное отрицательное смещение. Просьба пояснить. Возможно - это баг, а возможно - и особенность MQL5.

Вы видите, что Вас не понимают. В таком случае обычно рисуют рисунок. ПОка не ясно ЧТО Вы хотите получить.


Добавлено: на рисунке нужно отобразить ЧТО должно получится В ИТОГЕ.

[Удален]
RickD:

Это верно. Но мне не нужны эти 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() ?
Документация по MQL5: Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall
Документация по MQL5: Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall
  • www.mql5.com
Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Сергей Таболин:
Подскажите, какой инклюдник нужно подключить, чтобы добраться до функции  MathCorrelationKendall() ?

Подключить:

#include <Math\Stat\Math.mqh>