Вопросы по индикаторам в МТ5 - страница 3

 
Rosh >>:

Модификатор - это уточняющий параметр, который указывает какой именно по счету идентификатор используется. В данном случае модификатор указывает на номер графической серии (стиля рисования), для которого задаются цвета в цветовом буфере. Теперь линия может иметь разноцветную раскраску и для этого нет необходимости создавать несколько цветных линий и отображать их поочередно, создавая иллюзию смены цвета одной линии.


Понятно. Спасибо.

 

"Мы лишь хотим, а они это могут!"

(с) не моё.

*

Дааа...
Выход из "индикаторного вопроса" лишь один... создание плоттера (П).
Если конечно не считать таки заложенной возможности открыть штатным индикаторам эту дорогу.

1. На базе индикатора.
т.е. привычным уже кодингом и управлением поставить\убрать.
Вроде бы идеальный вариант, однако... если возникли ВЕСКИЕ причины убрать из штатных,

то забивания этого костыля ввиде отдельной сущности П. это кхм... ну в общем гланды автогеном.

Проще открыть ту самую заложенную возможность...


2. На базе эксперта.
Вариант как бы не вызывает проблем, но костыли есть и поболее, правда уже другого порядка.
Главные из них: один эксперт на график, зависимость от разрешений кнопки и торговли...
Менее важные, но тем не менее нужные, это невозможность использования подокон графика.
Если строить плоттер, то придётся как минимум:
0) вводить возможность прикреплять более одного экперта на график
Впринципе не проблема, если в коде П. будет такой например идентификатор свойств
#property adv_chart_window_notrade
#property adv_separate_window_notrade
#property plotter_chart_window
#property plotter_separate_window
...
т.е., торговый эксперт как и ранее лишь один и всё остальное тоже,
но при попытке кинуть ещё один торговый, то получим мессагу "Низзя! ибо Горец!" :)))
А ежли в наличии один из свойств, то крепится. Впринципе достаточно и одного П.
Дополнительно, при наличии идентификаторов можно ввести блокировку для едитора
шоб тот ругался на попытку использовать торговые фукции Сенд, Клозе, Модиф...
а) вводить дополнительное управление добавки\снятия П с графика.
б) вводить дополнительные функции в мкл5
в) соответственно снабдить возможностью не обращать внимание на разрешения!
т.е. этот П. должен работать независимо от состояния кнопки и торговли...

и это лишь вкратце.
 
Rosh >>:

Вы же просили пример индикатора - я показал, где его можно увидеть. Вот код из раздела PlotIndexSetInteger (не PlotIndexGetInteger):


Рош, было бы очень интересно увидеть примеры кодов от разработчиков

до выхода МТ5, это позволит как можно скорее освоить новый язык

конечно те коды, в которых есть новшества

--

 

А вот такой вопрос:

В 5-й версии кол-во инд.буферов не ограничено. Это хорошо. Это удобно. Но оговаривается, что злоупотреблять их кол-м не следует, т.к. жрет память терминала.

Хотелось бы понять ограничения. Злоупотребление это сколько? Когда для терминала это станет критично? Понятно, что зависит от истории, от типа (теперь не тока дабл), можно прикинуть размер памяти, но при современных объемах памяти - это капля в море.

Может, терминал как-то по-другому с этим завязан, что приходится оговариваться о "злоупотреблении"??? Хотелось бы услышать от разработчиков.

 
Если история по символу содержит миллион баров, то и индикатор с одним буфером будет содержать миллион значений. Если таких буферов будет 1000, то и запросы индикатора вырастут в 1000 раз. Мы не проводили специальных стресс-тестов по индикаторам.
 
Rosh >>:
Если история по символу содержит миллион баров, то и индикатор с одним буфером будет содержать миллион значений. Если таких буферов будет 1000, то и запросы индикатора вырастут в 1000 раз. Мы не проводили специальных стресс-тестов по индикаторам.

Спасибо. Прикинуть аппетит можно - это ясно. Насторожило предостережение ТОЛЬКО в контексте инд.буферов. Потому и спросил, нет ли каких специф. для них ограничений, кроме физ.памяти.

И вот еще, может, тупой вопрос и не в той ветке:

Дополн.инд.буферы нужны обычно для промежуточных расчетов, т.е. выводить на график их не надо. Может, экономичнее в плане памяти и быстродействия просто сделать особый тип массивов со свойствами инд.буфров? Т.е. серийник с автоматическим сдвигом и динам.длиной? Или вот, хотя бы сделать быструю операцию по сдвигу небулева массива. Хрен с ней, с дин. длиной. Обычно все Bars не требуются.

(Еще раз пардон, если не то спросил. Просто в др. терм.прогах - TS там, да даже Метасток это так. А выводить или не выводить - дело пользователя)

 
Svinozavr >>:


И вот еще, может, тупой вопрос и не в той ветке:

Дополн.инд.буферы нужны обычно для промежуточных расчетов, т.е. выводить на график их не надо. Может, экономичнее в плане памяти и быстродействия просто сделать особый тип массивов со свойствами инд.буфров? Т.е. серийник с автоматическим сдвигом и динам.длиной? Или вот, хотя бы сделать быструю операцию по сдвигу небулева массива. Хрен с ней, с дин. длиной. Обычно все Bars не требуются.


Посмотрите раздел по пользовательским индикаторам в MQL5 - думаю, вопросы отпадут. Предусмотрено три вида индикаторных массива :

  • для отображения индикатора;
  • для указания цвета отрисовки;
  • вспомогательные, используемые промежуточных для расчетов.




Количество индикаторных буферов, которые можно использовать в пользовательском индикаторе, не ограничено. Но каждому массиву, который назначается в качестве индикаторного буфера с помощью функции

 
Roffild >>:

В упор не понимаю: в чем проблема тестирования индикатора?

Пример такого индикатора можно увидеть?

Индикатор - это сильно заоптимизированная и разделяемая между разными графиками сущность, которая жестко заточена под максимально быстрые расчеты/перемалывания числовых рядов.

В МТ5 числовые ряды представляют собой миллионы баров, на пересчете которых не может идти речи о вольных действиях или отвлечениях на отрисовку.

Индикатор экономично считает себя на предоставляемых данных (данные могут быть кусочные, а не весь массив в миллионы баров, оптимизацией предоставляемых данных занимается терминал) и сообщает, как надо рисовать финальные буферы. Самостоятельной отрисовкой индикатор не занимается.

Индикатор могут вызвать откуда угодно с каким угодно куском входящих данных, а он должен только пересчитать свои буферы.


Любой рисующий себя индикатор может стать примером проблем.

 
Renat писал(а) >>

Индикатор - это сильно заоптимизированная и разделяемая между разными графиками сущность, которая жестко заточена под максимально быстрые расчеты/перемалывания числовых рядов.

В МТ5 числовые ряды представляют собой миллионы баров, на пересчете которых не может идти речи о вольных действиях или отвлечениях на отрисовку.

Индикатор экономично считает себя на предоставляемых данных (данные могут быть кусочные, а не весь массив в миллионы баров, оптимизацией предоставляемых данных занимается терминал) и сообщает, как надо рисовать финальные буферы. Самостоятельной отрисовкой индикатор не занимается.

Индикатор могут вызвать откуда угодно с каким угодно куском входящих данных, а он должен только пересчитать свои буферы.


Любой рисующий себя индикатор может стать примером проблем.

Повидимому, проблема спрятана в терминологии.

Если "эту сильно заоптимизированную и разделяемую между разными графиками сущность, которая жестко заточена под максимально быстрые расчеты/перемалывания числовых рядов" назвать и определить как, ну например, математический процессор, а термин "индикатор" использовать для обозначения общепринятого установившегося понятия, то всё становится на свои места.

Индикатор работает именно как индикатор. Матпроцессор занимается обработкой запросов. И т.д.

 
Rosh >>:

Посмотрите раздел по пользовательским индикаторам в MQL5 - думаю, вопросы отпадут. Предусмотрено три вида индикаторных массива :

  • для отображения индикатора;
  • для указания цвета отрисовки;
  • вспомогательные, используемые промежуточных для расчетов.




Количество индикаторных буферов, которые можно использовать в пользовательском индикаторе, не ограничено. Но каждому массиву, который назначается в качестве индикаторного буфера с помощью функции

Пардон - ступил. Вопросов нет. (Если у вас опять ничего не получилось, прочтите наконец инструкцию!)))

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