Для тех, кто пишет индикаторы - страница 2

 
Alexey Viktorov:

Такое впечатление, что аккаунт Игоря взломали и пишут такую ахинею специально чтобы понизить его рейтинг программиста.

Какой головняк запихнуть прерывистую линию??? Какая проблема назначить стиль STYLE_DASH

и как вы определяете-задаете разрывы этой линии?
речь ведь не о стилях, а о возможностях хранить информацию начала и конца линий

 
Taras Slobodyanik:

и как вы определяете-задаете разрывы этой линии?
речь ведь не о стилях, а о возможностях хранить информацию начала и конца линий

В чём проблема? SetIndexStyle - DRAW_SECTION и STYLE_DASH проблема только в том, что для STYLE_DASH можно поставить толщину только 1 пиксель.

Или я что-то не так понял?

Вообще, крайне неверно утверждение, что буферы занимают больше памяти и обращение к ним происходит дольше. Попробуйте прогнать в режиме визуализации любой советник. Тестер ставит свои метки открытия и закрытия ордеров. Когда накапливается какое-то количество графических объектов, скорость тестирования заметно падает. Когда увидите, что скорость упала, поставьте паузу, нажмите Ctrl+b, затем выделить все объекты Ctrl+а и нажать кнопку "Удалить", после чего снимите паузу и удивитесь скоростью тестирования.

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


PS: Я почему-то перепутал в каком разделе эта тема, думал что в разделе mql4, но... А в mql5 всё гораздо проще. Есть дополнительные, относительно mql4, стили рисования. Только стиль DRAW_FILLING чего стоит и как его нехватает в mql4.

 
Alexey Viktorov:

В чём проблема? SetIndexStyle - DRAW_SECTION и STYLE_DASH проблема только в том, что для STYLE_DASH можно поставить толщину только 1 пиксель.

Или я что-то не так понял?

расскажите как с помощью индикаторных буферов сделать такой индикатор

1

или такой

3

 
Taras Slobodyanik:

расскажите как с помощью индикаторных буферов сделать такой индикатор

или такой


Не надо впадать в крайности. Всё началось с этих слов

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Для тех, кто пишет индикаторы

Ihor Herasko, 2018.10.23 09:35

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

А что делать, если нужно отобразить не уровень, а зону? Как это запихнуть в индикаторный буфер? Гистограммой, которая рисуется двумя индикаторными буферами? Если же нарисовать прямоугольник, то это также просто, как нарисовать трендовую линию.

Кроме того, индикаторный буфер неоптимален с точки зрения потребления памяти, т. к. заполняет всю имеющуюся торговую историю. Пользователю же, зачастую, вся история не нужна, его интересуют ближайшие 1000 - 2000 баров. На этом промежутке истории получим несколько десятков сигналов индикатора, которые будут представлены таким же количеством графических объектов. Да, графический объект в сравнении с индикаторным буфером имеет намного низшую производительность, но не в десятки раз, а в лучшем случае раза в 2. Когда же речь идет о сотне графических объектов и индикаторном буфере, обслуживающем историю на 100 000 баров, то графические объекты выигрывают.

И ни смотря ни на что, если количество линий неизменно, то и эти индикаторы сделать на mql5 с индикаторными буферами достаточно легко.
 
Alexey Viktorov:

Не надо впадать в крайности. Всё началось с этих слов

И ни смотря ни на что, если количество линий неизменно, то и эти индикаторы сделать на mql5 с индикаторными буферами достаточно легко.

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

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

Alexey Viktorov:

И ни смотря ни на что, если количество линий неизменно, то и эти индикаторы сделать на mql5 с индикаторными буферами достаточно легко.

ок, как это сделать легко?
Допустим у нас есть 5 горизонтальных линий над ценой и 5 под.

как это делается легко?

 
Taras Slobodyanik:

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

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

С таким подходом проще будет вручную стрелочки и линии раскладывать по графику. Программирование далеко не проще этого.....

 
Taras Slobodyanik:

Допустим у нас есть 5 горизонтальных линий над ценой и 5 под.

как это делается легко?

На слово поверишь что в этом индикаторе не графические линии?


 
Alexey Viktorov:

На слово поверишь что в этом индикаторе не графические линии?


Поверю - дайте этот код посмотреть @Aliaksandr Hryshyn чтобы он увидел, что это практически тоже самое что трендовые линии.

...и нужно также искать точки начала и конца линии)

пс. то есть фактически, мы имеем теже самые трендовые линии, но с бОльшими ограничениями, и меньшими возможностям (тавтология вышла)
 
Taras Slobodyanik:

Поверю - дайте этот код посмотреть @Aliaksandr Hryshyn чтобы он увидел, что это практически тоже самое что трендовые линии.

...и нужно также искать точки начала и конца линии)

Аналогичный индикатор продаётся в маркете за $70. Я хотел сначала разместить этот код в CodeBase, но подумал что не стоит перебивать бизнес человеку. Не знаю как тот код организован, можете посмотреть тестовый вариант. Индикатор 3 свечи Стоуэлла.


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

 
Taras Slobodyanik:

расскажите как с помощью индикаторных буферов сделать такой индикатор

или такой


В один невидимый буфер сложить все уровни, что бы индикатор можно было вызывать из советника. Если важна не только цена но время появления уровней, то и время тоже сложить в буфер.

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