Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 665

 
Artyom Trishkin:

Никто такие портянки глядеть не будет.


 А что тогда тут глядят? "Портянка" - индикатор "Murrey-levels-system" (думаю многие его знают). Вопрос был как правильно из него "извлечь"

нужные данные для iCustom().

 
psyman:

Почему нельзя использовать динамический массив?

В данном случае у меня туда переписывается цена закрытия без каких-либо вычислений.

Где можно почитать как пользоваться индикаторными буферами?

Можно здесь: https://book.mql4.com/ru/samples/icustom

Создание пользовательских индикаторов - Простые программы на MQL4 - Учебник по MQL4
Создание пользовательских индикаторов - Простые программы на MQL4 - Учебник по MQL4
  • book.mql4.com
При создании торговой стратегии у разработчика часто возникает необходимость графически отобразить в окне финансового инструмента некоторую зависимость, рассчитанную пользователем (программистом). Для этой цели в языке MQL4 предусмотрена возможность создания пользовательских индикаторов. Пользовательский индикатор - это программа, составленная...
 

Там рассказывают как делать вычисления и передавать их в терминал для отображения.

У меня промежуточные вычисления никуда не выводятся, поэтому мои школьные познания в программировании подсказывают мне что для этого достаточно динамического массива который увеличивается на каждом i++.

Зачем использовать для этого использовать буфер для меня загадка, на которую пока нет ответа.

 
psyman:

Почему нельзя использовать динамический массив?

В данном случае у меня туда переписывается цена закрытия без каких-либо вычислений.

Где можно почитать как пользоваться индикаторными буферами?

Использовать-то можно. Но перед записью в него надо увеличить его размер. А читать можно в документации. Ведь один буфер вы объявили в своём индикаторе...

psyman:

Там рассказывают как делать вычисления и передавать их в терминал для отображения.

У меня промежуточные вычисления никуда не выводятся, поэтому мои школьные познания в программировании подсказывают мне что для этого достаточно динамического массива который увеличивается на каждом i++.

Зачем использовать для этого использовать буфер для меня загадка, на которую пока нет ответа.

Автоматом при каждом i++ увеличивается размер только массива индикаторного буфера.
IndicatorBuffers - Пользовательские индикаторы - Справочник MQL4
IndicatorBuffers - Пользовательские индикаторы - Справочник MQL4
  • docs.mql4.com
Количество буферов не может превышать 512, а также не может быть меньше значения, указанного в свойстве #property indicator_buffers. Если пользовательский индикатор требует дополнительных буферов для расчета, то необходимо использовать функцию IndicatorBuffers() для указания общего числа буферов...
 

= А читать можно в документации.


Дайте пж ссылку.

Добавил SetIndexBuffer(1, tmp1), но ничего не поменялось.

Насколько понимаю после назначения массиву буфера, обращение к нему происходит как к массиву и с тем же именем, но фактически это буфер. Так?

 
psyman:

= А читать можно в документации.


Дайте пж ссылку.

Добавил SetIndexBuffer(1, tmp1), но ничего не поменялось.

Насколько понимаю после назначения массиву буфера, обращение к нему происходит как к массиву и с тем же именем, но фактически это буфер. Так?

Примечание

Количество буферов не может превышать 512, а также не может быть меньше значения, указанного в свойстве #property indicator_buffers. Если пользовательский индикатор требует дополнительных буферов для расчета, то необходимо использовать функцию IndicatorBuffers() для указания общего числа буферов.

А дальше есть пример. Если есть один буфер для отображения и нужен один для расчётов, то в IndicatorBuffers должно быть 2 и только после этого SetIndexBuffer(1, tmp1); при предварительном объявлении массива на уровне глобальных переменных.

 
Anatoliy Ryzhakov:

 А что тогда тут глядят? "Портянка" - индикатор "Murrey-levels-system" (думаю многие его знают). Вопрос был как правильно из него "извлечь"

нужные данные для iCustom().

Ещё раз. Внимательно смотрим на картинку:


 
psyman:

Почему нельзя использовать динамический массив?

В данном случае у меня туда переписывается цена закрытия без каких-либо вычислений.

Где можно почитать как пользоваться индикаторными буферами?

Вы чего-то не понимаете!

Динамический массив используется для записи динамических данных (то есть, поступающих котировок, времени и так далее).

Динамические массивы не следует использовать при вычислениях.

То есть, все просто - ЛИБО ВЫ ЗАПИСЫВАЕТЕ  - ЛИБО ВЫ ВЫЧИСЛЯЕТЕ !!!

Надеюсь это понятно (!!!???)

Если говорить об индикаторах, то индикаторы (вообще говоря!) следует ВЫЧИСЛЯТЬ. Но в МТ4/МТ5 мы этого не наблюдаем!

В MT4/MT5 все индикаторы динамические. (Или есть другие? - Не знаю. Я все не проверял. Но других не видел.)

Не знаю, хорошо это или плохо - не берусь судить.

Стандартные индикаторы в MT4/MT5 все динамические (если я ошибаюсь, то пусть меня поправят! Но я не увидел других.)

Поэтому, перед решением Вашей задачи ее следует сформулировать.

Что Вы хотите - ЗАПИСЫВАТЬ или ВЫЧИСЛЯТЬ ???

А после этого принимать решения, какие массивы Вам нужны.

Надеюсь я понятно все изложил.

 
neverness:

Вы чего-то не понимаете!

Динамический массив используется для записи динамических данных (то есть, поступающих котировок, времени и так далее).

Динамические массивы не следует использовать при вычислениях.

То есть, все просто - ЛИБО ВЫ ЗАПИСЫВАЕТЕ  - ЛИБО ВЫ ВЫЧИСЛЯЕТЕ !!!

Надеюсь это понятно (!!!???)

Если говорить об индикаторах, то индикаторы (вообще говоря!) следует вычислять. Но в МТ4/МТ5 мы этого не наблюдаем!

Не знаю, хорошо это или плохо - не берусь судить.

Стандартные индикаторы в MT4/MT5 все динамические (если я ошибаюсь, то пусть меня поправят! Но я не увидел других.)

Поэтому, перед решением Вашей задачи ее следует сформулировать.

Что Вы хотите - ЗАПИСЫВАТЬ или ВЫЧИСЛЯТЬ ???

А после этого принимать решения, какие массивы Вам нужны.

Надеюсь я понятно все изложил.

Но не верно.

Кто мешает использовать динамический массив при вычислениях? За размером динамического массива (если это НЕ индикаторный буфер, за которым следит подсистема) нужно следить самому, и при необходимости менять его размер. Статический же массив постоянно имеет единожды заданный размер - тут всё зависит от конкретной задачи.

Если говорить об индикаторах, то индикаторы (вообще говоря!) следует вычислять. Но в МТ4/МТ5 мы этого не наблюдаем!

Что за необоснованная чушь? Индикаторы в своём подавляющем большинстве только и занимаются, что вычисляют и отображают необходимое и достаточное количество рассчитанных данных. Постоянно, на каждом тике.

Что за набросы? От незнания? Тогда лучше промолчать. Потом люди будут говорить, что читали это на официальном форуме МК. Вы нарочно дезу создаёте?

 

в private создал переменную

в методе класса пытаюсь с ней произвести действия

ругается что переменная не объявлена

???

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