Я нарисовал несколько стрелок в своем индикаторе MQL4, поэтому я могу увеличить ширину стрелки, но я хочу увеличить только высоту стрелки, поэтому, пожалуйста, помогите мне.
Как увеличить высоту стрелки в индикаторе mql4
Ответы (2)
Символы со стрелками не имеют отдельной возможности регулировки по ширине и высоте, это просто «размер». Вариантом было бы построить наконечник стрелки, а затем нарисовать объект линии тренда вертикально над ним до нужной длины.
MQL4-решение
Индикатор может указать экземпляру Arrow увеличить размер, используя атрибут экземпляра OBJPROP_WIDTH
:
{ string anInterimObjNAME = "S" + sSellCntr;
ObjectCreate( anInterimObjNAME, OBJ_ARROW, 0, Time[0], Bid );
ObjectSet( anInterimObjNAME, OBJPROP_COLOR, Red );
if ( Action == 0 ) ObjectSet( anInterimObjNAME, OBJPROP_ARROWCODE, 1 );
if ( Action < 0 ) ObjectSet( anInterimObjNAME, OBJPROP_ARROWCODE, 5 );
ObjectSet( anInterimObjNAME, OBJPROP_WIDTH, 1 ); //<--
//ObjectSet( anInterimObjNAME, OBJPROP_WIDTH, 32 );//<--
}
Расширение New-MQL4
Начиная с билда 509+ стали появляться все новые и новые модификации синтаксиса языка MQL4. До сих пор во многих случаях открытие встроенной справочной системы запускало просто еще одно обновление языка, поэтому будьте осторожны с ограничениями кода, внезапно измененными или неподдерживаемыми элементами синтаксиса и даже проверьте несколько новых синтаксических конструкций. Это жизнь, как она идет.
Таким образом, для OBJ_ARROW
есть возможность расширить его размер за пределы значения 5, что является (начиная с сборки 670) пределом для ручного ввода графического интерфейса.
Справка говорит:
Large arrows (more than 5) can only be created
by setting the appropriate OBJPROP_WIDTH property value
when writing a code in MetaEditor.
Таким образом, вручную вы все равно не можете ввести больше 5, но с помощью кода MQL4 вы можете сделать БОЛЬШЕ :о)