Члены структуры как буферы индикатора. - страница 2

 
Joo Zepper:

Победил...

Но... меня этот MQL5 просто выбешивает! Где элементарная логика?!!!!

Никто никогда не догадается с первого раза как нужно сделать правильно, и ведь в справке об этом ни слова!!! 

Только путём бесконечных экспериментов приходишь к тому, что задумано.... Но ведь так везде в MT5, куда ни ткни..  

...И опыт, сын ошибок трудных...

Везде так, не только в МТ5


 
Dmitry Fedoseev:

...И опыт, сын ошибок трудных...

Везде так, не только в МТ5

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

Примеры:

1. Кто нибудь может догадаться или узнать из справки о том, что в тестере нельзя удалить хендл индикатора?

2. Кто нибудь в курсе, что в МТ5 есть два "обзора рынка".. А не знания о втором приводит к непредсказуемым результатам при работе в некоторых случаях.

3. Кто нибудь вкурсе, что например вот так

#define   bufCount                  50 
#property indicator_buffers         bufCount*5
#property indicator_plots           bufCount

 делать в индикаторе нельзя, потому что получишь вылет за пределы массива, ибо не привязываются массивы к индикаторным буферам, потому что bufCount*5 не вычисляется

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

PlotIndexSetInteger(i * 5 + 0, PLOT_COLOR_INDEXES, 3); 
PlotIndexSetInteger(i * 5 + 0, PLOT_LINE_COLOR, 0, CLR_NONE);
PlotIndexSetInteger(i * 5 + 0, PLOT_LINE_COLOR, 1, clrBlue); 
PlotIndexSetInteger(i * 5 + 0, PLOT_LINE_COLOR, 2, clrRed); 

, и даже (Внимание!) не к буферу цвета, а тссс.... только никому, по порядку объявления буферов, вот так:

PlotIndexSetInteger(i, PLOT_COLOR_INDEXES, 3); 
PlotIndexSetInteger(i, PLOT_LINE_COLOR, 0, CLR_NONE);
PlotIndexSetInteger(i, PLOT_LINE_COLOR, 1, clrBlue); 
PlotIndexSetInteger(i, PLOT_LINE_COLOR, 2, clrRed); 

 Кто нибудь в здравом уме и светлой памяти, используя свой предыдущий "опыт" смог бы об этом догадаться?

 

...и много много другого интересного, список можно продолжать долго.. 

 

И, с Вашим большим опытом, Вы знали обо всём этом?

 
Просто поменьше самонадеянности и никаких проблэм. Просто создать индикатор через визард с одним комплектом свечей, потом склонировать.  
 
Dmitry Fedoseev:
Просто поменьше самонадеянности и никаких проблэм. Просто создать индикатор через визард с одним комплектом свечей, потом склонировать.  

Но почему в MQL4 индикатор подобным образом работает без проблем, а тут сюрпризы? Как же применять "опыт" то?

Применяя штатные средства создания индикаторов и советников далеко не уедешь... Нет масштабируемости и нет простора для полёта фонтазии...  

 
Joo Zepper:

Но почему в MQL4 индикатор подобным образом работает без проблем, а тут сюрпризы? Как же применять "опыт" то?

Применяя штатные средства создания индикаторов и советников далеко не уедешь... Нет масштабируемости и нет простора для полёта фонтазии...  

Сначала извлечь опыт. Вот получилось извлечь (или приобрести) опыт. Теперь следующий раз сразу правильно получится. 

Ограничиваться штатными средствами не призывал. 

 

Joo Zepper:

Кто нибудь в здравом уме и светлой памяти, используя свой предыдущий "опыт" смог бы об этом догадаться?

 

...и много много другого интересного, список можно продолжать долго..

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

Не припомню таких нюансов в MQL4++, хоть и извращался по всякому. Видимо, из-за меньших возможностей. Мой очень короткий список для MQL4++ (из того, что вспомнилось):

  1. indicator_buffers - константа, т.е. переопределить в коде нельзя.
  2. indicator_buffers можно использовать в любом месте, как обычную переменную const.
  3. extern и input - не одно и то же при задании входных параметров.

А CANDLES в MT5 чем-то напоминает ZIGZAG  в MT4. Когда есть несколько буферов для одного объекта, приходится немного вникнуть в иногда совсем не очевидную логику разработчиков.

 
Dmitry Fedoseev:

Сначала извлечь опыт. Вот получилось извлечь опыт. Теперь следующий раз сразу правильно получится. 

Говорю же, опыт бесполезен там, где отсутствует логика. Я уже делал так раньше, так же мучился пока не понял как нужно сделать, но благополучно забыл, потому что это Никак не вяжется с тем, до чего можно дойти самостоятельно путем простых рассуждений. 

Вы лично знаете обо всём, что я перечислил?

 
zaskok3:

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

Не припомню таких нюансов в MQL4++, хоть и извращался по всякому. Видимо, из-за меньших возможностей. Мой очень короткий список для MQL4++ (из того, что вспомнилось)

Не стоит благодарности... Ветку полюбому снесут, потому что сдесь сокрыты, похоже, сокральные знания, которые не должны быть доступны простым смертным.
 
Joo Zepper:

...

вы лично знаете обо всём, что я перечислил?

Нет. Но точно не застрял бы, потому-что сначала бы через визард создал индикатор с парочкой буферов, потом заменил бы буферы на структуры, и только потом сделал цикл.  
 
Dmitry Fedoseev:
Нет. Но точно не застрял бы, потому-что сначала бы через визард создал индикатор с парочкой буферов, потом заменил бы буферы на структуры, и только потом сделал цикл.  

..И была бы шапка на несколько тысяч строк из подобного:

//--- plot Label1
//#property indicator_label1  "Label1"
//#property indicator_type1   DRAW_COLOR_CANDLES
//#property indicator_color1  clrRed,clrMediumBlue,C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0'
//#property indicator_style1  STYLE_SOLID
//#property indicator_width1  1
//--- plot Label2
//#property indicator_label2  "Label2"
//#property indicator_type2   DRAW_COLOR_CANDLES
//#property indicator_color2  clrDarkOrange,clrSlateBlue,C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0'
//#property indicator_style2  STYLE_SOLID
//#property indicator_width2  1

 ?

Все мы советовать после драки горазды, а помощь то реальную я так и не получил. Да она, помощь, была мне, и не только мне, ни к чему, будь язык чуточку логичнее.  

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

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