[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 423

 
hoz:

Если у каждого буфера (каждой линии) свои параметры (цвет, толщина и тд), как тогда будут передавать эти параметры каждой линии?
Можно передавть индивидуальные свойства каждой линии, но надо ли это при таком количестве? Пусть будут одни свойства на все линии.
 
Zhunko:
Можно передавть индивидуальные свойства линии, но надо ли это при таком количестве? Пусть будут одни свойства на все линии.


Т.е. я понимаю верно. Если некоторые линии имею одинаковые свойства, и свойств будет по всем признакам 8, значит можно уместить в одном индюке, а если свойств больше 8, то не выйдет?
 
hoz:

Т.е. я понимаю верно. Если некоторые линии имею одинаковые свойства, и свойств будет по всем признакам 8, значит можно уместить в одном индюке, а если свойств больше 8, то не выйдет?
Любое количество свойств можно передать.
 
Zhunko:
Любое количество свойств можно передать.


Но свойства привязываются к буферу, если они нужны для визуального отображения графического объекта. Значит превышение количества свойств выше 8 не возможно. Верно?
 
hoz:

Но свойства привязываются к буферу, если они нужны для визуального отображения графического объекта. Значит превышение количества свойств выше 8 не возможно. Верно?

Наверно, не понимаю вопрос.

Имеете ввиду, что количество свойств линии всего 8? 

 
hoz:

Если у каждого буфера (каждой линии) свои параметры (цвет, толщина и тд), как тогда будут передавать эти параметры каждой линии?

Через iCustom() в советник имеете ввиду? Я ставлю там тот же вычислительный блок, да и всё. Другое дело, если по какой-то причине это не катит (мне пока что из таких причин встречалась только рекурсия по таймсерии), то тогда да, формировать индикаторный буфер и вызывать его через iCustom().


Имею ввиду, если в индюке трендовыми линиями нарисовано. А так, окно-подокно - не имеет значения, если в подокне, то WindowOnDropped в старте под флагом, флаг опускается. Вот так:

int start(){
   //блок рисования горизонтальных линий уровня. Не выношу в init(), потому что WindowOnDropped() определён только в start()
   if(image){
      if(b){
         for(int i=-100; i<=100; i++){
            double x=i; x/=100; double hue=SpectralFilter(x, focus);
            color RGB=HSLtoRGB(hue, Staturation, Lightness);
            string name=DoubleToStr(hue,8);
            ObjectCreate(name,OBJ_HLINE,WindowOnDropped(),0,hue);
            ObjectSet(name, OBJPROP_COLOR, RGB);
            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
            ObjectSet(name, OBJPROP_WIDTH, 1);
         }
         b=false;
      }
   }else{
      ObjectsDeleteAll(WindowOnDropped(),OBJ_HLINE);
   }

Аналогично и трендовые рисуются.

 
Zhunko:

Наверно, не понимаю вопрос.

Имеете ввиду, что количество свойств линии всего 8? 


Нет. Вы же сами сказали, что:

Zhunko:
Любое количество свойств можно передать.


 Но имеется в виду не просто свойства в совокупности. А каждой отображаемой линии или объекта любого другого графического. Ведь в документации https://docs.mql4.com/ru/customind/IndicatorBuffers написано:

 Так вот и получается что если свойства то передаются через буфер в окно терминала, то больше 8 графических объектов нельзя передать, исходя из документации. Но мне попадались раньше индюки, чуть ли не радуги, где цветов и линий куда больше 8. Значит как-то они это ограничение обходят...

 
gyfto:

Через iCustom() в советник имеете ввиду? Я ставлю там тот же вычислительный блок, да и всё. Другое дело, если по какой-то причине это не катит (мне пока что из таких причин встречалась только рекурсия по таймсерии), то тогда да, формировать индикаторный буфер и вызывать его через iCustom().

 Да нет, я имею ввиду рисовать именно из индюка и всё. Не перекидывая в эксперт. Мне нужно для визуально контроля некоторых моментов и не более того.

 

gyfto:

Имею ввиду, если в индюке трендовыми линиями нарисовано. А так, окно-подокно - не имеет значения, если в подокне, то WindowOnDropped в старте под флагом, флаг опускается. Вот так:

Аналогично и трендовые рисуются.


 Имеете ввиду, такой же индюк запустить в другом окне, указав окно другое, и так обойти ограничение?
 
hoz:


Но мне попадались раньше индюки, чуть ли не радуги, где цветов и линий куда больше 8. Значит как-то они это ограничение обходят...


Ну, по идее, если дополнительные индикаторные буфера объявлять самостоятельно, а дальше трендовыми линиями, то работать будет...
 
hoz:
 Имеете ввиду, такой же индюк запустить в другом окне, указав окно другое, и так обойти ограничение?

Нет, я говорю про ObjectCreate(), там же номер окна нужно задавать. Я и показал, как задавать, если это подокно (то есть не ноль, которое главное окно).