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

 
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>
 
Vladimir Karputov:

Подключить:

Спасибо.

 
Если хотите без  + shift, то в CopyBuffer() начальную позицию указывайте 0 + shift, тогда Buffer[0] будет содержать нужное значение.

Это все понятно. Вопрос - какую начальную позицию указать в CopyBuffer, чтобы получилось в ваших терминах "без + shift" ?

 
Vladimir Karputov:

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


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

Рисунок уже был. Я повторю.

Нужно, чтобы в Buffer[0] попало значение MA, соответствующее красной вертикальной линии.
В Buffer[1] значение MA слева от красной линии. И т.д.

И все это - в индикаторе.


Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
RickD:

Это все понятно. Вопрос - какую начальную позицию указать в CopyBuffer, чтобы получилось в ваших терминах "без + shift" ?

То значение, которое Вы добавляете для смещения МА - 1.

Причина обращения: