Ошибки, баги, вопросы - страница 3125

 
Nikolai Semko #:

Боже, какие ж не удобные эти буферные индикаторы. Жуть.
С канвасным рисованием все гораздо проще, меньше кода, нагляднее, универсальнее и полная свобода действий.

Да уже всем давно понятно ваше пристрастие к канвасу. Но ведь не все так к нему привыкли… )))
 
Alexey Viktorov #:
Да уже всем давно понятно ваше пристрастие к канвасу. Но ведь не все так к нему привыкли… )))
Напрасно.
Привычка - дело наживное.
 
Nikolai Semko #:
Напрасно.
Привычка - дело наживное.

Ага… если раньше не сдохну…

 
С буферами проще работать, но на Канвас можно выводить что угодно. С другой стороны в пользовательских индикаторах на MQL5 также куча разнообразных типов индикаторных буферов. В общем, выбрав любой из данных способов программист не ошибется. Но выбор всегда должен зависеть от поставленной задачи...
 
Alexey Viktorov #:

Возможно не костыль, но пока у меня нет объяснений происходящему. Спасибо…

Вероятно зависит от того, какой буфер выше в построении. Достаточно изменить + на -

и тоже будет работать. Но мне надо было внутрь бара направить толщину.

Два цвета у Filling-буфера. Их оба нужно задать через запятую. От того, какой из них выше на экране, зависит цвет заливки. У тебя не указан один из цветов - заменяется на clrNONE

 
Mihail Matkovskij #:
С буферами проще работать, но на Канвас можно выводить что угодно. С другой стороны в пользовательских индикаторах на MQL5 также куча разнообразных типов индикаторных буферов. В общем, выбрав любой из данных способов программист не ошибется. Но выбор всегда должен зависеть от поставленной задачи...

Конечно же с буферами работать сложнее. Проще с канвасом.
Вы не сможете #property засунуть в функцию. 

А канвасную линию можно добавить одной строкой, передав массив в функцию.
Лично я больше использую канвас для визуализации некоторых процессов и промежуточных данных в процессе разработки. Так проще видеть проблемы и находить оптимальные решения. 
Если речь, конечно же, не о примитывных алгоритмах, построенных на пересечениях.
Вот, например, моя текущая работа. 
Весь этот венигрет служебный и очень мне помогает найти оптимальные решения. 
С буферами, конечно же, такое не сделать. Тем более такое рашение одинаково работает в экспертах и индикаторах. А также код работает и в MT4.

 

И реализуется это очень легко и быстро. Буквально на лету.
 
Nikolai Semko #:

Конечно же с буферами работать сложнее. Проще с канвасом.
Вы не сможете #property засунуть в функцию. 

А канвасную линию можно добавить одной строкой, передав массив в функцию.
Лично я больше использую канвас для визуализации некоторых процессов и промежуточных данных в процессе разработки. Так проще видеть проблемы и находить оптимальные решения. 
Если речь, конечно же, не о примитывных алгоритмах, построенных на пересечениях.
Вот, например, моя текущая работа. 
Весь этот венигрет служебный и очень мне помогает найти оптимальные решения. 
С буферами, конечно же, такое не сделать. Тем более такое рашение одинаково работает в экспертах и индикаторах. А также код работает и в MT4.

 

И реализуется это очень легко и быстро. Буквально на лету.

Такая задача как раз требует использование Канваса. И тут конечно же без вариантов. Хотя есть один вариант, это DirectX. Но не знаю, кто его использует в MQL приложениях?... Подобных примеров не встречал. Мне Канвас здорово помог, когда мне нужно было вывести осциллятор в чарт вместе с трендовыми индикаторами. Естественно, с помощью механизмов пользовательских индикаторов такого добиться нельзя. Создал 2 класса на основе CCanvas. Один выводит осцилляторы, второй трендовые индикаторы с помощью методов, куда передаются массивы значений индикаторов, массивы цветов и массивы цветовых индексов. Но когда мне нужно вывести один индикатор то я пользуюсь методами пользовательских индикаторов. Не знаю, почему. Либо привычка либо, не хочу излишне усложнять код, когда суть и сложность в вычислениях значений, а не в способе их вывода.

 
Mihail Matkovskij #:
Но выбор всегда должен зависеть от поставленной задачи...

Забыл сказать. Использование Канваса ещё очень удобно в роботах, где нужно вывести рассчётные значения в чарт, а индикаторных буферов как известно нет под рукой. Тогда вывести значения либо сигналы можно только с помощью Канваса, если их достаточно много (не 2-3 сигнала, которые можно вывести с помощью графических объектов).

 
Nikolai Semko #:

Боже, какие ж не удобные эти буферные индикаторы. Жуть.
С канвасным рисованием все гораздо проще, меньше кода, нагляднее, универсальнее и полная свобода действий.

Универсальность канваса заканчивается, когда его значения нужно получить из другого советника/индикатора.

Или ты уже нашел решение и этому? )

 
Andrey Khatimlianskii #:

Универсальность канваса заканчивается, когда его значения нужно получить из другого советника/индикатора.

Или ты уже нашел решение и этому? )

А какие проблемы, Андрей?
Формируешь структуру данных или массив структур хоть в советнике, хоть в индикаторе, и отправляешь ее в ресурс.
А на приемной стороне считываешь эту структуру или массив структур. 
Даже более удобнее получается, так как имеешь дело с именами и разными типами данных нужных размеров, а не пронумерованными double массивами на всю длину котировок. 
Если это индикатор для маркета, но необходимо предоставить покупателям класс, который считывает данные с ресурса.
Клиенту нужно только добавить инклуд и объявить экземпляр класса. Может еще вызвать методы из OnTimer и OnTick. И тогда этот экземпляр класса будет всегда иметь актуальные данные считываемого индикатора в виде удобно читамой структуры или массива структур.