Доброго всем дня, прошу помочь.
Необходимо пометить стрелкой найденный бар, на графике. В справочнике слишком сложный для меня пример.
Для mql5:
Вот эту функцию вставить в код советника за пределами OnTick() (просто в самый низ кода):
//+------------------------------------------------------------------+
//| Создает знак "Стрелка вверх" |
//+------------------------------------------------------------------+
bool ArrowUpCreate(const long chart_ID=0, // ID графика
const string name="ArrowUp", // имя знака
const int sub_window=0, // номер подокна
datetime time=0, // время точки привязки
double price=0, // цена точки привязки
const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // способ привязки
const color clr=clrRed, // цвет знака
const ENUM_LINE_STYLE style=STYLE_SOLID, // стиль окаймляющей линии
const int width=3, // размер знака
const bool back=false, // на заднем плане
const bool selection=true, // выделить для перемещений
const bool hidden=true, // скрыт в списке объектов
const long z_order=0) // приоритет на нажатие мышью
{
//--- установим координаты точки привязки, если они не заданы
ChangeArrowEmptyPoint(time,price);
//--- сбросим значение ошибки
ResetLastError();
//--- создадим знак
if(!ObjectCreate(chart_ID,name,OBJ_ARROW_UP,sub_window,time,price))
{
Print(FUNCTION,
": не удалось создать знак \"Стрелка вверх\"! Код ошибки = ",GetLastError());
return(false);
}
//--- установим способ привязки
ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
//--- установим цвет знака
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль окаймляющей линии
ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим размер знака
ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- отобразим на переднем (false) или заднем (true) плане
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения знака мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнение
return(true);
}
А вот так вызывать её в нужный момент:
ArrowUpCreate(0,"ArrowUp"+(string)TimeCurrent(),0,0,0,ANCHOR_TOP,clrTeal,STYLE_SOLID,3,false,false,true,0);
